《数字音乐盒的设计实现指南.docx》由会员分享,可在线阅读,更多相关《数字音乐盒的设计实现指南.docx(27页珍藏版)》请在第一文库网上搜索。
1、课程设计报告课程设计名称:微机系统综合课程设计课程设计题目:数字音乐盒的设计与实现1总体设计方案1.1 题目简介与规定本次课程设计的任务是运用伟福1ab8000试验箱和kei1软件设计并实现一种数字音乐盒,规定采用I/O产生一定频率的方波,从而驱动蜂鸣器发出不一样的音调,演奏乐曲;并且需要采用七段数码管显示目前播放的歌曲序号和播放时间;还得通过数字键盘直接选择乐曲,控制选择上一曲和下一曲音乐,具有暂停和播放控制功能。1.2 设计思绪12.1音调的产生频率的高下决定了音调的高下。音乐的十二平均率规定:每两个八度音(如简谱中的中音1和高音1)之间的频率相差一倍。在两个八度音之间又分为十二个半音。此
2、外,音名A(简谱中的低音6儿勺频率为440Hz,音名B到C之间、E到F之间为半音,其他为全音。由此可以计算出简谱中从低音1到高音1之间每个音名对应的频率,所有不-样频率的信号都是从同种基准频率分频得到小J。要产生音频脓冲,只要算出某一音频的周期(频率),然后将此周期除以2,即为半周期I内时间。运用定期器计时这半个周期时间,每当计时到后就将输出脉冲的I/O反相,然后反复计时此半周期时间再对I/O反相,就可在I/O脚上得到此频率的脉冲。运用51单片机门勺内部定期器使其工作在计数器模式MODE1下,变化计数值THO和T1O以产生不一样频率的措施。此外结束符和休止符可以分别用代码OOH和FFH来表达,
3、若查表成果为O0H,则表达曲子终了;若查表成果为FFH,则产生对应的停止效果。例如频率为523Hz,其周期T=1523=1912us,因此只要令计数器计时956us1us=956,在每次技术956次时将I/O反相,就可得到中音DO(523Hz)。计数脉冲值与频率的关系公式如卜丁N=Fi/2/FrN:计算值:Fi:内部计时一次为Ius,故其频率为IMHz:其计数值的求法如下:初值T=65536-NC调各音符频率与计数值T的对照表如表1.1所示。表1,1C调各音符频率与计数值T的对照表低音频率N参数中音频率N参数高音频率N参数Do2621908229Do523956115Do10465757Do#
4、2771805217Do#554903108Do#11095454Re32941701204Re587852102Re11755151Re#3111608193Re#62280497Re#12454848Mi3301515182Mi65975991Mi13184545Fa3491433172Fa69871686Fa13974343Fa#3701351162Fa#74067681Fa#14804141So3921276153So78463877So15683838So#4151205145So#83160272So#166136361a44011361361a880568681a17603434
5、1a946410781291a#932536641a#18653232Si4941012121Si98850661Si197630301.2.2节拍的产生构成音乐需要节拍,让音乐具有旋律,并且可以调整各个音的快慢度。若1拍实05s,则1/4拍为0.125s。至于1有多长时间,可以按照设计者来决定,只要好听就行。音持续时间的长短即时值,般用拍数表达。休止符表达暂停发音。一首音乐是由许多不一样的音符构成的,而每个音符对应着不一样频率,这样就可以运用不一样I内频率时组合,加以与拍数对应的延时,构成音乐。节拍与节拍码对照表如表1.2所示。表1.2节拍与节拍码对照节拍码节拍数节拍码节拍数11/4拍11/
6、8拍22/4拍21/4拍33/4拍33/8拍41拍42/1拍51又1/4拍55/8拍61又1/2拍63/4拍82拍81拍A2又1/2拍A1又1/4拍C3拍C1又1/2拍F3又3/4拍每个音符使用1个字节,字节I向高4位代表音符的高下,低4位代表音符的节拍。假如1拍为0.4秒,1/4拍为0.1秒,只要设定延迟时间就可求得节拍的时间。假设1/4拍的延迟时间为1则1拍的延迟时间应为4,以此类推。因此只规定得1/4拍的延迟时间,其他的节拍就是它的倍数。表13所示。表1.31/4和1/8节拍的时间设定曲调值DE1AY曲调值DE1AY调4/4125毫秒调4/462亳秒调3/4187亳秒调3/494毫秒调2
7、/4250亳秒调2/4125亳秒2硬件电路设计2.1 系统原理数字音乐盒的关键重要分为三个方面,分别是七段数码管、键盘和蜂鸣器。用定期器中断的方式来控制蜂鸣器和扫描4*4键盘,在程序中用显示函数让数码管显示,需要显示出歌曲序号和播放时间,并且能用键盘控制播放的音乐。原理框图如图2.1所示。图2.1系统原理框图2.2 单片机8051单片机是在课堂上学习的单片机型号,也是这次课程设计的关键器件,它是8位的单片机,具有品种全、兼容性强、性能价格比高等特点。8051单片机具有诸多小JI/O口,其中P2.4、P2.5、P2.6连接741S138译码器,而译码器则可以控制片选信号和位选信号;PO的八个I/
8、O口要与译码器74HC374相连,然后在与键盘连接,从而能确认数码管的段选信号,本次课程设计的位选码为0x8002。段选码是0x8004;P1.1口则-JJ-Brf以BHaFIPICV1tP11AI)OI,:IMIP1IP21A121I1I4,PMVIMiPH*P11*N1)61RSI_iuri1,)1I.1.;I1AJ1,212r,2m1iPK1NI111,2CIHH1i1i1i1,2S1_!I,m,IA12XIA1I2h9(iNDPAMI1“j1IcsU.41”1)4:0UK151M5(.SU141AHC312H控制的是蜂鸣器。单片机电路图如图2.2所示。23重要电路器件2.3.1 蜂鸣器
9、蜂鸣器是整个电路中重要的输出部分之一,没有了蜂鸣器就不会响起悦耳的音乐,本次课程设计,运用了单片机I/O口中的P11口,当程序中的PIay变量等于1时,蜂鸣器响,反之,若PIay等于0,则停止响声。端口输出的方波经放大滤波后,驱动蜂鸣播发声,蜂鸣器的电路图如图2.3所示。图2.3蜂鸣器电路图2.3.2 键盘1ab8000试验箱内的键盘是4*6的键盘,不过这次课程设计只用到了前四列,因此也就只扫描了四列按键,键盘的重要功能就是顾客日勺输入,也是实现程序现象的重要部分,当顾客想播放哪首歌曲就在键盘中输入哪个按键。试验箱内的键盘还连接了一种U1N2023芯片,这个芯片的特点是电流增益高、工作电压高、
10、温度范围宽、带负载能力强等特点,适应于规定高速大功率驱动的系统。键盘的电路图如图2.4所示。图2.4键盘电路图2.3.3 数码管本次课程设计运用了六的数码管,第一种显示了歌曲的序号,第二个是空位,第三和第四个显示了分钟时计时,第五和第六个显示了秒钟的计时。数码管的重要作用就是显示出目前途序运行时的现象,数码管的位选位与U1N2023相连后再接到键盘上,段选位则是连到74HC374译码器上,试验箱的数码管为共阴极,显示方式为动态显示。由电路图得知,位选信号为1时有效。数码管示意图如图2.5所示。3程序设计3.1 系统功能该软件具有多种功能,系统功能图如图3.1所示。图3.1系统功能图3.2 重要
11、函数值介3.2.1 总体流程程序的第一步是变量的初始化,定义了f1ag、time、SeC等变量,并且设置了各个音调对应的十六进制码,然后开中断,对定期器进行模式的选择和初值的计算,接着调用1ED显示函数使数码管按照程序设计的方式运行,其中扫描健盘是用定期器中断的措施,设置每隔3ms中断一次,即扫描一次键盘。流程图如图3.2所示。图3.2总体流程图3.2.2 数码管显示函数数码管的显示在这里用的是动态显示措施,并且通过电路图得知,为了让74HC138芯片和74HC573芯片有效,计算出段控制和位控制口分别为0x8004和0x8002。流程图如图3.3所示。图3.3数码管显示函数流程图3.2. 3
12、键盘扫描扫描键盘重要用的是UnSignedCharGetKeyo函数,并且还是用定期器中断的措施,设置每隔3毫秒中断一次,在一秒中大概会产生中断333次,就是说在一秒钟扫描键盘333次。在扫描键盘的过程中,先是扫描哪一种的按键别按下,把第几列记录下来后,再扫描是哪一行的按键,记录是哪一行;最终根据公式“键值=列X4+行”,就能计尊出是哪一种按键被按下。如图3.4所示。图3.4键盘扫描函数流程图3.2.4 计时函数为了对歌曲进行计时,因此设计了一种计时函数jishi分钟和秒钟分别用两个数码管来显示,当歌曲响起时开始计时,若秒钟个位加到10时,则十位加一,并且个位清零;秒钟的十位加到5时,分钟个位
13、加一,并且将秒钟清零,分钟I肉十位同理,最终通过缓冲区在数码管中显示。计时函数如图3.5所示。图3.5计时函数流程图3.2.5 音乐函数音乐函数songO是使蜂鸣器响起音乐的关键,一共有六首歌曲,分别用0x01一一0x06控制着六首歌曲,通过用SWitCh语句控制判断选择的是哪首歌曲,选择歌曲的序号后,调用相对应的并且储存了用十六进制数表达歌曲的数组,若在键盘中选择了1,就会调用tiger,则蜂鸣器就会按照tiger数组中存储的十六进制码产生的频率响起音乐,播放结束后就会继续播放序号为2的歌曲。如图3.6所示。图3.6音乐函数流程图4试验现象与问题4.1 操作阐明与试验现象“1”按键:歌曲1,两只老虎“2”按键:歌曲2,小青蛙“3”按键:歌曲3,千年之恋“4”按键:歌曲4,七子之歌“5”按键:歌曲5,找朋友“6”按键:歌曲6,寂寞沙洲岭“A”按键:播放上一首歌曲“B”按键:播放下一首歌曲“C”按键:暂停键数码管的第一位显示目前正在播放的歌曲序号,第三四位显示歌曲的分钟计时,第五六位显示歌曲的秒钟计时。在键盘中选择“1”一“6”按键,就会播放对应的歌曲,六首歌曲循环播放,若目前播放的是第一首,选择“A”按键播放上一首歌曲就会播放第六首,若目前播放的是第六首,选择“B”按键播放下一首歌曲就会播放