单片机课设--电子琴(简单,易懂代码无误)
单片机课程设计---模拟电子琴发声控制系统

《单片机应用与仿真训练》设计报告模拟电子琴发声控制系统专业:电气工程与自动化摘要本次课程设计的主要内容是用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来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系正确即可。
简易电子琴设计(单片机课程设计)

简易电子琴设计用单片机控制扬声器,弹奏出一段音乐。
一、预备知识:乐曲由不同音符组成,各音符都有对应的频率,频率不同的方波加在扬声器上,就产生一个持续的音符。
利用不同的音符、音高、音长组合,就可产生想要的音乐。
对于单片机来说,利用其定时器产生不同频率的方波非常方便,以11.0592、22.1184MHz 晶振(实验箱)为例,列出高中低音符与单片机定时器初值如下表所示注意:1、一个音段常见由7个标准音组成(1do、2ri、3mi、4fa、5sol、61a、7si),但实际乐曲中还有一些介于2个标准音之间的音,即半度音,有 1.5、2.5、4.5、5.5、6.5共5个,所以完整的1个音段有12个音。
2、选择简谱时,尽量选用只含7个标准音的乐曲,而且要选C大调的(简谱左上角标着1=C X/4 ),否则各音符的频率要做相应的变化。
10二、设计目的了解扬声器的发声原理,进一步熟悉定时器、键盘扫描、LED 显示电路的工作原理及编程方法。
三、设计内容1 、设计键盘、LED 显示、扬声器驱动电路原理图;2、设计程序流程图;3 、编程调试,利用按键作为琴键,按下不同的键发出相应的音调,同时在LED 最右位显示对应键号值。
四、参考接线扬声器的SPK+ 端接VCC,SPK 负端连接到某一I/O 口。
五、设计步骤程序:KEYBUF EQU 30HSTH0 EQU 31HSTL0 EQU 32HTEMP EQU 33HORG 0000LJMP MAINORG 000BHLJMP INT_T0MAIN:MOV TMOD,#01HSETB ET0SETB EAWAIT:MOV P3,#0FFHCLR P3.4MOV A,P3ANL A,#0FHXRL A,#0FHJZ NOKEY1LCALL DELAYMOV A,P3ANL A,#0FHXRL A,#0FHJZ NOKEY1MOV A,P3ANL A,#0FHCJNE A,#0EH,NK1MOV KEYBUF,#0LJMP DK1NK1:CJNE A,#0DH,NK2MOV KEYBUF,#1LJMP DK1NK2:CJNE A,#0BH,NK3MOV KEYBUF,#2LJMP DK1NK3:CJNE A,#07H,NK4MOV KEYBUF,#3LJMP DK1NK4:NOPDK1:MOV A,KEYBUFMOV B,#2MUL ABMOV TEMP ,AMOV DPTR,#TABMOVC A,@A+DPTRMOV STH0,AMOV TH0,AINC TEMPMOV A,TEMPMOVC A,@A+DPTRMOV STL0,AMOV TL0,ASETB TR0DK1A:MOV A,P3ANL A,#0FHXRL A,#0FHJNZ DK1ACLR TR0NOKEY1:MOV P3,#0FFHCLR P3.5MOV A,P3ANL A,#0FHXRL A,#0FHJZ NOKEY2LCALL DELAYMOV A,P3ANL A,#0FHXRL A,#0FHJZ NOKEY2MOV A,P3ANL A,#0FHCJNE A,#0EH,NK5MOV KEYBUF,#4LJMP DK2NK5:CJNE A,#0DH,NK6MOV KEYBUF,#5LJMP DK2NK6:CJNE A,#0BH,NK7MOV KEYBUF,#6LJMP DK2NK7:CJNE A,#07H,NK8MOV KEYBUF,#7LJMP DK2NK8:NOPDK2:MOV A,KEYBUFMOV B,#2MUL ABMOV TEMP ,AMOV DPTR,#TABMOVC A,@A+DPTRMOV STH0,AMOV TH0,AINC TEMPMOV A,TEMPMOVC A,@A+DPTRMOV STL0,AMOV TL0,ASETB TR0DK2A:MOV A,P3ANL A,#0FHXRL A,#0FHJNZ DK1ACLR TR0 NOKEY2:MOV P3,#0FFHCLR P3.6MOV A,P3ANL A,#0FHXRL A,#0FHJZ NOKEY3LCALL DELAYMOV A,P3ANL A,#0FHXRL A,#0FHJZ NOKEY3MOV A,P3ANL A,#0FHCJNE A,#0EH,NK9MOV KEYBUF,#8LJMP DK1NK9:CJNE A,#0DH,NK10MOV KEYBUF,#9LJMP DK1NK10:CJNE A,#0BH,NK11MOV KEYBUF,#10LJMP DK1NK11:CJNE A,#07H,NK12MOV KEYBUF,#11LJMP DK3NK12:NOPDK3:MOV A,KEYBUFMOV B,#2MUL ABMOV TEMP ,AMOV DPTR,#TABMOVC A,@A+DPTRMOV STH0,AMOV TH0,AINC TEMPMOV A,TEMPMOVC A,@A+DPTRMOV STL0,AMOV TL0,ASETB TR0DK3A:MOV A,P3ANL A,#0FHXRL A,#0FHJNZ DK3ACLR TR0NOKEY3:MOV P3,#0FFHCLR P3.7MOV A,P3ANL A,#0FHXRL A,#0FHJZ NOKEY4LCALL DELAYMOV A,P3ANL A,#0FHXRL A,#0FHJZ NOKEY4MOV A,P3ANL A,#0FHNK13:NK14: NK15:NK16: DK4: CJNE A,#0EH,NK13 MOV KEYBUF,#12 LJMP DK4CJNE A,#0DH,NK14 MOV KEYBUF,#13 LJMP DK4CJNE A,#0BH,NK15 MOV KEYBUF,#14 LJMP DK4CJNE A,#07H,NK16 MOV KEYBUF,#15 LJMP DK4NOPMOV A,KEYBUF MOV B,#2MUL ABMOV TEMP ,AMOV DPTR,#TABMOVC A,@A+DPTRMOV STH0,AMOV TH0,AINC TEMPMOV A,TEMPMOVC A,@A+DPTRMOV STL0,AMOV TL0,ASETB TR0DK4A:MOV A,P3ANL A,#0FHXRL A,#0FHJNZ DK4ACLR TR0NOKEY4:MOV DPTR,#LED_TABMOV A,KEYBUFMOVC A,@A+DPTRMOV P1,ALJMP MAINDELAY:MOV R6,#10 D1: MOV R7,#248DJNZ R7,$DJNZ R6,D1RETINT_T0:MOV TH0,STH0MOV TL0,STL0CPL P2.0RETITAB:DW 62018,62401,62743,62895DW 63185,63441,63670,63774DW 63966,64138,64216,64360DW 64489,64603,64655,64752 LED_TAB:DB ;低1,2,3,4;低5,6,7 ,中1;中2,3,4,5;中6,7 ,高1,2至9 共阴3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH ;0DB 77H, 7CH, 39H, 5EH, 79H, 71H;A 至F END原理图:EXFJldlVTAll■匚AIE:pc.ii*r 1 ■HM口1 店MinPE.MiAE.-iF匚ar屋理ix傅?1 ALVEffSviC rzarti*i"Pl.1吒灯血fl J叭孑n1)r i J raji'TITIf irf ri.hTC和止■Fl?mfio。
电子行业单片机电子琴的设计

电子行业单片机电子琴的设计简介电子行业中,单片机(Microcontroller)是一种非常常见的电子元件。
它集成了处理器、内存和输入/输出功能,可以用于各种应用,包括电子琴。
本文将介绍如何使用单片机设计一种简单的电子琴。
我们将使用Arduino作为单片机开发平台,通过编写代码实现琴键的控制。
硬件需求要设计一台电子琴,我们需要以下硬件组件:1.Arduino主板:Arduino是一种基于开放源代码的硬件平台,非常适合初学者。
我们可以选择常见的Arduino Uno作为主板。
2.面包板:面包板是一种实验用的基础设备,用于电子元件的固定和连接。
3.电子元件:我们需要一些按钮作为琴键,可以选择按下时会连接到高电平的按钮。
4.蜂鸣器:蜂鸣器用于发出音乐声音。
5.连接线:用于连接各个硬件组件。
软件配置在设计电子琴之前,我们需要配置一些软件环境。
1.Arduino IDE(集成开发环境):可以从Arduino官方网站下载。
安装完毕后,打开IDE,选择适当的Arduino型号,并确保正确配置了串口。
2.相应的库:在Arduino IDE中,有许多已经编写好的库,可以简化开发过程。
我们需要找到并安装与该项目相关的库,例如控制按钮的库和控制蜂鸣器的库。
硬件连接完成软件配置后,我们可以开始搭建电子琴的硬件连接。
1.连接按钮:将按钮连接到Arduino主板的数字引脚上,确保引脚能够通过代码控制。
2.连接蜂鸣器:将蜂鸣器连接到Arduino主板的数字引脚上,以便能够通过代码控制。
软件实现现在我们来编写代码,实现电子琴的功能。
首先,我们需要设置按钮的引脚号和蜂鸣器的引脚号。
在Arduino IDE中,可以使用pinMode()函数将引脚设置为输入或输出。
接下来,我们可以编写一个循环,来检测按钮是否按下。
当按钮按下时,我们可以使用tone()函数来产生音乐声音。
以下是简单的代码示例:#include <tone.h>int buttonPin = 2;int buzzerPin = 3;void setup() {pinMode(buttonPin, INPUT); pinMode(buzzerPin, OUTPUT); }void loop() {int buttonState =digitalRead(buttonPin);if (buttonState == HIGH) {tone(buzzerPin, 440); // 发出的声音为A4音符的频率delay(500); // 延时500毫秒noTone(buzzerPin); // 停止发声delay(500); // 延时500毫秒}}上述代码会实现当按钮按下时发出A4音符的音乐声音。
单片机简易电子琴设计

单片机简易电子琴设计摘 要电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。
它在现代音乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。
本文的主要内容是用AT89C51单片机为核心控制元件,设计一个电子琴。
以单片机作为主控核心,与键盘、扬声器等模块组成核心主控制模块,在主控模块上设有15个按键和扬声器。
本系统运行稳定,其优点是硬件电路简单,具有一定的实用和参考价值,软件功能完善,控制系统可靠,性价比较高等,具有一定的实用和参考价值。
本文主要是熟悉单片机的功能,设计简易电子琴,由于电子琴要发出不同的音阶,我们利用不同频率模拟不同的音阶。
进行一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可。
一.设计项目内容与要求以80C51单片机为核心控制元件,设计一个电子琴。
以单片机作为主控核心,与键盘、扬声器等模块组成核心主控制模块,在主控模块上设有15个按键和扬声器。
和扬声器。
能通过不同的按键发出要求能够发出1、2、3、4、5、6、7等七个音符的声音,并伴有数码管显示不同的音符。
二.硬件电路原理分析2.1 2.1 系统板硬件连线系统板硬件连线系统板硬件连线 系统板硬件连线如图系统板硬件连线如图2-1所示,发生模块,键盘模块,扬声器模块,及LED 显示模块连接如下:显示模块连接如下:1. 1.把把“单片机系统”“单片机系统”区域中的区域中的P1.0端口用导线连接到扬声器上,端口用导线连接到扬声器上,扬声器另一扬声器另一输入端接地;输入端接地;图2-1仿真电路图仿真电路图2. 2.把把“单片机系统“单片机系统“区域中的“区域中的P1.3P1.3--P1.7P1.7,,P3.5P3.5--P3.7端口用8芯排线连接到“到“3X53X5行列式键盘”区域中的键盘端口上;行列式键盘”区域中的键盘端口上;3. 3.把“单片机系统”区域中的把“单片机系统”区域中的P02.0P02.0--P2.3端口用8芯排线连接到“四路静态数码显示模块”区域中的任一个a -h 端口上;要求:端口上;要求:P0.0/AD0P0.0/AD0对应着a ,P0.1/AD1对应着b ,……,P0.7/AD7对应着h 。
单片机课程设计报告电子琴

单片机课程设计报告系另_____________学科专业:____________班级:______________________姓名:____________________指导老师:__________________单片机课程设计题目——电子音乐盒设计摘要:该课程设计利用单片机AT89S52与LM386设计扬声器,外接一个喇叭可以发出声音。
关键字:单片机AT89S52 LM386一、设计目的、要求1.设计目的1)深入了解MCS—51 系列单片机的功能以及应用,学会制作简单的扬声器。
2)了解扬声器工作原理。
3)了解“新年好”音乐的设计原理。
2.设计要求1)查阅资料,选择合适的设计方案。
2)设计完整的硬件电路图,给出设计说明及相关电路参数计算公式,并进行适当的误差分析。
3)设计软件流程图,并写出完整的程序,并加以适当的注解。
4)根据以上内容写出完整课程设计报告。
二、硬件设计1. 器件介绍(1)在“单片机系统”中,把P1.0端口连接到“音频放大模块”区域中的SPKIN 端口。
(2)在“音频放大模块”区域中的SPK OUT端口连接一个8欧或者是16欧的喇叭。
2、设计原理用AT89S51单片机产生优美的音乐声从 P1.0端口输出。
通过定时器的定时来产生 不同频率的方波,驱动喇叭发出不同音阶的声音,再利用延迟来控制发音时间的 长短,即可控制音调中的节拍。
* 电电'J rLILbt][3.PCB 板图布局V 3LS KU EZ ■ J Ki ;i K. I/ U 3 f £; At. 芒£: Xr;LJ N Li Ex-in 心 v rc E 70 E£iTJ^-B-图1.1电子音乐盒电路原理图U-右-|;一口一 口一 U-|1一r- %**号寸廿匚>亠TJ4.元器件的焊接1) 拿到本套件后清查元器件的数量、质量,并及时更换不合格的元件。
2) 确定元件的安装方式,电阻采用卧式安装,其它元件采用立式安装。
电子琴单片机课程设计

引言 (1)1.硬件设计及说明 (2)1.1 系统组成及原理图 (2)1.2 AT89C51单片机 (2)1.3晶振电路 (5)1.4发音电路 (6)2.软件的设计 (8)2.1 如何用单片机实现发音 (8)2.2 系统总体功能流程图 (8)2.3 程序清单 (9)3. Proteus软件仿真 (11)3.1时序仿真图 (11)3.2仿真结果与分析 (11)4.课程设计总结及心得体会 (12)4.1设计中遇到的问题及分析 (12)4.2心得体会 (12)致谢 (14)参考文献 (15)引言单片微型计算机是大规模集成电路技术发展的产物,属第四代电子计算机,它具有高性能、高速度、体积小、价格低廉、稳定可靠、应用广泛的特点。
它的应用必定导致传统的控制技术从根本上发生变革。
因此,单片机的开发应用已成为高科技和工程领域的一项重大课题。
随着电子科技的飞速发展,电子产品在人们的生活中扮演着一个不可或缺的角色,无论是生活必须品还是其他东西,都用到了单片机,特别是在儿童玩具中引用很广泛,当前市场上的玩具市场需求量大,其中电子琴就是一个很好的应用方面。
单片机技术使我们可以利用软硬件实现电子琴的功能,从而实现电子琴的微型化,可以用作玩具琴、音乐转盘以及音乐童车等等。
并且可以进行一定的功能扩展。
本次试验所设计的简易电子琴利用键盘上的6个按键,能够发出6个不同的音调,并且要求按下键发声,松开延时一段时间停止,再按不同的键发出不同的声音。
1.硬件设计及说明1.1 系统组成及原理图硬件设计的任务是根据总体设计要求,在选择的机型的基础上,具体确定系统中所要使用的元器件,设计出系统的原理框图、电路原理图。
该设计要实现一种由单片机控制的电子琴,单片机工作于12MHZ 时钟频率,本设计主要是通过直接控制发音的周期来间接控制发音的频率,进而实现了不同的音调。
本设计主要由晶振电路,按键电路和发音电路组成。
按下不同的按键,就可以发出不同的音。
单片机课程设计电子琴

单片机课程设计 电子琴一、课程目标知识目标:1. 让学生理解单片机的基本原理,掌握单片机在电子琴设计中的应用。
2. 使学生掌握电子琴的基本结构,能运用单片机编程实现电子琴的基本功能。
3. 帮助学生了解电子琴音调产生原理,掌握音调与频率的关系。
技能目标:1. 培养学生运用单片机进行电子琴设计与编程的能力,能独立完成一个简单的电子琴项目。
2. 培养学生动手实践能力,提高焊接、调试和故障排除等技能。
3. 培养学生团队协作和沟通能力,能在项目过程中进行有效分工与合作。
情感态度价值观目标:1. 激发学生对单片机及电子制作的兴趣,提高学习积极性。
2. 培养学生勇于尝试、不断探索的精神,增强克服困难的信心。
3. 引导学生关注科技发展,认识到所学知识在现实生活中的应用,培养创新意识。
分析课程性质、学生特点和教学要求,本课程目标具体、可衡量,有助于学生和教师在教学过程中明确预期成果。
将目标分解为具体学习成果,为后续教学设计和评估提供依据。
在教学过程中,注重理论与实践相结合,充分调动学生的积极性,提高学生的实践能力。
二、教学内容1. 单片机基础知识:介绍单片机的组成、工作原理,重点讲解CPU、内存、I/O口等部分的功能与应用。
教材章节:第一章单片机基础2. 电子琴结构与原理:讲解电子琴的基本结构,音调产生原理,键盘与发音电路的连接方式。
教材章节:第三章电子乐器原理3. 单片机编程:以C语言为基础,讲解单片机编程方法,重点掌握延时、中断、I/O口控制等编程技巧。
教材章节:第二章单片机编程基础、第五章中断与定时器4. 电子琴设计与制作:结合单片机知识,指导学生进行电子琴设计,包括硬件电路设计、程序编写、调试与优化。
教材章节:第四章单片机应用实例、第六章电子琴设计与制作5. 实践操作:安排学生进行电子琴硬件焊接、程序烧写、调试与测试,培养动手实践能力。
教材章节:第七章实践操作教学内容安排与进度:第一周:单片机基础知识学习,完成CPU、内存、I/O口等功能的学习。
单片机电子琴课程设计

单片机电子琴课程设计一、课程目标知识目标:1. 让学生理解单片机的基本原理和功能,掌握电子琴的基本构造和演奏方法。
2. 帮助学生掌握单片机编程的基本技巧,学会使用相关软件进行程序设计。
3. 使学生了解音乐理论中音阶、音符的基本知识,并将其应用于电子琴演奏。
技能目标:1. 培养学生动手操作单片机的能力,学会连接电子琴硬件并进行调试。
2. 培养学生编写简单电子琴程序的能力,实现不同音符的播放和乐曲演奏。
3. 提高学生团队协作和沟通能力,能够共同分析和解决在电子琴制作过程中遇到的问题。
情感态度价值观目标:1. 培养学生对单片机及电子琴制作的兴趣,激发学生探究精神,养成自主学习的好习惯。
2. 培养学生具有创新意识,敢于尝试,勇于实践,面对失败保持积极的心态。
3. 增强学生的环保意识,培养节约资源、爱护设备的良好习惯。
课程性质:本课程为实践性较强的课程,结合理论知识,培养学生的动手操作能力和实际应用能力。
学生特点:学生具备一定的电子知识和编程基础,对新鲜事物充满好奇心,喜欢动手实践。
教学要求:结合学生特点,注重理论与实践相结合,充分调动学生的积极性,提高学生的实践能力和创新能力。
在教学过程中,关注学生的学习进度,及时调整教学策略,确保课程目标的实现。
将课程目标分解为具体的学习成果,便于教学设计和评估。
二、教学内容1. 理论知识:- 单片机原理:介绍单片机的基本结构、工作原理和功能。
- 音乐理论:讲解音阶、音符、音长等基本音乐知识。
- 编程基础:回顾C语言基本语法,学习单片机编程方法和技巧。
2. 实践操作:- 电子琴硬件连接:学习电子琴硬件的组成,进行电路连接和调试。
- 程序编写:编写程序实现电子琴基本功能,如按键识别、音符播放等。
- 歌曲演奏:设计程序,实现简单乐曲的演奏。
3. 教学大纲:- 第一周:单片机原理学习,音乐理论知识回顾。
- 第二周:编程基础复习,电子琴硬件连接与调试。
- 第三周:编写电子琴程序,实现基本功能。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
襄阳理工 单片机设计报告
——基于51单片机的多功能电子琴
班 级: 通信1111 姓 名: 指导老师: 刘含
襄阳理工 摘 要 随着社会的发展进步,音乐逐渐成为我们生活中很重要的一部分,有人曾说喜欢音乐的人不会向恶。我们都会抽空欣赏世界名曲,作为对精神的洗礼。本论文设计一个基于单片机的简易电子琴。我们对于电子琴如何实现其功能,如音色选择、声音强弱控制、节拍器、自动放音功能等等也很好奇。 电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。它在现代音乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。本文的主要内容是用AT89S51单片机为核心控制元件,设计一个电子琴。以单片机作为主控核心,与键盘、扬声器等模块组成核心主控制模块,在主控模块上设有16个按键和扬声器。本系统运行稳定,其优点是硬件电路简单,软件功能完善,控制系统可靠,性价比较高等,具有一定的实用和参考价值。
关键词:AT89S51单片机 音色 节拍器 自动放音
引 言 单片微型计算机是大规模集成电路技术发展的产物,属第四代电子计算机,它具有高性能、高速度、体积小、价格低廉、稳定可靠、应用广泛的特点。它的应用必定导致传统的控制技术从根本上发生变革。因此,单片机的开发应用已成为高科技和工程领域的一项重大课题。 电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。它在现代音乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。本文的主要内容襄阳理工 是用AT89S51单片机为核心控制元件,设计一个电子琴。以单片机作为主控核心,与键盘、扬声器等模块组成核心主控制模块,在主控模块上设有16个按键和扬声器器。 本文主要对使用单片机设计简易电子琴进行了分析,并介绍了基于单片机电子琴统硬件组成。利用单片机产生不同频率来获得我们要求的音阶,最终可随意弹奏想要表达的音乐。并且本文分别从原理图,主要芯片,各模块原理及各模块的程序的调试来详细阐述。 一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可。
一. 电子琴整体结构图 襄阳理工 二,电子琴各模块分解 1, 键盘部分 4X4行列式键盘识别及显示 组成键盘的按键有机械式、电容式、导电橡胶式、薄膜式多种,但不管什么形式,其作用都是一个使电路接通与断开的开关。目前微机系统中使用的键盘按其功能不同,通常可分为编码键盘和非编码键盘两种基本类型。 编码键盘:键盘本身带有实现接口主要功能所需的硬件电路。不仅能自动检测被按下的键,并完成去抖动、防串键等功能,而且能提供与被按键功能对应的键码(如ASCII码)送往CPU。所以,编码键盘接口简单、使用方便。但由于硬件电路较复杂,因而价格较贵。 非编码键盘:键盘只简单地提供按键开关的行列矩阵。有关按键的识别、键码的确定与输入、去抖动等功能均由软件完成。目前微机系统中,一般为了降低成本大多数采用非编码键盘。 键盘接口必须具有去抖动、防串键、按键识别和键码产生4个基本功能。 (1)去抖动:每个按键在按下或松开时,都会产生短时间的抖动。抖动的持续时间与键的质量相关,一般为5—20mm。所谓抖动是指在识别被按键是必须避开抖动状态,只有处在稳定接通或稳定断开状态才能保证识别正确无误。去抖问 2, 题可通过软件延时或硬件电路解决。 (2)防串键:防串键是为了解决多个键同时按下或者前一按键没有释放又有新的按键按下时产生的问题。常用的方法有双键锁定和N键轮回两种方法。双键锁定,是当有两个或两个以上的按键按下时,只把最后释放的键当作有效键并产生相应的键码。N键轮回,是襄阳理工 当检测到有多个键被按下时,能根据发现它们的顺序依次产生相应键的键码。 (3)被按键识别:如何识别被按键是接口解决的主要问题,一般可通过软硬结合的方法完成。常用的方法有行扫描法和线反转法两种。行扫描法的基本思想是,由程序对键盘逐行扫描,通过检测到的列输出状态来确定闭合键,为此,需要设置入口、输出口一个,该方法在微机系统中被广泛使用。线反转法的基本思想是通过行列颠倒两次扫描来识别闭合键,为此需要提供两个可编程的双向输入/输出端口。 (4)键码产生:为了从键的行列坐标编码得到反映键功能的键码,一般在内存区中建立一个键盘编码表,通过查表获得被按键的键码。 用AT89S51的并行口P1接4×4矩阵键盘,以P3.0-P3.3作输入线,以P3.4-P3.7作输出
线; 3, 2,发声部分
LM386内部电路 LM386是美国国家半导体公司生产的音频功率放大器,主要应用于低电压消费类产品。 襄阳理工 LM386特性: 静态功耗低,约为4mA,可用于电池供电; 工作电压范围宽,4V-12V或5V-18V; 外围元件少; 电压增益可调,20-200; 低失真度。 LM386是一种音频集成功放,具有自身功耗低、电压增益可调整、电源电压范围大、外接元件少和总谐波失真小等优点,广泛应用于录音机和收音机之中。
图1-3 LM386内部电路原理图 Fig1-3 LM386 internal circuit diagram LM386内部电路原理图如图1-3所示。与通用型集成运放相类似,它是一个三级放大电路. 第一级为差分放大电路,T1和T3、T2和T4分别构成复合管,作为差分放大电路的放大管;T5和T6组成镜像电流源作为T1和T2的有源负载;T3和T4信号从管的基极输入,从T2管的集电极输出,为双端输入单端输出差分电路。使用镜像电流源作为差分放大电路有源负载,可使单端输出电路的增益近似等于双端输出电容的增益 襄阳理工 第二级为共射放大电路,T7为放大管,恒流源作有源负载,以增大放大倍数。 第三级中的T8和T9管复合成PNP型管,与NPN型管T10构成准互补输出级。二极管D1和D2为输出级提供合适的偏置电压,可以消除交越失真。 引脚2为反相输入端,引脚3为同相输入端。电路由单电源供电,故为OTL电路。输出端(引脚5)应外接输出电容后再接负载。 电阻R7从输出端连接到T2的发射极,形成反馈通路,并与R5和R6构成反馈网络,从而引入了深度电压串联负反馈,使整个电路具有稳定的电压增益。
3, 音乐播放部分 通过P2.7口控制音乐播放。
三,音乐产生的方法 原理 一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这 样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系正确即可。 若要产生音频脉冲,只要算出某一音频的周期(1/频率),再将此周期除以2 即为半周期的时间。利用定时器计时半周期时间,每当计时终止后就将P1.0反相,然后重复计时再反相。就可在P1.0引脚上得到此频率的脉冲。 利用AT89C51的内部定时器使其工作计数器模式(MODE1)下,改变计数值襄阳理工 TH0及TL0以产生不同频率的方法产生不同音阶,例如,频率为523Hz,其周期T=1/523=1912μs,因此只要令计数器计时956μs/1μs=956,每计数956次时将I/O反相,就可得到中音DO(523Hz)。 计数脉冲值与频率的关系式(如式2-1所示)是: N=fi÷2÷fr 2-1 式中,N是计数值;fi是机器频率(晶体振荡器为12MHz时,其频率为1MHz);fr是想要产生的频率。 其计数初值T的求法如下: T=65536-N=65536-fi÷2÷fr 例如:设K=65536,fi=1MHz,求低音DO(261Hz)、中音DO(523Hz)、高音DO(1046Hz)的计数值。 T=65536-N=65536-fi÷2÷fr=65536-1000000÷2÷fr=65536-500000/fr 低音DO的T=65536-500000/262=63627 中音DO的T=65536-500000/523=64580 高音DO的T=65536-500000/1046=65059 单片机12MHZ晶振,高中低音符与计数T0相关的计数值如表2-2所示
表2-2 音符频率表 Table 2-2 notes the frequency table 音符 频率(HZ) 简谱码(T值) 音符 频率(HZ) 简谱码(T值) 低1 DO 262 63628 # 4 FA# 740 64860 #1 DO# 277 63731 中 5 SO 784 64898 低2 RE 294 63835 # 5 SO# 831 64934 #2 RE# 311 63928 中 6 LA 880 64968 低 3 M 330 64021 # 6 932 64994 低 4 FA 349 64103 中 7 SI 988 65030 # 4 FA# 370 64185 高 1 DO 1046 65058 低 5 SO 392 64260 # 1 DO# 1109 65085 # 5 SO# 415 64331 高 2 RE 1175 65110 低 6 LA 440 64400 # 2 RE# 1245 65134 # 6 466 64463 高 3 M 1318 65157