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 ; 結束 |