交通灯课程设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录
选择芯片器件、模块化编程等多项知识。
(2)用单片机模拟实现具体应用,使个人设计能够真正使用。
(3)把理论知识与实践相结合,充分发挥个人能力,并在实践中锻炼。
(4)提高利用已学知识分析和解决问题的能力。
(5)提高实践动手能力。
1.3 设计任务和内容
1.3.1设计任务
结合教材及参考资料,用AT89C51单片机模拟实现十字路口的交通灯亮灭、倒计时显示等功能。
1.3.2设计内容
(1)填写设计任务书。
(2)进行总体设计,画出原理图。
(3)编写并调试程序。
(4)用Proteus软件进行仿真。
第二章总体设计及核心器件简介
2.1总体设计
整个设计以AT89C51单片机为核心,LED数码管显示,晶振电路,复位电路组成。
硬件模块入图2-1。
AT89C51
单片机
LED数码
管显示晶振电路复位电路
图2-1 硬件模块
2.2 AT89C51
1.AT89C51单片机简介
AT89C51是美国A TMEL公司推出的系列单片机,将多种功能的8位CPU与FPEROM (快闪可编程/擦除只读存储器)结合在一个芯片上,是一种低功耗、高性能的CMOS控制器,为很多嵌入式控制应用提供了非常灵活而又价格适宜的方案,其性能价格比远高于同类芯片。它与MCS-51指令系统兼容,片内FPEROM允许对程序存储器在线重复编程,也可用常规的EPROM编程器编程,可循环写入/擦除1000次。89C51内含4KB的FPEROM,一般的EEPROM的字节擦除时间和写入时间基本上均为10ms,对于任一个实时控制系统来说,这样长的时间是不可能在线修改程序的。
图2-2 89C51内部结构图
与EEPROM相比较,FPEROM大大缩短了存储内容擦除和写入的时间,为在线改写程序提供了极大的方便,而且价格也比带EPROM87C系列单片机便宜,这更显示出了89C 系列的优越性。它还有128*8Bit的片内RAM;32根I/O线;2个16位定时/计数器;5个中断源;一个全双工的异步串行口;间歇和掉电工作模式;三级程序存储器加密;全静态工作,晶振工作范围:0Hz—24MHz。
2.管脚功能
AT89C51单片机为40引脚芯片如图2-3所示。
①I/O口线: P0、P1、P2、P3共四个八位P0口是三态双向口, 通称数据总线口, 因为只有该口能直接用于对外部存储器的读ˆ写操作。P0口也用以输出外部存储器的低8位地址。由于是分时输出, 故应在外部加锁存器将此地址数据锁存, 地址锁存信号用ALE。P1口是专门供用户使用的I/O口, 是准双向口。P2口是从系统扩展时作高8位地址线用。不扩展外部存储器时, P口也可P2口也是准双向口。P3口是双功能口, 该口的每一位均可独立地定义为第一I/O 功能或第二I/O功能。作为第一功能使用时操作同P1口。
P3口的第二功能如表2-1。
图2-3 89C51引脚图
②控制口线: PSEN (片外取控制)、AL E( 地址锁存控制)、EA (片外储器选择)、RE2SET (复位控制) ;
③电源及时钟: CCC、VSS; XTAL 1, XTAL 2
表2-1 引脚功能表
2.3 74LS164
74LS164引脚定义如图2-5所示,其真值表如表2-2所示,其功能是将外部输入的串行数据转化为8位的并行数据输出具有锁寸功能。A、B端为串行数据输入端,QA ~ QH 为数据输出端,CLK为外部时钟输入端,CLR为清零端。
图2-5 74LS164引脚图
输入输出
CLEAR CLOCK A B Q A Q B……Q H
L X X X L L L
H L X X Q A0Q B0 Q H0
H ↑H H H Q An Q Gn
H ↑L X L Q An Q Gn
H ↑X L L Q An Q Gn
第三章单元电路模块设计
3.1复位电路
3-1 复位电路
3.2晶振电路
3-2晶振模块原理图
选取原则:传统做法,但能够实现所需,即最简单也最是实用。电容选取22uF,晶振为11.0592Hz。
3.3 LED数码管显示电路
在单片机应用系统中,数码管显示常用两种方法:静态显示和动态扫描显示。所谓静态显示,就是每一个显示器都要占用单独的具有锁存功能的I/O接口用于笔划段字形代码。这样单片机只要把要显示的字形代码发送到接口电路,就不用管它了,直到要显示新
的数据时,再发送新的字形码,因此,使用这种方法单片机中CPU的开销小,可以提供单独锁存的I/O接口电路很多。所以本设计采用串并转换电路74LS164的静态显示电路。其电路图如图3-4所示。
图3-4 数码管显示静态驱动电路
3.4 总体设计原理图及功能介绍
功能介绍:
LED数码管则用来对各种状态进行倒计时的显示。设计中采用74LS164静态驱动LED数码管,利用单片机的RXD作为数据的输出端给164送数。利用164的移位进行多位的显示。利用延时程序控制每秒时间,从而控制RXD送数的时间间隔。
第四章软件编程设计
4.1 设计思想
交通灯根据其显示情况可以分为四个状态,可以通过定时来控制每个状态的时间;通过定时也可以向LED数码管中每隔1秒送一个数,显示该状态剩余的时间。
4.2 程序框图
图4-1 主程序框图
4.3 源程序
SECOND1 EQU 30H ;东西路口计时寄存器SECOND2 EQU 31H ;南北路口计时寄存器
DBUF EQU 40H ;显示码缓冲区1
TEMP EQU 44H ;显示码缓冲区2
LED_G1 BIT P2.1 ;东西路口绿灯
LED_Y1 BIT P2.2 ;东西路口黄灯
LED_R1 BIT P2.3 ;东西路口红灯
LED_G2 BIT P2.4 ;南北路口绿灯
LED_Y2 BIT P2.5 ;南北路口黄灯
LED_R2 BIT P2.6 ;南北路口红灯
ORG 0000H
LJMP START
ORG 0100H
START: MOV TMOD,#01H ;置T0为工作方式1
MOV TH0,#3CH ;置T0定时初值50ms
MOV TL0,#0B0H
CLR TF0
SETB TR0 ;启动T0
CLR A
MOV P1,A ;关闭不相关的LED
LOOP: MOV R2,#20 ;置1S计数初值,50ms*20=1s MOV R3,#20 ;红灯亮20S
MOV SECOND1,#25 ;东西路口计时显示初值25s
MOV SECOND2,#25 ;南北路口计时显示初值25s
LCALL DISPLAY
LCALL STATE1 ;调用状态1
WAIT1: JNB TF0,WAIT1 ;查询50ms到否
CLR TF0
MOV TH0,#3CH ;回复T0定时初值50ms
MOV TL0,#0B0H
DJNZ R2,W AIT1 ;判断1S到否未到继续状态1
MOV R2,#20 ;置50MS计数初值