课程设计基于单片机的可存储式电子琴设计

上传人:仙*** 文档编号:71977941 上传时间:2022-04-07 格式:DOC 页数:27 大小:992.50KB
收藏 版权申诉 举报 下载
课程设计基于单片机的可存储式电子琴设计_第1页
第1页 / 共27页
课程设计基于单片机的可存储式电子琴设计_第2页
第2页 / 共27页
课程设计基于单片机的可存储式电子琴设计_第3页
第3页 / 共27页
资源描述:

《课程设计基于单片机的可存储式电子琴设计》由会员分享,可在线阅读,更多相关《课程设计基于单片机的可存储式电子琴设计(27页珍藏版)》请在装配图网上搜索。

1、单片机基础课程设计成 绩 课程题目 : 基于单片机的可存储式电子琴设计 学 院 : 华东交通大学职业技术学院 专业班级 : 电子信息工程技术2008-1 姓 名 : 学 号 : 20085120160108 指导老师 : 完成时间 : 2010年12月17日 可存储式电子琴的设计摘 要随着社会的发展进步,音乐逐渐成为我们生活中很重要的一部分,有人曾说喜欢音乐的人不会向恶。我们都会抽空欣赏世界名曲,作为对精神的洗礼。本论文设计一个基于单片机的简易电子琴。我们对于电子琴如何实现其功能,如声音强弱控制、节拍器、自动放音功能等等也很好奇。单片微型计算机是大规模集成电路技术发展的产物,属第四代电子计算机

2、,它具有高性能、高速度、体积小、价格低廉、稳定可靠、应用广泛的特点。它的应用必定导致传统的控制技术从根本上发生变革。因此,单片机的开发应用已成为高科技和工程领域的一项重大课题。 微型计算机的出现和大量使用将人类社会带入一个新的时代,单片微型计算机(简称单片机)在其中扮演着十分重要的角色。虽然它没有常见的PC那样大的体积和重量,不会在办公桌或控制台上占据一个显要的位置,但它就像小小的螺丝钉一样,镶嵌在人们工作、生活中需要计算、控制、测量等智能活动的各个角落。自20世纪70年代问世以来,单片机以其体积小、可靠性高、控制功能强、使用方便、性能价格比高、容易产品化等特点,在智能仪表、机电一体化、实时控

3、制、分布式多机系统、家用电器等各个领域得到了广泛应用,对各个行业的技术改造和产品的更新换代起着重要的推动作用,对人们生活质量的提高产生了深刻的影响。作为21世纪的工科大学生,学好单片机,一方面可以加深对计算机原理和结构的认识,另一方面也为自身在专业上的深入发展构筑了一个很好的平台,在实践过程中熟悉和熟练单片机的使用和开发。电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。它在现代音乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。本文的主要内容是用STC89C52单片机为核心控制元件,设计一个电子琴。以单片机作为主控核

4、心,与键盘、扬声器等模块组成核心主控制模块,在主控模块上设有16个按键和扬声器。本系统运行稳定,其优点是硬件电路简单,软件功能完善,控制系统可靠,性价比较高等,具有一定的实用和参考价值。通过基于单片机的嵌入式电子琴的设计课题熟悉和理解单片机应用和开发过程,培养我们理论联系实际,实践出真知的科学严谨求学的态度,提高实践动手操作技能。关键词: STC89C52单片机 音色 节拍器 自动播放目 录摘 要第一章.2摘 要2.4第二章 方案论证52.1 控制模块选择方案.5 2.2 按键选择方案6第3章 系统硬件设计及说明63.1系统组成及总体框图63.2元件简介.73.3.1 STC89C52简介73

5、.3.2 主要功能特性83.3.3 LM386内部电路.8 3.3显示电路.93.4 设计实现过程93.4.1 4X4行列式键盘识别及显示.93.4.2系统板上硬件连线设计103.5 程序设计内容10第4章 系统软件设计114.1 音乐产生的方法114.2程序框图134.3原理图.154.4系统板硬件连线 .17第5章 系统调试175.1软件仿真调试.175.2 软件调试17第6章 调试结论17第7章 设计心得体会18参考文献.19附录.20附录2:主要电路原理图20 附录3:程序20摘 要1.1 系统开发背景电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。它在现代音乐扮演着重要的

6、角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。本文的主要内容是用STC89C52单片机为核心控制元件,设计一个电子琴。以单片机作为主控核心,与键盘、扬声器等模块组成核心主控制模块,在主控模块上设有16个按键和扬声器。 本文主要对使用单片机设计简易电子琴进行了分析,并介绍了基于单片机电子琴统硬件组成。利用单片机产生不同频率来获得我们要求的音阶,最终可随意弹奏想要表达的音乐。并且本文分别从原理图,主要芯片,各模块原理及各模块的程序的调试来详细阐述。设计了用AT89s52单片机设计一个简易的电子琴,有16个按键,可以做一些基本的弹奏。与传统的模

7、拟信号不同,本设计主要介绍的是数字信号连接功率放大电路,驱动喇叭,产生乐音。其中包括了音调的产生,节拍的产生,以及如何合理应用单片机的定时,中断系统生成相应的音调和节拍,设计出音乐演奏系统。一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可。1.2系统开发意义该设计具有以下优点:(1)可以随意弹奏想要表达的音乐;(2)可以自动播放系统自带的音乐文件;(3)制作简单,成本低

8、。1.3设计目标由于本设计主要用于人们娱乐方面,因此在设计上尽量使其安全以及简单易操作。其次,在这次设计可行性上进行分析如下:1、经济可行性:所谓经济可行性,即在这次设计上需要投入资金的多少,由于单片机课程设计是没有项目资金,没有开发经费,因此在经济上必须能够承受,比较理想化的项目对于我们单片机课程设计来说是不可行的。通过分析后,无论是在器件价格或是常见度上均是可行的。2、技术可行性:技术可行性主要是分析技术条件上是否能够顺利开展并完成开发工作,硬件、软件能否满足设计者的需要等。通过分析各种软件环境,硬件仿真环境等均已经具备。综上所述,本系统设计目标已经明确,在经济与技术上均可行,因此本系统的

9、开发是完全可行的。关键词:STC89C52单片机 电子琴 音乐演奏 音阶 第2章 方案论证2.1 控制模块选择方案方案一:用可控硅制作电子琴。将220V交流电经变压器降压,再经过整流、滤波,获得+13.5V直流电压。将单向可控硅SCR和电阻、电容组成驰张振荡器电路。但该设计方案制作成本高且复杂。方案二: 采用AT89C51单片机进行控制,由于AT89C51不具备ISP功能,因此Atmel公司已经停产在市面上已经不常见,况且其ROM只有4K在系统将来升级方面没有潜力。方案三:采用AT89S51单片机进行控制,由于其性价比高,完全满足了本作品智能化的要求,它的内部程序存储空间达到8K,使软件设计有

10、足够的内部使用空间并且方便日后系统升级,使用方便,抗干扰性能提高。鉴于上述对比与分析,本设计采用方案三 2.2 按键选择方案传统电子琴可以用键盘上的“1”到“A”键演奏从低SO到高DO等11音。该设计有16个按钮矩阵,设计成16个音,可以实现音阶在低音4-高音5之间。比传统音阶范围大,弹奏效果好。第3章 系统硬件设计及说明3.1系统组成及总体框图硬件设计的任务是根据总体设计要求,在选择的机型的基础上,具体确定系统中所要使用的元器件,设计出系统的原理框图、电路原理图。由于本例实现的音乐发生器是由用户通过键盘输入弹奏乐曲的,所以节拍由用户掌握,不由程序控制。用单片机产生的音频脉冲直接驱动扬声器并不

11、能产生所要实现的音乐,因为它没有足够的驱动能力,这就需要音频功率放大电路。本例使用国家半导体公司的低压音频功率放大器LM386来实现音频功放电路。程序框图如图所示:3.2元件简介3.2.1 STC89C52简介功能特性:STC89S52是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。使用Atmel 公司高密度非 易失性存储器技术制造,与工业80C51 产品指令和引脚完 全兼容。片上Flash允许程序存储器在系统可编程,亦适于 常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统 可编程Flash,使得AT89S52为众多嵌入式控制应用系统提 供高灵活、

12、超有效的解决方案。 AT89S52具有以下标准功能: 8k字节Flash,256字节RAM, 32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位 定时器/计数器,一个6向量2级中断结构,全双工串行口, 片内晶振及时钟电路。另外,AT89S52 可降至0Hz 静态逻 辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。8 位微控制器 8K 字节在系统可编程 Flash AT89S52。 管脚图3.2.2 主要功能特性与MCS

13、-51单片机产品兼容 8K字节在系统可编程Flash存储器1000次擦写周期 全静态操作:0Hz33Hz三级加密程序存储器 32个可编程I/O口线三个16位定时器/计数器八个中断源 全双工UART串行通道、低功耗空闲和掉电模式掉电后中断可唤醒 看门狗定时器 双数据指针 掉电标识符3.3.3 LM386内部电路LM386是美国国家半导体公司生产的音频功率放大器,主要应用于低电压消费类产品。LM386特性:静态功耗低,约为4mA,可用于电池供电;工作电压范围宽,4V-12V或5V-18V;外围元件少;电压增益可调,20-200;低失真度。LM386是一种音频集成功放,具有自身功耗低、电压增益可调整

14、、电源电压范围大、外接元件少和总谐波失真小等优点,广泛应用于录音机和收音机之中。 LM386内部电路原理图LM386内部电路原理图如图1-3所示。与通用型集成运放相类似,它是一个三级放大电路. 第一级为差分放大电路,T1和T3、T2和T4分别构成复合管,作为差分放大电路的放大管;T5和T6组成镜像电流源作为T1和T2的有源负载;T3和T4信号从管的基极输入,从T2管的集电极输出,为双端输入单端输出差分电路。使用镜像电流源作为差分放大电路有源负载,可使单端输出电路的增益近似等于双端输出电容的增益 第二级为共射放大电路,T7为放大管,恒流源作有源负载,以增大放大倍数。 第三级中的T8和T9管复合成

15、PNP型管,与NPN型管T10构成准互补输出级。二极管D1和D2为输出级提供合适的偏置电压,可以消除交越失真。 引脚2为反相输入端,引脚3为同相输入端。电路由单电源供电,故为OTL电路。输出端(引脚5)应外接输出电容后再接负载。 电阻R7从输出端连接到T2的发射极,形成反馈通路,并与R5和R6构成反馈网络,从而引入了深度电压串联负反馈,使整个电路具有稳定的电压增益。3.3显示电路本次单片机课程设计的显示电路采用LED数码管显示,由于 LED是属于电流控制器件,使用时必须加限流电阻。通过单片机查表得出数码管显示编码,传送给数码管显示,以此来实现按键与显示程序的一致性。3.4 设计实现过程3.4.

16、1 4X4行列式键盘识别及显示组成键盘的按键有机械式、电容式、导电橡胶式、薄膜式多种,但不管什么形式,其作用都是一个使电路接通与断开的开关。目前微机系统中使用的键盘按其功能不同,通常可分为编码键盘和非编码键盘两种基本类型。 编码键盘:键盘本身带有实现接口主要功能所需的硬件电路。不仅能自动检测被按下的键,并完成去抖动、防串键等功能,而且能提供与被按键功能对应的键码(如ASCII码)送往CPU。所以,编码键盘接口简单、使用方便。但由于硬件电路较复杂,因而价格较贵。 非编码键盘:键盘只简单地提供按键开关的行列矩阵。有关按键的识别、键码的确定与输入、去抖动等功能均由软件完成。目前微机系统中,一般为了降

17、低成本大多数采用非编码键盘。 键盘接口必须具有去抖动、防串键、按键识别和键码产生4个基本功能。 (1)去抖动:每个按键在按下或松开时,都会产生短时间的抖动。抖动的持续时间与键的质量相关,一般为520mm。所谓抖动是指在识别被按键是必须避开抖动状态,只有处在稳定接通或稳定断开状态才能保证识别正确无误。去抖问题可通过软件延时或硬件电路解决。 (2)防串键:防串键是为了解决多个键同时按下或者前一按键没有释放又有新的按键按下时产生的问题。常用的方法有双键锁定和N键轮回两种方法。双键锁定,是当有两个或两个以上的按键按下时,只把最后释放的键当作有效键并产生相应的键码。N键轮回,是当检测到有多个键被按下时,

18、能根据发现它们的顺序依次产生相应键的键码。 (3)被按键识别:如何识别被按键是接口解决的主要问题,一般可通过软硬结合的方法完成。常用的方法有行扫描法和线反转法两种。行扫描法的基本思想是,由程序对键盘逐行扫描,通过检测到的列输出状态来确定闭合键,为此,需要设置入口、输出口一个,该方法在微机系统中被广泛使用。线反转法的基本思想是通过行列颠倒两次扫描来识别闭合键,为此需要提供两个可编程的双向输入/输出端口。 (4)键码产生:为了从键的行列坐标编码得到反映键功能的键码,一般在内存区中建立一个键盘编码表,通过查表获得被按键的键码。用STC89C52的并行口P0接44矩阵键盘,以P0.0P0.3作输入线,

19、以P0.4P0.7作输出线。键盘识别模块3.42系统板上硬件连线设计键盘模块硬件连线如图2-1所示: 把“单片机系统”区域中的P0.0P0.7端口用8芯排线连接到“4X4行列式键盘”区域中对应的端口上;3.5 程序设计内容(1)44矩阵键盘识别处理,每个按键有它的行值和列值,行值和列值的组合就是识别这个按键的编码。矩阵的行线和列线分别通过两并行接口和CPU通信。每 行列式键盘电路个按键的状态同样需变成数字量“0”和“1”,开关的一端(列线)通过电阻接VCC,而接地是通过程序输出数字“0”实现的。(2)键盘处理程序的任务是:确定有无键按下,判断哪一个键按下,键的功能是什么;还要消除按键在闭合或断

20、开时的抖动。两个并行口中,一个输出扫描码,使按键逐行动态接地,另一个并行口输入按键状态,由行扫描值和回馈信号共同形成键编码而识别按键,通过软件查表,查出该键的功能。电路图如下第4章 系统软件设计41 音乐产生的方法4.1.1 原理一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系正确即可。若要产生音频脉冲,只要算出某一音频的周期(1/频率),再将此周期除以2,即为半周期的时间。利用

21、定时器计时半周期时间,每当计时终止后就将P1.0反相,然后重复计时再反相。就可在P1.0引脚上得到此频率的脉冲。 利用STC89C52的内部定时器使其工作计数器模式(MODE1)下,改变计数值TH0及TL0以产生不同频率的方法产生不同音阶,例如,频率为523Hz,其周期T1/5231912s,因此只要令计数器计时956s/1s956,每计数956次时将I/O反相,就可得到中音DO(523Hz)。 计数脉冲值与频率的关系式(如式2-1所示)是:N=fi2fr2-1式中,N是计数值;fi是机器频率(晶体振荡器为12MHz时,其频率为1MHz);fr是想要产生的频率。其计数初值T的求法如下:T655

22、36N65536fi2fr例如:设K65536,fi1MHz,求低音DO(261Hz)、中音DO(523Hz)、高音DO(1046Hz)的计数值。T65536N65536fi2fr6553610000002fr65536500000/fr 低音DO的T65536500000/26263627 中音DO的T65536500000/52364580 高音DO的T65536500000/104665059单片机12MHZ晶振,高中低音符与计数T0相关的计数值如表2-2所示表2-2 音符频率表Table 2-2 notes the frequency table音符频率(HZ)简谱码(T值)音符频率(

23、HZ)简谱码(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#124565134# 6466644

24、63高 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我们要为这个音符建立一个表格,单片机通过查表的方式来获得相应的数据 低音019之间,中音在2039之间,高音在4059之间TABLE1: DW 64021,641

25、03,64260,64400 DW 64524,64580,64684,64777 DW 64820,64898,64968,65030 DW 65058,65110,65157,65178音乐的音拍,一个节拍为单位(C调)(如表2-3所示)曲调值表2-3 Tune the value of the table曲调值DELAY曲调值DELAY调4/4125ms调4/462ms调3/4187ms调3/494ms调2/4250ms调2/4125ms对于不同的曲调我们也可以用单片机的另外一个定时/计数器来完成。琴键处理程序,根据检测到得按键值,查询音律表,给计时器赋值,发出相应频率的声音。对音调的控

26、制:根据不同的按键,对定时器T1送入不同的初值,调节T1的溢出时间,这样就可以输出不同音调频率的方波。不同音调下各个音阶的定时器。在这个程序中用到了两个定时/计数器来完成的。其中T0用来产生音符频率,T1用来产生音拍。4.2程序框图4.2.1程序框图如图所示:4.2.2键盘识别程序框图如图所示:4.2.3音乐发声程序框图如图所示:4.3原理图电子琴电路图4.4系统板硬件连线 系统板硬件连线如图1-1所示,发生模块,键盘模块,及LED显示模块连接如下1.把“单片机系统”区域中的P1.0端口用导线连接到“音频放大模块”区域中的SPK IN端口上;2.把“单片机系统”区域中的P3.0P3.7端口用8

27、芯排线连接到“4X4行列式键盘”区域中的C1C4R1R4端口上;3.把“单片机系统”区域中的P0.0/AD0P0.7/AD7端口用8芯排线连接到“四路静态数码显示模块”区域中的任一个ah端口上;要求:P0.0/AD0对应着a,P0.1/AD1对应着b,P0.7/AD7对应着h。第5章 系统调试电路调试是整个系统功能否实现的关键步骤,我们将整个调试过程分为三大部分:硬件调试、软件调试和综合调试。5.1软件仿真调试软件仿真调试主要是针对单片机部分进行调试。在软件运行前,先确保电路中连线正确,这一工作是整个调试工作的第一步,也是非常重要的一个步骤。在这部分调试中主要通过目测,用来完成检测电路中是否存

28、在断路或者短路情况等。在确保软件仿真电路正常,无异常情况(断路或短路)方可进行软件运行,在本次设计中,软件运行主要是测试单片机键盘控制部分、数码管点亮部分、和音频功放电路调试。1、数码管LED电路调试:软件运行,随机按下按钮可以看到数码管显示数字;2、单片机键盘控制部分调试:软件运行,随机按动键盘可以发现各个按键对应的音正确。5.2 软件调试调试主要方法和技巧:通常一个调试程序应该具备至少四种性能:跟踪、断点、查看变量、更改数值。整个程序是一个主程序调用各个子程序实现功能的过程,要使主程序和整个程序都能平稳运行,各个模块的子程序的正确与平稳运行必不可少,所以在软件调试的最初阶段就是把各个子程序

29、模块进行分别调试。第6章 调试结论通过各方面努力,本次单片机课程设计任务完成,系统大部分功能已实现。可以随意演奏一首喜欢的曲子,并可以显示在数码管上,可以通过功能切换进行自动播放歌曲,基本达到预定的效果。单片机课程设计是专科学习阶段一次非常难得的理论与实践相结合的机会,通过这次系统的项目设计提高了我运用所学的专业基础知识来解决面临实际问题的能力,同时也提高了我查阅各种文献资料、设计手册、设计规范以及软件编程排版的水平。対单片机课程设计的整个流程和设计要求都有了深刻的认识,对以后的学习和设计都有很大的帮助。第7章 设计心得体会通过这次单片机课程设计,我弄懂了不少课本上的知识,还扩展了一些课本没有

30、的知识,通过自己的思考和努力,很好的完成了这次课程设计。首先在课程设计刚开始的调研阶段,我学会了怎么通过各种方式查询相关的资料。通过对这些资料的学习,我大致了解了单片机的发展现状以及未来的发展趋势,认识到目前单片机方面的各种各样的发展,和它们之间的竞争。了解了单片机方面的先进技术,这些都为我的未来的学习指明了方向。我的课程设计主要涉及硬件和软件两方面的内容,通过这些我的硬件和软件开发能力都获得了提高。首先硬件方面,基本了解了电子产品的开发流程和所要做的工作。虽然本次课程设计的硬件焊接工序没有实际操作,但是我们对每一个元件的分析和选取都是很到位的,对电路的分析在指导老师邓芳明老师的帮助下更是步步

31、深入。对电路的分析和理解有了更实际的感受。在软件方面,程序的编写是我们的弱项,所以我们是先从网上找来类似的程序模板,然后借助各方面的资料对程序的每一步进行分析,按我们的需求进行修改,最终才得到我们现在的程序方案。比如,在原有的基础上增加了一些歌曲的程序,更改了中断程序等等。微型计算机的出现和大量使用将人类社会带入一个新的时代,单片微型计算机(简称单片机)在其中扮演着十分重要的角色。虽然它没有常见的PC那样大的体积和重量,不会在办公桌或控制台上占据一个显要的位置,但它就像小小的螺丝钉一样,镶嵌在人们工作、生活中需要计算、控制、测量等智能活动的各个角落。自20世纪70年代问世以来,单片机以其体积小

32、、可靠性高、控制功能强、使用方便、性能价格比高、容易产品化等特点,在智能仪表、机电一体化、实时控制、分布式多机系统、家用电器等各个领域得到了广泛应用,对各个行业的技术改造和产品的更新换代起着重要的推动作用,对人们生活质量的提高产生了深刻的影响。作为21世纪的工科大学生,学好单片机,一方面可以加深对计算机原理和结构的认识,另一方面也为自身在专业上的深入发展构筑了一个很好的平台其重要性怎么强调都不为过。 将程序烧入芯片,调试成功后,可任意弹奏自己想要的旋律。还可以自动播放系统自带的音乐歌曲。通过制作电子琴,将几个模块很好的融合起来,对使用单片机设计简易电子琴进行了分析,并介绍了基于单片机电子琴系统

33、硬件和软件系统的组成。利用单片机产生不同频率来获得我们要求的音阶,最终可随意弹奏想要表达的音乐。说明一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,于是我们可以利用单片机的定时/计数器T0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可,然后我们利用功放电路来将音乐声音放大,同时通过显示模块来确知自己所弹的音符。通过功能切换来播放你想要的系统歌曲音乐。 不足之处有:1.对于单片机课程设计的一些设计小细节和单片机的实践应用还需要不断的通过实践和练习来提高加强。比如对单片机开发的最小系统要有跟多

34、的认识。2.可弹奏的音符数较少,最多只能设置16个音符,只能在一定范围内满足用户需要。可通过改进键盘识别模块和发生模块来增加其复杂度。 3.音色不可调,只有一种波形的频率输出。可以在外围电路设计滤波电路,接在不同的输出口,通过软件实现不同端口的输出,从而接入不同的滤波电路,输出不同的波形,从而获得不一样的音色。4.不能以和弦形式演奏,只能单个键按下输出单个的音阶。5.还是缺乏足够的设计经验,本次选用的按键有些较难按下,有些反应不够灵敏,所以导致演奏时不够流畅,音色还有些吵杂等等问题。总之,通过本次单片机课程设计,我学到了很多在课堂里没有学到和用过的新知识和实践技巧,对于单片机的课程设计中遇到的

35、难点和问题,自己不会的东西和知识点,我会以积极的态度和求实认真的心态去思考和分析,对于课程设计的具体流程和设计方法,思路的探索和形成都有了自己的一些目标,对于以后的课程设计和实训积累了不少的经验,感觉自己比以前会更有目的的去做好一件事情,通过此次课程设计受益匪浅。参考文献1 李广弟,朱月秀. 单片机基础(第三版). 北京航天大学出版社 2007年6月.2 阎石. 数字电子技术基础(第五版). 高等教育出版社 2005年12月.3 严天峰. 单片机应用系统设计与仿真调试. 北京航天大学出版社 2005年8月.4 冯博琴. 微型计算机原理与接口技术M清华大学出版社,20045 陈明荧单片机课程设计

36、实训教材M北京:清华大学出版社,2003年9月6 郭勇. EDA技术基础(第二版).机械工业出版社 2005年5月.7 罗杰,谢自美.电子线路设计实验测试(第四版).电子工业出版社 2008年4月.8 冯博琴,微型计算机原理与接口技术M清华大学出版社,20049 张毅刚,MCS-51单片机应用设计M哈尔滨工业大学出版社,2004附 录电路原理图:程序:KEYBUF EQU 30H STH0 EQU 31H STL0 EQU 32H TEMP EQU 33H SPKEQUP1.0; 蜂鸣器所在端口ORG 0000H LJMP START ORG 0BH LJMP INT_T0 START: MO

37、V TMOD,#01H SETB ET0 SETB EA WAIT: MOV P2,#0FFH CLR P2.4 ;从第四行开始扫描MOV A,P2 ANL A,#0FH ;屏蔽高四位,高四位为行,低四位为列XRL A,#0FH JZ NOKEY1 ;判断是否有键按下,没有就跳转LCALL DELY10MS MOV A,P2 ;消除抖动和干扰ANL A,#0FH XRL A,#0FH JZ NOKEY1 MOV A,P2 ;确定有键按下以后的处理ANL A,#0FH CJNE A,#0EH,NK1 ;是否为第四行第一列的键被按下MOV KEYBUF,#0 ;保存列号LJMP DK1 NK1:

38、CJNE A,#0DH,NK2 MOV KEYBUF,#1 LJMP DK1 NK2: CJNE A,#0BH,NK3 MOV KEYBUF,#2 LJMP DK1 NK3: CJNE A,#07H,NK4 MOV KEYBUF,#3 LJMP DK1 NK4: NOP DK1: ;第四行的处理MOV A,KEYBUF MOV DPTR,#TABLE MOVC A,A+DPTR MOV P0,A MOV A,KEYBUF MOV B,#2 ;Table1以字保存,所以散转MUL AB MOV TEMP,A MOV DPTR,#TABLE1 MOVC A,A+DPTR MOV STH0,A ;送

39、入高字节MOV TH0,A INC TEMP MOV A,TEMP MOVC A,A+DPTR MOV STL0,A ;送入低字节MOV TL0,A SETB TR0 DK1A: MOV A,P2 ;判断按键是否松开ANL A,#0FH XRL A,#0FH JNZ DK1A CLR TR0 NOKEY1: MOV P2,#0FFH CLR P2.5 MOV A,P2 ANL A,#0FH XRL A,#0FH JZ NOKEY2 LCALL DELY10MS MOV A,P2 ANL A,#0FH XRL A,#0FH JZ NOKEY2 MOV A,P2 ANL A,#0FH CJNE A

40、,#0EH,NK5 MOV KEYBUF,#4 LJMP DK2 NK5: CJNE A,#0DH,NK6 MOV KEYBUF,#5 LJMP DK2 NK6: CJNE A,#0BH,NK7 MOV KEYBUF,#6 LJMP DK2 NK7: CJNE A,#07H,NK8 MOV KEYBUF,#7 LJMP DK2 NK8: NOP DK2: MOV A,KEYBUF MOV DPTR,#TABLE MOVC A,A+DPTR MOV P0,A MOV A,KEYBUF MOV B,#2 MUL AB MOV TEMP,A MOV DPTR,#TABLE1 MOVC A,A+DPT

41、R MOV STH0,A MOV TH0,A INC TEMP MOV A,TEMP MOVC A,A+DPTR MOV STL0,A MOV TL0,A SETB TR0 DK2A: MOV A,P2 ANL A,#0FH XRL A,#0FH JNZ DK2A CLR TR0 NOKEY2: MOV P2,#0FFH CLR P2.6 MOV A,P2 ANL A,#0FH XRL A,#0FH JZ NOKEY3 LCALL DELY10MS MOV A,P2 ANL A,#0FH XRL A,#0FH JZ NOKEY3 MOV A,P2 ANL A,#0FH CJNE A,#0EH,

42、NK9 MOV KEYBUF,#8 LJMP DK3 NK9: CJNE A,#0DH,NK10 MOV KEYBUF,#9 LJMP DK3 NK10: CJNE A,#0BH,NK11 MOV KEYBUF,#10 LJMP DK3 NK11: CJNE A,#07H,NK12 MOV KEYBUF,#11 LJMP DK3 NK12: NOP DK3: MOV A,KEYBUF MOV DPTR,#TABLE MOVC A,A+DPTR MOV P0,A MOV A,KEYBUF MOV B,#2 MUL AB MOV TEMP,A MOV DPTR,#TABLE1 MOVC A,A+D

43、PTR MOV STH0,A MOV TH0,A INC TEMP MOV A,TEMP MOVC A,A+DPTR MOV STL0,A MOV TL0,A SETB TR0 DK3A: MOV A,P2ANL A,#0FH XRL A,#0FH JNZ DK3A CLR TR0 NOKEY3: MOV P2,#0FFH CLR P2.7 MOV A,P2 ANL A,#0FH XRL A,#0FH JZ NOKEY4 LCALL DELY10MS MOV A,P2 ANL A,#0FH XRL A,#0FH JZ NOKEY4 MOV A,P2 ANL A,#0FH CJNE A,#0EH

44、,NK13 MOV KEYBUF,#12 LJMP DK4 NK13: CJNE A,#0DH,NK14 MOV KEYBUF,#13 LJMP DK4 NK14: CJNE A,#0BH,NK15 MOV KEYBUF,#14 LJMP DK4 NK15: CJNE A,#07H,NK16 MOV KEYBUF,#15 LJMP DK4 NK16: NOP DK4: MOV A,KEYBUF MOV DPTR,#TABLE MOVC A,A+DPTR MOV P0,A MOV A,KEYBUF MOV B,#2 MUL AB MOV TEMP,A MOV DPTR,#TABLE1 MOVC

45、A,A+DPTR MOV STH0,A MOV TH0,A INC TEMP MOV A,TEMP MOVC A,A+DPTR MOV STL0,A MOV TL0,A SETB TR0 DK4A: MOV A,P2 ANL A,#0FH XRL A,#0FH JNZ DK4A CLR TR0 NOKEY4: JNB P1.0,MUSICLJMP WAIT MUSIC:MOVR3,#00HNEXT:MOVA,R3MOVDPTR,#TABLE2MOVCA,A+DPTRJZMUSICMOVR7,AINCR3MOVA,R3MOVCA,A+DPTRMOVR2,AACALLSONGINCR3SJMPNE

46、XT;=;= 歌曲播放子程序 =SONG:MOVA,R2; 取出节拍RLAJNZKEEPMOVA,#01HKEEP:MOVR2,AREPEAT:ACALLEIGHTHDJNZR2,REPEATRET;=;= 产生1/8拍延时子程序 =EIGHTH:MOVA,R7; 查表取出廷时参数,保存到R4MOVDPTR,#DELAY_TMOVCA,A+DPTRMOVR4,AMOVA,R7; 查表取出1/8拍周期数,保存到R5MOVDPTR,#S_PARAMOVCA,A+DPTRMOVR5,ANEXTCYC:ACALLSOUNDDJNZR5,NEXTCYCRET;=;= 发声子程序 =SOUND:SETBS

47、PKACALLSDELAYCLRSPKACALLSDELAYRET;=;= 延时子程序 =SDELAY:MOVA,R4; 廷时值在R4内MOVR0,AXL2:MOVR1,#03HDL1:NOPDJNZR1,DL1DJNZR0,XL2RET;=;= 1/8拍周期表 =S_PARA:DS1DHDB15H,16H,00DB19H,00H,1CH,00H,1FH,21H,00H,25HDB00H,29H,2CH,00H,31H,34H,37H,00HDB3EH,41H,00H,49H,00H,52H,57H,00HDB62H;=;= 延时参数表 =DELAY_T:DS1DHDB7EH,77H,00HD

48、B6AH,00H,5EH,00H,54H,4FH,00H,46HDB00H,3FH,3BH,00H,35H,32H,2FH,00HDB2AH,27H,00H,23H,00H,1FH,1DH,0C0HDB1AHDELY10MS: MOV R6,#10 D1: MOV R7,#248 DJNZ R7,$ DJNZ R6,D1 RET INT_T0: MOV TH0,STH0 MOV TL0,STL0 CPL P1.5RETI TABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H TABLE1: DW

49、 64021,64103,64260,64400 DW 64524,64580,64684,64777 DW 64820,64898,64968,65030 DW 65058,65110,65157,65178 ;=;= 歌曲表 =TABLE2:DW2202H,2902H,2902H,2902H,2906H,2702H;我从山中来DW2502H,2702H,2502H,2402H,2208H ;带着兰花草DW2E02H,2E02H,2E02H,2E02H,2E06H,2C02H;种在小园中DW2902H,2C02H,2D02H,2A02H,2908H ;祈祷花开早DW2902H,2E02H,2E02H,2C02H,2906H,2702H;一日看三回DW2502H,2702H,2502H,2402H,2206H,1D02H;看得花时过DW1D02H,2502H,2502H,2402H,2206H,2902H;兰花却依然DW2702H,2502H,2402H,2002H,2208H ;苞也无一个DW0000H;END

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!