基于51单片机的电子琴设计课程设计_第1页
基于51单片机的电子琴设计课程设计_第2页
基于51单片机的电子琴设计课程设计_第3页
基于51单片机的电子琴设计课程设计_第4页
基于51单片机的电子琴设计课程设计_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《单片机原理》课程设计.3时钟-复位电路时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性。常用的时钟电路有两种方式,一种是内部时钟方式,另一种是外部时钟方式。AT89C51内部有一个用于构成振荡器的高增益反相放大器,输入端为芯片引脚XTAL1,输出端为引脚XTAL2。这两个引脚跨接石英晶体振荡器和微调电容,构成一个稳定的自激振荡器,图2-3是AT89S51内部时钟方式的电路,C1和C2的典型值通常选择为30pF,石英晶体常选6MHz或12MHz的。本设计采用内部时钟方式做时钟电路。图2-3复位电路图2.4LED显示电路本文设计中采用的是LED,LED(LightEmittingDiode)发光二极管缩写,它是半导体二极管的一种,可以把电能转化成光能。发光二极管与普通二极管一样是由一个PN结组成,也具有单向导电性。LED具有体积小,电压低,使用寿命长,价格低,亮度高,低热量等优点。但是显示内容单一。本文中采用它显示按键的键位。如图2-4所示。图2-4LED显示电路图2.5整体电路基于单片机AT89C51的电子琴电路由琴键控制电路、LED显示电路、音频功放电路、时钟-复位电路和电源电路五部分所构成。琴键控制电路采用了7输入,收集7个独立按键的开关状态信号,并触发单片机的外部中断来处理;而LED显示电路负责显示按下的琴键所对应的键值;同时,音频功放电路也会播放琴键对应的音调;电源电路为整个电路提供能源。如图2-5所示。图2-5整体电路

第3章电子琴系统软件设计系统功能的实现一般包括硬件部分和软件部分,一旦硬件确定下来,软件要实现的功能也随之确定。而为使编程思路清晰,应先绘制程序流程图。判断键值结束LED发光蜂鸣器发声系统初始化开始扫描键盘得到的键值判断键值结束LED发光蜂鸣器发声系统初始化开始扫描键盘得到的键值图3-1电子琴系统流程图3.1系统硬件接口定义

系统硬件接口定义如表1所示表1系统硬件接口定义引脚号引脚名接口说明备注1-7P0-P7独立按键接口33-39P1-P7数码管与单片机通信口17P37控制蜂鸣器3.2主函数

主函数流程图如图所示。利用模块化的思想,主函数只执行初始化函数,对所需的I/O口、外部中断1、定时器0进行初始化配置。音频处理函数和LED显示函数。另外,键码的识别与刷新是通过中断函数来完成。图3-2函数流程图3.2.1主函数程序voidmain(void){ TMOD=0x01;//tmod方式1 ET0=1; EA=1; LED=0xff; KEY=0xff; while(1) { if(KEY!=0xff) { delay(); key_scan(); STH0=tab[MUSIC]/256;//设初始值 STL0=tab[MUSIC]%256; TR0=1; } else { SPEAKER=1; TR0=0; } }}3.3按键扫描及LED显示函数由于本设计采用的是接触开关式按键,故不可避免存在机械抖动。按键被按下是,其触点电压变化过程如图19所示。这种抖动会使系统处于不稳定状态,故需要进行消抖处理。抖动时间的长短和按键的机械特性有关,一般为5~10ms。通常手动按下键然后立即释放,这个操作中稳定闭合的时间超过20ms,因此单片机在检测按键是否按下时都需要加上去抖动操作,有专门的去抖动电路或则芯片,但同用软件延时的方法也能轻易解决抖动问题,没必要添加多余的硬件。

本设计是用软件消抖方法编写一个消抖程序。当按键按下去后,首先对其进行连续两次取样,如果两次都为低电平,则输出低电平;如果其中有一次高电平,则输出高电平。本文所设计的显示为LED显示,当键盘得到低电平时,输出P1口的LED常亮。以表示所指向的键盘动作。3.3.1键盘去抖及LED显示子程序voidkey_scan(void){ if(KEY!=0xff) { switch(~KEY)//显示的列位置 { case0x01: { MUSIC=0; P0=0xfe; break; } case0x02: { MUSIC=1; P0=0xfd; break; } case0x04: { MUSIC=2; P0=0xfb; break; } case0x08: { MUSIC=3; P0=0xf7; break; } case0x10: { MUSIC=4; P0=0xef; break; } case0x20: { MUSIC=5; P0=0xdf; break; } case0x40: { MUSIC=6; P0=0xbf; break; } } }}3.4中断函数

中断函数用到了定时器中断。定时中断的流程框图如图3-4所示,定时器溢出中断后,进行重装载初值,同时执行相应的音频控制操作。图3-5中断函数3.4.1中断程序voidt0(void)interrupt1{TH0=STH0;TL0=STL0;SPEAKER=~SPEAKER;}第4章电子琴和调试由于没有硬件设备,所以无法进行硬件调试,但这并不妨碍软件调试。利用仿真软件Proteus和编程软件Keil

uVision4进行调试程序。4.1调试工具

Proteus软件是英国Labcenter

Electronics公司研发的EDA工具软件。它是一个集模拟电路、数字电路、模/数混合电路以及多种微控制器系统为一体的系统设计和仿真平台。是目前同类软件中最先进、最完整的电子类仿真平台之一。它真正实现了在计算机上完成从原理图、电路分析与仿真、单片机代码调试与仿真、系统测试与功能验证到PCB板生成的完整的电子产品研发过程。

最新的Keil

uVision4

IDE,旨在提高开发人员的生产力,实现更快,更有效的程序开发。Keil

uVision4引入了灵活的窗口管理系统,能够拖放到视图内的任何地方,包括支持多显示器窗口。Keil

uVision4在Keil

uVision3

IDE的基础上,增加了更多大众化的功能:多显示器和灵活的窗口管理系统;系统浏览器窗口的显示设备外设寄存器信息;调试还原视图创建并保存多个调试窗口布局;多项目工作区简化与众多的项目。

4.2调试结果

利用Proteus对电路进行仿真分析,电子琴电路的仿真电路图如图22所示。进一步达到了实验效果。但也一定瑕疵,按键按下后,延迟一会才有声音。调试结果与设计的基本一致,如表2所示。表2调式结果按键键值发音调试LED显示备注S1Do1灯亮S2Re2灯亮S3Mi3灯亮S4Fa4灯亮S5Sao5灯亮S6La6灯亮S7Xi7灯亮图4-1电子琴电路仿真4.3电子琴设计中的问题及解决方法

电子琴的设计并非一帆风顺,在这期间遇到了很多问题,下面谈几个关键的问题。首先是最重要的是程序直接编译不下去,到处是bug,直接蒙逼。慢慢调呗,一个一个百度,一个一个查字典。我的天,老师都帮我在找。最后终于编译出hxe文件了,擦,外放不响,那就自己整呗,本来自己什么都不会,百度了好多素材,一个一个试试呗。嗯嗯,最终知道是定义的频率计算有误。弄了好久才响。嗯嗯,涂省事用的LED的小灯,太low了,都这么低的要求了,刚开始还乱闪。又一点一点改程序,没法,自己水平有限,上课又没有好好听课,嗳。就先这样吧。

第5章电子琴设计总结在电子音乐领域,电子音调作为现代电子科技与音乐结合的产物,它在现代音乐中扮演着重要的角色。目前,由于电子音乐的普及,电子琴就是一种新型的电子乐器。

本设计基于单片机AT89C51的电子琴电路由琴键控制电路、数码管显示电路、音频功放电路、时钟-复位电路和电源电路五部分所构成。琴键控制电路采用了8输入与门芯片CD4068B,收集8个独立按键的开关状态信号,并触发单片机的外部中断来处理;而LED显示电路负责显示按下的琴键所对应的键值;同时,音频功放电路也会播放琴键对应的音调;电源电路为整个电路提供能源。

电子琴的设计并非一帆风顺,在这期间遇到了很多问题,上一章已经说过了,在这也不赘述了。通过这次课程设计,感觉收获颇多。首先硬件方面,基本了解了电子产品的开发流程和所要做的工作,基本掌握了Protel99SE原理图的方法以及怎么利用Proteus进行数字电路仿真。除此之外,对51系单片机的接口有了更深层次的理解,熟悉了一些单片机常用的外围电路引脚和连接方法,诸如LED数码管、键盘等等。在软件方面,通过对外部中断、定时器/计数器、I/O的使用,使得C语言编程能力也有了较大的进步。以上

参考文献魏鸿磊.临机原理及应用(c语言编程)[M].同济大学出版,2015.袁东.51单片机应用开发实战手册[M].北京:电子工业出版社,2011.

沈红卫.基于单片机的智能系统设计与实现[M].北京:电子工业出版社,2005.

苏丽萍.电子技术基础[M].西安:西安电子科技大学出版社,2002.

曾屹,彭楚武.单片机原理与应用(第2版)[M].长沙:中南大学出版社,2009.

林立.单片机原理及应用——基于Proteus和Keil

C[M].北京:电子工业出版社,2009.

彭伟.单片机C语言程序设计实训100例[M].北京:电子工业出版社,2009.

顾滨,赵伟军,诸杭.Protel99SE实用教程(第3版)[M].北京:人民邮电出版社,2013.王为青,程国刚.单片机Keil

Cx51应用开发技术.[M].北京:人民邮电出版社,2007.

单丹,马淑云.基于AT89C51单片机电子琴的设计[J].中国高新技术企业,2002.石鑫.基于89C51单片机简易电子琴的设计[J].农业装备技术,2010.

肖丽,王骥.基于STC89C51单片机的电子琴设计[J].电子元器件应用,2010.周润景.Proteus入门实用教程[M].北京:机械工业出版社,2007.

附录电子琴源程序#include<reg51.h>#defineKEYP1#defineLEDP0sbitSPEAKER=P3^7;unsignedcharMUSIC;unsignedcharSTH0;unsignedcharSTL0;unsignedintcodetab[]={64021,64103,64260,64400,64524,64580,64684};voiddelay(void){unsignedinti,j;for(i=0;i<20;i++) for(j=0;j<250;j++);}voidkey_scan(void){ if(KEY!=0xff) { switch(~KEY)//显示的列位置 { case0x01: { MUSIC=0; P0=0xfe; break; } case0x02: { MUSIC=1; P0=0xfd; break; } case0x04: { MUSIC=2; P0=0xfb; break; } case0x08: { MUSIC=3; P0=0xf7; break; } case0x10: { MUSIC=4; P0=0xef; break; } case0x20: { MUSIC=5; P0=0xdf; break; } case0x40: { MUSIC=6; P0=0xbf; break; } } }}voidmain(void){ TMOD=0x01;//tmod方式1 ET0=1; EA=1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论