欢迎来到天天文库
浏览记录
ID:9860263
大小:284.50 KB
页数:16页
时间:2018-05-12
《单片机课程设计--交通信号灯实时控制系统设计》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、交通信号灯实时控制系统设计一、设计目的1.学习单片机基本电路的设计,加深对单片机理论知识的理解2.掌握单片机内部各功能模块的功能与应用,学会单片机基本外设电路的设计3、学习单片机汇编语言及程序设计方法,掌握单片机汇编语言的程序设计4.掌握单片机应用系统的软件和硬件设计过程、调试方法及功能实现二、设计要求1、根据实际交通状况,分别控制红、绿、黄灯的燃亮与熄灭情况2、各信号灯的燃亮时间为:绿灯:60秒,红灯:80秒,黄灯:5秒3、红灯倒计时时间,当有车辆闯红灯时,启动蜂鸣器进行报警,3S后然后恢复正常。4、绿灯倒计时时,检测车流量三、硬件电路设计1.芯片选
2、用选用设备8051单片机一片,8255并行通用接口芯片一片,74LS07两片,MAX692‘看门狗’一片,共阴极的七段数码管两个双向晶闸管若干,7805三端稳压电源一个,红、黄、绿交通灯各两个,开关键盘、连线若干。8051是MCS-51系列单片机的典型产品,8051单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线。8051引脚图8255可编程并行接口芯片有三个输入输出端口,即A口、B口和C口,对应于引脚PA7~PA0、PB7~PB0和PC7~P
3、C0。其内部还有一个控制寄存器,即控制口。通常A口、B口作为输入输出的数据端口。C口作为控制或状态信息的端口,它在方式字的控制下,可以分成4位的端口,每个端口包含一个4位锁存器。它们分别与端口A/B配合使用,可以用作控制信号输出或作为状态信号输入。8255引脚图74LS373是一种带三态门的8D锁存器,其管脚示意图如图1:其中:1D-8D为8个输入端。1Q-8Q为8个输出端。LE为数据打入端:当LE为“1”时,锁存器输出状态同输入状态;当LE由“1”变“0”时,数据打入锁存器OE为输出允许端:当OE=0时,三态门打开;当OE=1时,三态门关闭,输出高阻
4、。74LS373芯片管脚图2.系统工作原理(1)开关键盘输入交通灯初始时间,通过8051单片机P1输入到系统(2)由8051单片机的定时器每秒钟通过P0口向8255的数据口送信息,由8255的PA口显示红、绿、黄灯的燃亮情况;由8255的PC口显示每个灯的燃亮时间。(3)8051设置各个信号灯的燃亮时间,通过8051设置,绿、红时间分别为60秒、80秒循环,由8051的P0口向8255的数据口输出。(4)通过8051单片机的P3.0位来控制系统是工作或设置初值,当为0就对系统进行初始化,为1系统就开始工作。(5)红灯倒计时时间,当有车辆闯红灯时,启动蜂
5、鸣器进行报警,3S后然后恢复正常。(6)增加每次绿灯时间车流量检测的功能,并且通过查询P2.0端口的电平是否为低,开关按下为低电平,双位数码管显示车流量,直到下一次绿灯时间重新记入。(7)绿灯时间倒计时完毕,重新循环。三、软件设计1.秒脉冲的产生延时方法可以有两种一中是利用MCS-51内部定时器才生溢出中断来确定1秒的时间,另一种是采用软件延时的方法。2.计数器硬件延时2.1设置计数器初值定时器工作时必须给计数器送计数器初值,这个值是送到TH和TL中的。他是以加法记数的,并能从全1到全0时自动产生溢出中断请求。因此,我们可以把计数器记满为零所需的计数值
6、设定为C和计数初值设定为TC可得到如下计算通式:TC=M-C式中,M为计数器摸值,该值和计数器工作方式有关。在方式0时M为213;在方式1时M的值为216;在方式2和3为282.2计算公式T=(M-TC)T计数或TC=M-T/T计数T计数是单片机时钟周期TCLK的12倍;TC为定时初值;如单片机的主脉冲频率为TCLK12MHZ,经过12分频:方式0:TMAX=213*1微秒=8.192毫秒方式1:TMAX=216*1微秒=65.536毫秒显然1秒钟已经超过了计数器的最大定时间,所以我们只有采用定时器和软件相结合的办法才能解决这个问题。2.3秒计时我们采
7、用在主程序中设定一个初值为20的软件计数器和使T0定时50毫秒.这样每当T0到50毫秒时CPU就响应它的溢出中断请求,进入他的中断服务子程序。在中断服务子程序中,CPU先使软件计数器减1,然后判断它是否为零。为零表示1秒已到可以返回到输出时间显示程序。2.4相应程序代码(1)主程序定时器需定时50毫秒,故T0工作于方式1。初值:TC=M-T/T计数=216-50ms/1us=15536=3CB0HORG1000HSTART:MOVTMOD,#01H;令T0为定时器方式1MOVTH0,#3CH;装入定时器初值MOVTL0,#B0HMOVIE,#82H;开
8、T0中断SEBTTR0;启动T0计数器MOVR0,#14H;软件计数器赋初值LOOP:SJMP
此文档下载收益归作者所有