基于51单片机的交通灯控制系统设计Word文档格式.docx

上传人:b****1 文档编号:1144580 上传时间:2023-04-30 格式:DOCX 页数:20 大小:207.48KB
下载 相关 举报
基于51单片机的交通灯控制系统设计Word文档格式.docx_第1页
第1页 / 共20页
基于51单片机的交通灯控制系统设计Word文档格式.docx_第2页
第2页 / 共20页
基于51单片机的交通灯控制系统设计Word文档格式.docx_第3页
第3页 / 共20页
基于51单片机的交通灯控制系统设计Word文档格式.docx_第4页
第4页 / 共20页
基于51单片机的交通灯控制系统设计Word文档格式.docx_第5页
第5页 / 共20页
基于51单片机的交通灯控制系统设计Word文档格式.docx_第6页
第6页 / 共20页
基于51单片机的交通灯控制系统设计Word文档格式.docx_第7页
第7页 / 共20页
基于51单片机的交通灯控制系统设计Word文档格式.docx_第8页
第8页 / 共20页
基于51单片机的交通灯控制系统设计Word文档格式.docx_第9页
第9页 / 共20页
基于51单片机的交通灯控制系统设计Word文档格式.docx_第10页
第10页 / 共20页
基于51单片机的交通灯控制系统设计Word文档格式.docx_第11页
第11页 / 共20页
基于51单片机的交通灯控制系统设计Word文档格式.docx_第12页
第12页 / 共20页
基于51单片机的交通灯控制系统设计Word文档格式.docx_第13页
第13页 / 共20页
基于51单片机的交通灯控制系统设计Word文档格式.docx_第14页
第14页 / 共20页
基于51单片机的交通灯控制系统设计Word文档格式.docx_第15页
第15页 / 共20页
基于51单片机的交通灯控制系统设计Word文档格式.docx_第16页
第16页 / 共20页
基于51单片机的交通灯控制系统设计Word文档格式.docx_第17页
第17页 / 共20页
基于51单片机的交通灯控制系统设计Word文档格式.docx_第18页
第18页 / 共20页
基于51单片机的交通灯控制系统设计Word文档格式.docx_第19页
第19页 / 共20页
基于51单片机的交通灯控制系统设计Word文档格式.docx_第20页
第20页 / 共20页
亲,该文档总共20页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

基于51单片机的交通灯控制系统设计Word文档格式.docx

《基于51单片机的交通灯控制系统设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《基于51单片机的交通灯控制系统设计Word文档格式.docx(20页珍藏版)》请在冰点文库上搜索。

基于51单片机的交通灯控制系统设计Word文档格式.docx

2.2总体设计框图

见图一:

三硬件设计

3.1LED循环电路设计

3.1.189cs51单片机概述

MCS-51单片机内部结构:

89CS51是MCS-51系列单片机的典型产品,我们以这一代表性的机型进行系统的讲解。

89CS51单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等极大单元及数据总线、地址总线和控制总线等三大总线,现在分别加以说明。

*中央处理器:

中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统的工作,完成运算和控制输入输出等操控。

*数据存储器(RAM):

89CS51内部有128个8位用户数及存储单元和128个寄存器单元,他们是统一编址的,专营寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM只有128个,可存放读写的数据,运算的中间结果或用户自定义的字型表。

*程序存储器(ROM):

89CS51共有4096个8位掩膜ROM,用于存放用户程序,原始数据或表格。

*定时/计数器(ROM):

89CS51有两个16位的可编程定时/计数器,一时想定时或计数产生中断用于控制程序转向。

*并行输入输出(I/O)口:

89CS51共有4组8位I/O口(P0、P1、P2或P3),用于对外数据传输。

*全双工串行号:

89CS51内置一个全双行串行通信口,用于与其它设备间的串行数据传输,该串行口既可以用作异步通信收发器,也可以当同步移位器使用。

*中断系统:

89CS51具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个串行中断,客满著不同的控制要求,并具有2级优先级别选择。

*时钟电路:

89CS51内置最高频率高达12Hz的时钟电路,用于产生整个单片机运行的脉冲时序,但89CS51单片继续外置震荡电容。

单片机的结构有两种类型,一种是程序存储器和数据存储器分开的形式,即哈佛(Harvard)结构,另一种是采用通用计算机广泛使用的程序存储器与数据存储器合二为一的结构,即普林斯顿(Princeton)结构。

MCS-51系统的引脚说明:

MCS-51系列单片机中的8031、8051及8751均采用40Pin封装的双列直接DIP结构,图二是它们的引脚配置,40个引脚中,正电源和底线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用

图二

8951的抚慰方式可以自动复位,也可以是手动复位,见下图。

除此之外,RESET/Vpd还是一复用脚,Vcc掉电其间,此脚可以接上没用电源,以保证单片机内部RAM的数据不丢失。

在编程时,EA/Vpp脚还需加上21V的编程电压。

3.1.2LED循环说明

东西、南北两干道交于一个十字路口,各干道有一组红、绿、黄三色的指示灯,指挥车辆和行人的安丘按通行。

红灯禁止通行,绿灯亮允许通行。

黄灯亮提示人们注意红、绿灯的状态即将切换,且黄灯燃亮时间为东西,南北两干道的公共停车时间。

25s

3s

2s

东西通道

红灯亮

绿灯亮

绿灯闪

黄灯亮

南北通道

上表说明东西路口哈珀能够灯亮,南北路口绿灯亮,同时开始25s倒计时。

25s倒计时结束后开始5s倒计时,南北铝扣绿灯闪烁,计时至最后2s时,南北路口黄灯亮。

完成一次这样的循环要30s。

30s结束,南北路口红灯亮,东西路口绿灯亮,并重新30s倒计时,依次循环。

电路图如图三所示。

图三

3.2倒计时显示电路

3.2.174LS164芯片

74LS164用于扩展并行输出口。

用89CS51串行口外接164串入-并出移位寄存器扩展8位并行口。

8位并行口的每位分别接到数码显示管的不同显示端。

74LS164芯片管脚排列如下图,管脚1、2相连共同接单片机管脚RXD,8管脚接单片机管脚TXD,9管脚接高电平,7管脚接地,14管脚接高电平,其他管脚依次接数码显示管管脚。

图四

3.2.2共阴极数码显示管

这里列出了共阴和共阳数码管的管脚平排列和内部结构。

数码管3、8管脚内部连在一起。

如果是共阳极则将其接到高电平。

如果是共阴极则将其接地。

为了数码显示管的安全这里用三个二极管与其串联来降压。

图五

3.2.3倒计时电路

倒计时显示电路如图六。

利用两个74LS164芯片并联后,其1、2管脚至单片机RXD管脚8管脚至单片机TXD管脚。

然后其他管脚依次接至数码管个管脚。

对于数码管其3、8管脚经过三个串联的二极管接地。

图六

3.2.4急通车电路

为了实现此功能,利用单片机中断达到目的。

利用一个手动按钮开关接至单片机外部中断0,同时在软件设计时将其设为最高优先级。

当有按键按下,四方全为红灯,同时将终端位置的PSW、ACC进栈保护。

当再按下按钮,将PSW、ACC出栈,回到原来的位置继续执行,电路图如下图。

图七

四软件按设计

4.1程序流程图:

如图八所示。

图八

4.2LED红绿灯显示

如图三所示,当P1端口输出高电平,即P1各端口=1时,根据发光二极管的单向导电性可知,这是发光二极管熄灭;

当P1个端口输出低电平,即P1各端口=0时,发光二极管亮。

我们可以使用SETB指令使P1各端口输出高电平,使用CLR指令时P各端口输出低电平。

至于循环需要软件控制,程序见附录。

4.3倒计时显示

此处采用LED静态显示方式,当显示器显示某个字符时,相应的段恒定的导通或截止,直到显示另个字符为止。

89C51的串行口RXD和TXD为一个全双工串行通信口,但工作在方式0下可作同步移位寄存器,其数据由RXD端串行输出或输入;

而同步移位时钟由TXD端串行输出,在同步时钟的作用下,实现由串行到并行的数据通信。

在不需要使用串行通信的场合,利用串行口加外围芯片74LS164就可构成一个或多个并行输入\输出口,用于串——并转换或显示器LED驱动。

此利用后者。

4.4急通车控制

将一按钮接到单片机外部中断0端口。

另一端接地,通过在程序里设置外部中断0为最高优先级。

当检测到有按钮按下时,产生中断,停止刚才的程序,转向中断执行。

在此过程必须利用PUSH、POP指令保护现场,这样当情况解除可以回到原来的地方继续执行。

4.5程序代码

见附录二

五总结

在学习单片机理论课时候就感觉到内容很多,知识点很杂,分繁琐。

在老师的讲解下,在通过自己的努力也更进一步了解了单片机的内部构造和工作原理,以及接外部电路的情况。

当然光有理论知识那只是“纸上谈兵”,还需要实际动手去实践。

真正把所学的用到日常生活中,理论联系实际,做出实物模型。

这次单片机实习,我选的是交通灯设计,通过这次设计我感觉到要想做成功,必须花时间多准备,查阅大量资料,认证分析每一步每一个模块要实现的功能,然后分步进行,最后正和一个整体。

通过这次实习,我们要对所做的事情有耐性,在编程的时候会有困难,也可能变得不一定成功,所以要经过多次调试,分析,改正,反复去做。

在这次实习中,经历了多次失败的洗礼,我明白在以后学习和实践中,我要努力掌握知识,多动手,多思考,以免在以后的学习工作中犯同样的错误。

参考文献

[1]叶挺秀.应用电子学[M].杭州:

浙江大学出版社,1994

[2]朱承高.电工及电子技术手册[M].北京:

高等教育出版社,1990

[3]阎石.数字电子技术基础(第三版)[M].北京:

高等教育出版社,1989

[4]周润景.PEOTEUS在MCS-51&

ARM7系统中的应用百例[M].北京:

电子工业出版社,2006

[5]李朝青.单片机原理及接口技术(第三版)[M].北京:

北京航空航天大学出版社,2005

附录一:

附录二:

源程序代码

SECOND1EQU30H;

东西路口计时寄存器

SECOND2EQU31H;

南北路口计时寄存器

DBUFEQU40H;

显示码缓冲1

TEMPEQU44H;

显示码缓冲2

LED_G1BITP1.0;

东西路口绿灯

LED_Y1BITP1.1;

东西路口黄灯

LED_R1BITP1.2;

东西路口红灯

LED_G2BITP1.5;

南北路口绿灯

LED_Y2BITP1.6;

南北路口黄灯

LED_R2BITP1.7;

南北路口红灯

ORG0000H

LJMPSTART

ORG0003H

LJMPINTO0

ORG0100H

START:

MOVTMOD,#01H置T0工作方式1

MOVTH0,#3CH

MOVTLO,#0B0H

CLRTFO

SETBTRO启动T0

SETBEX0

SETBPX0设置外中断0高优先级

SETBEA

LOOP:

MOVR2,#20置1s计数初值

MOVR3,#20红灯亮20S

MOVSECOND1,#25东西路口计时显示初值25s

MOVSECOND2,#25南北路口计时显示初值25s

LCALLDISPLAY

LCALLSTATEL调用状态1

WAIT1:

JNBTF0,WAIT1查询50ms到否

CLRTF0

MOVTH0,#3CH恢复T0定时初值50ms

MOVTL0,#0B0H

DJNZR2,WAIT1判断1s到否?

未到继续状态1

MOVR2,#20置50ms计数初值

DECSECIND1东西路口显示时间减1

DECSECOND2南北路口显示时间减1

LCALLDISPLAY

DJNZR3,WAIT1状态1维持20s

MOVR2,#5置50ms计数初值

MOVR3,#3绿灯闪烁3s

MOVR4,#4闪烁间隔200ms

MOVSECOND1,#5东西路口计时显示初值5s

MOVSECOND2,#5南北路口计时显示初值5s

WAIT2:

LCALLSTATE2调用状态2

JNBTF0,WAIT2查询50ms到否

MOVTH0,#3CH恢复T0定时初值50ms

DJNZR4,WAIT2判断200ms到否?

未到继续状态2

CPLLED_G1东西绿灯闪烁

MOVR4,#4闪烁200ms

DJNZR2,WAIT2判断1s到否?

MOVR2,#5置50ma计数初值

DECSECOND1东西路口显示时间减1

DJNZR3,WAIT2状态2维持3s

MOVR2,#20置50ms计数初值

MOVR3,#2黄灯闪烁2s

MOVSECOND1,#2东西路口计时显示初值2s

MOVSECOND2,#2南北路口计时显示初值2s

LCALLDISPLAY

WAIT3:

LCALLSTATE3调用状态3

JNBTF0,#3CH查询100ms到否

MOVTH0,#3CH恢复T0定时初值100ms

DJNZR2,WAIT3判断1s到否?

未到继续状态3

MOVR2,#20置100ms计数初值

DJNZR3,WAIT3状态3维持2s

MOVR3,#20红灯闪烁20s

WAIT4:

LCALLSTATE4调用状态4

JNBTF0,WAIT4查询100ms到否

MOVTL0,#0B0H

DJNZR2,WAIT4判断1s到否?

未到继续状态4

DJNZR3,WAIT4状态4维持2s

MOVR2,#5置50ms计数初值

MOVR3,#4红灯闪烁20s

MOVSECOND1,#25东西路口计时显示初值5s

WAIT5:

LCALLSTATE5调用状态5

JNBTF0,WAIT5查询100ms到否

DJNZR4,WAIT5判断200ms到否?

未到继续状态5

CPLLED_G2南北绿灯闪烁

DJNZR2,WAIT5判断1s到否?

MOVR2,#5置100ms计数初值

DJNZR3,WAIT5状态5维持3s

MOVR3,#20红灯闪烁2s

MOVSECOND2,#25南北路口计时显示初值5s

WAIT6:

LCALLSTATE6调用状态4

JNBTF0,WAIT6查询100ms到否

DJNZR2,WAIT6判断1s到否?

未到继续状态6

DJNZR3,WAIT6状态6维持3s

LJMPLOOP

STATE1:

状态1

SETBLED_G1东西路口路灯亮

CLRLED_Y1

CLRLED_R1

CLRLED_G2

CLRLED_Y2

SETBLED_R2南北路口红灯亮

RET

STATE2:

状态2

SETBLED_R2南北路口红灯亮

STATE3:

状态3

CLRLED_G1

SETBLED_Y1东西路口黄灯亮

STATE4:

状态4

SETBLED_R1东西路口红灯亮

SETBLED_G2南北路口绿灯亮

CLRLED_R2

STATE5:

状态5

SETBLED_R1东西路口红灯亮

STATE6:

状态6

SETBLED_Y2南北路口黄灯亮

DISPLAY:

数码显示

MOVA,SECOND1东西路口计时寄存器

MOVB,#10

DIVAB

MOVDBUF+3,A

MOVA,B

MOVDBUF+2,A

MOVSECOND2南北路口计时寄存器

DIYAB

MOVDBUF+1,A

MOVDBUF,A

MOVR0,#DBUF

MOVR1,#TEMP

MOVR7,#4

DP10:

MOVDPOTR,#LEDMAP

MOVA,@R0

MOVCA,@A+DPTR

MOV@R1,A

INCR0

INCR1

DJNZR7,DP10

MOVR0,#TEMP

MOVR1,#4

DP12:

MOVR7,#8

DP13:

RLCA

MOVP3.0,C

CLRP3.1

SETBP3.1

DJNZR7,DP13

DJNZR1,DP12

LENMAP:

DB3FH,06H,5BH,4FH,66H,6DH

DB7DH,07H,7FH,6FH

ORG0200H

INTO0:

PUSHPSW

PUSHACC

SETBLED_R1

SETBLED_R2

POPPSW

POPACC

RETI

END

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2