求单片机汇编交通灯程序??
单片机交通灯控制器的设计程序单片机交通灯控制器的设计一。 设计任务在一十字路口设置交通灯,并用单片机对其进行合理的控制。时间 方向 控制要求白天 东西 绿灯 黄灯 红灯 南北 红灯 绿灯 黄灯夜晚 东西 黄灯南北 黄灯二。 总体设计方案现在流行的一种设计为两主干线相交的十字路。本设计采用一主干道(南北方向),一从干道(东西方向)的路口,即主干道的通行时间为从干道的2倍。在正常情况下,两干道的交通灯按图1进行转换,并以倒计数的方式将剩余时间显示在每个干道对应的两位LED上;另发挥部分为当出现紧急情况时,路口的交通灯全为红灯,紧急情况解除时,恢复到原来的状态。 其具体状态如图1。状态 持...全部
单片机交通灯控制器的设计程序单片机交通灯控制器的设计一。 设计任务在一十字路口设置交通灯,并用单片机对其进行合理的控制。时间 方向 控制要求白天 东西 绿灯 黄灯 红灯 南北 红灯 绿灯 黄灯夜晚 东西 黄灯南北 黄灯二。
总体设计方案现在流行的一种设计为两主干线相交的十字路。本设计采用一主干道(南北方向),一从干道(东西方向)的路口,即主干道的通行时间为从干道的2倍。在正常情况下,两干道的交通灯按图1进行转换,并以倒计数的方式将剩余时间显示在每个干道对应的两位LED上;另发挥部分为当出现紧急情况时,路口的交通灯全为红灯,紧急情况解除时,恢复到原来的状态。
其具体状态如图1。状态 持续时间/S 南北方向 东西方向 控制码绿 黄 红 绿 黄 红 1 40 亮 灭 灭 灭 灭 亮 01111110B2 5 灭 亮 灭 灭 灭 亮 10111110B3 20 灭 灭 亮 亮 灭 灭 11001111B4 5 灭 灭 亮 灭 亮 灭 11011101B5 按紧急键 灭 灭 亮 灭 灭 亮 11011110B6 按夜晚键 灭 亮 灭 灭 亮 灭 01111100B7 按恢复键 恢复 恢复 恢复 恢复 恢复 恢复 恢复原来其系统框图如图2。
三。硬件电路的设计1。 单片机系统单片机系统采用atmel公司的AT89C51芯片,晶振选用6MHZ,电源电压采用5V。其总体系统电路图见图3。2。 信号灯与按钮电路的设计信号灯采用发光二极管组成,分红黄绿三种颜色。
该系统用于控制信号灯的输出线路有六条,按钮输出线有三条,应用AT89C51的P2。7,P3口来实现上述连接。3个按钮一端通过上拉电阻连接到电源,并输入单片机,另一端接地,这样未按下时,输入是高电平,反之,为低电平。
采用软件消抖。3。 LED显示电路用LED显示器共有4位,需8位输出口用于位选输出,分别选用AT89C51的P1,P2口,驱动电路采用芯片7407驱动器。四。软件设计本系统的软件包括主程序,显示程序和定时器溢出中断程序三部分。
1。 主程序:设置堆栈,定时器初始化,中断系统初始化,显示缓冲区赋初值,设置状态标志,状态切换。主程序流程图见图4。2。 中断服务程序其功能主要包括:不同状态下的时间计时,状态的循环切换,更新显示等,其流程图见图5。
现将内部数据存储器分配如下:(1) 60H~7FH:堆栈;(2) 5CH~5FH:显示缓冲区;(3) 5BH:定时溢出次数计数;(4) 5AH:秒计数单元;(5) 20H:状态标志单元;(6) 其他:数据缓冲区。
定义状态标志位:(1) 00H:状态1标志,为“1”时表明当前运行于状态1;(2) 01H:状态2标志,为“1”时表明当前运行于状态2;(3) 02H:状态3标志,为“1”时表明当前运行于状态3;(4) 03H:状态4标志,为“1”时表明当前运行于状态4;具体程序如下:ORG 0000HAJMP MAINORG 000BHAJMP T01NTMAIN:MOV SP,#5FHMOV TMOD,#01HMOV TL0,#0B0HMOV TH0,#3CHSETB 00HCLR 01HCLR 02HCLR 03HMOV 5BH,#0MOV 5AH,#40MOV 5CH,#4MOV 5DH,#0MOV 5EH,#4MOV 5FH,#0SETB TR0MOV IE,#82HM1:ACALL DIRJNB P3。
2,M2JINB P3。3 ,M3SJMP M1M2:ACALL DIRACALL DIR ACALL DIRACALL DIRJB P3。2,M1CLR TR0MOV P3,#0DEHM21:ACALL DIRJNB P3。
2,M21SJMP M1M3:ACALL DIRACALL DIRACALL DIRACALL DIRJB P3。3,M1JB 00H,M31MOV P3,#7EHSJMP M34M31:JB 01H,M32MOV P3,#0BEHSJMP M34M32:JB 02H,M33MOV P3,#0CFHSJMP M34M33:MOV P3,#0DDHM34:SETB TR0M35:ACALL DIRJNB P3。
3,M21SJMP M1T01NT:PUSH ACCPUSH PSWMOV PSW,#08HMOV TL0,#0B0HMOV TH0,#3CHINC 5BHMOV A,5BHCJNE A,#10,T0EDMOV 5BH,#0DEC 5AHMOV A,5AHMOV B,#10DIV ABMOV 5CH,AMOV 5DH,BMOV 5EH,AMOV 5FH,BMOV A,5AHJNZ T0EDJNB 00H,T01CLR 00HSETB 01HMOV P3,#0BEHMOV 5CH,#0MOV 5DH,#5MOV 5EH,#0MOV 5FH,#5MOV 5AH,#5SJMP T0EDT01:JNB 01H,T02CLR 01HSETB 02HMOV P3,#0CFHMOV 5CH,#2MOV 5DH,#0MOV 5EH,#2MOV 5FH,#0MOV 5AH,#20SJMP T0EDT02:JNB 02H,T03CLR 02HSETB 03HMOV P3,#0DDHMOV 5CH,#0MOV 5DH ,#5MOV 5EH,#0MOV 5FH,#5MOV 5AH,#5SJMP T0EDHT03:CLR 03HSETB 00HMOV P3,#7EHMOV 5CH,#4MOV 5DH,#0MOV 5EH,#4MOV 5FH,#0MOV 5AH,#40T0ED:POP PSWPOP ACCRETI显示子程序:DIR:MOV R5,#4MOV R2,#01HMOV R0,#5CHDIR1:MOV A,@R0ADD A#MOVC A,@A PCMOV P1,AMOV P2,R2INC R0MOV A,R2RL AMOV R2,AACALL DLDJNZ R5,DIR1RETDB 3FH,06H,5BH,4FH,66HDB 6DH,7DH,07H,7FH,67HEND。
收起