STC15F104是有BUG的, 其中 几乎所有的STC15F104E,以及部分版本的STC15F104w无法 从外部中断唤醒。如需外部中断唤醒,最好把片子换成 STC15w104。 |
HSGhxq 发表于 2025-2-26 20:18 文不对题,0分 |
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 ; 结束 |
建议升级一下,换STC15W104、等 |
![]() P30不支援上升沿中断 |