標(biāo)題: 24小時時鐘匯編單片機程序 [打印本頁]
作者: 龍哥哥牛逼 時間: 2019-11-30 14:08
標(biāo)題: 24小時時鐘匯編單片機程序
作者只是學(xué)習(xí)單片機的一名大學(xué)生,如有紕漏,懇請批評指正。
一、proteus仿真截圖
[attach]210598[/attach]
圖一(像素比較高,連線清晰)
時鐘2.PNG (213.57 KB, 下載次數(shù): 43)
下載附件
2019-11-30 13:56 上傳
圖二(仿真截圖,按鍵的上拉排電阻可有可無,最小系統(tǒng)電路仿真時可以不加,但實際實驗電路要有最小系統(tǒng)電路)
單片機為89C51(80C51、89C52等51系列通用),晶振12MHz,數(shù)碼管為六位一體共陰極數(shù)碼管,74LS244用來放大電流,三個按鍵分別控制秒清零、分加一、時加一。
二、匯編代碼
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP SUB1
ORG 0100H
MAIN: MOV SP,#60H
MOV IE,#82H
MOV TMOD,#01H
MOV TH0,#3CH
MOV TL0,#0B0H
MOV R7,#20
MOV R1,#00H ;秒位
MOV R2,#00H ;十秒位
MOV R3,#00H ;分位
MOV R4,#00H ;十分位
MOV R5,#00H ;時位
MOV R6,#00H ;十時位
SETB TR0
HERE: LCALL SHOW ;數(shù)碼管顯示
LCALL ANJIAN ;按鍵調(diào)整
SJMP HERE
ORG 0200H
SUB1: CLR EA ;關(guān)閉定時器T0
DJNZ R7,NEXT
MOV R7,#20
INC R1
CJNE R1,#10,NEXT
MOV R1,#00H
INC R2
CJNE R2,#6,NEXT
MOV R2,#00H
INC R3
CJNE R3,#10,NEXT
MOV R3,#00H
INC R4
CJNE R4,#6,NEXT
MOV R4,#00H
INC R5
CJNE R6,#2,SHI
CJNE R5,#4,NEXT ;滿4進位
SJMP R50
SHI: CJNE R5,#10,NEXT ;滿10進位
R50: MOV R5,#00H
INC R6
CJNE R6,#3,NEXT
MOV R6,#00H
NEXT: MOV TH0,#3CH ;重新賦值,打開中斷
MOV TL0,#0B0H
SETB EA
RETI
SHOW: MOV A,R1 ;數(shù)碼管顯示
LCALL TA1
MOV P0,A
CLR P2.0
LCALL DELAY5MS
SETB P2.0
MOV A,R2
LCALL TA1
MOV P0,A
CLR P2.1
LCALL DELAY5MS
SETB P2.1
MOV A,R3
LCALL TA2
MOV P0,A
CLR P2.2
LCALL DELAY5MS
SETB P2.2
MOV A,R4
LCALL TA1
MOV P0,A
CLR P2.3
LCALL DELAY5MS
SETB P2.3
MOV A,R5
LCALL TA2
MOV P0,A
CLR P2.4
LCALL DELAY5MS
SETB P2.4
MOV A,R6
LCALL TA1
MOV P0,A
CLR P2.5
LCALL DELAY5MS
SETB P2.5
RET
TA1: MOV DPTR,#TABLE1
MOVC A,@A+DPTR
RET
TA2: MOV DPTR,#TABLE2
MOVC A,@A+DPTR
RET
ANJIAN:JNB P1.0,W1 ;按鍵調(diào)整
JNB P1.1,W2
JNB P1.2,W3
AJMP OUT
W1: LCALL DELAY5MS
LCALL DELAY5MS
JB P1.0,OUT
Q1: LCALL SHOW ;秒
JNB P1.0,Q1
MOV R1,#00H ;按鍵一按一次清零秒位、十秒位
MOV R2,#00H
SJMP OUT
W2: LCALL DELAY5MS
LCALL DELAY5MS
JB P1.1,OUT
Q2: LCALL SHOW ;分
JNB P1.1,Q2
INC R3 ;按鍵二按一次分加一
CJNE R3,#10,OUT
MOV R3,#00H
INC R4
CJNE R4,#6,OUT
MOV R4,#00H
SJMP OUT
W3: LCALL DELAY5MS
LCALL DELAY5MS
JB P1.2,OUT
Q3: LCALL SHOW ;時
JNB P1.2,Q3
INC R5 ;按鍵三按一次時加一
CJNE R6,#2,SHI2
CJNE R5,#4,OUT ;滿4進位
SJMP R502
SHI2: CJNE R5,#10,OUT ;滿10進位
R502: MOV R5,#00H
INC R6
CJNE R6,#3,OUT
MOV R6,#00H
SJMP OUT
OUT: RET
DELAY5MS:
MOV 31H,#10
LOOP1: MOV 32H,#250
LOOP2: DJNZ 32H,LOOP2
DJNZ 31H,LOOP1
RET
TABLE1:;共陰極無小數(shù)點
DB 03FH, 006H, 05BH, 04FH, 066H, 06DH, 07DH, 007H, 07FH, 06FH ;
TABLE2:; 共陰極有小數(shù)點
DB 0BFH, 086H, 0DBH, 0CFH, 0E6H, 0EDH, 0FDH, 087H, 0FFH, 0EFH ;
END
作者: 龍哥哥牛逼 時間: 2019-11-30 14:11
圖一沒有上傳上去,不過圖二可以看清楚網(wǎng)絡(luò)標(biāo)號/連線
歡迎光臨 (http://www.torrancerestoration.com/bbs/) |
Powered by Discuz! X3.1 |