单片机交通灯软件设计_第1页
单片机交通灯软件设计_第2页
单片机交通灯软件设计_第3页
单片机交通灯软件设计_第4页
单片机交通灯软件设计_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、毕业设计题目: 单片机交通灯控制软件设计 姓 名 专 业 电气工程与自动化 学 号 指导教师 南京航空航天大学二一年十一月25 / 25文档可自由编辑打印目 录目录摘 要4前 言5第一章功能分析61.1 设计任务书61.2、设计思路7第三章系统总体方案及硬件设计72.1硬件设计部分72.2软件设计部分82.3 硬件设计82.3.1 AT89C51简介82.3.2复位部分:102.3.3显示部分:102.3.4驱动部分:74LS24511第四章软件设计133.1 T0中断服务程序流程图133.2外部中断零服务程序流程图143.3主程序流程图15第五章程序清单164.1 主程序清单164.2 T0

2、中断服务程序清单214.3外部中断零服务程序清单24结论26致谢27参考文献28摘 要近年来随着科技的飞速发展,单片机的应用正在不断地走向深入,同时也带动着传统控制的日新月异更新。在自动控制的单片机应用系统中,单片机往往是 作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构, 以及针对具体应用对象特点的软件结合,加以完善。 十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。那么靠什么 来实现这井然秩序呢?靠的是交通信号灯的自动指挥系统。交通信号灯控制方式 很多。本系统采用 MSC-51 系列单片机89ATC51为中心器件来设计交通灯控制器,并辅助复位电路,驱动电路,

3、数码管及晶体管显示部分。通过中断扩展实现交通灯系统特殊情况的转换。【关键词】 交通灯 控制前 言在今天,红绿灯安装在各个道口上,已经成为疏导交通车辆最常见和最有效 的手段。但这一技术在 19 世纪就已出现了。 1858 年,在英国伦敦主要街头安装了以燃煤气为光源的红,蓝两色的机械扳 手式信号灯,用以指挥马车通行。这是世界上最早的交通信号灯。1868 年,英国 机械工程师纳伊特在伦敦威斯敏斯特区的议会大厦前的广场上,安装了世界上最 早的煤气红绿灯。它由红绿两以旋转式方形玻璃提灯组成,红色表示“停止” ,绿 色表示“注意” 。1869 年 1 月 2 日,煤气灯爆炸,使警察受伤,遂被取消。 191

4、4 年,电气启动的红绿灯出现在美国。这种红绿灯由红绿黄三色圆形的投 光器组成,安装在纽约市 5 号大街的一座高塔上。红灯亮表示“停止” ,绿灯亮表 示“通行” 。 1918 年,又出现了带控制的红绿灯和红外线红绿灯。带控制的红绿灯,一种 是把压力探测器安在地下,车辆一接近红灯便变为绿灯;另一种是用扩音器来启 动红绿灯,司机遇红灯时按一下嗽叭,就使红灯变为绿灯。红外线红绿灯当行人 踏上对压力敏感的路面时,它就能察觉到有人要过马路。红外光束能把信号灯的 红灯延长一段时间,推迟汽车放行,以免发生交通事故。 信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交 通事故有明显效果

5、。1968 年,联合国道路交通和道路标志信号协定对各种信号灯的含义 作了规定。绿灯是通行信号,面对绿灯的车辆可以直行,左转弯和右转弯,除非另一种标志 禁止某一种转向。左右转弯车辆都必须让合法地正在路口内行驶的车辆和过人行横道的行人 优先通行。红灯是禁行信号,面对红灯的车辆必须在交叉路口的停车线后停车。黄灯是警告 信号,面对黄灯的车辆不能越过停车线,但车辆已十分接近停车线而不能安全停车时可以进 入交叉路口。第一章功能分析硬件的设计采用89ATC51单片机为核心器件。并辅助复位电路,驱动电路,数码管及晶体管显示部分。通过中断扩展实现交通灯系统特殊情况的转换。软件设计部分分为一个主程序和两个中断子程

6、序,一个用于有紧急车辆通过时,系统要能禁止普通车辆通行,实行中断可使A(东西道)、B(南北道)两道均亮红灯;另一个用于一道有车而另一道无车时,通过控制交通灯系统能立即让有车道放行,假如A道有车B道无车,长按K0可以控制交通灯系统能立即让东西道放行;假如南北道有车东西道无车,长按K1可以控制交通灯系统能立即南北道放行。十字路口的交通灯在工作时应具有如下特点:红灯表示该条道路禁止通行;黄灯表示该条道路上未过停车线的车辆禁止通行,已过停车线的车辆继续通行;绿灯亮表示该条道路允许通行。本设计利用单片机控制可以实现以下功能:(1)A道和B道上均有车辆要求通过时,A,B道轮流放行。A道放行5分钟(调试时改

7、为5秒钟),B道放行4分钟(调试时改为4秒钟)。(2)一道有车而另一道无车(实验时用开关K0和K1控制),交通灯控制系统能立即让有车道放行。(3)有紧急车辆要求通过时,系统要能禁止普通车辆通行,A,B道均为红灯,紧急车由K2开关模拟。(4)绿灯转换为红灯时黄灯亮1秒钟第二章设计任务及设计思路1.1 设计任务书设计个单片机控制的交通灯控制系统,可以实现以下功能:(1)A道和B道上均有车辆要求通过时,A,B道轮流放行。A道放行5分钟(调试时改为5秒钟),B道放行4分钟(调试时改为4秒钟)。(2)一道有车而另一道无车(实验时用开关K0和K1控制),交通灯控制系统能立即让有车道放行。(3)有紧急车辆要

8、求通过时,系统要能禁止普通车辆通行,A,B道均为红灯,紧急车由K2开关模拟。(4)绿灯转换为红灯时黄灯亮1秒钟。1.2、设计思路硬件设计部分,为实现所要求的功能,首先参考多种参考资料,选用89ATC51单片机为硬件设计的核心器件。它具有128*8位内部RAM,有32根可编程I/O线、两个16位定时器/计数器、5个中断源、可编程串行通道、低功耗的闲置和掉电模式、片内振荡器和时钟电路。其次采用74LS245驱动电路驱动LED晶体管显示部分,用数码管显示黄、红、绿灯。通过中断扩展实现交通灯系统特殊情况的转换。软件设计部分,分为一个主程序和两个中断子程序,一个用于有紧急车辆通过时,系统要能禁止普通车辆

9、通行,实行中断可使A、B两道均亮红灯;另一个用于一道有车而另一道无车时,通过控制交通灯系统能立即让有车道放行,假如A道有车B道无车,长按K0可以控制交通灯系统能立即A道放行,假如B道有车A道无车,长按K1可以控制交通灯系统能立即B道放行。第三章系统总体方案及硬件设计2.1硬件设计部分为实现所要求的功能,首先参考多种参考资料,选用89ATC51单片机为硬件设计的核心器件。它具有128*8位内部RAM,有32根可编程I/O线、两个16位定时器/计数器、5个中断源、可编程串行通道、低功耗的闲置和掉电模式、片内振荡器和时钟电路。其次采用74LS245驱动电路驱动LED晶体管显示部分, 由89ATC51

10、的P2.1口控制北边和东边剩余时间的十位数的显示,P2.0控制北边和东边剩余时间的个位数的显示。用P1端口作为输出端口,用P1.2到P1.7端口分别控制东和北两组灯的状态,低电平点亮,用数码管显示黄、红、绿灯。通过中断扩展实现交通灯系统特殊情况的转换。2.2软件设计部分软件设计部分,分为一个主程序和两个中断子程序,一个用于有紧急车辆通过时,系统要能禁止普通车辆通行,实行中断可使A、B两道均亮红灯;另一个用于一道有车而另一道无车时,通过控制交通灯系统能立即让有车道放行,假如A道有车B道无车,长按K0可以控制交通灯系统能立即A道放行,假如B道有车A道无车,长按K1可以控制交通灯系统能立即B道放行。

11、2.3 硬件设计2.3.1 AT89C51简介 功能:AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压、高性能CMOS8位微处理器,俗称单片机。具有128*8位内部RAM,有32根可编程I/O线、两个16位定时器/计数器·5个中断源、可编程串行通道、低功耗的闲置和掉电模式、片内振荡器和时钟电路。 管脚说明:VCC:供电电压。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0

12、能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,

13、P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下表所示:口管脚

14、 备选功能P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(记时器0外部输入)P3.5 T1(记时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节PSEN:外部程序存储器的选通信号。EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。当/EA端保持高

15、电平时,此间内部程序存储器。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。振荡器特性:XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。芯片擦除:整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该

16、操作必须被执行。此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。2.3.2复位部分:采用上电+按钮电平复位,复位电容采用,电阻,连接如图:2.3.3显示部分:数码管显示部分采用四位一体共阴数码管,分别显示西和北的剩余时间,A到G为码段控制端口,1到4为片选端口。数码段显示部分通过74LS245接单片机管脚的P0口,片选部分由P2.0到P2.1提供,具体的共阴数码管见图。其中P2

17、.1控制北边和西边剩余时间的十位数的显示;P2.0控制北边和西边剩余时间的个位数的显示晶体管显示部分由于对称性,设计时只设计了西北两个方向。由红黄绿按要求显示。用P1端口作为输出端口,用P1.2到P1.7端口分别控制西和北两组灯的状态,低电平点亮,具体端口功能如下:P1.2控制北边红灯的亮灭;P1.3控制北边黄灯的亮灭;P1.4控制北边绿灯的亮灭;P1.5控制东边红灯的亮灭;P1.6控制东边黄灯的亮灭;P1.7 控制东边绿灯的亮灭。2.3.4驱动部分:74LS245第四章软件设计3.1 T0中断服务程序流程图3.2外部中断零服务程序流程图 3.3主程序流程图第五章程序清单4.1 主程序清单P0

18、口作为字形码输出口P2口输出为选信号用P1口控制交通灯的亮灭23H为标示位,当23H为0时南北红灯亮东西绿灯亮,并进入计时;当23H为1时东西南北黄灯亮,并进入计时;当32H为2时南北绿灯亮东西红灯亮,并进入计时;当23H为1时东西南北黄灯亮,并进入计时。27H为特殊情况标示位,当27H为0时南北红灯东西绿灯亮。当27H为2时南北绿灯东西红灯亮。还有通过标示位2FH.0来判断是否进入东西南北都红的紧急状态。 ORG0100HMAIN:MOV SP,#50HMOV TCON,#05H ;定义中断方式MOV 20H,#05H ;时间计数单元,A道放行时间MOV21H,#02H ;黄灯亮时间 MOV

19、22H,#05H ;B道放行时间 MOV 23H,#00H ;交通灯转换标示位 MOV 24H,#05H ;时间欲存区,A道放行时间 MOV 25H,#02H ;黄灯亮时间 MOV 26H,#05H ;B道放行时间MOV 27H,#0FFH ;特殊情况下转换标示位 MOV 28H,#01H ; MOV 30H,#05H ;显示缓存区 MOV 31H,#00H MOV TMOD,#01H ;16位计数器MOV TH0,#03CHMOV TL0,#0B0HMOV IE,#10000111BSETBTR0 ;T0启动计数MOV R2,#13HMOV P2,#0FFHML1: ACALL DISP M

20、OV A,23H CJNE A,#00H,X1 SETB P1.2 CLR P1.3 CLR P1.4 CLR P1.5 CLR P1.6 SETB P1.7X1: CJNE A,#01H,X2 CLR P1.2 SETB P1.3 CLR P1.4 CLR P1.5 SETB P1.6 CLR P1.7X2: CJNE A,#02H,X3 CLR P1.2 CLR P1.3 SETB P1.4 SETB P1.5 CLR P1.6 CLR P1.7X3: CJNE A,#03H,X4 CLR P1.2 SETB P1.3 CLR P1.4 CLR P1.5 SETB P1.6 CLR P1.

21、7X4: JNB 2FH.0,ML2SETB P1.2 CLR P1.3 CLR P1.4 SETB P1.5 CLR P1.6CLR P1.7 AJMP X4ML2: JB TR0,ML1 ACALL DISP MOV A,27H CJNE A,#00H,X11 SETB P1.2 CLR P1.3 CLR P1.4 CLR P1.5 CLR P1.6 SETB P1.7X11: CJNE A,#01H,X21CLR P1.2 SETB P1.3 CLR P1.4 CLR P1.5 SETB P1.6 CLR P1.7X21: CJNE A,#02H,X31 CLR P1.2 CLR P1.

22、3 SETB P1.4 SETB P1.5 CLR P1.6 CLR P1.7X31: JB P1.0,M1M1: MOV C,P1.0 ;按键消振 JC M2M2: LCALL DELAY MOV C,P1.0JC ML10STOP1: MOV C,P1.0 JNC STOP1 LCALL DELAY MOV C,P1.0 JNC STOP1 MOV R0,#20H MOV R1,#24H MOV A,27H ;加一 MOV 23H,A CLR C ADD A,R1 MOV R1,A CLR C MOV A,23H ADD A,R0 MOV R0,A INC R1 MOV A,R1 CJNE

23、 A,#100,H1 MOV A, #00H MOV R1,AH1: MOV R0,A MOV B,#0AH DIV AB MOV 31H,A MOV 30H,B ACALL DISPML10: JB P1.1,M3M3: MOV C,P1.1 ;按键消振 JC M4M4: LCALL DELAY MOV C,P1.1 JC ML2STOP2: MOV C,P1.1 JNC STOP2 LCALL DELAY MOV C,P1.1 JNC STOP2 MOV R0,#20H MOV R1,#24H MOV A,27H ; 减一 MOV 23H,A CLR C ADD A,R1 MOV R1,A

24、 CLR C ADD A,R0 MOV R0,A DEC R1 MOV A,R1 CJNE A,#0FFH,H2 MOV A, #99 MOV R1,AH2: MOV R0,A MOV B,#0AH DIV AB MOV 31H,A MOV 30H,B ACALL DISP LJMP ML1DELAY:MOV R4,#14HDL00: MOV R5,#0FFHDL11: DJNZ R5,DL11 DJNZ R4,DL00 RET4.2 T0中断服务程序清单T0主要是完成计时,和标示位更值得功能。当23H 为0时按20H内的初值计时,当23H为1和3时按21H内的初值计时,当23H为2时按22H

25、内的的初值计时。*TIME PROCESS*TIME: PUSH ACCPUSH PSWMOV TH0,#03CHMOV TL0,#0B0HDJNZ R2,RET0MOV R2,#13HMOV A,23HCJNE A,#00H,L1MOV A,20HCLR CDEC ACJNE A,#0FFH,GO11MOV A,23HCLR CINC AMOV 23H,AMOV A,24HMOV20H,A LJMP L1GO11:MOV20H,A MOV B,#0AH DIV AB MOV 31H,A MOV 30H,B LJMP RET0L1: MOV A,23H CJNE A,#01H,L2 MOVA,

26、21H CLR C DEC A CJNE A,#0FFH,GO12 MOV A,23H CLR C INC A MOV 23H,A MOV A,25H MOV21H,A LJMP L2 GO12:MOV21H,A MOV B,#0AH DIV AB MOV 31H,A MOV 30H,B LJMP RET0L2: MOV A,23HCJNE A,#02H,L4 MOVA,22H CLR C DEC A CJNE A,#0FFH,GO13 MOV A,23H CLR CINC A MOV 23H,A MOV A,26H MOV22H,A LJMP L4 GO13: MOV22H,A MOV B,

27、#0AH DIV AB MOV 31H,A MOV 30H,B RET0: POP PSW POP ACC RETI L4: MOV A,23HCJNE A,#03H,RET0MOVA,21HCLR CDEC ACJNE A,#0FFH,GO14MOV A,#00HMOV 23H,AMOV A,25HMOV21H,ALJMP RET0GO14: MOV21H,A MOV B,#0AH DIV AB MOV 31H,A MOV 30H,B LJMP RET4.3外部中断零服务程序清单外部中断零服务程序主要完成的是特殊情况下交通灯状态标示位的转换当P3.0和P3.1有键按下式停T0中断,进入相应键

28、的处理,当第二次有键按下式,若是相同键即推出中断服务程序,若是相异键,就改变特殊情况状态标示位。SECTION1:PUSH ACC PUSH PSWQQQ: MOV C,P3.0 ;按键消振JC JJJ ACALL DELAY MOV C,P3.0 JC JJJSTOP3: MOV C,P3.0 JNC STOP3 ACALL DELAY MOV C,P3.0 JNC STOP3 CLR TR0 MOV A,27H CJNE A,#00H,PPP1MOV A,#0FFH MOV 27H,A MOV 28H,#01H SETB TR0 AJMP PP1PPP1: CJNE A,#02H,PPP MOV 27H,#00H MOV 28H,#01H AJMP PP1PPP: INC 27H MOV 28H,#01HPP1: POP PSW POP ACC RETIJJJ: MOV C,P3.1 ;按键消振 JC QQQ ACALL DELAY MOV C,P3.1 JC QQQSTOP4: MOV C,P3.1 JNC STOP4 ACALL DELAY MOV C,P3.1 JNC STOP4 CLR TR0MOV A,28H CJNE A,#02H,GGG1MOV A,#01H MOV 27H,A MOV 28H,A SETB TR0 LJMP PP

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论