1、电子音乐发生器报告单片机设计实验报告2013年小学期单片机设计实验报告题目:电子音乐发生器班 级:班序号:实验组号:学生:指导教师:期中检查教师评语指导教师签字:年 月 日电子音乐发生器2011211*班 实验摘要 此次本组制作的基于pic单片机的电子音乐发生器是具有液晶显示屏提示的音乐简单演奏、播放等功能的演示作品。在目前很多简单音乐播放器件(如贺卡、礼品中的简单音乐单元)中,这样的简单电路和rom编程原理都是可以通用的,而且电路搭接、布局简单,十分适合电路原理学习、汇编语言编程零基础训练以与简单礼品核心部分制作参考。 整个系统中,微控制器采用了Microchip公司的PIC16F877,软
2、件设计中涉与PORTBPORTCPORTDPORTE用作普通数字I/O脚功能。本实验用单片机PORTBD接收来自键盘输入的指令信息,由此确定lcd液晶屏幕显示以与喇叭播放容,再通过PORTCDE输出声音或字幕信息。Abstract In this experiment,our group made this pic microcontroller based electronic music generator is a simple LCD prompts music playing, playback and other functions to the presentation. In
3、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 assembly language zero-based training
4、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 microcontroller PORTB D receives commands from
5、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 chip lcd液晶显示屏LCD screen 输入输出端口I / O pin一.实验论证与比较 电子音乐发生器采用以Microchip公司的PIC16F877芯片为核心的简单控制系统,外部电路连
6、接有喇叭、键盘、lcd液晶显示屏以与其他必要系统调节元件。 在将所要实现的功能用汇编语言加以实现并烧入rom中,作为实验进行过程中的硬件部分实现人员,我在本次实验中的主要工作是相关资料搜集、软件的入手使用、相关乐谱搜集与乐理知识简单介绍、实验记录与图形绘制和最终的硬件设计与焊接实现。 其中,困难的部分在于,理论上认为电子音乐发生器模拟真正乐器的仿真实现方法,与现实电路实现起来有着一定的差别,在长音、乐谱存储播放上,编程的同组搭档也费了不少脑筋和时间。二.系统总体设计系统模块总体框图程序流程图三.硬件连接单片机与输出元件连接音乐发生器的声音输出单元十分简单,即pic16f877单片机的RC0端口
7、与喇叭单元信号输入端以导线连接即可。而单片机与lcd液晶显示则需要相应管脚与单片机RE01和RD0-7管脚(10个)以导线连接。单片机与输入元件连接输入元件中,键盘输入需单片机RD7-4和RB3-0端口(8个)相连。 硬件连接为我的最主要分工部分,其中,各部分的外围支持电路(如4M有源晶振、重置电路、喇叭的放大电路、电源供应电路等的详细情况请见下图,具体硬件原理图) 具体硬件原理图(设计、手绘,12组硬件部分负责学生:冰宇)四.调试过程软件程序部分 虽然软件部分是由本组队友完成的,但是基本原理上在平时的合作中我也学到了很多容易些的原理,而且在理解了程序控制和输出原理的基础上完成硬件设计和实现也
8、就更加有利了。 首先,曲目存储形式,在参考资料“两只老虎”简谱的简单乐理解释之后,存储过程中由于1/4音符(该曲为“4/4拍”歌曲,即“以四分音符为一拍、每小节有4拍”,该曲中有设置1/4拍的必要,详细见附件“简谱1”)的原因导致程序曾多次需要重新编写。硬件部分 硬件部分设计实现由我负责,硬件部分的完成分为:电路图的设计、面包板上的电路实现、万能板上的电路实现三部分。 绘制基本电路图并根据电路图搭接面包板上的电路,但是由于面包板搭接存在不稳定性,电路时常会有输出失常的情况发生,在最后一次电路终于正常工作、各项参数均正常之后,听取实验室老师的建议,直接进行焊接,在考虑了手中现有万能板的条件之后,
9、重新绘制适合于该万能板布局的电路图,并着手焊接和测试。 调试过程中的经验总结:1、市面上学生自行购买的万能板与教师下发的教学用万能板有着很大区别,其用法也有不同,教学用万能板有置相连的焊点,这样的结构十分适合初次焊接整个电路的学生使用。2、焊接很多管脚与输出元件的部分时,强烈建议焊接之后立即使用万用表测量焊点是否真正焊上,否则在电路出现问题时再查找将有可能浪费不必要的时间。3、要在各种学习中贯彻“微积分”的思想,化整为零,分步击破,再将它们重新组合以求得整体效果的实现,同时,焊一部分就验一部分,焊接完成的部分与时检验,这样才能最大限度保证电路整体的正常工作。(详细请参考本实验报告第七部分附录中
10、的各部分分解硬件原理图)4、边分析边检查,猜想可能造成此现象的各种原因,逐个检验。5、仔细读图,避免管脚接错这样的低级错误。五.参考文献:PIC单片机实用教程基础篇 学海航空航天大学使用说明:的确是一本不可或缺的教材,本书列举了很多实用的具有实战意义的例子,单片机入门就是通过把这本书里的好例子一字一行敲进电脑去来实现的。PIC单片机实用教程提高篇学海航空航天大学使用说明:继承了前面基础篇的风格,例子也具有实战意义,主要讲RA、TMR2的使用和CCP模块的PWM脉宽调制功能。六.实验心得体会在本次小学期实验过程中,我们组(12组,A网)遇到的最严重的问题,但同时却并非实验本身学习问题,时间存在着
11、客观限制,由于实验时间在期末考试之后,实验结束即意味着组员订票返乡,由于暑假铁路客运订票高峰一票难求的原因,我们组不得不非常无奈而遗憾地选择了一个相对简单的题目(本组软件负责的队友同学其实本来是非常中意于“单片机智能车”这个题目的,但是未能如愿为之尝试、努力和钻研,实在是一大遗憾)并以相对紧凑的实验节奏完成了实验,实验完成功能:LCD显示的电子音乐发生器,用时:30个教学单元(第11天完成验收)。首先,总结实验中学到的知识与技能,本次实验中参考正规科研实验的模式编写并保存了“实验日记”和出于个人兴趣录制的实验中期检验的录像,虽然记录并不完整,但是还是有利于回忆经验教训的(此部分参见附录和报告附
12、带文件夹)。在硬件设计,尤其是万能板焊接前的具体电路设计阶段,由于不得不考虑手中现有材料的限制,曾经出现严重的元件错接在高电平上的事故,好在接通电源前与时发现并更正,否则该元件极有可能发生爆炸。由于焊接工作台与测试区分离,在焊接过程中时常有忘记携带图纸、镊子等状况,不仅让实验习惯不好的我吃到了苦头,更是让我理解了实践过程中对人各方面能力综合考验的道理。其次,总结实验中个人心得体会,实验中曾经遇到十分棘手的问题,如下实验日记:2013.6.29第一次理论课,实验介绍与题目引导2013.7.1进入实验室,试验箱介绍,尝试霹雳灯(下载成功未成功运行),尝试d盘中程序计数器(led灯显示计数数值)(下
13、载、运行均成功)2013.7.2第二次理论课(讲解硬件),继续实验,实验设计报告编写、实验报告试写、题目权衡确定、其他组成果观摩与教师交流硬件支持问题、总结实验箱使用经验教训(尤其关于下载和实验箱电源接触不良与程序下载运行之间的关系,总结理论与实际差距问题)2013.7.3实验进入胶着状态,虽然仍然在不懈研究代码和硬件之间的关系,但一无所获(上午),下午,电子音乐发生器程序输出端口暂定rc0。2013.7.4由于突发不可抗力原因,实验节奏被迫打乱,开始系统学习汇编语言且进度不可控,上午理论学习,下午理论学习同时查阅资料,同组同学发现编程中对于二进制常数填写中00000000B不可用,需改用B0
14、0000000的形式,实现按键控制led发光二极管依照指令发光。晚上对程序进行重新修改后,基本实现按键控制指定led发光,同时控制喇叭发出c大调七个音阶的声音,实验取得阶段性胜利。面包板出现问题且查找原因整整2天无果,正是由于电子音乐发生器是一个并不困难的题目,才更加让人如鲠在喉、如芒在背。现在回想起实验当时的困扰和不解,有如只身一人前往一处人烟稀少的“一线天”景点,但是不幸在通过石缝时整个人被卡在正中间,一转头都会擦到鼻子的狭窄和精神上的窒息感,此时唯有解决当前的问题才能艰难蹭出石缝但是当终于从压迫身心的“石缝”中脱险时,才能发现天空是如此蔚蓝高远、回想起来心中感慨万千。焊接过程中由于操作不
15、当烫伤了手指,还目睹了旁边实验台烙铁使用不当导致的爆炸,这些都时刻提醒着我们实验过程中“规使用、安全第一”,(旁边实验台爆炸时,一个火球从烙铁导线出喷出来,发出爆鸣声,随后发现烙铁导线完全炸断、插排断电保护)否则伤与自身、他人,造成安全隐患、财产损失、甚至伤亡都是有可能的。由于我们组从7月1日实验开始每天8:30-11:30、14:00-17:00和18:00-21:00的3个实验单元均按时签到进行实验,同时我们寻求老师关于元件基本使用方法的帮助、旁边13组同学也十分热心地介绍了他们自己购买的元件使用方法、网上资料也相对简单易懂,本组进度会较其它组稍微快一点,实验第七天开始有很多其它组同学来询
16、问关于元件基本使用方法、乐理知识(我稍有乐器学习的经历,对其他制作有音乐发生作品的同学能有些帮助吧)、焊接经验、电路工作中出现错误的问题等等,在尽力提供帮助时,我深刻地感受到帮助与我同样带着焦虑无奈眼神的人是一件多么有意义的事!实验中面包板会时不时出现故障的原因到最后也没有彻底明了,也许这就是实验的魅力所在,对我来说,与其说在实验中领悟了“通信工程的真谛”,到不如说参透了“人生不是考试题,不是所有的事情都能有答案”这样的禅理。最后,感实验中悉心教导我们的老师,对实验开始心毛躁、急功近利的我耐心疏导,对一双双焦急无奈的眼睛安慰宽抚,对粗心大意有时浪费元件的同学与时批评,老师们在实验中对我们的教育
17、、树立的模价值的不可估量。实验中,老师为与时监督、指导我们而早起晚睡,为了给同学演示焊接、修理损坏器件而不慎被烙铁烫伤,这些都让我们有了一份感动,同时更加激起我们学习的动力。老师在实验中教会了我们什么是自己能够独立完成的、什么应该查找相关资料,资料要沉住气来读才能理解、错误要一个点一个点测才能找到并纠正。我们也应该更多靠自己,在老师忙碌的时候不妨在一旁静心重新审视自己的电路,即是体谅他人又是给心灵以沉淀的机会,老师不会落下任何一个学生,在实验中老师总能在挤得水泄不通的教2-324一个个帮助前来求助的同学,在严厉的教导中我们感受到的是老师的认真负责、诲人不倦。实验虽然结束了,学习却不会结束,在今
18、后的日子里,我相信我将更有信心克服困难,执着向前。 2013年8月4日七、附录各部分分解硬件原理图:实验中期检验效果图:实验最后硬件实现图(请参考实验报告附带录像):焊接过程中管脚座布局图和背面焊点:简谱1(两只老虎):简谱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 23hADCON1 equ 9fhn1
19、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 equ 22hintcon equ 0bhtmr0 equ 01hso0 equ d256-d160do equ d256-d120re equ d256-d106mi equ d256-d94fa equ d256-d90so equ d256-d80la eq
20、u d256-d72xi equ d256-d64do1 equ d256-d60re1 equ d256-d53mi1 equ d256-d47;* org 0000hmain nop bsf status,rp0 movlw 00h movwf trisc movlw b11111111 movwf trisb movlw 00h movwf trisd movlw b00000000 movwf trise MOVLW 6H MOVWF ADCON1 movlw b00000011 movwf option_reg bcf status,rp0 movlw 00h movwf portc
21、 movlw b00000000 movwf porte;*call down movlw b00000001 movwf portd call down movlw b00111000 ;set function movwf portd call down movlw b00001000 ;close display movwf portd call down movlw b00000110 ;clear screen movwf portd call down movlw b00001100 ;clear screen movwf portd call down bcf porte,0 m
22、ovlw b00000001 movwf portd call down movlw b00000001 movwf porte movlw b01110111 movwf portd call down movlw b01100101 movwf portd call down movlw b01101100 movwf portd call down movlw b01100011 movwf portd call down movlw b01101111 movwf portd call down movlw b01101101 movwf portd call down movlw b
23、01100101 movwf portd call down ;welcome movlw b10100000 movwf portd call down movlw b01110100 movwf portd call down ;to movlw b01101111 movwf portd call down movlw b10100000 movwf portd call down movlw b01110101 ;use movwf portd call down movlw b01110011 movwf portd call down movlw b01100101 movwf p
24、ortd call down bcf porte,0 ;next row movlw b11000000 movwf portd call down movlw b00000001 movwf porte movlw b01000011 movwf portd call down movlw b00111010 movwf portd call down movlw b01110011 movwf portd call down movlw b01110100 movwf portd call down movlw b01100001 movwf portd call down movlw b
25、01110100 movwf portd call down movlw b01100101 movwf portd call down movlw b01101101 movwf portd call down movlw b01100101 movwf portd call down movlw b01101110 movwf portd call down movlw b01110100 movwf portd call down;*start movlw b01111111 movwf portd btfss portb,3 call one movlw b00000000 movwf
26、 portc btfss portb,2 call two movlw b00000000 movwf portc btfss portb,1 call three movlw b00000000 movwf portc btfss portb,0 call four movlw b10111111 movwf portd btfss portb,3 call five movlw b00000000 movwf portc btfss portb,2 call six movlw b00000000 movwf portc btfss portb,1 call seven movlw b00
27、000000 movwf portc btfss portb,0 call eight movlw b00000000 movwf portc movlw b11011111 movwf portd btfss portb,3 call nine movlw b00000000 movwf portc btfss portb,2 call ten movlw b00000000 movwf portc movlw b11011111 movwf portd btfss portb,1 call aa btfss portb,0 call bb movlw b00000000 movlw b11
28、101111 movwf portd btfss portb,3 call ccgoto startcc bcf porte,0 movlw b00000001 movwf portd call down movlw b00000001 movwf porte movlw b00110000 movwf portd call down movlw b00101101 movwf portd call down movlw b00111001 movwf portd call down movlw b00111010 movwf portd call down movlw b11110000 m
29、ovwf portd call down movlw b01101100 movwf portd call down movlw b01110101 movwf portd call down movlw b01100011 movwf portd call down movlw b01101011 movwf portd call down bcf porte,0 movlw b11000000 movwf portd call down movlw b00000001 movwf porte movlw b01000001 movwf portd call down movlw b00101100 movwf portd call down movlw b01000010 movwf portd call down movlw b00111010 movwf portd call down mov
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1