单片机数字音乐盒课程设计报告

上传人:无*** 文档编号:90316928 上传时间:2022-05-14 格式:DOC 页数:25 大小:94.50KB
收藏 版权申诉 举报 下载
单片机数字音乐盒课程设计报告_第1页
第1页 / 共25页
单片机数字音乐盒课程设计报告_第2页
第2页 / 共25页
单片机数字音乐盒课程设计报告_第3页
第3页 / 共25页
资源描述:

《单片机数字音乐盒课程设计报告》由会员分享,可在线阅读,更多相关《单片机数字音乐盒课程设计报告(25页珍藏版)》请在装配图网上搜索。

1、-数字音乐盒的设计摘要随着人类社会的开展,人们对视觉、听觉方面的享受提出了越来越高的要求。小小的音乐盒可以给人们带来美好的回忆,提高人们的精神文化享受。传统音乐盒,多是机械型的,体积笨重,发音单调,不能实现批量生产。本设计是一个基于AT89C51系列单片机的音乐盒。该音乐盒主要由按键电路、复位电路、时钟电路、显示电路以及蜂鸣器组成。使用四个按键控制音乐盒,其中两个按键用来控制歌曲的播放、暂停,另两个用来控制液晶上歌曲次序的变化,本音乐盒共有三首歌曲。播放歌曲时,相应歌曲对应相应数码管上歌曲次序及歌名的显示。关键词:AT89C51,蜂鸣器,LCD液晶显示目 录1绪论41.1 课题描述41.2 根

2、本工作原理及框图42 相关芯片及硬件电路设计42.1 AT89C51芯片42.1.1 AT89C51的功能特性52.1.2 AT89C51的主要性能参数52.2 晶振电路62.3 复位电路62.4 驱动电路72.4.1 蜂鸣器82.4.2 续流二极管82.4.3 滤波电容82.4.4 三极管82.5 显示电路9线段的显示92.5.2 字符的显示92.6 按键电路103 系统软件设计103.1 软件设计程序流程图103.2 节拍确实定113.3 编码123.4 仿真12总结15致16参考文献17附录18. z.-1绪论1.1课题描述随着科学技术的进步和社会的开展,人类所接触的信息也在不断增加并且

3、日益复杂。面对浩如烟海的信息,人们已经能够利用计算机等工具高效准确地对之进展处理,但要想将处理完的信息及时,清晰地传递给别人,还必须通过寻求更加卓越的显示技术来实现。单片机技术与液晶显示技术的结合,使信息传输交流向着智能可视化方向迅速开展。小小的音乐盒可以给人们带来美好的回忆,提高人们的精神文化享受。传统音乐盒是机械型的,体积笨重,发音单调,不能实现批量生产。本文设计的音乐盒是以单片机为核心元件的电子式音乐盒,体积小,重量轻,能演奏和旋音乐,功能多,外观效果多彩,使用方便,并具有一定的商业价值。1.2根本工作原理及框图本次设计是一个基于AT89C51单片机的音乐盒,该音乐盒主要由按键电路、复位

4、电路、时钟电路、蜂鸣器以及显示电路组成。使用其中两个按键来控制播放和暂停另外两个按键用来控制换曲。利在液晶上显示曲目的更换,共三首音乐,蜂鸣器每播放一首歌时液晶上显示相对应的歌曲次序。系统组成框图如图1。图1根本工作原理框图2相关芯片及硬件电路设计2.1AT89C51芯片图2 AT89C51引脚图2.1.1 AT89C51的功能特性AT89C51提供以下标准功能:4K字节Flash闪速存储器,128字节部RAM,32个I/O口线,两个十六位定时/计数器,一个5向量两级中断构造,一个全双工串行通信口,片振荡器及时钟电路。同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作

5、模式。空闲方式停顿CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的容,但振荡器停顿工作并制止其他所有部件工作直到下一个硬件复位。2.1.2 AT89C51的主要性能参数AT89C51主要性能参数如下:l 与MC51产品指令系统完全兼容l K字节可编程闪烁存储器l 寿命:1000写/擦循环l 数据保存时间:10年l 全静态工作:0Hz-24Hzl 三级程序存储器锁定l 128*8位部RAMl 32可编程I/O线l 两个16位定时器/计数器l 5个中断源 l 可编程串行通道l 低功耗的闲置和掉电模式l 片振荡器和时钟电路 2.2晶振电路晶体振荡器,简称

6、晶振,它可以等效成一个电容和一个电阻并联再串联一个电容的二端网络。晶振有一个重要的参数,那就是负载电容值,选择与负载电容值相等的并联电容,就可以得到晶振标称的谐振频率。晶振在应用具体起到的作用,微控制器的时钟源可以分为两类:一种是皮尔斯振荡器配置,适用于晶振和瓷谐振槽路。另一种为简单的分立RC振荡器。RC振荡器能够快速启动,本钱也比拟低,但通常在整个温度和工作电源电压围精度较差,会在标称输出频率的5%至50%围变化,震荡脉冲频fosc在0至24MHZ围变化。但其性能受环境条件和电路元件选择的影响。图3为晶振电路。图3 晶振电路2.3复位电路单片机在启动时都需要进展复位,以使CPU及系统各部件处

7、于确定的初始状态,并从初态开场工作。51系列单片机的复位信号是从RST引脚输入到芯片的施密特触发器中的。当系统处于正常工作状态时,且振荡器稳定后,如果RST引脚上有一个高电平并维持2个机器周期(24个振荡周期)以上,那么CPU就可以响应并将系统复位。单片机系统的复位方式有:手动按钮复位和上电复位。图4为复位电路。图4复位电路2.4驱动电路由于蜂鸣器的工作电流一般比拟大,以致于单片机的I/O口是无法直接驱动的但AVR可以驱动小功率蜂鸣器,所以要利用放大电路来驱动,一般使用三极管来放大电流就可以了。 蜂鸣器驱动电路一般都包含以下几个局部:一个三极管、一个蜂鸣器、一个续流二极管和一个电源滤波电容。图

8、5为蜂鸣器驱动电路。图5 蜂鸣器驱动电路2.4.1 蜂鸣器发声元件,在其两端施加直流电压有源蜂鸣器或者方波无源蜂鸣器就可以发声,其主要参数是外形尺寸、发声方向、工作电压、工作频率、工作电流、驱动方式直流/方波等。这些都可以根据需要来选择。 2.4.2 续流二极管蜂鸣器本质上是一个感性元件,其电流不能瞬变,因此必须有一个续流二极管提供续流。否那么,在蜂鸣器两端会产生几十伏的尖峰电压,可能损坏驱动三极管,并干扰整个电路系统的其它局部。 2.4.3 滤波电容滤波电容C1的作用是滤波,滤除蜂鸣器电流对其它局部的影响,也可改善电源的交流阻抗,如果可能,最好是再并联一个220uF的电解电容。2.4.4 三

9、极管三极管Q1起开关作用,其基极的高电平使三极管饱和导通,使蜂鸣器发声;而基极低电平那么使三极管关闭,蜂鸣器停顿发声。2.5显示电路2.5.1 线段的显示点阵图形式液晶由MN个显示单元组成,假设LCD显示屏有64行,每行有128列,每8列对应1字节的8位,即每行由16字节,共168=128个点组成,屏上6416个显示单元与显示RAM区1024字节相对应,每一字节的容和显示屏上相应位置的亮暗对应。例如屏的第一行的亮暗由RAM区的000H00FH的16字节的容决定,当000H=FFH时,那么屏幕的左上角显示一条短亮线,长度为8个点;当3FFH=FFH时,那么屏幕的右下角显示一条短亮线;当000H=

10、FFH,001H=00H,002H=00H,00EH=00H,00FH=00H时,那么在屏幕的顶部显示一条由8段亮线和8条暗线组成的虚线。这就是LCD显示的根本原理。2.5.2 字符的显示用LCD显示一个字符时比拟复杂,因为一个字符由68或88点阵组成,要找到和显示屏幕上某几个位置对应的显示RAM区的8字节,还要使每字节的不同位为1,其它的为0,为1的点亮,为0的不亮。这样一来就组成某个字符。但由于带字符发生器的控制器来说,显示字符就比拟简单了,可以让控制器工作在文本方式,根据在LCD上开场显示的行列号及每行的列数找出显示RAM对应的地址,设立光标,在此送上该字符对应的代码即可。图6为显示电路

11、。图6 显示电路2.6按键电路P1.0-P1.5作为控制按键,其中P1.0-P1.1扫描行,P1.4-P1.5扫描列;可通过功能键选择乐曲、暂停、播放。图7为按键电路。图7 按键电路3 系统软件设计总体原理:播放一段音乐需要的是两个元素,一个是音调,另一个是音符。首先要了解对应的音调,音调主要由声音的频率决定,同时也与声音强度有关。对一定强度的纯音,音调随频率的升降而升降;对一定频率的纯音、低频纯音的音调随声强增加而下降,高频纯音的音调却随强度增加而上升。另外,音符的频率有所不同。基于上面的容,这样就对发音的原理有了一些初步的了解。音符的发音主要靠不同的音频脉冲。利用单片机的部定时器/计数器0

12、,使其工作在模式1,定时中断,然后控制P3引脚的输出音乐。只要算出某一音频的周期1/频率,然后将此周期除以2,即为半周期的时间,利用定时器计时这个半周期时间,每当计时到后就将输出脉冲的I/O反相,然后重复计时此半周期时间再对I/O反相,就可在I/O脚上得到此频率的脉冲。3.1软件设计程序流程图流程图如图8所示。图8 程序流程图按下电源开关键后,整体电路开场运作,电源指示灯发光。此时,按下连接于P1.4和P1.5端口的开关按键开场选曲,每按一下单片机将依序更换歌曲并在液晶上显示歌曲次序及歌名。歌曲次序及歌名将在数码管上以文字1+歌曲名,2+歌曲名,3+歌曲名的形式循环呈现。当开场按下连接于P1.

13、0的开关按键后,单片机将依序播放歌曲,按下P1.1开关按键后歌曲播放将暂停。3.2节拍确实定假设要构成音乐,光有音调是不够的,还需要节拍,让音乐具有旋律固定的律动,而且可以调节各个音的快满度。节拍,即Beat,简单说就是打拍子,就像我们听音乐不自主的随之拍手或跺脚。假设1拍实0.5s,那么1/4拍为0.125s。至于1拍多少s,并没有严格规定,就像人的心跳一样,大局部人的心跳是每分钟72下,有些人快一点,有些人慢一点,只要听的悦耳就好。音持续时间的长短即时值,一般用拍数表示。休止符表示暂停发音。一首音乐是由许多不同的音符组成的,而每个音符对应着不同频率,这样就可以利用不同的频率的组合,加以与拍

14、数对应的延时,构成音乐。了解音乐的一些根底知识,我们可知产生不同频率的音频脉冲即能产生音乐。对于单片机来说,产生不同频率的脉冲是非常方便的,利用单片机的定时/计数器来产生这样的方波频率信号。因此,需要弄清楚音乐中的音符和对应的频率,以及单片机定时计数的关系。3.3编码do re mi fa so la si分别编码为17,重音do编为8,重音re编为9,停顿编为0。播放长度以十六分音符为单位在本程序中为165ms,一拍即四分音符等于4个十六分音符,编为4,其它的播放时间以此类推。音调作为编码的高4位,而播放时间作为低4位,如此音调和节拍就构成了一个编码。以0xff作为曲谱的完毕标志。举例1:音

15、调do,发音长度为两拍,即二分音符,将其编码为0x18。举例2:音调re,发音长度为半拍,即八分音符,将其编码为0x22歌曲播放的设计。先将歌曲的简谱进展编码,储存在一个数据类型为unsigned char的数组中。程序从数组中取出一个数,然后别离出高4位得到音调,接着找出相应的值赋给定时器0,使之定时操作蜂鸣器,得出相应的音调;接着别离出该数的低4位,得到延时时间,接着调用软件延时。3.4 仿真图9 仿真初始界面图10 仿真播放第一首图11 仿真播放第二首图12 仿真播放第三首总 结这次单片机课程设计相对来说,硬件局部是比拟简单的,主要是程序的设计,因为需要计算频率和歌曲时间,用了两个定时器

16、。另一个难点在于对音调和节拍的理解,对于这个知识点我花了两天的时间翻阅图书,最终明白了,对于音调和节拍的编写。在大学课堂的学习只是纯理论的专业知识,而我们应该把所学的用到现实生活中去,此次的音乐盒设计给我奠定了一个实践根底,我会在以后的学习、生活中磨练自己,使自己适应社会剧烈的竞争。通过此次课程设计,却改变了很多, 首先,对于硬件电路的工作原理有了进一步的学习,同样就有了进一步的认识;其次,软件方面,在程序的设计,程序的调试方面都学到了很多东西。致 经过近一个星期的忙忙碌碌,这次的单片机课程设计已经快要接近尾声了。在这次的单片机课程设计过程中,无论是在理论学习阶段,还是在设计的选题、资料查询和

17、撰写的每一个环节,我都得到到了许多人的悉心的指导和帮助。首先,借此时机我向我们的单片机授课教师及课程设计指导教师表示衷心的感,教师的指导和帮助,是我顺利完本钱次课程设计的根底和前提。另外,感各位同学的帮助和勉励。同窗之谊和手足之情,我将终生难忘!我愿在未来的学习和研究过程中,以更加丰厚的成果来答曾经关心、帮助和支持过我的所有教师、同学和朋友。参考文献1何立民. 单片机高级教程M:航空航天大学,2001.3. 2 晓安. MCS-51单片机原理及应用M. XX:XX大学,2001.33 肖洪兵. 跟我学用单片机M. :航空航天大学,2002.84 夏继强. 单片机实验与实践教程M. :航空航天大

18、学,2001.4 5于凤明单片机原理及接口技术M:中国轻工业1998.56伟人.单片微型计算机原理与应用M.:清华大学, 2006.5. 7广第单片机根底M:航空航天大学,1999.3.附录总体电路图:图13 总体电路图程序:#include #include #define uchar unsigned char#define uint unsigned intuchar m,n; uchar i,timecount=0,timesec=0,timemin=0,timecheck=0;char r0=2;sbit beepIO=P30;typedef unsigned char BYTE;t

19、ypedef unsigned int WORD;typedef bit BOOL ; sbit rs= P20;sbit rw = P21;sbit ep = P22;sbit pausekey=P11;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 T492=0,0,0xF8,0x8B,0xF8,0xF2,0xF9,0x5B,0xF9,0xB7,0xFA,0x14,0xFA,0x66,0xFA,0x

20、B9,0xFB,0x03,0xFB,0x4A,0xFB,0x8F,0xFB,0xCF,0xFC,0x0B,0xFC,0x43,0xFC,0x78,0xFC,0xAB,0xFC,0xDB,0xFD,0x08,0xFD,0x33,0xFD,0x5B,0xFD,0x81,0xFD,0xA5,0xFD,0xC7,0xFD,0xE7,0xFE,0x05,0xFE,0x21,0xFE,0x3C,0xFE,0x55,0xFE,0x6D,0xFE,0x84,0xFE,0x99,0xFE,0xAD,0xFE,0xC0,0xFE,0x02,0xFE,0xE3,0xFE,0xF3,0xFF,0x02,0xFF,0x

21、10,0xFF,0x1D,0xFF,0x2A,0xFF,0x36,0xFF,0x42,0xFF,0x4C,0xFF,0x56,0xFF,0x60,0xFF,0x69,0xFF,0x71,0xFF,0x79,0xFF,0x81;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

22、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,4,17,4,2

23、2,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,0xFF,0xFF;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,26,8,21,6,23,2,21

24、,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,14,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,14,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,16,8,21,4,26,4

25、,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,0xFF,0xFF;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,15,4,17,8,19,8,26,6,26,2,26,4,24,4,

26、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,0xFF,0xFF;uchar timetable =00:00;void delay(uchar p) uchar i,j; for(;p0;p-) for(i=181;i0;i-) for(j=181;j0;j-);BOOL lcd_bz()BOOL result;rs =

27、 0;rw = 1;ep = 1;_nop_();_nop_();_nop_();_nop_();result = (BOOL)(P0 & 0x80);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;void lcd_pos(BYTE pos)lcd_wcmd(pos | 0x8

28、0);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(0x38);delay(1);lcd_wcmd(0x0c);delay(1);lcd_wcmd(0x06);delay(1);lcd_wcmd(0x01);delay(1); void pause() uchar i,j; for(i=150;i0;i

29、-) 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() interrupt 0 timesec=0; timemin=0; r0+; delay(5); if(r011) r0=11; void adfii() interrupt 2 if(pausekey=0

30、) 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 zhuanhuan()timetable3=timesec/10+0;timetable4=timesec%10+0;timetable2=:;timetable0=timemin/10+0;timet

31、able1=timemin%10+0;void timedis()if(timecheck!=timesec)timecheck=timesec;zhuanhuan();lcd_pos(0x49);lcd_wdat(timetable0);lcd_wdat(timetable1);lcd_wdat(timetable2);lcd_wdat(timetable3);lcd_wdat(timetable4);void main() uchar i=0,lcd_check=0; TMOD=0x11; TH1=(65535-45872)/256; TL1=(65535-45872)%256; PX0=

32、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(); if(lcd_check!=r0)lcd_wcmd(0x01); delay(1);lcd_check=r0;lcd_pos(0); i = 0; while(dis1i != 0) lcd_wdat(dis1i); i+; m=mus

33、ic1i0;n=music1i1; if(m=0x00) TR0=0;delay(n);i+;/ else if(m=0xFF) 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;delay(n);i+;if(r0=2) timedis(); if(lcd_check!=r0) lcd_wcmd(0x01); delay(1); lcd_check=r0; lcd_pos(0); i = 0; while(dis2i != 0) lcd_wdat(dis2i); i+; m=music2i0;n=music2i1; if(m=0x00) TR0=0;delay(n);i+;/ else if(m=0xFF) 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+;. z.

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!