?? thso1.asm
字號:
CL EQU 22H
CH EQU 23H
FLAG EQU 30H
ORG 2006H ;HSO中斷向量地址
DW HSO_INT
ORG 2080H
LD SP,#60H
DI ;關中斷
CLRB INTPEN ;清中斷掛號寄存器
ORB INTMAS,#08H ;允許HSO中斷
LDB IOC0,#05H
LDB HSOCOM,#30H ;允許HSO.0觸發(fā)負電平
;中斷方式,啟動HSO.0
ADD HSOTIM,TIMER1,#0030H
NOP
NOP
LDB HSOCOM,#31H ;允許HSO.1觸發(fā)負電平
;中斷方式,啟動HSO.1
ADD HSOTIM,TIMER1,#0100H
NOP
NOP
LDB FLAG,IOS0 ;保存HSO當前狀態(tài)
EI ;開中斷
SJMP $
HSO_INT:PUSHF ;HSO中斷子程序
LDB CL,IOS0 ;讀當前HSO狀態(tài)
LDB CH,CL
XORB CL,FLAG ;與原狀態(tài)比較
LDB FLAG,CH
JBC CL,0,HSO1 ;HSO.0無跳變轉HSO.1
JBS FLAG,0,LOW0
LDB HSOCOM,#30H ;允許HSO.0觸發(fā)正電平
;中斷方式
ADD HSOTIM,TIMER1,#800H
NOP
NOP
SJMP HSO1
LOW0:
LDB HSOCOM,#10H ;允許HSO.0觸發(fā)負電平
;中斷方式
ADD HSOTIM,TIMER1,#800H
NOP
NOP
HSO1: JBC CL,1,EXIT ;HSO.1無跳變轉EXIT
JBS FLAG,1,LOW1
LDB HSOCOM,#31H ;允許HSO.1觸發(fā)正電平
;中斷方式
ADD HSOTIM,TIMER1,#800H
NOP
NOP
SJMP EXIT
LOW1:
LDB HSOCOM,#11H ;允許HSO.1觸發(fā)負電平
;中斷方式
ADD HSOTIM,TIMER1,#400H
NOP
NOP
EXIT: POPF
RET
END
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -