此帖出自嵌入式系统论坛
最新回复
这个也能实现,可参考一下
#include
#include
unsigned flag,temp;
sbit BEEP=P3^4;
void delay(unsigned int timer)
{
unsigned int i,j;
for(i=timer;i>0;i--)
for(j=120;j>0;j--);
}
void beep(unsigned int freq)
{
// unsigned int i;
BEEP=0;
delay(freq);
BEEP=1;
delay(freq);
}
void main(void)
{
unsigned char ldat;
EA=1; //开启总中断
TMOD=0X20; //设置定时器1为模式2,做为波特率发生器
TL1=0xF3; //9600波特率的初值,板子使用12M晶振,初值=256-12000000/32/12/2400
TH1=0xF3; //
TR1=1; //启动波特率发生
SCON=0x50; //串口方式2
ES=1;
while(1)
{
if(flag==1)
{
ES=0;
flag=0;
SBUF=temp;
while(!TI);
TI=0;
ES=1;
}
/* if(RI)
{
P0=SBUF; //查询是否有数据接收
ldat=SBUF; //数据暂存于变量中
RI=0; //重新清0等待接收
SBUF=ldat; //将接收到的数据发送出去
while(!TI); //等待发送完成
TI=0;
}*/
}
}
void ser() interrupt 4
{
RI=0;
// P0=SBUF;
temp=SBUF;
switch(temp)
{
case 1:beep(400);break;
case 2:beep(200);break;
case 3:beep(100);break;
case 4:BEEP=1;break;
default :break;
}
flag=1;
}
详情
回复
发表于 2010-4-29 19:34
| ||
|
||
| |
|
|
| |
|
|
此帖出自嵌入式系统论坛
| ||
|
||
| |
|
|
| |
|
|
此帖出自嵌入式系统论坛
| ||
|
||
此帖出自嵌入式系统论坛
| ||
|
||
| |
|
|
此帖出自嵌入式系统论坛
| ||
|
||
此帖出自嵌入式系统论坛
| ||
|
||
EEWorld Datasheet 技术支持