📄 pin_wakeup.dt
字号:
;Defined registers
IOC6 == 0X6
PDCR == 0XB
PHCR == 0XD
WDTCR == 0XE
IMR == 0XF
;
PORT6 == 0X6
WUCR == 0XE
ISR == 0XF
ORG 0X0
NOP
JMP RESET ;Power on reset
;
ORG 0X8
NOP
JMP PIN_INT ;Interrupt vector
;
PIN_INT:
BANK 0
BC ISR, 1 ;Clear ICIF
RETI
RESET:
NOP
CALL INIT_222_DEVICE ; Initial 222
NOP
MAIN:
NOP
JMP $
;
INIT_222_DEVICE:
MOV A, @0B00011011
BANK 1
MOV WDTCR, A ; Select WDT prescaler,Disable WDT
;MOV A, @0X0F
;MOV PHCR, A ;Set PORT6.4~7 as pull high
CLR PDCR ; Set PORT6.0~7 as pull down
MOV A, @0XFF
MOV IOC6, A ;Set PORT6 as input
WDTC ; Clear WDT and prescaler
BANK 0
MOV PORT6, PORT6 ;Read PORT6
ENI ;Enable interrupt
MOV A, @0B00010000
MOV WUCR, A ;Enable PORT6 input change wale up
MOV A, @0B00000010
BANK 1
MOV IMR, A ;Enable PORT6 input change interrupt
SLEP ;
RET
;
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -