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

下载本文档

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

文档简介

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

2、增加秒表功能(精确到 0.01s )或年月日设定功能关键词:单片机 课程项目 计时器 89C52目录摘 要 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 73 系统软件设计 83.1 系统总体功能流程图 83.2 使用单片机实现音乐节拍 103.3使用单片机产生音频脉冲 113.4使用定时器实现定时功能 123

3、.5程序描述 124 总结与展望 15参考文献 161.1 课题开发背景随着单片机技术的成熟,单片机已经渗透到我们的学习、生活、生产和工作各个 领域中 , 凡是有自动控制要求的地方一般都会有单片机的身影出现:从简单到复杂, 从空中、地面到地下,凡是能想象到的地方几乎都有使用单片机的需求。单片机的应 用有利于铲平的小型化、 多功能化和智能化。 有利于提高生产、 生活效率, 保证安全 本系统的开发也是旨在给人们的生活带来方便。单片机技术使我们可以利用软硬件实现倒计数计时器的功能, 从而为生活带来方 便,例如工作生活中小睡片刻或者做食物等,可以做一小段时间计时,并且可以进行 一定的功能扩展。 鉴于传

4、统计时器只是能够纯粹的实现计时功能,而该设计不但可以 实现对基本计时功能,同时当倒数计时为 0 时,还会发出一段音乐,起到一定的提醒 功能,而且还可以添加时钟、闹钟、秒表功能和万历年显示功能。使该设计功能更加 完善。1.2 课题研究的目的和意义利用 AT89C52 单片机自带资源,设计一款带有 LCD 显示的音乐倒数计时器。1.3 课题的主要研究工作本课题设计的主要工作要求有以下几个方面:(1) 字符型LCD(16X 2)显示器,显示格式为“ TIME分分:秒秒”。2) 用 4 个按键操作来设置当前想要倒计数的时间。(3) 旦按下键K5则开始倒计数,当计数为0时,发出一阵音乐声。(4) 程序执

5、行后工作指示灯LED闪动,表示程序开始执行,按下操作键 K1K4 动作如下:5)K1- 可调整倒计数的时间K2- 设置倒计数的时间为K3- 设置倒计数的时间为K4- 设置倒计数的时间为160 分钟。5 分钟,显示“ 0500 10 分钟,显示20 分钟,显示复位后LCD的画面应能显示倒计时的分钟和秒数,此时按 上显示出设置画面。此时,若:按K2键-增加倒计数的时间1分钟。按K3键-减少倒计数的时间1分钟。”。1000”。2000”。K1 键,则在 LCD-按K4键-设置完成 扩充功能 :(1) 增加时钟及闹钟功能。(2)增加秒表计数功能。(3)增加万年历显示“年月日2系统硬件设计及说明2.1系

6、统组成及总体框图硬件设计的任务是根据总体设计要求,在选择的机型的基础上,具体确定系统中所要使用的元器件,设计出系统的原理框图、电路原理图。该设计要实现一种由单片机控制的带LCD显示的倒数计时器,单片机工作于12MHZ时钟频率,使用其定时/计数器TO,改变计数值THO和TL0可以产生不同频 率的脉冲信号。该设计具有5个功能按键,用户可以通过这些按键设置定时时间和选 择控制定时,倒计数为零时,可通过扬声器将音乐播放出来。系统结构图如图2-1所示。图2-1系统结构图2.2系统硬件方案论述2.21系统方案概述利用单片机、LCD显示器和压电喇叭实现音乐倒数计时器。单片机具有高性能、速度快、体积小、价格低

7、、稳定可靠、应用广泛、通用 性强等突出优点。它在硬件结构、指令系统、I/O端口、功能消耗及可靠性等方 面均有独特之处,其最显著的特点之一就是具有非常有效的控制功能。而LCD显示器具有以及小、重量轻、工作电压低、功耗极低、显示内容丰富、稳定可 靠、成本低控制驱动方便、接口简单易用、模块化结构紧凑等特点。2.22 LCD显示方式的方案比较。方案一:采用花样显示,花样显示是指led显示某一屏字符时,采取从左到右或 者是从右到左的整屏移动的显示方式。在这种显示方式下,给人的感 觉就是程序是在执行的, 同时如果控制好了移动一屏的时间间隔的话, 在整体视觉上可以达到很好的效果。方案二:采用静态显示,静态显

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

9、 AT89C52 可以按照常规方法进行编程 , 但不可以在线编程 (S 系列的才支持在线编程 ) 。其将通用 的微处理器和 Flash 存储器结合在一起, 特别是可反复擦写的 Flash 存储器可有效地 降低开发成本。主要特性:兼容MCS5指令系统 8k可反复擦写(1000次)Flash ROM32个双向I/O 口256x8bit内部RAM3 个 16 位可编程定时 / 计数器中断 时钟频率 0-24MHz2个串行中断可编程UART串行通道2 个外部中断源 共 8 个中断源2 个读写中断口线 3 级加密位低功耗空闲和掉电模式软件设置睡眠和唤醒功能pinrrzpzn1. 喘暑" P7.

10、4/A1Z*s*aV2J9A1* F2.7/A15P 口 3. M3 rn.VADIE砂阳.创畑 iDJACfTBR-a-BTM- - P ,-oR2ALE. U2:AY貧pSG=TE-'fOIYZ ii.irn® raaHlHD *jnmP3.*rra wajim fJj&W P3.7/W图2-2系统硬件连接图2.4.2 LCD1602图2-3 16忽的液晶显示屏 LM016L1602LCD的指令说明及时序1602液晶模块内部的控制器共有11条控制指令,如表 2-1所示.表2-1 1602液晶模块控制指令骨口, 序号指令RSR/WD7D6D5D4D3D2D1D01清

11、显示00000000012光标返回000000001*3置输入模式00000001I/DS4显示开/关控制0000001DCB5光标或字符移位000001S/CR/L*6置功能00001DLNF*7置字符发生存贮器地址0001字符发生存贮器地址8置数据存贮器地址001显示数据存贮器地址9渎忙标志或地址01BF计数器地址10写数到CGRA或DDRAJM10要写的数据内容11从CGRA或 DDRA读数11读出的数据内容2.4.3按键控制单元P2.0 P2.4端口采用5个button,分别用来设置定时时间或控制定时功能,对应其硬件连接如图2-4所示P24姓 叫何 P2.2/A1D P2 3/A11

12、P2.4/A12 P2.5/A13P2.6/A14P2.7/A15P3.DJRXDP3.i/pcq P3.2JIMTO P3.3/INTTP3.4/TDP3 5/T1pa.eywRP3 7/RD222720图2-4按键连接图2.4.4 SPEAKER当倒计数为0时,系统需放出一段音乐,其音频输出是通过SPEAKER实现。音频电路输出如下:30-.1J/M.E EAP3.4/A12P2j5/A13P2«XA14P2.?;A15PI 0/T2P3 .Q/RKDPI 1/T2EXP3.1/TXDF1.2F3,2/TnTSP1.3P3.3/INT1P1.4P3 .VTDP1.5P3jfl/r

13、iF1.®P3-5/WRP17R3.7/ROAT8et52te<t>1C11121411 ie212C图2-5音频输出连接图3 系统软件设计本软件设计关键是要实现一种由单片机控制的带有LCD显示的音乐倒数计时器通过 K1K5 开关进行控制时间设置来完成其基本功能,当倒计时为零时,通过通过 扬声器放出一段乐曲作为闹铃。3.1 系统总体功能流程图3.1.1 系统基本流程图开始3.1.2模块(5)的流程图:3.2使用单片机实现音乐节拍除了音符以外,节拍也是音乐的关键组成部分。节拍实际上就是音持续时间的长短,在单片机系统中可以用延时来实现,如果1/4拍的延时是0.4秒,则1拍的延

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

15、于单片机而言,产生不同频率有脉冲非常方便,可以利用它的定时/计数器来产生这样的方波频率信号,因此,需要弄清楚音乐中的音符和对应的频率,以及单片机定时计 数的关系。在本实验中,单片机工作于12MHZ时钟频率,使用其定时/计数器TO,工作模 式为1,改变计数值THO和TLO可以产生不同频率的脉冲信号, 在此情况下,C调的 各音符频率与计数值T的对照如表3-2所示。T的值决定了 THO和TLO的值,其关系为:TH0=T/256,TL0=T%2563.4使用定时器实现定时功能3.41定时器的工作方式和方式设定MCS-51单片机有两路独立的定时器,每路定时器有4种工作方式(O3),方式O是13位计数结构

16、,计数器由TH全部8位与TL的低5位构成;方式1是16位计 数结构,计数器由TH与TL全部8位共16位组成;方式2是8位计数结构方式,计 数器由TL8位组成,与其他方式不同的是,当定时溢出时,硬件自动将 TH的值装入 TL中,有自动加载功能。前三种工作方式,两路定时器的设置与使用完全相同,但 在工作方式3下,两路定时器有很大差别,只有 O路定时器可以工作在方式3下,1 路定时器只能工作在方式O2下,在工作方式3下,O路定时器被拆分成两个独立 的8位计数器TLO与TH1,其中O路定时器的各控制位和引脚信号全归 TLO使用,因 此THO只能做简单的定时器使用,其控制位占用了1路定时器的控制位,如果

17、O路定时器工作在方式3下,1路定时器由于让出了所属控制位,通常作为串行口波特率 发生器3。定时器的工作方式选择主要依靠设置 TMOD寄存器的值,其各位定义如下:位序B7B6B5B4B3B2B1BO位符号GATEC/TM1M0GATEC/TM1MO其中,BOB3用来控制O路定时器,B4B7用来控制1路定时器。GATE位为门控位,主要确定定时器启动的方式,如果 GATE=0则用TRO (TR1) 位启动/关闭定时器,如果GATE=1则以外中断请求信号(INTO或INT1 )启动定时 器。C/T位为定时与计数选择位,C/T=0为定时方式,C/T=1为计数方式。M0 M1为工作方式选择位M1M0=00

18、 方式 0M1M0=10 方式 2 M1M0=01 方式 1M1M0=11 方式 3选择定时器工作方式,应根据上述规定向寄存器 TMOD 中写入相应数 设计本系统时选择的是 T0 定时器,工作在方式 1 下。3.42 定时器计数初值设置 定时器工作方式选定后,定时溢出时间唯一取决于计数器的初值,如何根据应用 需要确定计数器初值,也是定时器应用的一个重要问题。假定单片机机器周期为K0,所选定的定时方式计数器为n位,所实现的定时时间长度为 T,则有:(2nx)K0=T其中 x 为计数器的初值,根据上式可以求出初值 x 为:x=2n (T/K0)单片机机器周期 k0 由单片机时钟频率 f 确定即:k

19、0=12/f在实际应用中,本系统单片机时钟频率 f为6mHz所以单片机机器周期k0=2 g,然 后根据选定的工作方式确定计数器位数 n,将所得k0与n代入式2,求出计数初值x, 并根据所选择的计数方式将x的值分入TH0与TL0。经计算得,该定时器定时100ms时的计数初值为TL0=0XB7 TH0=0X3C3.5 程序描述3.51 程序功能描述我主要的工作是设计模块( 5),其具体实现功能如下:复位后LCD的画面应能显示倒计时的分钟和秒数,此时按K1键,则在LCD上显示出设置画面。此时,若:按K2键-增加倒计数的时间1分钟。按K3键-减少倒计数的时间1分钟。按K4键-设置完成。其电路连接:P2

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

21、 1 分钟定时时间a=0xF7;b=a|P2;if(b=0xF7) /K4 按下TR0=0;/开定时器 T0(2) 定时(定时器TO)功能函数:void INT_T0() interrupt 1TH0=0x3C;TL0=0xB7;count+;if(count=10)/定时到 1 秒sec-;/倒计时秒减 1count=0;if(sec=-1) min-; sec=59;(3)主函数 void main()TMOD=0x01;TL0=0XB7; TH0=0X3C;EA=1;/* 主程序 */*设置 T0 的工作模式为方式 1*/* 设置定时计数初值 */ET0=1;/*允许 CPU 中断*/*允许 T0 中断*/4 总结与展望此次课程设计,系统部分功能已实现。可以播放存储演奏

温馨提示

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

最新文档

评论

0/150

提交评论