單片機源程序如下:
- ORG 0000H
- LJMP START
- ORG 0003H
- LJMP INT_0
- ORG 000BH
- LJMP T_0
- ORG 001BH
- LJMP T_1
- ORG 0100H
- START: MOV SP, #30H
- MOV 40H, #30
- MOV 41H, #20
- MOV 42H, #25
- MOV 43H, #25
- MOV TMOD, #11H
- MOV TH0, #3CH
- MOV TL0, #0B0H
- MOV TH1, #3CH
- MOV TL1, #0B0H
- MOV 60H, #20
- MOV 61H, #60
- MOV 62H, #10
- MOV 63H,#2
- CLR 4EH
- CLR 4FH
- CLR 4DH
- SETB EA
- SETB EX0
- SETB ET0
- SETB ET1
- SETB PT1
- SETB TR0
- DISPLAY1:MOV P1, #0EEH ;
- MOV R3, 40H
- MOV R4, 43H
- LOOP1: MOV A, R3
- MOV B, #0AH
- DIV AB
- MOV DPTR,#TAB
- MOVC A,@A+DPTR
- MOV P2,#0FEH
- MOV P0,A
- LCALL DELAY;
- MOV A, B
- MOVC A,@A+DPTR
- MOV P2,#0FDH
- MOV P0,A
- LCALL DELAY
- MOV A, R4
- MOV B, #0AH
- DIV AB
- MOV DPTR,#TAB
- MOVC A,@A+DPTR
- MOV P2,#0FBH
- MOV P0,A
- LCALL DELAY
- MOV A, B
- MOVC A,@A+DPTR
- MOV P2,#0F7H
- MOV P0,A
- LCALL DELAY
- JNB 4FH,LOOP1
- CLR 4FH
- DEC R3
- DEC R4
- CJNE R4,#0FFH,LOOP1
- kkk1: MOV P1, #0DEH;
- LOOP2: MOV A, R3
- MOV B, #0AH
- DIV AB
- MOV DPTR,#TAB
- MOVC A,@A+DPTR
- MOV P2,#0FEH
- MOV P0,A
- LCALL DELAY
- MOV P2, #0FBH
- MOV P0, A
- LCALL DELAY
- MOV A, B
- MOVC A,@A+DPTR
- MOV P2,#0FDH
- MOV P0,A
- LCALL DELAY
- MOV P2, #0F7H
- MOV P0, A
- LCALL DELAY
- JNB 4DH,LOOP2
- CLR 4DH
- DJNZ 63H,Kkk2
- MOV 63H,#2
- DEC R3
- CJNE R3,#0FFH,Kkk2
- LJMP A1
- Kkk2:MOV P1,#0FEH;
- A2:MOV A, R3
- MOV B, #0AH
- DIV AB
- MOV DPTR,#TAB
- MOVC A,@A+DPTR
- MOV P2,#0FEH
- MOV P0,A
- LCALL DELAY
- MOV P2, #0FBH
- MOV P0, A
- LCALL DELAY
- MOV A, B
- MOVC A,@A+DPTR
- MOV P2,#0FDH
- MOV P0,A
- LCALL DELAY
- MOV P2, #0F7H
- MOV P0, A
- LCALL DELAY
- JNB 4DH,A2
- CLR 4DH
- DJNZ 63H,kkk1
- MOV 63H,#2
- DEC R3
- CJNE R3,#0FFH,Kkk1
- A1:MOV P1, #0F5H ;
- DISPLAY2:MOV R3, 41H ;
- MOV R4, 42H
- LOOP3: MOV A, R3
- MOV B, #0AH
- DIV AB
- MOV DPTR,#TAB
- MOVC A,@A+DPTR
- MOV P2,#0FEH
- MOV P0,A
- LCALL DELAY
- MOV A, B
- MOVC A,@A+DPTR
- MOV P2,#0FDH
- MOV P0,A
- LCALL DELAY
- MOV A, R4
- MOV B, #0AH
- DIV AB
- MOV DPTR,#TAB
- MOVC A,@A+DPTR
- MOV P2,#0FBH
- MOV P0,A
- LCALL DELAY
- MOV A, B
- MOVC A,@A+DPTR
- MOV P2,#0F7H
- MOV P0,A
- LCALL DELAY
- JNB 4FH,LOOP3
- CLR 4FH
- DEC R3
- DEC R4
- CJNE R3,#0FFH,LOOP3
- KKK5:MOV P1, #0F3H
- LOOP4: MOV A, R4 ;
- MOV B, #0AH
- DIV AB
- MOV DPTR,#TAB
- MOVC A,@A+DPTR
- MOV P2,#0FEH
- MOV P0,A
- LCALL DELAY
- MOV P2, #0FBH
- MOV P0, A
- LCALL DELAY
- MOV A, B
- MOVC A,@A+DPTR
- MOV P2,#0FDH
- MOV P0,A
- LCALL DELAY
- MOV P2, #0F7H
- MOV P0, A
- LCALL DELAY
- JNB 4DH,LOOP4
- CLR 4DH
- DJNZ 63H,KKK5
- MOV 63H,#2
- DEC R4
- CJNE R4,#0FFH,A7
- LJMP DISPLAY1
- A7:MOV P1, #0F7H;
- A8: MOV A, R4
- MOV B, #0AH
- DIV AB
- MOV DPTR,#TAB
- MOVC A,@A+DPTR
- MOV P2,#0FEH
- MOV P0,A
- LCALL DELAY
- MOV P2, #0FBH
- MOV P0, A
- LCALL DELAY
- MOV A, B
- MOVC A,@A+DPTR
- MOV P2,#0FDH
- MOV P0,A
- LCALL DELAY
- MOV P2, #0F7H
- MOV P0, A
- LCALL DELAY
- JNB 4DH,A8
- CLR 4DH
- DJNZ 63H,KKK5
- MOV 63H,#2
- DEC R4
- CJNE R4,#0FFH,KKK5
- LJMP DISPLAY1
- T_0: PUSH Acc
- PUSH B
- PUSH PSW
- MOV TH0,#3CH
- MOV TL0,#0B0H
- DJNZ 62H,OVER100
- MOV 62H,#10
- SETB 4DH
- OVER100:DJNZ 60H,OVER
- MOV 60H,#20
- SETB 4FH
- OVER: POP PSW
- POP B
- POP ACC
- RETI
- T_1: PUSH ACC
- PUSH B
- PUSH PSW
- MOV TH1,#3CH
- MOV TL1,#0B0H
- DJNZ 61H,OVER1
- MOV 61H,#60
- SETB 4EH
- OVER1: POP PSW
- POP B
- POP ACC
- RETI
- INT_0:PUSH ACC
- PUSH B
- PUSH PSW
- MOV A,P1
- PUSH ACC
- MOV P1,#0F6H
- CLR EX0
- CLR TR0
- LCALL DELAY ;
- JB P3.2, OK
- LJMP DISPLAY3
- OK:LJMP OVER2
- DISPLAY3:MOV R5, 40H
- MOV R6, 43H
- MOV A, R5
- MOV B, #0AH
- DIV AB
- MOV DPTR,#TAB
- MOVC A,@A+DPTR
- MOV P2,#0FEH
- MOV P0,A
- LCALL DELAY
- MOV A, B
- MOVC A,@A+DPTR
- MOV P2,#0FDH
- MOV P0,A
- LCALL DELAY
- MOV A, R6
- MOV B, #0AH
- DIV AB
- MOV DPTR,#TAB
- MOVC A,@A+DPTR
- MOV P2,#0FBH
- MOV P0,A
- LCALL DELAY
- MOV A, B
- MOVC A,@A+DPTR
- MOV P2,#0F7H
- MOV P0,A
- LCALL DELAY
- MOV A,P2
- ANL A,#70H
- CJNE A,#70H,DES3
- LJMP DISPLAY3
- DES3:LCALL DELAY
- CJNE A,#70H,DES4
- DES4:JNB ACC.4,DES7
- JNB ACC.5,ADD1
- JNB ACC.6,DEC1
- DES7:JNB P2.4,DES7
- LJMP DISPLAY5
- ADD1:JNB P2.5,ADD1
- INC 40H
- INC 43H
- LJMP DISPLAY3
- DEC1:JNB P2.6,DEC1
- DEC 40H
- DEC 43H
- LJMP DISPLAY3
- DISPLAY5:SETB TR1
- DISPLAY4:MOV R5, 41H
- MOV R6, 42H
- MOV A, R5
- MOV B, #0AH
- DIV AB
- MOV DPTR,#TAB
- MOVC A,@A+DPTR
- MOV P2,#0FEH
- MOV P0,A
- LCALL DELAY
- MOV A, B
- MOVC A,@A+DPTR
- MOV P2,#0FDH
- MOV P0,A
- LCALL DELAY
- MOV A, R6
- MOV B, #0AH
- DIV AB
- MOV DPTR,#TAB
- MOVC A,@A+DPTR
- MOV P2,#0FBH
- MOV P0,A
- LCALL DELAY
- MOV A, B
- MOVC A,@A+DPTR
- MOV P2,#0F7H
- MOV P0,A
- LCALL DELAY
- MOV A,P2
- ANL A,#70H
- CJNE A,#70H,DES5
- JNB 4EH,DISPLAY4
- LJMP OVER2
- DES5: LCALL DELAY
- CJNE A,#70H,DES6
- DES6: JNB ACC.4,DIS3;
- JNB ACC.5,ADD2
- JNB ACC.6,DEC2
- LJMP DISPLAY4
- DIS3:JNB P2.4,DIS3
- CLR TR1
- MOV TH1,#3CH
- MOV TL1,#0B0H
- MOV 61H,#60
- LJMP DISPLAY3
- ADD2:JNB P2.5,ADD2
- MOV TH1,#3CH
- MOV TL1,#0B0H
- MOV 61H,#60
- INC 41H
- INC 42H
- LJMP DISPLAY4
- DEC2:JNB P2.6,DEC2
- MOV TH1,#3CH
- MOV TL1,#0B0H
- MOV 61H,#60
- DEC 41H
- DEC 42H
- LJMP DISPLAY4
- OVER2:CLR 4EH
- CLR TR1
- MOV TH1,#3CH
- MOV TL1,#0B0H
- SETB EX0
- SETB TR0
- POP ACC
- MOV P1,A
- POP PSW
- POP B
- POP ACC
- RETI
- TAB:DB 3FH ,06H, 5BH ,4FH ,66H, 6DH ,7DH ,07H, 7FH, 6FH
- DELAY: MOV R1,#40
- D1: MOV R7,#50
- DJNZ R7,$
- DJNZ R1,D1
- RET
- END
復制代碼
|