AVR单片机驱动有源蜂鸣器实验程序

合集下载

单片机实验报告-蜂鸣器驱动实验

单片机实验报告-蜂鸣器驱动实验

本科实验报告课程名称:单片机原理与接口技术实验项目:蜂鸣器驱动实验实验地点:电机馆专业班级:学号:学生姓名:指导教师:2015年 6 月9 日蜂鸣器驱动实验一、实验目的1、学习输入/输出端口控制方法2、了解音频发声原理二、实验说明本实验是利用89C51端口定时器输出控制端口,驱动扬声器发声,声音的频率高低由延时快慢控制。

本实验是利用单片机唱歌的声音控制程序,请用户思考如何修改程序,可以让蜂鸣器发出不同频率,不同长短的声音。

三、实验原理1、通过单片机控制驱动信号使蜂鸣器发出不同音调的声音,驱动方波的频率越高,音调就越高;驱动方波频率越低,音调越低。

由此,我们可以根据驱动方波的频率使蜂鸣器凑出各种音调的声音。

2、由于单片机I/O口的输出电流较小,因此需要三极管放大电路驱动蜂鸣器。

四、主要仪器设备单片机仿真试验箱,THKL-C51型单片机仿真器,计算机五、实验内容及步骤INT1输出音频信号接音频驱动电路,使蜂鸣器的发声。

1、使用单片机最小应用系统和蜂鸣器模块。

蜂鸣器模块的短路帽J1插到VCC方向,用导线将INT1接到蜂鸣器输入端。

2、用串行数据通信线连接计算机与仿真器,把仿真器插到模块的锁紧插座中,请注意仿真器的方向:缺口朝上。

3、打开Keil uVision2仿真软件,首先建立本实验的项目文件,接着添加“MUSIC.ASM”源程序,进行编译,直到编译无误。

4、全速运行程序,扬声器周期性的发出“八月桂花开”歌曲。

(添加“MUSIC1.ASM”程序为“祝你平安”歌曲)5、也可以把源程序编译成可执行文件,把可执行文件用ISP烧录器烧录到89S52/89S51芯片中运行。

(ISP烧录器的使用查看附录二)六、流程图及源程序开始输出音频脉冲低电平延时输出音频脉冲高电平延时;标题 '祝你平安'发声程序ORG 0000HLJMP STARTORG 000BHINC 20H ;中断服务,中断计数器加1MOV TH0,#0D8HMOV TL0,#0EFH ;12M晶振,形成10毫秒中断RETISTART:mov dptr,#2000h ;站长添加,使得程序开始运行时在数码管上显示一个小数点 mov a,#80hmovx @dptr,aMOV SP,#50HMOV TH0,#0D8HMOV TL0,#0EFHMOV TMOD,#01HMOV IE,#82HMUSIC0:NOPMOV DPTR,#DAT ;表头地址送DPTRMOV 20H,#00H ;中断计数器清0MOV B,#00H ;表序号清0MUSIC1:NOPCLR AMOVC A,@A+DPTR ;查表取代码JZ END0 ;是00H,则结束CJNE A,#0FFH,MUSIC5LJMP MUSIC3MUSIC5:NOPMOV R6,AINC DPTRMOV A,BMOVC A,@A+DPTR ;取节拍代码送R7MOV R7,ASETB TR0 ;启动计数MUSIC2:NOPCPL P2.2MOV A,R6MOV R3,ALCALL DELMOV A,R7CJNE A,20H,MUSIC2 ;中断计数器(20H)=R7否?;不等,则继续循环MOV 20H,#00H ;等于,则取下一代码cpl p1.0 ;站长添加,使得程序运行时小数点跟着音乐节拍闪烁 INC DPTRINC BLJMP MUSIC1MUSIC3:NOPCLR TR0 ;休止100毫秒MOV R2,#0DHMUSIC4:NOPMOV R3,#0FFHLCALL DELDJNZ R2,MUSIC4INC DPTRLJMP MUSIC1END0:NOPMOV R2,#64H ;歌曲结束,延时1秒后继续MUSIC6:MOV R3,#00HLCALL DELDJNZ R2,MUSIC6LJMP MUSIC0DEL:NOPDEL3:MOV R4,#02HDEL4:NOPDJNZ R4,DEL4NOPDJNZ R3,DEL3RETNOPDAT:db 26h,20h,20h,20h,20h,20h,26h,10h,20h,10h,20h,80h,26h,20h,30h,20h db30h,20h,39h,10h,30h,10h,30h,80h,26h,20h,20h,20h,20h,20h,1ch,20h db20h,80h,2bh,20h,26h,20h,20h,20h,2bh,10h,26h,10h,2bh,80h,26h,20h db30h,20h,30h,20h,39h,10h,26h,10h,26h,60h,40h,10h,39h,10h,26h,20h db30h,20h,30h,20h,39h,10h,26h,10h,26h,80h,26h,20h,2bh,10h,2bh,10h db2bh,20h,30h,10h,39h,10h,26h,10h,2bh,10h,2bh,20h,2bh,40h,40h,20h db20h,10h,20h,10h,2bh,10h,26h,30h,30h,80h,18h,20h,18h,20h,26h,20h db20h,20h,20h,40h,26h,20h,2bh,20h,30h,20h,30h,20h,1ch,20h,20h,20h db20h,80h,1ch,20h,1ch,20h,1ch,20h,30h,20h,30h,60h,39h,10h,30h,10h db20h,20h,2bh,10h,26h,10h,2bh,10h,26h,10h,26h,10h,2bh,10h,2bh,80h db18h,20h,18h,20h,26h,20h,20h,20h,20h,60h,26h,10h,2bh,20h,30h,20h db30h,20h,1ch,20h,20h,20h,20h,80h,26h,20h,30h,10h,30h,10h,30h,20h db39h,20h,26h,10h,2bh,10h,2bh,20h,2bh,40h,40h,10h,40h,10h,20h,10h db 20h,10h,2bh,10h,26h,30h,30h,80h,00HEND七、电路图。

单片机实验报告蜂鸣器

单片机实验报告蜂鸣器

一、实验目的1. 熟悉51单片机的基本结构和工作原理。

2. 掌握51单片机的I/O口编程方法。

3. 学习蜂鸣器的驱动原理和应用。

4. 通过实验,提高动手实践能力和问题解决能力。

二、实验原理蜂鸣器是一种将电信号转换为声音信号的器件,常用于产生按键音、报警音等提示信号。

根据驱动方式,蜂鸣器可分为有源蜂鸣器和无源蜂鸣器。

1. 有源蜂鸣器:内部自带振荡源,将正负极接上直流电压即可持续发声,频率固定。

2. 无源蜂鸣器:内部不带振荡源,需要控制器提供振荡脉冲才能发声,调整提供振荡脉冲的频率,可发出不同频率的声音。

在本次实验中,我们使用的是无源蜂鸣器。

51单片机通过控制P1.5端口的电平,产生周期性的方波信号,驱动蜂鸣器发声。

三、实验器材1. 51单片机实验板2. 蜂鸣器3. 连接线4. 电路焊接工具5. 编程软件(如Keil)四、实验步骤1. 电路连接:- 将蜂鸣器的正极连接到51单片机的P1.5端口。

- 将蜂鸣器的负极接地。

2. 程序编写:- 使用Keil软件编写程序,实现以下功能:1. 初始化P1.5端口为输出模式。

2. 通过循环,不断改变P1.5端口的电平,产生方波信号。

3. 调整方波信号的频率,控制蜂鸣器的音调。

3. 程序下载:- 将程序下载到51单片机中。

4. 实验观察:- 启动程序后,观察蜂鸣器是否发声,以及音调是否与程序设置一致。

五、实验结果与分析1. 实验结果:- 成功驱动蜂鸣器发声,音调与程序设置一致。

2. 结果分析:- 通过实验,我们掌握了51单片机的I/O口编程方法,以及蜂鸣器的驱动原理。

- 在程序编写过程中,我们学习了方波信号的生成方法,以及如何调整方波信号的频率。

六、实验总结本次实验成功地实现了51单片机控制蜂鸣器发声的功能,达到了预期的实验目的。

通过本次实验,我们提高了以下能力:1. 对51单片机的基本结构和工作原理有了更深入的了解。

2. 掌握了51单片机的I/O口编程方法。

3. 学习了蜂鸣器的驱动原理和应用。

单片机《蜂鸣器》实验报告

单片机《蜂鸣器》实验报告

单片机《蜂鸣器》实验报告实验报告:蜂鸣器实验工具和器材:Proteus仿真软件,Keil程序编写软件,蜂鸣器,AT89C51单片机。

实验原理:蜂鸣器分为压电式和电磁式两种类型。

本实验采用的是电磁式蜂鸣器。

蜂鸣器又分为有源和无源两种类型。

本实验采用的是有源蜂鸣器。

通过51单片机和C程序,将程序所设计的算法与蜂鸣器电路连接起来,采用循环函数配合多个延时来实现各个音节的有规律发声,合成一首完整的音乐。

本实验采用较为简单的一首儿歌《两只老虎》来体现。

硬件电路说明:本实验使用电磁式蜂鸣器,蜂鸣器连接单片机P2.0端口,另一端接地。

通过C程序产生的hex文件控制蜂鸣器发声,播放一首完整的歌曲。

音节的曲调和间隔时间都是构成歌曲的一个重要部分,需要调节频率和利用延时函数。

控制发声频率要产生音频脉冲,只要算出某一音频的周期/频率,然后将此周期除以2(即为半周期的时间)。

利用定时器计时这半个周期时间,就可在I/O脚上得到此频率的脉冲。

利用AT89C51的内部定时器使其工作在计数器模式下,改变计数值TH0及TL0从而产生不同频率。

此外,结束符和休止符可以分别用代码00H和XXX来表示,若查表结果为0x00,则表示曲子终了;若查表结果为0xff,则产生相应的停顿效果。

软件程序说明:主函数采用while和for循环,并且引用延时函数,对各部分程序进行调用。

与采用一般的延时函数相比,可以分别控制歌曲各个音节的持续发声。

在主函数中,使用多个for循环来控制每个音节的起始和结束,以实现蜂鸣器对一首完整歌曲的播放。

通过调用不同的延时函数,实现有节奏的音节发声,并将它们串联起来。

在调用Beep函数时,需要进行定义。

在主函数中,分别在每个音节开始前后的两个for循环中调用Beep函数。

通过Beep=~Beep和Beep=1指令的调用,实现各个音节的发声和停止,从而控制歌曲的有节奏播放。

为了实现各个音节的延时发声,我们使用了多个延时程序,例如500ms和700ms。

如何有效编程单片机有源蜂鸣器驱动

如何有效编程单片机有源蜂鸣器驱动

如何有效编程单片机有源蜂鸣器驱动
 蜂鸣器是很常见的设备,分为无源和有源两种。

根据项目需求选择不同类型的蜂鸣器。

最近的项目里有用到有源蜂鸣器对有源蜂鸣器。

还是老一套,把电路板画完,接着编程。

 在项目中原理图如下:
 如果不能保证I/O的输出性能可以根据情况增加上拉或者下拉电阻。

 切入正题:在程序里面这个蜂鸣器的驱动就是个高低电平驱动。

高电平三极管导通、蜂鸣器发声,低电平三极管关断、蜂鸣器不发声。

这的确很简单,程序上最开始我是这样写的:
 当然,如果单片机没有很好的I/O跳变函数也可以这样修改:
 这里稍作解释:
 1)。

单片机实验报告蜂鸣器

单片机实验报告蜂鸣器

单片机实验报告蜂鸣器单片机实验报告:蜂鸣器引言:单片机是现代电子技术中的重要组成部分,其广泛应用于各个领域。

蜂鸣器作为一种常见的声音输出设备,在单片机实验中也被广泛使用。

本文将介绍蜂鸣器的原理、实验过程以及实验结果,并对实验中遇到的问题进行分析和解决。

一、蜂鸣器的原理蜂鸣器是一种能够产生声音的装置,其原理基于压电效应。

压电材料在受到外力作用时会产生电荷,而当外力消失时,压电材料则会产生相反方向的电荷。

利用这种特性,蜂鸣器可以通过施加电压来使压电材料振动,从而产生声音。

二、实验过程1. 准备工作:首先,我们需要准备一块单片机开发板、一个蜂鸣器和相关电路连接线。

2. 连接电路:将单片机的IO口与蜂鸣器连接,注意正确连接正负极。

一般情况下,蜂鸣器的正极连接到单片机的IO口,负极连接到GND。

3. 编写程序:使用单片机开发工具,编写一个简单的程序来控制蜂鸣器。

例如,我们可以通过控制IO口的高低电平来控制蜂鸣器的开关状态。

4. 烧录程序:将编写好的程序烧录到单片机中。

5. 实验测试:将单片机开发板连接到电源,观察蜂鸣器是否发出声音。

可以通过改变程序中IO口的电平来控制蜂鸣器的开关状态,从而产生不同的声音。

三、实验结果经过实验,我们成功地控制了蜂鸣器的开关状态,并产生了不同的声音效果。

通过改变程序中IO口电平的高低,我们可以调节蜂鸣器的频率和音调。

此外,我们还可以通过控制IO口的输出时间来调节蜂鸣器发声的时长。

四、问题分析与解决在实验过程中,我们可能会遇到一些问题,例如蜂鸣器无法发声或声音不稳定等。

这些问题可能是由以下原因引起的:1. 连接错误:检查蜂鸣器的正负极是否正确连接到单片机的IO口和GND。

确保连接线没有松动或接触不良。

2. 程序错误:检查程序中的代码是否正确,特别是IO口的控制部分。

确保程序正确地控制了蜂鸣器的开关状态。

3. 电源问题:检查单片机开发板的电源是否正常。

如果电源电压不稳定,可能会导致蜂鸣器无法正常工作。

蜂鸣器变声控制实验单片机实验报告

蜂鸣器变声控制实验单片机实验报告

蜂鸣器变声控制实验单片机实验报告一、实验目的1、了解单片机控制蜂鸣器发声的原理。

2、学会使用单片机控制蜂鸣器的频率、占空比、时长等特性。

3、掌握编写蜂鸣器变声程序的方法。

二、实验器材1、单片机培训板。

2、蜂鸣器。

3、杜邦线若干。

三、实验原理1、蜂鸣器通常是由震动片、驱动电路和音箱构成的,同时需要满足一定的电源条件和频率特性才能发声。

四、实验内容1、将蜂鸣器与单片机连接好。

3、观察蜂鸣器的变声效果。

五、实验步骤1、将蜂鸣器与单片机连接好。

将蜂鸣器的正极连接单片机的P1.0口,将蜂鸣器的负极连接单片机的GND口。

2、编写蜂鸣器变声程序,具体过程如下:1)定义相关变量和函数:需要定义相关变量和函数,例如频率、占空比、时长等变量,以及控制蜂鸣器发声的函数。

2)初始化:需要对单片机进行初始化设置,包括端口初始化、定时器初始化等。

3)控制蜂鸣器发声:通过改变PWM的频率、占空比、时长等特性,来控制蜂鸣器的发声。

4)停止蜂鸣器发声:在需要停止蜂鸣器发声时,关闭PWM输出端口即可。

3、观察蜂鸣器的变声效果。

根据程序设定的频率、占空比和时长等特性,可以看到蜂鸣器在不同的情况下发出不同的声音。

六、实验结果1、在经过程序设计后,蜂鸣器成功发出变声效果,根据程序的要求可以发出不同的声音。

3、在实验中还可以通过添加其他的控制模块,例如按键、温度传感器等,来实现更复杂的控制操作。

1、本次实验主要掌握了单片机控制蜂鸣器发声的原理和方法,通过自己编写程序来控制蜂鸣器发声。

3、通过本次实验,学生们不仅掌握了相关的电路和编程知识,同时还锻炼了自己的实践能力和创新思维。

单片机《蜂鸣器》实验报告

单片机《蜂鸣器》实验报告

单片机《蜂鸣器》实验报告单片机《蜂鸣器》实验报告一、实验目的本次实验旨在通过单片机的控制,实现对蜂鸣器的驱动和发声控制,进一步了解蜂鸣器的工作原理及应用。

二、实验原理蜂鸣器是一种电子发声器件,常用于发出警告、提示或声音信号。

其工作原理是利用电磁感应原理,在蜂鸣器线圈中通入电流时,会产生磁场,该磁场与蜂鸣器内部的一块磁铁产生相互作用力,使蜂鸣器内部的膜片发生振动,从而发出声音。

在本实验中,我们将通过单片机控制蜂鸣器的驱动信号,使其发出不同的声音,从而实现单片机对蜂鸣器的控制。

三、实验步骤1、准备实验器材:单片机开发板、蜂鸣器模块、杜邦线等。

2、将蜂鸣器模块连接至单片机开发板的某个数字引脚上。

3、通过单片机编程软件编写控制程序,实现对蜂鸣器的控制。

4、将编写好的程序下载到单片机开发板中,并进行调试。

5、通过单片机控制蜂鸣器发出不同的声音,观察其工作情况。

四、实验结果与分析1、实验结果通过本次实验,我们成功实现了单片机对蜂鸣器的控制,可以通过编写不同的程序,使蜂鸣器发出不同的声音。

以下是实验中蜂鸣器发出的声音及其对应的程序代码:(1) 发出“滴”的一声(2) 发出“嘟嘟”的警告声2、结果分析通过实验结果可以看出,通过单片机对蜂鸣器进行控制,可以实现发出不同声音的效果。

在第一个实验中,我们通过设置引脚的高低电平及延时时间,使蜂鸣器发出一声“滴”的声音。

在第二个实验中,我们通过一个无限循环,使蜂鸣器发出“嘟嘟”的警告声。

五、结论与展望通过本次实验,我们深入了解了蜂鸣器的工作原理及应用,并成功实现了单片机对蜂鸣器的控制。

实验结果表明,我们可以根据实际需要编写不同的程序,实现对蜂鸣器的灵活控制。

展望未来,我们可以进一步研究蜂鸣器的其他应用场景,例如在智能家居、机器人等领域中的应用。

我们也可以通过其他方式对蜂鸣器进行控制,例如通过传感器采集信号或者通过无线网络进行远程控制等。

单片机蜂鸣器控制实验报告

单片机蜂鸣器控制实验报告

单片机蜂鸣器控制实验报告摘要:本实验旨在通过使用单片机(Microcontroller Unit,MCU)来控制蜂鸣器发出不同的声音,进一步熟悉单片机的使用和控制技术。

通过实验,我们可以了解如何编程控制蜂鸣器,从而为更复杂的电子设备的开发做好准备。

本实验基于XXXXX单片机平台进行,具体的实验步骤和控制代码将在下文进行详细说明。

1. 实验介绍单片机蜂鸣器控制实验是一项基础实验,旨在让学生了解单片机的控制原理和实践操作。

在实验中,我们使用XXXXX单片机平台。

此平台具有良好的可编程性,且集成了许多功能模块,是学习和使用单片机的理想选择。

2. 实验材料- XXXXX单片机开发板- 蜂鸣器模块- 连接线- 电源3. 实验步骤3.1 连接电路将蜂鸣器模块的正极与单片机开发板的IO口相连,将负极与开发板的GND相连。

使用连接线进行正确的连接。

3.2 编程调试根据单片机平台的要求,采用XXXXX编程语言编写蜂鸣器控制程序。

以下是一段示例代码:```#include <XXXXX.h>int main() {while(1) {// 产生蜂鸣器控制信号XXXXX_WritePin(GPIOX, PinX, HIGH);delay_ms(1000);XXXXX_WritePin(GPIOX, PinX, LOW);delay_ms(1000);}}```在该示例代码中,通过控制GPIOX的PinX引脚输出高电平或低电平,来控制蜂鸣器的工作状态。

通过设置适当的延迟时间,我们可以调整蜂鸣器的鸣叫频率和持续时间。

3.3 烧录程序将编写好的程序烧录到单片机开发板中。

按照开发板的烧录方法进行操作。

3.4 调试和测试烧录完成后,将开发板连接到电源,并观察蜂鸣器的工作情况。

根据我们在代码中设定的参数,蜂鸣器应该会发出特定频率和持续时间的声音。

4. 结果与分析在实验过程中,我们可以根据需要编写不同的程序来控制蜂鸣器的状态,例如不同的频率、间隔时间和持续时间。

单片机蜂鸣器实验报告

单片机蜂鸣器实验报告

一、实验目的1. 了解单片机I/O的工作方式;2. 熟悉51单片机的汇编指令;3. 掌握蜂鸣器的工作原理及驱动方法;4. 学会通过单片机控制蜂鸣器发声,实现音乐播放功能。

二、实验原理1. 单片机:单片机是一种具有微处理器的集成电路,它将微处理器、存储器、输入/输出接口等集成在一个芯片上,具有体积小、功耗低、成本低等特点。

2. 蜂鸣器:蜂鸣器是一种将电信号转化为声音信号的装置,广泛应用于计算机、打印机、复印机、报警器、电子玩具等电子产品中。

蜂鸣器主要分为有源蜂鸣器和无源蜂鸣器两种类型。

有源蜂鸣器内置振荡源,可直接发声;无源蜂鸣器无内置振荡源,需要控制器提供振荡脉冲才能发声。

3. 51单片机与蜂鸣器连接:51单片机通过P1.0端口控制蜂鸣器,当P1.0端口输出高电平时,蜂鸣器发声;输出低电平时,蜂鸣器停止发声。

三、实验器材1. 51单片机实验板;2. 蜂鸣器;3. 连接线;4. 信号源;5. 示波器;6. 计算机及仿真软件(如Proteus)。

四、实验步骤1. 将蜂鸣器连接到51单片机实验板的P1.0端口;2. 编写程序,实现以下功能:(1)初始化51单片机系统;(2)通过P1.0端口控制蜂鸣器发声;(3)实现音乐播放功能;3. 将程序烧录到51单片机实验板;4. 使用示波器观察蜂鸣器发出的声音波形;5. 使用信号源模拟按键输入,验证蜂鸣器控制功能;6. 使用Proteus仿真软件验证程序功能。

五、实验结果与分析1. 通过实验,成功实现了51单片机控制蜂鸣器发声,验证了单片机I/O的工作方式和51单片机的汇编指令;2. 实现了音乐播放功能,验证了蜂鸣器的工作原理及驱动方法;3. 通过示波器观察,蜂鸣器发出的声音波形符合预期,验证了程序的正确性;4. 通过Proteus仿真软件,验证了程序在虚拟环境中的正确性。

六、实验总结1. 通过本次实验,掌握了单片机I/O的工作方式,熟悉了51单片机的汇编指令;2. 理解了蜂鸣器的工作原理及驱动方法,学会了通过单片机控制蜂鸣器发声;3. 提高了动手实践能力,培养了团队协作精神。

单片机驱动蜂鸣器原理与程序

单片机驱动蜂鸣器原理与程序

单片机驱动蜂鸣器原理与设计下面是电磁式蜂鸣器的外形图片及结构图。

时,三极管T1截止,没有电流流过线圈,蜂鸣器不发声;当P3.7输出低电平时,三极管导通,这样蜂鸣器的电流形成回路,发出声音。

因此,我们可以通过程序控制P3.7脚的电平来使蜂鸣器发出声音和关闭。

程序中改变单片机P3.7引脚输出波形的频率,就可以调整控制蜂鸣器音调,产生各种不同音色、音调的声音。

另外,改变P3.7输出电平的高低电平占空比,则可以控制蜂鸣器的声音大小,这些我们都可以通过编程实验来验证。

二、蜂鸣器列子下面我们举几个简单的单片机驱动蜂鸣器的编程和电路设计的列子。

1、简单的蜂鸣器实验程序:本程序通过在P3.7输出一个音频范围的方波,驱动实验板上的蜂鸣器发出蜂鸣声,其中DELAY延时子程序的作用是使输出的方波频率在人耳朵听觉能力之内的20KHZ以下,如果没有这个延时程序的话,输出的频率将大大超出人耳朵的听觉能力,我们将不能听到声音。

更改延时常数,可以改变输出频率,也就可以调整蜂鸣器的音调。

大家可以在实验中更改#228为其他值,听听蜂鸣器音调的改变。

ORG 0000HAJMP MAIN ;跳转到主程序ORG 0030HMAIN: CPL P3.7 ;蜂鸣器驱动电平取反LCALL DELAY ;延时AJMP MAIN ;反复循环DELAY:MOV R7,#228 ;延时子程序,更改该延时常数可以改变蜂鸣器发出的音调DE1: DJNZ R7,DE1RETEND2、倒车警示音实验程序:我们知道各种卡车、货柜车在倒车时候,会发出倒车的蜂鸣警示提示音,同时警示黄灯也同步闪烁,提醒后面的人或车辆注意。

本实验例程就实现倒车警示功能,通过实验板上的蜂鸣器发出警示音,同时通过实验板上P1.2和P1.5上的两个黄色发光二极管来发出黄色警示灯。

ORG 0000HAJMP START ;跳转到初始化程序ORG 0033HSTART:MOV SP,#60H ;SP初始化MOV P3,#0FFH ;端口初始化MAIN: ACALL SOUND ;蜂鸣器发声ACALL YS500M ;延时AJMP MAINSOUND:MOV P1,#11011011B ;点亮2个警示黄色发光二极管MOV R2,#200 ;响200个周期SND1: CLR P3.7 ;输出低电平T1导通,蜂鸣器响ACALL YS1ms ;延时SETB P3.7 ;输出高电平T1截止,蜂鸣器不响ACALL YS1ms ;延时DJNZ R2,SND1MOV P1,#0FFH ;熄灭黄色警示灯RETYS1ms: ;1ms延时子程序MOV R0,#2YL1: MOV R1,#250 ;改变R0的数值可改变声音频率DJNZ R1,$DJNZ R0,YL1RETYS500M: ;500ms延时子程序MOV R0,#6YL2: MOV R1,#200YL3: MOV R2,#250DJNZ R2,$DJNZ R1,YL3DJNZ R0,YL2RETEND3、“叮咚”电子门铃实验程序:常见的家用电子门铃在有客人来访时候,如果按压门铃按钮时,室内会发出“叮咚”声音,本实验程序模拟电子门铃的发音,当我们按压实验板上的K 1按钮时候,蜂鸣器发出“叮咚”音乐声,是一个比较实用的程序。

单片机实验报告-蜂鸣器驱动实验5页

单片机实验报告-蜂鸣器驱动实验5页

单片机实验报告-蜂鸣器驱动实验5页
实验目的:了解蜂鸣器的基本原理和控制方法,熟悉单片机I/O口配置和使用。

实验器材:AT89C52单片机开发板、蜂鸣器、面包板、杜邦线、电源适配器。

实验原理:
蜂鸣器是一种能够发声的电子元件,在很多电子产品中都有广泛应用,比如:电子时钟、电子琴等。

蜂鸣器的基本原理是利用单片机产生一定频率的脉冲信号,通过输出端口将信号送到蜂鸣器上,使之发出相应频率的声音。

AT89C52单片机是一种高性能、低功耗的8位单片机,具有容易编程、易于学习的特点。

单片机通过I/O口输出脉冲信号来控制蜂鸣器的输出,从而实现发声。

实验步骤:
2.在开发板上选择一个I/O口,将其配置为输出端口。

3.编写程序,通过输出口控制蜂鸣器的发声。

4.将程序下载到开发板中,通过电源适配器供电。

5.观察蜂鸣器是否工作正常,听到蜂鸣声音。

实验代码:
实验结果:
经过实验,可以听到蜂鸣器发出的声音,证明程序运行正常,单片机成功驱动蜂鸣器。

avr单片机实验报告

avr单片机实验报告

avr单片机实验报告
《AVR单片机实验报告》
实验目的:通过对AVR单片机的实验,掌握单片机的基本原理和应用,提高对单片机的理论和实践能力。

实验内容:
1. 熟悉AVR单片机的基本结构和工作原理;
2. 学习AVR单片机的编程语言和开发工具;
3. 进行LED灯控制、蜂鸣器控制、数码管显示等实验;
4. 学习单片机的输入输出控制和中断处理;
5. 完成一个简单的单片机应用项目。

实验过程:
1. 阅读AVR单片机的相关资料,了解其基本原理和编程语言;
2. 使用开发工具进行单片机程序的编写和调试;
3. 连接实验电路,进行LED灯、蜂鸣器和数码管的控制实验;
4. 学习单片机的输入输出控制和中断处理,编写相应的程序进行实验;
5. 完成一个简单的单片机应用项目,如温度检测、光敏控制等。

实验结果:
1. 成功掌握了AVR单片机的基本原理和编程语言;
2. 完成了LED灯、蜂鸣器和数码管的控制实验;
3. 熟练掌握了单片机的输入输出控制和中断处理;
4. 成功完成了一个简单的单片机应用项目。

实验总结:
通过本次实验,我深刻理解了AVR单片机的工作原理和应用方法,提高了对单片机的理论和实践能力。

在今后的学习和工作中,我将继续深入学习单片机技术,不断提升自己的专业能力。

单片机蜂鸣器实验报告

单片机蜂鸣器实验报告

单片机蜂鸣器实验报告单片机蜂鸣器实验报告引言:单片机蜂鸣器是一种常用的电子元件,广泛应用于各种电子设备中。

本篇实验报告旨在介绍单片机蜂鸣器的基本原理和实验过程,并探讨其在不同应用场景中的应用。

一、实验目的:本次实验的主要目的是通过使用单片机控制蜂鸣器发出不同频率的声音,了解蜂鸣器的工作原理及其在电子设备中的应用。

二、实验器材和原理:1. 实验器材:- 单片机开发板- 蜂鸣器- 连接线- 电源2. 实验原理:蜂鸣器是一种能够发出声音的电子元件,它通过振动产生声音。

在单片机蜂鸣器实验中,我们使用单片机控制蜂鸣器的振动频率,从而产生不同的声音。

三、实验步骤:1. 连接电路:将蜂鸣器的正极连接到单片机开发板的IO口,将蜂鸣器的负极连接到开发板的地线。

确保连接稳固。

2. 编写程序:使用单片机开发板的编程软件,编写程序来控制蜂鸣器的振动频率。

可以通过调整程序中的延时时间来改变蜂鸣器发声的频率。

3. 上传程序:将编写好的程序通过USB线上传到单片机开发板中。

4. 运行实验:将电源接入单片机开发板,开启电源。

单片机将根据程序中设定的频率控制蜂鸣器发声。

四、实验结果与分析:通过修改程序中的延时时间,我们可以改变蜂鸣器发声的频率。

实验中,我们尝试了不同的延时时间,并观察了蜂鸣器发声的效果。

在较短的延时时间下,蜂鸣器发出的声音频率较高,声音连续不断。

而在较长的延时时间下,蜂鸣器发出的声音频率较低,声音间隔较长。

通过实验结果分析,我们可以得出结论:蜂鸣器的发声频率与延时时间成反比关系。

延时时间越短,蜂鸣器发声的频率越高;延时时间越长,蜂鸣器发声的频率越低。

五、实验应用:单片机蜂鸣器在实际应用中有着广泛的用途。

以下是几个常见的应用场景:1. 报警系统:将蜂鸣器连接到报警设备中,当设备检测到异常情况时,通过单片机控制蜂鸣器发出警报声,提醒用户注意。

2. 电子钟:通过单片机控制蜂鸣器发出定时的滴答声,实现电子钟的功能。

3. 游戏设备:将蜂鸣器连接到游戏设备中,通过单片机控制蜂鸣器发出不同的声音,增加游戏的趣味性和互动性。

单片机控制蜂鸣器

单片机控制蜂鸣器

单片机控制蜂鸣器单片机这玩意儿,对于很多小伙伴来说,可能听起来有点陌生,还有点高大上。

但其实啊,它在我们生活中可是有着不少的应用,就比如说控制蜂鸣器。

我记得有一次,我带着一群小朋友做一个简单的单片机实验,就是让单片机来控制蜂鸣器发声。

小朋友们那好奇的眼神,充满了期待,就像等着魔术师变出神奇的东西一样。

我们先准备好材料,单片机板子、导线、蜂鸣器,还有一些小小的电阻啥的。

小朋友们围在桌子旁,眼睛一眨不眨地盯着。

我开始给他们讲解单片机是怎么工作的,就像一个小小的指挥官,能给各种零件下达命令。

而蜂鸣器呢,就是那个听从命令然后发声的“小兵”。

然后,我们就开始动手连接电路啦。

小朋友们小心翼翼地拿着导线,生怕一不小心就弄断了。

有个小朋友还紧张得手都有点抖,那模样真是太可爱了。

连接好电路后,就是写程序让单片机控制蜂鸣器啦。

这程序就像是给单片机下达的“作战指令”。

当我把写好的程序下载到单片机里,按下启动按钮的那一刻,“嘀嘀嘀”,蜂鸣器响起来啦!小朋友们兴奋得欢呼起来,那声音比蜂鸣器还响呢。

这就是单片机控制蜂鸣器的魅力所在,能让我们感受到科技的神奇和乐趣。

咱们说回单片机控制蜂鸣器这个事儿。

单片机到底是怎么控制蜂鸣器的呢?其实啊,原理并不复杂。

单片机通过输出不同的电信号,来控制蜂鸣器的通断,从而让它发出不同频率和时长的声音。

比如说,我们可以让单片机输出一个高电平,蜂鸣器就接通开始发声;输出一个低电平,蜂鸣器就断开停止发声。

通过快速地切换高电平和低电平,就能让蜂鸣器发出连续的声音。

如果改变高电平和低电平的持续时间,就能改变声音的频率,听起来就会有高音和低音的区别。

在实际应用中,单片机控制蜂鸣器的场景可多了去了。

像在一些报警系统里,当有异常情况发生时,单片机就会控制蜂鸣器发出急促的声音,提醒大家注意。

还有在电子玩具里,按下不同的按钮,单片机就能让蜂鸣器发出不同的声音,增加玩具的趣味性。

要实现单片机控制蜂鸣器,我们得先了解一些基本的电路知识。

单片机驱动蜂鸣器C51程序

单片机驱动蜂鸣器C51程序
单片机驱动蜂鸣器主程序入口,等待按键事件发生。
*******************************************************/
main()
{
while(1)
{
if(k1==0)
{
key_time();
}
}
}
按键延时程序
*********************************************************/
key_time()
{
uchar k;
for(k=0;k<15;k++)
BEEP();
}
/*******************************************************
*********************************************************/
void Delay(uint num)//延时函数
{
while( --num );
}
/*********************************************************
#define uint unsigned int
sБайду номын сангаасit k1=P1^4; //按钮1
sbit k2=P1^5; //按钮2
sbit beep=P3^7; //接蜂鸣器
/*********************************************************
本程序出自会员uiesers的辛勤劳动,作用是驱动蜂鸣器发出声音,蜂鸣器接在单片机的p1.5口,由两个按钮控制.p1.4开,p1.5 关闭声音。

单片机实验报告蜂鸣器

单片机实验报告蜂鸣器

单片机实验报告蜂鸣器单片机实验报告:蜂鸣器引言在现代科技发展迅猛的时代,单片机已经成为了各种电子设备中不可或缺的重要部分。

而蜂鸣器作为一种常见的声响器件,也被广泛应用在各种电子产品中。

本实验旨在通过单片机控制蜂鸣器,实现不同频率和节奏的声音输出,并对蜂鸣器的工作原理进行深入理解。

实验目的1. 了解蜂鸣器的工作原理;2. 掌握单片机控制蜂鸣器的方法;3. 实现不同频率和节奏的声音输出。

实验原理蜂鸣器是一种能够发出声音的电子元件,其工作原理是利用电流通过振动片产生声音。

在实验中,我们将通过单片机控制蜂鸣器的工作频率和节奏,从而实现不同的声音效果。

实验步骤1. 连接电路:将单片机和蜂鸣器按照电路图连接好;2. 编写程序:使用C语言编写单片机控制蜂鸣器的程序;3. 烧录程序:将编写好的程序烧录到单片机中;4. 调试程序:通过调试程序,实现不同频率和节奏的声音输出;5. 实验结果:记录实验中不同声音效果的输出结果。

实验结果经过实验,我们成功地通过单片机控制蜂鸣器,实现了不同频率和节奏的声音输出。

通过调试程序,我们可以轻松地改变蜂鸣器的声音效果,包括音调的高低和声音的持续时间等。

这些实验结果充分展示了单片机控制蜂鸣器的强大功能和灵活性。

实验总结通过本次实验,我们深入理解了蜂鸣器的工作原理,并掌握了单片机控制蜂鸣器的方法。

同时,我们也实现了不同频率和节奏的声音输出,为以后的电子产品设计和开发提供了有力的支持。

相信通过这次实验,我们对单片机和蜂鸣器的应用有了更深入的认识,为我们的学习和科研工作打下了坚实的基础。

单片机驱动蜂鸣器的程序设计

单片机驱动蜂鸣器的程序设计

时代农机TIMES AGRICULTURAL MACHINERY2019年第2期第46卷第2期Vol.46No.22019年2月Feb.2019摘要:驱动蜂鸣器是编程中的基本程序,从中能掌握单片机产生不同频率方波的编程方法。

关键词:编程;蜂鸣器;程序设计作者简介:纪瀚涛(1997-),男,辽宁大连人,大学本科,主要研究方向:机械电子工程。

单片机驱动蜂鸣器的程序设计纪瀚涛,王伟(沈阳工学院,辽宁抚顺113122)1可编程控制器运用MCS-51单片机,使用I/O 输出音频脉冲,脉冲经放大滤波后,驱动扬声器发声。

若要产生f 的频率,则需于T 时间内(其中T=1/f ),进行吸、放各一次,换言之,磁铁产生磁性、磁铁失去磁性的时间各为T /2,成为半周期。

2驱动蜂鸣器程序的编制如图1所示,由单片机的P3.7口联接一个NPN 型的三极管,并于蜂鸣器BUZ1相连接。

当P3.1口输出信号时,蜂鸣器会产生相应频率的奉命信号。

由单片机的P3.7口输出1kHz 的信号,持续0.1s ,停止0.5s ,则蜂鸣器发出0.1s 的“哔”的声音。

要产生1kHz 的频率,则半周期为0.5ms ,P3.7所送出的信号中,0.5ms 为高电平,0.5ms 为低电平。

若0.5ms 为高电平与0.5ms 为低电平为一组信号(总共1ms ),连续送出100组,即可得到1kHz 的声音约0.1s ;停止输出0.1s 后,再送出0.5s 的信号。

2.1电路图图12.2程序#include<reg51.h>sbit buzzer=P3^7;void delay (int );void pulse_BZ (int ,int ,int );//声明蜂鸣器发声函数main (){while (1){pulse_BZ (100,1,1);//蜂鸣器发声100×(0.5ms+0.5ms )=0.1sdelay (1000);//延迟1000×0.5ms=0.5s}}void delay (int x )//0.5ms 延迟函数{int i ,j ;for (i=0;i<x ;i++)for (j=0;j<60;j++);}void pulse_BZ (int count ,int TH ,int TL )//蜂鸣器发声函数{int i ;for (i=0;i<count ;i++)//计数count 次{buzzer=1;//输出高电平delay (TH );//延迟TH ×0.5msbuzzer=0;//输出低电平delay (TL );//延迟TL×0.5ms}}3结语运用MCS-51单片机控制驱动信号使蜂鸣器发出不同音调的声音,声音的频率由延时程序控制,频率越高,音调就越高;频率越低,音调越低。

AVR IO输出之蜂鸣器控制程序

AVR IO输出之蜂鸣器控制程序

AVR I/O输出之蜂鸣器控制程序系统功能使用AVR控制一个蜂鸣器,能随心所欲控制蜂鸣器的鸣叫,不会让它乱叫!硬件设计关于AVR的I/O结构及相关介绍详见Datasheet,这里仅对作部分简单介绍,下面是AVR的I/O引脚配置表:虽然AVR的I/O口单独输出“1”时,可输出较大电流足已点驱动一个蜂鸣器(5V型),但AVR总的I/O 输出毕竟是有限的,所以,有经验者考虑到可能还有其它费劲的活儿要干,会将AVR的I/O口设计为输出“0”时鸣叫,输出“1”时不叫。

这种接法亦叫“灌电流叫法”。

软件设计//目标系统:基于AVR单片机//应用软件: ICC AVR/*01010101010101010101010101010101010101010101010101010101010101010101----------------------------------------------------------------------实验内容:能随心所欲控制蜂鸣器的鸣叫,不会让它乱叫。

示例程序使蜂鸣器间歇式的进行鸣叫,叫1秒,停1秒。

----------------------------------------------------------------------硬件连接:将PD口的LED指示灯使能开关切换到"ON"状态。

----------------------------------------------------------------------注意事项:(1)若有加载库程序,请将光盘根目录下的“库程序”下的“ICC_H”文件夹拷到D盘(2)请详细阅读:光盘根目录下的“产品资料开发板实验板SMK系列SMK1632说明资料”---------------------------------------------------------------------- 10101010101010101010101010101010101010101010101010101010101010101010*/#include <iom16v.h>#include "D:ICC_HCmmICC.H"#define OUT_BUZ sbi(DDRB,3) //PB3#define BUZ_ON cbi(PORTB,3)#define BUZ_OFF sbi(PORTB,3)/*--------------------------------------------------------------------程序名称:程序功能:注意事项:提示说明:输入:返回:--------------------------------------------------------------------*/void main(void){OUT_BUZ; //设置相应的IO口为输出while(1){BUZ_ON; //我叫delay50ms(20);BUZ_OFF; //我不叫delay50ms(20);}}系统调试将语句:delay50ms(20);改为语句:delay50ms(1);可以听到叫的频率更高!。

AVR教程第十一课蜂鸣器

AVR教程第十一课蜂鸣器
推荐论坛:
动手学 AVR 单片机十一、让蜂鸣器发 出声音
CEPARK-AVR 单片机教程. 技术专家 tiankai 原创 专家技术博客地址: /space.php?uid=8160 有技术类问题欢迎去给技术专家留言. 推荐论坛: 收集人:wang1jin
{
unsigned char i;
推荐网站:
推荐论坛:
PORTE |= (1 << PE5);
//
DDRE |= (1 << PE5);
//
Delayms(500);
PORTE &= ~(1 << PE5);
//
Delayms(500);
最下面给大家介绍几个下载资料的地方: 51 学习专区: / USB 学习专区: / CAN 学习专区: AVR 学习专区: / FPGA 学习专区: / STM32 学习专区: / ARM 学习专区: / DSP 学习专区: / PIC 学习专区: / DIY 电子制作专区: / GPS 学习专区:
下图是一种比较安全的蜂鸣器驱动电路
推荐网站:
推荐论坛:
图中在蜂鸣器两端并联了一个二极管,这个二极管称为续流二极管,蜂鸣器本质 上是一个感性元件,其电流不能瞬变,因此必须有一个续流二极管提供续流。否则,在蜂鸣 器两端会产生几十伏的尖峰电压,可能损坏驱动三极管,并干扰整个电路系统的其它部分。
#include <util/delay.h>

//GCC 中的延时函数头文件
//函数声明
void Delayus(unsigned int lus);
//us 延时函数
void Delayms(unsigned int lms);

AVR单片机驱动有源蜂鸣器实验程序

AVR单片机驱动有源蜂鸣器实验程序

AVR单片机驱动有源蜂鸣器实验程序
/* 有源蜂鸣器实验;特点描述: 有缘蜂鸣器极其简单,为二源元件, 本系统使
用蜂鸣器工作电压是5v,只要接入5V 电源,蜂鸣器就响. 硬件连接: PC7 引脚; 音系:模拟警报声;
2014 年12 月5 日19:56:57
*/#include #include
typedef unsigned char uint8;typedef unsigned int uint16;
void init_io() // ATMEGA16A 所有IO 口初始化;{ DDRA=0XFF; PORTA=0X00; //PA 口输出0; DDRB=0XFF; PORTB=0X00; //PB 口输出0; DDRC=0Xff; PORTC=0X00; //PC 口输出0; DDRD=0XFF; PORTD=0X00; //PD 口输出0;}
void pc7(uint8 s) //位操作pc7 引脚;{ if(s) { PORTC|=0x80; //PC7 置一; } else {PORTC&=~0x80; //pc7 清零;}
}
void buzz() // 蜂鸣器鸣叫;{ uint16 j=0; uint8 u=0; pc7(1); //蜂鸣器开; for(j=0;jvoid main(void) //主函数;{ uint8 a=1,j=0; //可以不定义此变量,可以直接在
调用a 变量的位置写1 代替; uint16 h=0; //用于延时计数; init_io(); //调入初始化
函数; while(a) { for(j=0;j}
tips:感谢大家的阅读,本文由我司收集整编。

仅供参阅!。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

AVR单片机驱动有源蜂鸣器实验程序 /*
有源蜂鸣器实验;
特点描述: 有缘蜂鸣器极其简单,为二源元件,
本系统使用蜂鸣器工作电压是5v,
只要接入5V电源,蜂鸣器就响.
硬件连接:
PC7引脚;
音系:模拟警报声;
2014年12月5日19:56:57
*/
#include ;
#include ;
typedef unsigned char uint8;
typedef unsigned int uint16;
void init_io()
// ATMEGA16A所有IO口初始化;
{
DDRA=0XFF;
PORTA=0X00; //PA口输出0;
DDRB=0XFF;
PORTB=0X00; //PB口输出0;
DDRC=0Xff;
PORTC=0X00; //PC口输出0;
DDRD=0XFF;
PORTD=0X00; //PD口输出0; }
void pc7(uint8 s)
//位操作pc7引脚;
{
if(s)
{
PORTC|=0x80; //PC7置一; }
else
{
PORTC&=~0x80; //pc7清零;
}
}
void buzz()
// 蜂鸣器鸣叫;
{
uint16 j=0;
uint8 u=0;
pc7(1);
//蜂鸣器开;
for(j=0;j<10000;j++); //延时; pc7(0);
// 蜂蜜器关;
}
void main(void)
//主函数;
{
uint8 a=1,j=0;
//可以不定义此变量,可以直接在调用a变量的位置写1代替;
uint16 h=0;
//用于延时计数;
init_io();
//调入初始化函数;
while(a)
{
for(j=0;j<9;j++)
//循环7次,故鸣叫七次;
{
buzz();
//鸣叫;
for(h=0;h<10000;h++); //延时;
}
pc7(1);
for(h=0;h<60000;h++);
for(h=0;h<60000;h++); pc7(0);
for(h=0;h<40000;h++); }
}。

相关文档
最新文档