找回密码
 立即注册

QQ登录

只需一步,快速开始

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

求助大神,为什么我的中断延时实现不了

[复制链接]
跳转到指定楼层
楼主
ID:61977 发表于 2015-5-31 23:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  1. #include<Reg51.h>
  2. unsigned int delay1=0;
  3. sbit Key1=P2^6;
  4. int main()
  5. {
  6. void Timer1(int count);
  7. P2=0xff;
  8. TMOD=0x01;
  9. TH0=(65536-50000)/256;
  10. TL0=(65536-50000)%256;
  11. EA=1;
  12. ET0=1;
  13. TR0=1;
  14. while(1)
  15.    {
  16.             Key1=1;
  17.          Timer1(80);
  18.          Key1=0;                       
  19.    }
  20. }
  21. void Timer1(int count)          //延时函数
  22.         {
  23.           delay1=count;
  24.           while(delay1!=0);
  25.          
  26.         }

  27. void zhongduan()interrupt 1          //中断服务函数
  28. {
  29. if(delay1!=0)         
  30.    delay1--;
  31. TH0=(65536-50000)/256;
  32. TL0=(65536-50000)%256;


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

使用道具 举报

沙发
ID:79908 发表于 2015-6-1 00:51 | 只看该作者
首先提点建议,函数声明写在主函数之前就可以。

评分

参与人数 1黑币 +35 收起 理由
admin + 35 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

板凳
ID:79908 发表于 2015-6-1 00:59 | 只看该作者
停在while(delay1!=0);这里了

评分

参与人数 1黑币 +35 收起 理由
admin + 35 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

地板
ID:79908 发表于 2015-6-1 01:09 | 只看该作者
  1. #include<Reg52.h>
  2. unsigned char count=0;
  3. sbit LED = P2^6;
  4. void main()
  5. {
  6.         TMOD=0x01;
  7.         TH0=(65536-50000)/256;
  8.         TL0=(65536-50000)%256;
  9.         EA=1;
  10.         ET0=1;
  11.         TR0=1;
  12.         while(1)
  13.         {
  14.                  ;                          
  15.         }
  16. }
  17. void Timer0()interrupt 1          //中断服务函数
  18. {
  19.         TH0=(65536-50000)/256;
  20.         TL0=(65536-50000)%256;
  21.         count++;
  22.         if(count==80)//取晶振为12MHZ是,80*50=4000MS=4s
  23.         {
  24.                 count=0;
  25.                 LED =~LED;        //实现4S取反一次
  26.         }
  27. }
复制代码


你的int main() 却没有返回值。

评分

参与人数 1黑币 +35 收起 理由
admin + 35 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

5#
ID:81746 发表于 2015-6-1 14:24 | 只看该作者
你这是Timer1定时中断,你首先要查Timer1定时器设置正确不,然后再查能否进入中断

评分

参与人数 1黑币 +35 收起 理由
admin + 35 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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