29 / 71 page

宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC12C2052AD 系列 1T 8051 单片机中文指南
29
INC R3
MOV A, R3
SUBB A, #18H
JC main_loop
MOV P1, #0FFH ;熄灭全部灯表示进入 Power Down 状态
CLR IT0 ;设置低电平激活外部中断
; SETB IT0 ;下降沿激活不了 Power Down 状态下的外部中断。原因是
;MCU 判断下降沿需要 2 个机器周期, 而此时 CLOCK 已停止,
;MCU 无法运行 2 个机器周期。
SETB EX0 ;允许外部中断 0
CLR IT1 ;设置低电平激活外部中断
; SETB IT1 ;下降沿激活不了 Power Down 状态下的外部中断, 原因同上
SETB EX1 ;允许外部中断 1
SETB ET0 ;要由外部中断 1 唤醒,“ET0=1”是必须的,硬件就这样做的
;外部中断 0 就无此必要,建议 Powerdown 用外部中断 0 唤醒
SETB EA ;开中断, 若不开中断就不能唤醒 Power Down
;下条语句将使 MCU 进入 idle 状态或 Power Down 状态
;低电平激活外部中断可以将 MCU 从 Power Down 状态中唤醒
;其方法为:将外部中断脚拉低
MOV A, PCON ;令 PD=1, 进入 Power Down 状态, PD = PCON.2
ORL A, #02H
MOV PCON, A
MOV PCON, #01H ;删除本语句前的 ";", 同时将前3条语句前加上注释符号";",
;令 IDL=1, 可进入 idle 状态, IDL = PCON.1
MOV P1, #0DFH ;请注意:
; 1.外部中断使 MCU 退出 Power Down 状态,执行本条指令后
;响应中断, 表现为 P1.5 与 P1.7 的 LED 同时亮(INT0 唤醒)
; 2.外部中断使MCU退出 idle 状态,先响应中断然后再执行本
;条指令, 表现为 P1.7 的 LED 先亮(INT0 唤醒)P1.5 的 LED 后亮
WAIT1:
SJMP WAIT1 ;跳转到本语句, 停机
END