那個時鐘顯示的程序已經顯示成功了,感謝大家對我這個單片機新手的幫助。所以把自己的這個程序貢獻出來和大家一起分享一下。還請大家多多指教。先謝過了。。。
42h----秒,41h-----分,40h----時
BUF_LED0 送給秒的個位
BUF_LED1 送給秒的十位
BUF_LED2 送給分的個位
BUF_LED3 送給秒的十位
BUF_LED4 送給秒的個位
BUF_LED5 送給秒的十位
一共用了六個數碼管進行顯示
LED0 BIT P2.0
LED1 BIT P2.1
LED2 BIT P2.2
LED3 BIT P2.3
LED4 BIT P2.4
LED5 BIT P2.5
BUF_LED0 EQU 60H
BUF_LED1 EQU 61H
BUF_LED2 EQU 62H
BUF_LED3 EQU 63H
BUF_LED4 EQU 64H
BUF_LED5 EQU 65H
ORG 00H
AJMP MAIN
ORG 0BH
AJMP IT0P
MAIN: MOV P2,#0FFH
MOV P0,#0FFH
MOV BUF_LED0,#0C0H ;設初值
MOV BUF_LED1,#0C0H
MOV BUF_LED2,#0C0H
MOV BUF_LED3,#0C0H
MOV BUF_LED4,#0C0H
MOV BUF_LED5,#0C0H
MOV DPTR,#TABLE
MOV TMOD,#01H ;設定工作方式
MOV 21H,#100
CLR A
MOV 42H,#00
MOV 41H,#00
MOV 40H,#00H
MOV TH0,#0D8H
MOV TL0,#0F0H
SETB TR0
MOV IE,#82H
HERE: CALL XIANSHI ;等待中斷
SJMP HERE
IT0P: PUSH Acc
PUSH PSW
MOV TH0,#0D8H
MOV TL0,#0F0H
DJNZ 21H,RETURN
MOV 21H,#100
MOV A,#01H
ADD A,42H
MOV 42H,A
MOV B,#10
DIV AB
MOVC A,@A+DPTR
MOV BUF_LED1,A
MOV A,B
MOVC A,@A+DPTR
MOV BUF_LED0,A
;CALL LED_L0
MOV R2,42H
CJNE R2,#60,RETURN
MOV 42H,#00
MOV A,#01H
ADD A,41H
MOV 41H,A
MOV R3,A
MOV B,#10
DIV AB
MOVC A,@A+DPTR
MOV BUF_LED3,A
MOV A,B
MOVC A,@A+DPTR
MOV BUF_LED2,A
;CALL LED_L2
CJNE R3,#60,RETURN
MOV 41H,#00
MOV A,#01H
ADD A,40H
;DA A
MOV 40H,A
MOV R4,A
MOV B,#0AH
DIV AB
MOVC A,@A+DPTR
MOV BUF_LED5,A
MOV A,B
MOVC A,@A+DPTR
MOV BUF_LED4,A
;CALL LED_L4
CJNE R4,#24,RETURN
MOV 40H,#00
RETURN:POP PSW
POP Acc
RETI
XIANSHI:
LED_L0:
MOV P2,#11111110B
MOV P0,BUF_LED0
CALL DELAY
LED_L1:MOV P2,#11111101B
MOV P0,BUF_LED1
CALL DELAY
LED_L2:MOV P2,#11111011B
MOV P0,BUF_LED2
CALL DELAY
LED_L3:MOV P2,#11110111B
MOV P0,BUF_LED3
CALL DELAY
LED_L4:MOV P2,#11101111B
MOV P0,BUF_LED4
CALL DELAY
LED_L5:MOV P2,#11011111B
MOV P0,BUF_LED5
CALL DELAY
RET
DELAY:MOV R5,#5 ;延時
D2:MOV R6,#248
D1:DJNZ R6,D1
DJNZ R5,D2
RET
TABLE:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
END
謝謝啊,你說得很對.
| 歡迎光臨 (http://m.raoushi.com/bbs/) | Powered by Discuz! X3.1 |