电子音乐播放器的设计和制作设计.doc

上传人:本田雅阁 文档编号:2043935 上传时间:2019-02-08 格式:DOC 页数:53 大小:1.97MB
返回 下载 相关 举报
电子音乐播放器的设计和制作设计.doc_第1页
第1页 / 共53页
电子音乐播放器的设计和制作设计.doc_第2页
第2页 / 共53页
电子音乐播放器的设计和制作设计.doc_第3页
第3页 / 共53页
亲,该文档总共53页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《电子音乐播放器的设计和制作设计.doc》由会员分享,可在线阅读,更多相关《电子音乐播放器的设计和制作设计.doc(53页珍藏版)》请在三一文库上搜索。

1、河南理工大学毕业设计(论文)说明书摘要本文是应用AT89S51单片机原理和控制理论设计音乐演奏控制器的硬件电路,并利用C51单片机语言进行程序设计。通过控制单片机内部的定时器来产生不同频率的方波,驱动喇叭发出不同音调的音乐,再利用延迟来控制发音时间的长短。把乐谱转化成相应的定时常数就可以从发音设备中演奏出悦耳动听的音乐。此外电路中加入了按键可以方便控制音乐的播放,有简单的显示电路和按键对应,可以清楚播放的次序。这种控制电路结构简单,可靠性高,应用性强;软件程序适应范围广,对于不同的音乐只需要改变相应的定时常数即可。单片机仿真采用的是keil软件,比较方便。由于硬件电路的设计简单,所以焊接的时候

2、不容易出错,而且调试方便。对单片机和音乐爱好者有一定的借鉴价值。关键词:单片机;控制;音乐播放器AbstractThis is the application AT89S51 microcontroller theory and control theory, music performance controller hardware, and using C51 microcontroller programming language. By controlling the MCUs internal timer to generate square waves of different f

3、requencies to drive speakers make different musical tones, and then use delay to control the length of pronunciation. The music into the corresponding time constants can be played from the sound equipment out of melodious music. In addition, the circuit can be easily added to the buttons control mus

4、ic playback, a simple display circuit and the corresponding keys, can clearly play order. This control circuit is simple, high reliability and strong applicability; software program to adapt to a wide range of different music just for the appropriate time constant change can be. MCU is used keil sof

5、tware more convenient. As the hardware design is simple, it is not easy to go wrong when welding, and convenient debugging. On the MCU and music lovers have some reference value.Keywords: microcontroller; control;music player;目录摘要IAbstractII1绪论11.1立题背景11.2音乐与音乐播放器21.2.1音乐21.2.2音乐播放器32硬件的电路设计32.1单片机的

6、复位电路的设计32.2显示电路设计42.2.1 LED基本理论知识42.2.2发光二极管的检测62.2.3数码管与单片机的简单接口实验72.3单片机的振荡电路的设计82.4 控制电路设计92.5 LM386音频功率放大器103软件实现123.1音乐产生的方法123.2程序设计流程图173.3定时器/计数器的选择183.3.1定时器的选择183.3.2 89S51定时功能及工作方式选择183.3.3 计数器193.4定时器/计数器的控制寄存器193.5中断213.5.1定时中断源213.5.2中断控制213.5.3中断初始化与中断控制寄存器状态设置233.6本章小结244程序的调试及测试254.

7、1检测有无键按下254.2程序编译254.3调试过程274.3.1软件的调试274.3.2硬件的调试294.4本章小结315结束语32致 谢33参考文献34附录A 程序清单35附录B 设计总电路图47附录C 硬件实物48IV1绪论1.1立题背景随着信息技术革命的深入和计算机技术的飞速发展,单片机的应用越来越广泛,并逐渐发展成为一门关键的技术学科。单片机具有一些突出优点:体积小、重量轻、耗电少、电源单一、功能强、价格低、运行速度快、抗干扰能力强、可靠性高,所以在通信、家电、工业控制、仪器仪表、汽车等产品中都可以看到单片机的身影。目前国内单片机的应用仍以8051系列为主。本案是以AT89S51芯片

8、的电路为基础,外部加上功率放大器、放音设备,以此来实现音乐演奏控制器的硬件电路,通过软件程序来控制单片机内部的定时器使其演奏出优美动听的音乐。用户可以按照自己的喜好选择音乐并将其转化成机器码存入单片机的存储器中。对于不同型号的单片机只需要相应的改变一下地址即可。该软、硬件系统具有很好的通用性,很高的实际使用价值,为广大单片机和音乐爱好者提供了很好的借鉴。对于一个应用系统来说,不管在原理上如何先进、功能上如何全面、精度上如何精密,如果可靠性差、故障频繁,不能正常工作的话,那么这个系统也没有什么价值了。因此在设计系统的过程中,对于可靠性的要求应该贯穿于每一个环节,采取各种措施来提高可靠性,以保证系

9、统能够长时间的稳定工作。硬件方面来说,系统所用元件的优劣和制造工艺的精细是影响可靠性的重要原因,因此应该合理购买元器件。另外,在制造电路板时也要遭到工艺精细。软件方面,应该尽可能的不要使用模块化的设计方案,以利于程序的编写和调试,并减少故障率,提高软件的可靠性。鉴于以上各方面的要求,本系统采用了体积小、重量轻、功能强大、使用方便而且可靠性高的单片机为硬件电路的设计主体,即以AT89S51芯片为中心,设计并安装选曲电路、显示电路等,最终实现音乐演奏控制器的功能。软件方面采用C51单片机语言进行程序的编写。C51单片机语言指令简单,使用方便,初学者容易掌握,用它来对单片机进行换成是最合适的选择。1

10、.2音乐与音乐播放器1.2.1音乐(1)乐音与噪音声音的产生源于物体的振动。音乐中所使用的音分为“乐音”与“噪音”两种。振动有规则,具有固定、准确音高的声音被称为乐音。如:钢琴、提琴、小号、大管、竹苗、扬琴等乐器所发出的声音。振动不规则,没有固定、准确音高的声音被称为噪音。如:军鼓、响板、锣、木鱼、梆子等打击乐器所发出的声音。在音乐中主要使用的是乐音。(2)音乐音频与节拍:大概都听见过汽笛声和钟声。汽笛鸣响起来,由钝而尖,或由尖而钝。“钝”在音乐上称为“低”, “尖”在音乐上称为高”。这种高低的差别,便是“音质”的变化。钟声没有高低,用力敲时声音大,不用力敲时声音小。大就是重,小就是轻。重就是

11、“强”,轻就是“弱”。这种强弱的差别,便是“音量”的变化。学习音乐,必须明辨音乐的“质”与“量”,即音的“高低”与“强弱”。高的声音可以强,可以弱;低的声音也可以强,可以弱。强的声音可以高,可以低,弱的声音也可以高,可以低。笛声是高而强的,笃声是高而弱的,牛鸣声是低而强的,蛾飞声是低而弱的。由这四个实例,音的高低强弱不难明辨了。据物理学,音由物体振动而发,振动愈急,音愈高,愈缓,音愈低。又每次振动往复的范围愈广,发音愈强;愈狭,发音愈弱。故高低是由振动数多少而生的,强弱是由振动幅度广狭而生的。这就要求不同的音符有不同的振动频率,即音频。音乐上音的历时,叫做“拍子”。拍子由音的长短与强弱造成,拿

12、步行来说,大家喜欢一步一步历时相等。倘若一步快一步慢,就嫌吃力。又大家喜欢左右脚略有轻重之分,“彳亍彳亍”地走。倘若每步一样轻重“得得得”地走,就觉得气闷。因此把音的长短强弱加以研究,使之变化复杂,而给人更快更美之感的,便是音乐艺术。1.2.2音乐播放器所谓音乐播放器,就是由单片机产生乐曲音符,再把乐谱翻译成计算机音乐语言,由单片机进行信息处理,再经过信号放大,由耳机或扬声器(喇叭)放出乐曲声。我们知道,振动产生声音,振动频率不同,所发出的声音也就不同,有规律的振动发出的声音叫“乐音”,音乐由音频和节拍构成,音频即发声的频率,节拍即延时的长短,因此利用单片机的定时器/计数器产生一定频率的方波,

13、利用延时来实现方波的延时,从而实现“17”的高、中、低音的发音,而后把整首歌曲编码编程并结合单片机硬件实现歌曲的演奏。也是通过过控制单片机内部的定时器来产生不同频率的方波,驱动喇叭发出不用音调的音乐,再利用延迟来控制发音时间的长短,即控制音调中的节拍,把存放在存储器中的音谱中的音符对应的频率转换为定时常数,把相应的节拍转换为延时常熟,分别控制定时器产生不同频率的方波和该频率方波的持续时间,按乐谱依次进行下去,就可从放音设备中演奏出悦耳动听的音乐。硬件方面要由按键开关实现不同音乐之间的转换,然后在数码管上有对应的显示。音乐播放器可广泛应用于儿童音乐玩具、生日贺卡、音乐门铃或专门的音乐库。 2硬件

14、的电路设计2.1单片机的复位电路的设计单片机AT89S51作为主控芯片,控制整个电路的运行。单片机外围需要一个复位电路,复位电路的功能是:系统上电时提供复位信号,直至系统电源稳定后,撤消复位信号。为可靠起见,电源稳定后还要经一定的延时才撤销复位信号,以防电源开关或电源插头分-合过程中引起的抖动而影响复位。该设计采用含有二极管的复位电路,复位电路可以有效的解决电源毛刺和电源缓慢下降(电池电压不足)等引起的问题,在电源电压瞬间下降时可以使电容迅速放电,一定宽度的电源毛刺也可令系统可靠复位。复位电路的设计图如图2-1示:图21 单片机复位电路图 RST引脚是复位信号的输入端,复位信号是高电平有效,其

15、有效时间应持续24个振荡脉冲周期(即两个机器周期)以上,本文使用频率为12MHZ的晶振,则复位信号持续时间应为超过2s才能完成复位操作。复位操作有上电复位和按键手动复位两种方式。本文采用的是后者手动复位,按键后:电容器被短路放电、RST直接和VCC相连,就是高电平,此时进入“复位状态”。松手后:电源开始对电容器充电,此时,充电电流在电阻上,形成高电平送到RST,仍然是“复位状态”; 稍后,充电结束,电流降为0,电阻上的电压也将为0,RST降为低电平,开始正常工作。2.2显示电路设计2.2.1 LED基本理论知识半导体发光器件包括半导体发光二极管(简称LED)、数码管、符号管、米字管及点阵式显示

16、屏(简称矩阵管)等。事实上,数码管、符号管、米字管及矩阵管中的每个发光单元都是一个发光二极管。发光二极管是由-族化合物,如GaAs(砷化镓)、GaP(磷化镓)、GaAsP(磷砷化镓)等半导体制成的,其核心是PN结。因此它具有一般P-N结的I-N特性,即正向导通,反向截止、击穿特性。此外,在一定条件下,它还具有发光特性。在正向电压下,电子由N区注入P区,空穴由P区注入N区。进入对方区域的少数载流子(少子)一部分与多数载流子(多子)复合而发光。假设发光是在P区中发生的,那么注入的电子与价带空穴直接复合而发光,或者先被发光中心捕获后,再与空穴复合发光。除了这种发光复合外,还有些电子被非发光中心(这个

17、中心介于导带、介带中间附近)捕获,而后再与空穴复合,每次释放的能量不大,不能形成可见光。发光的复合量相对于非发光复合量的比例越大,光量子效率越高。由于复合是在少子扩散区内发光的,所以光仅在靠近PN结面数m以内产生。理论和实践证明,光的峰值波长与发光区域的半导体材料禁带宽度g有关,即 1240/Eg(mm)式中Eg的单位为电子伏特(eV)4。若能产生可见光(波长在380nm紫光780nm红光),半导体材料的Eg应在3.261.63eV之间。比红光波长长的光为红外光。现在已有红外、红、黄、绿及蓝光发光二极管,但其中蓝光二极管成本、价格很高,使用不普遍。7段LED数码管,是在一定形状的绝缘材料上,利

18、用单只LED组合排列成“8”字型的数码管,分别引出它们的相应电极,点亮相应的点划来显示出0-9的数字。 图 2-2 LED显示器LED数码管根据LED的接法不同分为共阴和共阳两类,了解LED的这些特性,对编程是很重要的,因为不同类型的数码管,除了它们的硬件电路有差异外,编程方法也是不同的。图2-2是共阴和共阳极数码管的内部电路,它们的发光原理是一样的,只是它们的电源极性不同而已。将多只LED的阴极连在一起即为共阴式,而将多只LED的阳极连在一起即为共阳式。以共阴式为例,如把阴极接地,在相应段的阳极接上正电源,该段即会发光。当然,LED的电流通常较小,一般均需在回路中接上限流电阻。假如我们将b和

19、c段接上正电源,其它端接地或悬空,那么b和c段发光,此时,数码管显示将显示数字“1”。而将a、b、d、e和g段都接上正电源,其它引脚悬空,此时数码管将显示“2”。其它字符的显示与此类同。2.2.2发光二极管的检测1.普通发光二极管的检测(1)、用万用表检测。利用具有10k挡的指针式万用表可以大致判断发光二极管的好坏。正常时,二极管正向电阻阻值为几十至200k,反向电阻的值为。如果正向电阻值为0或为,反向电阻值很小或为0,则易损坏。这种检测方法,不能实地看到发光管的发光情况,因为10k挡不能向LED提供较大正向电流。如果有两块指针万用表(最好同型号)可以较好地检查发光二极管的发光情况。用一根导线

20、将其中一块万用表的“+”接线柱与另一块表的“-”接线柱连接。余下的“-”笔接被测发光管的正极(P区),余下的“+”笔接被测发光管的负极(N区)。两块万用表均置10挡。正常情况下,接通后就能正常发光。若亮度很低,甚至不发光,可将两块万用表均拨至1若,若仍很暗,甚至不发光,则说明该发光二极管性能不良或损坏。应注意,不能一开始测量就将两块万用表置于1,以免电流过大,损坏发光二极管。(2)、外接电源测量。用3V稳压源或两节串联的干电池及万用表(指针式或数字式皆可)可以较准确测量发光二极管的光、电特性。如果测得VF在1.43V之间,且发光亮度正常,可以说明发光正常。如果测得VF=0或VF3V,且不发光,

21、说明发光管已坏。2. 红外发光二极管的检测由于红外发光二极管,它发射13m的红外光,人眼看不到。通常单只红外发光二极管发射功率只有数mW,不同型号的红外LED发光强度角分布也不相同。红外LED的正向压降一般为1.32.5V。正是由于其发射的红外光人眼看不见,所以利用上述可见光LED的检测法只能判定其PN结正、反向电学特性是否正常,而无法判定其发光情况正常否。为此,最好准备一只光敏器件(如2CR、2DR型硅光电池)作接收器。用万用表测光电池两端电压的变化情况。来判断红外LED加上适当正向电流后是否发射红外光。2.2.3数码管与单片机的简单接口实验图23为实验电路图,我们使用AT89S51单片机并

22、行口P2.0-P2.7直接与LED数码管的a-f引脚相连,值得一提的是,AT80S51并行口的输出驱动电流并非很大,为使LED有足够的亮度,LED数码管应选用高亮度的器件。AT89S51还可选用C51系列的其它单片机,只要它们的指令系统兼容C51即可正常运行,程序可直接移植,例如选用低价Flash型的AT89C1051等,它们的ROM可反复擦写,非常适合作实验用途。图 23 LED与单片机连接实验图2.3单片机的振荡电路的设计 在MCS-51芯片内部有一个高增益反相放大器,其输入端为芯片引脚XTAL1,输出端为引脚XTAL2,在芯片的外部通过这两个引脚跨接振荡器和微调电容,形成反馈电路,就构成

23、了一个稳定的自激振荡器。除使用晶体振荡器之外,如对时钟频率要求不高,还可以用电感或陶瓷谐振器代替。电路中的电容C1和C2一般取30PF左右,而晶体的振荡频率范围通常是1.2MHZ到12MHZ,晶体振荡频率高,则系统的时钟频率也高,单片机运行速度也快。但反过来运行速度快对存储器的速度要求就高。一般情况下,使用振荡频率为6MHZ的石英晶体,12MHZ的晶体主要使用在高速运行的情况下。本文采用12MHZ的晶振。图2-4振荡电路2.4 控制电路设计通常所用的按键为轻触机械开关,正常情况下按键的接点是断开的,当我们按压按钮时,由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开时也不会

24、一下子断开。因而机械触点在闭合及断开的瞬间均伴随有一连串的抖动,按键的时序如下图2所示,抖动时间的长短由按键的机械特性及操作人员按键动作决定,一般为5ms20ms;按键稳定闭合时间的长短是由操作人员的按键按压时间长短决定的,一般为零点几秒至数秒不等。 键按下 键稳定前沿抖动 后沿抖动图2轻触按键操作时序示意图 从上面图2中我们可以看到,一次完整的击键过程,包含以下5个阶段: 1. 等待阶段: 此时按键尚未按下,处于空闲阶段。2. 前沿(闭合)抖动阶段:此时按键刚刚按下,但按键信号还处于抖动状态,这个时间一般为520ms。为了确保按键操作不会误动作,此时必须有个前沿消抖动延时。3. 键稳定阶段:

25、此时抖动已经结束,一个有效的按键动作已经产生。系统应该在此时执行按键功能;或将按键所对应的键值记录下来,待按键释放时再执行。4. 后沿(释放)抖动阶段:一般来说,考究一点的程序应该在这里再做一次消抖延时,以防误动作。但是,如果前面“前沿抖动阶段”的消抖延时时间取值合适的话,可以忽略此阶段。5. 按键释放阶段:此时后沿抖动已经结束,按键已经处于完全释放状态,如果按键是采用释放后再执行功能,则可以在这个阶段进行按键操作的相关处理。图 25设置电路图本文采用的设置电路有4个按键组成如图25所示,设置电路的设计是考虑到用户使用方便和便于调整等方面的因素而确定的。由于单片机可以直接与按键进行连接,这样一

26、来可以充分的应用单片机的软件资源,在编写程序的时候,利用一些特殊的命令实现单片机与按键的接口,这样就可以通过按键来满足所要实现的数据设置。由于震动等原因可能使按键产生误动作,可能在使用过程中造成麻烦,这就要求在设计程序的时候,增加软件抗干扰,其一般做法是,在程序中加入延时子程序,为了使系统正常运行这个延时一般为几十微秒。2.5 LM386音频功率放大器LM386是美国国家半导体公司生产的音频功率放大器,主要应用于低电压消费类产品。为使外围元件最少,电压增益内置为20。但在1脚和8脚之间增加一只外接电阻和电容,便可将电压增益调为任意值,直至 200。输入端以地位参考,同时输出端被自动偏置到电源电

27、压的一半,在6V电源电压下,它的静态功耗仅为24mW,使得LM386特别适用于电池供电的场合。 LM386的封装形式有塑封8引线双列直插式和贴片式。如图26所示:图26 LM386的封装特性(Features):静态功耗低,约为4mA,可用于电池供电;工作电压范围宽,4-12V or 5-18V;外围元件少;电压增益可调,20-200;低失真度。LM386电源电压4-12V,音频功率0.5W。LM386音响功放是由NSC制造的,它的电源电压范围非常宽,最高可使用到15V,消耗静态电流为4mA,当电源电压为12V时,在8欧姆的负载情况下,可提供几百mW的功率。它的典型输入阻抗为50K。 本设计关

28、于LM386音频功率放大器应用电路:如图27所示:图27 LM386音频功率放大器应用电路3软件实现3.1音乐产生的方法一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可。现在以单片机12MHZ晶振为例,例出高中低音符与单片机计数T0相关的计数值如下表3.1所示:表3.1高中低音符与单片机计数T0相关的计数值音符频率(HZ)简谱码(T值) 音符频率(HZ)简谱码(T值)低

29、1DO26263628#4FA#74064860#1DO#27763731中5SO78464898低2RE29463835#5SO#83164934#2RE#31163928中6LA88064968低3M33064021#693264994低4FA34964103中7SI98865030#4FA#37064185高1DO104665058低5SO39264260#1DO#110965085#5SO#41564331高2RE117565110低6LA44064400 #2RE#124565134#646664463高3M131865157低7SI49464524高4FA139765178中1DO

30、52364580#4FA#148065198#1DO#55464633高5SO156865217中2RE58764684#5SO#166165235#2RE#62264732高6LA176065252中3M65964777#6186565268中4FA69864820高7 SI196765283如表3.2所示:音乐的音拍,一个节拍为单位(C调)表3.2音乐的音拍曲调值DELAY曲调值DELAY调4/4125ms调4/462ms调3/4187ms调3/494ms调2/4250ms调2/4125ms表3.3节拍与节拍码对码节拍码节拍数节拍码节拍数11/4拍11/8拍22/4拍21/4拍33/4拍3

31、3/8拍41拍41/2拍51又1/4拍55/8拍61又1/2拍63/4拍82拍81拍A2又1/2拍A1又1/4拍C3拍C1又1/2拍F3又3/4拍对于不同的曲调我们也可以用单片机的另外一个定时/计数器来完成。发音部分代码在程序中实现,靠单片机的一个管脚输出,考虑到声音可能不够大所以我们加入了功放电路,利用LM386来对声音信号进行放大。音频输出信号由AUD OUT引出,信号可经功放电路LM386输出到扬声器或耳机。电路如图31所示。图31 放音电路3.2程序设计流程图开始初始化数码管显示0不播放音乐播放键按下数码管显示1播放第一首音乐前进键按下停止键按下后退键按下数码管显示4播放第四首音乐数码

32、管显示2播放第二首音乐YNYNNNYY图3-2流程图3.3定时器/计数器的选择3.3.1定时器的选择(本文选择定时器T0)1、定时方法:在单片机的控制应用中,定时是必不可少的,可供选择的方法有:、软件定时 软件定时是靠执行一个循环程序以进行时间延迟。软件定时的特点是时间精确,且不需要外加硬件电路。但软件定时要占用CPU,增加CPU开销,因此软件定时的时间不宜太长。此外,软件定时方法在某些情况下无法使用。硬件定时 对于时间较长的定时,常使用硬件电路完成。硬件定时方法的特点是定时功能全部由硬件电路完成,不占CPU时间。但通过改变电路中的元件参数来调节定时时间,在使用上不够灵活方便。可编程定时器定时

33、这种定时方法是通过对系统时钟脉冲的计数来实现的。计数值通过程序设定,改变计数值,也就改变了定时时间,使用起来既灵活又方便。此外,由于采用计数方法实现定时,因此可编程定时器有兼有计数功能,可以对外来脉冲进行计数。3.3.2 89S51定时功能及工作方式选择定时功能:定时功能实际上是通过计数来实现的,不过此时的计数脉冲来自单片机内部。即每个机器周期产生一个计数脉冲。也就是每个机器周期计数器加1。由于一个机器周期等于12个振荡脉冲周期,因此计数频率为振荡频率的1/12。如果单片机采用12MHZ晶体,则计数频率为1MNZ。即每微秒计数器加1。这样不但可以根据计数器值计算出定时时间,也可以反过来按定时时

34、间的要求计算出计数器的预置值。工作方式选择:(本文选择工作方式1)方式1是16位计数结构的工作方式,计数器由TH1全部8位和TL1全部8位构成。当为计数工作方式时,计数值的范围是: 165536(216)当为定时工作方式时,定时时间计算公式为:(216 计数初值)晶振周期12或(216 计数初值)机器周期3.3.3 计数器所谓计数就是指对外部事件进行计数。外部事件的发生以脉冲输入表示,因此计数功能的实质就是对外来脉冲进行计数。89S51芯片有T0(P3.4)和T1(P3.5)两个信号引脚,分别是这两个计数器的计数输入端。外部输入的脉冲在负跳变时有效进行计数器加1(加法计数)。计数方式下,单片机

35、在每个机器周期的S5P2拍节对外部计数脉冲进行采样。如果前一个机器周期采样为高电平,后一个机器周期采样为低电平,即为一个有效的计数脉冲。在下一机器周期的S3P1进行计数。可见采样计数脉冲是在2个机器周期进行的。鉴于此,计数脉冲的频率不能高于振荡脉冲频率的/24。本文利用T1引脚输入脉冲,对按键次数进行计数,以实现歌曲的循环往复3.4定时器/计数器的控制寄存器1、定时器控制寄存器(TCON)TCON寄存器既参与中断控制又参与定时控制。、TF0和TF1计数溢出标志位当计数器溢出(计满)时,该位置“1”;使用查询方式时,此位作状态位供查询,但应注意查询有效后应以软件方法及时将该位清“0”;使用中断方

36、式时,此位作中断标志位,在转向中断服务程序时由硬件自动清“0”。、TR0和TR1定时器运行控制位TR0(TR1)=0 停止定时器/计数器工作TR0(TR1)=1 启动定时器/计数器工作该位根据需要以软件方法使其置“1”或清“0”。2、工作方式控制寄存器(TMOD)TMOD寄存器是一个专用寄存器,用于设定两个定时器/计数器的工作方式。但TMOD寄存器不能位寻址,只能用于字节传送指令设置其内容。 表3.4各位定义如下位序 B7B6 B5B4B3B2B1B0位符号GATEC/TM1M0GATEC/TM1M0 定时/计数器1 定时/计数器04位一组的结构使它不能位寻址,一定义就是4位。从寄存器的位格式

37、中可以看出,它的低半字节定义定时器/计数器0,高半字节定义定时器/计数器1,其中:、GATE门控制GATE=0 以运行控制位TR启动定时器GATE=1 以外中断请求信号启动定时器、C/T定时方式或计数方式选择位C/T=0 定时工作方式C/T=1 计数工作方式、M1M0工作方式选择位M1M0=00 方式0M1M0=01 方式1M1M0=10 方式2M1M0=11 方式33、中断允许控制寄存器(IE) 、EA中断允许总控制位 、ET0(ETI)定时/计数中断允许控制位 ET0(ETI)0 禁止定时/计数中断 ET0(ETI)l 允许定时/计数中断3.5中断3.5.1定时中断源向CPU发出中断请求的

38、来源 称之为中断源。8051是一个多中断源的单片机。有3类共5个中断源,分别是外部中断2个,定时中断2个和串行中断1个。外中断是由外部信号引起的,共有2个中断源,即外部中断“0”和外部中断“1”。他们的中断信号分别由引脚P3.2和P3.3引入。外部中断请求有两种信号方式,即电平方式和脉冲方式。电平方式的中断请求是低电平有效。而脉冲方式是脉冲的后沿负跳变有效,如前一次为高电平,后一次为低电平,即为有效中断请求。因此在这种方式下,中断请求信号的高电平和低电平状态都应维持一个机器周期,以确保电平变化能被单片机采样到。串行中断是为串行数据传送而配置的。每当串行口接收或发送完一组串行数据时,就产生一个中

39、断请求。因为串行中断请求也是在单片机内部自动发生的,所以不需要在芯片上设置引入端。定时中断:是为满足定时或计数的需要而设置的。为此在单片机芯片内部有两个定时/计数器,以对其中的计数结构进行计数的方法,来实现定时或计数功能。当计数结构发生计数溢出时,即表明定时时间到或计数值已满,这时就以计数溢出信号作为中断请求,去置位一个溢出标志位,作为单片机接受中断的标志。由于这种中断请求是在单片机芯片内部发生的,因此不需要在芯片上设置引入端。3.5.2中断控制(1)、定时器控制寄存器(TCON): 该寄存器用于保存外部中断请求以及定时器的计数溢出。寄存器地址88H,位地址8FH88H。表3.5寄存器的内容及

40、位地址如下位地址8FH8EH8DH8CH8BH8AH89H88H位符号TF1TR1TF0TR0IE1IT1IE0IT0这个寄存器既有定时器/计数器的控制功能又有中断控制功能,其中与中断有关的控制位共有6位:、IE0和IE1外部中断请求标志位、IT0和IT1外中断请求触发方式控制位、TF0和TF1计数溢出标志位(2)、中断允许控制寄存器(IE)寄存器地址0A8H,位地址0AFH0A8H。表3.6寄存器的内容及地址如下位地址0AFH0AEH0ADH0ACH0ABH0AAH0A9H0A8H位符号EA/ESET1EX1ET0EX0其中与中断有关的控制位共有6位:、EA中断允许总控制位EA=0 中断总禁

41、止,禁止所有中断EA=1 中断总允许,总允许后中断的禁止或允许由各中断源的中断允许控制位进行设置、EX0和EX1外部中断允许控制位EX0(EX1)=0 禁止外中断EX0(EX1)=1 允许外中断、ET0和ET1定时/计数中断允许控制位ET0(ET1)=0 禁止定时/计数中断ET0(ET1)=1 允许定时/计数中断、ES串行中断允许控制位ES=0 禁止串行中断ES=1 允许串行中断可见,MCS-51是通过中断允许控制寄存器对中断实行两级控制。即以EA位为总控制位,以各中断源的中断允许为分控制位。当总控制位为禁止时,关闭整个中断系统,不管分控制如何,整个中断系统处于禁止状态;当总控制为开启状态时,

42、开放中断系统,这时才能由分控制位进行控制。(3)、中断优先级控制寄存器(IP):寄存器地址0B8H,位地址0BFH0B8H。表3.7寄存器的内容及地址如下位地址0BFH0BEH0BDH0BCH0BBH0BAH0B9H0B8H位符号/PSPT1PX1PT0PXOMCS-51单片机规定了两个中断优先级:高级中断和低级中断。用中断优先级寄存器(IP)的5位状态管理5个中断源的优先级别,即PS、PT1、PX1、PT0、PX0分别对应串行口中断、定时器/计数器1中断、外部中断1中断、定时器/计数器0中断、外部中断0中断。当相应位为1时,设置其为高级中断;相应位为0时,设置其为低级中断。本文中就采用了IP

43、中断。3.5.3中断初始化与中断控制寄存器状态设置 单片机应用中,通过控制寄存器来使用中断系统。对中断的使用是在程序初始化时设置的,如果不包括优先级控制,外中断初始化共有三项内容:中断总允许、外中断允许和中断方式设定。而定时中断则只有两项内容,没有中断方式控制。控制寄存器既可用字节寻址又可进行位寻址,因此既可用字节操作指令又可用位操作指令。例:如开放外中断0,使用字节操作指令为: MOV IE,#81H使用位操作指令: SETB EX SETB EX03.6本章小结在本章中主要是设计中的软件部分,主要包括程序的编写,一些功能通过软件的实现。由于设计中有按键的存在,就要考虑到按键消抖的问题,按键

44、消抖有两种方法,可以通过硬件实现,也可以通过软件实现。本设计采用的是软件消抖,主要是按键相对较多,硬件消抖无法胜任。在定时器/计数器的选择中,T0作为定时器使用时,是对单片机内部机器周期的计数,因其内部频率为晶振频率的1/12,本设计的晶振频率为12MHZ,则T0每接收一个脉冲的时间为1s。当检测到输入引脚上的电平由高跳变到低时,计数器T1就加1。51单片机有5个中断源,对应的中断的型号是0、1、2、3、4。本设计中利用与中断有关的寄存器进行中断控制,其中就有中断优先级控制寄存器(IP)的运用等。通过软件来实现播放器的按键播放多首音乐的功能。4程序的调试及测试4.1检测有无键按下本文采用定时扫描工作方式是利用单片机内部定时器产生定时中断(如10ms),当定时时间到时,CPU执行定时中断函数,对键盘进行扫描。如果有键按下则识别出该键位,并执行相应的键处理功能程序。定时扫描方式的键盘硬件电路与查询方式的电路相同。定时扫描方式实际上是通过定时器中断来实现的,为处理方便,在单片机中设

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1