2、在MOV指令后加上要控制的蜂鸣器的地址。
3、设定循环次数。
4、选择DLY指令程序,定义鸣叫间隔时间。
5、设定有效时间。
6、运行程序。
#include<reg51.h>
sbit buzzer = P1^0 声明区
void delay(int)
void pulse_BZ(int,int,int)声明函数void main(void)
{
while(1)
{
pulse_BZ(500,1,1) 调用发声
delay(1000) 延时1000 X 0.5ms
pulse_BZ(500,1,1)
delay(1000)
pulse_BZ(500,1,1)
delay(1000)
pulse_BZ(200,1,1)
delay(1000)
pulse_BZ(200,1,1)
delay(1000)
}
}void delay(int x)
{
int i,j
for(i=0i<xi++)
for(j=0j<60j++)
}void pulse_BZ(int countint THint TL)
{
int i
for(i=oi<counti++) //循环count次,时间count x 1ms
{
buzzer=1 //此程序段产生1HZ 信号
delay(TH)
buzzer=0
delay(TL)
}
}
51单片机蜂鸣器
开关C语言程序:
sbit P2^0=KEY
sbit P2^1=BEEP
unsigned char KEYNUM=0
void main()
{
while(1)
{
if(KEY==0)//开关按下;
{
KEYNUM++
}
if(KEYNUM==1)//第一次按下;
{
BEEP=1//蜂鸣器响
}
if(KEYNUM==2)/第二次按下;
{
BEEP=0//蜂鸣器不响
KEYNUM=0
}
}
}
51单片机,编写延时程序,控制蜂鸣器发声:
很简单的
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit fengmingqi=P0^0//声明IO口
void delay(uint x)//延时子函数
{
uint i,j
for(i=xi>0i--)
for(j=50j>0j--)
}
void main(void)
{
while(1) //循环
{
fengmingqi=1//p0.0口高电平,蜂鸣器发声
delay(500)//延时
fengmingqi=0//p0.0口低电平,蜂鸣器不发声
delay(500)//延时
}
}
蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。我们开发板上常用的蜂鸣器就是常常说的交流蜂鸣器或直流蜂鸣器(自激式蜂鸣器)。 直流蜂鸣器是给一定的驱动直流电压就会响。而交流蜂鸣器是需要给蜂鸣器一个脉冲才会响。常见的有PWM波控制蜂鸣器的频率。脉冲就是高低电平的切换,如下图:一个方波脉冲
我们用单片机的IO口实现一种这样高低电平的方波,驱动蜂鸣器发音。我们板子上配的就是交流蜂鸣器。
接下来我们看一下蜂鸣器的硬件电路:
蜂鸣器通过三极管驱动。我们利用杜邦线将蜂鸣器的一端J8连接到板子上P1.5管脚上。
示例程序:
#include "reg52.h"
#include "intrins.h"
typedef unsigned char uint8
typedef unsigned int uint16
sbit beep = P1^5
void delay(uint16 i)
{
while(i--)
}
void main()
{
while(1)
{
beep = ~beep
delay(10)
}
}
该程序实现蜂鸣器的响和停,程序较为简单,可以在此基础上进行扩展。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)