广西科技大学单片机课程设计报告

上传人:第*** 文档编号:57514500 上传时间:2018-10-22 格式:PDF 页数:13 大小:286.07KB
返回 下载 相关 举报
广西科技大学单片机课程设计报告_第1页
第1页 / 共13页
广西科技大学单片机课程设计报告_第2页
第2页 / 共13页
广西科技大学单片机课程设计报告_第3页
第3页 / 共13页
广西科技大学单片机课程设计报告_第4页
第4页 / 共13页
广西科技大学单片机课程设计报告_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《广西科技大学单片机课程设计报告》由会员分享,可在线阅读,更多相关《广西科技大学单片机课程设计报告(13页珍藏版)》请在金锄头文库上搜索。

1、单片机课程设计报告题目:利用蜂鸣器实现音乐播放功能班别:姓名:指导教师:柯宝中日期:2016 年 10 月 10 日广西科技大学课程设计说明书广西科技大学课程设计说明书2一、课程设计目标一、课程设计目标1、培养综合运用知识和独立开展实践创新的能力;2、学习和掌握单片机中常用接口电路的应用和设计技术,充分认识理论知识对应用技术的指导性作用,进一步加强理论知识与应用相结合的实践和锻炼。通过这次设计实践能够进一步加深对专业知识和理论知识学习的认识和理解, 使自己的设计水平和对所学的知识的应用能力以及分析问题解决问题的能力得到全面提高。二、研究方法及手段应用二、研究方法及手段应用1、将任务分成若干模块

2、,查阅相关论文资料,分模块调试和完成任务;2、通过单片机进行实际调试,实现预期的功能。三、课程设计预期效果三、课程设计预期效果1、完成实验环境搭建;2、实现歌曲播放及歌名显示。四、实验原理与设计四、实验原理与设计1 1、蜂鸣器及其工作原理: 蜂鸣器按其结构分主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。 电磁式 蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。接通电源后,振荡 器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场,振动膜片在电磁线 圈和磁铁的相互作用下,周期性地振动发声。本实验采用的是电磁式蜂鸣器。 蜂鸣器按其是否带有信号源又分为有源和无源两种类型。 有源蜂鸣器只需要 在其

3、供电端加上额定直流电压,其内部的震荡器就可以产生固定频率的信号,驱 动蜂鸣器发出声音。无源蜂鸣器可以理解成与喇叭一样,需要在其供电端上加上 高低不断变化的电信号才可以驱动发出声音。本实验采用的是有源蜂鸣器。广西科技大学课程设计说明书广西科技大学课程设计说明书32、 蜂鸣器发声原理本实验由于采用有源蜂鸣器, 只需将引脚端口 P34 清零, 蜂鸣器即可发声; P34 置位,蜂鸣器停止发声。采用置 1 置 0 的方法只能使蜂鸣器发声或停止发 声,想要使蜂鸣器发出声音,必须对蜂鸣器发出声音的音频和节拍进行控制。音调: :不同音高的乐音是用 C、D、E、F、G、A、B 来表示,这 7 个字母就是音乐 的

4、音名,它们一般依次唱成 DO、RE、MI、FA、SO、LA、SI,即唱成简谱的 1、2、 3、4、5、6、7,相当于汉字“多来米发梭拉西”的读音,这是唱曲时乐音的发 音,所以叫“音调” ,即 Tone。把 C、D、E、F、G、A、B 这一组音的距离分成 12 个等份,每一个等份叫一个“半音” 。两个音之间的距离有两个“半音” ,就 叫“全音” 。在钢琴等键盘乐器上,CD、DE、FG、GA、AB 两音之间 隔着一个黑键,他们之间的距离就是全音;EF、BC 两音之间没有黑键相隔, 它们之间的距离就是半音。通常唱成 1、2、3、4、5、6、7 的音叫自然音,那些 在它们的左上角加上号或者 b 号的叫

5、变化音。叫升记号, 表示把音在原来的 基础上升高半音,b 叫降记音,表示在原来的基础上降低半音。例如高音 DO 的 频率 (1046Hz) 刚好是中音 DO 的频率 (523Hz) 的一倍, 中音 DO 的频率 (523Hz) 刚好是低音 DO 频率(266 Hz)的一倍;同样的,高音 RE 的频率(1175Hz)刚 好是中音 RE 的频率(587Hz)的一倍,中音 RE 的频率(587Hz)刚好是低音 RE 频率(294 Hz)的一倍。节拍:节拍是让音乐具有旋律(固定的律动) ,而且可以调节各个音的快满度。 “节 拍”,即 Beat,简单说就是打拍子,就像我们听音乐不自主的随之拍手或跺脚。若

6、 1 拍实 0.5s,则 1/4 拍为 0.125s。至于 1 拍多少 s,并没有严格规定,就像人的 心跳一样,大部分人的心跳是每分钟 72 下,有些人快一点,有些人慢一点,只 要听的悦耳就好。音持续时间的长短即时值,一般用拍数表示。休止符表示暂停 发音。 )控制发声频率:要产生音频脉冲,只要算出某一音频的周期(1/频率) ,然后将此周期除以 2, 即为半周期的时间。利用定时器计时这半个周期时间,每当计时到后就将输出脉 冲的 I/O 反相,然后重复计时此半周期时间再对 I/O 反相,就可在 I/O 脚上得到 此频率的脉冲。利用 STC89C52RC 的内部定时器使其工作在计数器模式 MODE1

7、 下, 改变计数值 TH0 及 TL0 从而产生不同频率。 此外结束符和休止符可以分别用 代码 00H 和 FFH 来表示,若查表结果为 0x00,则表示曲子终了;若查表结果为 0xff,则产生相应的停顿效果。以标准音高 A 为例,A 的频率是 440Hz,周期 T=1/440=2272us。在占空比为 50%的情况下,导通时间=断开时间=半周期 t=2272us/2=1136us,利用 P34 端口 的位操作, 经过不断地反相变换即可得到标准音高 A 的音频脉冲。 端口导通时间广西科技大学课程设计说明书广西科技大学课程设计说明书4与断开时的时间利用定时器实现。 具体的方法是将单片机定时器的中

8、断触发时间 设为半周期 t,这样每隔半周期端口反相,输出连续的对应音高的频率。设晶振的频率为 f0,中断触发时间(半周期)为 t,定时器工作在模式 1 时 计数器的初值为 THL,高 8 位为 THL,低 8 位为 TL。时钟周期即为 1/f0,定时器 每一次累加用去一个机器周期,一个机器周期包含 12 个时钟周期,即定时器每 次加一所用时间是12/f0。 定时器在模式1下计时采用16位数, 最大计数为216-1 (65535) ,再次加一(65536)溢出触发中断。根据以上分析可得如下关系: 音频对应定时器初值的高 8 位 TH=THL/(28)=(65536-t*f/12)/256; 音频

9、对应定时器初值的低 8 位 TL=THL%(28)=(65536-t*f/12)%256;附:八度 12 音阶定时器初值表(只含自然音)低音音名频率 Hz晶振12MHz晶振11.0592MHz中音音名频率 Hz晶振12MHz晶振11.0592MHz高音音名频率 Hz晶振12MHz晶振11.0592MHzDo2620xF8850xF91BDo5230xFC430xFC8EDo10460xFE210xFE47Re2940xF95A0xF9DFRe5870xFCAD0xFCEDRe11750xFE560xFE76Mi3300xFA130xFA8AMi6590xFD0A0xFD43Mi13180xFE

10、850xFEA1Fa3490xFA680xFAD8Fa6980xFD340xFD6AFa13970xFE9A0xFEC7So3920xFB040xFB68So7840xFD820xFDB3So15680xFEC10xFED9La4400xFB900xFBE9La8800xFDC80xFDF3La17600xFEE40xFEF9Si4940xFC0C0xFC5BSi9880xFE060xFE2DSi19760xFF030xFF16*简谱编码将简谱中的每个音符进行编码, 每个音符用一个 unsigned char 字符类型表示, 简谱可用一个 unsigned char 字符数组表示。字符的前四位

11、表示音频,可以表示 0-f 共十六个音符。 本实验中采用了中音区和高音区。 中音 do-si 分别编码为 17, 高音 do-si 分别编码为 8E,停顿编为 0。字符的后四位表示节拍,节拍以十六分 音符为单位(在本程序中为 165ms) ,一拍即四分音符等于 4 个十六分音符,编 为 4,其它的播放时间以此类推。 以 0xff 作为曲谱的结束标志。 程序从数组中取出 一个数,然后分离出高 4 位得到音调 ,将值赋给定时器 0,得到音调;接着分 离出该数的低 4 位,得到节拍。3、程序流程图及说明广西科技大学课程设计说明书广西科技大学课程设计说明书5广西科技大学课程设计说明书广西科技大学课程设

12、计说明书6五、程序设计五、程序设计#include /包含所选单片机的定义头文件sbit SPEAKER = P27;/定义音乐输出口#define uchar unsigned charsbitLCD_RS = P20;sbitLCD_RW = P21;sbitLCD_EN = P22;sbit led = P10;typedef struct/定义音符结构unsigned int mFreq;/发声频率(对应的定时器初值)unsigned int mDelay;/发声时值CNote;unsigned char ReloadH;/定义定时器 T1 重装值unsigned char Reloa

13、dL;uchar codecdis1 = “Now playing:“;uchar codecdis2 = “Guo ge “;/*函数:T1_ISR()功能:定时器 T1 中断服务函数,产生音乐振荡频率*/void T1_ISR() interrupt 3TR1 = 0;TH1 = ReloadH;TL1 = ReloadL;TR1 = 1;SPEAKER = !SPEAKER;/音乐声频的半个波/*函数:Delay()功能:延时 0.00165.536s参数:t0 时,延时(t*0.001)st=0 时,延时 65.536s*/void Delay(unsigned int t)广西科技大

14、学课程设计说明书广西科技大学课程设计说明书7doTH0 = 0xFC;/定时器赋初值,定时 1msTL0 = 0x66+17;TR0 = 1;/启动定时器while ( !TF0 );/等待定时器溢出TR0 = 0;/关闭定时器TF0 = 0;/清除溢出标志 while ( -t != 0 );/循环 t 次/*函数:Sound()功能:演奏一个音符参数:*note,音符指针,指向要演奏的音符*/void Sound(CNote *note)/利用定时器 T1 发出音符的频率if ( note-mFreq != 0 )ReloadH = (unsigned char)(note-mFreq 8);ReloadL = (unsigned char)(note-mFreq);TH1 = 0xFF;TL1 = 0xF0;TR1 = 1;Delay(note-mDelay);/发声延时TR1 = 0;/停止发声TF1 = 0;SPEAKER = 1;Delay(5);/*函数:Play()功能:演奏一段乐曲参数:music,要演奏的乐曲*/void delay1(int ms)广西科技大学课程设计说明书广西科技大学课程设计说明书8uchar t;while(ms-)for(t = 0; t

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 教育/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号