《2022年基于单片机的简易电子琴设计课程设计.docx》由会员分享,可在线阅读,更多相关《2022年基于单片机的简易电子琴设计课程设计.docx(37页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精品学习资源湖南文理学院课程设计报告课程名称:单片机课程设计专业班级:自动化 10102 班 17 号同学姓名:肖 葵指导老师:王南兰完成时间:2021 年 6 月 13 日报告成果:评阅看法:评阅老师日期 2021.6.20湖南文理学院制欢迎下载精品学习资源摘 要随着社会地进展进步,音乐逐步成为人们生活中很重要地一部分,有人曾说喜爱音乐地人不会向恶 . 我们都会抽空观赏世界名曲,作为对精神地洗礼. 本论文设计一个基于单片机地简易电子琴 . 人们对于电子琴如何实现其功能,如音色挑选、声音强弱掌握、节拍器、自动放音功能等等也很奇怪 .电子琴是现代电子科技与音乐结合地产物,是一种新型地键盘乐器.
2、它在现代音乐扮演着重要地角色,单片机具有强大地掌握功能和敏捷地编程实现特性,它已经溶入现代人们地生活中,成为不行替代地一部分 . 本文地主要内容是用 AT89S52 单片机为核心掌握元件,设计一个电子琴 . 以单片机作为主控核心,与键盘、扬声器等模块组成核心主掌握模块,在主控模块上设有16 个按键和扬声器 . 本系统运行稳固,其优点是硬件电路简洁,软件功能完善,掌握系统牢靠,性价比较高等,具有肯定地有用和参考价值.关键词: AT89S51; 音色节拍器;电子琴ABSTRACT欢迎下载精品学习资源With the development of our society, music has bec
3、ome an important part of life. There s a saying goes that people who likes music cannot be an evil. During our life, we often enjoy all kinds of music in the world to baptizeourspirits.Thisthesishasdesignedasimplemicrocontroller-based electronickeyboard.We arecuriousaboutthefoundationofelectronic ke
4、yboard, such as the choice of timber, the control of volume, the metrononmeand automatic playback.The keyboardisa productofmodern electronictechnologycombined with music, it is a new type of keyboard instruments. And it plays an importantroleinmodernmusic.Singlechiphasapowerfulcontrolfunctionsandfle
5、xibleprogrammingcharacteristics.Ithasconvergedwithmodern peoples lives,become an irreplaceablepart.The main contentisAT89S51 controlof the core components, Design of an electronic organ, single chip as a host tothecore,withthekeyboard,speakersandothercoremodulesmaincontrol module, in the main contro
6、l module has 16 keys and speakers. Stability of thesystem,itsadvantagesaresimplehardwarecircuits,softwarefunctions, control system reliability, high cost performance and have certain practicaland reference value.Keywords:singlechip MCUkeyboardspeakerelectronicorgan欢迎下载精品学习资源目 录第一章 设计方案分析11.1 设计背景11.
7、2 设计任务12.1 总体设计1其次章 电子琴总体电路图设计32.1 单片机最小系统32.1.1 AT89S52 简介32.1.2 时钟电路与复位电路62.2 显示部分设计72.2.1 数码显示方式72.2.2 八位数码管地结构82.3 按键模块设计82.3.1 按键选取82.3.2 键盘设计92.4 发音模块设计10第三章 程序设计123.1 系统总体功能流程图123.2 参数运算123.3 判定音阶(高中低音)子程序143.4 播放子程序15第四章 Proteus软件仿真174.1 编程环境 PROTEUS174.2 用 PROTEUS ISIS 进行硬件电路绘制174.3 下载 HEX
8、文件194.4 软件调试20心得体会22参考文献23附录一原理图24附录二源代码25欢迎下载精品学习资源1.1 设计背景第一章 设计方案分析欢迎下载精品学习资源随着电子科学技术地飞速进展,电子技术正在逐步改善着人们地学习、生活、工作,因此开发本系统期望能够给人们带来更多地生活乐趣.基于当前市场上地玩具需求量增大,其中电子琴就是一个很好地应用方面.单片机技术使我们可以利用软硬件来实现电子琴地功能,从而可以实现电子琴地微型化,可以用作玩具琴、音乐转盘以及音乐童车等等 .并且可以进行肯定地功能扩展.鉴于传统电子琴可以用键盘上地“1到”“A”键演奏从低 So 到高 DO 等 11 个音,从而也可以通过
9、单片机实现对十个按键地扩展,实现七个音符键地高、中、低21个音调地显示播放和任意音乐地自动播放.该设计将十个音键制作成独立键盘,其中七个为音符键,三 个为掌握键,并用数码管进行显示,使电子琴地功能更加完善.不但可以实现对按键地显示,而且可以实现对音乐地自动储备和播放,使该设计功能更加完善.1.2 设计任务实现电子琴发声掌握系统;要求电路实现如下功能:利用蜂鸣器作为发声部件,两个数码管作为显示部件,设置10 个按键,实现高音、中音、低音地1、2、3、4、5、6、7 地发音 .并在储备一首歌曲地内容,可以实现自动播放.用 PROTEUS 实现地电子琴仿真设计,通过Protel 绘制原理图 .2.1
10、 总体设计实现本次设计地方案有多种,下面比较说明一下正确方案地挑选.方案一:采纳单个地规律器件组合音乐是有由不同地音阶组成地,而不同地音阶又是由不同地频率发出地,那么利用不同地频率, 就可以发出不同地音乐了.我们知道计数器8253 可以产生任意频率地方波频率信号,因此,我们只要把一首歌曲地音阶对应频率与计数器地频率对应起来就可通过计数器产生音乐了.依据本试验要求,采纳8279 将键扫得到地键值通过查表得到相应地8253 地频率值,将从8253 得到相对应地按键弹奏信号经过LM386进行放大,再用喇叭输出,就实现了简易电子琴地基本功能,也就完成了试验地要求.方案二:采纳AT89S51 单片机作为
11、主控芯片,设置键盘、蜂鸣器等外围器件,另外仍用到一些简欢迎下载精品学习资源单器件如:两位数码管,和NPN 型三极管及电阻等 .利用按键实现音符和音调地输入;两位地数码管进行被操作地按键显示;用NPN 型三极管 8550 实现低音频功率放大;最终用蜂鸣器发音.方案一采纳单个地规律器件组合实现.这样虽然比较直观,规律器件分工鲜明,思路也比清晰,一目了然,但是由于元器件种类、个数繁多,而过于复杂地硬件电路也简洁引起系统地精度不高、体积过大等不利因素 .例如七个不同地音符是由七个不同地频率来掌握发出地,所用仪器之多显而易见.方案二与方案三相比,主控芯片采纳AT89S51 单片机,它是大规模集成电路技术
12、进展地产物,具有高性能、高速度、体积小、价格低廉、稳固牢靠、应用广泛地特点.同时具有强大地掌握功能和敏捷地编程实现特性,由于本设计主要用于人们消遣方面,因此在设计上尽量使其安全以及简洁易操作.而第三种方案具有经济可行性、技术可行性、实物应用性.综上所述,本次课程设计采纳其次种方案.欢迎下载精品学习资源其次章 电子琴总体电路图设计电子琴总体电路分别由单片机最小系统模块、显示模块、按键模块、发音模块四个模块组成.如下图所示 .发音单元按键89S52模块单片机显示模块2.1 单片机最小系统2.1.1 AT89S52 简介本系统采纳地是美国ATMEL 公司生产地AT89C51 单片机,第一我们来熟识一
13、下AT89S52 单片机地外部引脚和内部结构 .其引脚图如图 2.1 所示.欢迎下载精品学习资源1. 单片机地引脚功能AT89S52 单片机有 40 个引脚 .Vcc :电源电压 +5V GND :接地P0 口: P0 口是一组 8 位漏极开路型双向 I/O 口,也即地址 /数据总线复用口 .作为输出口用时,每位能驱动 8 个TTL 规律门电路,对端口写 “ 1可”作为高阻抗输入端用 .在拜访外部数据储备器或程序储备器时,这组口线分时转换地址(低8 位)和数据总线服用,在拜访期间激活内部上拉电阻 .在 Flash 编程时, P0 口接收指令字节,而在程序校验时,输出指令字节,校验时要求外接上拉
14、电阻.P1 口: P1 口是一个带内部上拉电阻地8 位双向I/O , P1 地输出缓冲级可驱动(吸取或输出电流)4 个 TTL图 2.1单片机引脚图欢迎下载精品学习资源规律门电路 .对端口写 “1”,通过内部地上拉电阻把端口拉到高电平,此时可作输入口.作输入口使用时,由于内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流.Flash 编程和程序校验期间,P1 接收低 8 位地址 .P2 口: P2 口是一个带内部上拉电阻地8 位双向 I/O , P2 地输出缓冲级可驱动(吸取或输出电流) 4 个 TTL规律门电路 .对端口写 “1,”通过内部地上拉电阻把端口拉到高电平,此时可作输入口.作
15、输入口使用时,由于内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流.在拜访外部程序储备器或16 位地址地外部数据储备器(例如执行MOVXDPTR指令)时, P2口送出高 8 位地址数据 .在拜访 8 位地址地外部数据储备器(MOVXRi 指令)时, P2 口线上地内容(也即特别功能寄存器(SFR)区中 P2 寄存器地内容),在整个拜访期间不转变.Flash 编程和程序校验期间,P2 亦接收低高位地址和其他掌握信号.P3 口: P3 口是一组带内部上拉电阻地8 位双向 I/O , P3 地输出缓冲级可驱动(吸取或输出电流) 4 个 TTL 规律门电路 .对 P3 口写入 “1时”,它们被
16、内部地上拉电阻拉高并可作为输入端口.作输入端时,被外部拉低地P3 口将用上拉电阻输出电流.P3 口除了作为一般地I/O 口线外,更重要地用途是它地其次功能,见表2-1 所示:P3 口仍接收一些用于Flash 闪速储备器编程和程序校验地掌握信号.表 2-1 P3 口地其次功能图端口引脚其次功能P3.0 P3.1 P3.2P3.3RXD (串行输入口)TXD (串行输出口)INT0 (外中断 0) INT1 (外中断 1)P3.4 P3.5 P3.6P3.7T0(定时 /计时器 0 外部输入)T1(定时 /计时器 1 外部输入) WR (外部数据储备器写选通)RD (外部数据储备器读选通)RST
17、:复位输入 .当振荡器工作时,RST 引脚显现两个机器周期以上高电平将使单片机复位.WDT溢出将使引脚输出高电平,设置SFRAUXR地 DISRT0 (地址 8EH )可打开或关闭该功能.DISRT0 位缺省为 RESET 输出高电平打开状态 .ALE/PROG :当拜访外部程序储备器或数据储备器时,ALE (地址锁存器答应)输出脉冲用于锁存地址地低8 位字节 .即使不拜访外部储备器,ALE仍以时钟振荡频率地1/6 输出固定地正脉冲信号,因此它可对外输出时钟或用于定时目地.要留意地是:每当拜访外部数据储备器时将跳过一个ALE 脉冲 .对 Flash 储备器编程期间,该引脚仍用于输入编程脉冲(P
18、ROG).如有必要,可通过多特别功能寄存器(SFR)区中地 8EH 单元地 D0 位置,可禁止 ALE 操作 .该位置后,只有一条MOVX和 MOVC指令 ALE才会被激活 .另外,该引脚会被柔弱拉高,单片机执行外部程序时,应设置ALE 无效.欢迎下载精品学习资源PSEN:程序储备答应( PSEN)输出是外部程序储备器地读选通信号,当AT89C51 由外部程序储备器取指令(或数据)时,每个机器周期两次PSEN 有效,即输出两个脉冲.当拜访外部数据储备器,没有两次有效地PSEN 信号 .EA/VPP :外部拜访答应 .欲使 CPU 仅拜访外部程序储备器(地址为0000H FFFFH), EA 端
19、必需保持低电平(接地).需要留意地是:假如加密位LB1 被编程,复位时内部会锁存EA 端状态 .如 EA 端为高电平(接 Vcc 端), CPU 就执行内部程序储备器中地指令. Flash 储备器编程时,该引脚加上+12V 地变成电压 Vpp.XTAL1 :振荡器反相放大器及内部时钟发生器地输入端.XTAL2 :振荡器反相放大器地输出端.AT89C51 单片机内部结构2. AT89C51 单片机与 MCS-51 完全兼容看门狗( WDT ): WDT 是一种需要软件掌握地复位方式.WDT 由 13位计数器和特别功能寄存器中地看门狗定时器复位储备器(WDTRST )构成 .WDT 在默认情形下无
20、法工作;为了激活WDT ,用户必需往 WDTRST 寄存器(地址: 0A6H )中依次写入 01EH 和 0E1H. 当WDT 激活后,晶振工作, WDT 在每个机器周期都会增加.WDT 计时周期依靠于外部时钟频率.除了复位(硬件复位或 WDT 溢出复位),没有方法停止 WDT 工作.当WDT 溢出,它将驱动 RSR引脚输出一个高电平 .可编程串口( UART )在AT89C51 中, UART 地操作与 AT89C51 和AT89C52 一样.AT89C51 系列单片机地串行通信口可以工作于同步和异步通信方式 .当工作于异步方式时,它具有全双工地操作功能,也就是说,它可以同时进行数据地发送和
21、接收 .串行口内地接收器采纳地是双缓冲结构,能够在接收到地第一个字节从接收寄存器读走之前就开头接收其次个字节(当然,假如其次个字节接收完毕,而第一个字节仍旧没有被读走,那将会丢掉一个字节) .串行口地发送和接收操作都是通过特别功能寄存器中地数据缓冲寄存器 SBUF 进行地,但在 SBUF地内部,接收寄存器和发送寄存器在物理结构上是完全独立地 .假如将数据写入 SBUF ,数据会被送入发送寄存器预备发送 .假如执行 SBUF 指令,就读出地数据肯定来自接收缓存器 .因此, CPU 对SBUF 地读写,实际上是分别拜访 2个不同地寄存器 .这 2个寄存器地功能决不能混淆 .振荡电路: AT89C5
22、1 系列单片机地内部振荡器,由一个单极反相器组成.XTAL1 反相器地输入, XTAL2 为反相器地输出 .可以利用它内部地振荡器产生时钟,只要XTAL1 和XTAL2 引脚上一个晶体及电容组成地并联谐振电路,便构成一个完整地振荡信号发生器,此方式称为内部方式.另一种方式由外部时钟源供应一个时钟信号到XTAL1 端输入,而 XTAL2 端浮空 .在组成一个单片机应用系统时,多数采纳这种方式,这种方式结构紧凑,成本低廉,牢靠性高.在电路中,对电容C1和C2地值要求不是很 严格,假如使用高质地晶振,就不管频率为多少,C1、C2通常都挑选 30pF.定时 /计数器: AT89C51 单片机内含有 2
23、个16位地定时器 / 计数器 .当用于定时器方式时,定时器地输入来自内部时钟发生电路,每过一个机器周期,定时器加1,而一个机器周期包含有12个振荡周期,所以,定时器地技术频率为晶振频率地1/12,而计数频率最高为晶振频率地1/24.为了实现定时和计数功能,定时器中含有3种基本地寄存器:掌握寄存器、方式寄存器和定时器/计数器 .掌握寄存器是一个 8位地寄存器,用于掌握定时器地工作状态,方式寄存器是一个8位地寄存器,用于确定定时器地欢迎下载精品学习资源工作方式,定时器/计数器是 16位地计数器,分为高字节和低字节两部分.RAM :高于 7FH 内部数据储备器地地址是8位地,也就是说其地址空间只有2
24、56字节,但内部RAM 地寻址方式实际上可供应384字节 .地直接地址拜访同一个储备空间,高于7FH 地间接地址拜访另一个储备空间 .这样,虽然高 128字节区分与专用寄器,即特别功能寄存器区地地址是重合地,但实际 上它们是分开地 .到底拜访哪一区,存是通过不同地寻址方式加以区分地.SFR: SFR是具有特别功能地全部寄存器地集合,共含有22个不同寄存器,它们地地址安排在80H FFH中.虽然如此,不是全部地单元都被特别功能寄存器占用,未被占用地单元,其内容是不确定地 .如对这些单元进行读操作,得到地是一些随机数,而写入就无效,所以在编程时不应当将数据写入这些未确定地地址单元中,特别功能寄存器
25、主要有累加器ACC 、 B寄存器、程序状态字寄存器PSW、堆栈指针 SP、数据指针 DPTR 、I/O 端口、串行口数据缓冲器SBUF、定时器寄存器、捕获寄存器、掌握寄存器 .中断系统: AT89C51 单片机有 6 个中断源,中断系统主要由中断答应寄存器IE、中断优先级寄存器IP、优先级结构和一些规律门组成.IE 寄存器用于答应或禁止中断;IP 寄存器用于确定中断源地优先级别;优先级结构用于执行中断源地优先排序;有关规律门用于输入中断恳求信号.在整个中断响应过程中 CPU 所执行地操作步骤如下:( 1)完成当前指令地操作( 2)将 PC 内容压入堆栈( 3)储存当前地中断状态( 4)阻挡同级
26、地中断恳求( 5)将中断程序入口地址送PC 寄存器( 6)执行中断服务程序( 7)返回此外, AT89S52 设计和配置了振荡频率可为0Hz 并可通过软件设置省电模式 . 闲暇模式下, CPU暂停工作,而 RAM定时计数器,串行口,外中断系统可连续工作,掉电模式冻结振荡器而储存 RAM地数据,停止芯片其它功能直至外中断激活或硬件复位. 同时该芯片仍具有 PDIP、TQFP和 PLCC等三种封装形式,以适应不同产品地需求.2.1.2 时钟电路与复位电路单片机内部具有一个高增益反相放大器,用于构成振荡器.通常在引脚 XTALl和 XTAL2跨接石英晶体和两个补偿电容构成自激振荡器,结构如下图中 C
27、Y1 、 C2、 C3. 可以依据情形挑选6MHz 、12MHz 或 24MHz 等频率地石英晶体,补偿电容通常挑选30pF 左右地瓷片电容 .欢迎下载精品学习资源图 2.2时钟电路单片机小系统常采纳上电自动复位和手动按键复位两种方式实现系统地复位操作.上电复位要求接通电源后,自动实现复位操作.手动复位要求在电源接通地条件下,在单片机运行期间,用按钮开关操作使单片机复位 .其结构如下图 .上电自动复位通过电容C1 充电来实现 .手动按键复位是通过按键将电阻R19 与 VCC 接通来实现 .图 2.3复位电路2.2 显示部分设计2.2.1 数码显示方式数码显示有静态显示方式与动态显示方式两种.工
28、作在静态显示方式时,数码管位置线与电源始终相连,数码管中地二极管均处于通电状态,即在静态工作方式下,显示电路中数码管位置选线是同时选通,而数码管地段选线是独立输入 .工作在动态显示方式时,数码管位置线在扫描掌握电路地掌握下按设定次序导通,即电路中地数码管是逐个接通电源,数码管地段选线以并联方式与译码电路联接,即在动态工作方式下,数码管不是同时导通显示而是依据设定次序分时导通显示 .七段 LED 显示器内部由七个条形发光二极管和一个小圆点发光二极管组成,依据各管地极管地接线形式,可分成共阴极型和共阳极型. LED 数码管地 ga 七个发光二极管因加正电压而发亮,因加零欢迎下载精品学习资源电压而不
29、以发亮,不同亮暗地组合就能形成不同地字形,这种组合称之为字形码,下面给出共阴极地字形码表(如表 3-1 所示)表 3-1数码管真值表“ 0”“ 1”“ 2”“ 3”“ 4”“ 5”“ 6”“ 7”3FH06H5BH4FH66H6DH7DH07H“ 8”“ 9”“ A”“ b”“ C”“ d”“ E”“ F”7FH6FH77H7CH39H5EH79H71H2.2.2八位数码管地结构系统采纳两个字符显示地数码管进行动 态显示 .如下图所示利用单片机地 P0 端口地P0.0P0.7 连接到一个七段数码管地 a g 地笔段上以及小数点 DP.其中和 2 为片选端口 .为了显示字符,要为 LED 显示器
30、段码,除了组成 8 字形地字符地 7 段,另加上1 个小数点位,共计 8 段, 因此供应应 LED显示器地显示段码为 1 个字节2.3 按键模块设计2.3.1 按键选取常 用 地 按 键 有 三 种 : 机 械 触 点 式 按 键 、 导 电 橡 胶 式 和 柔 性 按 键 ( 又 称 触 摸 式 键 盘 ) .机械触点式按键是利用机械弹性使键复位,手感明显,连线清晰,工艺简洁,适合单件制造.但是触点处易侵入灰尘而导致接触不良,体积相对较大.导电橡胶按键是利用橡胶地弹性来复位,通过压制地方法把面板上全部地按键制成一块,体积小, 装配便利,适合批量生产.但是时间长了,橡胶老化而使弹力下降,同时易
31、侵入灰尘.柔性按键是近年来快速进展地一种新型按键,可以分为凸球型和平面型两种.柔性按键最大特点是防尘、防潮、耐蚀,形状美观,装嵌便利.而且形状和面板地布局、颜色、键距可依据整机地要求来设计 .欢迎下载精品学习资源但是由于客观条件与经济才能有限,本系统采纳机械触点式按键.2.3.2 键盘设计键盘在单片机应用系统中是一个关键地部件,它能实现向运算机输入数据,传送命令等功能,是人工干预运算机地主要手段.键盘可以分为 2 类:独立连接式键盘和矩阵式键盘.(1) 矩阵式键盘单片机系统中,如按键较多时,通常采纳矩阵式(也称行列式)键盘.矩阵式键盘由行线和列线组成,按键位于行、列线地交叉点上.明显,在按键数
32、量较多时,矩阵式键盘较之独立式按键键盘要节约很多 I/O 口.矩阵式键盘中,行、列线分别连接到按键开关地两端,行线通过上拉电阻接到+5V 上当无键按下时,行线处于高电平状态;当有键按下时,行、列线将导通,此时,行线电平将由与此行线相连地列线电平打算 .这是识别按键是否按下地关键.(2) 独立连接式键盘独立式按键是直接用I/O 口线构成地单个按键电路,其特点是每个按键单独占用一根I/O 口线, 每个按键地工作不会影响其它I/O 口线地状态 .独立式按键电路配置敏捷,软件结构简洁,但每个按键必需占用一根 I/O 口线,然而,在按键较多时,I/O 口线铺张较大,不宜采纳.独立式按键软件常采纳查询式结
33、构 .先逐位查询每根 I/O 口线地输入状态,如某一根 I/O 口线输入为低电平,就可确认该 I/O 口线所对应地按键已按下,然后,再转向该键地功能处理程序 .由于本程序较为简洁,为了使用便利及节约资源,挑选独立式键盘 .下图为独立式键盘电路图:欢迎下载精品学习资源键盘编程中主要考虑去抖动地问题.当测试说明有键被按下之后,紧接着就进行去抖动处理.由于键是机械开关结构,由于机械触点地弹性及电压突跳等缘由,在触点闭合或断开地瞬时会显现电压抖动.为保证键识别地精确,在电压信号抖动地情形下不能进行行状态输入.为此需进行去抖动处理.去抖动有硬件和软件两种方法.硬件方法就是加去抖动电路,从根本上防止抖动地
34、产生.软件消抖,在第一次检测到有键按下时,执行一段延时程序之后,再检测此按键,假如其次次检测结果仍为按下状态,CPU 便确认此按键己按下,排除了抖动.2.4 发音模块设计如下图所示,发音电路是由蜂鸣器、三极管、上拉电阻构成.由三极管来驱动扬声器发音地,同时加上拉电阻增强驱动电流,提高驱动才能.一首音乐是很多不同地音阶组成地,而每个音阶对应着不同地频率,这样我们就可以利用不同地频率地组合,即可构成我们所想要地音乐了,当然对于单片机来产生不同地频率特别便利,我们可以欢迎下载精品学习资源利用单片机地定时 /计数器T0 来产生这样方波频率信号,因此,我们只要把一首歌曲地音阶对应频率关系正确即可 .欢迎
35、下载精品学习资源第三章 程序设计3.1 系统总体功能流程图( 1)键盘扫描程序:检测是否有按键按下,有按键按下就记录按下键地键值,并跳转至功能转移程序;无按键按下,就返回键盘扫描程序连续检测 .( 2)功能转移程序:对检测到地按键值进行判定,是琴键就跳转至琴键处理程序,是功能键就跳转至相应地功能程序,我们设计地功能程序有两种,即音色调剂功能和自动播放乐曲地功能 .( 3)琴键处理程序:依据检测到地按键值,查询音调表,给计时器赋值,使发出相应频率地声音 .( 4)自动播放歌曲程序:检测到按键按下地是自动播放歌曲功能键后执行该程序,电子琴会自动播放事先已经存放地歌曲,歌曲播放完毕之后自动返回至键盘
36、扫描程序,连续等待是否有按键按下3.2 参数运算利用单片机地内部定时器使其工作计数器模式(MODE1 )下,转变计数值TH0 及 TL0 以产生不同频率地方法产生不同音阶.例如,频率为523Hz ,其周期 T 1/523 1912s,因此只要令计数器计时 956 s/1 s956,每计数 956 次时将 I/O 反相,就可得到中音DO ( 523Hz ) .计数脉冲值与频率地关系式如式 2-1 所示 是:N fi2fr 2-1式中, N 是计数值; fi 是机器频率(晶体振荡器为12MHz 时,其频率为 1MHz ); fr 是想要产生地频欢迎下载精品学习资源率.其计数初值 T 地求法如下:T
37、 65536 N 65536fi2fr例如: 设 K 65536 , fi 1MHz ,求低 音 DO ( 261Hz )、中 音 DO ( 523Hz )、高 音 DO( 1046Hz )地计数值 .T 65536 N 65536 fi 2fr 65536 1000000 2fr 65536 500000/fr低音 DO 地 T 65536 500000/262 63627 中音 DO 地 T 65536 500000/523 64580 高音 DO 地 T 65536 500000/1046 65059欢迎下载精品学习资源音符频率( HZ )表 4-2 音符频率表简谱码( T音符频率( H
38、Z )值)简谱码( T值)欢迎下载精品学习资源低 1DO26263628# 4 FA#74064860#1DO#27763731中 5 SO78464898低 2RE29463835# 5 SO#83164934#2 RE#31163928中 6 LA88064968低 3 M33064021# 693264994低 4 FA34964103中 7 SI98865030# 4 FA#37064185高 1 DO104665058低 5 SO39264260# 1 DO#110965085# 5 SO#41564331高 2 RE117565110低 6 LA44064400# 2 RE#124
39、565134# 646664463高 3 M131865157低 7 SI49464524高 4 FA139765178中 1 DO52364580# 4 FA#148065198# 1 DO#55464633高 5 SO156865217中 2 RE58764684# 5 SO#166165235# 2 RE#62264732高 6 LA176065252中 3 M65964777# 6186565268中 4 FA69864820高 7 SI196765283单片机 12MHZ 晶振,高中低音符与计数T0 相关地计数值如表4-2 所示对于不同地曲调我们也可以用单片机地另外一个定时/计数器来
40、完成 .琴键处理程序,依据检测到得按键值,查询音律表,给计时器赋值,发出相应频率地声音.在这个程序中用到了两个定时/计数器来完成地.其中 T0 用来产生音符频率, T1 用来产生音拍 .欢迎下载精品学习资源采纳查表程序进行查表时,可以为这个音符建立一个表格,有助于单片机通过查表地方式来获得相应地数据:低音 0 19 之间,中音在 20 39 之间,高音在 40 59 之间.用单片机播放音乐,或者弹奏电子琴,实际上是依据特定地频率,输出一连串地方波.为了输出合适地方波,第一应当知道音符与频率地关系 .3.3 判定音阶(高中低音)子程序在软件设计中采纳yinjie 代表音阶,如下表所示音阶Yinj
41、ie 值高2中1低0初始化状态为中音(yinjie=1 ),电路中设计高、低两个音阶键.上电后,如无按键按下,就为中 音模式 .如音阶键被按下,就如下流程图所示,初始化后进行按键扫描,在高音键按下,如初始yinjie 不为 2,就另 yinjie=2, 进入高音工作模式,如初始yinjie 为 2,就对 yinjie 进行初始化,即另yinjie=1, 重新进入进入中音工作模式,这样即实现了高音键切换高、中音方式地转换.同理,用低音键实现中、 低音地切换 .欢迎下载精品学习资源开头初始化设定yinjie=1, 即方式为中音判定工作方式高音挑选按下N低音挑选按下Y判定 yinjie值判定yinj
42、ie 值yinjie=2yinjie=0NN设定yinjie=2设定yinjie=0Y3.4 播放子程序本设计共两种播放模式,包括自动播放储备音乐和按键发音.上电后,第一开中断并设定定时器0为工作方式1,当自动播放键按下时,进入中断,依据乐谱在定义地音频数组中查找相应音律,然后给定时器赋初值,即开头播放音乐.当 DO 、RE 、MI 、FA、SO、LA 、SI 七种音符键按下时,依据音阶值(如 3.3.1 中高中低对应)和音符值在定义地音频数组中查找相应音律,然后给定时器赋初值,即按欢迎下载精品学习资源键发音 .开头开中断并设定工作方式寄存器有键按下自动播放键按下N进入中断Y依据yinjie和工作进入中断方式取值,并在数组中查找相应音律依据乐谱在数组中查找相应音律给定时器 T0赋值给定时器T0赋值播放键值对应的音符播放音乐欢迎下载精品学习资源第四章 Proteus软件仿真4.1 编程环境 PROTEUSPROTEUS 软件是由英国 LabCenter Electronics公司开发地 EDA 工具软件,由 ISIS 和 ARES 两个软件构成,其中ISIS 是一款便利地电子系统仿真平台软件,ARES 是一