我给它输入1还是没反映,调试了好久,大家看看。
时间: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)
{
ES=0;
flag=0;
SBUF=a;
switch(SBUF)
{
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;
TH1=0xfd;
TL1=0xfd;
EA=1;
ES=1;
REN=1;
SM0=0;
SM1=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)
{
ES=0;
flag=0;
SBUF=a;
switch(SBUF)
{
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;
TH1=0xfd;
TL1=0xfd;
EA=1;
ES=1;
REN=1;
SM0=0;
SM1=1;
}
void delay(unsigned int i)
{
char j;
for(i; i > 0; i--)
for(j = 110; j > 0; j--);
}
是不是在初始化函数内 少了一句 TR1=1?
是不是在初始化函数内 少了一句 TR1=1?
加上去也不行啊。
我也不知道了,我也刚开始学嵌入式编程,要是硬件问题说不定还能解决一下
我又看了看,感觉你的 switch语句写的不对,SBUF是一组8位数据,不是单个的数据,所以你这样应该不对的,你再看看
void init()
{
TMOD=0x20;
TH1=0xfd;
TL1=0xfd;
EA=1;
ES=1;
REN=1;
SM0=0;
SM1=1;
}
少了一句TR1=1; //开定时器1