1、 单片机设计实验报告12013 年小学期单片机设计实验报告题目:电子音乐发生器班 级: 班内序号: 实验组号: 学生姓名: 指导教师: 单片机设计实验报告2期中检查教师评语指导教师签字:年 月 日单片机设计实验报告3电子音乐发生器2011211*班 实验摘要此次本组制作的基于 pic 单片机的电子音乐发生器是具有液晶显示屏提示的音乐简单演奏、播放等功能的演示作品。在目前很多简单音乐播放器件(如贺卡、礼品中的简单音乐单元)中,这样的简单电路和 rom 编程原理都是可以通用的,而且电路搭接、布局简单,十分适合电路原理学习、汇编语言编程零基础训练以及简单礼品核心部分制作参考。整个系统中,微控制器采用
2、了 Microchip 公司的 PIC16F877,软件设计中涉及PORTBPORTCPORTDPORTE 用作普通数字 I/O 脚功能。本实验用单片机 PORTBD 接收来自键盘输入的指令信息,由此确定 lcd 液晶屏幕显示以及喇叭播放内容,再通过 PORTCDE 输出声音或字幕信息。AbstractIn this experiment,our group made this pic microcontroller based electronic music generator is a simple LCD prompts music playing, playback and othe
3、r functions to the presentation. In the current lot of simple music playback devices (such as greeting cards, gift of simple musical elements), such a simple circuit and rom programming principles can all be generic, and the circuit lap, the layout is simple, very suitable circuit schematic learn as
4、sembly language zero-based training program and a simple gift core part of the production reference.Throughout the system, the microcontroller uses Microchips PIC16F877, software design involves PORTB PORTC PORTD PORTE used as a normal digital I / O pin functions. The experiment with the microcontro
5、ller PORTB D receives commands from the keyboard input information, thereby determining the LCD screen display and speakers to play the content, and then through PORTC D E output sound or subtitle information.关键字单片机microcontroller 芯片CMOS chiplcd 液晶显示屏LCD screen输入输出端口I / O pin单片机设计实验报告4一一 .实验论证与比较实验论
6、证与比较电子音乐发生器采用以 Microchip 公司的 PIC16F877 芯片为核心的简单控制系统,外部电路连接有喇叭、键盘、lcd 液晶显示屏以及其他必要系统调节元件。在将所要实现的功能用汇编语言加以实现并烧入 rom 中,作为实验进行过程中的硬件部分实现人员,我在本次实验中的主要工作是相关资料搜集、软件的入手使用、相关乐谱搜集及乐理知识简单介绍、实验记录与图形绘制和最终的硬件设计与焊接实现。其中,困难的部分在于,理论上认为电子音乐发生器模拟真正乐器的仿真实现方法,与现实电路实现起来有着一定的差别,在长音、乐谱存储播放上,编程的同组搭档也费了不少脑筋和时间。二二 .系统总体设计系统总体设
7、计系统模块总体框图程序流程图单片机设计实验报告5三三 .硬件连接硬件连接单片机与输出元件连接音乐发生器的声音输出单元十分简单,即 pic16f877 单片机的 RC0 端口与喇叭单元信号输入端以导线连接即可。而单片机与 lcd 液晶显示则需要相应管脚与单片机 RE01 和 RD0-7管脚(10 个)以导线连接。单片机与输入元件连接输入元件中,键盘输入需单片机 RD7-4 和 RB3-0 端口(8 个)相连。硬件连接为我的最主要分工部分,其中,各部分的外围支持电路(如 4M 有源晶振、重置电路、喇叭的放大电路、电源供应电路等的详细情况请见下图,具体硬件原理图)单片机设计实验报告6具体硬件原理图(
8、设计、手绘,12组硬件部分负责学生:刘冰宇)4.调试过程调试过程软件程序部分虽然软件部分是由本组队友完成的,但是基本原理上在平时的合作中我也学到了很多容易些的原理,而且在理解了程序控制和输出原理的基础上完成硬件设计和实现也就更加有利了。首先,曲目存储形式,在参考资料“两只老虎”简谱的简单乐理解释之后,存储过程中由于 1/4 音符(该曲为“4/4 拍”歌曲,即“以四分音符为一拍、每小节有 4 拍” ,该曲中有设置 1/4 拍的必要,详细见附件“简谱 1”)的原因导致程序曾多次需要重新编写。硬件部分单片机设计实验报告7硬件部分设计实现由我负责,硬件部分的完成分为:电路图的设计、面包板上的电路实现、
9、万能板上的电路实现三部分。绘制基本电路图并根据电路图搭接面包板上的电路,但是由于面包板搭接存在不稳定性,电路时常会有输出失常的情况发生,在最后一次电路终于正常工作、各项参数均正常之后,听取实验室老师的建议,直接进行焊接,在考虑了手中现有万能板的条件之后,重新绘制适合于该万能板布局的电路图,并着手焊接和测试。调试过程中的经验总结:1、市面上学生自行购买的万能板与教师下发的教学用万能板有着很大区别,其用法也有不同,教学用万能板有内置相连的焊点,这样的结构十分适合初次焊接整个电路的学生使用。2、焊接很多管脚与输出元件的部分时,强烈建议焊接之后立即使用万用表测量焊点是否真正焊上,否则在电路出现问题时再
10、查找将有可能浪费不必要的时间。3、要在各种学习中贯彻“微积分”的思想,化整为零,分步击破,再将它们重新组合以求得整体效果的实现,同时,焊一部分就验一部分,焊接完成的部分及时检验,这样才能最大限度保证电路整体的正常工作。 (详细请参考本实验报告第七部分附录中的各部分分解硬件原理图)4、边分析边检查,猜想可能造成此现象的各种原因,逐个检验。5、仔细读图,避免管脚接错这样的低级错误。五五 .参考文献参考文献:PIC单片机实用教程基础篇 李学海北京航空航天大学出版社使用说明:的确是一本不可或缺的教材,本书列举了很多实用的具有实战意义的例子,单片机入门就是通过把这本书里的好例子一字一行敲进电脑去来实现的
11、。PIC单片机实用教程提高篇李学海北京航空航天大学出版社使用说明:继承了前面基础篇的风格,例子也具有实战意义,主要讲RA、TMR2的使用和 CCP模块的PWM脉宽调制功能。六六 .实验心得体会实验心得体会单片机设计实验报告8在本次小学期实验过程中,我们组(12 组,A 网)遇到的最严重的问题,但同时却并非实验本身学习问题,时间存在着客观限制,由于实验时间在期末考试之后,实验结束即意味着组员订票返乡,由于暑假铁路客运订票高峰一票难求的原因,我们组不得不非常无奈而遗憾地选择了一个相对简单的题目(本组软件负责的队友同学其实本来是非常中意于“单片机智能车”这个题目的,但是未能如愿为之尝试、努力和钻研,
12、实在是一大遗憾)并以相对紧凑的实验节奏完成了实验,实验完成功能:LCD 显示的电子音乐发生器,用时:30 个教学单元(第 11 天完成验收) 。首先,总结实验中学到的知识与技能,本次实验中参考正规科研实验的模式编写并保存了“实验日记”和出于个人兴趣录制的实验中期检验的录像,虽然记录并不完整,但是还是有利于回忆经验教训的(此部分参见附录和报告附带文件夹) 。在硬件设计,尤其是万能板焊接前的具体电路设计阶段,由于不得不考虑手中现有材料的限制,曾经出现严重的元件错接在高电平上的事故,好在接通电源前及时发现并更正,否则该元件极有可能发生爆炸。由于焊接工作台与测试区分离,在焊接过程中时常有忘记携带图纸、
13、镊子等状况,不仅让实验习惯不好的我吃到了苦头,更是让我理解了实践过程中对人各方面能力综合考验的道理。其次,总结实验中个人心得体会,实验中曾经遇到十分棘手的问题,如下实验日记:2013.6.29 第一次理论课,实验介绍及题目引导2013.7.1 进入实验室,试验箱介绍,尝试霹雳灯(下载成功未成功运行) ,尝试 d 盘中程序计数器(led 灯显示计数数值) (下载、运行均成功)2013.7.2 第二次理论课(讲解硬件) ,继续实验,实验设计报告编写、实验报告试写、题目权衡确定、其他组成果观摩与教师交流硬件支持问题、总结实验箱使用经验教训(尤其关于下载和实验箱电源接触不良与程序下载运行之间的关系,总
14、结理论与实际差距问题)2013.7.3 实验进入胶着状态,虽然仍然在不懈研究代码和硬件之间的关系,但一无所获(上午) ,下午,电子音乐发生器程序输出端口暂定 rc0。2013.7.4 由于突发不可抗力原因,实验节奏被迫打乱,开始系统学习汇编语言且进度不可控,上午理论学习,下午理论学习同时查阅资料,同组同学发现编程中对于二进制常数填写中 00000000B 不可用,需改用 B00000000的形式,实现按键控制 led 发光二极管依照单片机设计实验报告9指令发光。晚上对程序进行重新修改后,基本实现按键控制指定 led 发光,同时控制喇叭发出 c 大调七个音阶的声音,实验取得阶段性胜利。面包板出现
15、问题且查找原因整整 2 天无果,正是由于电子音乐发生器是一个并不困难的题目,才更加让人如鲠在喉、如芒在背。现在回想起实验当时的困扰和不解,有如只身一人前往一处人烟稀少的“一线天”景点,但是不幸在通过石缝时整个人被卡在正中间,一转头都会擦到鼻子的狭窄和精神上的窒息感,此时唯有解决当前的问题才能艰难蹭出石缝但是当终于从压迫身心的“石缝”中脱险时,才能发现天空是如此蔚蓝高远、回想起来心中感慨万千。焊接过程中由于操作不当烫伤了手指,还目睹了旁边实验台烙铁使用不当导致的爆炸,这些都时刻提醒着我们实验过程中“规范使用、安全第一” , (旁边实验台爆炸时,一个火球从烙铁导线出喷出来,发出爆鸣声,随后发现烙铁
16、导线完全炸断、插排断电保护)否则伤及自身、他人,造成安全隐患、财产损失、甚至伤亡都是有可能的。由于我们组从 7 月 1 日实验开始每天 8:30-11:30、14:00-17:00 和 18:00-21:00的 3 个实验单元均按时签到进行实验,同时我们寻求老师关于元件基本使用方法的帮助、旁边 13 组同学也十分热心地介绍了他们自己购买的元件使用方法、网上资料也相对简单易懂,本组进度会较其它组稍微快一点,实验第七天开始有很多其它组同学来询问关于元件基本使用方法、乐理知识(我稍有乐器学习的经历,对其他制作有音乐发生作品的同学能有些帮助吧) 、焊接经验、电路工作中出现错误的问题等等,在尽力提供帮助
17、时,我深刻地感受到帮助与我同样带着焦虑无奈眼神的人是一件多么有意义的事!实验中面包板会时不时出现故障的原因到最后也没有彻底明了,也许这就是实验的魅力所在,对我来说,与其说在实验中领悟了“通信工程的真谛” ,到不如说参透了“人生不是考试题,不是所有的事情都能有答案”这样的禅理。最后,感谢实验中悉心教导我们的老师,对实验开始内心毛躁、急功近利的我耐心疏导,对一双双焦急无奈的眼睛安慰宽抚,对粗心大意有时浪费元件的同学及时批评,老师们在实验中对我们的教育、树立的模范价值的不可估量。实验中,老师为及时监督、指导我们而早起晚睡,为了给同学演示焊接、修理损坏器件而不慎被烙铁烫伤,这些都让我们有了一份感动,同
18、时更加激起我们学习的动力。老师在实验中教会了我们什么是自己能够独立完成的、什么应该查找相关资料,资料要单片机设计实验报告10沉住气来读才能理解、错误要一个点一个点测才能找到并纠正。我们也应该更多靠自己,在老师忙碌的时候不妨在一旁静心重新审视自己的电路,即是体谅他人又是给心灵以沉淀的机会,老师不会落下任何一个学生,在实验中老师总能在挤得水泄不通的教 2-324 一个个帮助前来求助的同学,在严厉的教导中我们感受到的是老师的认真负责、诲人不倦。实验虽然结束了,学习却不会结束,在今后的日子里,我相信我将更有信心克服困难,执着向前。2013 年 8 月 4 日7、 附录附录各部分分解硬件原理图:单片机设
19、计实验报告11实验中期检验效果图:实验最后硬件实现图(请参考实验报告附带录像):单片机设计实验报告12焊接过程中管脚座布局图和背面焊点:单片机设计实验报告13简谱1(两只老虎):单片机设计实验报告14简谱2(情非得已):status equ 3hrp0 equ 5hportb equ 6htrisb equ 86hportc equ 7htrisc equ 87hportd equ 8htrisd equ 88hporte equ 09htrise equ 89hdate1 equ 20hdate2 equ 21hdate3 equ 23h单片机设计实验报告15ADCON1 equ 9fhn1
20、 equ d1n4 equ d1n5 equ d95 ;5n6 equ d85 ;3 4n7 equ d75 ;2n8 equ d65 ;1n10 equ d105 ;6n11 equ d50 ;-5n12 equ d6n13 equ d120n2 equ d230n3 equ d1option_reg equ 81hoption_b equ22hintcon equ 0bhtmr0equ 01hso0 equ d256-d160do equ d256-d120re equ d256-d106mi equ d256-d94fa equ d256-d90so equ d256-d80la equ
21、 d256-d72xi equ d256-d64do1 equ d256-d60re1 equ d256-d53mi1 equ d256-d47;*org 0000hmainnopbsf status,rp0movlw 00hmovwf triscmovlw b11111111movwf trisbmovlw 00hmovwf trisdmovlw b00000000movwf trise单片机设计实验报告16MOVLW6HMOVWF ADCON1movlw b00000011movwf option_regbcf status,rp0movlw 00hmovwf portcmovlw b00
22、000000movwf porte;*call downmovlw b00000001movwf portdcall downmovlw b00111000 ;set functionmovwf portdcall downmovlw b00001000 ;close displaymovwf portdcall downmovlw b00000110 ;clear screenmovwf portdcall downmovlw b00001100 ;clear screenmovwf portdcall downbcf porte,0movlw b00000001movwf portdcal
23、l downmovlw b00000001movwf portemovlw b01110111movwf portdcall downmovlw b01100101movwf portdcall downmovlw b01101100movwf portdcall downmovlw b01100011movwf portd单片机设计实验报告17call downmovlw b01101111movwf portdcall downmovlw b01101101movwf portdcall downmovlw b01100101movwf portdcall down ;welcomemov
24、lw b10100000movwf portdcall downmovlw b01110100movwf portdcall down ;tomovlw b01101111movwf portdcall downmovlw b10100000movwf portdcall downmovlw b01110101 ;usemovwf portdcall downmovlw b01110011movwf portdcall downmovlw b01100101movwf portdcall downbcf porte,0 ;nextrowmovlw b11000000movwf portdcal
25、l downmovlw b00000001movwf portemovlw b01000011movwf portdcall downmovlw b00111010movwf portdcall down单片机设计实验报告18movlw b01110011movwf portdcall downmovlw b01110100movwf portdcall downmovlw b01100001movwf portdcall downmovlw b01110100movwf portdcall downmovlw b01100101movwf portdcall downmovlw b01101
26、101movwf portdcall downmovlw b01100101movwf portdcall downmovlw b01101110movwf portdcall downmovlw b01110100movwf portdcall down;*startmovlw b01111111movwf portdbtfssportb,3 call onemovlw b00000000movwf portc单片机设计实验报告19btfssportb,2 call twomovlw b00000000movwf portcbtfss portb,1call threemovlw b0000
27、0000movwf portcbtfss portb,0call fourmovlw b10111111movwf portdbtfssportb,3 call fivemovlw b00000000movwf portcbtfssportb,2 call sixmovlw b00000000movwf portcbtfss portb,1call sevenmovlw b00000000movwf portcbtfssportb,0 call eightmovlw b00000000movwf portcmovlw b11011111movwf portdbtfssportb,3 call
28、ninemovlw b00000000movwf portcbtfssportb,2 call tenmovlw b00000000movwf portcmovlw b11011111movwf portdbtfssportb,1 单片机设计实验报告20call aabtfssportb,0 call bbmovlw b00000000movlw b11101111movwf portdbtfssportb,3 call ccgoto startcc bcf porte,0movlw b00000001movwf portdcall downmovlw b00000001movwf porte
29、movlw b00110000movwf portdcall downmovlw b00101101movwf portdcall downmovlw b00111001movwf portdcall downmovlw b00111010movwf portdcall downmovlw b11110000movwf portdcall downmovlw b01101100movwf portdcall downmovlw b01110101movwf portdcall down单片机设计实验报告21movlw b01100011movwf portdcall downmovlw b01
30、101011movwf portdcall downbcf porte,0movlw b11000000movwf portdcall downmovlw b00000001movwf portemovlw b01000001movwf portdcall downmovlw b00101100movwf portdcall downmovlw b01000010movwf portdcall downmovlw b00111010movwf portdcall downmovlw b01101101movwf portdcall downmovlw b01110101movwf portdc
31、all downmovlw b01110011movwf portdcall downmovlw b01101001movwf portdcall downmovlw b01100011movwf portdcall down单片机设计实验报告22returmone movlw 01hxorwf portcbcf intcon,2movlw domovwf tmr0test btfssintcon,2goto testreturntwo movlw 01hxorwf portcbcf intcon,2movlw removwf tmr0test2btfssintcon,2goto test2r
32、eturnthree movlw 01hxorwf portcbcf intcon,2movlw mimovwf tmr0test3btfssintcon,2goto test3returnfour movlw 01hxorwf portcbcf intcon,2movlw famovwf tmr0test4btfssintcon,2goto test4单片机设计实验报告23returnfive movlw 01hxorwf portcbcf intcon,2movlw somovwf tmr0test5btfssintcon,2goto test5returnsixmovlw 01hxorw
33、f portcbcf intcon,2movlw lamovwf tmr0test6btfssintcon,2goto test6returnseven movlw 01hxorwf portcbcf intcon,2movlw ximovwf tmr0test7btfssintcon,2goto test7returneight movlw 01hxorwf portcbcf intcon,2movlw do1movwf tmr0test8btfssintcon,2goto test8returnnine movlw 01hxorwf portcbcf intcon,2movlw re1mo
34、vwf tmr0单片机设计实验报告24test9btfssintcon,2goto test9returnten movlw 01hxorwf portcbcf intcon,2movlw mi1movwf tmr0test10 btfssintcon,2goto test10returnjiangso movlw 01hxorwf portcbcf intcon,2movlw so0movwf tmr0test11 btfssintcon,2goto test11returnaabcf porte,0movlw b00000001movwf portdcall downmovlw b0000
35、0001movwf portemovlw b01110100movwf portdcall downmovlw b01110111movwf portdcall downmovlw b01101111movwf portdcall downmovlw b10100000movwf portdcall downmovlw b01110100movwf portdcall down单片机设计实验报告25movlw b01101001movwf portdcall downmovlw b01100111movwf portdcall downmovlw b01100101movwf portdcal
36、l downmovlw b01110010movwf portdcall downmovlw b01110011movwf portdcall downcall delay1call delay1call delay1call delay1call delay2call delay2call delay2call delay2call delay3call delay3call delay3call delay3call delay1call delay1call delay1call delay1call delay0call delay1call delay1call delay1call
37、 delay1call delay2call delay2call delay2call delay2call delay3单片机设计实验报告26call delay3call delay3call delay3call delay1call delay1call delay1call delay1call delay0call delay3call delay3call delay3call delay3call delay4call delay4call delay4call delay4call delay5call delay5call delay5call delay5call de
38、lay5call delay5call delay5call delay5call delay0call delay3call delay3call delay3call delay3call delay4call delay4call delay4call delay4call delay5call delay5call delay5call delay5call delay5call delay5call delay5单片机设计实验报告27call delay5call delay0call delay5call delay5call delay5call delay6call delay
39、5call delay5call delay5call delay4call delay3call delay3call delay3call delay3call delay1call delay1call delay1call delay1call delay0call delay5call delay5call delay5call delay6call delay5call delay5call delay5call delay4call delay3call delay3call delay3call delay3call delay1call delay1call delay1ca
40、ll delay1call delay0call delay1call delay1call delay1call delay1单片机设计实验报告28call delay7call delay7call delay7call delay7call delay1call delay1call delay1call delay1call delay1call delay1call delay1call delay1call delay0call delay1call delay1call delay1call delay1call delay7call delay7call delay7call
41、delay7call delay1call delay1call delay1call delay1call delay1call delay1call delay1call delay1call delay0returnbb call delay3call delay3call delay4call delay4call delaycall delay5call delay5call delay3call delay3call delay单片机设计实验报告29call delay3call delay3call delay5call delay5call delaycall delay5ca
42、ll delay5call delay4call delay4call delaycall delay3call delay3call delay2call delay2call delay2call delay2call delay2call delay2call delay0call delay3call delay3call delay2call delay2call delaycall delay1call delay1call delaycall delay1call delay1call delay1call delay1call delay8call delay8call del
43、aycall delay8call delay8call delay8call delay8call delaycall delay3call delay3call delay5单片机设计实验报告30call delay5call delay5call delay5call delay5call delay5call delay0call delay1call delay1call delaycall delay1call delay1call delay2call delay2call delay2call delay2call delay1call delay1call delay1call delay1call delay1call delay1call delay1call delay1call delaycall delay8call delay8call delay0call delay8call delay6call delay6call delay6call delay6call delaycall delay6call delay6call delay5call delay5call delay5call delay5call delay5call delay5