




已阅读5页,还剩65页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1一、前言单片机自 20 世纪 70 年代问世以来,作为微型计算机的一个很重要的分支,应用非常广泛,以对人类社会产生了巨大的影响。尤其是 MCS-51系列的单片机,由于其具有集成度高、功能强、可靠性好、系统结构简单、价格低廉、易于扩展和使用等特点,在我国已得到广泛的应用并收到很好的成果。虽然世界各大公司也有各种型号的高性能单片机问世,但 MCS-51 系列单片机仍然是我国在单片机应用领域的首选机型。在这我以STC89C52 单片机为基础设计音乐播放器。二、课程设计及要求本次涉及的是单片机控制的音乐播放器,使单片机播放出一首音乐。设计题目: 单片机音乐播放器 设计要求:1、完成 89S51 的外围复位、时钟和电源等外围电路的设计,完成扬声器驱动设计。2、根据各音阶频率算出定时器定时常数,根据节拍给出该音阶持续的时间。 3、完成音乐播放软件并完成乐谱表的翻译,最好能编写一个播放子程序用于播放。 4、播放音乐片段三、方案论证采用单片机来设计电路。此电路包括时钟电路、复位电路、音乐驱动电路和 MCS-51 单片机。各部分功能如下:21、时钟电路:由石英晶体振荡器产生单片机工作时所必须的时钟信号。振荡器采用 12M 的晶振,使之机器周期 Tcy=1us,方便发音程序的计算和编译。2、复位单路:由复位按键使单片机的 CPU 和系统中其他部件都处于一个确定的初始状态,并从这个状态开始工作。3、音乐驱动电路:由于单片机最大灌入电流为 3.2mA,所以选用 PNP管,并要在 PNP 的基极和发射极加限流电阻。四、硬件设计1、选择元器件根据系统要求,应要求蜂鸣器及驱动电路构成单片机音乐播放器,拟选用蜂鸣器、三极管、电阻、电容。2、硬件原理单片机控制的音乐播放器原理图:1 2 3 4 5 6 7 8ABCD87654321DCBATitle Number RevisionSizeA3Date: 12-Jul-2010 Shet of File: H: syb51 .db Drawn By:A4 6f10 A3 8A1 12e1 c4DP3b7 a1g5A2 9d2 DIG1 DIG2 DIG3 DIG4DP2DP3DS2HDSP-B04EA4 6f10 A3 8A1 12e1 c4DP3b7 a1g5A2 9d2 DIG1 DIG2 DIG3 DIG4DP2DP3DS1HDSP-B04EW12W34W56W78 D1D2D3D4D5D6D7D8D1D2D3D4D5D6D7D8EA/VP31XTAL119 XTAL218 RST9P3.7(RD)17 P3.6(WR)16P3.2(INT0)12 P3.3(INT1)13 P3.4(T0)14 P3.5(T1)15P1.0(T2)1 P1.1(T2EX)2 P1.23 P1.34P1.45 P1.5(MOSI)6 P1.6(ISO)7 P1.7(SCK)8(AD0)P0.0 39(AD1)P0.1 38(AD2)P0.2 37(AD3)P0.3 36(AD4)P0.4 35(AD5)P0.5 34(AD6)P0.6 3(AD7)P0.7 32(A8)P2.0 21(A9)P2.1 2(A10)P2.2 23(A1)P2.3 24(A12)P2.4 25(A13)P2.5 26(A14)P2.6 27(A15)P2.7 28PSEN 29ALE/PROG 30(TXD)P3.1 1(RXD)P3.0 10GND 20VC 40MU1AT89S52P10P1P12P13P14P15P16P17P0P01P02P03P04P05P06P07P20P21P2P23P24P25P26P27VCGNDP30P31P32P3P34P35P36P37RSTDIGIDB2 E1C3DQ1850 DQ2850 DQ3850 DQ4850 DQ5850 DQ6850 DQ7850 DQ8850K1SW-PB4 K12SW-PB4 K13SW-PB4 K14SW-PB4K21SW-PB4 K2SW-PB4 K23SW-PB4 K24SW-PB4K31SW-PB4 K32SW-PB4 K3SW-PB4 K34SW-PB4K41SW-PB4 K42SW-PB4 K43SW-PB4 K4SW-PB4OSC32 INOSC32 OUTOSC32 INOSC32 OUTRTCTBATVC21 X12 X23 GND4 RST 5I/O 6SCLK 7VC1 8TU1DS1302TVCGNDTC1104GNDTVC TX132KKEYK123DSU1DS18B20BEPBU1BEPBQ1850BR14K7VCBDSR14K7LED1LED2LED3LED4LED5LED6LED7LED8LEDL231546SW1POWER-KEY12345678MP2P112345678MP4P312345678MP3P212345678MP1P0123PCON1POWER1234567891011213141516P21602P10P1P12P13P14P15P16P17P20P21P2P23P24P25P26P27P30P31P32P3P34P35P36P37P0P01P02P03P04P05P06P07R1 IN13 R2 IN8 T1 IN1 T2 IN10GND15V+2V-6VC16R1 OUT 12R2 OUT 9T1 OUT 14T2 OUT 7C1+1C1 -3 C2+ 4C2 - 5SU1MAX232VCSC1104SC4104 SC3104SC2104162738495SCON1RS232P31 P30DR14K7 DR24K7 DR34K7 DR44K7 DR54K7 DR64K7 DR74K7 DR84K7W1 W2 W3 W4 W5 W6 W7 W8DVCT2OUTT2OUTSerialSGNDPVC2PVC2GNDPR11KPORTPVCMK1RESETMR24K7RSTMC410U/16VSC5104K1SW-PB4 K2SW-PB4 K3SW-PB4 K4SW-PB4P32 P3 P34 P35VBUS 1D- 2D+ 3GND 46 5UCON1USBVC1 VCVC1VC2DR91KDR101KDR11KDR121KDR131KDR141KDR151KDR161KD1D2D3D4D5D6D7D8P0 1 23 45 67 8JP1HEADER 4X2P01P02P03P04P05P06P07VCVCVCPVC1PVC2DVCPWRR11KMC1104VC GNDC120U/16V C2104DS18B20DS1 23 45 67 89 10IP1ISP GNDVCMOSIRSTSCKMISOP15P16P17VCX112MMC330P MC230POSC_IN OSC_OUTOSC_INOSC_OUTP0P01P02P03P04P05P06P07123456789101121314151617181920P112864PVC1GNDGNDPVC1 PR310K PR44K7123456789MR14K7x8VCVC2GNDGNDP10P1 P10P1 P12P10 P1 P12 P13 P14 P15 P16 P17LVCEPROMA01A12 A23 VS4 SDA 5SCL 6WP 7VD 8EU124C08EVCER14K7 ER24K7E EC1104EVC GND1 23 45 67 8JP2HEADER 4X2DS1BEPBEPDS1VCVCVCLVCTVCEVCVCP30 P31 P32 P3P34P35P36P37P20P21 P2P23P24P25P26D1 D2 D3 D4 D5 D6 D7 D8LQ1850LR04K7 LVCP27VCGNDP0P01P02P03P04P05P06P07P12 P13P14P15123J3EN_1602ENEN GNDID11N4148123IU1IR 38KP32IR110VCIR38K 12JP3CON2IR38K五、软件设计1、声音三要素人耳对不同强度、不同频率声音的听觉范围称为声域。在人耳饿声域3范围内,声音听觉心理的主观感受主要有振幅、频率、音高、音色可以再主观上用来描述具有振幅、频率和相位三个物理量的任何复杂的声音,故又称为声音“三要素” 。2、音符发音原理乐曲中不同的音符,实质上就是不同频率的声音。通过单片机产生不同的频率的脉冲信号,经过放大电路,由蜂鸣器放出,就产生了美妙和谐的乐曲。3、单片机产生不同频率脉冲信号的原理1) 要产生音频脉冲,只要算出某一音频的脉冲(1/频率) ,然后将此周期除以 2,即为半周期的时间,利用定时器计时这个半周期的时间,每当计时到后就将输出脉冲的 I/O 反相,然后重复计时此半周期的时间再对 I/O 反相,就可以在 I/O 脚上得到此频率的脉冲。2) 利用 8051 的内部定时器使其工作在计数器模式 MODE1 下,改变计数值 TH0 及 TL0 以产生不同频率的方法如下:例如,频率为 523Hz,其周期为 1/523 S=1912uS,因此只要令计数器计时 956uS/1us=956,在每计数 956 次时就将 I/O 反接,就可得到中音 DO(532Hz) 。计数脉冲值与频率的关系公式如下:N=Fi/2/Fr (N:计数值,Fi:内部计时一次为 1uS,故其频率为 1MHz(12MHz 的晶振) ,Fr:要产生的频率 )1 其计数值的求法如下:4T=65536-N=65536-Fi/2/Fr一般来说,单片机演奏音乐基本都是单音频率,它不包含相应幅度的谐波频率。因此,单片机奏乐只需弄清楚两个概念,就是“音调”和“节拍” 。音调表示一个音符唱多高的频率,节拍表示一个音符唱多长时间。知道了一个音符的频率后,怎么让单片机发错相应频率的声音呢?一般来说,常采用的方法就是通过单片机的定时器定时中断,将单片机上对应蜂鸣器的 I/O 口来回取反,或者来回清零,置位,从而让蜂鸣器发出声音,为了让单片机发出不同频率的声音,我们只需将定时器置不同的定时值就可实现。在单片机上控制一个音符多长可采用循环延时的方法实现。首先,却思确定一个基本时长的延时程序,比如说以十六分音符的时长为基本延时时间,对于一个音符,如果它为十六分音符,只需调用一次延时程序,如果它为八分音符,只需调用两次延时程序,一次类推具体实现方法为:将乐谱中的每个音符的音调及节拍变换成对应的音调参数和节拍参数,将他们做成数据表格,存放在存储器中,通过程序取出一个音符的相关参数,播放该音符,该音符唱完后,接着取出下一个音符的相关参数,如此直到播放完毕最后一个音符,根据需要也可循环不停的播放整个乐曲。另外,对于乐曲中饿休止符,一般将其音调参数设为 FFH,其节拍参数与其他音符的节拍参数确定方法一致,乐曲结束用节节拍参数为 00H 来表示。六、程序设计#include #ifndef _SOUNDPLAY_H_REVISION_FIRST_5#define _SOUNDPLAY_H_REVISION_FIRST_#define SYSTEM_OSC 11059200 /定义晶振频率/原始频率表unsigned char code SignTab7 = 0,2,4,5,7,9,11 ; /17 在频率表中的位置unsigned char code LengthTab7= 1,2,4,8,16,32,64 ; unsigned char Sound_Temp_TH0,Sound_Temp_TL0; /音符定时器初值暂存 unsigned char Sound_Temp_TH1,Sound_Temp_TL1; /音长定时器初值暂存sbit BeepIO = P21;/定义输出管脚 while(Point = 2; /低音 if (SM=3) CurrentFre 0;i-) /发规定长度的音 while(TF1=0);TH1 = Sound_Temp_TH1;TL1 = Sound_Temp_TL1;TF1=0;if(i=1*LDiv1/1024)P1_0=0;P1_1=1;P1_2=1;P1_3=1;P1_4=1;P1_5=1;P1_6=1;P1_7=1;if(i=51*LDiv1/1024)while(TF1=0);TH1 = Sound_Temp_TH1;TL1 = Sound_Temp_TL1;TF1=0;8Point+=2; Tone=SoundPoint;Length=SoundPoint+1;BeepIO = 1;void Delay1ms()unsigned char code dispcode=0x41,0xf5,0x29,0x31,0x95,0x13,0x03,0x75,0x01,0x11,0xbf,0x11,0x45,0xf5,0x91,0xcb,0x0f,0xff; unsigned char dispbitcode=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f; unsigned char dispbuf8=0,0,0,0,0,0,0,0; unsigned char dispbitcnt; unsigned char mstcnt;unsigned int i,j;numble+;9for(i=250;i0;i-) for(j=300;j0;j-)mstcnt+; if(mstcnt=8) mstcnt=0; P0=dispcodedispbufdispbitcnt; P1=dispbitcodedispbitcnt; dispbitcnt+;if(dispbitcnt=8) dispbitcnt=0; dispbuf7=numble/10; dispbuf4=numbledispbuf6=17;dispbuf5=min/10; dispbuf3=min10dispbuf0=10;dispbuf2=sec/10; dispbuf1=secunsigned char code Music_Same= 0x0F,0x01, 0x15,0x02, 0x16,0x02, 0x17,0x66, 0x18,0x03,0x17,0x02, 0x15,0x02, 0x16,0x01, 0x15,0x02, 0x10,0x02,0x15,0x00, 0x0F,0x01, 0x15,0x02, 0x16,0x02, 0x17,0x02,0x17,0x03, 0x18,0x03, 0x19,0x0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 柑橘种植园农业信息化技术应用考核试卷
- 营林机械在林业灾害应急响应中的应用考核试卷
- 矿山信息化管理系统与数据安全考核试卷
- 宠物友好医院宠物友好医疗服务提升措施考核试卷
- 纱线染色牢度提升技术考核试卷
- 《三年级下册古诗鉴赏课件语文》
- 2019-2025年二级建造师之二建公路工程实务题库附答案(典型题)
- 2025年初级银行从业资格之初级公司信贷综合检测试卷A卷含答案
- 2025年文字、语音、图象识别设备项目建议书
- 猜测图片的课件
- 《工业用正丙醇》
- 过敏性湿疹病因介绍
- 水质监测与预警平台构建-洞察分析
- 邹平五大片区规划
- 2025年中考物理终极押题猜想(长沙卷)(全解全析)
- 水利工程建设重大、一般危险源清单、作业条件危险性评价法、风险空间分布图、事故隐患排查治理统计表、应急装备和物资台账
- 员工处罚单(模板)
- 猴子的课件教学课件
- 《BIM技术在土木工程中的应用研究》8700字(论文)
- 初中数学解《一元二次方程》100题含答案解析
- GB/T 44625-2024动态响应同步调相机技术要求
评论
0/150
提交评论