带有LCD显示的音乐倒数计时器.doc_第1页
带有LCD显示的音乐倒数计时器.doc_第2页
带有LCD显示的音乐倒数计时器.doc_第3页
带有LCD显示的音乐倒数计时器.doc_第4页
带有LCD显示的音乐倒数计时器.doc_第5页
免费预览已结束,剩余14页可下载查看

下载本文档

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

文档简介

信信 息息 工工 程程 学学 院院 课课 程程 设设 计计 报报 告告 书书 题题 目目 带有带有 LCDLCD 显示的音乐倒数计时器显示的音乐倒数计时器 专专 业 业 计算机科学与技术计算机科学与技术 日 信息工程学院课程设计报告 I 摘摘 要要 近年来随着科技的飞速发展 单片机的应用正在不断地走向深入 同时带动传 统控制系统日新月益更新 单片机具有强大的控制功能和灵活的编程实现特性 它 已经溶入现代人们的生活中 成为不可替代的一部分 本次课程设计的项目是带有 LED 显示的音乐倒数计时器 主体使用 89C52 通过几个开关进行控制 其中开关 K1 用于切换时间设置状态和时钟运行状态 开关 K2 用于切换修改时间数值 开关 K3 用于使相应数值加 1 调节 开关 K4 用于减 1 调节 开关 K5 用于设定倒计时时间 并且设定好后到时间通过实验箱音频放出一段乐曲作为闹铃 选做增加项目 还可增加秒表功能 精确到 0 01s 或年月日设定功能 关键词 单片机 课程项目 计时器 89C52 信息工程学院课程设计报告 II 目目 录录 摘摘 要要 I 1 前前 言言 1 1 1 课题开发背景 1 1 2 课题研究的目的和意义 1 1 3 课题的主要研究工作 1 2 系统硬件设计及说明系统硬件设计及说明 3 2 1 系统组成及总体框图 3 2 2 部分硬件方案论述 3 2 3 硬件电路图 4 2 4 元件清单 4 2 4 1 AT89C52 4 2 4 2 LCD1602 5 2 4 3 按键控制单元 6 2 4 4 SPEAKER 7 3 系统软件设计系统软件设计 8 3 1 系统总体功能流程图 8 3 2 使用单片机实现音乐节拍 10 3 3 使用单片机产生音频脉冲 11 3 4 使用定时器实现定时功能 11 3 5 程序描述 12 4 总结与展望总结与展望 15 参考文献参考文献 16 信息工程学院课程设计报告 1 1 前前 言言 1 1 课题开发背景课题开发背景 随着单片机技术的成熟 单片机已经渗透到我们的学习 生活 生产和工作各 个领域中 凡是有自动控制要求的地方一般都会有单片机的身影出现 从简单到复杂 从空中 地面到地下 凡是能想象到的地方几乎都有使用单片机的需求 单片机的 应用有利于铲平的小型化 多功能化和智能化 有利于提高生产 生活效率 保证 安全 本系统的开发也是旨在给人们的生活带来方便 单片机技术使我们可以利用软硬件实现倒计数计时器的功能 从而为生活带来 方便 例如工作生活中小睡片刻或者做食物等 可以做一小段时间计时 并且可以 进行一定的功能扩展 鉴于传统计时器只是能够纯粹的实现计时功能 而该设计不 但可以实现对基本计时功能 同时当倒数计时为 0 时 还会发出一段音乐 起到一 定的提醒功能 而且还可以添加时钟 闹钟 秒表功能和万历年显示功能 使该设 计功能更加完善 1 2 课题研究的目的和意义课题研究的目的和意义 利用 AT89C52 单片机自带资源 设计一款带有 LCD 显示的音乐倒数计时器 1 3 课题的主要研究工作课题的主要研究工作 本课题设计的主要工作要求有以下几个方面 1 字符型 LCD 16 2 显示器 显示格式为 TIME 分分 秒秒 2 用 4 个按键操作来设置当前想要倒计数的时间 3 一旦按下键 K5 则开始倒计数 当计数为 0 时 发出一阵音乐声 4 程序执行后工作指示灯 LED 闪动 表示程序开始执行 按下操作键 K1 K4 动作如下 K1 可调整倒计数的时间 1 60 分钟 K2 设置倒计数的时间为 5 分钟 显示 0500 K3 设置倒计数的时间为 10 分钟 显示 1000 K4 设置倒计数的时间为 20 分钟 显示 2000 5 复位后 LCD 的画面应能显示倒计时的分钟和秒数 此时按 K1 键 则在 LCD 上显示出设置画面 此时 若 按 K2 键 增加倒计数的时间 1 分钟 按 K3 键 减少倒计数的时间 1 分钟 按 K4 键 设置完成 信息工程学院课程设计报告 2 扩充功能 1 增加时钟及闹钟功能 2 增加秒表计数功能 3 增加万年历显示 年月日 信息工程学院课程设计报告 3 2 系系统统硬硬件件设设计计及及说说明明 2 1 系统组成及总体框图系统组成及总体框图 硬件设计的任务是根据总体设计要求 在选择的机型的基础上 具体确定系统 中所要使用的元器件 设计出系统的原理框图 电路原理图 该设计要实现一种由单片机控制的带 LCD 显示的倒数计时器 单片机工作于 12MHZ 时钟频率 使用其定时 计数器 T0 改变计数值 TH0 和 TL0 可以产生不同频 率的脉冲信号 该设计具有 5 个功能按键 用户可以通过这些按键设置定时时间和 选择控制定时 倒计数为零时 可通过扬声器将音乐播放出来 系统结构图如图 2 1 所示 振荡电路 复位电路 音频输出电路 89C52 芯片 LCD 显示电路 键盘或开关控 制电路 图 2 1 系统结构图 2 2 系统硬件方案论述系统硬件方案论述 2 21 系统方案概述系统方案概述 利用单片机 LCD 显示器和压电喇叭实现音乐倒数计时器 单片机具有高性能 速度快 体积小 价格低 稳定可靠 应用广泛 通 用性强等突出优点 它在硬件结构 指令系统 I O 端口 功能消耗及可靠性 等方面均有独特之处 其最显著的特点之一就是具有非常有效的控制功能 而 LCD 显示器具有以及小 重量轻 工作电压低 功耗极低 显示内容丰富 稳 定可靠 成本低控制驱动方便 接口简单易用 模块化结构紧凑等特点 2 22 LCD 显示方式的方案比较 显示方式的方案比较 方案一 采用花样显示 花样显示是指 lcd 显示某一屏字符时 采取从左到右 信息工程学院课程设计报告 4 或者是从右到左的整屏移动的显示方式 在这种显示方式下 给人的 感觉就是程序是在执行的 同时如果控制好了移动一屏的时间间隔的 话 在整体视觉上可以达到很好的效果 方案二 采用静态显示 静态显示是指 lcd 显示某一屏字符时 时钟保持当前字 符的显示 不使用移屏显示 便于控制 同时能够满足正常的显示效 果 由于在显示中存在播放时间的动态变化 这样的话 即使是不产生整 屏移动 也能给人动态感 也易于控制 基于以上各种特点 设计时该系统选择了方案二 2 3 硬件电路图硬件电路图 系统硬件电路图如图 2 2 所示 2 4 元件清单元件清单 因为小组是分工协作的 我主要的工作是设计模块 5 后面将会具体介绍 2 4 1 AT89C52 AT89C52 有 40 个引脚 32 个外部双向输入 输出 I O 端口 同时内含 2 个外 中断口 3 个 16 位可编程定时计数器 2 个全双工串行通信口 2 个读写口线 AT89C52 可以按照常规方法进行编程 但不可以在线编程 S 系列的才支持在线编程 其将通用的微处理器和 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 16 2 的液晶显示屏LM016L 1602LCD 的指令说明及时序 1602 液晶模块内部的控制器共有 11 条控制指令 如表 2 1 所示 表 2 1 1602 液晶模块控制指令 序号 指令 RSR WD7D6D5D4D3D2D1D0 1 清显示 0000000001 信息工程学院课程设计报告 6 2 光标返回 000000001 3 置输入模式 00000001I DS 4 显示开 关控制 0000001DCB 5 光标或字符移位 000001S C R L 6 置功能 00001DLNF 7 置字符发生存贮器地址 0001 字符发生存贮器地址 8 置数据存贮器地址 001 显示数据存贮器地址 9 读忙标志或地址 01BF 计数器地址 10 写数到 CGRAM 或 DDRAM 10 要写的数据内容 11 从 CGRAM 或 DDRAM 读数 11 读出的数据内容 2 4 3 按键控制单元按键控制单元 采用 5 个 button 分别用来设置定时时间或控制定时功能 对应 P2 0 P2 4 端 口 其硬件连接如图 2 4 所示 图 2 4 按键连接图 信息工程学院课程设计报告 7 2 4 4 SPEAKER 当倒计数为 0 时 系统需放出一段音乐 其音频输出是通过 SPEAKER 实现 音 频电路输出如下 图 2 5 音频输出连接图 信息工程学院课程设计报告 8 3 系系统统软软件件设设计计 本软件设计关键是要实现一种由单片机控制的带有 LCD 显示的音乐倒数计时器 通过 K1 K5 开关进行控制时间设置来完成其基本功能 当倒计时为零时 通过通过 扬声器放出一段乐曲作为闹铃 3 1 系统总体功能流程图系统总体功能流程图 3 1 1 系统基本流程图系统基本流程图 信息工程学院课程设计报告 9 开始 初始化相关变量 及LCD显示 K1 K4设置计时初值 LCD倒计时显示 K5否按下 K2 K3是否按下 倒计数时间加减 操作 Y 开始倒计时 YN 倒计数为零 输出音乐 Y N K4是否按下 N Y 设置完成 结束 N 工作指示灯LED 闪动 K1是否按下 Y N 3 1 2 模块 模块 5 的流程图 的流程图 信息工程学院课程设计报告 10 LCD倒计时显示 K1是否按下 K2是否按下K3是否按下 关定时器 Y K4是否按下 开定时器 Y 增加倒计数时1 分钟 减少倒计数时1 分钟 YY NN 3 2 使用单片机实现音乐节拍使用单片机实现音乐节拍 除了音符以外 节拍也是音乐的关键组成部分 节拍实际上就是音持续时间的 长短 在单片机系统中可以用延时来实现 如果 1 4 拍的延时是 0 4 秒 则 1 拍的延 时是 1 6 秒 只要知道 1 4 拍的延时时间 其余的节拍延时时间就是它的陪数 如果 单片机要自己播放音乐 那么必须在程序设计中考虑到节拍的设置 由于本例实现 的音乐发生器是由用户通过键盘输入弹奏乐曲的 所以节拍由用户掌握 不由程序 控制 对于不同的曲调我们也可以用单片机的另外一个定时 计数器来完成 音乐的 音拍 一个节拍为单位 C 调 具体如表 3 1 所示 表 3 1 音乐节拍表 曲调值 DELAY 曲调值 DELAY 调 4 4 125ms 调 4 4 62ms 调 3 4 187ms 调 3 4 94ms 信息工程学院课程设计报告 11 调 2 4 250ms 调 2 4 125ms 3 3 使用单片机产生音频脉冲使用单片机产生音频脉冲 了解音乐的一些基本知识后可知 产生不同频率的音频脉冲即能产生音乐 对 于单片机而言 产生不同频率有脉冲非常方便 可以利用它的定时 计数器来产生这 样的方波频率信号 因此 需要弄清楚音乐中的音符和对应的频率 以及单片机定 时计数的关系 在本实验中 单片机工作于 12MHZ 时钟频率 使用其定时 计数器 T0 工作模 式为 1 改变计数值 TH0 和 TL0 可以产生不同频率的脉冲信号 在此情况下 C 调 的各音符频率与计数值 T 的对照如表 3 2 所示 T 的值决定了 TH0 和 TL0 的值 其关系为 TH0 T 256 TL0 T 256 3 4 使用定时器实现定时功能使用定时器实现定时功能 3 41 定时器的工作方式和方式设定定时器的工作方式和方式设定 MCS 51 单片机有两路独立的定时器 每路定时器有 4 种工作方式 0 3 方式 0 是 13 位计数结构 计数器由 TH 全部 8 位与 TL 的低 5 位构成 方式 1 是 16 位计 数结构 计数器由 TH 与 TL 全部 8 位共 16 位组成 方式 2 是 8 位计数结构方式 计数器由 TL8 位组成 与其他方式不同的是 当定时溢出时 硬件自动将 TH 的值装 入 TL 中 有自动加载功能 前三种工作方式 两路定时器的设置与使用完全相同 但在工作方式 3 下 两路定时器有很大差别 只有 0 路定时器可以工作在方式 3 下 1 路定时器只能工作在方式 0 2 下 在工作方式 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 GATE C T M1 M0 其中 B0 B3 用来控制 0 路定时器 B4 B7 用来控制 1 路定时器 GATE 位为门控位 主要确定定时器启动的方式 如果 GATE 0 则用 TR0 TR1 位启动 关闭定时器 如果 GATE 1 则以外中断请求信号 INT0 或 INT1 启动定时 器 C T 位为定时与计数选择位 C T 0 为定时方式 C T 1 为计数方式 信息工程学院课程设计报告 12 M0 M1 为工作方式选择位 M1M0 00 方式 0 M1M0 10 方式 2 M1M0 01 方式 1 M1M0 11 方式 3 选择定时器工作方式 应根据上述规定向寄存器 TMOD 中写入相应数 设计本系统时选择的是 T0 定时器 工作在方式 1 下 3 42 定时器计数初值设置定时器计数初值设置 定时器工作方式选定后 定时溢出时间唯一取决于计数器的初值 如何根据应用 需要确定计数器初值 也是定时器应用的一个重要问题 假定单片机机器周期为 K0 所选定的定时方式计数器为 n 位 所实现的定时时间长度为 T 则有 2n x K0 T 其中 x 为计数器的初值 根据上式可以求出初值 x 为 x 2n T K0 单片机机器周期 k0 由单片机时钟频率 f 确定即 k0 12 f 在实际应用中 本系统单片机时钟频率 f 为 6mHz 所以单片机机器周期 k0 2 s 然 后根据选定的工作方式确定计数器位数 n 将所得 k0 与 n 代入式 2 求出计数初值 x 并 根据所选择的计数方式将 x 的值分入 TH0 与 TL0 经计算得 该定时器定时 100ms 时的计数初值为 TL0 0XB7 TH0 0X3C 3 5 程序描述程序描述 3 51 程序功能描述程序功能描述 我主要的工作是设计模块 5 其具体实现功能如下 复位后 LCD 的画面应能显示倒计时的分钟和秒数 此时按 K1 键 则在 LCD 上显 示出设置画面 此时 若 按 K2 键 增加倒计数的时间 1 分钟 按 K3 键 减少倒计数的时间 1 分钟 按 K4 键 设置完成 其电路连接 P2 0 K1 P2 1 K2 P2 2 K3 P2 3 K4 P2 4 K5 按键按下 则相应端口输出为 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 减少 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 倒计时秒减 1 信息工程学院课程设计报告 14 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 允许 T

温馨提示

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

最新文档

评论

0/150

提交评论