资源描述
目 录 第一章 绪论 1第二章 音乐播放器主要器件相关知识介绍 2 2.1 AT89C51 2 2.2 LCD 显示器 4 2.3 喇叭 5 2.4 键盘 5第三章 音乐播放器设计原理 6 3.1 单片机发声的基本原理 63.2 设计的相关音乐说明 73.3 音乐播放器设计功能说明 7 3.4 设计结构框图 93.5 主程序控制的工作流程图103.6 播放音乐的主程序 11设计心得 15参考文献 15第一章 绪论二十世纪九十年代以来,计算机、信息、电子、控制、通信等技术得到迅速发展,促使了社会生产力的提高,也使人们的生产方式和生活方式产生了日新月异的变化。随着人们生活水平的提高及对音乐的喜爱,对音乐播放器的品质,功能,品种等提出了越来越多的要求,表现在对控制系统性能、可靠性等要求越来越高。而品质的提高,功能的更新,可靠性的增强,品种的变化无不于产品的核心控制部分水平的提高密不可分。家用音乐播放器产品及其它有关消费电器产品都是一些开环或闭环控制系统,都由核心控制部分,执行部分与人机界面三部分组成。而最为重要的控制部分一般是由单片机来执行完成的,这就必将导致和促进单片机在音乐领域应用的发展。现在这些由单片机实现的音乐播放器的功能越来越强、费用越来越低。例如,就市场上的mp3目前的功能越来越强大体积却越来越小,价格也逐渐便宜,被大多数人所能接受。但这些音乐播放器也或多或少的存在着一些问题,解决这些问题,还除智能化的单片机莫属。设计指标:(1)设计一个(44)的键盘,并将16个键设计成16个音;(2)可弹奏想要表达的音乐;(3)该电子琴包含1首示例音乐,接通电源可播放示例音乐。设计要求:(1)按设计指标进行电路设计;(2)列出音阶与单片机定时器输出频率关系表格;(3)制作符合设计指标的硬件电路。第二章 音乐电子显示屏主要器件相关知识介绍 制作音乐播放器所使用的主要元器件AT89S51 1个晶振 12MHZ 1 个LCD1602液晶显示器 1个小喇叭 1个电容 30pf 2个极性电容 1uf 2个10nf 1个电阻 10k 1个470欧 1个1K欧 1个按键 17个排阻 1k 1个2.1 AT89S52 : AT89S52是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFlash Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89S52是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。现在我们对这些引脚的功能加以说明: 20:接地脚。 40:正电源脚,工作时,接+5V电源。 19:时钟XTAL1脚,片内振荡电路的输入端。 18:时钟XTAL2脚,片内振荡电路的输出端。 8051的时钟有两种方式,一种是片内时钟振荡方式 但需在18和19脚外接石英晶体(2-12MHz)和振荡电容,振荡电容的值一般取10p-30p。另外一种是外部时钟方式,即将XTAL1接地,外部时钟信号从XTAL2脚输入。 输入输出(I/O)引脚: Pin39-Pin32为P0.0-P0.7输入输出脚。 Pin1-Pin8为P1.0-P1.7输入输出脚。 芯片引脚简要说明Vcc (40) :+5V 电源Vss (20) :接地P0 口(3239):为8位双向三态I/O口P1口(81):是带内部上拉电阻结构的8位准双向I/O口P2口(2821):也是带内部上拉电阻结构的8位准双向I/O口 P3(17 10):也是带内部上拉电阻结构的8位准双向I/O口,但在整个系统中,对相应的口锁存器置“1” 后,这8个脚还具有第二功能。RST/VPD (9):复位信号线ALE/PROG (30):地址锁存有效信号线PSEN(29):外部程序存储器读选通信号线EN/VPP(31):内部和外部程序存储器的选择线I/O端口:8051共有4 I/O端口,为P0,P1,P2,P3;4个I/O口都是双向的,且每个口都具有锁存器。每个端口有8条线,共计32条I/O线。P0.0P0.7;P1.0P1.7;P2.0P2.7;P3.0P3.71. P0 有三个功能 1)。外部扩充存储器时,作数据总线(D0D7)2)。外部扩充存储器时,作地址总线(A0A7)3)。不扩充时,作一般I/O使用,内部无上拉电阻,作为输出/输入使用时应加上拉电阻2.P1只作I/O口使用,有内部上拉电阻。3.P2有两个功能 1)。扩充外部存储器时,作地址总线(A8A15)使用。 2)。作一般I/O口使用,有内部上拉电阻。2.2 LCD1602液晶显示器图10-54 1602LCD尺寸图1602LCD主要技术参数:显示容量:162个字符芯片工作电压:4.55.5V工作电流:2.0mA(5.0V)模块最佳工作电压:5.0V字符尺寸:2.954.35(WH)mm引脚功能说明1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如表10-13所示:编号符号引脚说明编号符号引脚说明1VSS电源地9D2数据2VDD电源正极10D3数据3VL液晶显示偏压11D4数据4RS数据/命令选择12D5数据5R/W读/写选择13D6数据6E使能信号14D7数据7D0数据15BLA背光源正极8D1数据16BLK背光源负极表10-13:引脚接口说明表第1脚:VSS为地电源。第2脚:VDD接5V正电源。第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第714脚:D0D7为8位双向数据线。第15脚:背光源正极。第16脚:背光源负极。10823 1602LCD的指令说明及时序1602液晶模块内部的控制器共有11条控制指令,如表10-14所示:序号指令RSR/WD7D6D5D4D3D2D1D01清显示00000000012光标返回000000001*3置输入模式00000001I/DS4显示开/关控制0000001DCB5光标或字符移位000001S/CR/L*6置功能00001DLNF*7置字符发生存贮器地址0001字符发生存贮器地址8置数据存贮器地址001显示数据存贮器地址9读忙标志或地址01BF计数器地址10写数到CGRAM或DDRAM)10要写的数据内容11从CGRAM或DDRAM读数11读出的数据内容与HD44780相兼容的芯片时序表如下:读状态输入RS=L,R/W=H,E=H输出D0D7=状态字写指令输入RS=L,R/W=L,D0D7=指令码,E=高脉冲输出无读数据输入RS=H,R/W=H,E=H输出D0D7=数据写数据输入RS=H,R/W=L,D0D7=数据,E=高脉冲输出无2.3:喇叭(如下图2.3-1) 图2.3-1由于人的耳朵能听到的声音feq为20HZ20 000HZ,极性电容C2的作用为滤波,电容C7的作用为截止直流信号通过。其电容C2角频率w=2*pi*feq 即为 125.6125600。阻抗R=1/(j*w*c)得到阻抗的取值范围7.9617961。2.4 4*4键盘: 第三章 音乐播放器设计原理3.1单片机发声的基本原理 我们知道,声音的频谱范围约在几十到几千赫兹,若能利用程序来控制单处机某个口线的“高”电平或低电平,则在该口线上就能产生一定频率形波,接上喇叭就能发出一定频率的声音,若再利用延时程序控制“高”“低”电平的持续时间,就能改变输出频率,从而改变音调。音符的节拍我们可以用定时器T0来控制,送入不同的初值,就可以产生不同的定时时间。便如某歌曲的节奏为每分钟94拍,即一拍为0.64秒。但是,由于T0的最大定时时间只能为131毫秒,因此不可能直接用改变T0的时间初值来实现不同节拍。我们可以用T0来产生10毫秒的时间基准,然后设置一个中断计数器,通过判别中断计数器的值来控制节拍时间的长短。例如对1/4拍音符,定时时间为0.16秒,相应的时间常数为16(即10H);对3拍音符,定时时间为1.92秒,相应时间长数为192(即C0H)。我们将每一音符的时间常数和其相应的节拍常数作为一组,按顺序将乐曲中的所有常数排列成一个表,然后由查表程序依次取出,产生音符并控制节奏,就可以实现演奏效果。此外,结束符和体止符可以分别用代码00H和FFH来表示,若查表结果为00H,则表示曲子终了;若查表结果为FFH,则产生相应的停顿效果。为了产生手弹的节奏感,在某些音符(例如两个相同音符)音插入一个时间单位的频率略有不同的音符。3.2设计的相关音乐说明1要产生音频脉冲,只要算出某一音频的周期(1/频率),然后将此周期除以2,即为半周期时间。利用半周期时间定时这个半周期时间,每当计时到后就将输出的I/O反向,然后重复计时此半周期再对I/O反向,就可以在I/O脚上得到此频率的脉冲。2利用8051的内部定时器使其工作在记数模式MODE1下,改变记数值TH0及 TL0以产生不同的方法。3 记数脉冲值与频率的关系公式如:N=Fi/2/Fr。N:记数值:Fi:内部计时依次为1us,故其频率为1 MHZ; Fr:要产生的频率;4 其记数值的求法如:T=65536-N=65536-Fi/2/Fr。例:设K=65536,F=1000000=Fi=1 MHZ。求低音DO(26HZ),中音DO(523HZ),高音DO(1046HZ)的记数值。5 每个音符使用1个音节,字节的高四位代表音符的高低,低四位代表音符的节拍。如果1拍为0.4秒,1/4拍为0.1秒,假设1/4拍为 DELAY,则1拍为4 DELAY。6 歌曲设计采用直觉式输入法,由程序中直接输入“01h,02h,03h”,便会演奏 DO RE ME。 3.3 功能说明:1 先把乐谱的音符找出,然后建立表建立T值的顺序2 把T值表建立在TABLE1,构成发音符的记数值放在“TABLE”3 简谱码为高位,节拍为低四位,音符节拍码放在程序的“TABLE”处。表一 各调1/4节拍的时间设定 各调1/8节拍的时间设定 曲调值 DELAY 曲调值 DELAY 调4/4125毫秒调4/4 62毫秒 调3/4187毫秒 调3/4 94毫秒 调2/4 250毫秒 调2/4 125毫秒 表3.3-1(表1)表二 简谱对应的简谱码T值,节拍数 简谱 发音 简谱码 T值5 低音SO 1 64260 6低音LA 2 64400 7 低音TI 3 64524 1 中音DO 4 64580 2 中音RE 5 64686 3中音MI 6 64777 4 中音FA 7 64820 5 中音SO 8 64898 6 中音LA 9 64968 7 中音TI A 65030 1 高音DO B 65058 2 高音RE C 65110 3 高音ME D 65157 4 高音FA E 65178 5 高音SO F 65217 不发音 0 表3.3-2(表2)表三 节拍码 节拍数 节拍码 节拍数1 1/4拍 2 2/4拍 3 3/4拍 4 1拍 5 1又 1/4拍 6 1又1/2拍 8 2拍 A 2又 1/2拍C 3拍 F 3又3/4拍 3.4音乐播放器硬件电路图 图3.4-14*4键盘16*2液晶显示单片机音乐播放电路复位晶振电路3.5 音乐播放器原理流程图主程序开始初始化变量及LCD显示接口 初始化定时器液晶显示姓名、学号N是否有音调键按下?Y音调显示在LCD依据按键码演奏该首歌曲N是否有歌曲键按下?Y歌曲名字显示在LCD3.6 主程序ORG 0000H LJMP START ORG 001BH LJMP TIME1START:MOV TMOD,#10H MOV IE,#88HMAIN: MOV 40H,#00HNEXT: MOV A,40H MOV DPTR,#TABLE MOVC A,A+DPTR CJNE A,#00H,PLAY LJMP STOPPLAY: MOV R1,A ANL A,#0FH MOV R2,A MOV A,R1 ANL A,#0F0H CJNE A,#00H,MUSIC CLR TR1 LJMP DELMUSIC:SWAP A DEC A MOV 22H,A ADD A,22H MOV R3,A MOV DPTR,#TABLE1 MOVC A,A+DPTR MOV TH1,A MOV 21H,A MOV A,R3 INC A MOVC A,A+DPTR MOV TL1,A MOV 20H,A SETB TR1DEL: LCALL DELAY INC 40H LJMP NEXTSTOP: CLR TR1 LJMP MAINTIME1:PUSH ACC PUSH PSW CPL P1.7 MOV TL1,20H MOV TH1,21H POP PSW POP ACC RETIDELAY:MOV R7,#02HDELA1:MOV R6,#125DELA2:MOV R5,#248 DJNZ R5,$ DJNZ R6,DELA2 DJNZ R7,DELA1 DJNZ R2,DELAY RETTABLE1:DW 63835,64021,64103,64260 DW 64400,64524,64580,64684,64777 DW 64820,64898,64968,65030,65058 DW 65110,65157,65178TABLE:DB 02H ;1=C 4/4 死了都要爱 DB 04H,94H DB 0E8H,0E4H,0E4H,0E8H,0E4H,0F4H,0D4H,0C4H DB 0B4H,84H,84H,92H,92H,94H,92H,02H DB 0A4H,0A2H,0B2H,0B4H,0C4H,84H,82H,92H,94H,0A4H DB 04H,0C2H,0C2H,0D4H,0C2H,0D2H,0D8H,0D4H,0D2H,92H DB 0E8H,0E4H,0E4H,0E8H,0E4H,0F4H,0D4H,0C4H,0B4H DB 84H,84H,92H,92H,94H,92H,02H DB 0A4H,0A2H,0B2H,0B4H,0C4H,0E8H,0D8H DB 0C8H,0C8H,08H,08H,78H,28H,38H,34H,24H DB 24H,64H,64H,24H,64H,72H,72H,78H,58H,54H DB 44H,38H,34H,14H,34H,84H,74H,74H,62H,62H,0D8H,78H,28H,38H,34H,24H DB 24H,64H,64H,24H,64H,72H,72H,72H,94H,92H,94H,0A4H,58H,58H,54H,44H DB 58H,58H,58H,58H,0A8H,0A8H,0A4H,0B4H,0A4H,84H,0A4H,94H,98H,98H,08H DB 84H,82H,82H,82H,82H,94H,0A2H,94H,92H,82H,74H,72H DB 74H,72H,72H,72H,72H,92H,91H,91H,94H,54H,74H,94H ;* DB 0A8H,0A4H,0A2H,0B2H,0C4H,0B4H,0A4H,0A4H,0A4H,92H DB 92H,98H,82H,72H,78H,04H,0A4H,0A2H,0B2H,0B4H,0C4H,84H,82H,92H,94H,0A4H DB 04H,0C4H,0D4H,0C4H,0C8H,04H,94H DB 0E8H,0E4H,0E4H,0E8H,0E4H,0F4H,0D4H,0C4H,0B4H DB 84H,84H,92H,92H,94H,92H,02 DB 0A4H,0A2H,0B2H,0B4H,0C4H,84H,82H,92H,94H,0A4H DB 04H,0C2H,0C2H,0D4H,0D8H,0D4H,0D2H,92H DB 0E8H,0E4H,0E4H,0E8H,0E4H,0F4H,0D4H,0C4H,0B4H DB 84H,84H,92H,92H,94H,92H,02 DB 0A4H,0A2H,0B2H,0B4H,0C4H,84H,82H,92H,94H DB 0A4H,04H,0C2H,0C2H,0D4H,0D8H,0D4H,0D2H,92H ;* DB 0A4H,0A2H,0B2H,0B3H,0C4H,0E8H,0D8H DB 0C8H,0C8H,0C8H,08H ; DB 00H END设计心得:在做次设计中,感觉比平时上课学习了很多东西,一方面自己在独立思考和动手的能力上有了一定的提高。另一方面在单片机这门课上也有了进一步的认识和深入。 此次课程设计主要做了一个程序:音乐发生器。第一天刚开始的时候感觉很难,不知道怎么去做,怎么去编写程序.好多的空白,特别是在不见老师情况下,只能自己看书查资料。仔细读过程序,发现其实复杂的程序都是由一些简单的程序组成的,感觉看不懂是因为前面的基础知识没掌握好,对语法不熟悉就不能很好地理解程序的含义。 在作此课程设计中遇到不少的难点,有的原理,根本就不知道怎样去实现。最后通过自己仔细查资料,一点一点的就慢慢懂了。在实验中发现,其实在难编写的程序都是由一些基础程序模块构成的,很多的基础模块前人就已经做好了,只要我们拼凑就行了,当然拼凑的工作也不是很简单,最重要的还是要自己的基础扎实,同时,自己的思路要非常的清晰。专周实验完后,感觉到平时掌握的东西实在太少了,要真正实现学有所成、学有所用还有很长的路要走。 现在电子信息技术发展迅速,我们现在学的东西在社会上也许已经或即将被淘汰。因此在学校要学的不仅是书本上的东西,更重要的是自学的能力、独立思考的能力和动手的能力。要想在竞争异常激烈的现代社会立足,就必须有实力。在学校的时间是最好的学习机会,一定要珍惜好这有限的时间,多学知识,尽量充实自己,为以后进入社会多做准备。十 参考文献【1】,杨全胜.胡有彬。现代微机原理与接口技术。北京:电子工业出版社,2002【2】,潘新民.王燕芳。微型计算机控制技术。北京:人民邮电出版社,1999【3】,朱庆保.张正兰.侯晓霞.于海江。南京:南京大学出版社,1997【4】,张友德.赵志英.涂时亮。单片微型机原理、应用与实验(第四版)。上海:复旦大学出版社,2003【5】,张洪润.张亚凡。单片机原理及应用。北京:清华大学出版社,2005
展开阅读全文