矩阵键盘模拟电子琴

合集下载

单片机课程设计---模拟电子琴发声控制系统

单片机课程设计---模拟电子琴发声控制系统

《单片机应用与仿真训练》设计报告模拟电子琴发声控制系统专业:电气工程与自动化摘要本次课程设计的主要内容是用AT89C51单片机为核心控制元件,设计一个简单的电子琴并可实现音乐的连续播放。

以单片机作为主控核心,与键盘、扬声器等模块组成核心主控制模块,在主控模块上设有12个按键和扬声器。

定时器按设置的定时参数产生中断,由于定时参数不同,就会发出不同频率的脉冲,不同频率的脉冲经喇叭驱动电路放大滤波后,就会发出不同音调。

本简易电子琴的设计可实现的功能如下:程序中预存了4首音乐:《同一首歌》、《两只蝴蝶》、《祝你快乐》、《Time to say goodbye》并通过一个独立键盘可以实现对四首音乐的“下一曲”控制。

3*4矩阵键盘中的7个按键分别对应着7个不同的音符,另外3个分为高、中、低音的控制,当按下某一按键,会发出相应的音调。

按下按键时,扬声器会发出声音,松开按键后,扬声器停止发声,按键的时间越长,发声时间越久。

连续按下不同的按键,可以实现乐曲的演奏。

此外还有一“模式”按键,负责在电子琴和音乐播放器两种不同模式下的切换。

目录1 概述 ------------------------------------------------------------------------------------------------- 41.1 音乐产生原理---------------------------------------------------------------------------- 41.2 结构框图 ---------------------------------------------------------------------------------- 42 系统总体方案及硬件设计 -------------------------------------------------------------------- 52.1 总体方案 ---------------------------------------------------------------------------------- 52.2 按键键盘 ---------------------------------------------------------------------------------- 52.3 蜂鸣器电路 ------------------------------------------------------------------------------- 52.4 数码管电路 ------------------------------------------------------------------------------- 62.5 最小系统 ---------------------------------------------------------------------------------- 72.6 设计实现过程---------------------------------------------------------------------------- 73 软件设计------------------------------------------------------------------------------------------- 93.1 整体设计 ---------------------------------------------------------------------------------- 93.2 音乐设计 -------------------------------------------------------------------------------- 103.3 按键设计 -------------------------------------------------------------------------------- 113.4 显示设计 -------------------------------------------------------------------------------- 134 Proteus仿真 ------------------------------------------------------------------------------------ 145 课程设计体会 ---------------------------------------------------------------------------------- 15参考文献----------------------------------------------------------------------------------------- 15 附1:源程序代码----------------------------------------------------------------------------- 16 附2:系统原理图----------------------------------------------------------------------------- 261概述1.1音乐产生原理一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系正确即可。

基于单片机的电子琴设计与仿真论文

基于单片机的电子琴设计与仿真论文

成都理工大学工程技术学院毕业论文基于单片机的电子琴设计与仿真作者姓名:任振环专业名称:电子科学与技术指导教师:兰英讲师摘要当今世界,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高。

电子琴是我们常见的电子产品,它是一种键盘乐器,是现代电子科技与音乐的结合。

目前,单片机正朝着高性能和多品种方向发展趋势将是进一步向着CMOS化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展。

单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。

导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。

该系统是以51系列单片机为主控制器,附有矩阵键盘、LED数码管、扬声器等。

系统完成显示输入信息、播放相应音符等基本功能。

本文设计的电子琴,体积小,重量轻,使用方便,并有一定的商业价值。

关键词:STC89C52单片机矩阵键盘LED数码管扬声器AbstractIn today's world, electronic technology has obtained the rapid development, under its impetus, the modern electronic products into almost every field of the society, a strong impetus to the development of social productivity and the improvement of social information-based degree. Electronic organ is our common electronic products, it is a keyboard instrument, is combined with modern electronic technology and music.At present, SCM is a high performance and multi variety trend will be further towards the CMOS, low power consumption, small volume, large capacity, high performance, low price and the contents of the external circuit and so on several aspects of development. Microcontroller penetrated into every aspect of our lives, which is almost difficult to find traces of the field without mcu. Missile navigation equipment, aircraft control on a variety of instruments, computer network communications and data transmission, real-time control and data processing of industrial automation process, extensive use of various smart IC card, civilian luxury car security system, video recorder, camera control, full automatic washing machine, and program-controlled toys, electronic pet and so on, these all cannot do without mcu.The system is based on the 51 Series MCU based controller, a matrix keyboard, LED digital tube, speakers, etc.. To complete the system shows the input information, the basic function such as play corresponding notes. Electronic organ, this design has the advantages of small volume, light weight, easy to use, and have a certain commercial value.Keywords:STC89C52 microcontroller,matrix keyboard,digital tube LED ,speaker目录摘要 (I)Abstract (II)目录 (III)前言 (1)1 总体方案介绍 (2)1.1 方案一 (2)1.2 方案二 (3)1.3 系统设计概述 (4)2 系统硬件介绍 (5)2.1主控模块(STC89C52) (5)2.1.1 STC89C52的主要特性 (6)2.1.2 STC89C52的中断系统 (9)2.1.3 STC89C52的系统介绍 (10)2.2显示模块 (10)2.2.1 数码管原理 (10)2.2.2 显示模块电路设计 (12)2.3 矩阵键盘模块 (13)2.4 功率放大模块(LM386) (14)2.4.1 LM386内部原理 (14)2.4.2 功率放大器使用事项 (16)3 系统软件介绍 (17)3.1 系统软件整体设计 (17)3.2 定时器产生音乐信号原理 (18)3.3 程序设计原理 (19)4 调试结果与仿真 (20)4.1 调试结果 (20)4.2 仿真结果 (20)总结 (21)致谢 (22)参考文献 (23)附件1 系统整体原理图 (24)附件2 元件清单 (25)附件3 系统PCB设计图 (26)附件4 系统源程序 (27)附件5 实物图片 (35)前言近几十年来,单片机技术迅猛发展,在工农业生产,交通运输,国防建设和航空、航天事业等领域中获得广泛的应用。

基于51单片机的4×4矩阵键盘电子琴

基于51单片机的4×4矩阵键盘电子琴

基于51单片机的4×4矩阵键盘电子琴基于51单片机的4×4矩阵键盘电子琴前些日子,做而论道写了一篇关于单片机发音的文章,后来,就不断有网友来电询问单片机电子琴的设计方法。

以前制作过一个24键(独立按键)的,程序是用汇编语言写的,估计多数人看不了。

下面,把新设计的16按键的电子琴,公布给网友。

电路图如下:图片链接:/picture/detail/b05f67dd8b5c82da3af4 83a4f974902b5660a0da制作说明:单片机采用51系列的都行,AT89C2051也可;图中没有画出复位和晶振电路,实际制作时,不可省略,晶振可以使用11.0592或12MHz;扬声器应该按照图中给出的附图加上驱动电路;显示器及七段译码器不接,单片机电子琴也可以正常工作。

74LS47 和数码管之间,应该接上“限流电阻”,约470 欧姆即可。

C语言程序如下:/************************************************************* * 程序功能 : 对4×4矩阵键盘进行扫描,显示键值和输出音响**************************************************************/ #include <reg51.h>#include <intrins.h>#define uint unsigned int#define uchar unsigned charsbit SPK = P3^7; //P3.7外接扬声器uint FreqTemp;unsigned int code Freqtab[] = { //定时半周期的初始值64021,64103,64260,64400, //低音3 4 5 664524,64580,64684,64777, //低音7,中音1 2 364820,64898,64968,65030, //中音4 5 6 765058,65110,65157,65178}; //高音1 2 3 4//关于半周期的初始值与频率的关系,可见:///do_sermon/item/8cff22baf5142245bb 0e1247/************************************************************* * 函数功能 : 用扫描法读 P1 外接4×4 键盘* 函数返回 : 按下键:返回0~15、如无键按下:返回16**************************************************************/ uchar Keyscan(void){uchar i, j, temp, Buffer[4] = {0xfe, 0xfd, 0xfb, 0xf7};for(j = 0; j < 4; j++) { //循环四次,扫描四行P1 = Buffer[j]; //在低四位分别输出一个低电平_nop_();temp = 0x80; //计划先读出P1.7位for(i = 0; i < 4; i++) { //循环四次,检查四列if(!(P1 & temp)) { //从高四位,截取1位return (i + j * 4); //返回取得的按键值}temp >>= 1; //换右边一位} }return 16; //没有键按下就返回16}/************************************************************** * 函数功能 : 将参数分成十位、个位,分别显示到P2* 输入 : k (键盘数值)*************************************************************** /void Display(uchar k){P2 = ((k / 10) << 4) + (k % 10);}/************************************************************** * 主函数*************************************************************** /void Main(void){uchar Key_Value = 16, Key_Temp1, Key_Temp2;//读出的键值TMOD = 0x01; //T0定时方式1ET0 = 1; //允许T0中断EX0 = 1; //允许X0中断EA = 1;while(1) {TR0 = 0; //暂不发音Key_T emp1 = Keyscan(); //读入按键if(Key_Temp1 != 16) { //有键按下Display(Key_Value); //显示键值、延时消抖Key_T emp2 = Keyscan(); //再读一次if (Key_Temp1 == Key_T emp2) {//两次相等Key_Value = Key_T emp1; //就确认下来FreqTemp = Freqtab[Key_Value]; //根据键值,取出定时半周期的初始值Display(Key_Value); //显示TR0 = 1; //启动定时器,发音while (Keyscan() < 16); //等待释放SPK = 1; //停止发音} } } }//===================================== ==========void T0_INT(void) interrupt 1{TL0 = FreqTemp; //载入定时半周期的初始值TH0 = FreqTemp >> 8;SPK = ~SPK; //发音}//===================================== ==========#单片机有关。

《矩阵键盘》课件

《矩阵键盘》课件

游戏机按键通常配备震动反馈 功能,提供触觉反馈,增强游 戏体验的真实感。
工业控制设备
工业控制设备如自动 化仪表、数控机床等 也采用矩阵键盘布局 。
工业控制设备的矩阵 键盘通常防水、防尘 ,适应恶劣的工业环 境。
矩阵键盘的设计使得 工业控制设备能够实 现快速、准确的输入 控制指令。
06
矩阵键盘的未来展望

扫描程序
按照一定的规则逐行逐列扫描键盘 ,检测按键状态变化。
识别程序
根据按键电路的状态变化,判断具 体哪个按键被按下,并执行相应的 操作。
接口通信方式
并行通信
通过数据线将按键信号直接传输 到微控制器,数据传输速度快,
但需要较多的数据线。
串行通信
通过串行数据线将按键信号传输 到微控制器,数据传输速度较慢
键。
矩阵键盘的设计使得电子琴能够 模拟传统钢琴的触感,提供逼真
的演奏体验。
电子琴的矩阵键盘通常配备力度 感应功能,根据按下琴键的力度
来调整音符的音量和音质。
游戏机按键
游戏机按键通常采用矩阵键盘 布局,以适应游戏过程中快速 输入指令的需求。
矩阵键盘的设计使得游戏机按 键能够实现多键同时按下,提 高游戏操作的准确性和速度。
THANKS
感谢观看
03
矩阵键盘的电路设计
硬件电路设计
电源电路
为矩阵键盘提供稳定的电 源,确保按键的正常工作 。
按键电路
每个按键对应一个或多个 行列交叉点,通过检测行 和列的状态变化来确定按 键的按下状态。
输出电路
将按键信号输出到微控制 器或其他处理设备进行处 理。
软件编程设计
初始化程序
对矩阵键盘进行初始化设置,包 括设置扫描频率、去抖动时间等

矩阵键盘-十六音阶电子琴

矩阵键盘-十六音阶电子琴

#include <reg51.h>sbit Beep =P3^0;unsigned char i,a,b;unsigned char led[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83, 0xc6,0xa1,0x86,0x8e}; //0~9、A~F的共阳极显示码unsigned char code music_tab[] ={0xf8,0x8c,//10xf9,0x5b,//20xfa,0x15,//30xfa,0x67,//40xfb,0x04,//50xfb,0x90,//60xfc,0x0c,//70xfc,0x44,//80xfc,0xae,//90xfd,0x0a,//100xfa,0x34,//110xfd,0x82,//120xfd,0xc8,//130xfe,0x06,//140xfe,0x22,//150xfe,0x56,//160xfe,0x85,0xfe,0x9a};void delayms(unsigned int i){unsigned char k;while(i--)for(k=0;k<120;k++); //120次空操作}void int0() interrupt 1{ TH0=music_tab[i*2+0];TL0=music_tab[i*2+1];Beep=~Beep;}char scan_key ( ){char i,temp,m,n;bit find=0;//有键按下标志位P2=0xf0; //向所有的列线上输出低电平i=P0; //读入行值i&=0x0f; //屏蔽掉高四位if(i!=0x0f) //行值不为全1,有键按下{delayms(10); //延时消抖i=P0; //再次读入行值i&=0x0f; //屏蔽掉高四位if(i!=0x0f){ //第二次判断有键按下for(i=0;i<4;i++){P2=0xfe<<i; //逐列送出低电平temp=~P0;//读行值,并取反,全1→全0temp=temp&0x0f; //屏蔽掉行值高4位if(temp!=0x00) //判断有无键按下,为0则无键按下,否则有键按下{ m=i; //保存列号至m变量find=1; //置找到按键标志switch(temp)//判断哪一行有键按下,记录行号到n变量{ case 0x01:n=0;break; //第0行有键按下case 0x02: n=1;break; //第1行有键按下case 0x04: n=2;break; //第2行有键按下case 0x08: n=3;break; //第3行有键按下default:break;}break; //有键按下,退出for循环}}}}if(find==0) return -1; //无键按下则返回-1else return(n*4+m); //否则返回键值,键值=列号*4+行号}void main()//主函数{TMOD=0x01;//设置定时器工作方式IE=0x82; //中断初始化P1=0xff;P0=0xff;//P0口低四位做输入口,先输出全1while(1){i=scan_key(); //调用键盘函数if(i==-1) continue; //没有键按下,继续循环else{ P1=led[i];delay(10);P1=0xff;b=4;} //取频率常数和节拍常数TR0=1; //开定时器1 while(b!=0){delay(500);b--;}//等待节拍完成TR0=0;}}。

基于AT89C51的简易电子琴单片机课程设计

基于AT89C51的简易电子琴单片机课程设计

单片机课程设计题目名称:基于单片机的可演奏电子琴设计专业班级:学生姓名:学号:指导教师:成绩:评语:指导老师签名:日期:摘要电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。

它在现代音乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。

本文的主要内容是用AT89c51单片机为核心控制元件,设计一个电子琴。

以单片机作为主控核心,与键盘、扬声器等模块组成核心主控制模块,在主控模块上设有16个按键和扬声器。

本系统运行稳定,其优点是硬件电路简单,软件功能完善,控制系统可靠,性价比较高等,具有一定的实用和参考价值。

AbstractElectronic organ is a modern electronic music technology and the product is a new type of keyboard instruments. It played an important role in modern music. SCM has powerful control functions and flexible programming characteristics. It has converged with modern people's lives, become an irreplaceable part. The main content is AT89C51 control of the core components, design of a electronic organ. SCM as a host to the core, with the keyboard, speaker and other core modules. In the main control module has 16 keys and a speaker. The system is steady, its simple hardware circuits, software functions, reliability of control system and high cost performance is its advantages. It also has certain practical and reference value.目录摘要 (1)Abstract (1)1 系统概述 (3)1.1 课程设计的目的和意义 (3)1.2 本系统主要研究内容 (3)1.3 本系统主要研究目标 (4)1.4主要芯片简介 (4)2 方案论证 (4)2.1 控制模块选择方案 (4)2.2 按键模块选择方案 (5)3 方案的实现 (5)3.1系统实现的具体措施 (5)3.2系统硬件设计 (6)3.2.1 系统硬件总体设计 (6)3.2.2子系统(模块)一 (6)3.2.3子系统(模块)二 (7)3.2.4 子系统(模块)三 (8)3.3系统软件设计 (9) (9) (10) (11)4 系统调试 (12)4.1 Proteus 简介 (12)4.2 keil 简介 (12)4.3 Proteus和Keil的联调 (13)5 设计心得 (14)参考文献 (15)附录1: (16)1 系统概述1.1课程设计的目的和意义单片微型计算机是大规模集成电路技术发展的产物,属第四代电子计算机,它具有高性能、高速度、体积小、价格低廉、稳定可靠、应用广泛的特点。

基于51单片机实现的电子琴设计

基于51单片机实现的电子琴设计

目录摘要 (3)Abstract (3)1绪论 (4)1.1背景 (4)1.2目的 (4)1.3 意义 (4)1.4基本理论依据和主要工作内容 (4)2 设计方案简述 (6)2.1键盘模块 (6)2.2发声模块 (6)2.3 8X8点阵显示模块 (6)2.4系统技术指标和预期功能 (7)3 详细设计 (8)3.1主要IC芯片介绍 (8)3.2硬件设计 (11)4 设计结果及分析 (19)4.1 测试 (19)5总结 (20)参考文献 (21)附录主要程序代码 (22)摘要单片机的应用已经越来越贴近生活,用单片机来实现一些电子设计也变得容易起来。

本设计阐述的主要内容是一种基于51 单片机的电子琴的设计,其核心芯片AT89S52 单片机,内部电路包括4X4行列式键盘模块、音频放大模块和8X8LED点阵显示模块,本系统运行稳定,功能较为完善,控制系统可靠,性价比较高等,具有一定的实用价值。

对于那些需要显示的信息量不是很大,分辨率不是很高,又需要制造成本相对比较低的场合,使用大、小屏幕LED点阵显示器是比较经济适用的,他可以显示字符、数字和简单图形,显示亮度较高,并且对环境条件要求比较低。

电子乐器的结构较为复杂,音源是由晶体管产生的电振动,并通过音色回路而产生各种音色;同时由周波数调制产生颤音效果,由振幅调制产生各种乐器的音效。

关键词:AT89S52单片机;音频放大模块;8X8点阵AbstractIts applications have become increasingly close to life, with a single chip to achieve a number of electronic design is becoming simpler. The main elements of the design described is based on 51 single-chip, the flower design, the core chip AT89S52 microcontroller Internal circuit including the 4X4 determinant keyboard module, audio amplifier module and 8X8LED dot matrix display module, the system is stable, function better, control system reliability, higher cost and so on, has some practical value. For those who need to display the amount of information is small, resolution is not high, they need to make the occasion a relatively low cost, using large and small screen, LED dot matrix display is more economical, and he can display characters, numbers and simple graphics, display brightness higher and lower demands on the environmental conditions. : The structure of more complex electronic instruments, the source is generated by the transistor electrical vibration, and sound loops generated by a variety of tone; also modulated by the frequency to produce vibrato effects, generated by the amplitude modulated sounds of various instruments.Keywords:AT89S52 Microcontroller;Audio Amplifier Module;8X8 matrix1绪论1.1背景单片机是随着大规模集成电路的出现极其发展,将计算机的CPU,RAM,ROM,定时/计数器和多种I/O接口集成在一片芯片上,形成了芯片级的计算机,因此单片机早期的含义称为单片微型计算机(single chipmicrocomputer).它拥有优异的性价比、集成度高、体积小、可靠性高、控制功能强、低电压、低功耗的显著优点.主要应用于智能仪器仪表、工业检测控制、机电一体化等方面,并且取得了显著的成果。

单片机矩阵键盘

单片机矩阵键盘
单片机矩阵键盘
汇报人: 202X-01-04
contents
目录
• 单片机矩阵键盘概述 • 单片机矩阵键盘硬件设计 • 单片机矩阵键盘软件编程 • 单片机矩阵键盘调试与测试 • 单片机矩阵键盘优化与扩展
01 单片机矩阵键盘 概述
定义与特点
定义
单片机矩阵键盘是一种由行线和 列线组成的键盘,通过按键的行 和列交叉点来识别按键。
用于显示输入的信息或状态, 如数码管、液晶显示屏等。
电源模块
为整个系统提供稳定的电源, 保证系统的正常工作。
电路连接
01
矩阵键盘的行线和列线分别连接到单片机的输入/输出端口,通 过软件扫描方式检测按键状态。
02
单片机控制模块与显示模块连接,将需要显示的信息传输给显
示模块。
电源模块为整个系统提供稳定的电源,保证系统的正常工作。
在通讯设备领域,单片机矩阵键盘可以用 于手机、电话等设备的操作面板,实现拨 号、挂断等功能。
பைடு நூலகம்
02 单片机矩阵键盘 硬件设计
硬件组成
01
02
03
04
矩阵键盘模块
由行线和列线组成的键盘矩阵 ,按键被安排在行线和列线的
交叉点上。
单片机控制模块
用于接收和处理来自矩阵键盘 的信号,控制整个系统的运行

显示模块
软件编程
编写单片机程序,用于扫描矩阵键盘并识 别按键按下事件。
测试方法
按键响应时间测试
测试从按键按下到单片机响应 的时间,确保在合理范围内。
按键防抖测试
测试按键防抖功能是否正常, 即在按键按下和释放时是否能 够正确识别。
多键同时按下测试
测试在多个按键同时按下时, 单片机是否能够正确识别并处 理。

51单片机简易电子琴设计

51单片机简易电子琴设计

毕业设计(论文)课题名称:指导教师:系别:专业:班级:姓名:摘要音乐一直都是人类情感表达的一个重要媒介,随着社会的进步与发展,音乐在人类的生活与学习中的作用越发不可忽视。

电子琴也是实现播放音乐的一个途径。

电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器,它在音乐演奏中已成为不可缺少的一部分。

单片机是一个具有功能强大和编程灵活性的控制器,它已广泛应用于现代人们的生活中,扮演着重要的角色。

本设计主要是使用AT89C51单片机及单片机C语言,用AT89S51单片机为核心控制元件,设计一个电子琴。

以单片机作为主控核心,与键盘、扬声器等模块组成核心主控制模块,在主控模块上设有16个按键和扬声器。

在PROTEUS 仿真平台上实现功能仿真,同时还增加了音乐播放功能。

本文中给出了该系统设计的硬件电路,软件设计等。

其次,详细阐述了程序的各个模块和实现过程。

本设计具有硬件电路简单、功能完善、控制可靠、运行稳定等特点,具有一定的实用性。

关键词: 单片机;电子琴;PROTEUS;KEIL;C语言1.引言单片微型计算机是大规模集成电路技术发展的产物,属第四代电子计算机,它具有高性能、高速度、体积小、价格低廉、稳定可靠、应用广泛的特点。

它的应用必定导致传统的控制技术从根本上发生变革。

因此,单片机的开发应用已成为高科技和工程领域的一项重大课题。

电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。

它在现代音乐扮演着重要的角色。

简易电子琴是电声乐队的中坚力量,常用于独奏主旋律并伴以丰富的和声。

还常作为独奏乐器出现,具有鲜明时代特色。

但电子琴的局限性也是十分明显:旋律与和声缺乏音量变化,过于协和、单一;在模仿各类馆、弦乐器时,音色还不够逼真,模仿提琴类乐器的音色时,失真度更大,还需要不断改进。

单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。

本文的主要内容是用AT89S51单片机为核心控制元件,设计一个电子琴。

单片机电子琴设计

单片机电子琴设计

单片机课程设计项目名称基于单片机的电子琴设计专业班级通信105班学生姓名陈清清指导教师房汉雄2012 年11 月26 日摘要本设计电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器,它在音乐演奏中已成为不可缺少的一部分。

单片机是一个具有功能强大和编程灵活性的控制器,它已广泛应用于现代人们的生活中,扮演着重要的角色。

本设计主要是使用AT89C51单片机及单片机C语言,在PROTEUS仿真平台上实现以单片机为核心控制元件的一个具有16个按键的电子琴。

本方案以AT89C51单片机作为主控核心,与键盘、扬声器等模块组成核心主控制。

模块在主控模块上设有16个按键和扬声器.根据使用者的操作随意弹奏想要表达音乐。

一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率。

这样我们就可以利用不同的频率的组合即可构成我们所想要的音乐了。

当然,对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样方波频率信号。

关键字:单片机;电子琴;PROTEUS;C语言AbstractAbstract Organ music of modern electronic technology combined with the product of a new type of keyboard instruments in its music has become an indispensable part of it. SCM is a powerful and programming flexibility of the controller, which has been widely used in modern people's lives, play an important role.This design mostly using A T89C51 microcontroller and the microcontroller C, the PROTEUS simulation platform to achieve a single chip as the core control element of an electronic keyboard with 16 keys.This plan to A T89C51 single chip microcomputer as master core and keyboard, loudspeaker module, such as the core of main control .Module in the master control module with the 16 buttons and speaker. According to the user's operation doodle want to express music. A music is composed of many different scale and each scale is corresponding to the different frequency , so I and then people can make use of different frequency combination can make up our want music.the of course for single chip microcomputer to produce different frequency is very convenient . we can use single chip timing/counter T0 to produce such party wave frequency signal.Keywords : SCM;Electronic;PROTEUS;C Language摘要 (I)Abstract (II)第1章绪论 (1)第2章设计内容 (2)第3章设计方案及原理 (3)3.1 目的和意义 (3)3.2 系统的研究内容 (3)3.3单片机介绍 (3)3.3.1 单片机简介与发展概况 (3)3.3.2 单片机的介绍 (5)3.3.3 单片机的工作过程 (5)3.3.4 AT89S52主要性能 (6)3.3.5 AT89S52引脚说明 (6)第4章系统分析 (11)4.1 系统框图 (11)4.2系统工作原理 (11)第5章硬件设计 (13)5.1系统总电路 (13)5.2 复位电路 (13)5.3 晶振电路 (13)5.4 键盘电路 (14)5.5 扬声器电路 (14)第6章软件设计 (16)6.1主流程图 (16)6.2键盘扫描流程图 (17)6.3 电子琴汇编程序 (18)第7章仿真 (20)7.1 仿真图 (20)第8章总结 (21)参考文献 (22)附录1 (23)附录2 (25)项目创新及特色 (25)致谢 (26)第1章绪论电子琴因其音色优美、节奏多变、价格便宜、携带方便和弹奏易于出效果,深受广大青少年甚至老年人的喜爱,又是我国中小学音乐课堂教学和广大群众业余音乐活动的重要工具。

基于51单片机的电子琴设计课程设计

基于51单片机的电子琴设计课程设计

基于51单片机的电子琴设计课程设计单片机原理》课程设计前言本课程设计旨在通过基于51单片机的电子琴设计,加深学生对单片机原理的理解和应用。

在本设计中,我们将介绍电子琴的设计要求、所用设备及软件以及总体设计方案。

随后,我们将详细介绍系统硬件设计中琴键控制电路、音频功放电路、时钟-复位电路和LED显示电路的设计。

第1章基于51单片机的电子琴设计1.1 电子琴的设计要求在电子琴的设计中,我们需要考虑琴键数量、音频输出质量、电源电压和外部接口等因素。

在本设计中,我们将采用25个琴键,保证音频输出质量和电源电压稳定,并提供外部接口以便于扩展和调试。

1.2 电子琴设计所用设备及软件在本设计中,我们将使用51单片机、琴键、音频功放、时钟、LED显示器等设备,并使用Keil C51编译器进行软件开发。

1.3 总体设计方案在总体设计方案中,我们将采用按键扫描方式实现琴键控制,使用PWM技术实现音频输出,使用外部晶振提供时钟信号,并使用LED显示器显示琴键状态。

第2章系统硬件设计2.1 琴键控制电路在琴键控制电路中,我们将采用矩阵按键扫描方式,通过51单片机的IO口进行扫描和检测。

同时,我们还将使用电容式触摸开关来实现琴键的触发。

2.2 音频功放电路在音频功放电路中,我们将采用TDA7297芯片作为功放,通过PWM技术实现音频输出,并通过滤波电路滤除杂音和谐波。

2.3 时钟-复位电路在时钟-复位电路中,我们将采用12MHz晶振作为时钟源,并使用复位电路确保系统在上电时能够正确运行。

2.4 LED显示电路在LED显示电路中,我们将采用MAX7219芯片实现LED点阵显示,并通过SPI接口与51单片机进行通信。

同时,我们还将使用CD4511芯片实现数码管显示琴键状态。

通过本课程设计,我们可以深入理解单片机原理的应用,掌握电子琴的设计和制作技术,提高自身的实践能力和创新能力。

2.5 整体电路本章将介绍电子琴的整体电路设计。

基于STC89C52的简易电子琴课程设计报告

基于STC89C52的简易电子琴课程设计报告

课程设计(报告)题目基于STC89C52单片机的简易电子琴学院名称指导教师职称班级学号学生姓名2011年 6月 12日摘要:本课程设计简易电子琴的制作基于STC89C52单片机。

利用定时器中断产生不同频率来实现不同音阶,用键盘扫描实现矩阵琴键的识别。

音频处理部分采用LM386进行信号放大,通过蜂鸣器发音。

该简易电子琴可以实现用矩阵琴键弹奏乐曲和播放一段示例音乐的功能。

关键字简易电子琴 STC89C52 LM386 矩阵键盘Abstract:The electronic organ in this paper is based on one Singal Chip Micro-Computer. Witn the timer interrupt,it achieves different scales at different frequencies and achieves identification of the matrix keyboard keys by scaning.In audio processing part,LM386 is used to amplificat the signal, and sounding by buzzer.The simple electronic organ can play music with the matrix keyboard and play a sample of music.Keywords: simple electronic organ ; STC89C52 ; LM386 ; matrix keyboard目录引言 (3)设计方案论证 (4)1、按键模块方案选择 (4)2、音频处理模块方案选择 (4)硬件部分 (4)1、系统结构图 (4)控制模块 (4)2.1 STC89C52简介 (4)主要功能特性 (5)2.2 音频处理模块 (5)2.2.1 LM386简介 (5)2.2.3 蜂鸣器 (7)软件部分 (7)1 音乐产生原理 (7)2 音阶产生方法 (8)3 音乐的节拍 (9)4 矩阵键盘识别 (9)4.1去抖动: (9)4.2被按键识别 (9)4.3键码产生 (9)程序调试与仿真 (10)电路板的制作与调试 (11)实际电路调试 (12)课程设计心得体会 (12)参考文献 (13)附录一:程序清单 (14)附录二:元器件清单 (21)引言电子琴是使用现代科技实现传统器乐功能的典范。

基于单片机的简易电子琴录放音系统

基于单片机的简易电子琴录放音系统

光电系《微机原理与接口技术》优生免考自主设计项目简介项目名称 基于单片机的简易电子琴录放音系统任课教师 王晓萍 齐杭丽 上课学期 2009-2010秋冬学期成员1姓名 李林涛 学号 3061101362Email zjullt@成员2姓名 陈明 学号 3061101339Email zjuchenming@项目简介:本课题设计的仿真电子琴录放音系统是对目前市面上已有的各种数码音乐类 产品功能的简易模仿,通过目前已有的实验条件实现电子琴、随身听以及录音机 的基本功能。

包括实时弹奏乐曲,实时弹奏乐曲并录音,播放已录制的乐曲。

硬件上采用光电系微机原理与接口技术实验室提供的 ZDGDTH-1 型 80C51/C8051/嵌入式(ARM9)/CPLD实验箱,51 单片机仿真器、蜂鸣器、HD7279芯 片、矩阵键盘、8位数码管、LED阵列等,通过自行设计的电路在实验箱上进行各 模块电路的连接,搭建实现本系统功能的硬件平台。

软件上,使用C51编程语言,编写三个功能函数,作为核心的 main()函数, 以及一系列的附属函数。

音乐编程的主要部件是定时器,我们使用单片机内容定 时器0和1。

定时器0用于产生某一频率的音符,定时器1用于记录音符的节拍。

弹奏音乐的主要部件是按键,我们用按键作为音符1~7琴键,同时需要“录音”、 、“乐曲选择”等功能键,这些按键采用系统提供的 16 个行列式按键, “播放”由7279芯片驱动和扫描。

仿真电子琴录放音系统实现了以下三个功能:1、模仿电子琴,实时弹奏乐曲;2、模仿随身听,播放已有乐曲;3、模仿录音机,录制实时弹奏的乐曲;此外,系统加入了人性化的人机操作界面,每步操作均运用数码管显示状态 信息,并运用双色LED阵列显示弹奏的音符及音域的高低。

基于非编码矩阵键盘的数字音乐电子琴的仿真和实现

基于非编码矩阵键盘的数字音乐电子琴的仿真和实现

13 2 数 字 音 乐 电子 琴 的 设 计 方 案 ..
13 2 1 4 ... x4矩阵非编码键盘的识别处理 ¨ 众所 周知 , 键盘 是单片机 应用 系统 中最 常用 的输入设 备 , 通过 键盘输 入数据 或命令 , 以实现 简单 的人机 对话 , 可 但键盘 有编 码键盘和非编码键 盘之 分。编码键盘除 了键 开关 外 , 需 还 要有去键 抖动 电路、 防串键保护 电路 以及专 门的、 于识 别闭 用
音 频发生器 、 声器 、 扬 再外接 一组发光 二极 管来指示数 字音 乐 电子琴的工作状 态。具体 实现 功能分为两个部分 : 一个是数 字 电子 琴功能 , 另一个就是为每个按键 所设置的音乐功能 。其硬
件 电路 设 计 框 图如 图 1 示 。 所
中断 源 , 中 断优 先 级 , 5个 2层 中断 嵌 套 ; 个 看 门狗 定时 器 1 ( T: th o i r 电 路 ; 外 还 有 2个 1 WD wac d g t me ) 此 6位数 的数 据 指 针 D T 4 F ah片 内 程 序 存 储 器 , 18个 字 节 P R,KB ls 2 RAM; 个 片内振 荡器 和时 钟电 路 , 1 时钟 频率 可为 0 , Hz 最大 为 3 MHz 并 可通 过软 件设 置省 电模 式 , 3 , 低功 耗 的闲置 和掉 电模 式 , U暂停 工作 。 CP
P1 O . P1 i
0, D A 0
1 ^ , Dl 2, D2 A
P1 2 .
P1 3 .
P1 4 .
图 1 数字音 乐电子琴 系统框 图
Fiur 1 g tl musc k yb a d s tm i g a g e Diia i e o r yse d a r m

基于51单片机的简易电子琴设计

基于51单片机的简易电子琴设计

基于51单片机的简易电子琴设计一、设计任务及要求1、在该简易电子琴设计中,设置8个按键,8个按键可以发出do、re、mi、fa、sol、la、si、Do 8个音阶。

2、设计三个拨码开关,三个拨码开关可以调节高音、中音、低音三个音调。

3、画出电路的总体方框图和电路原理图。

二、设计原理音乐由许多不同的音阶组成的,而每个音阶对应着不同的频率,这样,我们就可以利用不同的频率组合,构成我们想要的音乐。

简易电子琴是摁下拨码开关时,单片机AT89C51会发出声音,声音从端口经过LM386,经过放大以后传入喇叭。

声音主要是经过单片机4×4矩阵键盘的按键产生,这里只用到8个按键来产生高中低的8个音阶,来产生do re mi fa sol la si Do。

下面是计数初值:#6LA# 466 1072 64463 高3MI 1318 372 65157低7SI 494 1012 64524 高4FA 1397 358 65178中1DO 523 0956 64580 #4FA# 1480 338 65198#1DO# 554 0903 64633 高5SO 1568 319 65217中2RE 578 0842 64684 #5SO# 1661 292 65235#2RE# 622 0804 64732 高6LA 1760 284 65252中3MI 659 0759 64777 #6LA# 1865 268 65268中4FA 698 0716 64820 高7SI 1976 253 65283 三、设计方案本次设计的电子琴主要是利用AT89C51单片机为核心控制元件,同时还包括键盘、拨码开关和扬声器等控制模块,由键盘选择八个音阶。

1、电路原理图的总体设计总体电路需要c51单片机一片,音乐按键及喇叭等外围电路,要进行音调控制和音频放大,设计好的电路图如下图所示:2、键盘控制模块的设计矩阵按键部分由8个轻触按键按照2行4列排列,连接到P3端口。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
break;
case 13:f=h_la; //如果第13个键按下,将高音6的频率赋给f
Output_Sound(); //转去计算定时常数
break;
case 14:f=h_sao; //如果第14个键按下,将高音5的频率赋给f
Output_Sound(); //转去计算定时常数
//以下是C调中音的音频宏定义
#define dao 523 //将“dao”宏定义为中音“1”的频率523Hz
#define re 587 //将“re”宏定义为中音“2”的频率587Hz
#define mi 659 //将“mi”宏定义为中音“3”的频率659Hz
#define h_xi 1975 //将“h_xi”宏定义为高音“7”的频率1975Hz
/**************************************************************
函数功能:软件延时子程序
**************************************************************/
Output_Sound(); //转去计算定时常数
break;
case 8:f=re; //如果第8个键按下,将中音2的频率赋给f
Output_Sound(); //转去计算定时常数
break;
case 9:f=h_re; //如果第9个键按下,将高音2的频率赋给f
函数功能:输出音频
入口参数:F
******************************************/
void Outp
ut_Sound(void)
{
C=(46083/f)*10; //计算定时常数
TH0=(8192-C)/32; //可证明这是13位计数器TH0高8位的赋初值方法
TL0=(8192-C)%32; //可证明这是13位计数器TL0低5位的赋初值方法
TR0=1; //开定时T0
delay(); //延时200ms,播放音频
if((P1&amp;0xf0)!=0xf0) //列线中有一位为低电平“0”,说明有键按下
{
delay20ms(); //延时一段时间、软件消抖
if((P1&amp;0xf0)!=0xf0) //确实有键按下
{
P1=0xfe; //第一行置为低电平“0”(P1.0输出低电平“0”)
//以下是C调高音的音频宏定义
#define h_dao 1046 //将“h_dao”宏定义为高音“1”的频率1046Hz
#define h_re 1174 //将“h_re”宏定义为高音“2”的频率1174Hz
#define h_mi 1318 //将“h_mi”宏定义为高音“3”的频率1318Hz
void Time0_serve(void ) interrupt 1 using 1
{
TH0=(8192-C)/32; //可证明这是13位计数器TH0高8位的赋初值方法
TL0=(8192-C)%32; //可证明这是13位计数器TL0低5位的赋初值方法
sound=!sound; //将P3.7引脚取反,输出音频方波
void main(void)
{
EA=1; //开总中断
ET0=1; //定时器T0中断允许
ET1=1; //定时器T1中断允许
TR1=1; //定时器T1启动,开始键盘扫描
TMOD=0x10; //分别使用定时器T1的模式1,T0的模式0
Output_Sound(); //Байду номын сангаас去计算定时常数
break;
case 10:f=h_dao; //如果第10个键按下,将高音1的频率赋给f
Output_Sound(); //转去计算定时常数
break;
case 11:f=xi; //如果第11个键按下,将中音7的频率赋给f
//简易电子琴
#include&lt;reg52.h&gt; //包含51单片机寄存器定义的头文件
sbit P14=P1^4; //将P14位定义为P1.4引脚
sbit P15=P1^5; //将P15位定义为P1.5引脚
break;
}
}
}
/**************************************************************
函数功能:定时器T0的中断服务子程序,使P3.7引脚输出音频方波
**************************************************************/
unsigned int f; //全局变量,储存音阶的频率
//以下是C调低音的音频宏定义
#define l_dao 262 //将“l_dao”宏定义为低音“1”的频率262Hz
#define l_re 286 //将“l_re”宏定义为低音“2”的频率286Hz
#define l_mi 311 //将“l_mi”宏定义为低音“3”的频率311Hz
TR0=0; //关闭定时器
sound=1; //关闭蜂鸣器
keyval=0xff; //播放按键音频后,将按键值更改,停止播放
}
/*******************************************
函数功能:主函数
******************************************/
TH1=(65536-500)/256; //定时器T1的高8位赋初值
TL1=(65536-500)%256; //定时器T1的高8位赋初值
while(1) //无限循环
{
switch(keyval)
{
case 1:f=dao; //如果第1个键按下,将中音1的频率赋给f
Output_Sound(); //转去计算定时常数
break;
case 6:f=fa; //如果第6个键按下,将中音4的频率赋给f
Output_Sound(); //转去计算定时常数
break;
case 7:f=mi; //如果第7个键按下,将中音3的频率赋给f
sbit P16=P1^6; //将P16位定义为P1.6引脚
sbit P17=P1^7; //将P17位定义为P1.7引脚
unsigned char keyval; //定义变量储存按键值
sbit sound=P3^6; //将sound位定义为P3.7
unsigned int C; //全局变量,储存定时器的定时常数
}
/**************************************************************
函数功能:定时器T1的中断服务子程序,进行键盘扫描,判断键位
**************************************************************/
******************************************/
void delay()
{
unsigned char i,j;
for(i=0;i&lt;250;i++)
for(j=0;j&lt;250;j++)
;
}
/*******************************************
break;
case 15:f=h_fa; //如果第15个键按下,将高音4的频率赋给f
Output_Sound(); //转去计算定时常数
break;
case 16:f=h_mi; //如果第16个键按下,将高音3的频率赋给f
Output_Sound(); //转去计算定时常数
Output_Sound(); //转去计算定时常数
break;
case 12:f=la;
//如果第12个键按下,将中音6的频率赋给f
Output_Sound(); //转去计算定时常数
Output_Sound(); //转去计算定时常数
break;
case 2:f=l_xi; //如果第2个键按下,将低音7的频率赋给f
Output_Sound(); //转去计算定时常数
break;
case 3:f=l_la; //如果第3个键按下,将低音6的频率赋给f
Output_Sound(); //转去计算定时常数
break;
case 4:f=l_sao; //如果第4个键按下,将低音5的频率赋给f
Output_Sound(); //转去计算定时常数
break;
case 5:f=sao; //如果第5个键按下,将中音5的频率赋给f
#define h_fa 1396 //将“h_fa”宏定义为高音“4”的频率1396Hz
#define h_sao 1567 //将“h_sao”宏定义为高音“5”的频率1567Hz
#define h_la 1760 //将“h_la”宏定义为高音“6”的频率1760Hz
#define l_fa 349 //将“l_fa”宏定义为低音“4”的频率349Hz
#define l_sao 392 //将“l_sao”宏定义为低音“5”的频率392Hz
相关文档
最新文档