找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4908|回复: 0
打印 上一主题 下一主题
收起左侧

主程序中如何申请中断?

[复制链接]
跳转到指定楼层
楼主
ID:28165 发表于 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     ;中断返回

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表