十字路口交通灯控制设计开放与创新实验任务书一、设计任务设计题目:十字路口交通灯控制设计设计内容:本设计是十字路口交通灯控制,所以依据实际交通灯的变化情况和规律,给出如下需求:一个十字路口为东西南北走向。初始状态0为东西红灯,南北红灯。然后转状态1东西绿灯通车,南北红灯。过一段时间转状态2,东西绿灯灭,黄灯闪烁几次,南北仍然红灯。再转状态3,南北绿灯通车,东西红灯。过一段时间转状态4,南北绿灯灭,闪几次黄灯,延时几秒,东西仍然红灯。最后循环至状态1。二、系统需求基本要求:利用STC-89C51单片机作为系统核心控制部分,用外围12个发光二极管(红、绿、蓝各4组)模拟交通灯的显示部分,自己设计电路和程序完成交通灯控制设计。发挥部分:1.扩展外部并口芯片(如8255A)对12个发光二级管进行控制。2.用硬件定时器完成交通灯转换间的延时,延时误差小于20×10-6s.3.利用数码管进行东西、南北方向的倒计时显示。摘要利用STC-89C51单片机作为核心控制部分,用外围12个发光二极管(红绿黄各4组)模拟交通灯的显示部分,用硬件定时器完成交通灯颜色转换间的延时。在红灯亮时用8段显示数码管完成倒计时功能,每次红灯亮时开始倒计时,从30倒计到0。在设计数码管完成倒计时功能的电路中用到了8255和8155的片子。关键词单片机,控制,二极管,数码管,延时,定时器。一·题目分析与功能要求........................................................二·总体方案设计....................................................................三·单元模块设计....................................................................四·系统软件系统设计............................................................五·系统调试............................................................................六·系统功能与参数描述........................................................七·设计总结............................................................................一题目分析与功能要求本设计是十字路口交通灯控制,所以依据实际交通灯的变化情况和规律,给出如下需求:一个十字路口为东西南北走向。初始状态0为东西红灯,南北红灯。然后转状态1东西绿灯通车,南北红灯。过一段时间转状态2,东西绿灯灭,黄灯闪烁几次,南北仍然红灯。再转状态3,南北绿灯通车,东西红灯。过一段时间转状态4,南北绿灯灭,闪几次黄灯,延时几秒,东西仍然红灯。最后循环至状态1。其间延时以硬件定时器完成,并且在红灯亮时数码管开始显示倒计时,从30倒计到0。用4个8段显示数码管两两为一组,东西红灯亮时表示东西方向红灯亮的时间的倒计时,南北方向时亦然。二总体方案设计东西南北R延时5秒东西闪Y,南北R东西R,南北G延时5秒东西R,南北闪Y开始东西G,南北R交通灯转换间的延时可用两种方法实现。一种是软件延时,另一种是硬件定时器实现。其中硬件实现计时十分准确,这个不同于软件计时要给定一定的数进行循环并由计时软件完成时间的换算,故在本设计中采用硬件定时器完成交通灯转换间的延时控制。三单元模块设计1各单元模块功能简介及电路设计(1)延时:主要完成交通灯转换间的时间控制,设计电路时用到了8255的片子作为核心控制部分。(2)数码管显示倒计时:主要完成红灯转换到绿灯间的倒计时功能,在本设计中数码管显示从30到0的倒计时。设计电路时用到了8255和8155的片子作为核心控制部分。(3)交通灯:用12个二极管的亮灭表示交通灯的变换闪烁(红黄绿各4个)。2电路参数的计算及元器件的选择3系统硬件电路的设计P1_0(TIM2)1P1_1(TIM2EX)2P1_23P1_34P1_45P1_5(MOSI)6P1_6(MISO)7P1_7(SCK)8RESET9P3_0(RXD)10P3_1(TXD)11P3_2(INT0)12P3_3(INT1)13P3_4(TIM0)14P3_5(TIM1)15P3_6(WR)16P3_7(RD)17X2(OUT)18X1(IN)19GND20P2_0(A8)21P2_1(A9)22P2_2(A10)23P2_3(A11)24P2_4(A12)25P2_5(A13)26P2_6(A14)27P2_7(A15)28PSEN29ALE/PROG30VPP/EA31P0_7(D7)32P0_6(D6)33P0_5(D5)34P0_4(D4)35P0_3(D3)36P0_2(D2)37P0_1(D1)38P0_0(D0)39VCC40U0AT89S52-24PU12Y12M1KR0Res210pFC0Cap10pFC1CapGNDSSW-PB10pFCCap2VCCGNDD0D1D2D3D4D5D6D7IOWRIORDRSTD0D1D2D3D4D5D6D7PA0PA1PA2PA3PA4PA5PA6PA7PB0PB1PB2PB3PB4PB5PB6PB7PC0PC1PC2PC3PC4PC5PC6PC7IORDIOWRA0A1RSTCSPA0PA1PA2PA3PA4PA5PA6PA7PB0PB1PB2PB3PB4PB5PB6PC0PC1PC2PC3PC4PC5PC6PC7D0D1D2D3D4D5D6D7PB7/RD/WRA0A1RESET/CS43214039383718192021222324251415161713121110343332313029282753698356*8255aOE11A12A24A36A48Y412Y314Y216Y118Y83Y75GND10Y67Y59A511VCC20OE219A613A817A715U2DM74LS240NLEDR1LEDY1LEDG1LEDR2LEDY2LEDG2LEDR3LEDY3LEDG3LEDR4LEDY4LEDG4OE11A12A24A36A48Y412Y314Y216Y118Y83Y75GND10Y67Y59A511VCC20OE219A613A817A715U3DM74LS240N1234567816151413121110910KR11234567816151413121110910KR2ResPack4GNDGNDGNDGNDVCCVCCVCCVCCL1L2L3L4L5L6L7L8L9L10L11L12四系统软件系统的设计#includereg51.h#includeabsacc.h#defineK8255XBYTE[0xFF2B]#defineC8255XBYTE[0xFF2A]#defineB8255XBYTE[0xFF29]#defineA8155XBYTE[0XFF21]#defineB8155XBYTE[0XFF22]#defineC8155XBYTE[0XFF23]#defineK8155XBYTE[0XFF20]unsignedinti,j,k,l;unsignedintm,cnt=0;unsignedcharcodetal[]={0x40,0x10,0x00,0x78,0x02,0x12,0x19,0x30,0x24,0x79};unsignedcharcodetal1[]={0x30,0x24,0x79,0x40};voiddelay(unsignedintn);voidmain(){SP=0x50;K8255=0x80;TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;ET0=1;while(1){C8255=0x61;B8255=0x08;cnt=0;j=0;k=0;TR0=1;while(1){A8155=0X01;B8155=tal[j];l=150;while(l--);A8155=0x02;B8155=tal1[k];l=150;while(l--);A8155=0X10;B8155=tal[j];l=150;while(l--);A8155=0x20;B8155=tal1[k];l=50;while(l--);if(cnt==10){cnt=0;j++;if(j==1)k++;if(j9)j=0;if(k==4)//{k=0;j=0;}break;}}TR0=0;for(k=0;k5;k++){C8255=0x51;B8255=0x04;delay(100);C8255=0x41;B8255=0x00;delay(100);}delay(100);C8255=0x0C;B8255=0x03;j=0;k=0;TR0=1;while(1){A8155=0X01;B8155=tal[j];l=150;while(l--);A8155=0x02;B8155=tal1[k];l=150;while(l--);A8155=0X10;B8155=tal[j];l=150;while(l--);A8155=0x20;B8155=tal1[k];l=50;while(l--);if(cnt==10){cnt=0;j++;if(j==1)k++;if(j9)j=0;if(k==4)//{k=0;j=0;}break;}}for(k=0;k5;k++){C8255=0x8A;B8255=0x02;delay(100);C8255=0x08;B8255=0x02;delay(100);}delay(100);}}voiddelay(unsignedintn){for(i=0;in;i++)for(j=0;jn;j++);}voidit0()interrupt1{TH0=(65536-50000)/256;TL0=(65536-50000)%256;cnt++;}五系统调试根据设计要求写好程序,即系统功能实现软件,摁下DVCC实验系统左边模块小键盘上的Reset(复位键),再摁下PrestDebug键,将软件与实验系统链接,当实验系统小键盘左边的液晶显示屏上最左边的P变成最右边显示0时表示已链接上,然后对程序进行编译与调试,如显示有错误,则根据错误提示再对已有程序进行修改,用同样的方法进行调试,直至程序运行出正确的符合要求的结果为止。此时实验系统上的12个二极管模拟交通灯应该按照设计的程序有规律地亮灭,并且数码管在红灯亮时进行从30到0的倒计时。六系统功能与指标参数(1)系统实现的功能扩展外部并口芯片对12个发光二级管进行控制,用硬件定时器完成交通灯转换间的延时,延时误差小于20×10-6s,利用数码管进行东西、南北方向的倒计时显示,实现十字路口交通灯的控制功能。(2)参数测试七设计总结本次设计中利用STC-89C51单片机作为系统核心控制部分,主要用到了8155和8255两种片子。一二极管模拟交通灯,交通灯状态转换间的延时采用了硬件控制的方法,准确性得到保证。另外还用到了8段式数码管作为倒计时的显示器件。由于之前从未接触过有关单片机方面的知识,在老师开设辅导基础课之前,对单片机没有任何了解,所以本次设计对于我们来说还是显得相当有难度。只是对单片机有了一个简单的认识,对其详细工作原理都没有经过深究,我们所有的知识仅来自于老师不到20的学时的讲解,所以在本次设计过程中好多问题都得经过组内成员相互讨论合作并查阅相关资料才能解决,一些专业术语的应用也是一大难题,系统功能描述的一些地方显得词不达意。但对于作为初学者的我们来说,本次设计还是显得很有意义。虽然我们水平相当有限,但多多少少也是学了一些东西,对于单