#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--);
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
加上去也不行啊。
{
TMOD=0x20;
TH1=0xfd;
TL1=0xfd;
EA=1;
ES=1;
REN=1;
SM0=0;
SM1=1;
}
少了一句TR1=1; //开定时器1
一周热门 更多>