谁知道51单片机控制蜂鸣器,使其能响出音乐。

发布网友

我来回答

1个回答

热心网友

用定时器来产生频率,如产生100Hz的声音。
思路:
100Hz即每秒变换200次,每次的时间就是1/200秒=0.005秒=5毫秒。
计算定时器的初值:TH0 = 0x0EE; TL0 = 0x00;

#include <reg51.h>
sbit BEEP=P0^0;//蜂鸣器引脚
void main(void)
{
//初始化定时器(晶振:11.0592MHz,12T)
TMOD = 0x01;
TH0 = 0x0EE;//5毫秒中断一次
TL0 = 0x00;
EA = 1;//开总中断
ET0 = 1;;//开中断
TR0 = 1;//启动定时器
while(1);//死循环等蜂鸣器响。
}
void Timer0Interrupt(void) interrupt 1
{
TH0 = 0x0EE;
TL0 = 0x00;
BEEP=!BEEP;//变换一次蜂鸣器
}

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com