pic单片机 电子音乐发生器报告 北邮
- 格式:doc
- 大小:5.39 MB
- 文档页数:35
单片机课程设计实验报告电子音调发生器:日期:2009年6月29日星期一目录〔一〕实验目的0〔二〕设计任务及要求1〔三〕工作原理及设计思路1〔四〕实现功能设计2〔五〕软件设计3〔六〕电路设计58〔七〕调试59〔八〕实验体会60〔一〕实验目的1.了解计算机发声原理。
2.熟悉定时器和键盘扫描电路的工作原理及编程方法。
〔二〕设计任务及要求利用实验平台上的开关k0-k7和蜂鸣器设计电子音调发生器,要求:1.利用实验平台上开关k0-k7进展音调选择,即拨动不同的开关产生不同的音调,依次拨动K0~K7,蜂鸣器发出1234567i八个音调。
2.编写2支歌曲,并可进展选择播放。
〔三〕工作原理及设计思路音节由不同频率的方波产生,音节与频率的关系如表1所示。
要产生音频方波,只要算出*一音频的周期〔1/频率〕,然后将此周期除以2,即为半周期的时间。
利用计时器计时此半周期时间,每当计时到后就将输出方波的I/0反相,然后重复计时此半周期时间再对I/O反相,就可在I/O脚得到此频率的方波。
在ZKS-03实验仪上,产生方波的I/O脚选用P1.7,通过跳线选择器JP1将单片机的P1.7与蜂鸣器的驱动电路相连。
这样P1.7输出不同频率的方波,蜂鸣器便会发出不同的声音。
另外,音乐的节拍是由延时实现的,如果1拍为0.4秒,1/4拍是0.1秒。
只要设定延时时间,就可求得节拍的时间。
延时作为根本延时时间,节拍值只能是它的整数倍,每个音节相应的定时器初值*可按下法计算:〔1/2〕*(1/f)=(12/fose)*(216-*)即*=216-(fose/24f)其中f:音调频率,当晶振fose=11.0592MHz时,音节“1〞相应的定时器初值为*,则可得*=63777D=F921H 其它的可同样求得。
表1〔四〕实现功能设计实现两个主要功能:电子琴与音乐播放;一个辅助功能:在液晶上显示相关信息。
1、电子琴:4*4的矩阵16个按键,按键0实现两个功能的切换,其余按键分别发出音调低音5、6、7,中音1、2、3、4、5、6、7,高音1、2、3、4、5。
北邮,单片机,实验报告,电子琴北邮单片机实验报告简易电子琴2014年小学期单片机设计实验报告题目:基于单片机的电子音乐发生器班级:班内序号:实验组号:学生姓名:指导教师:基于单片机的电子音乐发生器实验摘要此次本组制作的基于PIC单片机的电子音乐发生器是具有LCD显示屏提示的音乐简单演奏、播放、存储等功能的演示作品,拥有以下4种功能:1.按键演奏:即“电子琴”功能,可以用键盘上的“1”到“A”键演奏从低音sol到高音do等11个音;2.点歌功能:即按动“B”“C”键分别演奏两首乐曲(可以表现准确的音高和音长)。
3.存储音乐功能:即按右下角“F存储”键,然后按键演奏并存储,随后按“E”键结束,之后按“D键”就可以播放存储的乐曲了;4.液晶显示功能:即在开始时显示“hello!”,在点播时分别显示“song b”、“song c”,在存储时显示“saving”。
电子音乐发生器采用以Microchip公司的PIC16F877芯片为核心的简单控制系统,外部电路连接有喇叭、键盘、LCD液晶显示屏以及其他必要系统调节元件。
软件设计中涉及PORTB\PORTC\PORTD\PORTE用作普通数字I/O脚功能。
本实验用单片机PORTB\D接收来自键盘输入的指令信息,由此确定LCD液晶屏幕显示以及喇叭播放内容,再通过PORTC\D\E输出声音或字幕信息。
关键字单片机——microcontroller芯片——CMOS chip音乐发生器——music generator 分频——fractional frequency 一、实验论证与比较本设计的核心器件是单片机芯片和音频功放芯片。
单片机采用以Microchip公司的PIC16F87X系列中的PIC16F877芯片为核心构建简单控制系统,它完全可以满足本设计功能的需要。
此音乐发生器设计利用单片机的输入输出功能,当按下播放功能键时,单片机的输出功能使外部电路连接的喇叭和LCD液晶显示屏同时播放声音及显示文字,从而实现各种复杂音乐播放器的功能。
2013-2014学年小学期电路综合实验实验报告基于单片机ATmega16电子琴的设计与实现姓名:班级:学号:班内序号:同组:EMAIL :组号:北京邮电大学时间:2013年09月12日目录1.实验概要1.1摘要1.2关键词1.3实验目的2.前期基础实验3.原理图和流程图.及效果图4.程序分析5.调试排错过程6.心得体会7.小组分工8.参考文献1 实验概要1.1 摘要本实验是基于单片机A Tmega16制作的建议电子琴。
通过键盘的控制可以播放预置歌曲以及自行弹奏音符这两个主要功能以及变速,录放音,变调等其他的次要功能,通过数码管和二极管的发光来显示音调和当前模式。
1.2 关键词avr单片机电子琴弹奏存储播放1.3 实验目的(1)对单片机有初步的了解,了解ATmega16单片机的各个端口管脚以及其逻辑功能。
(2)熟悉A VR studio,GCC等软件的编译环境,进行软件仿真。
(3)了解各个模块的作用以及用法,如4*4键盘,喇叭等。
(4)通过对于上述的了解,设计出简易电子琴并实现若干功能。
2 前期基础实验代码:#include<avr/io.h>int main(void){char temp;unsigned int i,j;DDRD = 0xff;PORTD = 0b11100110;while(1){temp = PORTD;PORTD = PORTD << 1;if(temp & 0b10000000)PORTD |= 0b00000001;for(i=0;i<500;i++)for(j=0;j<1000;j++);}}#include<avr/io.h>#include<avr/interrupt.h>char shuma[10]={~0b10111011,~0b10100000,~0b01101011,~0b11101010,~0b11110000,~0b11011010,~0b11011011,~0b10101000,~0b11111011,~0b11111010,};volatile unsigned int cnt=0,i=0,j=0,m=0,p=0;int main(void){DDRD = 0xff;DDRB = 0xff;MCUCR = 0;MCUCR |=(1<<ISC10) | (1<<ISC00)| (1<<ISC01);GICR |= (1<<INT0) | (1<<INT1);sei();TCNT0 = 5;TCCR0 |=(1<<CS01);while(1);}SIGNAL(SIG_INTERRUPT0){i=0;j=0;m=0;p=0;TIMSK |= (1<<TOIE0);}SIGNAL(SIG_INTERRUPT1){TIMSK &= ~(1<<TOIE0);PORTD = 0b10000000;PORTB = shuma[i];for(int n=0;n<500;n++);PORTD = 0b01000000;PORTB = shuma[j];for(int n=0;n<500;n++);PORTD = 0b00100000;PORTB = shuma[m]&(~(1<<2));for(int n=0;n<500;n++);PORTD = 0b00010000;PORTB = shuma[p];for(int n=0;n<500;n++);}SIGNAL(SIG_OVERFLOW0){TCNT0 = 5;cnt++;if(cnt>60){cnt=0;PORTD = 0b10000000;PORTB = shuma[i];for(int n=0;n<500;n++);PORTD = 0b01000000;PORTB = shuma[j];for(int n=0;n<500;n++);PORTD = 0b00100000;PORTB = shuma[m]&(~(1<<2));for(int n=0;n<500;n++);PORTD = 0b00010000;PORTB = shuma[p];for(int n=0;n<500;n++);i++;if(i==10){i=0;j++;}if(j==10){j=0;m++;}if(m==10){m=0;p++;}if(p==6)p=0;}}3 原理图及实物图4 程序分析#include<avr/io.h>#include<avr/interrupt.h>#include<avr/iom16.h>unsigned char anjian = 0;//获取按键的int speed=20;//控制播放速度unsigned int music_L[7]={262,294,330,349,392,440,494};//存放低八度音阶频率unsigned int music_C[7]={524,588,660,698,784,880,988};//存放正常C大调音阶频率unsigned int music_H[7]={1047,1175,1319,1397,1568,1760,1976};//存放高八度音阶频率unsigned int music[7]={524,588,660,698,784,880,988};//存放正常C大调音阶频率并且在变调时将其他调的频率写入该数组unsigned int musicmem[100]={}; //储存弹奏的音乐频率unsigned int tune[100]={}; //储存弹奏的音乐的某个音符音长int flag=0; //音长char display[11]={0,0b00000110, //数码管显示10b01011011, //数码管显示20b01001111, //数码管显示30b01100110, //数码管显示40b01101101, //数码管显示50b01111101, //数码管显示60b00000111, //数码管显示70b01111111, //数码管显示80b01101111, //数码管显示90b00111111, //数码管显示0};//控制8段数码管显示void init()//初始化{DDRD |=0x30;//发声DDRA = 0xf0;//按键DDRB = 0xff;//8段数码管DDRC = 0xff;//8段数码管speed = 20;//播放速度}void delay(int ms)//延迟函数单位为毫秒,用于在按键按下后提供延迟响应滤除误按的影响。
2013年小学期PIC单片机实验报告题目:蓝牙电子琴组号:班级:学号:姓名:老师:目录一摘要二论证与比较三原理1 蓝牙控制原理…………………………………………………..2 发音原理………………………………………………………3 中断控制………………………………………………………四硬件1 框图…………………………………………………………………………………2 原理图…………………………………………………………………………………五软件1 流程图………………………………………………………………………………2 程序…………………………………………………………………………………六实验总结七参考文献一摘要Microcontroller is known as the single chip microcomputer and single chip microcomputer. It is the central processing unit (CPU), random access memory (RAM), read-only memory (ROM), input/output port (I/O), etc. The main function of computer components are integrated on a chip microcomputer. Experiments using PIC16F877 single-chip microcomputer with a serial communication port (USART port), through the USART port with bluetooth module connection, you can through the mobile phone bluetooth bluetooth device to control the single-chip computer, also can realize the serial communication with other modules. PIC16F877 single chip microcomputer to control the corresponding port produce a certain frequency of square wave, amplification and then sent to the speakers can emit a certain frequency of sound. Interrupt to use bluetooth to real-time control MCU, thus realize the electric .单片机被称为单片微电脑或单片微型计算机。
2014年小学期单片机设计实验报告题目:基于单片机的电子音乐发生器班级:班内序号:实验组号:学生姓名:指导教师:基于单片机的电子音乐发生器实验摘要此次本组制作的基于PIC单片机的电子音乐发生器是具有LCD显示屏提示的音乐简单演奏、播放、存储等功能的演示作品,拥有以下4种功能:1.按键演奏:即“电子琴”功能,可以用键盘上的“1”到“A”键演奏从低音sol到高音do等11个音;2.点歌功能:即按动“B”“C”键分别演奏两首乐曲(可以表现准确的音高和音长)。
3.存储音乐功能:即按右下角“F存储”键,然后按键演奏并存储,随后按“E”键结束,之后按“D键”就可以播放存储的乐曲了;4.液晶显示功能:即在开始时显示“hello!”,在点播时分别显示“song b”、“song c”,在存储时显示“saving”。
电子音乐发生器采用以Microchip公司的PIC16F877芯片为核心的简单控制系统,外部电路连接有喇叭、键盘、LCD液晶显示屏以及其他必要系统调节元件。
软件设计中涉及PORTB\PORTC\PORTD\PORTE用作普通数字I/O脚功能。
本实验用单片机PORTB\D接收来自键盘输入的指令信息,由此确定LCD液晶屏幕显示以及喇叭播放内容,再通过PORTC\D\E输出声音或字幕信息。
关键字单片机——microcontroller 芯片——CMOS chip音乐发生器——music generator 分频——fractional frequency一、实验论证与比较本设计的核心器件是单片机芯片和音频功放芯片。
单片机采用以Microchip公司的PIC16F87X系列中的PIC16F877芯片为核心构建简单控制系统,它完全可以满足本设计功能的需要。
此音乐发生器设计利用单片机的输入输出功能,当按下播放功能键时,单片机的输出功能使外部电路连接的喇叭和LCD液晶显示屏同时播放声音及显示文字,从而实现各种复杂音乐播放器的功能。
实验一循环点亮LED灯一、实验内容:将RE0-RE5配置为输出,连接6个LED灯;编写程序,调试并运行,下载到实验板上,实现循环点亮。
二、实验目的:学习PIC单片机I/O端口功能及特点,了解I/O端口引脚及连线,控制寄存器。
在开发板上实现循环点亮LED灯。
三、实验要求1.了解掌握PIC单片机的结构和功能。
2.应熟练掌握MPLAB开发环境的使用方法。
3.熟练掌握PIC单片机的程序编写方法。
4.掌握MPLAB IDE硬件调试的技巧。
四、实验准备:1、I/O引脚及连线:I/O端口特点:1、所有I/O 输入端口都是施密特触发器输入,以便增强抗干扰性。
2、外设复用:所有的器件引脚(除VDD、VSS、MCLR 和OSC1/CLKI之外),均为外设与I/O端口所共用。
3、如果外设使能,并且外设正在使用相关引脚时,该引脚将不再作为通用I/O 引脚使用。
4、优先级:I/O 与多个外设复用时I/O 引脚的名称定义了与该引脚相关的各个功能的优先级,如:I/O 引脚与两个外设复用(“外设A”和“外设B”)外设A 对引脚的控制具有最高优先权,若外设A 和外设B 同时使能,外设A将控制I/O 引脚5、电平变化通知引脚:电平变化通知引脚(CN)内接输入电平变化通知模块,使得dsPIC30F器件能够向处理器发出中断请求,以响应所选输入引脚上的状态变化。
I/O端口控制寄存器:所有的端口引脚,都有三个与端口引脚的操作直接相关的寄存器。
①TRISx:数据方向寄存器。
决定各个引脚是输入引脚还是输出引脚。
–若某个I/O 引脚的TRIS 位为“1”,则该引脚是输入引脚。
–某个I/O 引脚的TRIS 位为“0”,则该引脚被配置为输出引脚。
–复位以后,所有端口引脚被定义为输入。
②PORTx:I/O端口寄存器。
访问的是I/O引脚上的数据。
读的是端口引脚值;写端口引脚,写的是端口数据锁存器(LATx )。
③LATx:I/O端口锁存寄存器。
读的是数据锁存器里锁存的值;写锁存值,写的是端口数据锁存器(LATx )五、实验过程及结果:实验源程序:#include "p30f4011.h”int main(void){int led=0x01;unsigned long int i=0;TRISE =0x100;PORTE=led;while(1){PORTE =led;for (i=0;i<65000;i++){}; //延时led = led<<1; //当第6个LED灯亮后,重新从第1个LED灯点亮if (led == 0x40)led = 0x01;}return 0;}先编写程序,检验正确后,下载到实验板上并运行,实验板上6个LED灯开始循环点亮,通过修改程序,还可以改变延迟时间,即可控制LED灯点亮时间。
20112111**班**号**单片机设计实验报告2013年小学期单片机设计实验报告题目:基于PIC32单片机的多功能音乐播放器班级:20112111**班班内序号:**实验组号:**学生姓名:**指导教师:***20112111**班**号**单片机设计实验报告基于PIC32单片机的多功能音乐播放器――20112111**班** 实验摘要本次我们制作的多功能音乐播放器是一个基于Microchip公司生产的PIC32MX795F512L 单片机的小型娱乐系统。
该系统可以实现利用单片机的I/O口产生一定频率的方波,驱动蜂鸣器发出不同的音调,从而演奏乐曲。
音乐播放器采用LCD1602显示信息。
开机时可以显示英文欢迎提示字符“WELCOME”,播放音乐时显示歌曲序号和名称。
可通过按4X4矩阵键盘上的不同键来选择播放乐曲或暂停、播放上一首或者下一首,并且该音乐播放器提供了顺序、随机、单曲循环三种播放模式供选择。
音乐播放器还可以利用三八线译码器74LS138和发光二极管,根据不同的音调发出不同颜色的光,色彩绚丽,显示效果很好。
与传统的单片机的音乐盒最大的不同是,我们制作的音乐播放器还具有电子琴的功能,可以根据使用者按下的不同键值发出不同音调的声音,并且单片机可以记录这一按键序列。
当使用者弹奏完,按下播放键,单片机可以把刚才弹奏出来的乐曲播放出来,即实现了电子琴弹奏和播放的功能。
整个系统非常贴近我们小时候玩的音乐盒以及电子琴,其界面十分界面友好,并且很全面地利用了所学单片机的知识。
在该多功能音乐播放器的实现中,我们使用了计时器等单片机技术,通过mplab编程软件实现音乐播放器的功能,并且在面包板上搭建好外部电路。
AbstractIn this experiment we made versatile music player is based on a Microchip microcontroller produced PIC32MX795F512L small entertainment system. The system can achieve the use of single-chip I / O ports have a certain frequency square wave drive buzzer sounded a different tone to play music.20112111**班**号**单片机设计实验报告Music player uses LCD1602 display information. Welcome boot prompt character can be displayed in English "WELCOME", playing music shows song number and name. 4X4 matrix by pressing different keys on the keyboard to select the song playback or pause, play on one or next, and the music player provides a sequential, random, single cycle three kinds of play modes to choose from. Music player can also use the military demarcation line decoder 74LS138 and light emitting diodes, according to the different tones emit different colors of light, colorful, showing good results.With traditional SCM Music Box biggest difference is that we have produced music player also has a keyboard function, based on the user presses different keys make different tones of voice, and the microcontroller can record this key sequence. When the user finished playing, press the play button, the microcontroller can just play out of tune play out, namely to achieve a keyboard play and playback functions. The entire system is very close to our child playing music boxes and organ, its interface is very user-friendly, and very comprehensive utilization of the knowledge learned microcontroller.In this multi-function music player implementation, we use a timer and other chip technology, through mplab programming software music player functions, and breadboard build a good external circuitry.关键字单片机——microcontroller 音乐播放器――music player译码器——decoder20112111**班**号**单片机设计实验报告一.实验论证与比较1.1显示屏模块:实验中我们使用的是LCD 1602显示屏,其实物图如图一所示。
小学期单片机实验报告姓名:班级:学号:同组姓名:EMAIL:时间:2013/9/16-2013/9/27基于AVR单片机的电子琴制作目录基于AVR单片机的电子琴制作 (2)简介 (3)1.1课题名称 (3)1.2摘要 (3)前期准备 (3)2.1流水灯 (3)2.1.1 功能 (3)2.1.2 程序代码 (3)2.2蜂鸣器/按键蜂鸣器 (4)2.2.1 功能 (4)2.2.2 程序代码 (4)2.3 秒表计时器 (6)2.3.1 功能 (6)2.3.2 程序代码 (6)有关发声的基础知识 (8)设计过程 (8)4.1设计流程 (8)4.2 实验元器件 (9)4.3实验程序主要流程图 (9)4.4实验原理及原理图 (10)4.4.1实验原理 (10)4.4.2 原理图 (10)4.4.3各模块的设计与详解: (11)程序源代码及程序分析 (13)实验结果 (32)6.1 操作过程 (32)6.2 实验结果 (33)排错过程 (33)心得体会 (34)参考文献 (35)意见与建议 (35)简介1.1课题名称简易电子琴1.2摘要本实验设计制作一个基于单片机Atmega16的模拟电子琴。
能够通过键盘控制实现播放预存检测音乐,弹奏音符,储存弹奏音乐并播放,暂停及停止播放,上一曲下一曲等功能。
关键词:单片机,按键检测,预存播放,弹奏,储存,播放控制,可视化操作界面,电子琴前期准备在之前的学习中我们从未学习单片机,所以在确定选题前需要一定的学习和练习。
我们小组一共练习了3个工程:流水灯、按键蜂鸣器和秒表计时器,学会了使用AVR studio工作环境和WINAVR(GCC)编译器。
并且学会了下载程序到板上。
学会了I/O端口初始化、输入输出操作,通过端口控制LED序列、8段数码管、蜂鸣器,中断和定时的使用。
2.1流水灯2.1.1 功能学会I/O端口的初始化及通过端口控制LED,使得LED呈现流水灯效果,我们小组用的PB端口作为控制LED的端口,并且由于人眼频率和单片机频率的关系加了延迟函数,使得流水灯每个为1s2.1.2 程序代码int main(void){char temp; //用来存储当前A端口的输出unsigned int i,k; //循环变量DDRA=0xff; //将A端口设为输出PORTA=0b00000001; //初始化A端口,最开始第一个灯亮while(1) //主循环{temp = PORTA;PORTA=PORTA<<1;if(temp&0b10000000) //这段代码使得,最后一个等亮起后,又从第一个亮起{PORTA=PORTA | 0b00000001;}for(i=0;i<50;i++) //延时,约1秒钟{for(k=0;k<1000;k++);}}}2.2蜂鸣器/按键蜂鸣器2.2.1 功能按键蜂鸣器主要为了了解按键的使用,并且学会中断的应用2.2.2 程序代码蜂鸣器:#include <avr/io.h>int main(void){unsigned int i,k; //循环变量DDRB|=(1<<3); //对B端口的设置,使得pd3设置为输出PORTB &=~(1<<3); //初始时蜂鸣器不响while(1){PORTB ^=(1<<3); //设置蜂鸣器每隔一秒响一次for(i=0;i<50;i++){for(k=0;k<1000;k++);}}}按键蜂鸣器:#include<avr/io.h>int main(void){DDRA &=~(1<<6); //按钮6的设置PORTA |=(1<<6);DDRA &=~(1<<7); //按钮7的设置PORTA |=(1<<7);DDRA &=~(1<<2); //按钮2的设置PORTA |=(1<<2);DDRA &=~(1<<3); //按钮3的设置PORTA |=(1<<3);DDRB |=(1<<3);//蜂鸣器输出PORTB &=~(1<<3);DDRD =0xff;//灯的输出while(1){switch(PINA &0b11001100){case 0b11001100: //K1被按下{PORTD|=(1<<0); //LED0发光break;}case 0b11000000: //K2被按下{PORTD|=(1<<1); //LED1发光break;}case 0b10001000: //K3被按下{PORTD|=(1<<2); //LED2发光break;}case 0b01001000: //K4被按下{PORTB |=(1<<3); //蜂鸣器鸣响break;}default:{PORTB &=~(1<<3); //关蜂鸣器PORTD=0; //关灯break;}}}}2.3秒表计时器2.3.1 功能利用两位数码管,实现秒表计时的功能2.3.2 程序代码#include <avr/io.h>#include <avr/interrupt.h>int scandata[10]= //显示0—9个数的数组{0b01111111,0b00011001,0b10111110,0b10111011,0b11011001,0b11101011,0b11101111,0b00111001,0b11111111,0b11111011,};int main(void){DDRA=0xff;DDRB=0xff;DDRD=0b11110111;PORTA=0b00000001;PORTD=(1<<3);PORTB=0b00001000;MCUCR|=(1 << ISC11); //设置INT1中断GICR|=(1 << INT1);sei();unsigned int i,j,k,x,y,tmp;TCCR0|=(1<<CS01);while(1){for(i=0;i<60;i++){x=i/10,y=i%10; //用取商和取余来显示计数的数字PORTD=scandata[x];PORTB=scandata[y];tmp=PORTA; //流水灯的显示PORTA=PORTA << 1;if(tmp & (1<<7)){PORTA|=1;}TCNT0=55;for(k=0;k<3;k++) //一秒的延时for(j=0;j<10000;j++){while(!(TIFR & (1<<TOV0)));TCNT0=55;}}}}int cnt1,cnt2;SIGNAL(SIG_INTERRUPT1) //中断服务程序{while(1){for(cnt2=0;cnt2<100;cnt2++)for(cnt1=0;cnt1<20000;cnt1++);if(!(PIND & (1<<3)))//第二次按下按钮break;}}有关发声的基础知识声波是振动产生的。
单片机设计实验报告2013年小学期单片机设计实验报告题目:电子音乐发生器班级:班内序号:实验组号:学生姓名:指导教师:单片机设计实验报告单片机设计实验报告电子音乐发生器――2011211****班实验摘要此次本组制作的基于pic单片机的电子音乐发生器是具有液晶显示屏提示的音乐简单演奏、播放等功能的演示作品。
在目前很多简单音乐播放器件(如贺卡、礼品中的简单音乐单元)中,这样的简单电路和rom编程原理都是可以通用的,而且电路搭接、布局简单,十分适合电路原理学习、汇编语言编程零基础训练以及简单礼品核心部分制作参考。
整个系统中,微控制器采用了Microchip公司的PIC16F877,软件设计中涉及PORTB\PORTC\PORTD\PORTE用作普通数字I/O脚功能。
本实验用单片机PORTB\D接收来自键盘输入的指令信息,由此确定lcd液晶屏幕显示以及喇叭播放内容,再通过PORTC\D\E输出声音或字幕信息。
A b s t r a c tIn 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 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 program and a simple gift core part of the production reference. Throughout the system, the microcontroller uses Microchip's 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 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单片机设计实验报告一.实验论证与比较电子音乐发生器采用以Microchip公司的PIC16F877芯片为核心的简单控制系统,外部电路连接有喇叭、键盘、lcd液晶显示屏以及其他必要系统调节元件。
在将所要实现的功能用汇编语言加以实现并烧入rom中,作为实验进行过程中的硬件部分实现人员,我在本次实验中的主要工作是相关资料搜集、软件的入手使用、相关乐谱搜集及乐理知识简单介绍、实验记录与图形绘制和最终的硬件设计与焊接实现。
其中,困难的部分在于,理论上认为电子音乐发生器模拟真正乐器的仿真实现方法,与现实电路实现起来有着一定的差别,在长音、乐谱存储播放上,编程的同组搭档也费了不少脑筋和时间。
二.系统总体设计⒈系统模块总体框图⒉程序流程图单片机设计实验报告三.硬件连接⒈单片机与输出元件连接音乐发生器的声音输出单元十分简单,即pic16f877单片机的RC0端口与喇叭单元信号输入端以导线连接即可。
而单片机与lcd液晶显示则需要相应管脚与单片机RE0\1和RD0-7管脚(10个)以导线连接。
⒉单片机与输入元件连接输入元件中,键盘输入需单片机RD7-4和RB3-0端口(8个)相连。
硬件连接为我的最主要分工部分,其中,各部分的外围支持电路(如4M有源晶振、重置电路、喇叭的放大电路、电源供应电路等的详细情况请见下图,具体硬件原理图)单片机设计实验报告具体硬件原理图(设计、手绘,12组硬件部分负责学生:刘冰宇)四.调试过程⒈软件程序部分虽然软件部分是由本组队友完成的,但是基本原理上在平时的合作中我也学到了很多容易些的原理,而且在理解了程序控制和输出原理的基础上完成硬件设计和实现也就更加有利了。
首先,曲目存储形式,在参考资料“两只老虎”简谱的简单乐理解释之后,存储过程中由于1/4音符(该曲为“4/4拍”歌曲,即“以四分音符为一拍、每小节有4拍”,该曲中有设置1/4拍的必要,详细见附件“简谱1”)的原因导致程序曾多次需要重新编写。
单片机设计实验报告⒉硬件部分硬件部分设计实现由我负责,硬件部分的完成分为:电路图的设计、面包板上的电路实现、万能板上的电路实现三部分。
绘制基本电路图并根据电路图搭接面包板上的电路,但是由于面包板搭接存在不稳定性,电路时常会有输出失常的情况发生,在最后一次电路终于正常工作、各项参数均正常之后,听取实验室老师的建议,直接进行焊接,在考虑了手中现有万能板的条件之后,重新绘制适合于该万能板布局的电路图,并着手焊接和测试。
调试过程中的经验总结:1、市面上学生自行购买的万能板与教师下发的教学用万能板有着很大区别,其用法也有不同,教学用万能板有内置相连的焊点,这样的结构十分适合初次焊接整个电路的学生使用。
2、焊接很多管脚与输出元件的部分时,强烈建议焊接之后立即使用万用表测量焊点是否真正焊上,否则在电路出现问题时再查找将有可能浪费不必要的时间。
3、要在各种学习中贯彻“微积分”的思想,化整为零,分步击破,再将它们重新组合以求得整体效果的实现,同时,焊一部分就验一部分,焊接完成的部分及时检验,这样才能最大限度保证电路整体的正常工作。
(详细请参考本实验报告第七部分附录中的各部分分解硬件原理图)4、边分析边检查,猜想可能造成此现象的各种原因,逐个检验。
5、仔细读图,避免管脚接错这样的低级错误。
五.参考文献:PIC单片机实用教程——基础篇李学海北京航空航天大学出版社使用说明:的确是一本不可或缺的教材,本书列举了很多实用的具有实战意义的例子,单片机入门就是通过把这本书里的好例子一字一行敲进电脑去来实现的。
PIC单片机实用教程——提高篇李学海北京航空航天大学出版社使用说明:继承了前面基础篇的风格,例子也具有实战意义,主要讲RA、TMR2的使用和CCP模块的PWM脉宽调制功能。
六.实验心得体会单片机设计实验报告在本次小学期实验过程中,我们组(12组,A网)遇到的最严重的问题,但同时却并非实验本身学习问题,时间存在着客观限制,由于实验时间在期末考试之后,实验结束即意味着组员订票返乡,由于暑假铁路客运订票高峰一票难求的原因,我们组不得不非常无奈而遗憾地选择了一个相对简单的题目(本组软件负责的队友同学其实本来是非常中意于“单片机智能车”这个题目的,但是未能如愿为之尝试、努力和钻研,实在是一大遗憾)并以相对紧凑的实验节奏完成了实验,实验完成功能:LCD显示的电子音乐发生器,用时:30个教学单元(第11天完成验收)。
首先,总结实验中学到的知识与技能,本次实验中参考正规科研实验的模式编写并保存了“实验日记”和出于个人兴趣录制的实验中期检验的录像,虽然记录并不完整,但是还是有利于回忆经验教训的(此部分参见附录和报告附带文件夹)。
在硬件设计,尤其是万能板焊接前的具体电路设计阶段,由于不得不考虑手中现有材料的限制,曾经出现严重的元件错接在高电平上的事故,好在接通电源前及时发现并更正,否则该元件极有可能发生爆炸。
由于焊接工作台与测试区分离,在焊接过程中时常有忘记携带图纸、镊子等状况,不仅让实验习惯不好的我吃到了苦头,更是让我理解了实践过程中对人各方面能力综合考验的道理。
其次,总结实验中个人心得体会,实验中曾经遇到十分棘手的问题,如下实验日记:2013.6.29第一次理论课,实验介绍及题目引导2013.7.1进入实验室,试验箱介绍,尝试霹雳灯(下载成功未成功运行),尝试d盘中程序计数器(led灯显示计数数值)(下载、运行均成功)2013.7.2第二次理论课(讲解硬件),继续实验,实验设计报告编写、实验报告试写、题目权衡确定、其他组成果观摩与教师交流硬件支持问题、总结实验箱使用经验教训(尤其关于下载和实验箱电源接触不良与程序下载运行之间的关系,总结理论与实际差距问题)2013.7.3实验进入胶着状态,虽然仍然在不懈研究代码和硬件之间的关系,但一无所获……(上午),下午,电子音乐发生器程序输出端口暂定rc0。
2013.7.4由于突发不可抗力原因,实验节奏被迫打乱,开始系统学习汇编语言且进度不可控,上午理论学习,下午理论学习同时查阅资料,同组同学发现编程中对于二进制常数填写中00000000B不可用,需改用B’00000000’的形式,实现按键控制led发光二极管依照指单片机设计实验报告令发光。
晚上对程序进行重新修改后,基本实现按键控制指定led发光,同时控制喇叭发出c 大调七个音阶的声音,实验取得阶段性胜利。
面包板出现问题且查找原因整整2天无果,正是由于电子音乐发生器是一个并不困难的题目,才更加让人如鲠在喉、如芒在背。
现在回想起实验当时的困扰和不解,有如只身一人前往一处人烟稀少的“一线天”景点,但是不幸在通过石缝时整个人被卡在正中间,一转头都会擦到鼻子的狭窄和精神上的窒息感,此时唯有解决当前的问题才能艰难蹭出石缝……但是当终于从压迫身心的“石缝”中脱险时,才能发现天空是如此蔚蓝高远、回想起来心中感慨万千。
焊接过程中由于操作不当烫伤了手指,还目睹了旁边实验台烙铁使用不当导致的爆炸,这些都时刻提醒着我们实验过程中“规范使用、安全第一”,(旁边实验台爆炸时,一个火球从烙铁导线出喷出来,发出爆鸣声,随后发现烙铁导线完全炸断、插排断电保护)否则伤及自身、他人,造成安全隐患、财产损失、甚至伤亡都是有可能的。