单片机课程设计3_第1页
单片机课程设计3_第2页
单片机课程设计3_第3页
单片机课程设计3_第4页
单片机课程设计3_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

1、单片机课程设计专业 电气工程及其自动化 指导教师 学生 学号 题 目 基于单片机屏幕式电子琴的设计 2013年12月25日基于51单片机屏幕电子琴的设计摘要:随着社会的发展进步,音乐逐渐成为我们生活中很重要的一部分,有人曾说喜欢音乐的人不会向恶。我们都会抽空欣赏世界名曲,作为对精神的洗礼。本论文设计一个基于单片机的屏幕电子琴。电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。它在现代音乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。本系统是以51系列单片机AT89C52为主控制器,附有矩阵键盘、屏幕式LED、扬声器组

2、成。系统完成显示输入信息、播放相应音符等基本功能。本系统运行稳定,其优点是硬件电路简单,软件功能完善,控制系统可靠,性价比较高等,具有一定的实用和参考价值。关键词:AT89C52,按键,屏幕式LED,扬声器。1、 设计任务与要求利用所给键盘的1,2,3,4,5,6,7,8八个键,能够发出7个不同的音调,而且有一个按键可以自动播放歌曲,要求按键按下时发声,松开延时一小段时间,中间再按别的键则发另外一音调的声音,当系统扫描到键盘按下,则快速检测出是哪一个按键被按下,然后单片机的定时器启动,发出一定频率的脉冲,该频率的脉冲经喇叭驱动电路放大滤波后,就会发出相应的音调。如果在前一个按下的键发声的同时有

3、另一个按键被按下,则启动中断系统。前面的发音停止,转到后按的键的发音程序。发出后按的键的音调。2、 总体设计方案2.1 总体硬件组成框图该设计方案是通过按键随意按下所要表达的音符,作为电平送给主体电路,中央处理器通过识别,解码输出音符,在扬声器中发出有效的声音。通过这样可以不断的弹奏我们想要的音符或者是音调,电路由复位电路,指示灯电路,和功能按键电路组成,通过功能键可以选择播放音乐或者弹奏音节,硬件主要有下面几个部分组成。用P3口的高四位和P3口的第四位作为按键的接口,用P1口做信号输出口。图2-1电子琴硬件设计框图2.2 设计方案2.2.1 播放模块 播放模块是由喇叭构成,它几乎不存在噪声,

4、音响效果较好,而且由于所需驱动功率较小,且价格低廉,所以,被广泛应用。2.2.2 按键控制模块电子琴设有8个按键,其中7个作为音符输入,另外一个作为模式转换按键,实现用户存放的自动播放歌曲。7个按键分别代表7个音符,包括中音段的全部音符,通过软硬件设计,模式转换按键触发外部中断,中断使程序跳转,实现模式转换,启动电子琴。然后通过查询电子琴所按下的按键,读取电子琴输入状态,跳转到对应的程序入口,实现自编歌曲的。三、系统的硬件设计 为了使电子琴的控制系统更加的方便、灵活以及稳定性,我们对系统硬件进行了简约和优化,使硬件更加的实用,更加的人性化,硬件电路包括中心控制模块、播放模块、按键控制模块、复位

5、按键模块四大类。3.1 中心控制模块的硬件设计 这次设计的中心控制模块是采用AT89C52单片机来控制整个系统。其中P3口作为输入口,P2口为信号输出口,P1.0连接音响驱动电路。3.2 声音播放模块的硬件设计图3-1音频放大电路如下图所示,为声音的播放模块,它接到P1.4口上,当有按键按下时,它通过AT89C52中心控制芯片的识别后发出相应的音符。3.3 按键控制模块和复位电路模块的硬件设计 在P2口连接有8个按键开关加8个拉电阻,它们一端接5V电源,一端接地。只要有一个按键被按下,并被单片机扫描到,则会播放发出音符。图3-2 按键复位电路图3-3 按键电路四、单片机最小系统设计4.1 电子

6、琴主要电路及其芯片在电子琴主要电路设计中,我们采用了AT89C52单片机芯片,其特点及管脚封装如下介绍一般。AT89C52是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。使用Atmel 公司高密度非 易失性存储器技术制造,与工业80C51 产品指令和引脚完 全兼容。AT89C52具有以下标准功能: 8k字节Flash,256字节RAM, 32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位 定时器/计数器,一个6向量2级中断结构,全双工串行口, 片内晶振及时钟电路。另外,AT89C52 可降至0Hz 静态逻 辑操作,支持2种软件可选择节电模式。

7、空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工 作。掉电保护方式下,RAM内容被保存,振荡器被冻结, 单片机一切工作停止,直到下一个中断或硬件复位为止。8 位微控制器 8K 字节在系统可编程 Flash AT89C52。P3口亦作为AT89C52特殊功能(第二功能)使用,如下表所示。 在flash编程和校验时,P3口也接收一些控制信号。 端口引脚 第二功能 P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 INTO(外中断0) P3.3 INT1(外中断1) P3.4 TO(定时/计数器0) P3.5 T1(定时/计数器1) P3.6 WR(

8、外部数据存储器写选通) P3.7 RD(外部数据存储器读选通) 此外,P3口还接收一些用于FLASH闪存编程和程序校验的控制信号。 RST复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。图4-1AT89S52芯片的管脚图4.2 音频功放电路三极管8050图4-2为三极管8050功放电路电子琴的功放电路采用了两个8050的三极管放大音频,使用AT89S52驱动音频放大芯片工作,以达到我们想要输出的音频效果.LM386是美国国家半导体公司生产的音频功率放大器,主要应用于低电压消费类产品。为使外围元件最少,电压增益内置为20。但在1脚和8脚之间增加一只外接电阻和电容,便

9、可将电压增益调为任意值,直至 200。输入端以地位参考,同时输出端被自动偏置到电源电压的一半,在6V电源电压下,它的静态功耗仅为24mW,使得LM386特别适用于电池供电的场。4.3 扬声器扬声器是一种把电平转变为声信号的换能器件,扬声器和性能对音质的高低音响很大。扬声器的种类很多,按其换能原理可分为电动式、静电式、电磁式、压电式等几种,后两种多用于农村有线广播网中,按频率范围可分为低音扬声器、中音扬声器,这些常在音箱中作为组合扬声器使用。在本次试验作品中使用电磁式扬声器。当按键被按下时,相应的引脚被拉低,经扫描后,获得键值,并执行键功能程序,因此按下不同的按键,将执行不同的功能程序。 软件是

10、该电子琴控制系统的重要组成部分,在系统的软件设计中我们也用了模块设计,将系统的各部分功能编写成子模块的形式,这样增强了系统软件的可读性和可移植性。4.4 系统软件流程图4-3软件设计流程图本系统软件中还要是编辑电子琴播放状态的内容,在设计中采用汇编语言编写了电子琴控制系统控制和播放内容的程序。源程序参考附录一主要程序:void main()s1num=0;/流水灯种类标志key1=1;key2=1;TMOD=0x01;TH0=a;TL0=b;ET0=1;/打开定时器,但是未允许中断TR0=1;while(1)check_key();keyscan();在程序编写中多次采用了判断指令,来扫描按键

11、的按下,然后把相应的音符传送到指定的内存空间,使其相应的按键对应相应的音符。源程序参考附录一。五、电路的仿真和调试 Proteus的ISIS是一款Labcenter出品的电路分析实物仿真系统,可仿真各种电路和IC,并支持单片机,元件库齐全,使用方便,可以给我们做电路设计提供方便快捷的仿真效果,让我们事半功倍。 目前支持的单片机类型有:680以及各种外围芯片0系列、8051系列、AVR系列、PIC12系列、HC11系列。把程序烧进单片机,进行仿真没有问题,证明电路原理图和程序可以使用。5-1电子琴仿真图 在此之前,本实验组功放电路曽一度采用复杂的LM326芯片放大电路来播放声音,其仿真图如下所示

12、:图5-2 LM326音频功放电路仿真虽然成功,但是在做完板子调试的时候性能及其不稳定,音响效果也很差,声音大小无法调节,最后通过询问老师以及同学,最后采用了三极管8050的音频放大电路,最终达到了实验所要的目的。 在作品板的调试过程中,本作品的复位电路的高电平和单片机没有接好,在一开始的调试中就遇到了难题,最终在检验板子和检测中找出问题,并以解决,最终达到了实验的目的。六、结论与心得 将以调试好的程序烧进AT89S52芯片,再放到电路板中,按下按键就可以发出相应的音。本次试验通过制作电子琴,将几个模块换呢好的融合起来,对使用单片机设计简易电子琴进行了分析,并接受了基于单片机电子期硬件组成。利

13、用单片机产生不同频率来获得我们要求的音阶,最终可随意弹奏想要表达的音乐。说明一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,于是我们可以利用单片机的定时/计数器T0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可,然后我们利用功放电路来将音乐声音放大,同时同股沟显示模块来确知自己所弹的音符。 通过这次实训设计,我感觉收获了很多:通过这次的单片机实训,我加深了对单片机系列知识及其系统的认识。这个设计题目并不怎么新颖,但从中体现到了个系统开发设计的过程,足以让我们受益匪浅。 在这次的实训中,让我

14、更进一步的提高了动手能力,也重新复习了一次单片机的程序编程能力,在这期间,让我更加深刻了体会到了汇编程序的思路,加强了对编程能力的理解和对相应资料的查阅。参考文献1刘乐喜.微机计算机接口技术及应用M.华中科技大学出版社.2石东海.单片机数据通信技术从入门到精通.M.西安电子科技大学出版社.3谢自美等.电子线路设计、实验、测试.M.华中科技大学出版社.4长德.李华.李东.MC51/98系列单片机原理与应用M.机械工业出版社.附录1:电路图附录2:源程序sfr P4=0xe8;/定义P4组I0口#include<reg52.h>#define uint unsigned int#def

15、ine uchar unsigned charsbit speaker=P14;/喇叭接30脚sbit key1=P10;/流水灯按键(暂时)sbit key2=P11;/播放音乐按键(暂定)uchar a,b,num1,s1num,n1,n2;char num;/定义num为可以负数uchar code yinfu=0xfb,0xe9, /Do 0xfc,0x5c, /Re 0xfc,0xc1, /Mi 0xfc,0xef, /Fa 0xfd,0x45, /So 0xfd,0x92, /La 0xfd,0xd0, /Si 0xfd,0xee, /Do# 0x00,0x00, /间隔;ucha

16、r code shengri_tone= 1,0,1,2,1,4,3,0, /生日快乐音调 1,0,1,2,1,5,4,0, 1,0,1,8,6,4,3,2,0, 7,0,7,6,4,5,4,0 /0代表不发声,即停顿;数字即为音调; uchar code shengri_beat= 24,1,24,48,48,48,72,5,/节拍 24,1,24,48,48,48,72,5, 24,1,24,48,48,48,48,72,5, 24,1,24,48,48,48,72,5 /节拍,即tone表各音调的延时;uchar code ledtable=0x7f,0xbf,0xdf,0xef, /取

17、反0xf7,0xfb,0xfd,0xfe;/P0组口的发光二极管代码(焊接过程可能会相反,具体更改)uchar code ledtable2=0x7f,0xbf,0xdf,0xef, /取反0xf7,0xfb,0xfd,0xfe;/P2组口发光二极管代码,相反!void check_key();/改为P3组为按键void keyscan();void turn();/顺时针流动void back();void qianhou();void dangshuang();void delay(uint z);/延时函数声明void delay1(void);/声明第二个延时函数void play1(

18、void);/播放生日快乐void main()s1num=0;/流水灯种类标志key1=1;key2=1;TMOD=0x01;TH0=a;TL0=b;ET0=1;/打开定时器,但是未允许中断TR0=1;while(1)check_key();keyscan(); void time0() interrupt 1TH0=a;TL0=b;speaker=speaker;void check_key()P3=0xff;/先赋给P2组口高电平switch(P3)/按下一个键相应4个灯亮case 0xfe:P0=0xee;P2=0x77;a=0xfb;b=0xe9;EA=1;break;/P0,P2组

19、为发光二极管组case 0xfd:P0=0xdd;P2=0xbb;a=0xfc;b=0x5c;EA=1;break;/注意:EA不能改为TR0case 0xfb:P0=0xbb;P2=0xdd;a=0xfc;b=0xc1;EA=1;break;case 0xf7:P0=0x77;P2=0xee;a=0xfc;b=0xef;EA=1;break;case 0xef:P0=0xee;P2=0x77;a=0xfd;b=0x45;EA=1;break;case 0xdf:P0=0xdd;P2=0xbb;a=0xfd;b=0x92;EA=1;break;case 0xbf:P0=0xbb;P2=0xdd

20、;a=0xfd;b=0xd0;EA=1;break;case 0x7f:P0=0x77;P2=0xee;a=0xfd;b=0xee;EA=1;break;default:EA=0;speaker=0;/P0=0xff;P2=0xff ; void delay(uint z)uint x,y;for(x=z;x>0;x-)for(y=110;y>0;y-);void keyscan() if(key1=0) delay(5);if(key1=0)s1num+;while(!key1);if(s1num=1)turn();if(s1num=2)back();if(s1num=3)qia

21、nhou();if(s1num=4)dangshuang();if(s1num=5)s1num=1; if(key2=0)delay(5);while(key2);play1(); void delay1(void)/第二个延时函数 uchar n=15; while(n-) uchar i; for(i=0;i<125;i+); void play1(void)/播放生日快乐 uchar m=0; uchar s; uchar c=1; P0=0xaa; P2=0x55; while(1) EA=0; c=shengri_tonem; /取音符 s=shengri_beatm; /取节拍 a=yinfu2*c-2; b=yinfu2*c-1; EA=1; while(s-) delay1(); P0=P0; P2=P2; m+; if(m>=33) return; /数值是sh

温馨提示

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

评论

0/150

提交评论