题目:通过串口助手发送1,蜂鸣器以400ms频率发声;发送2,以200ms频率发声;发送3,以100ms频率发声;发送4,蜂鸣器不发声。
#include"reg51.h"
typedef unsigned int u16;
typedef unsigned char u8;
sbit buzzer=P0^0;
u16 a;
u16 b;
void delay(u16 i)
{
u8 j;
while(i--)
{
for(j=0;j<115;j++);
}
}
void usart_init()
{
SCON=0x50;
EA=1;
ES=1;
}
void TIM_init()
{
TMOD=0X20;
TH1=TL1=0Xfd;
TR1=1;
}
void main()
{
usart_init();
TIM_init();
while(1);
}
void usart() interrupt 4
{
RI=0;
a=SBUF;
SBUF=a;
while(!TI);
TI=0;
switch(a)
{
case(1):b=200;break;
case(2):b=100;break;
case(3):b=50;break;
case(4):b=0;break;
}
buzzer=0;
delay(b);
buzzer=1;
delay(b);
}
串口助手
元器件
COMPIM
AT89C51(AT89C52)