单片机LCD显示的音乐倒数计时器_第1页
单片机LCD显示的音乐倒数计时器_第2页
单片机LCD显示的音乐倒数计时器_第3页
单片机LCD显示的音乐倒数计时器_第4页
单片机LCD显示的音乐倒数计时器_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

1、信信息息工工程程学学院院课课程程设设计计报报告告书书题题 目目: : 带有带有 LCDLCD 显示的音乐倒数计时器显示的音乐倒数计时器 专专 业:业: 日 I摘摘 要要近年来随着科技的飞速发展,单片机的应用正在不断地走向深入,同时带动传统控制系统日新月益更新。单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。本次课程设计的项目是带有LED 显示的音乐倒数计时器。主体使用 89C52,通过几个开关进行控制,其中开关 K1用于切换时间设置状态和时钟运行状态;开关 K2 用于切换修改时间数值;开关 K3用于使相应数值加 1 调节;开关 K4 用于减 1

2、调节;开关 K5 用于设定倒计时时间,并且设定好后到时间通过实验箱音频放出一段乐曲作为闹铃。 选做增加项目:还可增加秒表功能(精确到 0.01s)或年月日设定功能关键词:单片机 课程项目 计时器 89C52II目目 录录摘摘 要要.I1 前前 言言.11.1 课题开发背景.11.2 课题研究的目的和意义.11.3 课题的主要研究工作.12 系统硬件设计及说明系统硬件设计及说明.32.1 系统组成及总体框图.32.2 部分硬件方案论述.32.3 硬件电路图.42.4 元件清单.42.4.1 AT89C52.42.4.2 LCD1602.52.4.3 按键控制单元.62.4.4 SPEAKER.7

3、3 系统软件设计系统软件设计.83.1 系统总体功能流程图.83.2 使用单片机实现音乐节拍.103.3 使用单片机产生音频脉冲.113.4 使用定时器实现定时功能.113.5 程序描述.124 总结与展望总结与展望.15参考文献参考文献.1611 前前 言言1.1 课题开发背景课题开发背景随着单片机技术的成熟,单片机已经渗透到我们的学习、生活、生产和工作各个领域中, 凡是有自动控制要求的地方一般都会有单片机的身影出现:从简单到复杂,从空中、地面到地下,凡是能想象到的地方几乎都有使用单片机的需求。单片机的应用有利于铲平的小型化、多功能化和智能化。有利于提高生产、生活效率,保证安全。本系统的开发

4、也是旨在给人们的生活带来方便。单片机技术使我们可以利用软硬件实现倒计数计时器的功能,从而为生活带来方便,例如工作生活中小睡片刻或者做食物等,可以做一小段时间计时,并且可以进行一定的功能扩展。鉴于传统计时器只是能够纯粹的实现计时功能,而该设计不但可以实现对基本计时功能,同时当倒数计时为 0 时,还会发出一段音乐,起到一定的提醒功能,而且还可以添加时钟、闹钟、秒表功能和万历年显示功能。使该设计功能更加完善。1.2 课题研究的目的和意义课题研究的目的和意义利用 AT89C52 单片机自带资源,设计一款带有 LCD 显示的音乐倒数计时器。1.3 课题的主要研究工作课题的主要研究工作本课题设计的主要工作

5、要求有以下几个方面:(1)字符型 LCD(162)显示器,显示格式为“TIME 分分:秒秒” 。(2) 用 4 个按键操作来设置当前想要倒计数的时间。(3)一旦按下键 K5 则开始倒计数,当计数为 0 时,发出一阵音乐声。(4) 程序执行后工作指示灯 LED 闪动,表示程序开始执行,按下操作键 K1K4动作如下: K1-可调整倒计数的时间 160 分钟。 K2-设置倒计数的时间为 5 分钟,显示“0500” 。 K3-设置倒计数的时间为 10 分钟,显示“1000” 。 K4-设置倒计数的时间为 20 分钟,显示“2000” 。(5)复位后 LCD 的画面应能显示倒计时的分钟和秒数,此时按 K

6、1 键,则在 LCD上显示出设置画面。此时,若: 按 K2 键-增加倒计数的时间 1 分钟。 按 K3 键-减少倒计数的时间 1 分钟。 按 K4 键-设置完成。2扩充功能:(1) 增加时钟及闹钟功能。(2) 增加秒表计数功能。(3) 增加万年历显示“年月日” 。32 系系统统硬硬件件设设计计及及说说明明2.1 系统组成及总体框图系统组成及总体框图硬件设计的任务是根据总体设计要求,在选择的机型的基础上,具体确定系统中所要使用的元器件,设计出系统的原理框图、电路原理图。该设计要实现一种由单片机控制的带 LCD 显示的倒数计时器,单片机工作于12MHZ 时钟频率,使用其定时/计数器 T0,改变计数

7、值 TH0 和 TL0 可以产生不同频率的脉冲信号。该设计具有 5 个功能按键,用户可以通过这些按键设置定时时间和选择控制定时,倒计数为零时,可通过扬声器将音乐播放出来。系统结构图如图 2-1 所示。振荡电路复位电路 音频输出电路89C52 芯片LCD 显示电路键盘或开关控制电路图 2-1 系统结构图2.2 系统硬件方案论述系统硬件方案论述2.21 系统方案概述系统方案概述 利用单片机、LCD 显示器和压电喇叭实现音乐倒数计时器。 单片机具有高性能、速度快、体积小、价格低、稳定可靠、应用广泛、通用性强等突出优点。它在硬件结构、指令系统、I/O 端口、功能消耗及可靠性等方面均有独特之处,其最显著

8、的特点之一就是具有非常有效的控制功能。而LCD 显示器具有以及小、重量轻、工作电压低、功耗极低、显示内容丰富、稳定可靠、成本低控制驱动方便、接口简单易用、模块化结构紧凑等特点。2.22 LCD 显示方式的方案比较。显示方式的方案比较。方案一:采用花样显示,花样显示是指 lcd 显示某一屏字符时,采取从左到右4或者是从右到左的整屏移动的显示方式。在这种显示方式下,给人的感觉就是程序是在执行的,同时如果控制好了移动一屏的时间间隔的话,在整体视觉上可以达到很好的效果。方案二:采用静态显示,静态显示是指 lcd 显示某一屏字符时,时钟保持当前字符的显示,不使用移屏显示。便于控制,同时能够满足正常的显示

9、效果。由于在显示中存在播放时间的动态变化,这样的话,即使是不产生整屏移动,也能给人动态感,也易于控制。基于以上各种特点,设计时该系统选择了方案二。2.3 硬件电路图硬件电路图系统硬件电路图如图 2-2 所示。2.4 元件清单元件清单因为小组是分工协作的,我主要的工作是设计模块(5) ,后面将会具体介绍。2.4.1 AT89C52AT89C52 有 40 个引脚,32 个外部双向输入/输出(I/O)端口,同时内含 2 个外中断口,3 个 16 位可编程定时计数器,2 个全双工串行通信口,2 个读写口线,AT89C52 可以按照常规方法进行编程,但不可以在线编程(S 系列的才支持在线编程)。其将通

10、用的微处理器和 Flash 存储器结合在一起,特别是可反复擦写的 Flash 存储器可有效地降低开发成本。主要特性: 兼容 MCS51 指令系统 8k 可反复擦写(1000 次)Flash ROM 32 个双向 I/O 口 256x8bit 内部 RAM 3 个 16 位可编程定时/计数器中断 时钟频率 0-24MHz 2 个串行中断 可编程 UART 串行通道 2 个外部中断源 共 8 个中断源 2 个读写中断口线 3 级加密位 低功耗空闲和掉电模式 软件设置睡眠和唤醒功能5图 2-2 系统硬件连接图2.4.2 LCD1602 图 2-3 162 的液晶显示屏LM016L1602LCD 的指

11、令说明及时序1602 液晶模块内部的控制器共有 11 条控制指令,如表 2-1 所示.表 2-1 1602 液晶模块控制指令序号 指令RSR/WD7D6D5D4D3D2D1D01清显示000000000162光标返回000000001*3置输入模式00000001I/DS4显示开/关控制0000001DCB5光标或字符移位000001S/C R/L*6置功能00001DLNF*7置字符发生存贮器地址0001字符发生存贮器地址8置数据存贮器地址001显示数据存贮器地址9读忙标志或地址01BF计数器地址10写数到 CGRAM 或 DDRAM)10要写的数据内容11从 CGRAM 或 DDRAM 读

12、数11读出的数据内容2.4.3 按键控制单元按键控制单元采用 5 个 button,分别用来设置定时时间或控制定时功能,对应 P2.0 P2.4 端口。其硬件连接如图 2-4 所示。 图 2-4 按键连接图72.4.4 SPEAKER 当倒计数为 0 时,系统需放出一段音乐,其音频输出是通过 SPEAKER 实现。音频电路输出如下: 图 2-5 音频输出连接图8 3 系系统统软软件件设设计计本软件设计关键是要实现一种由单片机控制的带有 LCD 显示的音乐倒数计时器。通过 K1K5 开关进行控制时间设置来完成其基本功能,当倒计时为零时,通过通过扬声器放出一段乐曲作为闹铃。3.1 系统总体功能流程

13、图系统总体功能流程图 3.1.1 系统基本流程图系统基本流程图9 开始初始化相关变量及LCD显示K1K4设置计时初值LCD倒计时显示K5否按下K2K3是否按下倒计数时间加减操作Y(开始倒计时)YN倒计数为零输出音乐YNK4是否按下NY(设置完成)结束N工作指示灯LED闪动K1是否按下YN3.1.2 模块(模块(5)的流程图)的流程图:10 LCD倒计时显示K1是否按下K2是否按下K3是否按下关定时器YK4是否按下开定时器Y增加倒计数时1分钟减少倒计数时1分钟YYNN3.2 使用单片机实现音乐节拍使用单片机实现音乐节拍除了音符以外,节拍也是音乐的关键组成部分。节拍实际上就是音持续时间的长短,在单

14、片机系统中可以用延时来实现,如果 1/4 拍的延时是 0.4 秒,则 1 拍的延时是 1.6 秒,只要知道 1/4 拍的延时时间,其余的节拍延时时间就是它的陪数。如果单片机要自己播放音乐,那么必须在程序设计中考虑到节拍的设置,由于本例实现的音乐发生器是由用户通过键盘输入弹奏乐曲的,所以节拍由用户掌握,不由程序控制。对于不同的曲调我们也可以用单片机的另外一个定时/计数器来完成。音乐的音拍,一个节拍为单位(C 调)具体如表 3-1 所示。表 3-1 音乐节拍表曲调值DELAY 曲调值DELAY调 4/4125ms 调 4/462ms调 3/4187ms 调 3/494ms11调 2/4250ms

15、调 2/4125ms 3.3 使用单片机产生音频脉冲使用单片机产生音频脉冲了解音乐的一些基本知识后可知,产生不同频率的音频脉冲即能产生音乐,对于单片机而言,产生不同频率有脉冲非常方便,可以利用它的定时/计数器来产生这样的方波频率信号,因此,需要弄清楚音乐中的音符和对应的频率,以及单片机定时计数的关系。在本实验中,单片机工作于 12MHZ 时钟频率,使用其定时/计数器 T0,工作模式为 1,改变计数值 TH0 和 TL0 可以产生不同频率的脉冲信号,在此情况下,C 调的各音符频率与计数值 T 的对照如表 3-2 所示。T 的值决定了 TH0 和 TL0 的值,其关系为:TH0=T/256,TL0

16、=T%2563.4 使用定时器实现定时功能使用定时器实现定时功能3.41 定时器的工作方式和方式设定定时器的工作方式和方式设定 MCS-51 单片机有两路独立的定时器,每路定时器有 4 种工作方式(03) ,方式0 是 13 位计数结构,计数器由 TH 全部 8 位与 TL 的低 5 位构成;方式 1 是 16 位计数结构,计数器由 TH 与 TL 全部 8 位共 16 位组成;方式 2 是 8 位计数结构方式,计数器由 TL8 位组成,与其他方式不同的是,当定时溢出时,硬件自动将 TH 的值装入 TL 中,有自动加载功能。前三种工作方式,两路定时器的设置与使用完全相同,但在工作方式 3 下,

17、两路定时器有很大差别,只有 0 路定时器可以工作在方式 3 下,1 路定时器只能工作在方式 02 下,在工作方式 3 下,0 路定时器被拆分成两个独立的 8 位计数器 TL0 与 TH1,其中 0 路定时器的各控制位和引脚信号全归 TL0 使用,因此 TH0 只能做简单的定时器使用,其控制位占用了 1 路定时器的控制位,如果 0路定时器工作在方式 3 下,1 路定时器由于让出了所属控制位,通常作为串行口波特率发生器3。定时器的工作方式选择主要依靠设置 TMOD 寄存器的值,其各位定义如下: 位序位序 B7 B6 B5 B4 B3 B2 B1 B0 位符号位符号 GATE C/T M1 M0 G

18、ATE C/T M1 M0 其中,B0B3 用来控制 0 路定时器,B4B7 用来控制 1 路定时器。 GATE 位为门控位,主要确定定时器启动的方式,如果 GATE=0,则用 TR0(TR1) 位启动/关闭定时器,如果 GATE=1,则以外中断请求信号(INT0 或 INT1)启动定时 器。C/T 位为定时与计数选择位,C/T=0 为定时方式,C/T=1 为计数方式。12M0、M1 为工作方式选择位M1M0=00 方式 0 M1M0=10 方式 2 M1M0=01 方式 1 M1M0=11 方式 3选择定时器工作方式,应根据上述规定向寄存器 TMOD 中写入相应数设计本系统时选择的是 T0

19、定时器,工作在方式 1 下。3.42 定时器计数初值设置定时器计数初值设置定时器工作方式选定后,定时溢出时间唯一取决于计数器的初值,如何根据应用需要确定计数器初值,也是定时器应用的一个重要问题。假定单片机机器周期为K0,所选定的定时方式计数器为 n 位,所实现的定时时间长度为 T,则有:(2nx)K0=T其中 x 为计数器的初值,根据上式可以求出初值 x 为: x=2n(T/K0)单片机机器周期 k0 由单片机时钟频率 f 确定即: k0=12/f 在实际应用中,本系统单片机时钟频率 f 为 6mHz 所以单片机机器周期 k0=2s,然后根据选定的工作方式确定计数器位数 n,将所得 k0 与

20、n 代入式 2,求出计数初值 x,并根据所选择的计数方式将 x 的值分入 TH0 与 TL0。经计算得,该定时器定时 100ms 时的计数初值为 TL0=0XB7 TH0=0X3C3.5 程序描述程序描述 3.51 程序功能描述程序功能描述我主要的工作是设计模块(5) ,其具体实现功能如下:复位后 LCD 的画面应能显示倒计时的分钟和秒数,此时按 K1 键,则在 LCD 上显示出设置画面。此时,若: 按 K2 键-增加倒计数的时间 1 分钟。 按 K3 键-减少倒计数的时间 1 分钟。 按 K4 键-设置完成。其电路连接:P2.0K1 P2.1K2 P2.2K3 P2.3K4 P2.4K5 按

21、键按下,则相应端口输出为 0(低电平) 3.52 程序代码程序代码(1)按键控制和更改时间函数void ChangeTime() unsigned char b,a=0 xFE, b=a|P2; if(b=0 xFE) /K1 按下13 TR0=1; /关定时器 T0,计时暂停 a=0 xFD; b=a|P2; if(b=0 xFD) /K2 按下 min+; /增加 1 分钟定时时间 a=0 xF7; b=a|P2; if(b=0 xF7) /K4 按下 TR0=0; /开定时器 T0,计时重新开始 a=0 xFB; b=a|P2; if(b=0 xFB) /K3 按下 min-; /减少

22、1 分钟定时时间 a=0 xF7; b=a|P2; if(b=0 xF7) /K4 按下 TR0=0; /开定时器 T0 (2)定时(定时器 T0)功能函数: void INT_T0() interrupt 1 TH0=0 x3C; TL0=0 xB7; count+; if(count=10) /定时到 1 秒 sec-; /倒计时秒减 114 count=0; if(sec=-1) min-; sec=59; (3)主函数void main() /*主程序 */ TMOD=0 x01; /*设置 T0 的工作模式为方式 1*/ TL0=0XB7; /*设置定时计数初值*/ TH0=0X3C; EA=1; /*允许 CPU 中断*/ ET0=1; /

温馨提示

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

最新文档

评论

0/150

提交评论