标题:
大佬帮忙看看为什么这个单片机中断没有执行啊
[打印本页]
作者:
thgpddl
时间:
2018-7-12 11:22
标题:
大佬帮忙看看为什么这个单片机中断没有执行啊
#include <reg52.h>
unsigned char leddata[]={
0x3F, //"0"
0x06, //"1"
0x5B, //"2"
0x4F, //"3"
0x66, //"4"
0x6D, //"5"
0x7D, //"6"
0x07, //"7"
0x7F, //"8"
0x6F, //"9"
}
unsigned char h,l,count=0,i;
void intinit()
{
IT0=1;
EA=1;
EX0=1;
}
void delay()
{
for(i=1000;i>0;i--);
}
void main()
{
intinit();
while(1)
{
h=count/10;
l=count%10;
P1=leddata[h];
P2=leddata[l];
}
}
void int0() interrupt 0
{
delay();
if(P3^2==0)
{count=count+1;}
if(P3^3==0)
{count=count-1;}//延时检测按键,去除抖动
while(P3!=0xff);//按键抬起
}
复制代码
作者:
zhangyusong
时间:
2018-7-12 13:57
没有调用
作者:
chaoself
时间:
2018-7-12 16:56
没有调用呀,TH1,TL1都没有
作者:
HC6800-ES-V2.0
时间:
2018-7-13 08:52
楼上的两个回答,我认为有不专业。
第一:这是一个外部中断,哪里要什么TH1、TL1?
第二:如果原因是“没有调用”,原因是什么呢?
我的认为:
第一:这个程序你确认编译了的?下载到单片机里去了的?
之所以有这一问,就是你的程序有问题,根本编译不了嘛。13行缺分号;
第二:外部中断没有调用,就是说,没有产生外部中断——你按键肯定是产生了的,说明调用了的。
为什么没有你设想的现像呢?
P3^2是什么?C语言的意思是:P3这个变量的平方。你想表达的意思不是这个吧,是想表达为外部中断的IO口,但这个是不能这样表达的。要在main()函数以前,用sbit 去说明定义。
再好好看看书,看看别人的程序吧。
作者:
fanwangxing
时间:
2018-7-13 10:47
中断里面不要加延时,用万用表量电平有咩有变化。
作者:
柚子啊
时间:
2018-7-13 11:24
中断里面不要加延时
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1