题目:通过串口助手发送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) //延时函数 1ms
{
u8 j;
while(i--)
{
for(j=0;j<115;j++);
}
}
void usart_init() //串口初始化函数
{
SCON=0x50; //配置scon寄存器 sm1=1,REN=1
EA=1; //中断总允许位
ES=1; //串口中断允许位
}
void TIM_init() //定时器初始化函数
{
TMOD=0X20; //配置TMOD寄存器 定时器T1 方式2
TH1=TL1=0Xfd; //波特率为9600
TR1=1; //开启定时器
}
void main()
{
usart_init();
TIM_init();
while(1);
}
void usart() interrupt 4 //中断函数
{
RI=0; //RI复位
a=SBUF;
SBUF=a;
while(!TI); //判断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)
版权声明:本文为weixin_44871327原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。