《单片机原理及其应用-模拟红绿灯.docx》由会员分享,可在线阅读,更多相关《单片机原理及其应用-模拟红绿灯.docx(20页珍藏版)》请在优知文库上搜索。
1、QILUUNIVERSITYOFTECHNOLOGY报告评分单片机原理及应用技术课程设计报告交通信号灯控制系统学院名称理学院专业班级学生姓名指导教师信息14-1班卢洲舟王晓柱2016年12月30日信号灯控制系统摘要近年来,随着我国国民经济的快速发展,我国机动车辆发展迅速,交通拥挤和堵塞现象时常发生,尤其是在十字路口等车流量大的时候问题尤为突出,所以,设计一个智能化的信号灯控制系统能很好的解决这一问题。在本次课程设计中我就选择设计一个信号灯控制系统,本系统以AT89S51单片机为核心设计一个十字路口交通灯控制系统,用单片机利用中断技术控制LED灯模拟交通信号灯显示。假定东西、南北方向绿灯时间为2
2、5秒,黄灯时间为3秒,红灯时间为35秒。同时还具备紧急情况可通过人工接管。关键词:AT89S51中断、LED目录摘要(1)第一部分(3)1.1 设计目的及要求(3)1.2 设计方案及原理(4)1.3 方案论证与比较(4)1.3设计内容(4)第二部分(5)2.1 硬件电路设计及描述(5)2.2 硬件电路原理图(7)2.3元件清单(7)第三部分(8)3软件设计流程(9)3.2 软件设计流程图(10)3.3 程序清单(11)第四部分(16)4.1 实验心得与体会(16)4.2 参考文献(16)第一部分Ll设计目的及要求十字路口布置两组红黄绿指示灯,实时提示绿灯亮剩余时间(秒),可人工通过按键接管控制
3、权。1.2 设计方案及原理通过查阅资料找到如下几种可行方案:方案一:时钟电路复位电路STC89C52单片机LED数码显示红绿灯电路该方案使用了CD4511显示译码器和74LS138译码器。通过CD4511将单片机输出的BCD8421码转换成为七段码然后送LED数码管显示;通过74LS138译码器将单片机输出的三位二进制码转换成八位只有一个低电平的代码,从而对LED数码管进行片选。时钟电路和复位电路为单片机提供正常的工作环境。按键电路为在紧急情况下的应急处理系统,作用是使东西南北的灯变为红灯。红绿灯电路由单片机I/O口直接驱动。按键电路图1.2.1方案一方案二:采用74HC573锁存器控制数码管
4、显示,使用动态扫描方法,控制数码管位选和段选的通断来使数码管依次显示相应数值;交通灯则可通过单片机I/O口来直接控制其关断;按键可通过外部中断标志位的查询来控制紧急情况的相应动作。锁存器数码管交通灯(发光二极管)按键图122方案二方案三:直接用单片机的I/O口进行LED数码管字位驱动,使用的I/O口比较多,但是成本较低锁存器数码管交通灯(发光二极管)按键图123方案三1.3 方案比较与论证通过比较三种方案,结合交通灯的实际情况,红绿灯和数码管的东西方向和南北方向一致,所以可以节省I/O口,因此此系统仅仅需要19个I/O口就足够To所以我采用方案三设计1.4 设计内容本方案使用AT89S51单片
5、机,PO口控制数码管的段选,P2口控制数码管的位选,采用动态扫描方式显示;Pl口用来控制交通灯的亮灭;采用定时器。的方式一,外接12MHz的晶振;按键接P3.2,即外部中断0,并设为高优先级中断,中断方式为电平中断,一旦有紧急情况发生可以通过人工按键进行中断,中断子程序便是使所有路口红灯亮,断开按键便可恢复原主程序继续执行。第二部分2.1硬件电路设计及其描述单片机主电路如图2.1.1所示,单片机的主电路包括时钟电路和复位电路,以及5V电压和接地电压等。时钟振荡电路采用内部时钟产生方式,在XTALl和XTAL2两端跨接振荡器。其发出的时钟脉冲直接送入片内定时控制部件复位电路采用上电+按钮电平复位
6、方式,当按下按钮时,RST管脚高电平出发。为保证复位可靠,RC时间常数应大于两个机器周期,电容取IOuf,电阻取1000C130pFC2HH30pF J123 4 5 6 7 8成猛STNteU1y1POWNOP0.1/SO1 P0.2/A32 PO. 3*8 P0.4/5O4P0.5/SO5 P0.6/A36 P0.7/SO7P2.0 P2.1P2.2/A10XTAL2RSTPSENP2.3/A11ALEP2.4/A12EAP2.5/A13P2.6/A14P2.7/A15P1.0P3.0/RXDP1.1P3.1yTXDP1.2P3.2/1 MlDP1.3P3.3INP1.4P3.4DP1.5
7、P3.5/T1P1.6P3.6IVRP1.7P3.7/RD393837363534-33322122232425-2627281DW121314图2.1.1单片机主电路交通灯接口电路交通灯接口如图2.1.2所示,硬件电路的发光二极管是共阳极的,采用低电平驱动点亮方式,而在软件中提供的交通灯模块是共阳极的,所以在软件仿真时候需要加一个非门来将Pl口输出的低电平变成高电平来驱动交通灯模块发光。图2.1.2交通灯接口电路LED数码管显示电路LED数码管显示电路如图2.1.3所示。该电路采用PO口进行数码管的数字显示,用P2口对数码管进行片选,P2口的2.02.1两个口作为八个数码管的片选信号。图2.
8、1.3LED数码管显示电路按键控制电路木设计设置了又1个键:该键一端接地,另一端接上拉电阻。低电平有效,2.2硬件电路原理图图2.2.1硬件电路原理图2.3元件清单名称型号数量单片机AT89C511个交通灯红黄绿三色4个电源VCC+5V1A2个晶振12MHz1个电容30pF10uF2个/1个排电阻IOK1个数码管2位共阴4个按键2个电阻IK1个非门6个第三部分3.1 软件设计流程显示子程序DISiMOVP2,#0FEHMOVA,30HMOVB,#10DIVABMOVCA,A+DPTRMOVPO,ALCALLDELAYMOVP2,#OFDHMOVA,BMOVCA,A+DPTRMOVPO,ALCA
9、LLDELAYRET中断服务子程序URZD:PUSHACCPUSHPSWCLRCLRURJJ:MOVMOVMOVJBIEOTROPl,#0F6HPO,#OFFHP2,#00Hp3.2,UR_CONAJMPURJJURCON:MOVSP#60HSETBNBFCLRDXFCLRHNBlCLRHNB2CLRHDXlCLRHDX2URR:POPPSWPOPACCRETI延迟程序DELAY:MOVR7,#10MOVR6,#50LI:DJNZR6,$DJNZR7,LlRETEND3.2 软件设计流程图开始系统初始化四个路口红灯亮,延时5秒东西红灯亮,南北绿灯亮25秒东西红灯亮,南北黄灯闪3秒东西绿灯亮,南
10、北红灯亮35秒东西黄灯闪,南北红灯亮5秒图3.2.1程序流程图3.3程序清单总程序NBFBITOOH;允许南北绿灯标志位DXFBITOlH;允许东西绿灯标志位HNBlBIT02H;允许南北黄灯标志位HNB2BIT03H;南北黄灯闪烁标志HDXlBIT04H;允许东西黄灯标志位HDX2BIT05H;东西黄灯闪烁标志位ORG0000HUMPMAIN;上电转主程序ORG000BH;定时中断入口UMPDSZDORGOOOBHUMPDSZDORGOOO3H;紧急中断入口UMPURZDORG0030HMAIN:ACALUNIT;调用初始化子程序LOOP:ACALLDIS;循环执行显示子程序AJMPLOOP
11、初始化程序INITM0VSP#60HSETBNBFCLRDXFCLRHNBlCLRHNB2CLRHDXlMOVTLO,#OBOHMOVTHO,#3CHSETBEA;开总中断SETBETO;开定时器。中断SETBTRO;启动定时器0SETBPXO;设外部中断0为高优先级中断SETBEXO;开外部中断0SETBIT0;设置外部中断0中断方式为电平触发方式MOVDPTR,#TAB;数值首地址放入DPTR中MOVR3,#20;定时器中断20次为ISMOV30H,#5;时间初始化MOVPl,#0F6H;初始化时东西南北均为红灯,交通灯状态存32HMOV32H,#0F6HRET显示子程序DIS:MOVP2
12、,#0FEH;选中十位数码管MOVA,30H;把显示数据送入数码管显示MOVB,#10DIVABMOVCA,A+DPTRMOVPO,ALCALLDELAYMOVP2,#OFDH;选中个位数码管MOVA,B;送入数码管显示MOVCA,A+DPTRMOVPO,ALCALLDELAYRET定时中断处理程序DSZD:PUSHACC;保护现场PUSHPSWMOVTLO,#OBOHMOVTH0,#3CHDJNZR3,DSJL;判断IS时间是否到达MOVR3,#20;到达重新赋值DEC30H;时间减1MOVA,30H;把减1后的时间送入显示存储单元南北绿灯DS_1:JNZDS_2;判断剩余时间是不是0秒JNBNBF,DS_2;判断是否允许南北绿灯MOV30H,#30MOVA,30#MOVPl,#0F5H;把交通灯状态存入存储单元CLRNBFSETBHNBlAJMPDS_R东西黄灯闪烁程序DS_4:JNZDS_41;判断时间剩余是不是0秒JNBHDXl,DS_41;判断是否允许东西黄灯闪烁MOV30H,#5MOVA,30HMOVPl,#ODEHMOV32H,#ODEHCLRHDXlSETBHDX2SETBNBFAJMPDS_RDS_41:CJNEA,#3,DS_43MOVMOVAJMPDS_42:CJNEJNBMOVMOVAJMPDS_43:CJNEJNBMOVPl,#OFEH32H,#0