各位大师们 你们好,我将用定时器编写一个5分钟的定时程序,主循环中如果检测到一个 IO口为低电平的时候将申请中断 由单片机的另一个IO口输出5分钟的高电平状态
主循环如何编写?如果是检测到IO口为低电平时就要启动定时器,如何编程?谢谢高手们指点
MAIN: SETB _WDI;喂狗 NOP NOP MOV C,K1_IN;读IO口状态 JNC OPENRELAY;若=0证明是低电平 LJMP MAIN
OPENRELAY: SETB RELAY;打开继电器 SETB TF1;?????该处如何申请中断去延时这5分钟??? LJMP MAIN
TIMER1: SETB _WDI MOV TH1,#03CH ;赋初值 MOV TL1,#0B0H DJNZ R3,EXT1 ;1s到了?没有转去EXT1 MOV R3,#20 ;1s到了,重新赋值 DEC R4 ;1S到了R4减1
CJNE R4,#0,EXT1 ;60s到了吗,没有到则转去EXT1 MOV R4,#60 ;60S到了重新赋值 DEC R5 ;60S到了R5减1
CJNE R5,#0,EXT1 ;300s到了吗,没有到则转去EXT1 MOV R5,#5 ;300s到了,重新赋值 closedrelay: CLR RELAY SETB C EXT1: RETI ;中断返回 |