ImageVerifierCode 换一换
格式:DOCX , 页数:22 ,大小:184.60KB ,
资源ID:5726565      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/5726565.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(按键控制蜂鸣器播放多段音乐的设计论文.docx)为本站上传会员【xrp****65】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

按键控制蜂鸣器播放多段音乐的设计论文.docx

1、 《单片机原理及应用》课程设计 基于按键控制蜂鸣器播放多段音乐的设计 姓 名: X X X 任课教师: X X 院 系: X X X 专 业: 电子信息工程 提交日期: 2012年6月25日 基于按键控制蜂鸣器播放多段音乐的设计 引言 这学期我们学习了单片机原理及接口技术这一门实用而又生动的课程,初次接触到它就被它丰富的内容所吸引。 单片机自20世纪70年代问世以来,

2、已得到了十分广泛的应用。随着单片机 的集成度越来越高以及单片机系统的广泛应用,对软件编程的要求也越来越高,要求编程人员在短时间内编写出执行效率高、运行可靠的程序代码。单片机具有一些突出的有点:体积小、重量轻、耗电少、电源单一、功能强、价格低、运行速度较快、抗干扰能力强、可行性高,所以在如今的绝大数的领域中都能够看到单片机的身影。 本次设计是基于AT89C51芯片的电路为基础,外加上三极管的放大、放音设备蜂鸣器,以此来实现音乐硬件控制器的硬件电路,通过软件程序来控制单片机内部的定时器使其播放出优美的音乐。此次设计共写进了三首歌曲程序,分别是《仙剑》、《月亮代表我的心》和《小星星》。

3、关键字:单片机 蜂鸣器 AT89C51芯片 音乐 Based on the button control play more paragraphs music of the buzzer design Instruction This term we have learnt the digital image processing which is a practical and vivid course, First contact to it, I was attractive by its rich content. Since the 1

4、970 s, the single chip microcomputer appeared has been a wide range of applications. With the integration of single chip more and more high and the wide application of single-chip microcomputer system, the software programming requirement also more and more high, requesting programming staff in a sh

5、ort time, writing executive high efficiency and reliable operation program code. SCM has some prominent a bit: small volume, light weight, less consumption, and the power of a single, the function is strong, price low, the process is fast and strong anti-interference ability, feasibility is high, so

6、 in most of the number now in your field you can see the figure of single chip microcomputer. This design is based on AT89C51 chips based circuit, and the transistor amplifier and let the sound equipment, so as to realize music hardware hardware circuit, through the software program to control

7、 of the single chip microcomputer timer internal plays beautiful music. The design of three songs were written into the program, it is respectively xianjian, the moon represents my heart, little star. Keywords: Single-chip microcomputer ,buzzer,AT89C51 chip,music 目 录 第一章 绪论 1 1

8、1课程设计目的 1 1.2课程设计任务 1 1.3课程设计的意义 1 第二章 设计原理 2 2.1 设计原理 2 2.1.1 基本原理简述 2 2.1.2 关于音乐的原理知识概况 2 第三章 ATMEL 89C51 简介 5 3.1 ATMEL 89C51简介 5 3.1.1 AT89C51单片机 5 3.1.2 单片机CPU结构 5 3.1.3 AT89C51用户系统 6 3.1.4 引脚介绍 7 3.1.5 蜂鸣器原理 7 第四章 软件编程设计 8 4.1 编程思路 8 4.2 编程方案的设计 9 4.2.1 软件功能选择 9 4.2.2 综合调试

9、9 4.2.3 程序清单 9 心得体会 16 致谢 17 参考文献 17 第一章 绪论 1.1课程设计目的 应用单片机,基于按键控制蜂鸣器播放多段音乐,利用它的原理组成一个简单的音乐盒。 1.2课程设计任务 1) 以单片机为核心部件组成一个简单音乐播放器; 2) 利用单片机的定时器产生乐谱的各种频率方波,信号经过放大后由蜂鸣器发出声音; 3) 自行定义按键盘,当有键按下时,能相应的播放出歌曲。有一个停止键能控制音乐的播放; 1.3课程设计的意义 利用开发板及组成的器件,在软件及硬件上进一步了解单片机的原理,深入了解了单片机C51语言的实

10、际应用,能更深地理解课堂上所学的内容,巩固C语言程序编写,亲身体会作为一名设计人员所需要具备的各种能力,学会理论知识联系实际,提高我们发现问题,分析问题,解决问题和实践动手的能力。 第二章 设计原理 2.1 设计原理 2.1.1 基本原理简述 声音是通过振动产生的。单片机对某一引脚以一定的频率循环置1置0,该引脚便产生一定频率的方波,方波通过放大,作用于一定的物理实件(蜂鸣器),就产生了一定频率的声音。若改变输出方波的频率,产生的声音随之改变。通过控制输出方波的时间长短,声音的长短也可以得到控制,因此,根据乐谱,以类似的音节及同样的节拍,单片

11、机就可以产生电子音乐。音乐的播放选择可以通过按键的输入得以实现。 为简便起见,以一定的频率方波产生的音在其每个周期内高低幅值得时间各占一半因此,输出引脚在每个方波周期内要动作两次:一次升高,一次降低。即输出引脚的频率是原音频率的两倍。 方波的产生由定时器控制。定时器T0工作在定时方式1,改变TH0及TL0,产生不同的音频频率。必须考虑到中断响应时间的影响,尤其在高音部分,若忽略中断响应时间,会使音频频率比标准值低几十Hz,相当于1/4音程,很容易听出来,对低音部分影响不大。一般中断响应时间为3~6个机器周期,经过反复试验取5个机器周期作为校正最为恰当,表1中所给的定时初值就是考虑中断响应后

12、的定时常数。另外,为避免T1中断可能引起杂音,应将定时器T0中断设为高优先级。这样编写出来的程序播放的音与标准音叉进行差频校音,非常准确和谐。 音乐播放器的基本硬件电路有六部分组成:单片机、时钟与复位电路、选择按键输入电路、音频发生器、音频放大器和扬声器。 2.1.2 关于音乐的原理知识 在音乐中使用的各个固定频率的音叫音级[1]。常用符号C、D、E、F、G、A、B、c、d、e、……a1、b1、c2、d2……表示,它们对应于钢琴上的白键。两音之间音高的距离叫音程。在上述音级中,E与F、B与C之间音高的距离仅为其它相邻音级之间距离的一半,称它们之间的音程为半音音程,而称其它相邻各音之

13、间的距离为全音音程。在这些全音音程之间又加入新的半音音级,用符号﹟C、﹟D、﹟F、﹟G、﹟A、﹟c、﹟d、﹟f、……表示,对应于钢琴上的黑键。音持续时间的长短即时值,一般用拍数表示。休止符表示暂停发音。下面分别是各音符及对应频率(表2.1)与节拍表(表2.2) 表2.1 各音符及对应频率 音符 低DO 低#DO 低RE 低#RE 低MI 低EA 简谱码 DO_L DO#_L RE_L RE#_L MI_L FA_L 频率 262HZ 277HZ 294HZ 311HZ 330HZ 349HZ 音符 低#FA 低SO 低#SO 低LA 低#

14、LA 低SI 简谱码 FA#_L SO_L SO#_L LA_L LA#_L SI_L 频率 370HZ 393HZ 415HZ 440HZ 466HZ 494HZ 音符 中DO 中#DO 中RE 中#RE 中MI 中EA 简谱码 DO DO# RE RE# MI FA 频率 523HZ 554HZ 587HZ 622HZ 659HZ 698HZ 音符 中#FA 中SO 中#SO 中LA 中#LA 中SI 简谱码 FA# SO SO# LA LA# SI 频率 740HZ 785HZ

15、 831HZ 880HZ 932HZ 988HZ 音符 高DO 高#DO 高RE 高#RE 高MI 高EA 简谱码 DO_H DO#_H RE_H RE#_H MI_H FA_H 频率 1047HZ 1109HZ 1174HZ 1245HZ 1318HZ 1397HZ 音符 高#FA 高SO 高#SO 高LA 高#LA 高SI 简谱码 FA#_H SO_H SO#_H LA_H LA#_H SI_H 频率 1480HZ 1568HZ 1661HZ 1760HZ 1865HZ 1976HZ 每个音

16、符分为简谱码和节拍码。简谱码为D0-L到SI-H,节拍码为1到16。对应的节拍表如表2.2所示。 对应的拍子: 2/2。。。。。。。。。。。以二分音符为一拍,每小节有两拍(二分音符代表一拍) 2/4。。。。。。。。。。。以四分音符为一拍,每小节有两拍(四分音符代表一拍) 3/4。。。。。。。。。。。以四分音符为一拍,每小节有三拍(四分音符代表一拍) 4/4。。。。。。。。。。。以四分音符为一拍,每小节有四拍(四分音符代表一拍) 表2.2 节拍表 拍数 字符 拍数 字符 1/8 00H 2 08H 1/4 01H 5/2 09H

17、1/2 02H 3 0AH 3/4 03H 7/2 0BH 1 04H 4 0CH 5/4 05H 5 0DH 3/2 06H 6 0EH 7/4 07H 8 0FH 第三章 ATMEL 89C51概况 3.1 ATMEL 89C51简介 3.1.1 AT89C51单片机 AT89C51是美国ATMEL公司推出的系列单片机,将多种功能的8位CPU与FPEROM(快闪可编程/擦除只读存储器)结合在一个芯片上,是一种低功耗、高性能的CMOS

18、控制器,为很多嵌入式控制应用提供了非常灵活而又价格适宜的方案,其性能价格比远高于同类芯片。它与MCS-51指令系统兼容,片内FPEROM允许对程序存储器在线重复编程,也可用常规的EPROM编程器编程,可循环写入/擦除1000次。89C51内含4KB的FPEROM,一般的EEPROM的字节擦除时间和写入时间基本上均为10ms,对于任一个实时控制系统来说,这样长的时间是不可能在线修改程序的。 3.1.2 单片机CPU结构(如图3.1) 图3.1单片机CPU结构 3.1.3 AT89C51用户系统 l CPU为Atmel公司生产的89C51/89C52/89C55等。出厂所

19、配晶振频率为11.0592MH,每个机器周期为1.085us,用户更换晶振以提高速度; l 存贮器为64K,前4K/8K20K在CPU内部,其它程序在EPR0M27512中; l 数据存贮器为32K(62256),地址为8000—FFFFH; l Ⅰ/O扩展8155,片内RAM地址∶200O-20FFH ; l 8155命令口地址为∶2100H ; l A口地址∶21O1H B口地址:2102H C口地址:2103H ; l T低八位∶2104H T高八位∶2105H ; l 多路模拟开关的使用∶ IN0∶P1=0F8H IN4:P1=0FCH IN1∶P1=0F9H

20、 IN5:P1=OFDH IN2∶P1=0FAH IN5:P1=0FEH IN3∶P1=0FBH IN7:P1=0FFH l 不掉电数据存贮器为∶500EH-507FH ; l 控制板∶160x1O9(mm) 供电∶+5V300mA +12V100mA -12V100mA ; l AT89C51是一种低功耗、高性能的片内含有4KB快闪可编程/擦除只读存储器(FPEROM-Flash Programmable and Eraseable Read Only Memory)的8位CMOS微控制器,使用高密度、非易失存储技术制造,并且与80C51引脚和指令系统完全兼容; l 主

21、要性能: 与MCS-51 微控制器产品系列兼容; 片内有4KB可在线重复编程的快闪擦写存储器 。 3.1.4 引脚分布如图(3.2) 图3.2 89C51引脚图 3.1.5 蜂鸣器原理如图(3.3) 图3.3 蜂鸣器原理图 第四章 软件编程设计 4.1 编程思路 想要产生音频信号,只要算出某一音频的周期(频率的倒数),将此周期除以2即为半周期的时间,利用定时器计时此半周期时间,计时到后取反输出,重复此过程即得到此频率的声音信号。此信号从P3.0脚输出。 定时器T0工作在定时方式1,改变TH0及TL0,产生不同的音频频率。必须考虑到

22、中断响应时间的影响,尤其在高音部分,若忽略中断响应时间,会使音频频率比标准值低几十Hz,相当于1/4音程,很容易听出来,对低音部分影响不大。一般中断响应时间为3~6个机器周期,经过反复试验取5个机器周期作为校正最为恰当,表2.1中所给的定时初值就是考虑中断响应后的定时常数。另外,为避免T1中断可能引起杂音,应将定时器T0中断设为高优先级。这样编写出来的程序播放的音与标准音叉进行差频校音,非常准确和谐。本设计中单片机晶振频率为11.0592MHz。 每个音符使用两个字节。低位字节(偶地址)代表音级,00H表示不发音(休止符),01H~30H依次表示的音级为c、﹟c、d、﹟d、e、f、……a3、

23、﹟a3、b3 ,详见表2.1。高位字节(奇地址)代表音符的时值(拍数),00H~0FH依次表示拍数为1/8拍(0.10s)~8拍(6.40s),见表2.2。乐曲的结束标志是两个字节:0FFH,0FFH。 设计延时程序125ms,来控制节拍,并在延时中判断是否有停止键按下,以便随时停止音乐。改变延时程序的延迟时间,即可实现歌曲的快慢演奏。 主程序的任务是按顺序读取数据表中的字节,根据情况调用音级子程序和演唱子程序,启动定时器T0;通过延时控制节拍,并循环回音级子程序,等待演唱完毕。 要编写的乐谱按要求以音符字节数据表的形式存放在程序中,改变乐曲就是通过改变该数据表的内容来实现的。 主程序

24、的任务是按顺序读取数据表中的字节,根据情况调用音级子程序和音长子程序,启动定时器T0;根据定时器T1应中断的次数,启动定时器T1。数据表读完后,根据所设置的循环演奏次数决定是否结束程序。音级子程序的任务是取出字节中的音级部分,分析TH0和TL0中应送入何值,送给33H,34H。演唱子程序的任务是取出对应频率值,并乘以2,启动T0,实现发音。之后执行延时程序,体现节拍,依此循环,直到音乐结束。 当乐曲较长时(超过254个字节),数据表指针溢出,应及时修改基址寄存器DPTR内容,即数据表的表头指针。 4.2 编程方案的设计 4.2.1 软件功能选择 对于4个按键的功能设计,一个停止键P

25、2.5,其余三个键(P1.0,P1.2,P1.3)分别对应三首歌曲。演奏过程中,按停止键可使乐曲停止,继续按其他键继续选择其他歌曲演奏。选歌的按键使用8279键盘扫描以获得键值。停止键使用的单片机的外部中断1实现其功能的。 4.2.2 综合调试 在开发板上进行调试,先是进行单个模块调试,在开发板上进行播放歌曲的调试,使其能单曲循环播放,当有开关键按下时,就停止播放歌曲,再按下时,又重新播放歌曲。最终实现当有控制键按下时,能够演奏对应的歌曲,再按播放下一首,当停止键按下时,停止播放歌曲。 4.2.3程序清单 #define uchar unsigned char //定义一

26、下方便使用 #define uint unsigned int #define ulong unsigned long #include //包括一个52标准内核的头文件 char code dx516[3] _at_ 0x003b;//这是为了仿真设置的 sbit BEEP=P3^7; //喇叭输出脚 sbit P10=P1^0; sbit K1= P1^0; //播放仙剑 sbit K2= P1^2;//播放月亮 sbit K3= P1^3;//播放小星星 sbit K4= P2^5;//停止播放 uchar th0_f; //在中断中装载的T0

27、的值高8位 uchar tl0_f; //在中断中装载的T0的值低8位 //T0的值,及输出频率对照表 uchar code freq[36*2]={ 0xA9,0xEF,//00220HZ ,1 //0 0x93,0xF0,//00233HZ ,1# 0x73,0xF1,//00247HZ ,2 0x49,0xF2,//00262HZ ,2# 0x07,0xF3,//00277HZ ,3 0xC8,0xF3,//00294HZ ,4 0x73,0xF4,//00311HZ ,4# 0x1E,0xF5,//00330HZ ,5 0xB6,0xF5,//00349HZ ,

28、5# 0x4C,0xF6,//00370HZ ,6 0xD7,0xF6,//00392HZ ,6# 0x5A,0xF7,//00415HZ ,7 0xD8,0xF7,//00440HZ 1 //12 0x4D,0xF8,//00466HZ 1# //13 0xBD,0xF8,//00494HZ 2 //14 0x24,0xF9,//00523HZ 2# //15 0x87,0xF9,//00554HZ0xE4,0xF9,//00587HZ 4 //17 0x3D,0xFA,//00622HZ 4# //18 0x90,0xFA,//00659HZ 5 //19 0xDE,

29、0xFA,//00698HZ 5# //20 0x29,0xFB,//00740HZ 6 //21 0x6F,0xFB,//00784HZ 6# //22 0xB1,0xFB,//00831HZ 7 //23 0xEF,0xFB,//00880HZ `1 0x2A,0xFC,//00932HZ `1# 0x62,0xFC,//00988HZ `2 0x95,0xFC,//01046HZ `2# 0xC7,0xFC,//01109HZ `3 0xF6,0xFC,//01175HZ `4 0x22,0xFD,//01244HZ `4# 0x4B,0xFD,//01318HZ

30、`5 0x73,0xFD,//01397HZ `5# 0x98,0xFD,//01480HZ `6 0xBB,0xFD,//01568HZ `6# 0xDC,0xFD,//01661HZ `7 //35 }; //定时中断0,用于产生唱歌频率 timer0() interrupt 1 { TL0=tl0_f;TH0=th0_f; //调入预定时值 BEEP=~BEEP; //取反音乐输出IO } //****************************** //音乐符号串解释函数 //入口:要解释的音乐符号串,输出的音调串,输出的时长串 changedata(

31、uchar *song,uchar *diao,uchar *jie) { uchar i,i1,j; char gaodi; //高低+/-12音阶 uchar banyin;//有没有半个升音阶 uchar yinchang;//音长 uchar code jie7[8]={0,12,14,16,17,19,21,23}; //C调的7个值 *diao=*song; for(i=0,i1=0;;) { gaodi=0; //高低=0 banyin=0;//半音=0 yinchang=4;//音长1拍 if((*(song+i)=='|') || (*(song+i

32、)==' ')) i++; //拍子间隔和一个空格过滤 switch(*(song+i)) { case ',': gaodi=-12;i++;//低音 break; case '`': gaodi=12;i++; //高音 break; } if(*(song+i)==0) //遇到0结束 { *(diao+i1)=0; //加入结束标志0 *(jie+i1)=0; return; } j=*(song+i)-0x30; i++; //取出基准音 j=jie7[j]+gaodi; //加上高低音 yinc: switch(*(song+i)) { cas

33、e '#': //有半音j加一个音阶 i++;j++; goto yinc; case '-': //有一个音节加长 yinchang+=4; i++; goto yinc; case '_': //有一个音节缩短 yinchang/=2; i++; goto yinc; case '.': //有一个加半拍 yinchang=yinchang+yinchang/2; i++; goto yinc; } *(diao+i1)=j; //记录音符 *(jie+i1)=yinchang; //记录音长 i1++; } } //*************

34、 //奏乐函数 //入口:要演奏的音乐符号串 void play(uchar *songdata) { uchar i,c,j=0; uint n; uchar xdata diaodata[112]; //音调缓冲 uchar xdata jiedata[112]; //音长缓冲 changedata(songdata,diaodata,jiedata); //解释音乐符号串 TR0=1; for(i=0;diaodata[i]!=0;i++) //逐个符号演奏 { tl0_f=freq[diaodata[i

35、]*2]; //取出对应的定时值送给T0 th0_f=freq[diaodata[i]*2+1]; for(c=0;c

36、7_|12_1_,7,6_,5_|,6---|" "3_3_3_2_3.6_|5_6_5_5_22_3_|45_4_32_1_|3.--3_|" "67_6_55_3_|5--3_5_|26_5_32_3_|3---|" "26_6_6-|16_6_66_7_|`17_6_76_7_|3.--3_|" "67_6_55_3_|5--3_5_|67_6_76_7_|3---|" "26_6_6-|16_6_66_7_|`17_6_7.5_|6---|" }; //月亮代表我的心 uchar code song3[]={ "5-5_3_2_1_|3---|6-6_4_2_1_

37、" ",7--,5_|1.3_5.1_|,7.3_5 5_|" "6.7_`1.6_|6_5_5-3_2_|1.1_13_2_|" "1.1_12_3_|2.1_,62_3_|2-- ,5_|" "1.3_5.1_|,7.3_55_|6.7_`1.6_|" "6_5_5-3_2_|1.1_13_2_|1.1_12_3_" "2.,6_,71_2_|1--" }; //小星星 uchar code mamahao[]={ "1155|665-|4433|221-|" "5544|332-|5544|332-|" "1155|665-|4433|221-|" }; //

38、三个按键选择三首不同的音乐播放,一个键停止播放 void main(void) // 主程序 { TMOD = 0x01; //使用定时器0的16位工作模式 TR0 = 0; ET0 = 1; //定时器0中断 EA = 1; //打开总中断 while(1) { if(!K1) { while(!K1); play(xianjian); //播放音乐 } if(!K2) { while(!K2); play(song3); //播放音乐 } if(!K3) { while(!K3); play(mamahao); //播放音乐 } } }

39、 心得体会 此次课程设计培养了学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域, 在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。 回顾起此次单片机课程设计,我仍感慨颇多,的确,从选题到定稿,从理论到实践,在接近四星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学

40、到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说不懂一些元器件的使用方法,对单片机汇编语言掌握得不好……通过这次课程设计之后,一定把以前所学过的知识重新温故。 通过这次单片机课程设计,我不仅加深了对单片机理论的理解,将理论很好地应用到实际当

41、中去,而且我还学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自己。创新可以是在原有的基础上进行改进,使之功能不断完善,成为真己的东西。 我们花费了大量的时间和精力,更重要的是,我们在学会创新的基础上,同时还懂得合作精神的重要性,学会了与他人合作。学习单片机这门课程要掌握单片机指令系统中汇编语言各种基本语句的意义及汇编语言程序设计的基本知识和方法,以及单片机与其他设备相连接的输入输出中断等接口技术。使学生从硬件软件的结合上理论联系实际,提高动手能力,从而全面掌握单片机的应用。 致谢 本文的撰写是在老师、同学和朋友的支持下完成的,在此向他们表示衷心的感谢,首先感谢我们的XX

42、老师,X老师作为我们专业课的任教老师具有广博的专业知识,超前的学术思维,指引着我们在学术研究中前进的方向,正是在X老师的悉心授课下,我们从对单片机这门课的一无所知到受益匪浅。X老师在工作中治学严谨、踏实认真;在生活中态度和蔼、平易近人,在平时的交谈中总可以从他的话语中得到思维上的启迪,他不仅是我们的良师更是我们的益友。在此真诚的感谢他! 另外还要感谢我们的同学和朋友们,他们给了我许多的建议和帮助,帮助我们查漏补缺,真得很感激他们。 最后感谢在我们背后默默支持我们的家人,在他们的关爱和鼓励下,我们体会到了前所未有的动力,让我们能够克服重重的困难完成任务。 参考文献 [1]孙毅刚,彭宇,赵光权,《单片机原理及接口技术》,人民邮电出版社,2011.08 [2] 马忠梅,籍顺心,张凯,马岩,《单片机的C语言应用程序设计》,北京航空航天大学出版社,2003年 [3]李朝青,《单片机原理及接口技术》,北京航空航天大学出版社.1998年 [4] 赵建领,《51系列单片机开发宝典》,电子工业出版社.2007年

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服