为什么我进入不了中断系统,程序如下,大神进来看下,谢谢了。
void Delay(unsigned int c);
unsigned int k=0;
void main()
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
P1=0x00;
P0=0x00;
if(k==20)
{
k=0;
P0=0x3f;
Delay(5);
P0=0x00;
}
}
void exter0() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
k++;
}
void Delay(unsigned int c)
{
int a,b;
for(;c>0;c--)
{
for(a=123;a>0;a--)
{
for(b=100;b>0;b--);
}
}
}
程序看了没有什么问题,是不是硬件上有问题呢?电平对不?
这样写应该可以,中断不需要加延时,这个程序是延时了1s吧,我这样写有现象。
#include<reg51.h>
void Delay(unsigned int x);
unsigned int k=0;
void main()
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
P1=0x00;
P0=0x00;
while(1)
{
if(k==20)
{
k=0;
P1=0x3f;
// Delay(5);
// P1=0x00;
}
}
}
void exter0() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
k++;
}
/*void Delay(unsigned int x)
{
int a,b,c;
for(c=x;c>0;c--)
{
for(a=123;a>0;a--)
{
for(b=100;b>0;b--);
}
}
} */