ORG 0000H ; 程序起始地址
LJMP MAIN ; 跳转到主程序
ORG 0003H ; 外部中断0入口地址
LJMP INT0_K ;
MAIN: ; 主程序
CLR P3.3 ;
CLR P3.2 ; 水位检测初始化
MOV SP, #60H ; 设置堆栈指针
LCALL DELAY ; 延时
LCALL DELAY ; 延时
SETB P3.3 ; 关闭排水泵
SETB IT1 ; 设置INT0为上升沿触发
SETB EX0 ; 使能外部中断0
SETB EA ; 使能全局中断
POWER: ; 进入掉电模式整机能耗低于2uA
MOV PCON, #02H ; 进入掉电模式(PCON.1 = 1)
NOP ; 等待唤醒
NOP ; 等待唤醒
SJMP POWER ; 无唤醒始终在掉电模式
INT0_K: ; 水位检测
CLR EA ; 关闭全局中断
CLR P3.3 ; 开启排水泵
ACALL DELAY ; 延时
ACALL DELAY ; 延时
SETB P3.3 ; 关闭排水泵
SETB EA ; 使能全局中断
DELAY: ; 延时子程序
MOV R3,#238;
D1: MOV R4,#245;
D2: MOV R5,#246;
DJNZ R5,$;
DJNZ R4,D2;
DJNZ R3,D1
RETI ; 返回主程序
END ; 结束 |