电子发声设计实验
单片机课程设计---模拟电子琴发声控制系统

《单片机应用与仿真训练》设计报告模拟电子琴发声控制系统专业:电气工程与自动化摘要本次课程设计的主要内容是用AT89C51单片机为核心控制元件,设计一个简单的电子琴并可实现音乐的连续播放。
以单片机作为主控核心,与键盘、扬声器等模块组成核心主控制模块,在主控模块上设有12个按键和扬声器。
定时器按设置的定时参数产生中断,由于定时参数不同,就会发出不同频率的脉冲,不同频率的脉冲经喇叭驱动电路放大滤波后,就会发出不同音调。
本简易电子琴的设计可实现的功能如下:程序中预存了4首音乐:《同一首歌》、《两只蝴蝶》、《祝你快乐》、《Time to say goodbye》并通过一个独立键盘可以实现对四首音乐的“下一曲”控制。
3*4矩阵键盘中的7个按键分别对应着7个不同的音符,另外3个分为高、中、低音的控制,当按下某一按键,会发出相应的音调。
按下按键时,扬声器会发出声音,松开按键后,扬声器停止发声,按键的时间越长,发声时间越久。
连续按下不同的按键,可以实现乐曲的演奏。
此外还有一“模式”按键,负责在电子琴和音乐播放器两种不同模式下的切换。
目录1 概述 ------------------------------------------------------------------------------------------------- 41.1 音乐产生原理---------------------------------------------------------------------------- 41.2 结构框图 ---------------------------------------------------------------------------------- 42 系统总体方案及硬件设计 -------------------------------------------------------------------- 52.1 总体方案 ---------------------------------------------------------------------------------- 52.2 按键键盘 ---------------------------------------------------------------------------------- 52.3 蜂鸣器电路 ------------------------------------------------------------------------------- 52.4 数码管电路 ------------------------------------------------------------------------------- 62.5 最小系统 ---------------------------------------------------------------------------------- 72.6 设计实现过程---------------------------------------------------------------------------- 73 软件设计------------------------------------------------------------------------------------------- 93.1 整体设计 ---------------------------------------------------------------------------------- 93.2 音乐设计 -------------------------------------------------------------------------------- 103.3 按键设计 -------------------------------------------------------------------------------- 113.4 显示设计 -------------------------------------------------------------------------------- 134 Proteus仿真 ------------------------------------------------------------------------------------ 145 课程设计体会 ---------------------------------------------------------------------------------- 15参考文献----------------------------------------------------------------------------------------- 15 附1:源程序代码----------------------------------------------------------------------------- 16 附2:系统原理图----------------------------------------------------------------------------- 261概述1.1音乐产生原理一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系正确即可。
电子发声实验报告

一、实验目的1. 理解电子发声的基本原理。
2. 掌握电子振荡电路的搭建方法。
3. 学习电子发声装置的调试技巧。
4. 分析不同电子元件对发声效果的影响。
二、实验原理电子发声实验主要基于振荡电路的工作原理。
当电路中的电子元件(如电容、电感、电阻等)满足一定的条件时,电路中会产生周期性的电流和电压变化,从而产生声波。
本实验中,我们将搭建一个LC振荡电路,通过调节电感和电容的值来改变振荡频率,进而控制发声频率。
三、实验器材1. 信号发生器2. 振荡电路板3. 电容4. 电感5. 电阻6. 晶体管7. 扬声器8. 万用表9. 钳子10. 焊锡丝11. 焊台12. 实验桌四、实验步骤1. 搭建LC振荡电路:- 将电感L和电容C按照电路图连接在振荡电路板上。
- 搭建完成后,使用万用表检测电路的通断情况。
2. 调试电路:- 调节电感L和电容C的值,观察扬声器是否发声。
- 当扬声器发声时,记录此时的电容C和电感L的值。
3. 分析不同元件对发声效果的影响:- 更换不同容值的电容C,观察扬声器发声频率的变化。
- 更换不同电感的电感L,观察扬声器发声频率的变化。
- 分析不同电阻对电路稳定性和发声效果的影响。
4. 实验数据记录:- 记录不同电容C和电感L值下的扬声器发声频率。
- 记录不同电阻值下的电路稳定性和发声效果。
五、实验结果与分析1. 实验结果:- 当电容C为100nF,电感L为1μH时,扬声器发声频率约为1kHz。
- 当电容C为220nF,电感L为1μH时,扬声器发声频率约为500Hz。
- 当电容C为100nF,电感L为10μH时,扬声器发声频率约为100Hz。
2. 分析:- 根据振荡电路的公式,振荡频率f与电容C和电感L的值有关,即f=1/(2π√(LC))。
- 通过改变电容C和电感L的值,可以调节扬声器发声频率。
- 电阻值对电路稳定性和发声效果有一定影响,电阻值过小可能导致电路不稳定,电阻值过大可能导致发声效果变差。
单片机实验蜂鸣器和流水

汽车电子
发动机控制、安全气囊、导航 系统等。
单片机的发展历程
01
02
03
起源
20世纪70年代,随着微处 理器技术的发展,单片机 逐渐问世。
发展阶段
经历了4位、8位、16位和 32位等不同位数的发展, 性能不断提升。
未来趋势
随着物联网、人工智能等 技术的兴起,单片机将更 加智能化、网络化。
2. 代码编写
使用C语言或汇编语言编写代码,控 制单片机依次点亮每个LED灯,形成 流水灯效果。
3. 编译与烧录
将编写好的代码编译后烧录到单片机 中。
4. 测试与验证
观察LED灯是否依次亮起,形成流水 灯效果,并检查是否有闪烁或亮度不 均等问题。
06 实验总结与思考
实验收获与体会
硬件连接理解
通过亲手连接单片机、蜂鸣 器和LED灯,我深入理解了 硬件电路的连接方式,掌握 了基本的硬件操作技能。
04 单片机实验开发环境与工 具
单片机开发板的选择与使用
选择单片机开发板时,需要考 虑其性能、功能、兼容性和易 用性。
开发板上通常集成了单片机、 电源电路、接口电路等,方便 开发者进行实验和开发。
使用单片机开发板时,需要按 照说明文档连接电源、接口等, 确保安全可靠。
编程语言的介绍与选择
01
单片机编程语言常用的 有C语言和汇编语言。
软件编程实践
编写单片机程序使我熟悉了 编程语言和逻辑,学会了如 何通过编程控制硬件。
问题解决能力
在实验过程中遇到问题,通 过查阅资料和尝试不同的解 决方案,提高了我的问题解 决能力。
团队协作精神
与同学共同完成实验,互相 帮助和学习,培养了团队协 作精神。
按键计数蜂鸣器实验报告(3篇)

第1篇一、实验目的1. 了解按键电路的工作原理。
2. 掌握蜂鸣器的工作原理及其控制方法。
3. 学习使用C语言进行嵌入式编程。
4. 培养动手实践能力和团队合作精神。
二、实验原理1. 按键电路:按键电路由按键、上拉电阻和下拉电阻组成。
当按键未被按下时,上拉电阻将输入端拉高;当按键被按下时,下拉电阻将输入端拉低。
2. 蜂鸣器电路:蜂鸣器是一种发声元件,其工作原理是利用电磁铁的磁力使振动膜片振动,从而产生声音。
蜂鸣器的控制主要通过改变输入信号的频率来实现。
3. 计数原理:通过按键输入信号,实现计数器的计数功能。
当按键被按下时,计数器加一;当按键被连续按下时,计数器的计数值随之增加。
三、实验器材1. 单片机开发板(如STC89C52)2. 按键3. 蜂鸣器4. 电阻5. 接线6. 电脑7. 调试软件(如Keil uVision)四、实验步骤1. 设计电路图:根据实验要求,设计按键、蜂鸣器和单片机的连接电路图。
2. 编写程序:使用C语言编写程序,实现按键计数和蜂鸣器控制功能。
3. 编译程序:将编写好的程序编译成机器码。
4. 烧录程序:将编译好的机器码烧录到单片机中。
5. 调试程序:通过调试软件对程序进行调试,确保程序正常运行。
6. 测试实验:将单片机连接到实验电路中,进行按键计数和蜂鸣器控制测试。
五、实验代码```cinclude <reg52.h>define uchar unsigned chardefine uint unsigned intsbit key = P3^2; // 按键连接到P3.2端口sbit buzzer = P1^0; // 蜂鸣器连接到P1.0端口uchar count = 0; // 计数器void delay(uint t) {uint i, j;for (i = 0; i < t; i++)for (j = 0; j < 127; j++);}void buzzer_on() {buzzer = 0; // 使蜂鸣器发声}void buzzer_off() {buzzer = 1; // 使蜂鸣器停止发声}void main() {while (1) {if (key == 0) { // 检测按键是否被按下delay(10); // 消抖if (key == 0) {count++; // 计数器加一buzzer_on(); // 使蜂鸣器发声delay(500); // 发声时间buzzer_off(); // 停止发声}}}}```六、实验结果与分析1. 当按键未被按下时,蜂鸣器不发声。
制作蜂鸣器模块实验报告

一、实验目的1. 了解蜂鸣器的工作原理及分类。
2. 掌握蜂鸣器模块的制作方法。
3. 学会使用蜂鸣器模块进行简单的声音控制。
二、实验原理蜂鸣器是一种电子音响器件,其工作原理是利用电流通过压电陶瓷片或电磁线圈产生振动,从而发出声音。
根据驱动方式,蜂鸣器可分为有源蜂鸣器和无源蜂鸣器两种。
1. 有源蜂鸣器:内部自带振荡电路,只需接通电源即可发声。
2. 无源蜂鸣器:需要外部电路提供方波信号驱动。
本实验采用有源蜂鸣器模块,其内部结构包括振荡电路、驱动电路、压电陶瓷片等。
三、实验器材1. 有源蜂鸣器模块2. 单片机(如Arduino)3. 杜邦线4. 电源5. 万用表6. 烧录器四、实验步骤1. 搭建电路:- 将蜂鸣器模块的VCC引脚连接到单片机的5V电源;- 将蜂鸣器模块的GND引脚连接到单片机的GND;- 将蜂鸣器模块的I/O引脚连接到单片机的数字输出引脚(如D8)。
2. 编写程序:- 使用单片机编程语言(如Arduino)编写程序,通过控制数字输出引脚的高低电平,控制蜂鸣器发声。
3. 烧录程序:- 将编写好的程序烧录到单片机中。
4. 测试:- 连接电源,观察蜂鸣器是否发声。
五、实验结果与分析1. 实验结果:- 成功搭建蜂鸣器模块电路;- 编写程序控制蜂鸣器发声;- 实现简单的音乐播放功能。
2. 分析:- 通过控制单片机数字输出引脚的高低电平,可以改变蜂鸣器的频率,从而控制音调;- 通过改变高低电平的持续时间,可以改变蜂鸣器的音量;- 可以通过编程实现多种声音效果,如音乐播放、报警等。
六、实验总结1. 通过本次实验,掌握了蜂鸣器的工作原理及分类;2. 学会了蜂鸣器模块的制作方法;3. 掌握了使用蜂鸣器模块进行简单的声音控制。
七、拓展应用1. 将蜂鸣器模块应用于智能家居系统,实现门铃、报警等功能;2. 将蜂鸣器模块应用于机器人,实现语音提示、警报等功能;3. 将蜂鸣器模块应用于音乐创作,实现音效合成等功能。
单片机《蜂鸣器》实验报告

单片机《蜂鸣器》实验报告单片机《蜂鸣器》实验报告一、实验目的本次实验旨在通过单片机的控制,实现对蜂鸣器的驱动和发声控制,进一步了解蜂鸣器的工作原理及应用。
二、实验原理蜂鸣器是一种电子发声器件,常用于发出警告、提示或声音信号。
其工作原理是利用电磁感应原理,在蜂鸣器线圈中通入电流时,会产生磁场,该磁场与蜂鸣器内部的一块磁铁产生相互作用力,使蜂鸣器内部的膜片发生振动,从而发出声音。
在本实验中,我们将通过单片机控制蜂鸣器的驱动信号,使其发出不同的声音,从而实现单片机对蜂鸣器的控制。
三、实验步骤1、准备实验器材:单片机开发板、蜂鸣器模块、杜邦线等。
2、将蜂鸣器模块连接至单片机开发板的某个数字引脚上。
3、通过单片机编程软件编写控制程序,实现对蜂鸣器的控制。
4、将编写好的程序下载到单片机开发板中,并进行调试。
5、通过单片机控制蜂鸣器发出不同的声音,观察其工作情况。
四、实验结果与分析1、实验结果通过本次实验,我们成功实现了单片机对蜂鸣器的控制,可以通过编写不同的程序,使蜂鸣器发出不同的声音。
以下是实验中蜂鸣器发出的声音及其对应的程序代码:(1) 发出“滴”的一声(2) 发出“嘟嘟”的警告声2、结果分析通过实验结果可以看出,通过单片机对蜂鸣器进行控制,可以实现发出不同声音的效果。
在第一个实验中,我们通过设置引脚的高低电平及延时时间,使蜂鸣器发出一声“滴”的声音。
在第二个实验中,我们通过一个无限循环,使蜂鸣器发出“嘟嘟”的警告声。
五、结论与展望通过本次实验,我们深入了解了蜂鸣器的工作原理及应用,并成功实现了单片机对蜂鸣器的控制。
实验结果表明,我们可以根据实际需要编写不同的程序,实现对蜂鸣器的灵活控制。
展望未来,我们可以进一步研究蜂鸣器的其他应用场景,例如在智能家居、机器人等领域中的应用。
我们也可以通过其他方式对蜂鸣器进行控制,例如通过传感器采集信号或者通过无线网络进行远程控制等。
8254定时器计数器设计实验-电子发声设计

计算机硬件技术基础8254定时器/计数器设计实验—电子发声设计航空航天 083614 孙诚骁 083605 李嘉骞一、实验目的学习用8254定时/计数器是扬声器发声的编程方法。
二、实验设备PC 微机一台、TD-PIT 实验系统一套。
三、实验内容根据实验提供的音乐频率表和时间表,编写程序控制8254,使其输出连接到扬声器上能发出相应的乐曲。
接线方法如下:四、实验所用芯片8254是Intel 公司生产的可编程间隔定时器。
它具有以下基本功能:(1)有3个独立的16位计数器;(2)每个计数器可接二进制或十进制(BCD )计数;(3)每个计数器可编程工作于6种不同工作方式;(4)8254每个计数器允许的最高频率为10MHZ ;(5)8254有读回命令,除了可以读出当前计数单元的内容外,还可以读出状态寄存器的内容;(6)计数脉冲可以是有规律的时钟信号,也可以是随机信号。
计数初值公式为n=f(clki)/f(outi),其中f(clki)是输入时钟脉冲的频率,f(outi)是输出波形的频率。
8254的工作方式如下述:(1)方式0:计数到0结束输出正跃变信号方式。
(2)方式1:硬件可重触发单稳方式。
(3)方式2:频率发生器方式。
(4)方式3:方波发生器。
(5)方式4:软件触发选通方式。
(6)方式5:硬件触发选通方式。
CLK0 CLK0五、实验说明及步骤一个音符对应一个频率,将对应一个音符频率的方波通到扬声器上,就可以发出这个音符的声音。
音符与频率对照关系见下表所示。
将一段乐曲的音符对应频率的方波依次送到扬声器,就可以发出这段乐曲的声音。
音符与频率对照表(单位:HZ)利用8254的方式三—“方波发生器”,将相应一种频率的计数初值写入计数器,就可以产生对应频率的方波。
计数初值的计算如下:计数初值=输入时钟÷输出频率例如输入时钟采用系统总线上CLK(1.04166MHZ),要得到800HZ的频率,计数初值即为104166/800.对于每一个音符的演奏时间,可以通过软件延时来处理。
电子发声实验课程设计

电子发声实验课程设计一、课程目标知识目标:1. 学生能理解电子发声的基本原理,掌握声音产生、传播和接收的相关知识。
2. 学生能够描述不同电子器件在发声实验中的作用,如扬声器、麦克风等。
3. 学生能够解释声音的三个基本特征:音调、响度和音色,并了解它们在电子发声实验中的应用。
技能目标:1. 学生能够独立完成电子发声实验,包括搭建简单的电路,进行声音的录制与播放。
2. 学生能够运用所学知识,设计并实施简单的电子发声装置,锻炼动手操作能力。
3. 学生能够通过实验观察、数据分析,培养科学探究能力和问题解决能力。
情感态度价值观目标:1. 学生对电子发声产生兴趣,培养对科学技术的热爱和探究精神。
2. 学生在实验过程中,学会合作、分享,培养团队意识和沟通能力。
3. 学生能够关注声音在生活中的应用,认识到科技与生活的紧密联系,增强社会责任感。
本课程旨在通过电子发声实验,使学生在掌握相关知识和技能的同时,培养科学素养、团队协作能力和创新思维,激发学生对科学的兴趣和热情。
针对学生的年级特点,课程内容紧密联系课本,注重实践操作,让学生在动手实践中学习,提高学生的综合运用能力。
二、教学内容1. 声音基本原理:声音的产生、传播和接收过程,声音的特征(音调、响度、音色)。
- 教材章节:第一章第三节《声音的产生与传播》2. 电子器件介绍:扬声器、麦克风、放大器等电子器件的工作原理与应用。
- 教材章节:第二章第二节《电子器件及其应用》3. 电子发声实验:a) 电路搭建:学习基本电路知识,搭建简单的电子发声电路。
- 教材章节:第三章第一节《基本电路的搭建与应用》b) 声音录制与播放:使用电子设备进行声音的录制与播放,了解数字化声音处理。
- 教材章节:第四章第三节《声音的录制与播放》4. 创意电子发声装置设计:结合所学知识,设计并制作简单的创意发声装置。
- 教材章节:第五章《电子创新设计与实践》教学内容按照课程目标进行科学性和系统性的组织,教学大纲明确了教学内容的安排和进度。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
电子发声设计实验
试验目的:学习用8254定时/计数器使蜂鸣器发声的编程方法
实验设备:PC微机一台、TD-PITC试验箱一台
实验内容:使其输出连接到根据实验提供的音乐频率表和时间表,编写程序控制8254,使其输出连接到扬声器上能发出相应的乐曲。
实验说明及步骤:一个音符对应一个频率,将对应一个音符频率的方波传输到扬声器上,就可以发出音符的声音。
将一段乐曲的音符对应频率的方波依次送到扬声器,就可以演奏出这段乐曲。
利用8254的方式3——“方波发生器”,将相应一种频率的计数初值写入计数器,就可以产生对应频率的方波。
计数初值的计算如下:
计数初值=输入时钟/输出频率
源代码:略
初始效果:播放了《友谊天长地久》
修改点:FREQ_LIST 和TIME_LIST
重新编排了了频率表和时间表的内容
修改效果:发出了音乐《两只老虎》
修改后代码:
;Sound.asm
;电子发声设计实验
;****************根据查看端口资源修改下列符号值*******************
IOY0 EQU 0d800H
;*****************************************************************
MY8254_COUNT0 EQU IOY0+00H*4 ;8254计数器0端口地址
MY8254_COUNT1 EQU IOY0+01H*4 ;8254计数器1端口地址
MY8254_COUNT2 EQU IOY0+02H*4 ;8254计数器2端口地址
MY8254_MODE EQU IOY0+03H*4 ;8254控制寄存器端口地址
STACK1 SEGMENT STACK
DW 256 DUP(?)
STACK1 ENDS
DA TA SEGMENT
FREQ_LIST DW 262,294,330,262,262,294,330,262,330,350,393,330,350,393 ;频率表DW 393,441,393,350,330,262,393,441,393,350,330,262
DW 294,196,262,294,196,262
TIME_LIST DB 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 4, 4, 8 ;时间表DB 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 4, 4
DB 4, 4, 8, 4, 4, 8
DA TA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
MOV DS,AX
MOV DX,MY8254_MODE ;初始化8254工作方式
MOV AL,36H ;定时器0、方式3
OUT DX,AL
BEGIN:MOV SI,OFFSET FREQ_LIST ;装入频率表起始地址
MOV DI,OFFSET TIME_LIST ;装入时间表起始地址
PLAY: MOV DX,0FH ;输入时钟为 1.0416667MHz,1.0416667M = 0FE502H
MOV AX,0E502H
DIV WORD PTR [SI] ;取出频率值计算计数初值,0F4240H / 输出频率
MOV DX,MY8254_COUNT0
OUT DX,AL ;装入计数初值
MOV AL,AH
OUT DX,AL
MOV DL,[DI] ;取出演奏相对时间,调用延时子程序
CALL DALL Y
ADD SI,2
INC DI
CMP WORD PTR [SI],0 ;判断是否到曲末?
JE BEGIN
MOV AH,1 ;判断是否有按键按下?
INT 16H
JZ PLAY
QUIT: MOV DX,MY8254_MODE ;退出时设置8254为方式2,OUT0置0 MOV AL,10H
OUT DX,AL
MOV AX,4C00H ;结束程序退出
INT 21H
DALL Y PROC ;延时子程序
D0: MOV CX,0A00H
D1: MOV AX,0FFFFH
D2: DEC AX
JNZ D2
LOOP D1
DEC DL
JNZ D0
RET
DALL Y ENDP
CODE ENDS
END START。