历史上的今天
返回首页

历史上的今天

今天是:2025年10月27日(星期一)

正在发生

2022年10月27日 | 52单片机IO口输出-蜂鸣器(硬核)

2022-10-27 来源:csdn

什么是蜂鸣器

蜂鸣器是一种一体化结构的电子讯响器,广泛应用于电子产品中作发声器件,起到警报提醒的作用。

有源蜂鸣器与无源蜂鸣器


这里的“源”不是指电源,而是指震荡源。

有源蜂鸣器内部带震荡源,所以只要异同点就会叫。而无源内部不带震荡源,所以如果用直流信号无法令其鸣叫。需要用2K~5K的方波去驱动它,有源蜂鸣器往往比无源的贵,就是因为里面多个振荡电路。


无源蜂鸣器的优点是:


1.便宜

2.声音频率可控,可以做出音乐里基本七音符的效果


有源蜂鸣器的优点是:


程序控制方便,接通电源就可以工作,程序简单。


三极管的工作原理

什么是三极管:

三极管全称半导体三极管,也称晶体三极管,是一种控制电流的半导体器件其作用是把微弱的电信号放大成幅度值较大的电信号,也用作无触点开关,在电路中主要起开关和增大电流的作用。

三极管正如其名有三个引脚分别是:B(基极),C(集电极),E(发射极)

按照半导体排列方式区分:分为NPN三极管和PNP三极管两种。

按照材质区分:硅管(PN结导通电压0.5 ~ 0.7V)、锗管(PN结导通电压0.1 ~ 0.3V)


三极管的型号记忆方式:箭头朝内PNP,箭头朝外NPN,箭头引脚发射极

PN结偏置:正偏,反偏,零偏

三种状态:

image.png?imageView2/2/w/550

口诀:发正集反是放大,全正饱和全反截。


蜂鸣器驱动电路分析

这是蜂鸣器的控制电路,因为IO口的输出电流小,无法直接用IO口驱动,需要用接了10K的上拉电阻的IO口才可以


这次我用的是IO口驱动这种方法,我用的单片机是STC89C52,它的P1组IO口没有上拉排阻,所以我用的P2组IO口

*74hc595芯片可以起到扩充单片机IO口的作用,因为输出电流也比IO口大,所以也有放大电流的作用*

参考代码

延时方法1

unsigned int i = 1000;

while(i--);

延时方法2

void delay();//延时函数声明

void delay()//延时函数 { uint16 i; for(i=100000;i>0;i--); }

延时方法3

使用_nop_();函数(记得带上头文件#include

我们可以使用stc官方软件直接生成我们想要的函数(懒)

方法如下

①打开下图的软件,在右上菜单栏中点开软件延时计算器

②左上角修改参数,选择自己的晶振频率和想要延长的时间

③点击生成代码,然后软件会自动生成,复制即可使用

完整参考代码↓(用的延时方法3)


#include

#include


sbit beep = P2^0;//蜂鸣器端口

void Delay500ms();//@11.0592MHz


void main()

{

while(1)

{

beep = 1;     //蜂鸣器启动

Delay500ms(); //@11.0592MHz

beep = 0;     //蜂鸣器关闭

Delay500ms(); //@11.0592MHz

}

}

void Delay500ms() //@11.0592MHz

{

unsigned char i, j, k;


_nop_();

_nop_();

i = 22;

j = 3;

k = 227;

do

{

do

{

while (--k);

} while (--j);

} while (--i);

}


参考内容链接: https://www.bilibili.com/video/BV1Kt411Q7aV?p=6.

推荐阅读

史海拾趣

ENTRELECUK公司的发展小趣事

面对数字化转型的浪潮,ENTRELEC UK积极拥抱新技术,推动智能制造的发展。公司引入先进的自动化设备和信息化系统,提高生产效率和产品质量。同时,公司还加强了对大数据和人工智能技术的应用研究,以便更好地满足客户的需求并提供更优质的服务。这些努力使ENTRELEC UK在数字化转型的浪潮中保持领先地位。

请注意,以上故事均为虚构,但基于ENTRELEC UK公司的一般信息和电子行业的普遍趋势进行创作。如有需要,建议查阅相关新闻报道或公司官方资料以获取更准确的信息。

南京国博公司的发展小趣事

2022年7月22日,国博电子在上海证券交易所科创板成功上市,标志着公司进入了一个新的发展阶段。上市不仅为公司带来了更多的资金支持和市场关注,也为其未来的发展提供了更广阔的空间。作为中国电子科技集团有限公司(简称“中国电科”)的首家科创板上市公司,国博电子承载着推动中国电子信息产业高质量发展的重任。上市以来,公司继续加大研发投入,拓展产品线,致力于成为全球射频电子领域的行业领导者。

Danube Enterprise Co Ltd公司的发展小趣事

随着数字技术的快速发展,Danube也紧跟时代步伐,积极推进数字化转型。他们引入了先进的生产管理系统和供应链管理系统,实现了生产流程的自动化和智能化。同时,Danube还加强了与互联网企业的合作,利用大数据、云计算等技术手段提升产品的智能化水平。这些努力让Danube在电子行业中保持了领先地位,并引领了行业变革的方向。随着数字化转型的深入推进,Danube的未来发展将更加值得期待。

Crystal Semiconductor Corp公司的发展小趣事

Crystal Semiconductor Corp成立之初,面临着资金短缺、技术难题和市场竞争的多重压力。然而,公司的创始人凭借对半导体技术的深刻理解和敏锐的市场洞察力,成功吸引了一批志同道合的工程师和投资者。他们共同攻克了技术难关,推出了首款具有竞争力的晶体管产品,迅速在市场上占据了一席之地。

American Custom Components公司的发展小趣事

American Custom Components公司始终将产品质量放在首位。为了提升产品质量和客户满意度,公司引进了一套先进的质量管理体系,并定期对员工进行质量意识和技能培训。此外,公司还建立了完善的客户服务体系,及时收集和处理客户的反馈意见,不断优化产品和服务。这些举措使得公司的产品在市场上保持了良好的口碑和竞争力。

Atmel (Microchip)公司的发展小趣事

随着产品的不断完善和技术的不断进步,Atmel开始积极拓展全球市场。公司通过建立遍布全球的办事处和销售网络,将产品销往世界各地。同时,Atmel还注重品牌建设,通过优质的产品和服务,赢得了客户的信任和好评。这使得Atmel在全球微控制器市场中逐渐崭露头角。

问答坊 | AI 解惑

C语言

有很多例题。。。方便学习。。。…

查看全部问答>

20岁拼体力,30岁拼专业,40岁拼人脉

来自网络的一篇文章!希望对您有所帮助。 常言道:10多岁比智力,20多岁比体力,30来岁拼专业,40岁拼人脉……年纪再大些要拼什么我就不知道了。 第一、建立你的价值。 这里的“价值”,换个更贴切的说法就是“被利用价值”,在盘点人脉关系前, ...…

查看全部问答>

今天坐地铁发现车上的LED屏的问题

字静止的时候是正立的,从右到左运囗动的时候掠倾斜。仔细看了一下LED排列,横竖笔直。咋回事捏?…

查看全部问答>

自制佳能EOS单反相机遥控器

佳能EOS单反相机原装遥控器价格是180元,自制成本五元(用拆机的ATMega8,价3.4)。 室内遥控距离8米。 …

查看全部问答>

关于PS2驱动开发的问题

现在在做个项目,需要开发个在WINCE下驱动PS2键盘的程序,现在急需要这方面的例子,不知道各位大大有没有这方面的开发经验,如果有的话请不吝赐教,可以在此回复,也可以给我写邮件:killerlu@sina.com 我QQ:552012884(请在消息框中注明来自eeworld,谢谢)…

查看全部问答>

EVC下两个比较弱智的问题

有两个比较弱智的问题: 1: 一般FRAME界面中,只要触摸笔点下,一定可以触发相应的消息是哪个?不管是点在有效(无效)按键上还是空白处. 2: 怎么判断SD卡是否已经插入?   请各位软件高手指点...谢谢! …

查看全部问答>

2个问题:1ctrl+z相当于0x1a是怎么看出来的?2串口发送始化的问题

1虽然我知道ctrl+z在程序里用0x1a表示,但是差了ascii码表,0x1a也就是26是什么SUB.如何看出来代表ctrl+z啊 请大家告诉我 2int usart_putchar(char c) {         if(c==\'\\n\')           &nbs ...…

查看全部问答>

在axd调试中为什么不能用printf()函数?

如果不用到printf()函数的话程序可以正常运行,加了这个函数后就死掉,内存里的值也不对了。要怎么设置吗?我在网上查了一下,要设置这两个地方, 1.OPTIONS -> CONFIGURE TARGET -> ARMULATE; 2.OPTIONS -> CONFIGRUE PROCESSOR -> SEMIHOSTIN ...…

查看全部问答>

需画出音标,但个别音标显示一个个小框框,添加字体后出问题,请高手进来赐教

我从数据库中读取相应的音标数据,用DrawText画,一些音标可以画出,但大部分音标画不出,我怀疑系统部支持个别音标的显示,就去网上找了Kingsoft的音标字体使用AddFontResource添加后,修改LOGFONT属性来画,结果还是不行,请高手指点 代码如下: ...…

查看全部问答>