SN8P2808
8-bit micro-controller build-in 4*32 LCD and 12-bit ADC.
7.8 T0 中断
T0C 计数器溢出时,不管T0IEN 是否开启,T0IRQ 会被置“1”,此时若T0IEN=1,则系统响应T0 中断;若此时
T0IEN=0,则系统并不会响应T0 中断。
¾
例:T0 中断请求设置。
B0BCLR
FT0IEN
; 禁止T0 中断。
B0BCLR
MOV
B0MOV
FT0ENB
A, #20H
T0M, A
;
;
; T0 时钟= Fcpu / 64。
; T0C 初始值置为64H。
; T0 间隔为10 ms。
MOV
B0MOV
A, # 64H
T0C, A
B0BCLR
B0BSET
B0BSET
FT0IRQ
FT0IEN
FT0ENB
; T0 中断请求标志清零。
; 允许响应T0 中断。
;
B0BSET
FGIE
; 使能GIE。
¾
例:T0 设置为无RTC。
ORG
8H
;
JMP
INT_SERVICE
INT_SERVICE:
…
; ACC 和PFLAG 入栈保存。
B0BTS1
JMP
FT0IRQ
EXIT_INT
; 检查是否有T0 中断请求标志。
;
B0BCLR
FT0IRQ
; 清T0IRQ。
MOV
B0MOV
…
A, #64H
T0C, A
;
; T0 中断程序。
EXIT_INT:
…
; ACC 和PFLAG 出栈恢复。
; 退出中断。
RETI
注:
1. 在RTC 模式下,必须延迟1/2 RTC 时钟源(32768Hz)之后再对T0IRQ 作清零动作,否则RTC 间隔时间可能出错。即从程
序响应T0 中断开始到T0IRQ 再次被清零大约需要16us。
2. RTC 模式下,中断服务程序中不能对T0C 进行清零。
¾
例:RTC 下执行T0 中断。
ORG
8H
;
JMP
INT_SERVICE
INT_SERVICE:
…
; ACC 和 PFLAG 中断保护。
B0BTS1
JMP
FT0IRQ
EXIT_INT
; 检测T0IRQ。
; T0IRQ = 0,退出中断。
> 16us
…
; T0 中断程序。
…
;
B0BCLR
FT0IRQ
; T0IRQ 清零。
EXIT_INT:
…
; 恢复 ACC 和PFLAG。
; 退出中断。
RETI
SONiX TECHNOLOGY CO., LTD
Page 63
Version 1.1