基于MCS—51单片机简单音乐发生器的设计.doc

上传人:laozhun 文档编号:4148279 上传时间:2023-04-07 格式:DOC 页数:33 大小:366.50KB
返回 下载 相关 举报
基于MCS—51单片机简单音乐发生器的设计.doc_第1页
第1页 / 共33页
基于MCS—51单片机简单音乐发生器的设计.doc_第2页
第2页 / 共33页
基于MCS—51单片机简单音乐发生器的设计.doc_第3页
第3页 / 共33页
基于MCS—51单片机简单音乐发生器的设计.doc_第4页
第4页 / 共33页
基于MCS—51单片机简单音乐发生器的设计.doc_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《基于MCS—51单片机简单音乐发生器的设计.doc》由会员分享,可在线阅读,更多相关《基于MCS—51单片机简单音乐发生器的设计.doc(33页珍藏版)》请在三一办公上搜索。

1、湖南工业职业技术学院Hunan Industry Polytechnic毕 业 实 践类 别 毕业设计 题 目 基于MCS51单片机简单音乐发生器的设计系 名 称 专业及班级 学生姓名 学 号 10 指导教师 王皑 赵俊 完成日期 2009年 4月15日湖南工业职业技术学院毕业实践任务书系 名 称 电气工程系 专业及班级 电信S06-4 学生姓名 毛 浩 学 号 10 毕业实践题目: 毕业设计 基于MSC-51单片机简单音乐发生器的设计 指 导 教 师(签字): 教研室主任(签字): 系 主 任(签字): 2009年1月10日毕业实践课题及任务课题简介该课题主要利用单片机技术,采用汇编语言或C

2、语言编程来控制音乐发生器实现弹奏音乐的过程。其目的是培养学生利用单片机控制技术,汇编语言或C语言编程控制技术解决生产、生活中的实际问题,对提高学生的设计能力动手能力和工程实践技能有较重要的意义。学生在设计该课题时,应具备电路分析、电子技术、电子CAD技术、单片机控制技术、C语言程序设计等方面的相关知识,掌握电路设计流程图,电子元器件的选择、电路原理图的设计及连线。熟悉程序的编写,输入,修改和调试等。课题任务要求1、 选择正确的电子元件2、 画出电气控制系统原理图及PCB板的布线设计3、 用C语言或汇编语言编写出系统控制程序4、 系统的安装与调试进程安排第3周:根据课题要求,查阅相关理论书籍,设

3、计参考书及相关资料,进一步加深对课题的理解和认识。第4周:根据控制要求,设计控制电路状态流程图,设计系统控制程序,设计系统电气控制原理图。第5周:选择电子电器元件。第6周:开始组装电路,上机开始调试控制程序。第7周:调试 ,修改,完善设计,撰写毕业设计说明书。第8周:设计资料的修改、整理、完善。毕业设计答辩。毕业实习(第1周第2周)地点:湘计算机厂、湖南机床厂、长沙电机厂、曙光电子厂、长沙水泵厂或自找实习单位实习内容及要求:了解企业现状及发展趋势,熟悉生产、装配及加工工艺流程,了解企业的新技术、新工艺的应用情况,调查了解企业对专业技术人员人才需求情况及人才特点,写出实习报告(5000字以上)参

4、考资料1、徐仁贵、廖哲智主编单片微型计算机应用技术 北京:机械工业出版社20032、刘仁宇、施伟主编.模拟电子技术 北京:机械工业出版社19983、卢庆林主编 数字电子技术 北京:机械工业出版社20054、龙志文主编 电力电子技术 北京:机械工业出版社20055、邱丽芳主编 单片机原理与应用 人民邮电出版社20076、王廷才主编 电子线路CAD Protel99使用指南 机械工业出版社20067、林志琦主编 基于Proteus的单片机可视化软硬件仿真M北京航天航空大学出版20068、徐仁贵主编 单片微型计算机应用技术M 北京:机械工业出版社20009、戴佳 戴卫恒主编51单片机C语言应用程序设

5、计实例精讲M北京:电子工业出版社2007湖南工业职业技术学院毕业实践开题报告书 电气工程 系 电子信息工程 专业 学生姓名毛浩班级电信S06-4学号10课题名称基于MSC-51单片机简单音乐发生器的设计 课题准备情况在动手做设计之前,我们在网上查找了一些设计的思路和方法,再与之关联的知识,在图书馆查阅了单片微型计算机应用技术、电力电子技术、电路分析、电子线路CAD、微机原理与应用技术、等与音乐发生器有关书籍资料。思路和方法本次设计的核心器件是单片机芯片和音频功放芯片。单片机采用的是Atmel公司的51单片机芯片AT89C51,音频功放芯片使用的是国家半导体公司的LM386,键盘使用44布局,用

6、户可通过键盘上对应的音符键弹奏乐曲,编程语言使用语言。拟重点解决的问题课程设计中重点需要解决的有控制电路状态流程图的设计、汇编系统控制程序、电气控制系统原理图设计、上机调试控制程序。计划进度该设计我们准备用八个星期完成,前三周用来查阅相关理论书籍,设计参考书,进一步加深对课题的理解和认识,再拟好整体设计方法与思路。第四周根据控制要求,设计控制电路状态流程图,设计系统控制程序,设计系统电气控制原理图。第五到七周用C语言编写号系统运行的控制程序,选择电子电器原件,设计电路,上机开始调试控制程序,第八周设计资料的修改、整理、完善。撰写毕业设计说明书。指导教师意见 签名:年 月 日湖南工业职业技术学院

7、毕业实践考核表 电气工程 系 电子信息工程 专业 学生姓名毛浩班级电信S06-4学号10课题名称基于MSC-51单片机简单音乐发生器的设计 课题完成情况及自我评价经过查找资料对音乐发生器的工作原理有了一定的了解与认识,在设计的过程中也遇到过不少问题,但是本着“世上无难事,只怕有心人”的心态,同时在指导老师的指导、同学之间的相互讨论下,最终按计划进度完成了课题。通过设计使我对以前所学的知识进行了一次系统的整合与掌握,对系统的设计、产品的工艺流程也有了更进一步的了解认识。指导教师评价评语评分 (共40分)签名: 年 月 日评阅教师评价评语评分 (共30分)签名: 年 月 日答辩小组评价评语评分 (

8、共30分)组长签名: 年 月 日毕业实践评审组审核 经综合考核该学生毕业实践得分 分,评定为 组长签名:年 月 日摘 要本文是应用MCS-51单片机原理和控制理论设计音乐发生器的硬件电路,并利用C语言进行程序设计。通过控制单片机内部的定时器来产生不同频率的方波,驱动喇叭发出不同音调的音乐,再利用延迟来控制发音时间的长短。把乐谱转化成相应的定时常数就可以从发音设备中演奏出悦耳动听的音乐。首先在绪论中介绍了本课题的课题背景、研究意义及完成的功能。本系统是以单片机的基本语言C语言来进行软件设计。正文中首先简单描述系统硬件工作原理,且附以系统硬件设计框图,并介绍了单片机微处理器的发展史,论述了本次毕业

9、设计所应用的各硬件接口技术和各个接口模块的功能及工作过程。其次阐述了程序的流程和实现过程。本文撰写的主导思想是软、硬件相结合,以硬件为基础,来进行各功能模块的编写。最后对我所开发的用单片机实现音乐发生器的设计思想作了详细的论述。关键词:单片机,音乐,C语言,AT89C51,LM386目 录第一章 前言11.1 单片机技术的特点及应用11.1.1 单片机的特点11.1.2 单片机的应用11.2 单片机实现音乐发生器的意义2第二章 系统总体分析32.1音乐的基本知识32.2单片机产生音频脉冲32.3单片机实现音乐节拍52.4建立音乐的步骤62.5音频功放6第三章 硬件电路的设计73.1结构框图73

10、.2主要器件73.3.1 LM38673.3.2 AT89C5183.3 电路原理图及说明11第四章 系统主要程序的设计134.1 程序语言的选择134.2 C语言程序设计13第五章 调试与检测215.1 硬件的焊接215.2 硬件的调试机器故障排除22总 结24致 谢25参考文献26第一章 前言1.1 单片机技术的特点及应用随着大规模和超大规模集成电路技术的发展和计算机微型化的需要,将微型计算机的基本部件:中央处理器(CPU)、存储器、输入/输出(I/O)接口、定时器/计数器等多种资源集成在一个半导体芯片上,使得一块集成电力芯片就能构成一个完整的微型计算机。这种集成电路芯片被称为单片微型计算

11、机(Single Chip Microcomuper),简称单片机。单片机在结构设计上,他的软、硬件系统及I/O接口控制能力等方面都有独到之处,具有较强而有效的功能。从其组成、逻辑功能上来看,单片机具备了微型计算机系统的基本部件。目前,8位高档机和16位机在单片机应用中占主导地位,产品众多,已有几十个系列、几百个型号,除了通用单片机以外,集成更多资源,如A/D转换器、D/A转换器、“看门狗”(Watchdog)电路、LCD控制器、网路控制模块等,将单片机嵌入式系统和Intenet连接起来已是一种趋势。还有专用单片机产品,如专门用于数据处理(图像和语言处理等)的单片机。总之,单片机正在向微型化、

12、低功耗、高速、集成、高集成度、多资源、网络化、专用型方向发展。1.1.1 单片机的特点单片机在一块芯片上集成了一台微型计算机所需要的基本部件。它在硬件结构、指令功能等方面均有独到之处,其特点如下:性价比高。单片机性能稳定,功能强大,价格便宜。体积小,集成度高、可靠性高。单片机将一台计算机所需要的基本部件集成在一块芯片上,减少了各部件间的连线,能大大地提高运行速度和抗干扰能力。控制功能强。为了,满足工业控制的需要,单片机有很强的位处理功能。在其他的逻辑控制功能等方面,也都优于一般的8位微处理。单片机系统配置灵活、方便。由于单片机带有一定数量的接口电路,容易构成各种规模的应用系统。单片机类型多。单

13、从ROM类型来说,单片机的只读存储器有ROM、EPROM、EEPROM、Flash Memory等多种,可以根据实际需要进行选择。1.1.2 单片机的应用由于单片机具有如上所述的特点,因此在工业生产、日常生活等诸多领域,得到了日益广泛的应用,单片机的主要应用领域有:工业控制,如在工业生产过程中参数(如温度、压力、流量、液位等)的控制,数据处理功能于一体,如转速测试仪、噪声测试仪、振动测试仪及电子秤等。计算机网络与通信,单片机上有并行I/O接口角儿串联I/0接口,可用于通信接口,如单片机控制的自动呼叫应答系统、列车无线通信系统、遥测遥控系统等。家用电器,由于单片机体积小,控制能力强,且片内与定时

14、器/计数器,所以广泛应用于家用设备中。如空调、洗衣机、微波炉及防盗报警等。本设计是单片机在音乐发生器方面的应用。1.2 单片机实现音乐发生器的意义本设计是以AT89C51芯片的电路为基础,外部加上功率放大器、放音设备,以此来实现音乐发生器的硬件电路,通过软件程序来控制单片机内部的定时器使其演奏出优美动听的音乐。用户可以按照自己的喜好选择音乐并将其转化成机器码存入单片机的存储器中。对于不同型号的单片机只需要相应的改变一下地址即可。该软、硬件系统具有很好的通用性,很高的实际使用价值,为广大单片机和音乐爱好者提供了很好的借鉴。为了完成音乐发生器的设计,我将进行以下工作:1.分析音乐实现方法,选择合适

15、设计的芯片。2.进行硬件电路的设计,绘制音乐发生器电路原理图。3.进行软件设计,设计程序代码。4.调试硬件和软件电路,验证整个设计。第二章 系统总体分析2.1音乐的基本知识在人类还没有产生语言时,就已经知道利用声音的高低、强弱等来表达自己的思想和感情。声带、琴弦等物体振动时会发出声波,声波通过空气传播入人耳,人民就听到了声音。声音有噪音和乐音之分,振动有规律的声音是乐音,如人发出的歌声、有琴弦发出的琴音等,音乐中所用的声音主要是乐音。乐音听起来有的高有的低,这就叫高音。高音是由发音物体振动频率的高低决定的,频率高的就声音高,频率低的声音低。比如男人唱歌时声带振动频率低,声音女人唱歌时声带振动频

16、率高,所以男声比女声低。音乐中所用乐音的范围从每秒钟振动16次的最低音到每秒钟振动4186次的最高音,大约97个。现在最大的钢琴可以演奏除其中的88个音,是乐音范围最大的乐器,人唱歌时因受生理限制,所能唱出的乐音只是其中的一部分。不同的高音的乐音是用C、D、E、F、A、B来表示,这7个字母就是乐音的音名,他们依次唱成DO、RE、MI、FA、SO、LA、SI,即唱成简谱的1、2、3、4、5、6、7、相当于汉字“多来米阀梭拉西”的读音,这是唱曲时乐音的发音,所以叫唱名。把C、D、E、F、A、B这一组音的距离分成12个等分,每一个等分叫一个“半音”两个音之间的距离有两个“半音”的,就叫“全音”。在钢

17、琴键盘乐器上,C-D、D-E、F-G、G-A、A-B两音之间隔着一个黑键,它们之间的距离就叫做全音;E-F、B-C两音之间没有黑键相隔,它们之间隔的距离就是半音。通俗地说,那些唱成1、2、3、4、5、6、7的音叫做自然音,那些左上角加上#号的(如#4、#1)或者或者b号(如b7、b3)的叫变化音。#叫升记号,表示把音在原来的基础上升高半音;b叫降记号,表示在原来的基础上降低半音。音持续时间的长短即时值,一般用拍数表示,休止符表示暂停发音。一首音乐是有许多不同的音符组成的,而每个音符对应着不同的频率,这样就可以利用不同的频率的组合,加以与拍数对应的延时,构成音乐。2.2单片机产生音频脉冲 要产生

18、音频脉冲,只要算出某一音频的周期(1/频率),然后将此周期除以2,即为半周期的时间。利用定时器计时这个半周期时间,每当计时到后就将输出脉冲的I/O反相,然后重复计时此半周期时间再对I/O反相,就可在I/O脚上得到此频率的脉冲。利用8051的内部定时器使其工作在计数器模式MODE1下,改变计数值TH0及TL0以产生不同频率的方法。 例如频率为523Hz,其周期T=1/523=1912us,因此只要令计数器计时956us/1us=956,在每计数956次时将I/O反相,就可得到中音DO(523Hz)。 计数脉冲值与频率的关系公式如下: N=Fi2Fr N:计数值; Fi:内部计时一次为1us,故其

19、频率为12MHz; Fr:要产生的频率; 其计数值的求法如下: T=65536-N=65536-Fi2Fr 例如:设K=65536,F=1000000=Fi=1MHz,求低音DO(261MHz)、中音DO(523MHz)、高音DO(1046MHz)的计数值。 T=65536-N=65536-Fi2Fr=65536-10000002Fr=65536-500000/Fr 低音DO的T=65536-500000/262=63627 中音DO的T=65536-500000/523=64580高音DO的T=65536-500000/1047=650595. C调各音符频率与计数值T的对照表如表1-1所示

20、:表1-1 C调各音符频率与计数值T的对照表音符低1DO频率(Hz)简谱码(T值)音符频率(Hz)简谱码(T值)26263628#4FA#74064860#1DO#27763731中5SO78464898低2RE#2RE#29463835#5SO#8316493431163928中6LA88064968低3M33064021#693264994低4FA34964103中7SI98865030#4FA#37064185高1DO104665058低5SO39264260#1DO#110965085#5SO#41564331高2RE117565110低6LA44064400#2RE#12456513

21、4#646664463高3M131865157低7SI49464524高4FA139765178中1DO52364580#4FA#148065198#1DO#55464633高5SO156865217中2RE58764684#5SO#166165235#2RE#62264732高6LA176065252中3M65964777#6186565268中4FA69864820高1967652832.3单片机实现音乐节拍除了音符以外,节拍也是音乐的关键组成部分。节拍实际上就是因持续时间的长短,在单片机系统中可以用延时来实现。如果1/4拍的延时设为0.4秒,则一拍的延时是0.4秒,只要知道1/4拍的延时

22、时间,其余的节拍延时时间就是它的倍数。表1-2所示的为节拍与节拍码对照。表1-3所示的为各调1/4节拍的时间设定 各调1/4节拍的时间设定表1-2 节拍与节拍码对照节 拍 码节 拍 数节 拍 码节 拍 数11/4拍11/8拍22/4拍21/4拍33/4拍33/8拍41拍41/2拍51又1/4拍55/8拍61又1/2拍63/4拍82拍81A2又1/2拍A1又1/4拍C3拍C1又1/2拍F3又3/4拍表1-3 各调1/4节拍的时间设定 各调1/4节拍的时间设定曲 调 值DELAY曲 调 值DELAY调4/4125毫秒调4/462毫秒调3/4187毫秒调3/494毫秒调2/4250毫秒调2/4125

23、毫秒1/4拍的延迟时间=187毫秒DELAY: MOV R7,#02D2: MOV R4,#187 别的延迟值,只需修改这儿的值为相应值,即可。D3: MOV R3,#248 DJNZ R3,$ DJNZ R4,D3 DJNZ R7,D2 DJNZ R5,DELAY 节拍值放在R5,决定节拍 RET2.4建立音乐的步骤 1)先把乐谱的音符找出,然后建立T值表的顺序。 2)把T值表建立在TABLE1,构成发音符是计数值放在“TABLE”。 3)简谱码(音符)为高位,节拍为(节拍数)为低4位,音符节拍码放在程序的“TABLE”处。2.5音频功放在一定频率范围内,具有固定频率的振动就能产生乐音,但是

24、单片机产生的音频脉冲直接驱动扬声器并不能产生所要实现的音乐,因为它没有足够的驱动能力,这就需要音频功率放大电路。本次设计使用国家半导体公司的低压高频功率放大器LM386实现音频功放电路。LM386具有以下功能特性: 适合于电池工作; 使用外部元件少; 供电范围宽:412V或者518V; 低静态电流消耗:4mA; 电压增益范围:20200V;LM386的增益可调,它广泛应用与各种音频电路中。第三章 硬件电路的设计这次设计的硬件电路较为简单,主要由键盘、单片机、音频功放及扬声器组成。3.1结构框图系统硬件的结构框图如图1-1所示:图3-1 系统硬件结构框图3.2主要器件本次设计的核心器件是单片机芯

25、片和音频功放芯片。单片机采用的是Atmel公司的51单片机芯片AT89C51,它完全可以满足本次设计的需求,而且使用方便,价格便宜,易于获取。音频功放芯片使用的是国家半导体公司的LM386。3.3.1 LM386 LM386的引脚分布图如图2-3所示:图3-2 LM386引脚分布图其引脚功能说明如下:GAIN(一脚、8脚):增益控制引脚,如果两脚悬空,则增益为20V;如果两脚之间接一个大的极性电容,则增益可达到200V;如果再和电容串一个电阻;增益可设置为20200V之间。-IN(2脚):负极性输入脚。在单极性输入时,此引脚接地。+IN(3脚):正极性输入脚。在单极性输入时,此引脚接输入信号。

26、GND(4脚):接地端。Vout(5脚):电压输出脚,此引脚为音频功放电路的输出。Vs(6脚):电源脚。供电范围:415V或者518V。BYPASS(7脚):旁路脚,此引脚可悬空或者旁边接一个大电容接地。3.3.2 AT89C51如图2-6所示。图3-3 引脚图1、电源引脚Vcc 40 电源端GND 20 接地端工作电压为5V,另有AT89LV51 工作电压则是2.7-6V, 引脚功能一样。2、.外接晶振引脚 如图2-7所示。XTAL1 是片内振荡器的反相放大器输入端,XTAL2 则是输出端,使用外部振荡器时,外部振荡信号应直接加到XTAL1,而XTAL2 悬空。内部方式时,时钟发生器对振荡脉

27、冲二分频,如晶振为12MHz,时钟频率就为6MHz。晶振的频率可以在1MHz-24MHz内选择。电容取30PF 左右。型号同样为AT89C51 图3-4 外接晶振引脚 的芯片,在其后面还有频率编号,有12,16,20,24MHz 可选。大家在购买和选用时要注意了。如AT89C51 24PC 就是最高振荡频率为24MHz,40P6 封装的普通商用芯片。3、复位 RST 9在振荡器运行时,有两个机器周期(24 个振荡周期)以上的高电平出现在此引腿时,将使单片机复位,只要这个脚保持高电平,51 芯片便循环复位。复位后P0P3 口均置1 引脚表现为高电平,程序计数器和特殊功能寄存器SFR 全部清零。当

28、复位脚由高电平变为低 图3-5 常用复位电路图电平时,芯片为ROM 的00H 处开始运行程序。常用的复位电路如图2-8所示。4、输入输出引脚(1) P0 端口P0.0-P0.7 P0 是一个8 位漏极开路型双向I/O 端口,端口置1(对端口写1)时作高阻抗输入端。作为输出口时能驱动8 个TTL。对内部Flash 程序存储器编程时,接收指令字节;校验程序时输出指令字节,要求外接上拉电阻。在访问外部程序和外部数据存储器时,P0 口是分时转换的地址(低8 位)/数据总线,访问期间内部的上拉电阻起作用。如图2-9所示。 图3-6 P0口一位结构图(2) P1 端口P1.0P1.7 P1 是一个带有内部

29、上拉电阻的8 位双向I/0 端口。输出时可驱动4 个TTL。端口置1 时,内部上拉电阻将端口拉到高电平,作输入用。对内部Flash 程序存储器编程时,接收低8 位地址信息。如图2-10所示。图3-7 P1口一位(3) P2 端口P2.0P2.7 P2 是一个带有内部上拉电阻的8 位双向I/0 端口。输出时可驱动4 个TTL。端口置1 时,内部上拉电阻将端口拉到高电平,作输入用。对内部Flash 程序存储器编程时,接收高8 位地址和控制信息。在访问外部程序和16 位外部数据存储器时,P2 口送出高8 位地址。而在访问8位地址的外部数据存储器时其引脚上的内容在此期间不会改变。(4) P3 端口P3

30、.0P3.7 P2 是一个带有内部上拉电阻的8 位双向I/0 端口。输出时可驱动4 个TTL。端口置1 时,内部上拉电阻将端口拉到高电平,作输入用。除此之外P3 端口还用于一些专门功能。如图2-11所示。 图3-8 P3口一位结构图P13 端口在做输入使用时,因内部有上接电阻,被外部拉低的引脚会输出一定的电流。P3口也可作为AT89C51的一些特殊功能口,如下所示:P3口管脚 备选功能P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(记时器0外部输入)P3.5 T1(记时器1外部输入)P3.6 /WR

31、(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。8051单片机的内部高128个字节为专用寄存器区,其中51子系列有21个(52子系列有26个)特殊功能寄存器(SFR),它们离散的分布在这个区中,分别用于CPU并行口、串行口、中断系统、定时/计数器等功能单元及控制和状态寄存器。8051系列单片机在物理上有四个存储空间:片内程序存储器空间和片外程序存储器空间,片内数据存储器空间和片外数据存储器空间。8051单片机内部有256字节的数据存储空间RAM和4KB的程序存储器ROM。除此外还可以在片外扩展RAM和ROM,并且各自有64KB的寻

32、址空间。64KB的程序存储器ROM中,有4KB地址区对于片内ROM和片外ROM是公用的。这4KB的地址为0000H-FFFH而1000H-FFFFH地址为外部ROM专用。CPU的控制器专门提供一个控制信号EA,用来区分内部ROM和外部ROM的公用地址区:当EA接高电平时,单片机从片内的4KB存储区取出指令,当指令地址超过0FFFH后,就自动地转向片外ROM取指令;当EA接低电平时CPU只从片外ROM取指令。程序存储器的某些单元是保留给系统使用的:0000H-0002H单元是所有执行程序的入口地址,复位后,CPU总是从0000H单元开始执行程序;0003H-002A单元均匀地分为五段,用来做五个

33、中断服务程序的入口。数据存储器RAM也有64KB的寻址空间,在地址上与ROM重叠。8051通过不同的信号来选择ROM或RAM;当从外部ROM取指令时用选通信号;当从外部RAM读写数据时采用读写信号线或来选通。因此不会因地址重叠而出现混乱。对于片内RAM的低128字节(00H-7FH),还可以分为三个区。第一个区从00H-1FH安排了四组工作寄存器,每组占8个RAM字节,记为R0-R7。在某一时刻CPU只能用其中一组寄存器,工作寄存器的选择是有PSW中的两位来决定。第二个区域是可位寻址的区,占用20H-2FH共16个字节(128位),这个区域除了作一般的RAM区还可以进行位操作。第三个区域就是一

34、般的RAM区,地址为30H-7FH共80个字节。3.3 电路原理图及说明单片机音乐电路原理图如图2-4所示;图中单片机工作时钟为20Hz,其中P1口为键盘接口,P2.0为音频脉冲的输出脚。 图3-9 单片机音乐电路原理图本次设计的44键盘布局如图2-5所示;用户可通过键盘上对应的音符键弹奏乐曲3456712345671234第四章 系统主要程序的设计4.1 程序语言的选择51的编程语言常用的有二种,一种是汇编语言,一种是C 语言。汇编语言的机器代码生成效率很高但可读性却并不强,复杂一点的程序就更是难读懂,而C 语言在大多数情况下其机器代码生成效率和汇编语言相当,但可读性和可移植性却远远超过汇编

35、语言,而且C 语言还可以嵌入汇编来解决高时效性的代码编写问题。对于开发周期来说,中大型的软件编写用C 语言的开发周期通常要小于汇编语言很多。综合以上C 语言的优点,我在学习时选择了C 语言指令的执行速度快,节省存储空间。4.2 C语言程序设计此程序用了外中断INT0,用于换歌曲,当有键按下时,产生中断,演奏下一首歌。没有中断时,循环演奏此曲。#include reg51.h#define uint unsigned int#define uchar unsigned charuchar * TABLE ;code uint TABLE1 15=64260,64400,64524,64580,

36、64684,64777,64820,64898, 64968,65030,65058,65110, 65157,65178,65217; code uchar SONG = /1. 迟来的爱 /0 0x08,0x08, /1 0x02,0x12,0x42,0x62,0x52,0x42,0x21,11, 0x18,0x18, 0x02,0x22,0x42,0x82,0x92,0x82,0x61,0x51,0x42, 0x58,0x58, /2 0x66,0x51,0x61,0x84,0x62,0x82, 0x52,0x62,0x42,0x52,0x28, 0x52,0x42,0x52,0x62,

37、0x94,0x81,0x91,0x81,0x61, 0x1C,0x12,0x82; code uchar SONG1 = /2.两只蝴蝶 /0 0x08,0x08, /1 326 0x51,0x61,0x81,0x61, 0x94,0x8C, 0x02,0x42,0x51,0x41,0x21,0x41,0x02,0x42,0x51,0x41,0x21,0x51, 0x04,0x03,0x11,0x21,0x41,0x52,0x51,0x41,0x21,0x41, 0x62,0x82,0x02,0x62,0x62,0x52,0x62,0x82, /2 0x94,0x93,0x81,0x86,0x

38、81,0x91, 0xB2,0xB2,0xB2,0xC2,0xC2,0xB2,0xB4, 0x04,0x02,0x82,0x71,0x61,0x51,0x61,0x51,0x41,0x21,0x41, 0x42,0x52,0x62,0x82,0x84,0x62,0x52; code uchar SONG2 = /3.祝你平安 /0 0x08,0x08, /1 0x62,0x82,0x81,0x62,0x81,0x88, 0x62,0x42,0x42,0x21,0x41,0x48, 0x62,0x82,0x81,0x93,0x88,0x51,0x61, /2 0x52,0x62,0x82,0x5

39、1,0x61,0x58, 0x62,0x42,0x42,0x21,0x61,0x66,0x51,0x61, 0x62,0x42,0x42,0x21,0x61,0x68; code uchar SONG3 = /4.一个师傅三个徒弟 /0 0x08,0x08, /1 0xd2,0xe2,0xd2,0xe2,0xd2,0xe2,0xd2,0xb2, 0xa8,0x68, 0xd2,0xe2,0xd2,0xe2,0xd2,0xc2,0xb2,0xa2, /2 0xd8,0xd8, 0xd8,0xd8, 0x64,0x64,0x28, 0x44,0x22,0x12,0x24,0x04; code uchar SONG4 = /5.梦醒时分 /0 0x08,0x08, /1 0x21,0x41,0x81,0x61,0x62,0x21,0x41,0x81,0x62,0x81,0x81,0x91,0xa1,0xb1, 0x82,0x81,0x81,0x81,0x93,0x68, /2 0x21,0x41,0x81,0x61,0x62,0x21,0x41,0x81,0x62,0x81,0x91,0xa1,0xa1,0x91, 0xc6,0x91,0x91,0x86;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号