|
(1)开关键盘输入交通灯初始时间,通过8031单片机P1输入到系统 (2) 由8031单片机的定时器每秒钟通过P0口向8255的数据口送信息,由8255的PC 口显示红、绿、黄灯的燃亮情况;由8255的PA、PB口显示每个灯的燃亮时间。 (3)8031通过 设置 各个信号等的燃亮时间、通过8031设置,黄、绿、红时间依次为3秒、60秒、3秒、80秒、3秒循环由8031的 P0口向8255的数据口输出。 (4) 通过8031单片机的P3.0位来控制系统是工作或设置初值,当.牌位0就对系统进行初始化,为1系统就开始工作。 (5)8255PA口用于输出时间的个位,PB口用于输出时间的十位,由747S07驱动芯片驱动;.而PC口用于输出各个灯的情况,它的末段连接双向晶闸管采用220V交流电压驱动。 程序源代码 R4 存放黄灯时间 3 03H (此时间可以动态设定) R5 存放红灯时间 60 3CH R6 存放绿灯时间 80 50H PC0 显示黄灯信号 PC1 显示红灯信号 PC2 显示黄灯信号 8255 工作于方式0 8255 PA、PB、 PC口输出 PC 控制字为10000000B (80H) 程序源代码: ORG 0000H LJMP MAIN ORG 0100H MAIN: MOV R1,#03H 初始化8255 MOV A,#80H MOVX @R1,A AGAIN: MOV P3,#80H 设置初值 MOV A,P3 JB ACC.7, NEXT0 AGAIN1: MOV P3,#40H MOV A,P3 JB ACC.6, RED MOV P3,#0FH MOV A,P3 ANL A,#0FH MOV R3,A AJMP AGAIN1 RED: MOV P3,#0FH MOV A,P3 ANL A,#0FH MOV R2,A AJMP AGAIN NEXT0: MOV R1,#03H NEXT1: MOV DPTR,#TAB 显示黄灯个位 MOV A,R1 MOVC A,@A+DPTR MOV R1,#00H MOVX @R1, A MOV R1,#O MOV DPTR,#TAB 显示黄灯十位 MOV A,R0 MOVC A,@A+DPTR MOV R1,#01H MOVX @R1,A MOV DPTR,#0C62H 显示黄灯信号 MOV A,#00H LCALL 0F4E0H ACALL DELAY 延时1秒 DJNZ R0,NEXT1 MOV A,R3 MOV R0,A NEXT2:MOV DPTR,#TAB 显示红灯个位 MOV A,R0 MOVC A,@A+DPTR MOV R1,#00H MOVX @R1,A MOV DPTR,#TAB 显示红灯十位 MOV A,R0 MOVC A,@A+DPTR MOV R1,#01H MOV A,R0 MOVX @R1,R0 MOV R1,#02H 显示红灯信号 MOV A,#02H MOVX @R1,A ACALL DELAY 延时1秒 DJNZ R0,NEXT2 MOV A,R2 MOV R0,A NEXT3:MOV DPTR,#TAB 显示绿灯个位 MOV A,R0 MOVC A,@A+DPTR MOV R1,#00H MOVX @R1,R0 MOV DPTR,#TAB 显示绿灯十位 MOV A,R0 MOVC A,@A+DPTR MOV R1,#01H MOV A,R0 MOVX @R1,R0 MOV R1,#02H 显示绿灯信号 MOV A,#02H MOVX @R1,A ACALL DELAY 延时1秒 DJNZ R0,NEXT3 AJMP NEXT0 DELAY:MOV R4,#08H 延时1秒子程序 DE2:LCALL DELAY1 DJNZ R4,DE2 RET DELAY1:MOV R6,#0 MOV R5,#0 DE1: DJNZ R5,$ DJNZ R6,DE1 RET TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H 驱动代码表 END
需要程序中的每项的动能说明,谢谢各位高手了
|
|