音乐播放电路设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程单片机原理及应用课程设计
题目音乐播放电路设计
一、设计目的:训练学生综合运用己学课程的基本知识,独立进行单片机应用技术开发工作,掌握单片机程序设计、调试,应用电路设计、分析及调试检测。
二、设计要求:
1. 应用MCS-51单片机设计音乐产生电路;
2. 编程实现简单音乐的播放,利用单片机的定时器产生音调和节奏,驱动喇叭发声,要求至少编写2首音乐,用按键控制播放和切换。
3. 硬件设计根据设计的任务选定合适的单片机,根据控制对象设计接口电路。设计的单元电路必须有工作原理,器件的作用,分析和计算过程;
4. 软件设计根据电路工作过程,画出软件流程图,根据流程图编写相应的程序,进行调试并打印程序清单;
5. 原理图设计根据所确定的设计电路,利用Protel等有关工具软件绘制电路原理图、PCB板图、提供元器件清单。
三、参考资料:
[1] 单片微型计算机与接口技术,李群芳、黄建编著,电子工业出版社;
[2] 单片机原理及应用,张毅刚编著,高等教育出版社;
[3] 51系列单片机及C51程序设计,王建校,杨建国等编著,科学出版社;
[4] 单片机原理及接口技术,李朝青编著,北京航空航天大学出版社;
完成期限2011.3.14—2011.3.18
指导教师
专业负责人
2011年 3 月13 日
15
第一章概述
随着科技的飞速发展,单片机技术已经趋于成熟。单片机自动完成赋予它的任务的过程,也就是单片机执行程序的过程,即一条条执行的指令的过程,所谓指令就是把要求单片机执行的各种操作用的命令的形式写下来,这是在设计人员赋予它的指令系统所决定的,一条指令对应着一种基本操作;单片机所能执行的全部指令,就是该单片机的指令系统,不同种类的单片机,其指令系统亦不同。
本设计主要的设计要求是,应用MCS-51单片机设计音乐产生电路;编程实现简单音乐的播放,利用单片机的定时器产生音调和节奏,驱动喇叭发声,要求至少编写2首音乐,用按键控制播放和切换。硬件设计根据设计的任务选定合适的单片机,根据控制对象设计接口电路。软件设计根据电路工作过程,画出软件流程图,根据流程图编写相应的程序,进行调试并打印程序清单;原理图设计根据所确定的设计电路。
第二章系统硬件电路设计
本设计中用到了89C51单片机,4*4键盘,蜂鸣器,16*2 LCD,七段显示数码管LED。下来详细介绍各部分功能。
1、89C51: 89C51是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。使用高密度非易失性存储器技术制造,在单芯片上,拥有灵巧的8 位CPU 和在线系统可编程Flash,使得89C51为众多嵌入式控制应用系统提供高灵活。
89C51的功能: 8k字节Flash,256字节RAM, 32
位I/O 口线,看门狗定时器,两个数据指针,三个16
位定时器/计数器,一个6向量2级中断结构,全双
工串行口,片内晶振及时钟电路。另外, 89C51可降
至0Hz静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU 停止工作,允许RAM、定时器/计数
器、串口、中断继续工作。掉电保护方式下,RAM内容
被保存,振荡器被冻结,单片机一切工作停止,直到
下一个中断或硬件复位为止。8 位微控制器 8K字节在
系统可编程 Flash。
P0 口:P0口是一个8位漏极开路的双向I/O口。
作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下, P0具有内部上拉电阻。在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。P1 口:
P1 口是一个具有内部上拉电阻的8 位双向I/O 口,p1 输出缓冲器能驱动四个 TTL 逻辑电平。对P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。P3 口:P3 口是一个具有内部上拉电阻的8 位双向I/O 口,p2 输出缓冲器能驱动四个 TTL 逻辑电平。对P3 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。 P3口亦作为89C51特殊功能(第二功能)使用。
RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。PSEN:程序储存允许(PSEN)输出是外部程序存储器的读选通信号。EA/VPP——外部访问允许,欲使CPU访问外部程序存储器(地址为0000H-FFFFH),EA必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。
2、数码管,按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳极数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。共阳极数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。共阴极数
码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。共阴极数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电
平时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮。
数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划“a,b,c,d,e,f,g,dp”的同名端连在一起,另外为每个数码管的公共极COM加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并不是同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。
3、矩阵式键盘的结构与工作原理,在键盘中按键数量较多时,为了减少I/O口的占
用,通常将按键排列成矩阵形式,如图=所示:在矩阵
式键盘中,每条水平线和垂直线在交叉处不直接连通,
而是通过一个按键加以连接。这样,一个端口(如P1
口)就可以构成4*4=16个按键,比之直接将端口线用
于键盘多出了一倍,而且线数越多,区别越明显,比
如再多加一条线就可以构成20键的键盘,而直接用端
口线则只能多出一键(9键)。由此可见,在需要的键
数比较多时,采用矩阵法来做键盘是合理的。
矩阵式结构的键盘显然比直接法要复杂一些,识
别也要复杂一些,上图中,列线通过电阻接正电源,并将行线所接的单片机的I/O口作为输出端,而列线所接的I/O口则作为输入。这样,当按键没有按下时,所有的输出端都是高电平,代表无键按下。行线输出是低电平,一旦有键按下,则输入线就会被拉低,这样,通过读入输入线的状态就可得知是否有键按下了。具体的识别及编程方法如下所述。
矩阵键盘矩阵式键盘的按键识别方法,确定矩阵式键盘上何键被按下介绍一种“行扫描法”。行扫描法又称为逐行(或列)扫描查询法,是一种最常用的按键识别方法,如上图所示键盘,介绍过程如下。判断键盘中有无键按下将全部行线Y0-Y3置低电平,然后检测列线的状态。只要有一列的电平为低,则表示键盘中有键被按下,而且闭合的键位于低电平线与4根行线相交叉的4个按键之中。若所有列线均为高电平,则键盘中无键按下。判断闭合键所在的位置在确认有键按下后,即可进入确定具体闭合键的过程。其方法是:依次将行线置为低电平,即在置某根行线为低电平时,其它线为高电平。在确定某根行线位置为低电平后,再逐行检测各列线的电平状态。若某列为低,则该列线与置为低电平的行线交叉处的按键就是闭合的按键。