1、相关基础与实现原理:
1.1 蜂鸣器实物图与原理图
说明:左图为蜂鸣器的实物图,还有其他形式,此为最常见形式;
右图为试验仪蜂鸣器工作原理图:
R20:限流电阻;
Q5:9012 PNP三极管 此处作开关用,当b级为0是三极管导通,为1时三极管关闭。
A1:即为蜂鸣器。
1.2 蜂鸣器工作原理
单片机通过P2.1来控制蜂鸣器的工作与关闭;
当P3.7=1时,PNP三极管关闭,蜂鸣器停止工作;
当P3.7=0时,PNP三极管导通,蜂鸣器开始工作。
从而单片机只需要P2.1输出0或者1开控制蜂鸣器即可。
2、试验仪位置图:
3、程序源码与试验结论:
3.1 实现的源码C51部分
//----------------------------------------------------------
//程序设计:豆豆
//程序作用:蜂鸣器开关
//适用型号:DG3000综合开发试验仪
//----------------------------------------------------------
#include<reg51.h>
sbit BEEP=P3^7;//定义LED1端口
void delayms(unsigned char ms)
// 毫秒延时子程序
{ unsigned char i;
while(ms--)
{
for(i = 0; i < 120; i++);
}
}
void main(void) //主程序
{
while(1) //循环程序
{
delayms(250);
BEEP =1; //点亮LED1
delayms(250);
BEEP =0; //熄灭LED1
}
}
3.2 实现的源码汇编部分
;----------------------------------------------------------
;程序作用:蜂鸣器开关
;----------------------------------------------------------
BEEP BIT P3.7 //定义LED为单片机管脚P0.0
ORG 0000h
AJMP MAIN ;程序跳转
ORG 0030H ;程序执行地址
MAIN:
SETB BEEP ;使BEEP输出高,关闭BEEP
LCALL DELAY ;调用延时子程序DELAY
LCALL DELAY
LCALL DELAY
CLR BEEP ;使BEEP输出=0,点亮BEEP
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
AJMP MAIN ;重复循环执行整个程序,整个程序的名字为main
DELAY:
MOV R7,#250 ;延时子程序开始,子程序名字为 DELAY
D1: MOV R6,#250
D2: DJNZ R6,D2
DJNZ R7,D1
RET
END ;结束
3.3实验结论
控制蜂鸣器的原理与LED的控制基本相同。
|