《2022年基于单片机的简易电子琴设计.docx》由会员分享,可在线阅读,更多相关《2022年基于单片机的简易电子琴设计.docx(41页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精品学习资源摘 要电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器;它在现代音乐扮演着重要的角色,单片机具有强大的掌握功能和敏捷的编程实现特性,它已经溶入现代人们的生活中,成为不行替代的一部分;本文的主要内容是用AT89S51 单片机作为核心掌握元件,设计一个电子琴;以单片机作为主控核心,与键盘、扬声器等模块组成核心主掌握模块,在主控模块上设有16 个按键和扬声器;本系统运行稳固,其优点是硬件电路简洁,软件功能完善,掌握系统牢靠,性价比较高等,具有肯定的有用和参考价值;关键词:单片机键盘扬声器电子琴欢迎下载精品学习资源AbstractElectronic organ is a mod
2、ern electronic music technology and the product is a new type of keyboard instruments. It played an important role in modernmusic. SCM has powerful control functions and flexible programming characteristics. It has converged with modern peoples lives, become an irreplaceable part. The main content i
3、s AT89S51 control of the core components, design of a electronic organ. SCM as a host to the core, with thekeyboard, speaker and other core modules. In the main control module has 16keysandaspeaker.Thesystemissteady,itssimplehardwarecircuits, softwarefunctions,reliabilityofcontrolsystemand highcostp
4、erformance is its advantages. It also has certain practical and reference value.Key words :SCM keyboard speaker electronic organ欢迎下载精品学习资源目录摘要 - 1 - Abstract- 2 - 目录 - 3 -1 引言 - 4 -2 原理图 - 5 -2.1 系统板硬件连线 - 6 -3 主要芯片简介 - 7 -3.1 AT89S51 简介 - 7 -3.1.1 主要功能特性 - 8 -3.1.2 引脚功能 - 8 - 3.2 LM386 - 9 -3.2.1 L
5、M386的引脚图 - 10 -3.2.2音频放大器电路 - 10 -3.3 LED 数码管 - 11 - 4 模块原理 - 12 -4.1 4X4行列式键盘识别及显示- 12 -4.1.1 系统板上硬件连线设计- 12 -4.1.2 程序设计内容 - 14 -图 4-2行列式键盘电路 - 14 -4.1.3 I/O并行口直接驱动 LED显示 - 15 -4.1.4 键盘识别程序 - 18 -4.2 音乐产生的方法 - 24 -4.2.1原理 - 24 -4.2.2程序框图 - 26 -4.2.3源程序: - 27 - 5 终止语 - 35 -致谢 - 36 -参考文献 - 37 -欢迎下载精品
6、学习资源1 引言单片微型运算机是大规模集成电路技术进展的产物,属第四代电子运算机,它具有高性能、高速度、体积小、价格低廉、稳固牢靠、应用广泛的特点;它的应用必定导致传统的掌握技术从根本上发生变革;因此,单片机的开发应用已成为高科技和工程领域的一项重大课题;电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器;它在现代音乐扮演着重要的角色,单片机具有强大的掌握功能和敏捷的编程实现特性,它已经溶入现代人们的生活中,成为不行替代的一部分;本文的主要内容是用AT89S51 单片机为核心掌握元件,设计一个电子琴;以单片机作为主控核心,与键盘、扬声器等模块组成核心主掌握模块,在主控模块上设有16 个
7、按键和扬声器;本文主要对使用单片机设计简易电子琴进行了分析,并介绍了基于单片机电子琴统硬件组成;利用单片机产生不同频率来获得我们要求的音阶,最终可随便弹奏想要表达的音乐;并且本文分别从原理图,主要芯片,各模块原理及各模块的程序的调试来具体阐述;一首音乐是很多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率特别便利,我们可以利用单片机的定时/ 计数器 T0 来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可;欢迎下载精品学习资源2 原理图C7欢迎下载精品学习资源DS1 DPY7_
8、SEG_DPa7fa6b b4gc2d102D21NP2.0/A8G22P2.1/A923P2.2/A1024P2.3/A1125P2.4/A1226P2.5/A1327P2.6/A1428P2.7/A1529 PSEN30 ALE32P0.7/AD733P0.6/AD634P0.5/AD535P0.4/AD436Y1 12MHz9811U112XXP3.7/RD17P3.6/WR16P3.5/T115P3.4/T014P3.3/INT113P3.2/INT012P3.1/TXD11P3.0/RXD108P1.77P1.66P1.55P1.430pF C630pFCR4 CR3 CR2 CR1
9、 BR4 BR3 BR2 BR1S13S14S15S16S9SW-PBS10SW-PBS11SW-PBS12SW-PBC2S5SW-PBS6SW-PBS7SW-PBS8SW-PBS1SW-PBS2SW-PBS3SW-PBS4SW-PBSW-PBSW-PBSW-PBSW-PB1 2 3R R RB B B4 1 2 3 4R R R R R B C C C C欢迎下载精品学习资源e9cf10g5P0.3/AD337P0.2/AD2P1.34310uF C38 7 6 5 43 2 1欢迎下载精品学习资源edpddpDDNNGG3838P0.1/AD139P0.0/AD0c VP1.2P1.1SA
10、TP1.0ER21AT89S51R2 10KVCCR30.1uF6327Vcc IN+ IN-BYPASSP1HEADER 8V OUT51GA IN8GA IN4GN D欢迎下载精品学习资源R4 2200143VCC9R1 10KC1 10uF10KLM386U2R410KC4C5 0.1uFLS1扬声器欢迎下载精品学习资源图 2-1 电子琴电路图234欢迎下载精品学习资源2.1 系统板硬件连线系统板硬件连线如图 2-1 所示,发生模块,键盘模块,及LED显示模块连接如下1. 把“单片机系统”区域中的P1.0 端口用导线连接到“音频放大模块”区域中的SPKIN端口上;2. 把“单片机系统“区
11、域中的P3.0 P3.7 端口用 8 芯排线连接到“ 4X4 行列式键盘”区域中的 C1C4R1R4 端口上;3. 把“单片机系统”区域中的P0.0/AD0P0.7/AD7 端口用 8 芯排线连接到“四路静态数码显示模块”区域中的任一个ah 端口上;要求: P0.0/AD0 对应着 a,P0.1/AD1 对应着 b, P0.7/AD7 对应着 h;欢迎下载精品学习资源3 主要芯片简介30.1 AT89S51 简介AT89S51是一个低功耗,高性能 CMOS 8位单片机,片内含4k Bytes ISPIn-system programmable 的可反复擦写 1000 次的 Flash只读程序储
12、备器,器件采纳ATMEL公司的高密度、非易失性储备技术制造,兼容标准MCS-51指令系统及 80C51 引脚结构,芯片内集成了通用 8 位中心处理器和 ISP Flash储备单元,功能强大的微型运算机的AT89S51 可 为 许 多 嵌 入 式 控 制 应 用 系 统 提 供 高 性 价 比 的 解 决 方 案 ;AT89S51具有如下特点: 40 个引脚(引脚图如图 3-1 所示), 4k Bytes Flash片内程序储备器, 128 bytes的随机存取数据储备器( RAM), 32 个外部双向输入 / 输出( I/O )口, 5 个中断优先级 2 层中断嵌套中断, 2 个 16 位可编
13、程定时计数器 ,2 个全双工串行通信口,看门狗( WD)T 电路,片内时钟振荡器;此外, AT89S51设计和配置了振荡频率可为 0Hz 并可通过软件设置省电模式;闲暇模式下, CPU暂停工作,而 RAM定时计数器,串行口,外中断系统可连续工作,掉电模式冻结振荡器而储存 RAM的数据,停止芯片其它功能直至外中断激活或硬件复位;同时该芯片仍具有 PDIP、TQFP和 PLCC等三种封装形式,以适应不同产品的需求;欢迎下载精品学习资源图 3-1 管脚图30.1.1 主要功能特性 兼容 MCS-51指令系统 32 个双向 I/O 口 2 个 16 位可编程定时 / 计数器 全双工 UART串行中断口
14、线 2 个外部中断源 中断唤醒省电模式 看门狗( WD)T 电路 敏捷的 ISP 字节和分页编程 4k 可反复擦写 ISP Flash ROM 4.5 -5.5V 工作电压 时钟频率 0- 33MHz 128x8bit内部 RAM 低功耗闲暇和省电模式 3 级加密位 软件设置闲暇和省电功能 双数据寄存器指针30.1.2 引脚功能VCC(40): 5V; GND(20):接地;P0 口( 3932): P0 口为 8 位漏极开路双向 I/O 口,每引脚可吸取8 个 TTL 门电流;P1 口( 18): P1 口是从内部供应上拉电阻器的 8 位双向 I/O 口, P1 口缓冲器能接收和输出 4 个
15、 TTL 门电流;P2 口( 21 28): P2 口为内部上拉电阻器的 8 位双向 I/O 口, P2 口缓冲器可接收和输出 4 个 TTL门电流;P3 口( 10 17): P3 口是 8 个带内部上拉电阻器的双向 I/O 口,可接收和输出 4 个TTL门电流, P3 口也可作为 AT89C51的特殊功能口; RST(9):复位输入;当振荡器复位时,要保持RST 引脚 2 个机器周期的高电平常间;ALE/PRO(G 30):当拜访外部储备器时,地址锁存答应的输出电平用于锁存地址的低位字节,在 FLASH编程期间,此引脚用于输入编程脉冲;在平常,ALE端以不变的频率周期输出正脉冲信号,此频率
16、为振荡器频率的1/6 ,它可用作对外部输出的脉冲或用于定时目的,要留意的是,每当拜访外部数据储备器时,将跳过1 个 ALE脉冲;欢迎下载精品学习资源PSEN( 29):外部程序储备器的选通信号;在由外部程序储备器取指期间,每个机器周期 2 次 PSEN有效,但在拜访外部数据储备器时,这2 次有效的 PSEN信号将不显现;EA/VPP(31):当 EA 保持低电平常,外部程序储备器地址为(0000HFFFFH)不管是否有内部程序储备器; FLASH编程期间,此引脚也用于施加12V编程电源( VPP); XTAL1(19):反向振荡器放大器的输入及内部时钟工作电路的输入; XTAL2(18):来自
17、反向振荡器的输出;3.2 LM386LM386 是一种音频集胜利放,具有自身功耗低、电压增益可调整、电源电压范畴大、外接元件少和总谐波失真小等优点,广泛应用于录音机和收音机之中;LM386内部与通用型集成运放相类似,它是一个三级放大电路;第一级为差分放大电路, T1 和 T3、T2 和 T4 分别构成复合管,作为差分放大电路的放大管; T5 和 T6 组成镜像电流源作为 T1 和 T2 的有源负载; T3 和 T4 信号从管的基极输入,从 T2 管的集电极输出,为双端输入单端输出差分电路;使用镜像电流源作为差分放大电路有源负载,可使单端输出电路的增益近似等于双端输出电容的增益;其次级为共射放大
18、电路, T7 为放大管,恒流源作有源负载,以增大放大倍数;第三级中的 T8 和 T9 管复合成 PNP型管,与 NPN型管 T10 构成准互补输出级;二极管 D1和 D2 为输出级供应合适的偏置电压,可以排除交越失真;引脚 2 为反相输入端,引脚 3 为同相输入端;电路由单电源供电,故为OTL电路;输出端(引脚 5)应外接输出电容后再接负载;电阻 R7 从输出端连接到 T2 的发射极,形成反馈通路,并与R5 和 R6 构成反馈网络,从而引入了深度电压串联负反馈,使整个电路具有稳固的电压增益;欢迎下载精品学习资源3.2.1 LM386 的引脚图C7欢迎下载精品学习资源098211D12NXXY1
19、 12MHzU130pF C630pF欢迎下载精品学习资源0/AG81/A9欢迎下载精品学习资源P3.7/RD17CR4欢迎下载精品学习资源2/A10欢迎下载精品学习资源P3.6/WR16CR3欢迎下载精品学习资源3/A11P3.5/T115CR2欢迎下载精品学习资源4/A1214P3.4/T0CR1图 3-3 LM386 的形状和引脚的排列欢迎下载精品学习资源5/A13LM386的13 外BR形4和引脚的排列如图 3-3 所示;引脚 2 为反相输入端, 3 为同相输入端;欢迎下载精品学习资源P3.3/INT1欢迎下载精品学习资源6/A14引脚 5 为输1出2B端R3;引脚 6 和 4 分别为
20、电源和地;引脚 1 和 8 为电压增益设定端;使用时欢迎下载精品学习资源P3.2/INT0欢迎下载精品学习资源7/A15在引脚 7 和1地1之BR间2接旁路电容,通常取 10F;欢迎下载精品学习资源P3.1/TXDN欢迎下载精品学习资源P3.0/RXD10BR1欢迎下载精品学习资源E3.2.2音频放大器电路欢迎下载精品学习资源7/AD78P1.7欢迎下载精品学习资源6/AD67P1.6欢迎下载精品学习资源5/AD5P1.564/AD4C25P1.4欢迎下载精品学习资源3/AD3410uF欢迎下载精品学习资源P1.32/AD2C3欢迎下载精品学习资源P1.23VCC欢迎下载精品学习资源1/AD1
21、20.1uFC4LS1欢迎下载精品学习资源P1.165欢迎下载精品学习资源0/AD01R23VccV OUT1欢迎下载精品学习资源cTcASVERP1.010KAT89S512IN+7IN-R3BY PASSGA IN8GA IN4GN D10uFC5扬声器欢迎下载精品学习资源0194310KLM386U210K R40.1uF欢迎下载精品学习资源图 2.3音频放大器电路Title欢迎下载精品学习资源3.3 LED 数码管a764219105a b c d e f gdp eDfbgcNdDdpGNG38图 3-4 7段数码管数码管(如图 3-4 所示)使用条件:a、段及小数点上加限流电阻b、
22、使用电压:段:依据发光颜色打算;小数点:依据发光颜色打算c、使用电流:静态:总电流80mA(每段 10mA);动态:平均电流 4-5mA 峰值电流 100mA上面这个只是七段数码管引脚图,其中共阳极数码管引脚图和共阴极的是一样的;数码管使用留意事项说明:(1) 数码管表面不要用手触摸,不要用手去弄引角;(2) 焊接温度:度;焊接时间:(3) 表面有爱护膜的产品 , 可以在使用前撕下来;欢迎下载精品学习资源4 模块原理4.1 4X4 行列式键盘识别及显示组成键盘的按键有机械式、电容式、导电橡胶式、薄膜式多种,但不管什么形式, 其作用都是一个使电路接通与断开的开关;目前微机系统中使用的键盘按其功能
23、不同, 通常可分为编码键盘和非编码键盘两种基本类型;编码键盘:键盘本身带有实现接口主要功能所需的硬件电路;不仅能自动检测被按下的键,并完成去抖动、防串键等功能,而且能供应与被按键功能对应的键码(如ASCII码)送往 CPU;所以,编码键盘接口简洁、使用便利;但由于硬件电路较复杂,因而价格较贵;非编码键盘:键盘只简洁地供应按键开关的行列矩阵;有关按键的识别、键码的确定与输入、去抖动等功能均由软件完成;目前微机系统中,一般为了降低成本大多数采纳非编码键盘;用 AT89S51的并行口 P1 接 44矩阵键盘,以 P1.0 P1.3 作输入线,以 P1.4 P1.7作输出线;在数码管上显示每个按键的“
24、0F”序号;4.1.1 系统板上硬件连线设计键盘模块硬件连线如图 4-1 所示:欢迎下载精品学习资源C7欢迎下载精品学习资源918112XXY1 12MHzU130p F C630p FS13S9SW-PBS5SW-PBS1SW-PBSW-PB欢迎下载精品学习资源欢迎下载精品学习资源P3. 7/RD17P3. 6/WR1615P3. 5/T1P3. 4/T014P3. 3/INT 113P3. 2/INT 012P3. 1/TXD1110CR4 CR3 CR2 CR1 BR4 BR3 BR2BR1S14S15S10SW-PBS11SW-PBS6SW-PBS7SW-PBS2SW-PBS3SW-P
25、BSW-PBSW-PB欢迎下载精品学习资源P3. 0/RXD欢迎下载精品学习资源P1. 78S16S12S8S4欢迎下载精品学习资源P1. 67P1. 56SW-PBSW-PBSW-PBSW-PB123412 34欢迎下载精品学习资源P1. 45C2R RB BR R R R RR B BC C CC欢迎下载精品学习资源P1. 34P1. 23VCC10u F C387654321欢迎下载精品学习资源P1. 12T1R20.1u F图 4-1 键盘模块连6线图3VccP1HE ADER 8V O UT51欢迎下载精品学习资源AS(1P)1. 0把“单片机系统“区域中的 P3.0 P3.7 端口
26、用IN+8 芯排线连接到“GA4IXN4 行列式键欢迎下载精品学习资源ER10K2IN-GA IN8欢迎下载精品学习资源盘”区域中的 C1C4R1R4 端口上;7BY PASSGN D4欢迎下载精品学习资源319AT 89S51(2)把“单片机系统”区域中的R3 1P00K.0/AD0P0.7L/MA3D876端口U用28 芯排线连接到“四R4 10K欢迎下载精品学习资源R1C10KC5欢迎下载精品学习资源路静态数码显示模块”区域中的任一个a h 端口上;要求: P0.0/AD0 对应着 a, P0.1/AD1 对应着 b, P0.7/AD7 对应着 h;4.1.2 程序设计内容1. 44矩阵
27、键盘识别处理 2每个按键有它的行值和列值,行值和列值的组合就是识别这个按键的编码;矩阵的行线和列线分别通过两并行接口和CPU通信;每个按键的状态同样需变成数字量“0”4和“ 1”,开关的一端(列线)通过电阻接 VCC,而接地是通过程序输出数字“ 0”实现的;键盘处理程序的任务是:确定有无键按下,判定哪一个键按下,键的功能是什么;1RB2RB3RB 4RB1RC 2RC 3RC8765434RC21P 1HEADER8仍要排除按键在闭合或断开时的抖动;两个并行口中,一个输出扫描码,使按键逐行动态接地,另一个并行口输入按键状态,由行扫描值和回馈信号共同形成键编码而识别按键,通过软件查表,查出该键的
28、功能;S13S9S 5S 1SW-PBSW-PBS W-PBS W-PBS14S10S 6S 2SW-PBSW-PBS W-PBS W-PBS15S11S 7S 3SW-PBSW-PBS W-PBS W-PBS16S12S 8S 4SW-PBSW-PBS W-PBS W-PB图 4-2行列式键盘电路欢迎下载精品学习资源4.1.3 I/O并行口直接驱动 LED显示LED显示模块如图 4-3 所示,利用 AT89S51单片机的 P0 端口的 P0.0 P0.7 连接到一2345个共阴数码管的 ah 的笔段上,数码管的公共端接地;在数码管上循环显示0 9 数字,时间间隔 0.2 秒;系统板上硬件连线
29、:(如图 4-3 所示)把“单片机系统”区域中的P0.0/AD0 P0.7/AD7 端口用 8 芯排线连接到“四路静态数码显示模块”区域中的任一个数码管的a h 端口上;要求: P0.0/AD0 与 a 相连, P0.1/AD1与b相 连 , P0.2/AD2与 c相 连 , , P0.7/AD7与h相 连 ;C7Y112MHz30pFC6029181U130pF21D NP2.0/AG81X2X22P2.1/A917 CR423P3.7/RDP2.2/A1016 CR324P3.6/WRP2.3/A11P3.5/T115 CR225P2.4/A1214 CR126P3.4/T0P2.5/A1
30、313 BR427P3.3/INT1P2.6/A14P3.2/INT012 BR328R4220P2.7/A1529P3.1/TXD11 BR2PSEN10 BR130P3.0/RXDALE8332P0.7/AD78P1.7D N GpdD N Gd33P0.6/AD6P1.6734P0.5/AD5e dp g fe510912467635P1.5C2cP0.4/AD4536P1.4P0.3/AD34gdcP1.33710uFC3bP0.2/AD23fba38P1.2VCCP0.1/AD120.1uFC4LS1a39P1.1P0.0/AD0U3DPY7_SEG_DPR2cc VA ET S R
31、P1.0110K6Vcc3IN+2IN-7BYPASSV OUT GAIN GAINGND518410uFC5扬声器AT89S5104139R310K10KLM386U2R40.1uFR110KC110uFVCC图 4-3电路原理图TitleSize BDate:2File:D2345欢迎下载精品学习资源程序设计内容:(1)LED数码显示原理:七段 LED 显示器内部由七个条形发光二极管和一个小圆点发光二极管组成,依据各管的极管的接线形式,可分成共阴极型和共阳极型;LED 数码管的 ga 七个发光二极管因加正电压而发亮,因加零电压而不以发亮,不同亮暗的组合就能形成不同的字形,这种组合称之为字形
32、码,下面给出共阴极的字形码表(如表4-1 所示)表 4-1字形码表“0”3FH“8”7FH“1”06H“9”6FH“2”5BH“A”77H“3”4FH“b”7CH“4”66H“C”39H“5”6DH“d”5EH“6”7DH“E”79H“7”07H“F”71H(2. 由于显示的数字 09 的字形码没有规律可循,只能采纳查表的方式来完成我们所需的要求了;这样我们按着数字0 9 的次序,把每个数字的笔段代码按次序排好!建立的表格如下所示:TABLEDB 3FH, 06H, 5BH, 4FH, 66H, 6DH, 7DH, 07H, 7FH,6FH;程序框图:程序框图如图 4-3 所示:欢迎下载精品学
33、习资源开头R1=0依据 R1 的值查表查表获得的数据送P0延时 0.2 秒R1=R1+1R1 内容=10 .图 4-3数码显示程序框图C语言源程序:#includeunsignedcharcodetable=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;unsignedvoidchardispcount;delay02svoidunsignedchari,j,k;欢迎下载精品学习资源fori=20forj=20 fork=248;k0i0j0;k-i-j-;voidmainvoidwhile1fordispcount=0;dispcount
34、0 ;i- forj=200;j0 ;j-;temp=P3;temp=temp & 0x0f ;if temp.=0x0ftemp=P3;temp=temp & 0x0f ;switchtempcase 0x0e: key=7;break ;case 0x0d: key=8;break ;case 0x0b: key=9;break ;case 0x07: key=10;break ;temp=P3;P1_0=P1_0;欢迎下载精品学习资源P0=tablekey;temp=temp & 0x0f ;whiletemp.=0x0ftemp=P3;temp=temp & 0x0f ;P3=0xff
35、 ;P3_5=0;temp=P3;temp=temp & 0x0f ;if temp.=0x0ffori=50;i0 ;i- forj=200;j0 ;j-;temp=P3;temp=temp & 0x0f ;if temp.=0x0ftemp=P3;temp=temp & 0x0f ;switchtempcase 0x0e: key=4;break ;case 0x0d: key=5;欢迎下载精品学习资源break ;case 0x0b:key=6;break ;case 0x07:key=11;break ;temp=P3;P1_0=P1_0; P0=tablekey;temp=temp & 0x0f ;whiletemp.=0x0ftemp=P3;temp=temp & 0x0f ;P3=0xff ;