用单片机驱动蜂鸣器唱歌的设计与原理

单片机驱动蜂鸣器唱歌的设计与原理
1.蜂鸣器
蜂鸣器是一种一体化结构的电子讯响器,主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型,他广泛应用于计算机、打印机、复印机、报警器、电话机等电子产品中作发声器件。
2.单片机驱动
单片机上面使用的蜂鸣器一般都是无源电磁式的蜂鸣器(如下图所
示)。它由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场,振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。
蜂鸣器发声原理是电流通过电磁线圈,使电磁线圈产生磁场来驱动振
动膜发声的,因此需要一定的电流才能驱动它,单片机10引脚输出的电流较小,单片机输出的TTL电平基本上驱动不了蜂鸣器,因此需要增加一个电流放大的电路。单片机与蜂鸣器连接如图二所示。
1柴油车尾气处理
图中,蜂鸣器的正极接到VCC (+ 5V)电源上面,蜂鸣器的负极接到三极管的发射极E,三极管的基级B经过限流电阻R1后由单片机的P3.7 引脚控制,当P3.7输出高电平时,三极管T1截止,没有电流流过线圈,蜂鸣器不发声;当P3.7输出低电平时,三极管导通,这样蜂鸣器的电流形成回路,发出声音。因此,我们可
以通过程序控制P3.7脚的电平来使
蜂鸣器发出声音和关闭。
程序中改变单片机P3.7引脚输出波形的频率,就可以调整控制蜂鸣器音调,产生各种不同音、音调的声音。另外,改变P3.7输出电平的高
低电平占空比,则可以控制蜂鸣器的声音大小,这些我们都可以通过编程实验来验证。
下面就是一个能够发出音乐的单片机程序,示例中所播放的音乐是
《两只老虎》。
SPK EQU P3.7 ;位定义
ORG 0000H ;伪指令,指定程序从0000H开始存
LJMP START ;程序跳转至START处执行
ORG 0030H ;伪指令,指定程序从0030H开始存
START: MOV SP,#60H ;堆栈初始化
聚醚类消泡剂
MOV R3,#00H ;给R3赋值
NEXT:
MOV A,R3
MOV DPTR,#TABLE ;查歌曲表
MOVC A,@A+DPTR
JZ START ;为00则循环播放此歌
MOV R7,A ;R7/R2保存连续相邻的表数据INC R3
MOV A,R3
MOVC A,@A+DPTR
MOV R2,A
ACALL SONG
微波感应模块INC R3
SJMP NEXT
J
J - 歌人曲播放子程序
=
J
SONG:
MOV A,R2 ;取出节拍
RL    A
安全二维码JNZ KEEP ;A不等于零则跳
MOV A,#01H ;A等于零则赋值为1 KEEP:
MOV R2,A ;
REPEAT:
ACALL EIGHTH ;调用1/8拍延时程序
DJNZ R2,REPEAT ;
RET
======= 产生1/8拍延时子程序=======
EIGHTH:
MOV A,R7 ;查表取出延时参数,保存到R4
MOV DPTR,#DELAY_T
MOVC A,@A+DPTR
MOV R4,A
MOV A,R7 ;查表取出1/8拍周期数,保存到R5 MOV DPTR,#S_PARA
导丝男士
MOVC A,@A+DPTR
MOV R5,A
NEXTC
YC:
ACALL SOUND
DJNZ R5,NEXTC YC
RET
J
『r —]、/
- 发声子程序
J
SOUND:
SETB SPK
ACALL SDELAY
CLR SPK
ACALL SDELAY
抗干扰滤波器RET
,一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一
;=========== 延时子程序===========
,一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一
SDELA Y:
MOV A,R4 ;延时值在R4内
MOV R0,A
XL2:
MOV R1,#03H
DL1:
NOP
DJNZ R1,DL1
DJNZ R0,XL2
RET
;===========1/8 拍周期表==========
,一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一
S_PARA:
DS 1DH
DB 15H,16H,00

本文发布于:2024-09-24 20:30:58,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/2/163543.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:蜂鸣器   单片机   电流   线圈
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议