北邮,单片机,实验报告,电子琴
- 格式:doc
- 大小:25.50 KB
- 文档页数:14
2011211118班24号史婧聪单片机设计实验报告2013年小学期单片机设计实验报告题目:电子音乐发生器班级:班内序号:实验组号:学生姓名:指导教师:2011211118班24号史婧聪单片机设计实验报告2011211118班24号史婧聪单片机设计实验报告电子音乐发生器实验摘要我们小组制作的电子音乐发生器涵盖存储音乐播放、键盘演奏、录音三个基本功能。
在功能设计上分为四个模块:液晶屏显示模块、键盘模块、音乐发生模块、录音模块。
四个模块首先独立编程再进行整合连接。
整个系统中,音乐发声部分采用了Microchip公司的PIC16F877芯片实现,采用PORTD 作为控制液晶屏显示的端口,用PORTB和PORTD作为控制键盘操作的端口,用PORTC6作为控制蜂鸣器发声的端口。
录音模块采用的是ISD4002语音芯片,结合单片机中SPI串行通信实现的。
概括来说,本实验采用单片机接受用户指令来控制各个模块,达到音乐播放、键盘演奏、录放音的功能。
A b s t r a c tThe electronic music generator that our group made accomplishes the following three basic functions: music storage, music playing and sound recording. The functional design can be separated into four main modules: the liquid crystal display module, the keyboard module, the music producing module and sound recording module. The four modules were at first programmed independently and integrated later.In this system, the sound production module is based on PIC16F877 produced by MICROCHIP company. We use PORTD as the port to control the LCD display module, PORTB and PORTD as the port to get the input from the keyboard, and PORTC6 to control the sound of the buzzer phone. When it comes to the tape recording module, we use ISD4002 chip, combined with SPI serial communication enbeded in the PIC16F877.In general, the music generator use the mmicrochip to get the user’s instructions and bring them to relevant modules and accomplish the functions of music storage, music playing and sound recording.关键字单片机——microcontroller 液晶屏显示——LCD display2011211118班24号史婧聪单片机设计实验报告键盘——key panel 发声——sound production录音——recording SPI串行通信——SPI serial communication一.实验论证与比较1.液晶屏显示模块在整个程序中,液晶屏用于为用户显示说明及指令,实现交互可视性。
Liaoning Normal University开放实验室项目研究论文题目:基于单片机的电子琴电路设计学院:物理与电子技术学院专业:电子信息工程班级序号:学号:学生姓名:指导教师:2011年12月基于单片机的电子琴电路设计学生:指导教师:物理与电子技术学院电子信息工程专业2009级摘要:电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。
它在现代音乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。
本文的主要内容是用AT89c51 单片机为核心控制元件,设计一个电子琴。
以单片机作为主控核心,与键盘、扬声器等模块组成核心主控制模块,在主控模块上设有16 个按键和扬声器。
本系统运行稳定,其优点是硬件电路简单,软件功能完善,控制系统可靠,性价比较高等,具有一定的实用和参考价值。
关键词:电子琴; AT89C51;编程;可控前言随着大规模集成电路的出现和发展,芯片生产厂家把中央处理器CPU,随机存取内存RAM,只读存储器ROM,定时器/计数器以及I/O接口电路等主要计算机部件,集成在一块集成电路芯片(硅片)上,形成芯片级计算机,称为单片微型计算机,直译为单片机。
单片机虽只是一个芯片,但从组成和功能上看,它已具有了微机系统的含义,又称微型处理部件MCU(Micro Controller Unit),单片机商品名称为微控制器单元。
虽然单片机出现的历史并不长,但发展十分迅猛,在集成度、功能、速度、可靠性、应用领域等全方位向更高水平发展。
目前单片机已用于工业控制、机电一体化设备、仪器仪表、信号处理、现代兵器、交通能源、商用设备、医疗设备及家用电器等各个领域,随着单片机性能的不断提高,它的应用将会更加广泛。
单片机技术发展非常快,所以目前的产品都致力于在功能全面、技术先进、操作简便、安全可靠、价格合理等方面进行仔细研究,精心设计;及时掌握最新的单片机技术,在条件允许的情况下,尽可能地利用最新的单片机技术来研制其应用系统,再利用单片机体积小、价格低、功能强等特点,以保证所设计的产品在未来的一段时间内仍具生命力。
简易电子琴实验报告引言:本实验旨在设计和制作一台基于微控制器的简易电子琴,通过按下不同键盘上的按键产生不同音调,从而实现音乐的演奏。
电子琴采用的主要器件为微控制器、音频发声模块以及按键电路。
一、实验目的1.学习和理解数字音乐技术的基本原理;2.掌握微控制器的编程方法和音频发声的实现技术;3.熟悉电子琴的工作原理和设计过程。
二、实验器材1. 单片机:Arduino Uno;2.音频发声模块;3.面包板;4.按键;5.电阻、电容等元件;6.连线和连接器。
三、实验步骤1. 将Arduino Uno连接至音频发声模块,确保连接正确并稳定。
2.在面包板上连接按键电路,将按键与单片机的引脚相连。
3. 编写Arduino Uno的程序,实现按键按下时的音调发声。
4.上电,并测试按键是否能够产生正确的音调。
四、实验结果经过实验得到的结果如下:1.按下不同按键,电子琴会产生不同的音调。
2.通过改变程序中相应按键的频率值,可以调整音调的高低。
五、实验分析1.通过对单片机的编程,实现了按键按下时的音调发声,成功地实现了电子琴的基本功能。
2.实验中使用了音频发声模块,利用其内置的DAC(数字模拟转换器)实现了数字音频信号的模拟输出。
六、实验总结和心得体会通过本次实验,我对电子琴的工作原理和设计过程有了更深入的了解。
学习和掌握了单片机的编程方法和音频发声的实现技术,提高了我的实验能力和动手能力。
同时,也对数字音乐技术有了初步的认识。
在今后的学习和工作中,我将继续深入研究和应用这些知识,为电子音乐的发展做出自己的贡献。
51单片机激光电子琴焊接实训报告
这次电路板焊接实习就是培养我们的动手能力,电子技术实习就要我们对电子元器件识别,相应工具的操作,相关仪器的使用。
对理论知识有了更深的理解,对平常学习工作的态度和能力培养有一定的认识,打好日后深入学习各种工作能力的基础。
在实习中,我锻炼了自己的动手技巧,提高了自己解决问题的能力。
比如做电路板组装与调试时,芯片触角的间距特别小,稍不留神,就焊在一起了,这就是在考验自己,所以我很认真的对待这些,争取做到一个错误都不出现。
通过十多天的实习,我觉得我在以下几个方面都有很大的提高:对电子工艺的理论有了初步的了解。
我了解到如何焊接普通元件与单片机电路的焊接与组成元件的作用等。
这些在以后的学习中有很大的启发作用,而且我学到了很多课堂上学不到的技巧和知识,了解了理论与实践的重要性,对自己在以后的学习和生活都有很大的意义。
最后,感谢老师给我们这次实习的机会,也感谢老师指导和带领我们参加这次实习,在这里真诚的说—句:老师,您辛苦了。
北京邮电大学数字电路与逻辑设计实验报告实验名称:简易钢琴游戏院系:电子工程学院专业:班级:姓名:学号:班内序号:一、实验任务及要求任务:设计制作一个简易钢琴游戏机。
基本要求:1、用8*8点阵进行游戏显示。
2、BTN1~BTN7七个按键模拟钢琴演奏时的“1 2 3 4 5 6 7”七个音符。
点阵的第一列对应音符“1”,第二列对应音符“2”,依次类推,地中高音自定。
3、光点在点阵第一行随机出现,逐点下落,下落速度为0.2秒/行。
如下图:4、在光点下落到点阵最后一行之前的过程中,如果按下与该列点阵相应的音符键,该光点消失,蜂鸣器演奏相应的音符声音,计分器加1。
如果在光点下落到最后一行依然没有进行相应的按键操作,该光点消失,计分器不加分。
计分器由数码管显示。
5、每隔1秒在点阵的不同列的第一行出现一个光点,如下图:6、游戏时间为30秒,数码管倒计时显示。
二、系统设计1、设计思路:简易钢琴游戏主要分为五个单元模块和一个连接模块:Divf:分频模块。
分出1hz,5hz,440hz,5Mhz等用于控制光点的下落、随机数的产生、30秒倒计时、点阵和数码管的扫描及产生其他频率的信号。
Buzz:蜂鸣器模块。
根据声音的不同频率,细化出对应“1 2 3 4 5 6 7”的七种频率,并与相应的按键对应。
Display:数码管模块。
将6段数码管分为两部分,分别控制倒计时和计分,加以扫描和控制。
LED:点阵模块。
控制光点的出现、随机数的产生、光点的换行,加以扫描和控制。
Main:主控制模块。
将每个主要模块之间的输入输出通过数学关系联系到一起。
比如:复位之后点阵和数码管都要重新启动;倒计时30秒结束后点阵关闭,计分器不再计分等。
Pianogame:用COMPONENT代码将每个模块联系起来的顶层程序。
2、系统结构框图3、点阵模块控制框图4、数码管模块控制框图5、模块间信息传递关系6、系统控制模块流程图7、状态转移图1、分频模块仿真:分析:在源代码中,分频系数高达50~500000,无法在仿真波形中体现出来。
1基础部分1.1设计任务按照给定电路原理图,进行单片机最小系统的焊接:包括单片机、开关、插排、复位电路和晶振电路,正确焊接后,电路可以进行程序的下载。
设计并焊接简单外围电路,包括:LED 与独立按键、蜂鸣器、双位数码管。
使用汇编或 C 语言编写程序,使本电路完成以下功能:LED 跑马灯、双位数码管对应计数,方式一(始终一个方向)、方式(左右循环),可准确确定周期 T。
每次第一个 LED 亮起的时候蜂鸣器响一声(t 秒)提示。
按键控制:一共三个按键分别实现以下功能暂停:检测该按键有效按下后,LED 和数码管暂停,再次检测按键按下后,继续执行当前循环;复位:检测该按键有效按下后,LED 和数码管归零重新开始以当前模式循环;模式转换:正常运行状态,检测该按键有效按下后,数码管显示不变,LED 显示从当前方式转换成另一方式继续执行。
1.2设计思路先设计好外围电路模块的原理图。
根据自己的板子的实际情况安排布线并依据原理图进行焊接。
再设计程序流程图,分别编写简单程序调试各个外围电路是否可以正常工作。
学习使用单片机程序开发环境,编译下载程序等。
比如:单独的跑马灯;双位数码管按秒计数;蜂鸣器 1s 一响;按键控制LED 点亮(8 个按键对应 8 个 LED)。
设计程序运行的状态图以及程序流程图,编写程序代码并调试。
1.5器件清单表1-1 器件清单(1)器件名称实物图片数量器件名称实物图片数量单片机STCS90C52RC 1 四角按键开关 4单排插针(4针) 1 六角自锁开关130pF瓷片电容2 10KΩ电阻 1晶振11.0592M1 导线若干10uf电解电容1 万能版 1 编程接口板 1 杜邦线 4 40脚IC座 1 LED(红色)8 双位数码管 1 三极管8050 3 1KΩ电阻14 排阻 11.6程序流程图图主程序流程图图数码管子程序1.7程序代码#include<reg52.h>#define uint unsigned int#define uchar unsigned charuchar code table[]={ 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};uchar code leds1[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; //P0口控制8位LEDuchar code leds2[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd};sbit le1=P3^5; //左边数码管位选sbit le2=P3^4; //右边数码管位选sbit feng=P3^7; //蜂鸣器控制位sbit key1=P2^0; //模式切换sbit key2=P2^1; //暂停和开始sbit key3=P2^2; //功能复位uint ti,count,shi1,ge1,k;uint flag=1;void delay() //延时固定时间{ int i,j;for(i=500;i>0;i--)for(j=100;j>0;j--);}void delayms(uint ms) //延时ms毫秒{int i,j;for(i=ms;i>0;i--)for(j=110;j>0;j--);}void keyscan(){if(key2==1){delayms(10);if(key2==1){while(key2) ;TR0=!TR0;P2=0x00;}}if(key1==1){delayms(10);if(key1==1){while(key1) ;flag=!flag; //flag=1为默认模式1,为0为模式2P2=0x00;}}if(key3==1){delayms(10);if(key3==1){while(key3);count=0;P0=0xfe;}}}void init(){P0=0xfe; //二极管P2=0x00; //按键le1=0;le2=0;feng=0;TMOD=0x01; //设置定时器1工作模式设置T0/T1 TH0=(65536-45872)/256; //给定时器装入初值TL0=(65536-45872)%256;EA=1; //打开中断ET0=1; //打开定时器中断TR0=0;}void display(uint shi,uint ge) //数码管扫描{ uint i,j;i=shi;j=ge;le1=0;le2=0;P1=table[i];le1=1;delayms(10);le1=0;P1=table[j];le2=1;delayms(10);}int main(){init();while(1){if(feng==1&&TR0==0&&k==0){delay();feng=0;}shi1=count/10;ge1=count%10;keyscan();display(shi1,ge1);}}void timer() interrupt 1{TH0=(65536-45872)/256; //定时时间为1s,公式TL0=(65536-45872)%256;ti++;if(ti==20) //每累加到20的时间为1秒{ti=0; //ti标志置0count++;if(count==100)count=0;if(flag==1){k=count%8;P0=leds1[k];if(k==0)feng=1;elsefeng=0;}else{k=count%14;P0=leds2[k];if(k==0)feng=1;elsefeng=0;}}}2提高部分2.1设计任务在基础项目的前提下设计电子琴,让电子琴可以播放简单的歌曲,可以用按键进行简单的弹奏。
第1篇一、实验目的1. 理解微机原理与接口技术的基本知识,掌握8086CPU的工作流程以及对外设的响应机制。
2. 学习可编程并行接口8255A、译码器74LS138、定时/计数器8253等接口器件的编程方法,以及CPU对外设的读写控制。
3. 理解整个计算机系统的工作方式和流程,提高动手实践能力。
二、实验内容本实验旨在利用8086CPU、8255A并行接口、74LS138译码器、8253定时/计数器等器件,设计并实现一个简易电子琴。
三、实验原理1. 8086CPU:作为电子琴的核心控制单元,负责处理按键输入、控制音调输出等任务。
2. 8255A并行接口:用于连接键盘、数码管等外围设备,实现数据的输入输出。
3. 74LS138译码器:将键盘的编码转换为CPU可识别的信号。
4. 8253定时/计数器:用于产生不同频率的方波信号,驱动蜂鸣器发出不同音调。
四、实验步骤1. 搭建电路:根据实验原理图,连接8086CPU、8255A、74LS138、8253等器件,并确保连接正确。
2. 编程实现:- 编写程序,实现按键扫描功能,读取键盘输入。
- 根据键盘输入,控制8253定时/计数器产生相应频率的方波信号。
- 将方波信号放大后驱动蜂鸣器发声。
- 利用数码管显示当前播放的音调。
3. 调试与测试:运行程序,测试电子琴的功能,确保按键输入与音调输出一致。
五、实验结果与分析1. 实验结果:成功搭建了简易电子琴电路,实现了按键输入与音调输出的功能。
2. 结果分析:- 通过实验,掌握了8086CPU的工作流程以及对外设的响应机制。
- 熟悉了8255A、74LS138、8253等接口器件的编程方法,以及CPU对外设的读写控制。
- 提高了动手实践能力,为以后的学习和工作打下了基础。
六、实验总结1. 实验收获:通过本次实验,加深了对微机原理与接口技术知识的理解,提高了动手实践能力。
2. 实验体会:实验过程中遇到了一些问题,如按键扫描不稳定、音调输出不准确等。
单片机原理及应用实验报告实验名称:电子琴设计组员:实验成绩:实验日期: 2013年6月17日实验地点: 3#北604实验报告一、实验目的以51单片机最小系统为核心,通过键盘获取按键信息,运用单片机定时器等部件实现蜂鸣器发声同时用数码管同步显示,同时该系统具有播放歌曲及选取按键输入高、中、低音的功能。
二、实验原理1、利用蜂鸣器作为发声部件。
2、两个数码管作为显示部件。
3、设置10个按键,实现高音、中音、低音的1、2、3、4、5、6、7的发音。
4、大部分功能通过软件实现。
软件的结构图如下单片机键盘电路显示电路蜂鸣器电路复位电路程序流程图如下:三、系统仿真图整体仿真图:开始初始化检测中断按键音乐播放程序按键扫描程序结束Y 发声程序是否有按键按下键值判断Y动态显示放声部分按键四、心得体会看似简单的题目,实际操作中,仍旧存在很多问题,尤其是在程序中的数码管显示的模块中,和键值的计算容易出问题。
五、源码附录//*******初始化数据*****//void init(void){speaker=0;//关蜂鸣器LED1=1;//LED2=0;EA=1;//开总中断TCON=0x01;//外部中断0设置为边沿触发EX0=1;//开外部中断0ET0=1;//开定时器0中断ET1=1;//开定时器1中断TMOD=0x11;//定时器0,1工作在定时状态,均为方式1 }#include<reg52.h>#define uint unsigned int#define uchar unsigned charsbit P1_0=P1^0;sbit P1_1=P1^1;sbit P1_2=P1^2;sbit P1_3=P1^3;sbit P1_4=P1^4;sbit P1_5=P1^5;sbit P1_6=P1^6;sbit P1_7=P1^7;sbit LED1=P2^6;sbit LED2=P2^7;sbit change=P3^2;sbit high=P3^5;sbit normal=P3^4;sbit low=P3^3;sbit P2_0=P2^0;sbit P2_1=P2^1;sbit speaker=P2^2;unsigned char i;unsigned char key,yin=0;uchar m,n;bit a=0;//a为change键的键值uchar seg[]={ 0x3F,/*0*/0x06,/*1*/0x5B,/*2*/0x4F,/*3*/0x66,/*4*/0x6D,/*5*/0x7D,/*6*/0x07,/*7*/0x7F,/*8*/0x6F,/*9*/0x37,/*N*///中音0x38,/*L*///低音0x76,/*H*///高音0x79 /*E*/};//共阴极数码管code unsigned char FH[]={ 0xFC,0xFC,0xFD,0xFD,0xFD,0xFD,0xFE,//中音0xF9,0xF9,0xFA,0xFA,0xFB,0xFB,0xFC,//低音的高8位0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFF,};// 音阶频率表低八位code unsigned char FL[]={ 0x8E,0xED,0x44,0x6B,0xB4,0xF4,0x2D,//中音0x21,0xDB,0x87,0xD7,0x68,0xE8,0x5B,//低音的低8位0x47,0x77,0xA2,0xB6,0xDA,0xFA,0x16,};code uchar star[]={1,2,3,1, 1,2,3,1, 3,4,5, 3,4,5, 5,6,5,4,3,1, 5,6,5,4,3,1, 1,12/*低音5*/,1, 1,12,1};code uchar shijian[]={4,4,4,4, 4,4,4, 4, 4,4,8, 4,4,8, 2,1,2,1,4,4, 2,1,2,1,4,4, 4,4,6, 4,4,6};void init(void);void music();void play();void seg1();void yinjie();/*********主程序*****////void main(){init();while(1){if(a==0)music();elseplay();}}//*******1ms延迟********//void delay(uint x){uint i,j;for(i=x;i>0;i--)for(j=340;j>0;j--);}//*******初始化数据*****//void init(void){speaker=0;LED1=1;LED2=0;EA=1;//开总中断TCON=0x01;//外部中断0设置为边沿触发EX0=1;//开外部中断0ET0=1;ET1=1;TMOD=0x11;//定时器0,1工作在定时状态,均为方式1}///******数码管动态显示*******/////void seg1(){P2_0=1;//关数码管1P2_1=0;//开数码管2P0=seg[n+1];//送数码管2的数据delay(15);//延时15msP2_1=1;//关数码管2P2_0=0;//开数码管1P0=seg[yin];//yin为high,normal,low的判断结果送数码管1的数据delay(15);//延时15ms}//********高低音的选择*******//////void yinjie(){if(normal==0){delay(5);if(normal==0){ yin=10;m=0;//返回10为seg[10]显示C}}if(low==0){delay(5);if(low==0){ yin=11;m=1;//返回11为seg[11]显示L}}if(high==0){delay(5);if(high==0){ yin=12;m=2;//返回12为seg[12]显示H}}if(yin==0){yin=13;}}//********外部中断0********//void inter0() interrupt 0{if(change==0){delay(5);while(change==0);a=~a;LED1=~LED1;LED2=~LED2;}}/////*******播放音乐程序*****//// void music(){TH0=FH[star[i]-1];TL0=FL[star[i]-1];while(a==0){if(i<32){TR0=1;delay(57*shijian[i]);i++;}if(i==32){i=0;}}}////*******演奏模式*****//////void play(){TR0=0;TR1=0;yinjie();P2_1=1;//关数码管2P2_0=0;//开数码管1P0=seg[yin];if(yin!=13&&a==1){if(P1_0==0){TH1=FH[7*m+n];TL1=FL[7*m+n];TR1=1;while(P1_0==0){ n=0;seg1();}}if(P1_1==0){ TH1=FH[7*m+n];TL1=FL[7*m+n];TR1=1;while(P1_1==0){ n=1;seg1();}}if(P1_2==0){ TH1=FH[7*m+n];TL1=FL[7*m+n];TR1=1;while(P1_2==0){ n=2;seg1();}}if(P1_3==0){TH1=FH[7*m+n];TL1=FL[7*m+n];TR1=1;while(P1_3==0){ n=3;seg1();}}if(P1_4==0){ TH1=FH[7*m+n];TL1=FL[7*m+n];TR1=1;while(P1_4==0){ n=4;seg1();}}if(P1_5==0){ TH1=FH[7*m+n];TL1=FL[7*m+n];TR1=1;while(P1_5==0){ n=5;seg1();}}if(P1_6==0){ TH1=FH[7*m+n];TL1=FL[7*m+n];TR1=1;while(P1_6==0){ n=6;seg1();}}}}//******定时器0中断******//////void timer0() interrupt 1{ TR0=0;TH0=FH[star[i]-1];TL0=FL[star[i]-1];speaker=~speaker;TR0=1;}//******定时器1中断******//////void timer1() interrupt 3{ TR1=0;TH1=FH[7*m+n];TL1=FL[7*m+n];speaker=~speaker;TR1=1;}。
VHDL硬件描述语言程序设计简易电子琴演奏器姓名:chi目录一、设计课题的任务要求 (3)二、系统设计 (4)三、仿真波形及波形分析 (7)四、源程序 (9)五、功能说明 (20)六、元器件清单及资源利用情况 (21)七、故障及问题分析 (22)八、总结和结论 (23)一、设计课题的任务要求基本要求:1、用8×8点阵显示“1 2 3 4 5 6 7”七个音符构成的电子琴键盘。
其中点阵的第一列用一个LED点亮表示音符“1”,第二列用二个LED点亮表示音符“2”,依此类推,如下图所示。
图1 点阵显示的电子琴键盘2、用BTN1~BTN7七个按键模拟电子琴手动演奏时的“1 2 3 4 5 6 7”七个音符。
当某个按键按下时,数码管显示相应的音符,点阵上与之对应的音符显示列全灭,同时蜂鸣器演奏相应的声音;当按键弹开时数码管显示的音符灭掉,点阵显示恢复,蜂鸣器停止声音的输出。
下图所示为按下BTN3按键时点阵的显示情况。
图2 按键按下后的点阵显示3、由拨码开关切换选择高、中、低音,并用数码管进行相应的显示。
4、通过按键BTN0进行复位,控制点阵显示图1的初始状态。
提高要求:1、可通过一个拨码开关进行手动/自动演奏的切换,并与点阵显示配合增加自动演奏乐曲的功能。
2、增加手动演奏的音符存储、播放功能。
二、系统设计1.设计思路简易电子琴的制作主要是利用不同频率的波来驱动蜂鸣器发出声响。
通过输入不同的音符来设置不同的分频系数,使得50MHz的主频分频出不同频率的波。
同时,演奏的音符还可以通过数码管和8*8点阵来动态显示。
根据系统设计要求,该电子琴设计采用自顶向下的设计方法。
整体的功能通过不同的底层模块配合来完成电子琴的功能。
底层模块主要包括乐曲自动演奏模块、分频预置值产生模块和数控分频模块,数码管显示模块,8*8点阵显示模块五部分组成。
用这种设计思路把整个系统分为了若干个模块,然后再在顶层文件中将各个模块组合在一起,从而体现出超、高速硬件描述语言VHDL的优势,关于提高要求中通过一个拨码开关进行手动/自动演奏的切换,并与点阵显示配合增加自动演奏乐曲的功能,我打算将一首曲子的音符储存在自动播放的数组里面,然后通过计数器来顺序播放储存的音符。
北邮数字逻辑课程设计_简易电子琴简易电子琴实验报告综合设计:程序编写:实验报告撰写:北京邮电大学计算机学院某人一.实验目的1.掌握较复杂逻辑的设计和调试。
2.掌握用VHDL语言设计数字逻辑电路。
3.掌握ispLEVER软件的使用方法。
4.掌握ISP器件的使用。
5.用途: 有电子琴的基本功能,可弹奏出简单的乐曲。
二.实验器材1.在系统可编程逻辑器件1032E2.示波器3.逻辑测试笔4.TEC-5实验系统三.实验容设计一个简易电子琴,有两种模式,既可以音阶弹奏,也可以自动播放乐曲。
要求音阶弹奏的时候,可以弹奏高音低音一共14个不同音符,自动播放乐曲的时候,要求可以按一定节奏自动播放一首预存在系统中的乐曲。
四.实验设计原理从试验系统外部接入一个时钟信号,对时钟信号进行分频,可以得到不同分频的脉冲信号。
当这个分频值设定为一定的数值时,就可以使试验系统的喇叭发出不同的音符,从而完成音阶演奏。
自动演奏时,除了对外部时钟进行分频得到不同的音符外,还需要通过时钟信号对节拍进行控制,设置该音乐最短的音符为基本单位,一步一步往后执行,根据某个音符的节拍数来确定执行时间,从而可以按照节奏将一段音乐自动演奏出来。
五.设计方案1.一共有14个琴键,表示中音的1-7到低音的1-7,按照电子琴的排列布局来安排琴键位置。
2.根据不同音符的频率,用多模计数器对时钟信号进行分频,得到特定的脉冲信号,为了使信号稳定,需要对其进行翻转得到2分频信号再输出。
3.综合原理图4.外部输入50kHz的时钟信号,根据下表用多模计数器对时钟信号进行分频,得到分频系数。
六.程序实现*********************************实体部分************************************* library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity Orgen isport(moderm:in std_logic;--模式选择,0为音阶自演奏模式,1为自动播放模式clk:in std_logic;--时钟信号Index:in std_logic_vector(13 downto 0);--琴键选择信号,1表示选择摸个琴键,共有14个琴键,可以选择14个音,分别是低音1-7和中音1-7 Code:out std_logic_vector(6 downto 0);--七段发光二极管编码,用于显示弹奏的音符high:out std_logic;--如果是中音,小灯亮,反之不亮tone0:inout integer range 0 to 2047;--分频系数result:inout std_logic--输出音频信号);end Orgen;*******************************结构体部分************************************architecture Orgen_Player of Orgen is--程序使用的是50kHz的时钟信号beginSearch:process(Index,clk,moderm)--Search进程,根据琴键选择信号得到不同的分variable step:integer range 0 to 2000;variable count2:integer range 0 to 2000;begin***************************音阶演奏模式部分********************************** if Moderm='0' then--手动音阶演奏模式case Index iswhen "00000000000001"=> tone0 tone0 tone0 tone0 tone0 tone0 tone0 tone0 tone0 tone0 tone0 tone0 tone0 tone0 tone0键信号,分配了不同的分频系数,为不同音名的发光二极管编码,同时调整高低音显示信号end case;end if;******************************自动演奏部分************************************ if (moderm='1') and (clk'event and clk='1') then--自动演奏模式--tone0防止影响if count2count2:=count2+1;--1秒输出1拍elsecount2:=0;case step iswhen 0=>tone0step:=step+1;when 1=>tone0step:=step+1;when 2=>tone0step:=step+1;when 3=>tone0step:=step+1;tone0step:=step+1;when 5=>tone0step:=step+1;when 6=>tone0step:=step+1;when 7=>tone0step:=step+1;when 8=>tone0step:=step+1;when 9=>tone0step:=step+1;when 10=>tone0step:=step+1;when 11=>tone0step:=step+1;when 12=>tone0step:=step+1;when 13=>tone0step:=step+1;when 14=>tone0step:=step+1;when 15=>tone0step:=step+1;--step不同,表示乐曲演奏到不同的位置,赋予不同的分频系数,然后step+1end case;end if;end if;end process;**************************发生进程,控制喇叭发声****************************** Made_Code:process(clk)--发声进程,发出不同的音频variable count1:integer range 0 to 2000;beginif clk'event and clk='1' thenif count1count1:=count1+1;--事先查好每个音名的频率,根据音频系数进行分频,得到是正确频率两倍的音elsecount1:=0;result音频信号end if;end if;end process;end Orgen_Player;七.基于QuartusII9.0的仿真实现1.仿真电路图2.仿真波形图八.基于TEC-5试验系统的实现效果1.音阶模式下,可以根据琴键的输入演奏低音1-7和中音1-7一共14个音符。
单片机课程设计报告电子琴一、选题背景随着数字技术的飞速发展和信息科学的快速推进,单片机作为信息处理的核心器件,正在得到越来越广泛的应用。
随着芯片技术的不断更新和改进,单片机应用领域的拓宽和深化,各行各业对单片机专业人才的需求也愈发迫切。
因此,在单片机课程的教学中,设计一些实用的小项目、小应用,既能提高学生的实践操作能力,又能激发其学习兴趣和学科热情,是非常有必要的。
二、课程目标通过设计电子琴这一实用项目,达到以下三个目标:(1)掌握单片机的基本知识和操作技巧。
在设计项目中,需要使用到很多单片机相关的知识和技术,如单片机的编程语言、端口连接、程序设计、调试样板、原理图设计等。
通过这些操作,学生可以对单片机的工作原理和编程方法有一个更加深入的理解。
(2)培养学生应用知识的能力。
设计电子琴,需要使用到单片机的定时器、PWM输出、按键检测、LED灯控制等相关知识。
学生需要将这些知识应用到实际操作中,才能真正掌握这些知识点,更好地了解单片机的工作原理和性能特点。
(3)激发学生的创造性思维和创新意识。
在设计电子琴的过程中,学生需要从众多课程内容和技能中选择并运用所学知识,遇到问题时需要有创造性解决的思维和意识。
此过程能够帮助学生提高独立思考和创新能力,将所学知识真正运用到实践中。
三、教学方法针对单片机课程设计中的三个目标,教学方法如下:1. 理论和实践相结合学生需要了解单片机的基本知识和操作技巧,包括单片机的性能特点、端口连接、程序设计、原理图设计等。
同时,为了更好地掌握实际操作,需要将理论知识与实践操作相结合,在课程中给予足够的操作机会和实践练习,让学生深刻感受到不同参数的变化对最终设备造成的影响。
2. 开放性思考学习单片机课程时,教师需要引导学生进行开放性思考。
鼓励学生发现问题、提出问题、寻找问题的解决方案,从而提高学生的创造性思维和创新意识。
3. 相互合作学习在课程设计中,可以采用分组方式,让学生互相合作、共同学习、共同探讨解决问题的方法和途径。
实验二十一电子琴模拟实验一、实验目的1、了解单片机系统发声原理2、进一步熟悉定时器编程方法3、进一步熟悉键盘扫描电路工作原理及编程方法二、实验说明1.利用定时器,可以发出不同频率的脉冲,不同频率的脉冲经喇叭驱动电路放大滤波后,就会发出不同的音调。
2.定时器按设置的定时参数产生中断,这一次中断发出脉冲低电平,下一次反转发出脉冲高电平.由于定时参数不同,就发出了不同频率的脉冲. 本实验中当有键按下,会发出连续脉冲,直到按键松开,才停止发音。
发完后继续检测键盘,如果键还按下,继续发音。
三、实验步骤利用实验仪上提供的键盘,使数字键1、2、3、4、5、6、7作为电子琴按键,按下即发出相应的音调。
用P3.2 口发出音频脉冲,驱动喇叭。
1、用8P数据线连接单片机最小应用系统1模块的 P1口到查询式键盘模块KEY1-KEY8口,用二号导线连接单片机最小应用系统1模块INT0(P3.2)口到扬声器模块的输入口。
2、用串行数据通信线连接计算机与仿真器,把仿真器插到单片机最小应用系统1模块的锁紧插座中,请注意仿真器的方向:缺口朝上。
3、打开Keil uVision2仿真软件,首先建立本实验的项目文件,接着添加“TH21_电子琴.ASM”源程序,进行编译,直到编译无误。
4、打开模块电源和总电源开关,点击开始调试按钮,点击RUN按钮运行程序。
5、实验现象:按查询式键盘的1~7键,扬声器发出高低不同的声音。
四、实验流程图及源程序1、源程序:PULSE EQU 10H ;脉冲PULSECNT EQU 50H ;脉冲计数TONEHIGH EQU 40H ;高音调TONELOW EQU 41H ;低音调TONE EQU 42H ;音调KEYBUF EQU 54HSPEAKER BIT P3.2ORG 0000HLJMP STARTORG 000BHLJMP TIMER0INTORG 0030HTIMER0INT: PUSH PSW ;定时中断CLR TR0MOV TH0, TONEHIGHMOV TL0, TONELOWSETB TR0MOV C, PULSEMOV SPEAKER,CCPL PULSEPOP PSWRETITONETABLE: DW 64578,64686,64778,64821DW 64898,64968,65029TESTKEY: MOV P1, #0FFHMOV A, P1CPL A ; 读入键状态RETKEYTABLE:DB 0FEH,0FDH,0FBH,0F7HDB 0EFH,0DFH,0BFH,07FH ; 键码定义GETKEY: MOV R6, #10ACALL DELAYMOV A,P1CJNE A, #0FFH, K01 ;确有键按下LJMP MLOOPK01: MOV R3, #8 ;8个键MOV R2, #0 ;键码MOV B, A ;暂存键值MOV DPTR, #KEYTABLEK02: MOV A, R2MOVC A, @A+DPTR ;从键值表中取键值CJNE A, B, K04 ;键值比较MOV A, R2 ;得键码INC ARETK04: INC R2 ;不相等,到继续访问键值表DJNZ R3, K02MOV A, #0FFH ;键值不在键值中,即多键同时按下 LJMP MLOOPDELAY: MOV R7, #0DELAYLOOP: DJNZ R7, DELAYLOOPDJNZ R6, DELAYRETSTART: MOV SP, #70HMOV TMOD, #01 ; TIMERMOV IE, #82H ; EA=1, IT0 = 1 MOV TONE, #0MLOOP: CALL TESTKEYJZ MLOOPCALL GETKEYMOV B, AJZ MLOOP ; = 0, < 1ANL A, #8JNZ MLOOP ; > 8DEC BMOV A, BRL A ; A = A*2MOV B, AMOV DPTR, #TONETABLEMOVC A, @A+DPTRMOV TONEHIGH, AMOV TH0, AMOV A, BINC AMOVC A, @A+DPTRMOV TONELOW, AMOV TL0, ASETB TR0MOV P1,#0FFHWAIT: MOV A, P1CJNE A, #0FFH, WAITMOV R6, #10ACALL DELAYCLR TR0LJMP MLOOPEND2.流程图五、实验思考题1、请思考实验是怎样在硬件与软件上实现发声的?2、本程序中断子程序的调用是怎样进行的?六、实验电路图本实验用到单片机最小应用系统1模块,查询式键盘模块, 扬声器模块。
《单片机原理及应用》综合课程设计电子琴的设计与实现学生姓名:张三、李四、王五、陈曦指导教师:张辉所在系:电子信息系所学专业:网络工程年级:2013级201 5年12 月目录序论 (2)1、课程设计总体说明 (3)1.1设计要求 (3)1.2设计方案 (3)1.2.1播放模块 (3)1.2.2 按键控制模块 (3)1.2.3录音模块 (3)1.3设计分析 (3)1.3.1概述 (3)1.3.2硬件框图 (4)1.4设计目的 (4)2、系统概要 (4)2.1扬声器 (4)2.2 AT89C51单片机 (5)2.2.1简介 (5)2.2.3管脚说明: (5)2.3 ISD1820录放音芯片 (6)2.3.1主要特性 (6)2.3.2封装图 (6)2.3.3引脚介绍: (6)3、系统实现 (7)3.1、电子琴实现功能流程图 (7)3.2、软件各模块内容 (7)3.2.1键盘扫描程序: (7)3.2.2功能转移程序: (8)3.2.3琴键处理程序: (9)3.2.4录音程序: (9)4、仿真调试 (12)5、硬件调试 (13)5.1总实物图 (13)5.2电子琴的设计与实现 (13)6、心得体会 (14)参考文献 (15)序论课程设计是课程教学中的一项重要内容,是达到教学目标的重要环节,是综合性较强的实践教学环节,它对帮助学生全面牢固地掌握课堂教学内容、培养学生的实践和实际动手能力、提高学生全面素质具有很重要的意义。
单片微型计算机是大规模集成电路技术发展的产物,属第四代电子计算机,它具有高性能、高速度、体积小、价格低廉、稳定可靠、应用广泛的特点。
它的应用必定导致传统的控制技术从根本上发生变革。
因此,单片机的开发应用已成为高科技和工程领域的一项重大课题。
电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。
它在现代音乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。
可编辑修改精选全文完整版.电路综合实验报告流水灯计时器和密码锁目录一、流水灯和计时器 (4)1.实验目的 (4)2.设计功能 (4)3.实验器材及功能 (4)4.电路连接图 (5)5.电路接口 (5)6.主要程序说明 (5)7.实验排错及改进 (9)二、密码锁 (10)1.设计目的 (10)(1)功能 (10)(2)用途 (10)2.设计功能 (10)(1)提示各项操作指令 (10)(2)密码正误识别 (11)(3)重置密码 (11)3.实验器材及功能 (12)4.硬件设计 (13)(1)电路原理图 (13)(2)电路实际连接图 (13)(3)系统工作流程图 (14)(4)各分块电路的详细情况【包括端口的接线】 (15)5.程序设计 (16)(1)键盘扫描程序 (16)(2)显示屏显示程序 (21)(3)滚动显示操作 (33)(4)键盘按键判断程序 (34)(5)主程序 (43)6.操作过程及运行结果 (44)7.实验排错及改进 (45)三、体会和建议 (45)四、实验分工 (47)附录 (47)一、流水灯和计时器1.实验目的这次实验是我第一次接触单片机,为了更加深入的了解ATmega16单片机的各种应用方法和工作原理,我们从最基础的实验入手,了解单片机的各个端口的作用和利用AVRStudio工具编写单片机可识别的C语言程序。
在观看了教学视频和查阅了说明书后,我们了解了单片机的各个端口,对端口进行一定输入输出练习。
为了将所学的单片机进行实际应用,我们通过流水灯和计时器这两个入门实验对所学知识进行实践检验。
2.设计功能(1)流水灯演示,依次点亮每一个发光二极管。
(2)用两个数码管做一个秒表计时器。
要求按下中断按键后能够暂停秒表计时,但不影响流水灯的运行,再次按键能够使秒表继续计时3.实验器材及功能4.电路连接图5.电路接口流水灯八个灯:PA0—PA7十位数码管:PB0—PB7(PB2未接)个位数码管:PD0—PD7(PD2未接)中断按键接:PD26.主要程序说明#include<avr/io.h>#include<avr/interrupt.h>char temp;volatile unsigned int cnt = 0;volatile unsigned int i = 1;volatile unsigned int key = 0;char shuzi[10] = //为计时器设置数字0-9数组{0b11110011,//00b11000000,//10b01101011,//20b11101010,//30b11011000,//40b10111010,//50b10111011,//60b11100000,//70b11111011,//80b11111010,//9};int main(void){DDRA = 0xff; //设置端口方向和初始状态DDRD = 0xff;DDRB = 0xff;TCNT0 = 55;MCUCR |= (1 << ISC01); //八分频GICR |= (1 << INT0);sei();TCCR0 |= (1 << CS01) | (1 << CS00);PORTA |= 0b00000001;PORTD = shuzi[0];PORTB = shuzi[0];while (1){TCNT0 = 55;cnt++;if (cnt >=60000){cnt = 0;temp = PORTA; //控制发光二极管PORTA = PORTA << 1;if (temp & 0b10000000) //控制流水灯电路{PORTA = PORTA | 0b00000001;}if(key==0){PORTB = shuzi[i / 10];PORTD = shuzi[i % 10];i++;if (i >= 60) //控制数码管的显示{i = 0;}}}}}SIGNAL(SIG_INTERRUPT0) //中断信号{key = !key;}7.实验排错及改进①错误:最初进行流水灯实验时,灯始终不亮原因和改进:发光二极管未接地,接地后,再连接上电阻限流,即可正常发光。
北京邮电大学数电综合实验报告实验名称:简易钢琴游戏学院:信息与通信工程姓名:班级:学号:班内序号:目录:一:设计课题的任务要求 (1)二:系统设计 (2)2.1 设计思路 (2)2.2 总体框图 (3)2.3 分块设计 (3)三:仿真波形及波形分析 (4)3.1 分频模块仿真 (4)3.2 点阵仿真 (5)3.3 数码管仿真 (7)3.4 总体仿真及分析 (8)四:源程序(略) (9)五:功能说明及资源利用情况 (9)5.1 时钟功能 (9)5.2 点阵及LED指示灯 (9)5.3 数码管 (9)5.4 总体功能及资源利用情况 (9)六:故障及问题分析 (10)七:总结和结论 (10)一:设计课题的任务要求任务:设计制作一个简易钢琴游戏机1、用8×8 点阵进行游戏显示2、BTN1~BTN7 七个按键模拟钢琴演奏时的“1 2 3 4 5 6 7”七个音符。
点阵的第一列对应音符“1”,第二列对应音符“2”,依此类推,低中高音自定。
3、光点在点阵第一行随机出现,逐点下落,下落速度为0.2 秒/行,如图1 所示。
图1 光点下落示意图4、在光点下落到点阵最后一行之前的过程中,如果按下与该列点阵相应的音符键,该光点消失,蜂鸣器演奏相应的音符声音,计分器加1。
如果在光点下落到最后一行依然没有进行相应的按键操作,该光点消失,计分器不加分。
计分器由数码管显示。
5、每隔1 秒在点阵的不同列的第一行出现一个光点,如图2 所示。
图2 点阵随机光点示意图6、游戏时间为30 秒,数码管倒计时显示。
提高要求:1、光点在点阵某行随机出现,然后逐点下落。
2、下落速度随机变化。
3、光点按照存储的乐曲顺序和速度的出现。
4、自拟其它功能。
提示:根据声乐知识,产生音乐的两个因素是音乐频率的持续时间,音乐的十二平均率规定,每两个八音度之间的频率相差一倍,在两个八音度之间,又可分为12个半音。
每两个半音的频率比为4。
另外,音名A(乐谱中的低音6)的频率为440HZ,音名B到C之间,E到F之间为半音,其余为全音。
电子琴实验报告一,实验目的1. 学习使用AT89S52单片机的功能,进行单片机编程,实现键盘演奏音乐的功能,进一步加深对于单片机功能实现过程的理解,强化单片机编程的能力。
2. 设计实现各种功能,包括对音乐的录音以及回访放能,要求能实现各种不同音调,在编程过程中必须考虑到各种细节,例如按键的干扰问题以及滞键。
二,实验要求基本要求:1:能够通过键盘演奏音符。
2:能够保存演奏的音乐,并实现回放。
3:有音调调整功能(如:C调,G调)。
4: 自由发挥其他功能.5: 要求有单片机硬件系统框图,电路原理图,软件流程图。
三,实验基本原理在单片机的设计中,电子琴是一个典型的例子,电子琴的实现需要用到单片机AT89S52、蜂鸣器等模块。
而在本次的实验中,我们利用简单的模块,实现了一个简单的电子琴功能,使用单片机可以驱动蜂鸣器发出声音,还可以控制其发出不同的音调,在一首歌曲里面,不同的音阶对应着不同的频率,在蜂鸣器的发音原理里面,我们只需要给蜂鸣器输入不同的脉冲,蜂鸣器就会发出对应的声音,因此,我们只需要弄明白音阶对应的脉冲就可以了。
在键盘控制中,每个按键对应不同的音阶,按键按下的时候,单片机程序里面都会执行一次程序判断是否有前一次的按键被按下,按键按下以后会控制单片机对蜂鸣器输出不同频率的方波,每种情况对应不同的音阶或者音调。
一首歌曲就是有不同的音阶构成,从而就实现了电子琴的功能。
四,实验设计分析针对要实现的功能,采用AT89S52单片机进行设计,AT89S52单片机是一款低功耗,高性能CMOS8位单片机,片内含4KB在线可编程(ISP)的可反复擦写1000次的Flash只读程序存储器,器件采用高密度、非易失性存储技术制造,兼容标准MCS- 51指令系统及80C51引脚结构。
这样,既能做到经济合理又能实现预期的功能。
在设计程序的时候,分析道电子的功能有三个模块构成,分别是单片机本身,键盘按键输入和蜂鸣器的功能响应。
北邮,单片机,实验报告,电子琴北邮单片机实验报告简易电子琴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液晶显示屏同时播放声音及显示文字,从而实现各种复杂音乐播放器的功能。
在嵌入式系统设计中,扬声器等是常用的输出设备,它具有使用方便、价格便宜、电路接口简单等优点,因此,在嵌入式系统中被广泛使用。
同时随着单片机的发展,其功能越来越强大,技术也越来越成熟,由此生产的音乐播放器越来越受到人们的喜爱。
因此,在技术性操作、社会因素和经济方面都具有良好的可行性。
我在实验中负责了全部软件设计,代码的编写,电路图的设计,以及部分硬件焊接。
其中,困难的部分在于,理论上认为电子音乐发生器模拟真正乐器的仿真实现方法,与现实电路实现起来有着一定的差别,在长音、乐谱存储播放上,以及存储功能的代码编写都有一定的难度。
二、系统总体设计1、系统模块总体框图2、系统整体流程图3、发音原理播放一段音乐需要的是两个元素,一个是音调,另一个是音符。
首先要了解对应的音调,音调主要由声音的频率决定,同时也与声音强度有关。
对一定强度的纯音,音调随频率的升降而升降;对一定频率的纯音、低频纯音的音调随声强增加而下降,高频纯音的音调却随强度增加而上升。
另外,音符的频率有所不同。
基于上面的内容,这样就对发音的原理有了一些初步的了解。
将相应音高的分频值存储在寄存器里,并将其与对应的按键进行关联,通过键盘扫描子程序将对应的分频值送入单音播放子程序即可产生相应频率的电压方波,再将其输出到喇叭即可产生对应的音高实现电子琴功能。
将音符按音高和音长直接存储在数据存储器里并与按键相关联,调用自动演奏子程序产生相应频率和时长的方波电压输出到喇叭即可。
三、硬件连接1、键盘和单片机的连接选择用4*4行列式键盘完成输入。
4*4行列式键盘又称为矩阵键盘,它是用4条I/O线作为行线,4条I/O线作为列线组成的键盘。
在行线和列线的每一个交叉点上,设置一个按键。
这样键盘中按键的个数是4×4个。
这种行列式键盘结构能够有效地提高单片机系统中I/O口的利用率。
2、LCD和单片机的连接采用型号为RT1602C的液晶显示屏,液晶显示屏的显示功能强大,可显示大量文字、图形,显示多样,清晰可见, 与传统的阴极射线管相比,液晶显示屏具有占用空间小、低功耗、低辐射、无闪烁、降低视觉疲劳等优点。
字符型液晶屏是一种用5*7点阵图形来显示字符的液晶显示器,根据显示的容量可以分为1行16个字、2行16个字、2行20个字等,最常用的为2篇二:北邮小学期AVR单片机电子琴实验报告小学期AVR单片机实验报告实验题目:基于ATmega16L单片机的电子琴设计学生姓名:学渣班级:2012XXXXXX班内序号:XX学号:2012XXXXXX日期:2014年9月30日同组同学:学渣目录:一、实验介绍 (3)1.1实验课题名称 (3)1.2实验平台 (3)1.3实验课题关键字..............................31.4实验摘要 (3)二、小组分工 (3)三、基本题目训练——流水灯与数码管秒表计时器 (3)3.1实现功能 (3)3.2程序代码分析 (4)3.3实验结果图片 (7)四、有关发声的基础知识 (7)五、电子琴的设计与测试 (9)5.1设计过程 (9)5.2实验所需元器件 (9)5.3实验程序主要流程图 (10)5.4实验原理及原理图 (10)5.4.1实验原理 (10)5.4.2原理图 (11)5.5各个模块的设计与讲解 (11)5.6程序源代码及程序分析 (14)5.7实验结果..................................... ..24六、排错过程............................ . (26)七、心得体会 (29)八、参考文献 (32)九、意见与建议 (33)一、实验介绍:1.1实验课题名称:基于ATmega16L单片机的电子琴设计1.2实验平台:本实验所用平台为AVR Studio 41.3实验课题关键字:ATmega16L型单片机电子琴键盘按键LCD液晶显示屏1.4实验摘要:本实验设计的电子琴拥有可视化操作界面,能实现即时弹奏音乐、音乐播放、音乐变速、音乐变调,并可以进行任意长度录音(通过按键记录音阶)等功能二、小组分工:? XXX负责电路硬件的连接和报告的撰写? XXX负责程序代码的编写? XXX负责资料的收集整理和查阅三、基本题目训练——流水灯与数码管秒表计时器3.1功能:八盏LED二极管按顺序依次循环点亮,实现流水灯的效果,同时两只数码管分别代表秒和十分之一秒,进行秒表计时,配有两个按键,实现计时过程中的暂停和继续,同时在按下暂停键的时候蜂鸣器会响一声。
利用ATmega16的寄存器中断功能,实现流水灯和数码管秒表计时器在实验板上同时工作,并且互相独立不影响。
3.2程序代码分析:#includeavr/io.h#include avr/interrupt.h char b[10] = {0b11111010,//00b00110000,//10b11011001,//20b01111001,//30b00110011,//40b01101011,//50b11101011,//60b00111000,//70b11111011,//80b01111011,//9};char a[10] = {0b11111010,//00b00110000,//10b11011001,//20b01111001,//30b00110011,//40b01101011,//50b11101011,//60b00111000,//70b11111011,//80b01111011,//9};volatile char temp;int main(void){DDRA = 0xff;PORTA = 0b10000000;DDRC = 0xff;DDRD = 0b11111011; DDRB = 0b11111011; TCNT0 = 55; PORTB = b[0]; PORTD = a[0]; PORTC |= (1 0); TCCR0 |= (1 CS01);int count1 = 0,count2 = 0,i;MCUCR |= (1 ISC00)|(1 ISC01);//INT0上升沿触发GICR |= (1 INT0);//使能INT0,INT1sei();//使能全局中断while(1){for(i = 0;i9000;i++){while(!(TIFR & (1TOV0)));TCNT0=55;}count1++;if(count1!=10)PORTD = a[count1];else{count2++;count1 = 0;if (count2 == 10)count2 = 0;temp = PORTA;PORTA = PORTA 1;if(temp & 0b00000001) {PORTA = PORTA | 0b10000000; }PORTB = b[count2];PORTD = a[0];}}}SIGNAL(SIG_INTERRUPT0)//INT0中断服务程序{int count3 = 0,count4=0;篇三:北邮小学期PIC单片机-蓝牙电子琴-实验报告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 thensent to the speakers can emit a certain frequency of sound. Interrupt to use bluetooth to real-time control MCU, thus realize the electric .单片机被称为单片微电脑或单片微型计算机。