数字音乐盒的课程设计.doc_第1页
数字音乐盒的课程设计.doc_第2页
数字音乐盒的课程设计.doc_第3页
数字音乐盒的课程设计.doc_第4页
数字音乐盒的课程设计.doc_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

课程设计说明书 第I页 数字音乐盒的设计 摘 要 传统音乐盒 多是机械型的 体积笨重 发音单调 水 灰尘等外在因素 容易 使内部金属发音条变形 从而造成发音跑调 另外 机械音乐盒放音时为了让音色稳 定 必须放平不能动摇 而且价格昂贵 不能实现大批量生产 本设计是一个基于 AT89C51系列单片机的音乐盒 该音乐盒主要由按键电路 复位电路 时钟电路 显 示电路以及蜂鸣器组成 使用四个按键控制音乐盒 其中两个按键用来控制歌曲的播 放 暂停 另两个用来控制液晶上歌曲次序的变化 本音乐盒共有三首歌曲 播放歌 曲时 相应歌曲对应相应数码管上歌曲次序及歌名的显示 关键词 AT89C51 蜂鸣器 LCD 液晶显示 音乐盒 课程设计说明书 第II页 目 录 1 绪论 1 1 1 课题描述 1 1 2 基本工作原理及框图 1 2 相关芯片及硬件电路设计 1 2 1 AT89C51 芯片 2 2 1 1 AT89C51 的功能特性 2 2 1 2 AT89C51 的主要性能参数 2 2 2 时钟电路 3 2 3 复位电路 3 2 4 按键电路 4 2 5 蜂鸣器电路 4 2 6 显示电路 5 2 6 1 线段的显示 5 2 6 2 字符的显示 5 2 7 总体电路 6 3 系统软件设计 7 3 1 程序主要流程 7 3 2 程序设计 8 4 系统软件仿真 15 总 结 18 致 谢 19 参考文献 20 课程设计说明书 第1页 1 绪论 1 1 课题描述 随着人类社会的发展 人们对视觉 听觉方面的享受提出了越来越高的要求 小 小的音乐盒可以给人们带来美好的回忆 提高人们的精神文化享受 传统的音乐盒大 多数是机械型的 体积笨重 发音单调 不能实现批量生产 本文设计的音乐盒是以 单片机为核心元件的电子式音乐盒 体积小 重量轻 能演奏和旋音乐 功能多 使 用方便 可以批量生产 具有一定的商业价值 本设计是基于单片机的数字音乐盒设 计 由单片机 AT89C51 芯片和 LED 数码管为核心 辅以必要的电路 构成的一个单片 机电子数字音乐盒 1 1 2 基本工作原理及框图 本次设计是一个基于AT89C51单片机的音乐盒 该音乐盒主要由时钟电路 复位 电路 按键电路 蜂鸣器以及显示电路组成 使用其中两个按键来控制播放和暂停另 外两个按键用来控制换曲 利在液晶上显示曲目的更换 共三首音乐 蜂鸣器每播放 一首歌时液晶上显示相对应的歌曲次序 系统组成框图如图1 图 1 基本工作原理框图 2 相关芯片及硬件电路设计 AT89C51 单片机 LCD 液晶显示 蜂鸣器 时钟电路 复位电路 按键电路 课程设计说明书 第2页 2 1 AT89C51 芯片 图 2 AT89C51 引脚图 2 1 1 AT89C51 的功能特性 AT89C51 提供以下标准功能 4K 字节 Flash 闪速存储器 128 字节内部 RAM 32 个 I O 口线 两个十六位定时 计数器 一个 5 向量两级中断结构 一个全双工串行通 信口 片内振荡器及时钟电路 同时 AT89C51 可降至 0Hz 的静态逻辑操作 并支持 两种软件可选的节电工作模式 空闲方式停止 CPU 的工作 但允许 RAM 定时 计数 器 串行通信口及中断系统继续工作 掉电方式保存 RAM 中的内容 但振荡器停止工 作并禁止其他所有部件工作直到下一个硬件复位 2 1 2 AT89C51 的主要性能参数 AT89C51 主要性能参数如下 与 MC 51 产品指令系统完全兼容 K 字节可编程闪烁 存储器 寿命 1000 写 擦循环 数据保留时间 10 年 课程设计说明书 第3页 全静态工作 0Hz 24Hz 三级程序存储器锁定 128 8 位内部 RAM 32 可编程 I O 线 两个 16 位定时器 计数器 5 个中断源 可编程串行通道 低功耗的闲置和掉电模式 2 2 时钟电路 时钟电路在单片机系统中起着非常重要的作用 是保证系统正常工作的基础 在 一个单片机应用系统中 时钟是保障系统正常工作的基准振荡定时信号 主要由晶振 和外围电路组成 晶振频率的大小决定了单片机系统工作的快慢 2 为达到振荡周期是 12MHZ 的要求 这里要采用 12MHZ 的晶振 另外有两个 22PF 的电容 晶振引脚分 别连到 XTAL1 和 XTAL2 振荡脉冲输入引脚 时钟电路如图 3 图 3 时钟电路 2 3 复位电路 单片机在启动时都需要进行复位 以使CPU及系统各部件处于确定的初始状态 并从初态开始工作 51系列单片机的复位信号是从RST引脚输入到芯片内的施密特触 发器中的 当系统处于正常工作状态时 且振荡器稳定后 如果RST引脚上有一个高 电平并维持2个机器周期 24个振荡周期 以上 则CPU就可以响应并将系统复位 3 单 片机系统的复位方式有 手动按钮复位和上电复位 复位电路如图4 课程设计说明书 第4页 图 4 复位电路 2 4 按键电路 按键的闭合与否 反映在行线输出电压上就呈现高电平或低电平 如果高电平表 示键断开 低电平则表示键闭合 通过对行线电平高低状态的检测 便可确认按键按 下与否 P1 0 P1 1 P1 4 P1 5 作为控制按键 其中 P1 0 P1 1 扫描行 P1 4 P1 5 扫 描列 可通过功能键选择乐曲 暂停 播放 按键电路如图 5 图 5 按键电路 2 5 蜂鸣器电路 电路中蜂鸣器是发声元件 在其两端施加直流电压 有源蜂鸣器 或者方波 无 源蜂鸣器 就可以发声 其主要参数是外形尺寸 发声方向 工作电压 工作频率 工作电流 驱动方式 直流 方波 等 4 由于蜂鸣器的工作电流一般比较大 单片机的I O口是无法直接驱动的 但AVR可 以驱动小功率蜂鸣器 所以要利用放大电路来驱动 一般使用三极管来放大电流就可 以了 蜂鸣器由一个三极管 两个电阻和一个二极管组成 蜂鸣器电路如图6 课程设计说明书 第5页 图 6 蜂鸣器电路 2 6 显示电路 2 6 1 线段的显示 点阵图形式液晶由M N显示单元组成 假设LCD显示屏有64行 每行有128列 每 8列对应1字节的8位 即每行由16字节 共16 8 128个点组成 屏上64 16个显示单元 与显示RAM区1024字节相对应 每一字节的内容和显示屏上相应位置的亮暗对应 例 如屏的第一行的亮暗由RAM区的000H 00FH的16字节的内容决定 当 000H FFH时 则屏幕的左上角显示一条短亮线 长度为8个点 当 3FFH FFH时 则屏 幕的右下角显示一条短亮线 当 000H FFH 001H 00H 002H 00H 00EH 00H 00FH 00H时 则在屏幕的顶部显示一条由8段亮线和 8条暗线组成的虚线 这就是LCD显示的基本原理 5 2 6 2 字符的显示 用 LCD 显示一个字符时比较复杂 因为一个字符由 6 8 或 8 8 点阵组成 要找到 和显示屏幕上某几个位置对应的显示 RAM 区的 8 字节 还要使每字节的不同位为 1 其它的为 0 为 1 的点亮 为 0 的不亮 这样一来就组成某个字符 但由于内带字 符发生器的控制器来说 显示字符就比较简单了 可以让控制器工作在文本方式 根 据在 LCD 上开始显示的行列号及每行的列数找出显示 RAM 对应的地址 设立光标 在此送上该字符对应的代码即可 6 显示电路如图 7 课程设计说明书 第6页 图 7 显示电路 2 7 总体电路 总结时钟电路 复位电路 按键电路 蜂鸣器以及显示电路 把其放入一个电路 得到总体的电路 总体电路如图 8 图 8 总体电路图 课程设计说明书 第7页 3 系统软件设计 3 1 程序主要流程 流程图如图 9 所示 初始化界面 K3是否按下 K4是否按下 K1是否按下 K2是否按下 停止 切换上一首 切换下一首 播放音乐 开始计时 停止音乐 停止计时 N N N Y Y Y Y 开始 图 9 流程图 课程设计说明书 第8页 3 2 程序设计 对音乐do re mi fa so la si分别编码为1 7 重音do编为8 重音re编为9 停顿编为 0 播放长度以十六分音符为单位 在本程序中为165ms 一拍即四分音符等于4个十 六分音符 编为4 其它的播放时间以此类推 音调作为编码的高4位 而播放时间作为 低4位 如此音调和节拍就构成了一个编码 以0 xff作为曲谱的结束标志 7 举例1 音 调do 发音长度为两拍 即二分音符 将其编码为0 x18 举例2 音调re 发音长度为半拍 即八分音符 将其编码为0 x22歌曲播放的设计 先将歌曲的简谱进行编码 储存在一 个数据类型为unsigned char的数组中 程序从数组中取出1个数 然后分离出高4位得到 音调 接着找出相应的值赋给定时器0 使之定时操作蜂鸣器 得出相应的音调 接着 分离出该数的低4位 得到延时时间 接着调用软件延时 程序 include include define uchar unsigned char define uint unsigned int uchar m n uchar i timecount 0 timesec 0 timemin 0 timecheck 0 char r0 2 sbit beepIO P3 0 typedef unsigned char BYTE typedef unsigned int WORD typedef bit BOOL sbit rs P2 0 sbit rw P2 1 sbit ep P2 2 sbit pausekey P1 1 uchar k q f uchar code dis1 1 ji mo sha zhou uchar code dis2 2 tong hua uchar code dis3 3 qian nian lian uchar code T 49 2 0 0 0 xF8 0 x8B 0 xF8 0 xF2 0 xF9 0 x5B 0 xF9 0 xB7 0 xFA 0 x14 0 xFA 0 x66 0 x FA 0 xB9 0 xFB 0 x03 0 xFB 0 x4A 0 xFB 0 x8F 0 xFB 0 xCF 0 xFC 0 x0B 0 xFC 0 x43 0 xFC 0 x78 0 xFC 0 xAB 0 xFC 0 xDB 0 xFD 0 x08 0 xFD 0 x33 0 xFD 0 x5B 0 xFD 0 x81 0 xFD 0 xA5 0 xFD 0 xC7 0 xFD 0 xE7 0 xFE 0 x05 0 xFE 0 x21 0 xFE 0 x3C 0 xFE 0 x55 0 xFE 0 x6D 0 xFE 0 x84 0 xFE 0 x99 0 x FE 0 xAD 0 xFE 0 xC0 0 xFE 0 x02 0 xFE 0 xE3 0 xFE 0 xF3 0 xFF 0 x02 课程设计说明书 第9页 0 xFF 0 x10 0 xFF 0 x1D 0 xFF 0 x2A 0 xFF 0 x36 0 xFF 0 x42 0 xFF 0 x4C 0 x FF 0 x56 0 xFF 0 x60 0 xFF 0 x69 0 xFF 0 x71 0 xFF 0 x79 0 xFF 0 x81 uchar code music1 2 0 4 22 4 22 4 17 4 15 4 15 4 17 12 15 4 15 2 17 2 15 4 13 4 13 4 15 12 0 4 20 4 20 4 20 4 17 4 20 4 20 4 20 4 17 4 22 4 17 4 17 4 15 4 15 4 17 12 22 4 22 4 17 4 15 4 15 4 17 12 15 4 15 2 17 2 15 4 13 4 13 4 15 12 20 4 20 4 20 2 17 2 17 4 20 4 20 4 20 2 17 2 17 2 17 2 24 4 20 4 20 2 17 2 17 4 20 4 22 12 17 4 22 4 25 4 25 4 17 4 22 4 25 8 24 4 22 2 24 2 22 4 20 4 15 4 17 12 15 4 15 4 15 4 10 4 15 4 17 4 20 8 17 4 24 4 24 4 20 4 15 4 17 12 17 4 22 4 25 4 25 4 17 4 22 4 25 8 29 4 27 2 29 2 27 4 25 4 25 4 27 12 29 4 29 2 27 4 25 4 27 6 27 2 25 4 24 4 20 4 20 2 17 2 20 4 20 2 22 2 22 16 0 xFF 0 xFF uchar code music2 2 0 4 16 6 19 2 19 6 16 2 14 6 0 10 16 6 19 2 19 6 16 2 14 8 0 8 26 8 21 6 24 2 23 6 21 2 19 8 21 16 0 8 16 6 19 2 19 6 16 2 14 8 0 8 26 8 21 6 23 2 21 14 24 6 23 2 21 6 19 2 16 6 14 2 13 8 14 16 0 4 19 6 19 2 21 6 21 2 23 8 21 4 0 4 19 6 19 2 16 6 19 2 16 8 1 4 6 0 4 19 6 19 2 21 6 21 2 23 8 21 4 0 4 19 6 19 2 16 6 19 2 16 8 1 4 6 0 4 26 16 21 4 26 4 21 4 26 16 21 4 26 16 0 4 16 8 16 8 14 8 16 8 21 4 26 4 21 4 26 4 0 8 16 8 16 8 14 8 1 6 8 21 4 26 4 21 4 26 4 0 8 19 8 19 6 21 2 16 8 0 8 19 6 21 2 19 6 21 2 16 8 0 8 21 8 26 8 21 4 24 12 23 6 21 2 19 8 21 16 14 4 21 4 14 4 19 4 16 6 14 2 13 8 14 16 0 xFF 0 xFF uchar code music3 2 0 4 27 4 19 4 19 4 27 4 26 4 26 2 27 2 24 8 22 4 17 4 24 4 22 4 19 16 15 4 12 4 12 4 15 4 17 8 19 8 26 6 26 2 26 4 24 4 24 4 19 4 19 8 27 4 19 4 19 4 27 4 26 4 26 2 27 2 24 6 24 2 22 4 17 4 24 4 22 4 19 16 课程设计说明书 第10页 15 4 12 4 12 4 15 4 17 8 19 8 19 6 19 2 19 4 17 4 14 4 14 4 14 4 7 4 12 24 0 xFF 0 xFF uchar timetable 00 00 void delay uchar p uchar i j for p 0 p for i 181 i 0 i for j 181 j 0 j BOOL lcd bz BOOL result rs 0 rw 1 ep 1 nop nop nop nop result BOOL P0 ep 0 return result void lcd wcmd BYTE cmd while lcd bz rs 0 rw 0 ep 0 nop nop P0 cmd nop nop nop nop ep 1 nop nop nop nop ep 0 课程设计说明书 第11页 void lcd pos BYTE pos lcd wcmd pos 0 x80 void lcd wdat BYTE dat while lcd bz rs 1 rw 0 ep 0 P0 dat nop nop nop nop ep 1 nop nop nop nop ep 0 void lcd init lcd wcmd 0 x38 delay 1 lcd wcmd 0 x0c delay 1 lcd wcmd 0 x06 delay 1 lcd wcmd 0 x01 delay 1 void pause uchar i j for i 150 i 0 i for j 150 j 0 j void timecount init interrupt 3 课程设计说明书 第12页 TH1 65535 45872 256 TL1 65535 45872 256 timecount if timecount 20 timesec timecount 0 if timesec 60 timesec 0 timemin void adfa interrupt 0 timesec 0 timemin 0 r0 delay 5 if r0 11 r0 11 void adfii interrupt 2 if pausekey 0 beepIO 0 while pausekey 0 while pausekey 1 while pausekey 0 delay 8 else timesec 0 timemin 0 r0 delay 5 if r0 0 r0 1 void T0 int interrupt 1 课程设计说明书 第13页 beepIO beepIO TH0 T m 0 TL0 T m 1 void zhuanhuan timetable 3 timesec 10 0 timetable 4 timesec 10 0 timetable 2 timetable 0 timemin 10 0 timetable 1 timemin 10 0 void timedis if timecheck timesec timecheck timesec zhuanhuan lcd pos 0 x49 lcd wdat timetable 0 lcd wdat timetable 1 lcd wdat timetable 2 lcd wdat timetable 3 lcd wdat timetable 4 void main uchar i 0 lcd check 0 TMOD 0 x11 TH1 65535 45872 256 TL1 65535 45872 256 PX0 1 PX1 1 EX0 1 EX1 1 EA 1 ET0 1 ET1 1 TR1 1 pausekey 1 lcd init while 1 课程设计说明书 第14页 if r0 0 delay 1 lcd pos 0 i 0 while dis1 i 0 lcd wdat dis222 i i if r0 1 timedis if lcd check r0 lcd wcmd 0 x01 delay 1 lcd check r0 lcd pos 0 i 0 while dis1 i 0 lcd wdat dis1 i i m music1 i 0 n music1 i 1 if m 0 x00 TR0 0 delay n i else if m 0 xFF TR0 0 delay 30 i 0 timesec 0 timemin 0 else if m music1 i 1 0 TR0 1 delay n TR0 0 pause i else TR0 1 delay n i if r0 2 timedis if lcd check r0 lcd wcmd 0 x01 delay 1 lcd check r0 lcd pos 0 i 0 课程设计说明书 第15页 while dis2 i 0 lcd wdat dis2 i i m music2 i 0 n music2 i 1 if m 0 x00 TR0 0 delay n i else if m 0 xFF TR0 0 delay 30 i 0 timesec 0 timemin 0 else if m music2 i 1 0 TR0 1 delay n TR0 0 pause i else TR0 1 delay n i 4 系统软件仿真 在这里系统仿真我们使用实验室常用的 Protues 仿真软件 把总电路画入 ISIS 软件 把程序加入 Keil 软件 然后进行软件和硬件的统一调试 8 图 10 仿真初始界面 课程设计说明书 第16页 图 11 仿真播放第一首 图 12 仿真播放第二首 课程设计说明书 第17页 图 13 仿真播放第三首 课程设计说明书 第18页 总 结 经过

温馨提示

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

评论

0/150

提交评论