?? timer.asm
字號:
ORG 00H
TICK EQU 10000 ;10000×100us=1s
T100us EQU 256-100 ;100us時間常數(shù)(12M)
C100us EQU 30H ;100us計數(shù)單元
LEDBUF EQU 40H
LED BIT P1.0
LJMP START ;跳至主程序
ORG 000BH ;中斷子程序起始地址
T0INT: PUSH PSW ;狀態(tài)保護
MOV A,C100us+1
JNZ GOON
DEC C100us ;秒計數(shù)值減1
GOON: DEC C100us+1
MOV A,C100us
ORL A,C100us+1
JNZ EXIT ;100us計數(shù)器不為0,返回
MOV C100us,#HIGH(TICK) ;100us計數(shù)器為0,重置計數(shù)器
MOV C100us+1,#LOW(TICK)
CPL LEDBUF ;取反LED
EXIT: POP PSW
RETI
START: MOV TMOD,#02H ;方式2,定時器
MOV TH0,#T100us ;置定時器初值
MOV TL0,#T100us
MOV IE,#10000010B ;EA=1,IT0=1
SETB TR0 ;開始定時
CLR LEDBUF
CLR LED
MOV C100us,#HIGH(TICK) ;設置10000次計數(shù)值
MOV C100us+1,#LOW(TICK)
LOOP: MOV C,LEDBUF
MOV LED,C
LJMP LOOP
END
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -