?? times.asm
字號:
ORG 0000H
LJMP START
ORG 001BH ;定時計數(shù)器1中斷入口地址
LJMP CLOCK
ORG 0030H
START:
MOV SP , #50H ;設(shè)置堆棧
MOV TL1 , #018H ;FOSC=6MHZ,則一個機器周期為2us
MOV TH1 , #0FCH ;3CB7H=155430 65536-15543=4993,下一個機器周期響應(yīng)中斷
MOV 20H , #13H ;一時存儲單元,可設(shè)置起始時間,應(yīng)小于24時
MOV 21H , #16H ;一分存儲單元,可設(shè)置起始時間,應(yīng)小于59分
MOV 22H , #22H ;一秒存儲單元,可設(shè)置起始時間,應(yīng)小于59秒
MOV 23H , #00H ;一位0.1秒存儲單元
MOV 30H , #01H ;一時十位顯存
MOV 31H , #02H ;一時個位顯存
MOV 32H , #03H ;一分十位顯存
MOV 33H , #04H ;一分個位顯存
MOV 34H , #05H ;一秒十位顯存
MOV 35H , #06H ;-秒個位顯存
MOV IE , #10001000B ;開定時計數(shù)器1中斷
MOV IP ,#00001000B ;中斷優(yōu)先級設(shè)計,可有可無
MOV TMOD ,#00010000B ; 定時計數(shù)器1工作在方式1
SETB TR1 ;啟動T1
LOOP:
LCALL HEX2D
LCALL DIS ;顯示
SJMP LOOP
HEX2D:
PUSH PSW
CLR RS0
CLR RS1
MOV R7 , #03H
MOV R1 , #30H
MOV R0 , #20H ;復(fù)位后默認工作寄存器組0
LOO_A:
MOV A , @R0
MOV B , #0AH
DIV AB
MOV @R1 , A
INC R1
MOV @R1 , B
INC R0
INC R1
DJNZ R7 , LOO_A
POP PSW
RET
DIS:
CLR C
PUSH PSW ;保護工作寄存器
PUSH ACC
SETB RS0 ; 換為工作寄存器組1
CLR RS1
MOV R0 , #30H ; 顯示首地址
MOV R2 , #20H ; 位顯控制信號
MOV DPTR , #TAB ; 把表首地址送DPTR
LS2: MOV A,R2
CPL A
MOV P1,A
MOV A , @R0 ; (R0)=(30H)
MOVC A , @A+DPTR ; 查表值送A
CPL A
;MOV P1, R2 ; R2=20H從高位開始
MOV P0,A
DELAY: MOV R4,#05H ;
LOO_P: MOV R5,#18H
LOOP1: NOP
NOP
DJNZ R5, LOOP1 ;第一次為56H-00H,以后為FFH-00H
DJNZ R4,LOO_P
MOV A,R2
RRC A ;帶進位位右移一位
MOV R2 , A ;A值送R2,為下一位顯示地址
INC R0 ;R0加1,30H+1=31H
JNZ LS2 ;累加器A內(nèi)容不為0轉(zhuǎn)移,顯示下一位,循環(huán)
POP ACC
POP PSW ;恢復(fù)工作寄存器組0
RET
CLOCK: CLR TR1 ;單機器周期指令,2us
MOV TL1,#018H ;單機器周期指令,2us
MOV TH1,#0FCH ;恢復(fù)初值,單機器周期指令,2us
SETB TR1 ;單機器周期指令,2us
PUSH PSW
PUSH ACC
INC 23H ;0.1秒加1
MOV A,23H
CJNE A,#0AH,DONE ;1秒到了沒?
MOV 23H,#00H ;清0.1秒
INC 22H ;秒存儲單元
MOV A,22H
CJNE A,#3CH,DONE ;60秒到?
MOV 22H,#00H ;秒單元清零
INC 21H ;21H-分存儲單元
MOV A,21H
CJNE A,#3CH,DONE ;60分到?
MOV 21H,#00H ;分單元清零
INC 20H ;20H-時存儲單元
MOV A ,20H
CJNE A,#18H,DONE ;24小時到?jīng)]?
MOV 20H,#00H ;時單元清零
DONE: POP ACC
POP PSW
RETI
TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H ;共陽極 0~1~2~3~4~5
DB 82H,0F8H,80H,90H,88H,83H,0C6H ;6~7~8~9~A~B~C
DB 0A1H,86H,8EH,0FFH,0CH,89H,7FH,0BFH ;D~E~F~滅~P.~H~.~
END
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -