本帖最后由 茫海千寻 于 2011-4-26 21:56 编辑
刚写的一个简单中断函数,有些问题请教,是不是下面的程序写的有不足啊,有时候中断处理完后,不能接着原来的数据显示直接就又从零开始了!
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit BEEP=P3^6;
uchar table[]={0xc0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,
0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E};
delay(uint x)
{
uint a,b;
for(a=x;x>0;x--)
for(b=110;b>0;b--) ;
}
main()
{
uchar i;
EA=1;
EX0=1;
IT0=1;
while(1)
{
P2=0xfe; //数码管位选
for(i=0;i<10;i++)
{
P0=table; //数码管段选
delay(300);
}
}
}
void int0() interrupt 0
{
BEEP=0;
delay(50);
BEEP=1;
} |