音乐提示定时器--单片机课程设计

  • 格式:doc
  • 大小:271.00 KB
  • 文档页数:21

目录第1章课程设计的要求、目的 11.1课程设计的要求 11.2课程设计的目的 1第2章总体设计方案32.1 总体方案的选择 32.2总体方案的说明 3第3章系统方框图与工作原理43.1系统设计框图43.2 基本工作原理 4第4章各单元硬件设计及说明 64.1单片机的选择54.2复位电路的设计 54.3晶振电路的设计 54.4音乐播放电路8第5章器件说明95.1 单片机95.2 LED显示器8第6章软件设计与说明96.1 定时显示子程序96.2 系统软件设计方案的确定106.3 音乐定时常数的确定14第7章调试步骤、结果、使用说明12第8章设计总结13附录B:程序清单13第1章课程设计的要求、目的1.1 课程设计的要求音乐提示定时器要求通过设计4个按键设置现在想要倒数的时间:K1--可调整倒数时间为1-60分钟,能够实现时间可调;K2—设置倒数计时时间为5分钟,显示为“0500”;K3—设置倒数计时时间为10分钟,显示为“1000”;K4—设置倒数计时时间为20分钟,显示为“2000”;一旦按键后则开始倒计时,当计时为0则演奏一曲音乐,而且可循环播放,可随时人为停止;内定倒数计时时间为5分钟,显示为0500。

1.2 课程设计的目的(1)加深对基础知识的理解,进一步熟悉和掌握单片机的结构及工作原理。

(2)掌握单片机的接口技术及相关外围芯片的外特性,控制方法。

明确原理图中所使用的元器件功能及在图中的作用,各器件的工作过程及顺序。

(3)通过课程设计,掌握以单片机核心的电路设计的基本方法和技术,了解有关(4)通过实际程序设计和调试,逐步掌握模块化程序设计方法和调试技术。

了解程序设计总体功能及结构,对各子模块的功能以及各子模块之间的关系有较详细的描述。

(5)通过完成一个包括电路设计和程序开发的完整过程,通过实际操作,将理论用于实践,提高对本课程的实际运用能力,在设计的过程中发现问题、解决问题,掌握更多的知识。

第2章总体设计方案2.1 总体方案的选择本课题要求以单片机为核心设计一个音乐提示定时器,具备倒数计时、时间设置、音乐演奏等功能。

设计20分钟、10分钟、5分钟的设置开关或按键,例如20分钟,显示为“20.00”,内定倒数计时时间为5分钟,显示为05.00(开机状态)。

一旦按键后则开始倒计时,当计时为0则演奏一曲音乐,而且可循环播放,可随时停止。

根据题目要求,音乐定时系统由核心处理模块、数码管显示模块、音乐模块、及倒计时模块等组成。

通过对P2口的查询,实现不同时间的设定和调整,系统晶振为11.0592MHz,利用单片机的RESET管脚作为系统开关。

利用查询方式设定倒计时时间。

进行总体设计前需先设计出各子功能模块的程序,并进行调试,各子模块调试成功后,再用一定的连接方法把各子程序连接起来,再次进行调试,直至正确可以实现总体功能为止。

2.2 总体方案的说明通过计算某一音频周期(1/频率),然后将此周期除以2,即为半周期的时间。

利用单片机定时器计时这个半周期时间,每当计时到后就将输出脉冲的I/O口反相,然后重复计时此半周期时间再对I/O口反相,这样就能在此I/O口上得到此频率的脉冲,再结合中断延时程序,程序中节拍控制是通过调用延时子程序DELAY的次数来实现,产生音乐。

利用P2.3、P2.4、P2.5管脚,对应开关K2、K3、K4,分别启动不同的倒计时程序5分钟、10分钟、20分钟。

通过查询方式对P3.2管脚进行查询,进入1到60分钟的时间调整程序。

P0引脚作为显示输出连至LED显示器,P2.0、P2.1、P2.2、P2.3为位选信号,控制不同位的数码管。

程序中使用定时器T0方式1来产生歌谱中各音符对应频率的音频脉冲,由P3.7通放大输出,,1拍为748 ms。

确定了设计思路后,就可以具体设计了。

先编写程序,然后加入硬件进行调试。

第3章系统方框图与工作原理3.1 系统设计框图3.2 基本工作原理音乐的产生主要是通过单片机的I/O口输出高低不同的脉冲信号来控制蜂鸣器发音。

要想产生音频脉冲信号,需要算出某一音频的周期(1/频率),然后将此周期除以2,即为半周期的时间。

利用单片机定时器计时这个半个周期时间,每当计时到后就将输出脉冲的I/O口反相,然后重复计时此半周期时间再对I/O口反相,这样就能在此I/O口上得到此频率的脉冲。

通常,利用单片机的内部定时器0,工作在方式1下,改变计数初值TH0和TL0来产生不同频率。

对于音乐的节拍,每个音符使用1个字节,字节的高4位代表音符的高低,低4位代表音符的节拍。

如果1拍为0.4S,1/4拍为0.1S,只要设定延迟时间就可求得节拍的时间。

假设1/4拍为1DELAY,那么1拍应为4DELAY,以此类推。

所以只要求得1/4拍的DELAY,其余的节拍就是它的倍数。

总而言之,一首乐曲是由音阶和节拍两大要素构成。

一首乐曲演奏的原理是:不同音阶分别对应不同的频率,发出不同的音调,而节拍则控制发出音调时间的长短;若将乐曲的音调连续发出,并使其按相应的节拍变化,即可演奏一首乐曲。

根据这一特点,我们采用单片机辅以相应的接口来设计音乐播放器[3]。

第4章各单元硬件设计及说明4.1 单片机的选择单片机/EA管脚始终接高电平,单片机复位方式采用按键电平触发复位,通过计算可知单片机频率为11.0592MHz时,计时误差最小,精度越高,因此内部时钟频率设为11.0592MHz。

ST89C51系列与MCS-51系列单片机相比,有两大优势:第一,片内程序存储器采用闪速存储器,使程序的写入更方便;第二,提供了更小尺寸的芯片,使整个硬件电路的体积更小。

它以较小的体积、良好的性能价格比倍受青睐。

本次课程设计采用89C51单片机。

4.2 复位电路复位电路根据应用的要求,复位操作有两种基本形式:上电复位和上电或开关复位。

当MCS-5l系列单片机的复位引脚RST(全称RESET)出现2个机器周期以上的高电平时,单片机就执行复位操作。

如果RST持续为高电平,单片机就处于循环复位状态。

上电复位要求接通电源后,自动实现复位操作。

电容C13和电阻R19对电源十5V来说构成微分电路。

上电后,保持RST一段高电平时间,由于单片机内的等效电阻的作用,不用图中电阻R19,也能达到上电复位的操作功能。

要求电源接通后,单片机自动复位,并且在单片机运行期间,用开关操作也能使单片机复位。

由于电容C13的充电和反相门的作用,使RST持续一段时间的高电平。

当单片机已在运行当中时,按下复位键K后松开,也能使RST为一段时间的高电平,从而实现上电或开关复位的操作。

本系统的复位电路采用上电复位。

RET按键可以选择专门的复位按键,也可以选择轻触开关。

4.3 晶振电路晶振电路单片机工作的时间基准是由时钟电路控制的。

在单片机的XTAL1和XTAL2两个管脚,接一只晶振及两只电容就构成了单片机的时钟电路。

电路中,电容器C14和C15对振荡频率有微调作用,通常的取值范围为30PF左右。

石英晶体选择12MHZ就可以。

本次设计应用的电压有+5V。

220V交流电源经变压器,整流,滤波后分别进入芯片7805,产生+5V,这些电源的具体应用情况如下:+5V电源:单片机及外围电路所用电源+9V电源:压电喇叭所用电源4.4 音乐播放电路蜂鸣器有长声有短声两种,可以根据需要进行选择,通过软件编程控制。

在程序里可以设计不同的歌曲来通过播放器进行播放,所以,在这个设计里,是可以有不同的铃声的。

第5章器件说明5.1 单片机AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。

由于将多功能8位CPU和闪烁存储器组合在单个芯片中,A TMEL 的A T89C51是一种高效微控制器,1.主要特性:·与MCS-51 兼容·4K字节可编程闪烁存储器.寿命:1000写/擦循环.数据保留时间:10年·全静态工作:0Hz-24Hz·三级程序存储器锁定·128*8位内部RAM·32可编程I/O线·两个16位定时器/计数器·5个中断源·可编程串行通道·低功耗的闲置和掉电模式·片内振荡器和时钟电路2.振荡器特性:XTAL1和XTAL2分别为反向放大器的输入和输出。

该反向放大器可以配置为片内振荡器。

石晶振荡和陶瓷振荡均可采用。

如采用外部时钟源驱动器件,XTAL2应不接。

有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。

3.芯片擦除:整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE 管脚处于低电平10ms 来完成。

在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。

5.2 LED显示器LED显示器数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。

通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。

在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。

第6章软件设计与说明6.1 定时显示子程序6.2 系统软件设计方案的确定根据设计要求,首先要确定软件设计方案,即确定该软件应该完成哪些功能;其次是规划这些功能需要分成多少个功能模块,以及每一个程序模块的具体任务是什么。

6.3 音乐定时常数的确定产生音乐通过单片机的I/O口输出高低不同的脉冲信号来控制蜂鸣器发音。

利用AT89C52单片机的内部定时器0,工作在方式1下,改变计数初值TH0和TL0来产生不同的频率。

若单片机采用12MHz晶振,要产生频率为587Hz的音频脉冲时,其音频脉冲信号的周期T=1/587=1703.577us,约1704us,半周期的时间852us,因此只要今计数器计数=852us/1us=852,在每计数852次时将I/O口反相,就可得C调中音Re。