找回密码
 立即注册

QQ登录

只需一步,快速开始

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

大佬帮忙看看为什么这个单片机中断没有执行啊

[复制链接]
跳转到指定楼层
楼主
ID:367469 发表于 2018-7-12 11:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  1. #include <reg52.h>
  2. unsigned char leddata[]={
  3.                 0x3F,  //"0"
  4.                 0x06,  //"1"
  5.                 0x5B,  //"2"
  6.                 0x4F,  //"3"
  7.                 0x66,  //"4"
  8.                 0x6D,  //"5"
  9.                 0x7D,  //"6"
  10.                 0x07,  //"7"
  11.                 0x7F,  //"8"
  12.                 0x6F,  //"9"
  13.                          }

  14. unsigned char h,l,count=0,i;

  15. void intinit()
  16. {
  17. IT0=1;
  18. EA=1;
  19. EX0=1;
  20. }

  21. void delay()
  22. {
  23.         for(i=1000;i>0;i--);        
  24. }

  25. void main()
  26. {
  27. intinit();
  28.         while(1)
  29.         {
  30.         h=count/10;
  31.         l=count%10;
  32.         P1=leddata[h];
  33.         P2=leddata[l];
  34.         }
  35. }

  36. void int0() interrupt 0
  37. {
  38. delay();
  39. if(P3^2==0)
  40. {count=count+1;}
  41. if(P3^3==0)
  42. {count=count-1;}//延时检测按键,去除抖动
  43. while(P3!=0xff);//按键抬起
  44. }
复制代码



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

使用道具 举报

沙发
ID:370162 发表于 2018-7-12 13:57 | 只看该作者
没有调用
回复

使用道具 举报

板凳
ID:269211 发表于 2018-7-12 16:56 | 只看该作者
没有调用呀,TH1,TL1都没有
回复

使用道具 举报

地板
ID:164602 发表于 2018-7-13 08:52 | 只看该作者
楼上的两个回答,我认为有不专业。
第一:这是一个外部中断,哪里要什么TH1、TL1?
第二:如果原因是“没有调用”,原因是什么呢?
我的认为:
第一:这个程序你确认编译了的?下载到单片机里去了的?
之所以有这一问,就是你的程序有问题,根本编译不了嘛。13行缺分号;
第二:外部中断没有调用,就是说,没有产生外部中断——你按键肯定是产生了的,说明调用了的。
为什么没有你设想的现像呢?
P3^2是什么?C语言的意思是:P3这个变量的平方。你想表达的意思不是这个吧,是想表达为外部中断的IO口,但这个是不能这样表达的。要在main()函数以前,用sbit 去说明定义。

再好好看看书,看看别人的程序吧。
回复

使用道具 举报

5#
ID:370755 发表于 2018-7-13 10:47 | 只看该作者
中断里面不要加延时,用万用表量电平有咩有变化。
回复

使用道具 举报

6#
ID:370718 发表于 2018-7-13 11:24 | 只看该作者
中断里面不要加延时
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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