串口中断的程序是不是有问题啊,调了好久
时间:10-02
整理:3721RD
点击:
#include <reg51.h>
#define uint unsigned int
#define uchar unsigned char
sbit Beep = P1^5 ;
uint z,flag,a;
uchar b;
void delay(uint i);
void init();
void wuyuanbeep(uint z);
void main()
{
init();
while(1)
{
if(flag==1)
{
flag=0;
switch(a)
{
case 1:wuyuanbeep(400);break;
case 2:wuyuanbeep(200);break;
case 3:wuyuanbeep(100);break;
case 4:wuyuanbeep(0) ;break;
}
}
}
}
void wuyuanbeep(uint z)
{
Beep= 1;
delay(z);
Beep= 0;
delay(z);
}
void ser() interrupt 4
{
RI=0;
a=SBUF;
flag=1;
}
void init()
{
TMOD=0x20;//设置定时器1为工作方式2
TH1=0xfd;
TL1=0xfd;
TR1=1;
REN=1;
SM0=0;
SM1=1;
EA=1;
ES=1;
}
void delay(unsigned int i)
{
char j;
for(i; i > 0; i--)
for(j = 110; j > 0; j--);
}
#define uint unsigned int
#define uchar unsigned char
sbit Beep = P1^5 ;
uint z,flag,a;
uchar b;
void delay(uint i);
void init();
void wuyuanbeep(uint z);
void main()
{
init();
while(1)
{
if(flag==1)
{
flag=0;
switch(a)
{
case 1:wuyuanbeep(400);break;
case 2:wuyuanbeep(200);break;
case 3:wuyuanbeep(100);break;
case 4:wuyuanbeep(0) ;break;
}
}
}
}
void wuyuanbeep(uint z)
{
Beep= 1;
delay(z);
Beep= 0;
delay(z);
}
void ser() interrupt 4
{
RI=0;
a=SBUF;
flag=1;
}
void init()
{
TMOD=0x20;//设置定时器1为工作方式2
TH1=0xfd;
TL1=0xfd;
TR1=1;
REN=1;
SM0=0;
SM1=1;
EA=1;
ES=1;
}
void delay(unsigned int i)
{
char j;
for(i; i > 0; i--)
for(j = 110; j > 0; j--);
}
void ser() interrupt 4
{
RI=0;
a=SBUF;
flag=1;
}
换成
{
while(!RI);
a=SBUF;
RI=0;
}
另外,flag是做什么的?