原理圖如下:
原理圖
代碼如下:
采用匯編語言
ORG 0000H;偽指令、程序開始、中斷入口地址 LJMP MAIN ORG 0003H LJMP A1 ORG 000BH LJMP A2 ORG 0013H LJMP A3 ORG 1000H ;主程序 MAIN:MOV TMOD,#01H;設(shè)工作方式 MOV TL0,#0F0H;設(shè)初值,單片機(jī)晶振12M,定時10ms MOV TH0,#0D8H SETB EA;開放總中斷 SETB ET0;開放T0中斷 SETB TR0;啟動T0定時 SETB EX0;開放外中斷0 SETB EX1;開放外中斷1 SETB IT0;設(shè)外中斷0為邊沿觸發(fā) CLR IT1;設(shè)外中斷1為低電平有效 SETB PT0 CYCLE: MOV R0,#60;南北方向綠燈顯示時間 MOV R1,#65;東西方向紅燈顯示時間 MOV R2,#25;為延時1秒而用 ;東西紅燈南北綠燈 LOOP1:SETB P3.4 MOV P1,#01H SETB P1.7;點亮紅燈 SETB P1.4;點亮綠燈 LCALL DISPLAY;調(diào)用顯示程序 DJNZ R2,LOOP1 MOV R2,#25 DEC R1 DJNZ R0,LOOP1 MOV R0,#3;南北方向黃燈顯示時間 ;東西紅燈南北黃燈 LOOP2:MOV P1,#01H SETB P1.7;點亮紅燈 SETB P1.3;點亮黃燈 LJ: LCALL DISPLAY;調(diào)用顯示程序 CPL P1.3 DJNZ R2,LJ DEC R1 MOV R2,#25 DJNZ R0,LOOP2 MOV R0,#40;南北方向紅燈顯示時間 ;東西紅燈南北紅燈 LOOP3:MOV P1, #01H SETB P1.7;點亮紅燈 SETB P1.2;點亮紅燈 LCALL DISPLAY;調(diào)用顯示程序 DJNZ R2,LOOP3 MOV R2,#25 DEC R0 DJNZ R1,LOOP3 MOV R1,#35;東西方向綠燈顯示時間 ;東西綠燈南北紅燈 LOOP4:MOV P1,#01H SETB P1.5;點亮綠燈 SETB P1.2;點亮紅燈 LCALL DISPLAY ;調(diào)用顯示程序 DJNZ R2,LOOP4 MOV R2,#25 DEC R0 DJNZ R1,LOOP4 MOV R1,#3;東西方向黃燈顯示時間 ;東西黃燈南北紅燈 LOOP5:MOV P1,#01H SETB P1.6;點亮黃燈 SETB P1.2;點亮紅燈 LJ1:LCALL DISPLAY;調(diào)用顯示程序 CPL P1.6 DJNZ R2,LJ1 MOV R2,#25 DEC R0 DJNZ R1,LOOP5 LJMP CYCLE ;鍵盤中斷程序 A1:LCALL DISPLAY JB P3.6,Q2 INC R1 INC R0 CJNE R1,#99,JIAO2 MOV R1,#00H JIAO2:CJNE R0,#99,JIAO3 MOV R0,#00H JIAO3:LCALL DISPLAY JNB P1.0, Z2 Q2: JB P3.7,WAIT1 DEC R1 DEC R0 CJNE R1,#00H, JIAO MOV R1,#99 JIAO: CJNE R0,#00H, JIAO1 MOV R0, #99 JIAO1:LCALL DISPLAY WAIT1:JNB P1.0, Z2 WAIT: LJMP A1 Z2:RETI ;時間中斷程序 A2:MOV TL0,#0F0H;重新賦值 MOV TH0,#0D8H CLR P3.4 RETI ;應(yīng)急通道中斷程序 A3:MOV P1,#85H MOV P0,#30H MOV P2,#35H JNB P3.3,A3 RETI ;數(shù)顯顯示 DISPLAY:MOV A,R0;東西方向時間的顯示 MOV B,#10 DIV AB;把要顯示的數(shù)的十位存放在A中,個位存放在B中 ADD A,#10H;位選通十位 MOV P0,A;顯示十位數(shù)字 TI0:JNB P3.4,TT SJMP TI0 TT: SETB P3.4 MOV A,B ADD A,#20H;位選通個位 MOV P0,A;顯示個位數(shù)字 TI1:JNB P3.4, TT1 SJMP TI1 TT1:SETB P3.4;南北方向的顯示 MOV A,R1;南北方向時間的顯示 MOV B,#10 DIV AB ADD A,#10H;位選通十位 MOV P2,A;顯示十位數(shù)字 TI2:JNB P3.4, TT2 SJMP TI2 TT2:SETB P3.4 MOV A,B ADD A,#20H;位選通個位 MOV P2,A;顯示個位數(shù)字 TI3:JNB P3.4, TT3 SJMP TI3 TT3:SETB P3.4 RET END
|