单片机电子琴课程设计报告28895.pdf
《单片机电子琴课程设计报告28895.pdf》由会员分享,可在线阅读,更多相关《单片机电子琴课程设计报告28895.pdf(23页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1 课程设计的意义 单片机自 20 世纪 70 年代问世以来,已对人类社会产生了巨大的影响。尤其是美国 Intel 公司生产的 MCS-51 系列单片机,由于其具有集成度高、处理功能强、可靠性高、系统构造简单、价格低廉、易于使用等优点,在工业控制、智能仪器仪表、办公室自动化、家用电器等诸多领域得到广泛的应用。20 世纪 80 年代中期以后,Intel 公司已把精力集中在 CPU 芯片的开发、研制上,并逐渐放弃了单片机芯片的生产,但是以 MCS-51 内核技术为主导的单片机已经成为许多厂家及公司竞相选用的对象。因此,Intel 公司以专利转让或技术交换的形式把MCS-51 的内核技术转让给了许多
2、国际上著名的半导体芯片生产厂家,如ATMEL、PHILIPS、Cygnal 等公司。这些厂家生产的与 MCS-51 系列单片机兼容的各种增强型、扩展型单片机,已成为世界上 8 位单片机市场的主流产品。估计在今后假设干年内,它们仍是我国 8 位单片机应用领域的主流机型。音乐已经成为现代人们生活所不可缺少的艺术,美妙的音乐可以让人放松,使人愉悦,电子琴作为一种乐器已经得到很多音乐人的重视和应用,一个质量好的电子琴可以做出让人欣赏的美好音乐,所以作为从事电子技术领域的我们来说,能做出质量优越的电子琴是我们的义务和责任,虽然今天我们做的是简易电子琴,但其已经具有电子琴的根本功能,为以后的进一步开发研究
3、奠定一个良好的根底。本课程设计的目的是为了深入了解 MCS-51 系列单片机的功能以及应用,学会制作简单的电子琴。会使用LCD 显示屏,对其有进一步的了解。2 方案论证 设计的任务 本课程设计的任务是应用单片机制作一个简易的电子琴,能够准确发出根本的音符,并且同时能将音符在显示屏上现实出来。设计的要求 利用所给键盘的 1,2,3,4,5,6,7,8 八个键,能够发出 8 个不同的音调,并且要求按下键发声,松开延时一段时间停顿,中间再按别的键则发另外一音调的声音。当系统扫描到有按键被按下,则快速检测出是哪一个键被按下,然后单片机的定时器被启动,发出一定频率的脉冲,该频率的脉冲经喇叭驱动电路放大滤
4、波后,就回发出相应的音调。如果在前一个按下的键发声的同时有另一个键被按下,则启用中断系统,前面键的发音停顿,转到后按的键发音程序,发出后按的键的音调。创新局部 1用一个诺基亚 5110 显示屏来显示当前所发出的音符,便于使用者对音符的识别,还可以编辑一首歌并同时显示歌词和时间。2.可播放音乐。各局部元器件选用方案论证 单片机的选用 STC 单片机是一款增强型 5l 单片机,完全兼容 MCS-51。STC89C52 可以代替 AT89C51,而且功能更强,速度更快,寿命更长,价格更低。该单片机具有 40 个引脚,采用双列直插 DIP-40 封装。STC89C52 可以完成 ISP 在线编程功能,
5、而 AT89C51 则不能。因此,将 AT89C51 中的程序直接烧录到 STC89C52 中后,STC89C52 就可以代替 AT89C51 直接工作。STC 推出的系列 51 单片机芯片全面兼容其它 51 单片机。STC89C52 内部有 E2PROM,可以在程序中修改,而且断电不丧失数据。此外,还增加了两级中断优先级等等。显示元件的选用 液晶显示模块采用的是 NOKIA 公司生产的 LCD5110 液晶显示模块。该液晶屏为 48*84 点阵的格式,每个英文字符占用 6*8 个点阵,一行可以显示 14 个字符,可以显示六行。汉字可以采用两种点阵方式显示,一种是 12*12 点阵,一种是 1
6、6*16 点阵,一共可以显示 3 行汉字。LCD5110 有 10 个引脚,原理图如图 1 所示:引脚 1 为 LCD5110 的复位键,由软件控制即可。引脚 2 为片选端,引脚 3用于控制输入的数据是命令还是普通数据。引脚 5 为液晶显示器的时钟输入,引脚 6 为电源输入端,引脚 8 为电源地。引脚 7 为背光控制开关,低电平翻开背光。引脚 9、10 用于扩展。键盘的选用 常用键盘分为独立式键盘接口和行列式键盘接口。本次课题设计使用的是独立式键盘接口。独立式键盘接口就是各键是相互独立的,每个按键各接一条输入线,检验输入线电平的上下可以很容易判断哪个按键被按下。这种键盘适用于按键较少后操作速度
7、较高的场合。我们共用了 9 个按键,其中 8 个按键控制 1、2、3、4、5、6、7、i 的发音。还有一个按键控制 LCD 屏的显示。电源的选用 要想使单片机正常运行,可靠、稳定的电源必不可少,在以往的电子设计中,我们一般制作 5V 电源,这样做的目的是通过变压器变压,将民用 220V 电直接转为 5V 电供单片机使用,在没有电脑 USB 时可以直接找一个插座接上便可使用。但缺点是制作本钱较高,且体积较大,烧录程序时还需要另配烧录器。由于我们在课程设计过程中时刻都要使用笔记本电脑,且程序需要在线烧图 1 LCD5110 模块引脚图 RST1CS2D/C3DIN4CLK5VDD6BLC7GND8
8、SCL9SDA10写,故我们选择使用了 USB 烧录器,既可以在线烧写程序也可以当作电源使用,方便快捷。其他元器件的选用 在确定了单片机芯片、诺基亚 5110 显示屏、电源模块和按键后,我们还确定选用排针、排阻、导线假设干以及用于单片机最小系统的电容、晶振、电阻等。3 系统硬件设计 总体设计 本设计采用 STC89C50032RC 单片机作为系统控制芯片,单片机对 P0 口的按键进展查询,如果有按键按下,则产生相应频率的脉冲通过口输出,再经过放大电路驱动扬声器,发出相应的音调。在显示系统中对当前的音符进展显示。系统的总体框图如图 2 所示:单片机最小系统 最小系统包括晶振电路、复位电路和电源局
9、部。最小系统电路图如图 3 所示:按键的连接 一共有八个按键,分别和单片机的 P1 口相连,并分别连接一个上拉电阻。电路图如图 4 所示:蜂鸣器的连接 蜂鸣器经过一个放大电路和单片机的口相连,选用无源蜂鸣器。电路图如图 5 所示:显示屏的连接 显示屏总共有八个引脚,其中 VCC 和 GND 分别接电源和接地,其他引脚与单片机的 P0 口相连。电路图如图 6 所示:整体电路 综合上面所介绍的各个模块的电路图的连接情况,最后总结出整体的电路图。整体电路图如图7 所示:4 系统软件设计 主程序的设计 设计软件应从设计主程序着手开场,而设计程序应从流程图开场,经过考察STC89C52 8个按键 P1
10、口 放大电路 口 5110 显示屏 P0 口 蜂鸣器图 2 系统总体框图 图 3 最小系统电路图 图 4 按键连接电路图 图 5 蜂鸣器连接电路图 论证,查阅资料,再根据所学的单片机编程的知识,最后总结出主程序的流程图如图 8 所示:显示子程序的设计 指令格式分为两种模式:如果D/C模式选择置为低,当前字节解释为命令字节(见表1)。如果D/C置为高,接下来的字节将存储到显示数据RAM。每一个数据字节存入之后,地址计数自动递增。在数据字节最后一位期间会读取D/C信号的电平。每一条指令可用任意次序发送到PCD8544。首先传送的是字节的MSB高位。当SCE为高时,串行接口被初始化。在这个状态,SC
11、LK时钟脉冲不起作用,串行接口不消耗电力。SCE上的负边缘使能串行接口并指示开场数据传输。定时子程序的设计 定时子程序只需将 TAB 中对应的数值送给定时器的初值存放器,然后开场定时。5 软硬件联调 调试步骤 第一:按照整体电路图焊接硬件,硬件实物图如图9 所示:第二:编辑软件程序,用 Uv4 对程序进展编译,编译无误后保存,再用 protuse对软件进展仿真。第三:将硬件通过 USB 与 RS-232 串口转换线与电脑连接,用 STC 下载软件将编译完成后的程序下载烧录到硬件中,观察硬件的运行结果。硬件运行结果如图 10 所示:软硬件联调过程中出现的问题和解决方法 问题 1:将 USB 烧写
12、器尾部的短路帽子摘掉后插上电脑,程序无法烧写进芯片。解决措施:将 STC 中单片机的设置更改为 STC89C52 型号的,再将波特率改小一点,端口设置正确即可。问题 2:程序烧录进去后显示屏不显示任何数字。解决措施:将 USB 口从电脑上拔下然后再插入即可。初始化设置 开场 判断是否有按键按延时 10ms 判断是否仍然有按键按下 查看是哪个按键按下,并跳转到相应的程序段 设置相应的指针偏移量 调用显示子程序,调用定时子程序,开场定时 进入定时效劳子程序 完毕 N Y Y N 图 8 主程序流程图 图 9 硬件实物图 图 10 硬件运行结果图 表 1 命令字节 问题 3:按键按下之后扬声器的声音
13、抖动。解决措施:将放大电路检查一遍再将每个焊点焊实即可。6 课设计总结 收获 通过一个多星期的课程设计,从选题到查资料,从完善原理图到写报告文档,让我明白了课程设计是名副其实的综合性训练,不仅要运用学过的单片机技术及应用,数字电路、模拟电路以及电子技术实验等知识,还要学会查阅各种图书资料和工具书,并将新知识和所学的结合起来为自己所用。在做整个课程设计的过程中,我进一步熟悉使用了 protuse 仿真软件和 Uv4 软件编辑软件,能较好的应用这些软件,不管是文本程序的编写还是在顶层原理图的设计都有所提高,还增强了动手能力。应用软件的时候,要注意积累每次的体会和错误,下次碰到该注意的地方就要小心点
14、,碰到出过错误的地方就要格外注意不要再犯同样的错误,这种方法应该适用做任何一件事吧。在设计中遇到一些困难和问题,在向教师请教和与同学的讨论中,解决了问题,觉得很有收获。心得体会 一个星期很快就过去了,这一周我收获了很多。在过去的一周里,我和耿勇杰、张兴旺、张扬组成的小组,经过大家一起坚持不懈的努力,最终完成了我们选择的单片机课题设计电子琴设计。在原设计的根底上,我们还参加了显示模块。用诺基亚 5110 的液晶显示屏,完成弹奏音符的显示,使设计更加完美。在这一个星期里,我们先把以前收集的资料进展了整理。在做课设之前,我们已经通过学校的图书馆和网络,进展了资料的收集,对基于单片机的电子琴设计有了大
15、体的了解和认识。并且在这学期得课余时间,我们经过研究和讨论,制定了设计的根本思路,并焊接完成了硬件电路。这个星期我们的任务安排主要是完成电子琴的程序和 5110 液晶显示的程序,进展程序调试,使之在硬件上实现,最后完成任务书。在最初的两天里,先进展的是电子琴的程序设计,了解的音乐产生的原理。音乐的产生是通过单片机的 IO 端口输出上下不同的脉冲信号来控制蜂鸣器发声。不同的音频信号的周期不同,通过单片机的定时器,给定时器设置不同的初值,通过定时器中断,中断过程中对IO 端口取反,就得到了音频信号的脉冲。通过这次课设,我掌握了单片机设计单子琴的工作原理,又复习了单片机定时器的工作原理,熟练了计数初
16、值的计算。把自己感兴趣的电子琴和学习的单片机知识联系到了一起,设计过程中,既再次学习了单片机的知识,对学习的知识有了更深刻的认识和理解;又获得了快乐,自己设计了简易的电子琴。用自己的设计弹奏出简单的音乐,还挺有成就感的。兴趣是最好的教师,把自己的兴趣和所学的知识结合起来,学以致用,理论应用于实践,这是我最大的收获。完成电子琴的发音程序后,我们开场编写 5110 液晶显示屏的程序。5110 液晶屏与一般课本上介绍的液晶显示屏不太一样。我们用的 5110 液晶显示屏,只有 8 个引脚,引脚越少,电路的连接越简单。可是看着越简单的东西,实际上要弄明白它的工作和使用就越难。由于 5110 液晶显示屏的
17、资料比拟少,我们又没有接触过。一开场我们先从其它的液晶显示屏资料开场研究,希望可以通过类比,了解 5110 液晶显示屏。再弄明白了其它液晶显示屏以后,我们开场编写 5110 的显示程序,编写完成后,与硬件进展调试却失败了。改程序,与硬件连接调试,失败;再改程序,再与硬件连接调试,再失败这样的过程重复了不知多少遍。调试了两天以后,我们又把 5110 液晶显示屏的资料拿出来认真的研究,把指令集看了又看,这次我们注重分析了 5110 液晶屏与其它液晶屏的区别。放弃了通过其它液晶屏来认识 5110,而是直接分析 5110 液晶屏。因为通过学习我们发现,两样东西即使它是类似的,可是在汇编的过程中,一点微
18、小的区别也是不同的。后来在网上我们找到了 5110 液晶显示驱动 PCD8544 的使用手册,经过讨论和研究,我们再次编写了程序,结果和硬件连接了几次,还是失败了。最后我们只得求助于柳教师,刘教师编写完程序后,一开场也没有显示,教师把硬件断电再接电后,显示成功。于是我们也把自己写的程序下载到硬件中,断电再接电,显示也成功了。再郁闷了这么长时间后,发现只是因为这个小动作,所以一直没有显示,我们在显示成功快乐的同时,也有点小无奈。真是细节决定成败啊。通过对 5110 液晶显示屏的使用,锻炼了我的自学能力。对一个从来没有接触过的器件,通过自己的学习,分析和研究,最终完成任务。这对我来说还是第一次,在
19、这第一次的过程中,我走了很多弯路。一开场不知道如何下手,先是研究错了方向,学习和研究了许多其他的液晶显示屏。而后又拿着 5110 的资料不知道从哪看起,不知道那是编程要用的重点,只好把资料都看了。再后来又对5110 的资料有不少不理解的地方,对引脚的控制和它的工作有许多模糊的地方,只好在编程时,一次次的实验,验证那种理解是正确的。虽然这个过程曲折,而又让我觉得无奈。但是,在最后显示成功后,通过自己的努力而获得的喜悦,是无以言表的。并且,通过这次学习,我初步学会了看器件的使用手册,看指令表。学会了要想使用一个你不了解的器件,应该看什么,应该注意什么。你要看器件的参数,看各个引脚的连接和作用,看指
20、令表。在编程的过程中,要严格按照指令表编写程序,不能自己想当然。大学教育和课题设计的目的,就是教会我们如何自学,锻炼我们独立思考的能力,在这次课设中,我有了切身的体会。教师在编写 5110 显示程序时,本身教师也没有接触过 5110 的汇编。教师根据资料,通过简单的阅读,就把 C 语言的 5110 的显示程序,改成了汇编,并且显示成功。我们的资料和教师看的差不多,却折腾了两三天才把程序编写出来。我们一定会通过努力向教师看齐。最后,我们还发现了蜂鸣器的问题,一开场我们用的蜂鸣器是有源的,声音小,把分压电阻短路后,声音大了,可是一直“滴滴响个不停。上网查证后,发现蜂鸣器分为有源和无源的,电子琴设计
21、要用无源的蜂鸣器。虽然是个小问题,但是也增加了一个小知识点。通过这次课题设计,我的收获很大。我们获得了知识,完成了设计,锻炼了独立思考能力,和动手能力。我也体会到无论是硬件设计还是软件编程,细节决定成败,一定要认真对待每一个小步骤。最后,谢谢柳延领教师的指导和帮助。参考文献 1.基于 Proteus 的 8051 单片机实例教程 李学礼 主编 电子工业出版社 2.Proteus 教程电子线路设计、制版与仿真 朱清慧 张凤蕊 翟天嵩 王志奎 编著 清华大学出版社 3.单片机原理及应用技术 陈益飞主编 国防工业出版社 4.单片机控制实训指导及综合应用实例 张大明 主编 机械工业出版社 附录 电子琴
22、课程设计程序源代码 SDIN EQU P3.0 RX DATA 55H RY DATA 56H ;单片机初始化 ORG 0000H LJMP MAIN ORG 0003H LJMP PNT0 ORG 000BH LJMP INT_T0 ORG 001BH LJMP TIME1 ;设置定时器 01 工作方式 0,开中断 MAIN:MOV SP,#70H MOV TMOD,#11H SETB EA SETB ET0 SETB ET1 SETB F0 ;LCD5110 复位,清屏,初始化功能 SRART:SETB RES SETB SCE SETB SCLK CALL CLEAR CLR RES N
23、OP SETB RES NOP LCALL LCDRST LCALL LCD ;判断是否有键按下 KEY:MOV P1,#0FFH MOV A,P1 XRL A,#0FFH JZ KEY2 LCALL DE10MS MOV A,P1 MOV R5,A XRL A,#0FFH JNZ TKEY SJMP KEY KEY2:MOV A,P2 JNB ACC.5,L1 L2:SJMP KEY L1:LCALL DE10MS MOV A,P2 JB ACC.5,L2 LJMP FLCD ;判断那个键按下了 TKEY:MOV A,R5 JNB ACC.0,K1 SJMP K2 K1:MOV R2,#0
24、MOV DPTR,#TLCD1 ;设置 LCD5110 显示字的表格位置 MOV 51H,DPH MOV 50H,DPL LCALL SLCD LJMP MUSIC K2:JNB ACC.1,KK2 SJMP K3 KK2:MOV R2,#2 MOV DPTR,#TLCD2 MOV 51H,DPH MOV 50H,DPL LCALL SLCD LJMP MUSIC K3:JNB ACC.2,KK3 SJMP K4 KK3:MOV R2,#4 MOV DPTR,#TLCD3 MOV 51H,DPH MOV 50H,DPL LCALL SLCD LJMP MUSIC K4:JNB ACC.3,KK
25、4 SJMP K5 KK4:MOV R2,#6 MOV DPTR,#TLCD4 MOV 51H,DPH MOV 50H,DPL LCALL SLCD LJMP MUSIC K5:JNB ACC.4,KK5 SJMP K6 KK5:MOV R2,#8 MOV DPTR,#TLCD5 MOV 51H,DPH MOV 50H,DPL LCALL SLCD LJMP MUSIC K6:JNB ACC.5,KK6 SJMP K7 KK6:MOV R2,#10 MOV DPTR,#TLCD6 MOV 51H,DPH MOV 50H,DPL LCALL SLCD LJMP MUSIC K7:JNB ACC.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 电子琴 课程设计 报告 28895
限制150内