目录第一章绪论 (1)第二章音乐播放器主要器件相关知识介绍 (2)2.1 AT89C51 (2)2.2 LCD 显示器 (4)2.3 喇叭 (5)2.4 键盘 (5)第三章音乐播放器设计原理 (6)3.1 单片机发声的基本原理 (6)3.2 设计的相关音乐说明 (7)3.3 音乐播放器设计功能说明 (7)3.4 设计结构框图 (9)3.5 主程序控制的工作流程图 (10)3.6 播放音乐的主程序 (11)设计心得 (15)参考文献 (15)第一章绪论二十世纪九十年代以来,计算机、信息、电子、控制、通信等技术得到迅速发展,促使了社会生产力的提高,也使人们的生产方式和生活方式产生了日新月异的变化。
随着人们生活水平的提高及对音乐的喜爱,对音乐播放器的品质,功能,品种等提出了越来越多的要求,表现在对控制系统性能、可靠性等要求越来越高。
而品质的提高,功能的更新,可靠性的增强,品种的变化无不于产品的核心控制部分水平的提高密不可分。
家用音乐播放器产品及其它有关消费电器产品都是一些开环或闭环控制系统,都由核心控制部分,执行部分与人机界面三部分组成。
而最为重要的控制部分一般是由单片机来执行完成的,这就必将导致和促进单片机在音乐领域应用的发展。
现在这些由单片机实现的音乐播放器的功能越来越强、费用越来越低。
例如,就市场上的mp3目前的功能越来越强大体积却越来越小,价格也逐渐便宜,被大多数人所能接受。
但这些音乐播放器也或多或少的存在着一些问题,解决这些问题,还除智能化的单片机莫属。
设计指标:(1)设计一个(4×4)的键盘,并将16个键设计成16个音;(2)可弹奏想要表达的音乐;(3)该电子琴包含1首示例音乐,接通电源可播放示例音乐。
设计要求:(1)按设计指标进行电路设计;(2)列出音阶与单片机定时器输出频率关系表格;(3)制作符合设计指标的硬件电路。
第二章音乐电子显示屏主要器件相关知识介绍制作音乐播放器所使用的主要元器件AT89S52 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字节闪烁可编程可擦除只读存储器(FPEROM—Flash 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 口(32~39):为8位双向三态I/O口P1口(8~1):是带部上拉电阻结构的8位准双向I/O口P2口(28~21):也是带部上拉电阻结构的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.0~P0.7;P1.0~P1.7;P2.0~P2.7;P3.0~P3.71. P0 有三个功能1)。
外部扩充存储器时,作数据总线(D0~D7)2)。
外部扩充存储器时,作地址总线(A0~A7)3)。
不扩充时,作一般I/O使用,部无上拉电阻,作为输出/输入使用时应加上拉电阻2. P1只作I/O口使用,有部上拉电阻。
3. P2有两个功能1)。
扩充外部存储器时,作地址总线(A8~A15)使用。
2)。
作一般I/O口使用,有部上拉电阻。
2.2 LCD1602液晶显示器图10-54 1602LCD尺寸图1602LCD主要技术参数:显示容量:16×2个字符芯片工作电压:4.5—5.5V工作电流:2.0mA(5.0V)模块最佳工作电压:5.0V字符尺寸:2.95×4.35(W×H)mm引脚功能说明1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如表10-13所示:编号符号引脚说明编号符号引脚说明1 VSS 电源地9 D2 数据2 VDD 电源正极10 D3 数据3 VL 液晶显示偏压11 D4 数据4 RS 数据/命令选择12 D5 数据5 R/W 读/写选择13 D6 数据6 E 使能信号14 D7 数据7 D0 数据15 BLA 背光源正极8 D1 数据16 BLK 背光源负极表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端由高电平跳变成低电平时,液晶模块执行命令。
第7~14脚:D0~D7为8位双向数据线。
第15脚:背光源正极。
第16脚:背光源负极。
10.8.2.3 1602LCD的指令说明及时序1602液晶模块部的控制器共有11条控制指令,如表10-14所示:序号指令RSR/WD7 D6 D5 D4 D3 D2 D1 D01 清显示0 0 0 0 0 0 0 0 0 12 光标返回0 0 0 0 0 0 0 0 1 *3 置输入模式0 0 0 0 0 0 0 1I/DS4 显示开/关控制0 0 0 0 0 0 1 D C B5 光标或字符移位0 0 0 0 0 1S/CR/L* *6 置功能0 0 0 0 1 DL N F * *7置字符发生存贮器地址0 0 0 1字符发生存贮器地址8 置数据存贮器地址0 0 1 显示数据存贮器地址9 读忙标志或地址0 1 BF 计数器地址10写数到CGRAM或DDRAM)1 0要写的数据容11从CGRAM或DDRAM读数1 1读出的数据容与HD44780相兼容的芯片时序表如下:读状态输入RS=L,R/W=H,E=H 输出D0—D7=状态字写指令输入RS=L,R/W=L,D0—D7=指令码,E=高脉冲输出无读数据输入RS=H,R/W=H,E=H 输出D0—D7=数据写数据输入RS=H,R/W=L,D0—D7=数据,E=高脉冲输出无2.3:喇叭(如下图2.3-1)图2.3-1由于人的耳朵能听到的声音feq为20HZ—20 000HZ,极性电容C2的作用为滤波,电容C7的作用为截止直流信号通过。
其电容C2角频率w=2*pi*feq 即为 125.6—125600。
阻抗R=1/(j*w*c)得到阻抗的取值围7.961—7961。
2.44*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。