标题: 主程序中如何申请中断? [打印本页]

作者: wanglema    时间: 2011-2-24 21:50
标题: 主程序中如何申请中断?

各位大师们 你们好,我将用定时器编写一个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     ;中断返回






欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1