![数字音乐盒的课程设计_第1页](http://file1.renrendoc.com/fileroot_temp2/2020-10/30/c1915b1d-4b5b-49dc-b8a7-fc83c48164a6/c1915b1d-4b5b-49dc-b8a7-fc83c48164a61.gif)
![数字音乐盒的课程设计_第2页](http://file1.renrendoc.com/fileroot_temp2/2020-10/30/c1915b1d-4b5b-49dc-b8a7-fc83c48164a6/c1915b1d-4b5b-49dc-b8a7-fc83c48164a62.gif)
![数字音乐盒的课程设计_第3页](http://file1.renrendoc.com/fileroot_temp2/2020-10/30/c1915b1d-4b5b-49dc-b8a7-fc83c48164a6/c1915b1d-4b5b-49dc-b8a7-fc83c48164a63.gif)
![数字音乐盒的课程设计_第4页](http://file1.renrendoc.com/fileroot_temp2/2020-10/30/c1915b1d-4b5b-49dc-b8a7-fc83c48164a6/c1915b1d-4b5b-49dc-b8a7-fc83c48164a64.gif)
![数字音乐盒的课程设计_第5页](http://file1.renrendoc.com/fileroot_temp2/2020-10/30/c1915b1d-4b5b-49dc-b8a7-fc83c48164a6/c1915b1d-4b5b-49dc-b8a7-fc83c48164a65.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数字音乐盒的设计 摘 要 传统音乐盒,多是机械型的,体积笨重,发音单调,水、灰尘等外在因素,容易 使内部金属发音条变形,从而造成发音跑调。另外,机械音乐盒放音时为了让音色稳 定,必须放平不能动摇,而且价格昂贵,不能实现大批量生产。本设计是一个基于 AT89C51系列单片机的音乐盒。该音乐盒主要由按键电路、复位电路、时钟电路、显 示电路以及蜂鸣器组成。使用四个按键控制音乐盒,其中两个按键用来控制歌曲的播 放、暂停,另两个用来控制液晶上歌曲次序的变化,本音乐盒共有三首歌曲。播放歌 曲时,相应歌曲对应相应数码管上歌曲次序及歌名的显示。 关键词:AT89C51,蜂鸣器,LCD 液晶显示,音乐盒 目 录
2、 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 课题描述 随着人类社会的发
3、展,人们对视觉、听觉方面的享受提出了越来越高的要求。小 小的音乐盒可以给人们带来美好的回忆,提高人们的精神文化享受。传统的音乐盒大 多数是机械型的,体积笨重,发音单调,不能实现批量生产。本文设计的音乐盒是以 单片机为核心元件的电子式音乐盒,体积小,重量轻,能演奏和旋音乐,功能多,使 用方便,可以批量生产,具有一定的商业价值。本设计是基于单片机的数字音乐盒设 计,由单片机 AT89C51 芯片和 LED 数码管为核心,辅以必要的电路,构成的一个单片 机电子数字音乐盒1。 1.2 基本工作原理及框图 本次设计是一个基于AT89C51单片机的音乐盒,该音乐盒主要由时钟电路、复位 电路、按键电路、蜂鸣
4、器以及显示电路组成。使用其中两个按键来控制播放和暂停另 外两个按键用来控制换曲。利在液晶上显示曲目的更换,共三首音乐,蜂鸣器每播放 一首歌时液晶上显示相对应的歌曲次序。系统组成框图如图1。 图 1 基本工作原理框图 2 相关芯片及硬件电路设计 AT89C51 单片机 LCD 液晶显示 蜂鸣器 时钟电路 复位电路 按键电路 2.1 AT89C51 芯片 图 2 AT89C51 引脚图 2.1.1 AT89C51 的功能特性 AT89C51 提供以下标准功能:4K 字节 Flash 闪速存储器,128 字节内部 RAM,32 个 I/O 口线,两个十六位定时/计数器,一个 5 向量两级中断结构,一
5、个全双工串行通 信口,片内振荡器及时钟电路。同时,AT89C51 可降至 0Hz 的静态逻辑操作,并支持 两种软件可选的节电工作模式。空闲方式停止 CPU 的工作,但允许 RAM,定时/计数 器,串行通信口及中断系统继续工作。掉电方式保存 RAM 中的内容,但振荡器停止工 作并禁止其他所有部件工作直到下一个硬件复位。 2.1.2 AT89C51 的主要性能参数 AT89C51 主要性能参数如下: 与 MC51 产品指令系统完全兼容 K 字节可编程闪烁 存储器 寿命:1000 写/擦循环 数据保留时间: 10 年 全静态工作: 0Hz-24Hz 三级程序存储器锁定 128*8 位内部 RAM 3
6、2 可编程 I/O 线 两个 16 位定时器/计数器 5 个中断源 可编程串行通道 低功耗的闲置和掉电模式 2.2 时钟电路 时钟电路在单片机系统中起着非常重要的作用,是保证系统正常工作的基础。在 一个单片机应用系统中,时钟是保障系统正常工作的基准振荡定时信号,主要由晶振 和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢2。为达到振荡周期是 12MHZ 的要求,这里要采用 12MHZ 的晶振,另外有两个 22PF 的电容,晶振引脚分 别连到 XTAL1 和 XTAL2 振荡脉冲输入引脚。时钟电路如图 3。 图 3 时钟电路 2.3 复位电路 单片机在启动时都需要进行复位,以使CPU及系
7、统各部件处于确定的初始状态, 并从初态开始工作。51系列单片机的复位信号是从RST引脚输入到芯片内的施密特触 发器中的。当系统处于正常工作状态时,且振荡器稳定后,如果RST引脚上有一个高 电平并维持2个机器周期(24个振荡周期)以上,则CPU就可以响应并将系统复位3。单 片机系统的复位方式有:手动按钮复位和上电复位。复位电路如图4。 图 4 复位电路 2.4 按键电路 按键的闭合与否,反映在行线输出电压上就呈现高电平或低电平,如果高电平表 示键断开,低电平则表示键闭合,通过对行线电平高低状态的检测,便可确认按键按 下与否。P1.0,P1.1,P1.4,P1.5 作为控制按键,其中 P1.0-P
8、1.1 扫描行,P1.4-P1.5 扫 描列;可通过功能键选择乐曲、暂停、播放。按键电路如图 5。 图 5 按键电路 2.5 蜂鸣器电路 电路中蜂鸣器是发声元件,在其两端施加直流电压(有源蜂鸣器)或者方波(无 源蜂鸣器)就可以发声,其主要参数是外形尺寸、发声方向、工作电压、工作频率、 工作电流、驱动方式(直流/方波)等4。 由于蜂鸣器的工作电流一般比较大,单片机的I/O口是无法直接驱动的(但AVR可 以驱动小功率蜂鸣器) ,所以要利用放大电路来驱动,一般使用三极管来放大电流就可 以了。蜂鸣器由一个三极管,两个电阻和一个二极管组成。蜂鸣器电路如图6。 图 6 蜂鸣器电路 2.6 显示电路 2.6
9、.1 线段的显示 点阵图形式液晶由MN显示单元组成,假设LCD显示屏有64行,每行有128列,每 8列对应1字节的8位,即每行由16字节,共168=128个点组成,屏上6416个显示单元 与显示RAM区1024字节相对应,每一字节的内容和显示屏上相应位置的亮暗对应。例 如屏的第一行的亮暗由RAM区的000H00FH的16字节的内容决定,当(000H) =FFH时,则屏幕的左上角显示一条短亮线,长度为8个点;当(3FFH)=FFH时,则屏 幕的右下角显示一条短亮线;当(000H)=FFH, (001H)=00H, (002H) =00H,(00EH)=00H, (00FH)=00H时,则在屏幕的
10、顶部显示一条由8段亮线和 8条暗线组成的虚线。这就是LCD显示的基本原理5。 2.6.2 字符的显示 用 LCD 显示一个字符时比较复杂,因为一个字符由 68 或 88 点阵组成,要找到 和显示屏幕上某几个位置对应的显示 RAM 区的 8 字节,还要使每字节的不同位为“1”, 其它的为“0”,为“1”的点亮,为“0”的不亮。这样一来就组成某个字符。但由于内带字 符发生器的控制器来说,显示字符就比较简单了,可以让控制器工作在文本方式,根 据在 LCD 上开始显示的行列号及每行的列数找出显示 RAM 对应的地址,设立光标, 在此送上该字符对应的代码即可6。显示电路如图 7。 图 7 显示电路 2.
11、7 总体电路 总结时钟电路、复位电路、按键电路、蜂鸣器以及显示电路,把其放入一个电路。 得到总体的电路。总体电路如图 8。 图 8 总体电路图 3 系统软件设计 3.1 程序主要流程 流程图如图 9 所示。 初始化界面 K3是否按下 K4是否按下 K1是否按下 K2是否按下 停止 切换上一首 切换下一首 播放音乐 开始计时 停止音乐 停止计时 N N N Y Y Y Y 开始 图 9 流程图 3.2 程序设计 对音乐do re mi fa so la si分别编码为17,重音do编为8,重音re编为9,停顿编为 0。播放长度以十六分音符为单位(在本程序中为165ms) ,一拍即四分音符等于4个
12、十 六分音符,编为4,其它的播放时间以此类推。音调作为编码的高4位,而播放时间作为 低4位,如此音调和节拍就构成了一个编码。以0 xff作为曲谱的结束标志7。举例1:音 调do,发音长度为两拍,即二分音符,将其编码为0 x18。举例2:音调re,发音长度为半拍, 即八分音符,将其编码为0 x22歌曲播放的设计。先将歌曲的简谱进行编码,储存在一 个数据类型为unsigned char的数组中。程序从数组中取出1个数,然后分离出高4位得到 音调,接着找出相应的值赋给定时器0,使之定时操作蜂鸣器,得出相应的音调;接着 分离出该数的低4位,得到延时时间,接着调用软件延时。 程序: #include #
13、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=P30; typedef unsigned char BYTE; typedef unsigned int WORD; typedef bit BOOL ; sbit rs= P20; sbit rw = P21; sbit ep = P22; sbit pausekey=P11; uchar k,q
14、,f; uchar code dis1 =1 ji mo sha zhou; uchar code dis2 = 2 tong hua; uchar code dis3 =3 qian nian lian; uchar code T492=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
15、,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, 0 xFF,0 x10,0 xFF,0 x1D,0 xFF,0 x2A,0
16、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 music12=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,1
17、5,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,
18、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 music22=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,
19、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,
20、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 music32=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,
21、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, 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(;p0;p-) for(i=181;i0;i-) f
22、or(j=181;j0;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_();
23、_nop_(); _nop_(); ep = 0; 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(
24、1); lcd_wcmd(0 x06); delay(1); lcd_wcmd(0 x01); delay(1); void pause() uchar i,j; for(i=150;i0;i-) for(j=150;j0;j-); void timecount_init() interrupt 3 TH1=(65535-45872)/256; TL1=(65535-45872)%256; timecount+; if(timecount=20) timesec+; timecount=0; if(timesec=60) timesec=0; timemin+; void adfa() int
25、errupt 0 timesec=0; timemin=0; r0+; delay(5); if(r011) 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 beepIO=!beepIO; TH0=Tm0; TL0=Tm1; void
26、 zhuanhuan() timetable3=timesec/10+0; timetable4=timesec%10+0; timetable2=:; timetable0=timemin/10+0; timetable1=timemin%10+0; void timedis() if(timecheck!=timesec) timecheck=timesec; zhuanhuan(); lcd_pos(0 x49); lcd_wdat(timetable0); lcd_wdat(timetable1); lcd_wdat(timetable2); lcd_wdat(timetable3);
27、 lcd_wdat(timetable4); 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) if(r0=0) delay(1); lcd_pos(0); i = 0; while(dis1i != 0) lcd_wdat(dis222i); i+; if(r0=1) timedis(
28、); if(lcd_check!=r0) lcd_wcmd(0 x01); delay(1); lcd_check=r0; lcd_pos(0); i = 0; while(dis1i != 0) lcd_wdat(dis1i); i+; m=music1i0;n=music1i1; 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=music1i+10) TR0=1;delay(n);TR0=0;pause();i+; else TR0=1;
29、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; while(dis2i != 0) lcd_wdat(dis2i); i+; m=music2i0;n=music2i1; 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=music2i+10) TR0=1;delay(n);TR0=0;pause();i+; else TR0=1;delay(n);i+; 4 系统软件仿真 在这里系统仿真我们使用实验室常用的 Protues 仿真软件,把总电路画入 ISIS 软件, 把程序加入 Keil 软件,然后进行软件和硬件的统一调试8。 图 10 仿真初始界面 图
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 朝阳2024年辽宁朝阳师范学院招聘37人笔试历年参考题库附带答案详解
- 攀枝花2025年四川攀枝花市民政局直属事业单位考调4人笔试历年参考题库附带答案详解
- 2025年中国冲天炉数字式综合检测仪市场调查研究报告
- 2025至2031年中国高压均质机行业投资前景及策略咨询研究报告
- 2025至2031年中国耐低温型不干胶行业投资前景及策略咨询研究报告
- 2025至2031年中国直流脉宽调速器行业投资前景及策略咨询研究报告
- 2025年活门项目可行性研究报告
- 2025至2031年中国易洗除渍素行业投资前景及策略咨询研究报告
- 2025至2031年中国婴儿玩具拉琴行业投资前景及策略咨询研究报告
- 2025年女装牛仔中裤项目可行性研究报告
- 高三一本“临界生”动员会课件
- 浙江省2023年中考科学真题全套汇编【含答案】
- 《公益性公墓管理章程》-
- C++面向对象程序设计双语教程(第3版)课件全套 ch01Introduction-ch08Templates
- 小说标题作用探究省名师优质课赛课获奖课件市赛课一等奖课件
- dk胶原蛋白培训课件
- 短视频拍摄时间计划表
- 动物检疫技术-动物检疫处理(动物防疫与检疫技术)
- 英语经典口语1000句
- PDCA案例降低心脏介入手术并发症
- 完整,沪教版小学四年级英语上册单词表
评论
0/150
提交评论