北邮小学期AVR单片机电子琴实验报告

合集下载

电子琴的实验报告

电子琴的实验报告

电子琴的实验报告 WTD standardization office【WTD 5AB- WTDK 08- WTD 2C】单片机课程设计设计题目电子琴指导老师:苏参与实验者: moxiaoxiao专业:统本电信0801地点:3#楼北楼605电子琴一.设计目的:(1).培养综合运用知识的能力(2).朋友查阅资料,使用工程设计标准及编写设计文档的能力.(3).掌握单片机应用系统的设计方法.(4).提高计算机绘图能力二.设计任务:利用DP51PROC实验系统上的定时器/计数器,按键和蜂鸣器单元。

用单片机I/O口线控制蜂鸣器发出不同的音调,程序检测按键状态,7个按键中某一键按下时,蜂鸣器对应标称音阶.三.设计与调试环境KEIL uVision2 是众多单片机应用开发软件中优秀的软件之一,它支持众多不同公司的 MCS51 架构的芯片,它集编辑,编译,仿真等于一体,同时还支持,PLM ,汇编和 C 语言的程序设计,它的界面和常用的微软VC++的界面相似,界面友好,易学易用,在调试程序,软件仿真方面也有很强大的功能。

1:按下面的步骤建立一个项目:图 1-4 选取芯片图 1-5 新建程序文件(1)点击图1-5 中的 3 保存新建的程序,也可以用菜单 File-Save 或快捷键 Ctrl+S 进行保存。

因是新文件所以保存时会弹出类似图1-3 的文件操作窗口,我们把第一个程序命名为,保存在项目所在的目录中,这时程序单词有了不同的颜色,说明 KEIL 的 C 语法检查生效了。

如图1-6 鼠标在屏幕左边的 Source Group1 文件夹图标上右击弹出菜单,在这里可以做项目中增加减少文件等操作。

我们选“Add File to Group‘SourceGroup 1’”弹出文件窗口,选择刚刚保存的文件,按 ADD 按钮,关闭文件窗,程序文件已加到项目中了。

这时在 Source Group1 文件夹图标左边出现了一个小+号说明,文件组中有了文件,点击它可以展开查看。

北邮,单片机,实验报告,电子琴

北邮,单片机,实验报告,电子琴

北邮,单片机,实验报告,电子琴北邮单片机实验报告简易电子琴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液晶显示屏同时播放声音及显示文字,从而实现各种复杂音乐播放器的功能。

电路综合实验实验报告 基于Amage16 电子琴 北邮

电路综合实验实验报告 基于Amage16 电子琴 北邮

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)//延迟函数单位为毫秒,用于在按键按下后提供延迟响应滤除误按的影响。

单片机电子琴的实验报告

单片机电子琴的实验报告

姓名:班级:学号:小班学号:同组姓名:电子邮件:实验课题:基于AVR单片机电子琴的制作实验日期:2013.09.02—2013.09.15目录:一、实验简介1.1实验目的 (4)1.2实验关键词 (4)1.3基础知识 (4)二、实验器材2.1核心部件:ATmega16单片机 (5)2.2电路元件 (6)2.3管脚说明 (6)三、实验原理3.1实验原理图 (7)3.2实验流程图 (8)3.3实物效果图 (8)四、操作过程与运行结果4.1操作过程示意图 (9)4.2电子琴系统主要部分 (11)4.3具体操作过程 (11)4.4运行结果 (12)五、实验中的排错、体会与建议5.1调试与排错过程 (12)5.2体会与建议 (14)5.3小组分工 (15)5.4参考文献 (15)六、附录6.1流水灯实验 (16)6.2蜂鸣器实验 (17)6.3秒表实验 (18)6.4简易交通灯实验 (25)6.5电子琴源代码 (30)一、实验简介1.1实验目的通过设计一个模拟电子琴系统熟悉ATmega16单片机的使用及其基本功能。

使其能够通过键盘控制实现播放预存音乐,弹奏、储存弹奏音乐,变速播放,暂停及继续播放,停止播放功能。

1.2实验关键词按键检测预存播放弹奏储存变速暂停停止1.3基础知识声波是振动产生的。

频率即表示每秒钟振动的次数,采用CTC方式时avr 单片机通过特定的端口(PD4及PD5)输出一定频率的方波,TCCR1A设为比较匹配时OC1A/OC1B电平取反,TCCR1B的计数上限为OC1A,根据公式OCnA=f/2N(1+OCRnA)计算出7个频率音阶所需的OCR1A,则只需将喇叭接在PD4或PD5,通过程序控制端口输出特定频率的方波波形(发声使用正弦波最好,方波效果稍次但影响不大),喇叭就会发出七种不同的声音,依照人听觉分辨7个音阶分为三组,分别为高,中,低音阶频率,经计算可得,当OCR1A=(8000000/musicmem[i]-1)时,{131,147,165,175,196,220,247}存放低音阶频率,{262,294,330,349,392,440,494}存放中音阶频率,{524,588,660,698,784,880,988}则存放高音阶频率,所以需要定义三个数组存放各音阶的频率值。

北邮小学期PIC单片机-蓝牙电子琴-实验报告

北邮小学期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 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 .单片机被称为单片微电脑或单片微型计算机。

电子琴的实验报告

电子琴的实验报告

单片机课程设计设计题目电子琴指导老师:苏参与实验者:moxiaoxiao 专业:统本电信0801 地点:3#楼北楼605一.设计目的:(1).培养综合运用知识的能力(2).朋友查阅资料,使用工程设计标准及编写设计文档的能力.(3).掌握单片机应用系统的设计方法.(4).提高计算机绘图能力二.设计任务:利用DP51PROC 实验系统上的定时器/计数器,按键和蜂鸣器单元。

用单片机I/O 口线控制蜂鸣器发出不同的音调,程序检测按键状态,7 个按键中某一键按下时,蜂鸣器对应标称音阶.三.设计与调试环境KEIL uVision2 是众多单片机应用开发软件中优秀的软件之一,它支持众多不同公司的MCS51 架构的芯片,它集编辑,编译,仿真等于一体,同时还支持,PLM ,汇编和 C 语言的程序设计,它的界面和常用的微软VC++ 的界面相似,界面友好,易学易用,在调试程序,软件仿真方面也有很强大的功能。

1:按下面的步骤建立一个项目:图1- 4 选取芯片图1- 5 新建程序文件(1)点击图1-5 中的 3 保存新建的程序,也可以用菜单File -Save 或快捷键Ctrl+S 进行保存。

因是新文件所以保存时会弹出类似图1- 3 的文件操作窗口,我们把第一个程序命名为,保存在项目所在的目录中,这时程序单词有了不同的颜色,说明KEIL 的 C 语法检查生效了。

如图1- 6 鼠标在屏幕左边的Source Group1 文件夹图标上右击弹出菜单,在这里可以做项目中增加减少文件等操作。

我们选“ Add File t o Group ‘ SourceGroup 1”'弹出文件窗口,选择刚刚保存的文件,按ADD 按钮,关闭文件窗,程序文件已加到项目中了。

这时在Source Group1 文件夹图标左边出现了一个小+ 号说明,文件组中有了文件,点击它可以展开查看。

图1- 6 把文件加入到项目文件组中编译程序(2)进入调试模式,软件窗口样式大致如图1-8 所示。

电子琴实训报告

电子琴实训报告

单片机应用技术实训报告一、实训目的:通过单片机的硬件和软件设计、安装、调试、整理资料等环节,初步掌握工程设计方法和组织实践的基本技能,逐步熟悉开展科学实践的程序和方法。

二、实训时间:15周~16周三、实训内容:单片机设计电子琴1.原理图(Protel)2.PCB3.软件调试四、-实训步骤:1.分析、绘制原理图;2.生成、设计PCB板3.用Proteus绘制原理图;4.编写C程序;5.用Proteus仿真调式。

五、结果分析:设计思路:单片机电子琴设计时,最小系统是必不可少的,按键比较多,为了节约I/O口,按键采用了4*4矩阵式按键,输出是通过P1口的音频放大电路输出;在编程序时,先要确定按下一个按键就会有一个对应的音输出,就想到要用到按键识别程序,因为有12个按键,就用到了按键扫描程序,随后又加上了消抖的函数,延时函数,又通过数组,设定了按键的频率和数码管的值,使得按键按下会有对应的音和对应的数值输出。

(1)原理图电路结构:电路由芯片at89c51,最小系统复位电路和时钟脉冲电路,4*4距阵试按键,音频放大电路构成。

电路原理:由按键电路按键按下,通过芯片8051经过脉冲电路输入声音,通过三极管放大电路放大声音输出。

(2)PCB板设计PCB板,区分好电源线和普通导线的粗细,要注意要将电源线和地线设置的粗一点,大概是普通导线的3倍,在放置时注意复位电路和晶振和芯片近一点,元件位置排布好,避免出现绿色重叠的线,在最后要DRC规则检查。

(3)Proteus原理图电路分析:将原理图绘制好,将编好的程序放进at89c51单片机里,Proteus就可以对电路进行仿真,按键扫描程序开始进行扫描按键,当系统扫描到键盘上有键被按下,则快速检测出是哪一个键,然后单片机的定时器被启动,发出一定频率的脉冲,该频率的脉冲经喇叭驱动电路放大滤波后,就会发出相应的音调,并数码显示管显示相应的数值。

控制键盘的SW-0~SW-11十二个键能发出十二个不同的音调,按下按键发声,松开延时一段时间停止。

电子琴单片机实训报告

电子琴单片机实训报告

单片机设计与制作实训报告题目:电子琴系别: xx系班级: xx班姓名: xxx学号: 123456789指导老师:xxx实训时间:一周x年x月xx日1、实训目的:熟悉单片机使用方法及领域,软硬件结合掌握单片机综合应用糸统设计和调试的方法,2、设计要求:电子琴有九个按键,其中有八个按键分别对应八个乐谱中的基本音符,第九个按键为自动播放按键,当按下此键即自动播放歌曲直到播放歌曲直到歌曲结束或按下音符键即停止播放音乐。

3、开发环境及简介:1.系统概述Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。

用过汇编语言后再使用C来开发,体会更加深刻。

Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows 界面。

另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。

在开发大型软件时更能体现高级语言的优势。

4、实训器件:1. AT89C51 1个2. 按键 9个3. PNP三极管 1个4. 4.7K电阻 1个5. 10k电阻 1个6. 无源蜂鸣器 1个7. 电解电容 1个8. 30pF磁片电容 2个9. 晶振 1个4.1主要元器件简介(1)AT89C51单片机AT89C51是一种带4K字节闪存可编程可擦除只读存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS8位微处理器,俗称单片机。

单片机的可擦除只读存储器可以反复擦除1000次。

该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。

由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

单片机电子琴实训报告

单片机电子琴实训报告

一、实训目的1. 熟悉单片机的基本原理和编程方法。

2. 学习电子琴的原理和结构。

3. 掌握基于单片机的电子琴设计方法。

4. 培养动手实践能力和创新意识。

二、实训内容1. 单片机原理与编程2. 电子琴原理与结构3. 单片机电子琴设计4. 单片机电子琴制作与调试三、实训过程1. 单片机原理与编程在实训初期,我们学习了单片机的基本原理和编程方法。

单片机是一种集成了CPU、存储器、输入/输出接口等功能的微型计算机,具有体积小、功耗低、成本低等特点。

我们学习了51系列单片机的结构、指令系统、程序设计方法等。

2. 电子琴原理与结构电子琴是一种通过电子电路发出不同音阶声音的乐器。

我们学习了电子琴的原理和结构,包括音源模块、键盘模块、音量控制模块等。

3. 单片机电子琴设计在设计阶段,我们根据所学知识,设计了基于单片机的电子琴。

具体如下:(1)硬件设计电子琴的硬件主要由单片机、键盘、蜂鸣器、音量控制模块等组成。

我们选择了STC89C51单片机作为核心控制单元,键盘采用矩阵键盘,蜂鸣器用于发出声音,音量控制模块用于调节音量。

(2)软件设计软件设计主要包括以下几个部分:1)初始化:设置单片机的工作模式、初始化定时器、初始化键盘扫描等。

2)键盘扫描:检测键盘是否被按下,并读取按键值。

3)音阶生成:根据按键值计算对应的频率,通过定时器产生PWM信号,驱动蜂鸣器发出声音。

4)音量控制:根据音量控制模块的输入,调节PWM信号的占空比,实现音量控制。

5)音乐播放:存储一首或多首歌曲,通过键盘控制播放、暂停、停止等操作。

4. 单片机电子琴制作与调试在制作阶段,我们根据设计方案,搭建了电子琴的硬件电路,并编写了相应的程序。

在调试过程中,我们遇到了以下问题:(1)键盘扫描不稳定:经过分析,发现是由于按键抖动引起的。

我们通过软件去抖动的方法解决了这个问题。

(2)音阶不准确:经过分析,发现是由于定时器设置不当引起的。

我们调整了定时器的计数值,使音阶更加准确。

单片机实验报告_电子琴

单片机实验报告_电子琴

随着科技的飞速发展,单片机技术已成为现代电子技术的重要分支。

为了更好地学习和掌握单片机编程及应用,我们设计并实现了一款基于单片机的简易电子琴。

本实验旨在通过设计一个简易电子琴,让学生深入了解单片机的原理和应用,提高动手实践能力。

二、实验目的1. 掌握单片机的基本原理和编程方法。

2. 学会使用定时器、中断、键盘扫描等技术。

3. 了解电子琴的工作原理和制作方法。

4. 培养学生的创新意识和团队协作能力。

三、实验原理本实验采用STC12C5A32S2单片机作为核心控制单元,通过定时器产生方波信号,驱动蜂鸣器发出不同频率的声音,实现电子琴的演奏功能。

具体原理如下:1. 单片机原理:STC12C5A32S2单片机是一款高性能、低功耗的单片机,具有丰富的片上资源,如定时器、中断、串口等。

2. 定时器:定时器用于产生固定频率的方波信号,驱动蜂鸣器发出不同频率的声音。

通过调整定时器的计数值,可以改变方波信号的频率,从而改变音调。

3. 中断:中断技术用于实现按键扫描功能。

当按键被按下时,单片机响应中断,读取按键状态,并产生相应的音调。

4. 键盘扫描:键盘扫描技术用于检测按键状态。

通过扫描键盘矩阵,可以判断哪个按键被按下,并产生相应的音调。

四、实验内容1. 硬件设计:主要包括单片机、蜂鸣器、键盘、电阻、电容等元器件。

将元器件按照电路图连接,形成电子琴的硬件电路。

2. 软件设计:主要包括主程序、定时器中断服务程序、按键扫描程序等。

通过Keil C编程,实现电子琴的演奏功能。

3. 调试与测试:对电子琴进行调试和测试,确保其能够正常工作。

1. 搭建电路:按照电路图连接元器件,形成电子琴的硬件电路。

2. 编写程序:使用Keil C编写主程序、定时器中断服务程序、按键扫描程序等。

3. 编译程序:将编写好的程序编译成HEX文件。

4. 烧录程序:将编译好的HEX文件烧录到单片机中。

5. 调试与测试:使用万用表测试电路是否正常工作,并对程序进行调试,确保电子琴能够正常演奏。

avr单片机实验报告

avr单片机实验报告

avr单片机实验报告
《AVR单片机实验报告》
实验目的:通过对AVR单片机的实验,掌握单片机的基本原理和应用,提高对单片机的理论和实践能力。

实验内容:
1. 熟悉AVR单片机的基本结构和工作原理;
2. 学习AVR单片机的编程语言和开发工具;
3. 进行LED灯控制、蜂鸣器控制、数码管显示等实验;
4. 学习单片机的输入输出控制和中断处理;
5. 完成一个简单的单片机应用项目。

实验过程:
1. 阅读AVR单片机的相关资料,了解其基本原理和编程语言;
2. 使用开发工具进行单片机程序的编写和调试;
3. 连接实验电路,进行LED灯、蜂鸣器和数码管的控制实验;
4. 学习单片机的输入输出控制和中断处理,编写相应的程序进行实验;
5. 完成一个简单的单片机应用项目,如温度检测、光敏控制等。

实验结果:
1. 成功掌握了AVR单片机的基本原理和编程语言;
2. 完成了LED灯、蜂鸣器和数码管的控制实验;
3. 熟练掌握了单片机的输入输出控制和中断处理;
4. 成功完成了一个简单的单片机应用项目。

实验总结:
通过本次实验,我深刻理解了AVR单片机的工作原理和应用方法,提高了对单片机的理论和实践能力。

在今后的学习和工作中,我将继续深入学习单片机技术,不断提升自己的专业能力。

单片机课程设计报告电子琴

单片机课程设计报告电子琴

单片机课程设计报告电子琴一、选题背景随着数字技术的飞速发展和信息科学的快速推进,单片机作为信息处理的核心器件,正在得到越来越广泛的应用。

随着芯片技术的不断更新和改进,单片机应用领域的拓宽和深化,各行各业对单片机专业人才的需求也愈发迫切。

因此,在单片机课程的教学中,设计一些实用的小项目、小应用,既能提高学生的实践操作能力,又能激发其学习兴趣和学科热情,是非常有必要的。

二、课程目标通过设计电子琴这一实用项目,达到以下三个目标:(1)掌握单片机的基本知识和操作技巧。

在设计项目中,需要使用到很多单片机相关的知识和技术,如单片机的编程语言、端口连接、程序设计、调试样板、原理图设计等。

通过这些操作,学生可以对单片机的工作原理和编程方法有一个更加深入的理解。

(2)培养学生应用知识的能力。

设计电子琴,需要使用到单片机的定时器、PWM输出、按键检测、LED灯控制等相关知识。

学生需要将这些知识应用到实际操作中,才能真正掌握这些知识点,更好地了解单片机的工作原理和性能特点。

(3)激发学生的创造性思维和创新意识。

在设计电子琴的过程中,学生需要从众多课程内容和技能中选择并运用所学知识,遇到问题时需要有创造性解决的思维和意识。

此过程能够帮助学生提高独立思考和创新能力,将所学知识真正运用到实践中。

三、教学方法针对单片机课程设计中的三个目标,教学方法如下:1. 理论和实践相结合学生需要了解单片机的基本知识和操作技巧,包括单片机的性能特点、端口连接、程序设计、原理图设计等。

同时,为了更好地掌握实际操作,需要将理论知识与实践操作相结合,在课程中给予足够的操作机会和实践练习,让学生深刻感受到不同参数的变化对最终设备造成的影响。

2. 开放性思考学习单片机课程时,教师需要引导学生进行开放性思考。

鼓励学生发现问题、提出问题、寻找问题的解决方案,从而提高学生的创造性思维和创新意识。

3. 相互合作学习在课程设计中,可以采用分组方式,让学生互相合作、共同学习、共同探讨解决问题的方法和途径。

单片机实验报告 电子琴

单片机实验报告 电子琴

单片机实验报告电子琴单片机实验报告电子琴引言:电子琴是一种流行的乐器,它通过电子元件产生声音,具有丰富的音色和音效。

在本次实验中,我们使用单片机来设计和制作一个简单的电子琴,通过按键触发不同的音调,实现基本的音乐演奏功能。

本文将介绍电子琴的原理、设计过程和实验结果。

一、原理电子琴的原理是基于音频合成技术,通过控制不同频率的声音波形来产生不同的音调。

而单片机作为电子琴的控制核心,负责接收按键信号,并通过输出引脚控制声音的发声。

具体来说,单片机通过读取按键的状态,判断按键是否按下,并根据按键的不同触发相应的音调发声。

二、设计过程1. 硬件设计在硬件设计方面,我们需要准备以下元件:单片机、按键、蜂鸣器、电阻、电容等。

首先,将按键连接到单片机的输入引脚上,以便检测按键的状态。

然后,将蜂鸣器连接到单片机的输出引脚上,以便通过控制引脚输出高低电平来实现声音的发声。

最后,根据需要添加电阻和电容等元件,以保证电路的稳定性和正确性。

2. 软件设计在软件设计方面,我们需要使用单片机的编程语言来实现电子琴的功能。

首先,我们需要设置单片机的输入引脚和输出引脚,并定义按键的状态和蜂鸣器的控制信号。

然后,我们需要编写程序来实现按键的检测和音调的控制。

具体来说,当按键按下时,单片机会读取按键的状态,并根据不同的按键触发不同的音调,同时控制蜂鸣器的输出信号,以实现声音的发声。

三、实验结果在实验过程中,我们成功地设计和制作了一个简单的电子琴。

通过按下不同的按键,我们可以听到不同的音调发声,从而演奏出简单的音乐。

实验结果表明,我们设计的电子琴具有良好的音效和音色,能够满足基本的音乐演奏需求。

结论:通过本次实验,我们深入了解了电子琴的原理和设计过程,并成功地制作了一个简单的电子琴。

通过单片机的控制,我们可以实现按键触发不同音调的发声,从而演奏出简单的音乐。

电子琴作为一种流行的乐器,具有广泛的应用和发展前景。

通过不断的学习和实践,我们相信可以设计出更加复杂和高级的电子琴,为音乐爱好者提供更多的乐器选择和音乐表达方式。

北邮小学期AVR单片机电子琴实验报告

北邮小学期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二极管按顺序依次循环点亮,实现流水灯的效果,同时两只数码管分别代表秒和十分之一秒,进行秒表计时,配有两个按键,实现计时过程中的暂停和继续,同时在按下暂停键的时候蜂鸣器会响一声。

电子琴实验报告

电子琴实验报告

电子琴实验报告一,实验目的1. 学习使用AT89S52单片机的功能,进行单片机编程,实现键盘演奏音乐的功能,进一步加深对于单片机功能实现过程的理解,强化单片机编程的能力。

2. 设计实现各种功能,包括对音乐的录音以及回访放能,要求能实现各种不同音调,在编程过程中必须考虑到各种细节,例如按键的干扰问题以及滞键。

二,实验要求基本要求:1:能够通过键盘演奏音符。

2:能够保存演奏的音乐,并实现回放。

3:有音调调整功能(如:C调,G调)。

4: 自由发挥其他功能.5: 要求有单片机硬件系统框图,电路原理图,软件流程图。

三,实验基本原理在单片机的设计中,电子琴是一个典型的例子,电子琴的实现需要用到单片机AT89S52、蜂鸣器等模块。

而在本次的实验中,我们利用简单的模块,实现了一个简单的电子琴功能,使用单片机可以驱动蜂鸣器发出声音,还可以控制其发出不同的音调,在一首歌曲里面,不同的音阶对应着不同的频率,在蜂鸣器的发音原理里面,我们只需要给蜂鸣器输入不同的脉冲,蜂鸣器就会发出对应的声音,因此,我们只需要弄明白音阶对应的脉冲就可以了。

在键盘控制中,每个按键对应不同的音阶,按键按下的时候,单片机程序里面都会执行一次程序判断是否有前一次的按键被按下,按键按下以后会控制单片机对蜂鸣器输出不同频率的方波,每种情况对应不同的音阶或者音调。

一首歌曲就是有不同的音阶构成,从而就实现了电子琴的功能。

四,实验设计分析针对要实现的功能,采用AT89S52单片机进行设计,AT89S52单片机是一款低功耗,高性能CMOS8位单片机,片内含4KB在线可编程(ISP)的可反复擦写1000次的Flash只读程序存储器,器件采用高密度、非易失性存储技术制造,兼容标准MCS- 51指令系统及80C51引脚结构。

这样,既能做到经济合理又能实现预期的功能。

在设计程序的时候,分析道电子的功能有三个模块构成,分别是单片机本身,键盘按键输入和蜂鸣器的功能响应。

单片机电子琴实验报告

单片机电子琴实验报告

单片机及DSP课程设计报告专业:通信工程班级:姓名:学号:指导教师:李贺时间:2015-06-22~2015-07-03通信与电子工程学院基于单片机的电子琴设计一、课设的目的及内容本设计主要是用单片机为核心控制元件,设计一台电子琴。

以单片机作为主控核心,与键盘、蜂鸣器、数码管等模块组成核心主控制模块,在主控模块上设有7个按键和1个复位按键。

本系统主要是完成的功能:电子琴弹奏并显示所按的按键对应音的唱名。

关于声音的处理,使用单片机C语言,利用定时器来控制频率,而每个音符的符号只是存在自定义的表中。

总之,本设计的电子琴有以下要求:(1)用键盘作出电子琴的按键,共7个,每键代表1个音符。

各音符按照符合电子琴的按键顺序排列;(2)达到电子琴的基本功能,可以用弹奏出简单的乐曲;(3)在按下按键发出音符的同时显示出音符所对应的唱名即1(dao)、2(ruai)、3(mi)、4(fa)、5(sao)、6(la)、7(xi)。

二、问题分析、解决思路及原理图本系统采用STC89C52RC为主控芯片,因其精度较高,操作比较灵活,输入电路和输出电路由芯片来进行处理,电路的系统的稳定性高,功耗小。

其中,输入电路有7个独立按键,通过按键随意按下所要表达的音符,作为电平送给主体电路,中央处理器通过识别,解码输出音符,在蜂鸣器中发出有效的声音。

由于需要显示的信息不多,显示电路未采用液晶屏显示,而是使用数码管显示电路负责显示按下的琴键所对应音符的唱名,这样既节省了成本,又降低了编程难度。

图1如图1所示基于单片机STC89C52RC的电子琴电路,它主要由琴键控制电路、数码管显示电路、音频功放电路和时钟-复位电路四部分所构成。

三、硬件设计(一)琴键控制电路琴键控制电路作为人机联系的输入部分,也是间接控制数码显示和音频功放的重要组成部分。

本设计采用独立式键盘的思路。

独立式键盘的特点是一键一线,各键相互独立,每个键各接一条I/O口线,通过检测I/O输入线的电平状态,可判断出被按下的按键。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

小学期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程序代码分析:#include<avr/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;i<9000;i++){while(!(TIFR & (1<<TOV0)));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;while(!(PINB & (1<<2))){count3++;if(count3 == 10){count4++;count3 = 0;temp = PORTA;PORTA = PORTA >> 1;if(temp & 0b00000001){PORTA = PORTA | 0b10000000;}}for(int i=0;i<9000;i++){while(!(TIFR & (1<<TOV0)));TCNT0=55;}}}3.3实验结果:四、有关发声的基础知识:声波是振动产生的。

频率即表示每秒钟振动的次数,采用CTC方式时AVR单片机通过特定的端口(PD4及PD5)输出一定频率的方波,TCCR1A设为比较匹配时OC1A/OC1B电平取反,TCCR1B的计数上限为OC1A,根据公式OCnA=f/2N(1+OCRnA)计算出7个频率音阶所需的OCR1A,则只需将喇叭接在PD4或PD5,通过程序控制端口输出特定频率的方波波形(发声使用正弦波最好,方波效果稍次但影响不大),喇叭就会发出七种不同的声音,依照人听觉分辨7个音阶分为三组,分别为高中,低音阶频率,经计算可得,当OCR1A=(500000/musicmem[i]-1)时,{131,147,165,175,196,220,247}存放低音阶频率,{262,294,330,349,392,440,494}存放中音阶频率,{524,588,660,698,784,880,988}则存放高音阶频率,所以需要定义三个数组存放各音阶的频率值。

除了音符频率以外还需要音长,所以定义1个2位数组表示一段音乐,第一个表示频率,第二个表示音长,播放时先访问频率数组,使喇叭发声,之后访问音长数组,确定喇叭发声时间。

而有了音符频率数组,只要再得到任意一首歌的简谱,就可以将其转化为两个数组的形式,由音符对应的频率得出频率数组,然后再根据每个音符的音长,将其通过乐曲的节拍和音符的拍数计算出音符持续时间即可得出音长数字。

五、电子琴的设计过程:5.1设计过程:5.2 实验所需元器件:ATmega16L型单片机,JTAG下载器,扬声器,4*4矩阵键盘,1602LCD 液晶屏,LM386,实验盒(内装剪刀、镊子、导线等用品)等5.3实验程序主要流程图:5.4实验原理及原理图:5.4.1实验原理:以ATmega16单片机作为整个系统的控制中心,外加琴键控制模块、播放模块、显示模块,使制作的电子琴完成设想的功能。

琴键控制模块为4*4矩阵键盘,可以通过按下不同的琴键弹奏出不同的音阶,每个音阶对应着不同的频率,一段音乐是由许多不同的音阶组成,这样我们就可以根据不同的频率组合得到我们想要的音乐,同时在录制模式下,还可以通过按不同的按键记录下不同的音阶,由此记录一段音乐。

播放模块接收对应频率的方波,由此播放琴键弹奏的音阶以及播放预先存放在单片机里的音乐。

显示模块显示出当前所处的模式。

5.4.2 原理图:5.5各模块的设计与详解:中央处理器——ATmega16:实验中,PB0~PB7全部设置为输出,分配给LCD液晶显示屏D0~D7管脚;PA0~PA7连接4*4矩阵键盘的八个引脚;PD4、PD6和PD7设置为输出状态,分别连接到LCD显示屏的RS、R/W和E端口上;PD5置为输出状态,接到扬声器的一个管脚,扬声器的另一管脚接地;VCC 为电源,向LCD显示屏供电;GND为公共接地。

●琴键控制模块——4*4矩阵键盘:工作原理:按键设置在行、列线交点上,行、列线分别连接到按键开关的两端。

行线通过上拉电阻接到+5V 电源上。

无按键按下时,行线处于高电平的状态,而当有按键按下时,行线电平由与此行线相连的列线的电平决定。

●显示模块——LCD液晶显示屏:引脚详解:第1脚:VSS为地电源。

第2脚:VDD接5V正电源。

第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。

第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。

第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。

当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。

第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。

第7~14脚:D0~D7为8位双向数据线。

第15脚:背光源正极。

第16脚:背光源负极。

播放模块——扬声器:原先以为单片机本身的电源电压不足以驱动扬声器工作,所以设计了有LM386的功放模块,后来在实际操作的过程中测试发现,单片机本身的电源足以驱动扬声器播放音乐音调,因此舍弃了LM386功放模块的设置。

5.6程序源代码及程序分析:#include<avr/io.h>#include<avr/interrupt.h>#pragma data:code#define uchar unsigned char#define uint unsigned intconst uchar table[]="HELLO WELCOME!";volatile uint num=0,count=0;volatile uint Mode=0,list=2,pause=0,aim=0,sure=0,del=0;volatile int state=0, S=1; //定义全局变量,S为变速变量const uint Mode_Data[16]={0,440,494,523,587,659,698,784,880,998,1046,1156,1318,1396,1568};//存放声音的频率//音高对应定时器初始化数值(低la~高la+休止符),cpu频率1MHz,用8分频const uchar tone[]={0x00,0x8E,0x7E,0x77,0x6A,0x5E,0x59,0x4F,0x47,0x3F,0x3B,0x35,0x2F,0x2C,0x27,0x2 3,0X19,0X15};uint Ssong[10][2]={{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0}};//********************************************void delay_us(int n) //微妙级延时函数;{while(n--){asm("nop");//自动延时一个时钟周期什么也不做}}void delay_ms(int n) //毫秒级延时函数;{int m=14500*n;while(m--){asm("nop");}}//**********************************************/************************屏幕显示函数************************/void write_com(uchar com){PORTD&=~(1<<4); //低电平指令模式。

相关文档
最新文档