关闭

关闭

封号提示

内容

首页 单片机的音乐盒设计(C程序)[推荐].doc

单片机的音乐盒设计(C程序)[推荐].doc

单片机的音乐盒设计(C程序)[推荐].doc

上传者: asw145 2013-12-08 评分 5 0 151 21 685 暂无简介 简介 举报

简介:本文档为《单片机的音乐盒设计(C程序)[推荐]doc》,可适用于IT/计算机领域,主题内容包含基于单片机的音乐盒设计【摘要】本设计是一个基于ATC系列单片机的音乐盒依据单片机技术原理通过硬件电路制作以及软件编译设计制作出一个多功能多功能音乐盒符等。

基于单片机的音乐盒设计【摘要】本设计是一个基于ATC系列单片机的音乐盒依据单片机技术原理通过硬件电路制作以及软件编译设计制作出一个多功能多功能音乐盒。该音乐盒主要由按键电路、复位电路、时钟电路以及蜂鸣器组成。使用两个按键控制音乐盒一个用来切换歌曲另一个用来切换路LED的变化花样本音乐盒共有两首歌曲花样灯花样共计种。播放歌曲时蜂鸣器发出某个音调与之对应的LED亮起。本设计利用KEIL编程软件对音乐盒源程序进行编程并调试配合PROTEUS仿真软件对硬件进行仿真调试节约了设计时间。【关键字】音乐盒ATC单片机KEILPROTEUS音调目录TOCo""hzu引言概述课题意义设计方案研究内容系统总体方案介绍系统组成框图音乐盒的功能结构图主要设计软件介绍PROTEUS软件简介KEIL简介硬件设计总体设计框图各部分硬件设计及其原理ATC简介LED显示电路设计与原理时钟振荡电路硬件电路图及功能软件设计音调、节拍以及编码的确定方法音调的确定节拍的确定编码软件程序设计程序流程图及相应代码块程序源代码(见附录A)调试检查硬件连接检查软件系统测试结果.总体运行图.花样灯种花样图总结致谢参考文献科技外文文献中文译文附录A程序源代码及注释引言世纪电子技术获得了飞速的发展在其推动下现代电子产品几乎渗透了社会的各个领域有力地推动了社会生产力的发展和社会信息化程度的提高同时也使现代电子产品性能进一步提高产品更新换代的节奏也越来越快。目前单片机正朝着高性能和多品种方向发展趋势将是进一步向着CMOS化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展。单片机应用的重要意义还在于它从根本上改变了传统的控制系统设计思想和设计方法。从前必须由模拟电路或数字电路实现的大部分功能现在已能用单片机通过软件方法来实现了。这种软件代替硬件的控制技术也称为微控制技术是传统控制技术的一次革命。单片机渗透到我们生活的各个领域几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置飞机上各种仪表的控制计算机的网络通讯与数据传输工业自动化过程的实时控制和数据处理广泛使用的各种智能IC卡民用豪华轿车的安全保障系统录像机、摄像机、全自动洗衣机的控制以及程控玩具、电子宠物等等这些都离不开单片机。随着科学技术的进步和社会的发展人类所接触的信息也在不断增加并且日益复杂。面对浩如烟海的信息人们已经能够利用计算机等工具高效准确地对之进行处理但要想将处理完的信息及时清晰地传递给别人还必须通过寻求更加卓越的显示技术来实现。单片机技术与液晶显示技术的结合使信息传输交流向着智能可视化方向迅速发展。随着人类社会的发展人们对视觉、听觉方面的享受提出了越来越高的要求。小小的音乐盒可以给人们带来美好的回忆提高人们的精神文化享受。传统音乐盒多是机械型的体积笨重发音单调不能实现批量生产。本文设计的音乐盒是以单片机为核心元件的电子式音乐盒体积小重量轻能演奏和旋音乐功能多外观效果多彩使用方便并具有一定的商业价值。概述本设计是以ATC芯片的电路为基础外部加上放音设备以此来实现音乐演奏控制器的硬件电路通过软件程序来控制单片机内部的定时器使其演奏出优美动听的音乐。用户可以按照自己的喜好选择音乐并将其转化成机器码存入单片机的存储器中。对于不同型号的单片机只需要相应的改变一下地址即可。该软、硬件系统具有很好的通用性很高的实际使用价值为广大的单片机和音乐爱好者提供了很好的借鉴。课题意义音乐盒的起源可追溯至中世纪欧洲文艺复兴时期。当时为使教会的钟塔报时而将大小的钟表装上机械装置被称为“可发出声音的组钟”。音乐盒有着多年的发展历史是人类文明发展的历史见证。传统的音乐盒多是机械音乐盒其工作原理是通过齿轮带动一个带有铁钉的铁桶转动,铁桶上的铁钉撞击铁片制成的琴键从而发出声音。但是机械式的音乐盒体积比较大比较笨重且发音单调。水、灰尘等外在因素容易使内部金属发音条变形从而造成发音跑调。另外机械音乐盒放音时为了让音色稳定,必须放平不能动摇而且价格昂贵不能实现大批量生产。本文设计的音乐盒是基于单片机设计制作的电子式音乐盒。与传统的机械式音乐盒相比更小巧音质更优美且能演奏和弦音乐。电子式音乐盒动力来源是电池制作工艺简单可进行批量生产所以价格便宜。基于单片机制作的电子式音乐盒控制功能强大可根据需要选歌使用方便。根据存储容量的大小可以尽可能多的存储歌曲。另外可以设计彩灯外观效果使音乐盒的功能更加丰富。设计方案设计一个基于ATC系列单片机的音乐盒利用按键切换演奏出不同的乐曲。蜂鸣器发出某个音调与之相对应的LED亮起。使用两个按键一个用来切换歌曲另一个切换八路LED的变化花样。研究内容)电路有两种工作模式:演奏音乐模式和花样灯模式。演奏音乐模式:演奏完整的一首的歌曲八路LED随着音乐变化。花样灯模式:八路LED变化出各种花样蜂鸣器随着发出“嘀嘀”声)按下按键进入演奏音乐模式再按切换歌曲共两首歌曲。)按下按键进入花样灯模式再按切换LED花样共三种花样。此电路的程序只占用了K左右可编制更多的音乐和LED花样使系统的功能更加强大。系统总体方案介绍系统组成框图音乐盒的系统结构以ATC单片机位控制核心加上个按键、时钟复位电路、蜂鸣器、LED模块组成。单片机负责接收按键的输入根据输入控制音乐播放曲目和音乐花样灯的显示样式以及蜂鸣器发音。系统组成框图如图所示。图系统组成框图音乐盒的功能结构图音乐盒的功能结构如图所示。Key负责切换播放歌曲播放歌曲共首分别是挥着翅膀的女孩和寂寞沙洲冷。Key负责切换LED显示花样显示花样共种第一种顺序显示第二种由两边向中间移动然后向两边移动第三种循环显示。图音乐盒功能结构图主要设计软件介绍本设计利用KEIL编程软件对音乐盒源程序进行编程并调试配合PROTEUS仿真软件对硬件进行仿真调试两种软件的简介如下:PROTEUS软件简介Proteus软件是英国Labcenterelectronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术有限公司)。它不仅具有其它EDA工具软件的仿真功能还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。Proteus是世界上著名的EDA工具(仿真软件)从原理图布图、代码调试到单片机与外围电路协同仿真一键切换到PCB设计真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台其处理器模型支持、HC、PICDsPIC、AVR、ARM、和MSP等年即将增加Cortex和DSP系列处理器并持续增加其他系列处理器模型。在编译方面它也支持IAR、Keil和MPLAB等多种编译器。KEIL简介单片机开发中除必要的硬件外同样离不开软件我们写的汇编语言源程序要变为CPU可以执行的机器码有两种方法一种是手工汇编另一种是机器汇编目前已极少使用手工汇编的方法了。机器汇编是通过汇编软件将源程序变为机器码用于MCS单片机的汇编软件有早期的A随着单片机开发技术的不断发展从普遍使用汇编语言到逐渐使用高级语言开发单片机的开发软件也在不断发展Keil软件是目前最流行开发MCS系列单片机的软件这从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案通过一个集成开发环境(uVision)将这些部份组合在一起。运行Keil软件需要Pentium或以上的CPUMB或更多RAM、M以上空闲的硬盘空间、WIN、NT、WIN、WINXP等操作系统。掌握这一软件的使用对于使用系列单片机的爱好者来说是十分必要的如果你使用C语言编程那么Keil几乎就是你的不二之选(目前在国内你只能买到该软件、而你买的仿真机也很可能只支持该软件)即使不使用C语言而仅用汇编语言编程其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。KeilC生成的目标代码效率非常之高多数语句生成的汇编代码很紧凑容易理解。在开发大型软件时更能体现高级语言的优势。硬件设计总体设计框图图总体设计框图各部分硬件设计及其原理ATC简介ATC是一种带K字节闪存可编程可擦除只读存储器(FPEROMFlashProgrammableandErasableReadOnlyMemory)的低电压高性能CMOS位微处理器俗称单片机。ATC是一种带K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除次。该器件采用ATMEL高密度非易失存储器制造技术制造与工业标准的MCS指令集和输出管脚相兼容。由于将多功能位CPU和闪烁存储器组合在单个芯片中ATMEL的ATC是一种高效微控制器ATC是它的一种精简版本。ATC单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。外形及引脚排列如图所示图ATC系列单片机LED显示电路设计与原理LED显示电路是由个LED发光二极管组成连接方式为共阳极LED接到单片机的P口若为低电平可使LED亮起。发光二极管的亮、灭由内部程序控制个LED发光二极管分别对应不同的音阶所以LED会随着音阶的变化按规律亮、灭。时钟振荡电路ATC中有一个用于构成内部振荡器的高增益反相放大器引脚XTAL和XTAL分别是该放大器的输入端和输出端。这个放大器与作为反馈元件的片外石英晶体或者陶瓷谐振器一起构成自然振荡器。外接石英晶体及电容C、C接在放大器的反馈回路中构成并联振荡电路。对外接电容CC虽然没有什么严格的要求但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程序及温度稳定性。如果使用石英晶体我们推荐电容使用PFPF而如果使用陶瓷振荡器建议选择PFPF。用户也可以采用外部时钟。采用外部时钟的电路如图示。这种情况下外部时钟脉冲接到XTAL端即内部时钟发生器的输入端XTAL则悬空。由于外部时钟信号是通过一个分频触发器后作为内部时钟信号的所以对外部时钟信号的占空比没有特殊要求但最小高电平持续时间和最大的低电平持续时间应符合产品技术条件的要求。振荡器电路图如下:图单片机内部、外部振荡电路硬件电路图及功能总体硬件电路实现功能如下如图所示)​ 电路中用P、P控制按键。)​ P~P控制LED。)​ P控制蜂鸣器。)​ 电路为MHZ晶振频率工作起振电路中C、C均为PF。图硬件电路图软件设计在本程序中设置了两个标志count和count分别初始化为和。按键使得count在和之间切换按键使得count在~之间切换。程序检测count的值count等于时播放第一首歌曲等于时播放第二首。另一方面根据count的值来切换LED的花样。count和count的值是互斥的设置count等于、时count同时设置为设置count等于~时count也同时设置为。音调、节拍以及编码的确定方法一般说来单片机演奏音乐基本都是单音频率它不包含相应幅度的谐波频率也就是说不能像电子琴那样能奏出多种音色的声音。因此单片机奏乐只需弄清楚两个概念即可也就是“音调”和节拍表示一个音符唱多长的时间。音调的确定不同音高的乐音是用C、D、E、F、G、A、B来表示这个字母就是音乐的音名它们一般依次唱成DO、RE、MI、FA、SO、LA、SI,即唱成简谱的、、、、、、相当于汉字“多来米发梭拉西”的读音这是唱曲时乐音的发音所以叫“音调”即Tone。把C、D、E、F、G、A、B这一组音的距离分成个等份每一个等份叫一个“半音”。两个音之间的距离有两个“半音”就叫“全音”。在钢琴等键盘乐器上C–D、D–E、F–G、G–A、A–B两音之间隔着一个黑键他们之间的距离就是全音E–F、B–C两音之间没有黑键相隔它们之间的距离就是半音。通常唱成、、、、、、的音叫自然音那些在它们的左上角加上号或者b号的叫变化音。叫升记号表示把音在原来的基础上升高半音b叫降记音表示在原来的基础上降低半音。例如高音DO的频率(Hz)刚好是中音DO的频率(Hz)的一倍中音DO的频率(Hz)刚好是低音DO频率(Hz)的一倍同样的高音RE的频率(Hz)刚好是中音RE的频率(Hz)的一倍中音RE的频率(Hz)刚好是低音RE频率(Hz)的一倍。)要产生音频脉冲只要算出某一音频的周期(频率)然后将此周期除以即为半周期的时间。利用定时器计时这半个周期时间每当计时到后就将输出脉冲的IO反相然后重复计时此半周期时间再对IO反相就可在IO脚上得到此频率的脉冲。)利用ATC的内部定时器使其工作在计数器模式MODE下改变计数值TH及TL以产生不同频率的方法。此外结束符和休止符可以分别用代码H和FFH来表示若查表结果为H则表示曲子终了若查表结果为FFH则产生相应的停顿效果。)例如频率为Hz其周期T==us因此只要令计数器计时usus=在每次技术次时将IO反相就可得到中音DO(Hz)。计数脉冲值与频率的关系公式如下:N=FiFrN:计算值Fi:内部计时一次为us故其频率为MHz)​ 其计数值的求法如下:T=N=FiFr例如:设K=F==Fi=MHz球低音DO(Hz)。中音DO(Hz)。高音的DO(Hz)的计算值T=N=FiFr=Fr=Fr低音DO的T==低音DO的T==低音DO的T==)​ C调各音符频率与计数值T的对照表如表所示。表C调各音符频率与计数值T的对照表低音频率T参数中音频率T参数高音频率T参数DoDoDoDoDoDoReReReReReReMiMiMiFaFaFaFaFaFaSoSoSoSoSoSoLaLaLaLaLaLaSiSiSi节拍的确定若要构成音乐光有音调是不够的还需要节拍让音乐具有旋律(固定的律动)而且可以调节各个音的快满度。“节拍”,即Beat简单说就是打拍子就像我们听音乐不自主的随之拍手或跺脚。若拍实s则拍为s。至于拍多少s并没有严格规定就像人的心跳一样大部分人的心跳是每分钟下有些人快一点有些人慢一点只要听的悦耳就好。音持续时间的长短即时值一般用拍数表示。休止符表示暂停发音。一首音乐是由许多不同的音符组成的而每个音符对应着不同频率这样就可以利用不同的频率的组合加以与拍数对应的延时构成音乐。了解音乐的一些基础知识我们可知产生不同频率的音频脉冲即能产生音乐。对于单片机来说产生不同频率的脉冲是非常方便的利用单片机的定时计数器来产生这样的方波频率信号。因此需要弄清楚音乐中的音符和对应的频率以及单片机定时计数的关系。表节拍与节拍码对照节拍码节拍数节拍码节拍数拍拍拍拍拍拍拍拍又拍拍又拍拍拍拍A又拍A又拍C拍C又拍F又拍每个音符使用个字节字节的高位代表音符的高低低位代表音符的节拍图为节拍码的对照。如果拍为秒拍实秒只要设定延迟时间就可求得节拍的时间。假设拍为DELAY则拍应为DELAY以此类推。所以只要求得拍的DELAY时间其余的节拍就是它的倍数如图为和节拍的时间设定。表和节拍的时间设定曲调值DELAY曲调值DELAY调毫秒调毫秒调毫秒调毫秒调毫秒调毫秒编码doremifasolasi分别编码为~重音do编为,重音re编为停顿编为。播放长度以十六分音符为单位(在本程序中为ms)一拍即四分音符等于个十六分音符编为,其它的播放时间以此类推。音调作为编码的高位而播放时间作为低位如此音调和节拍就构成了一个编码。以xff作为曲谱的结束标志。举例:音调do,发音长度为两拍即二分音符将其编码为x。举例:音调re,发音长度为半拍即八分音符将其编码为x歌曲播放的设计。先将歌曲的简谱进行编码储存在一个数据类型为unsignedchar的数组中。程序从数组中取出一个数然后分离出高位得到音调接着找出相应的值赋给定时器使之定时操作蜂鸣器得出相应的音调接着分离出该数的低位得到延时时间接着调用软件延时。表简谱对应的简谱码、T值、节拍数简谱发音简谱码T值节拍码节拍数低音SO拍低音LA拍低音TI拍中音DO拍中音RE又拍中音MI又拍中音FA拍中音SOA又拍中音LAC拍中音TIAF又拍高音DOB高音REC高音MID高音FAE高音SOF软件程序设计程序流程图及相应代码块主程序流程图图主程序流程图主程序代码:main(){ucharxcount=流水灯无花样count=唱第一首歌P=选取矩阵键盘的一列EA=开总中断EX=开外部中断IT=外部中断下降沿触发方式EX=开外部中断IT=外部中断下降沿触发方式TMOD=x定时器工作在方式TH=TL=ET=while(){if(count!=)音乐停止花样灯开始按照花样闪烁{switch(count){case:for(x=x<x){duan=P=huayangxbeep()delay()duan=if(count!=)break}breakcase:for(x=x<x){duan=P=huayangxbeep()delay()duan=if(count!=)break}breakcase:for(x=x<x){duan=P=huayangxbeep()delay()duan=if(count!=)break}break}}else{song()delay()}}}播放音乐子程序流程图图播放音乐子程序流程图播放音乐子程序代码:voidsong(){uinttempucharjpjp是简谱i=while(){if(count==){break}if(count==)选曲temp=qnzli播放千年之恋if(count==)temp=jmszli播放寂寞沙洲冷if(temp==xff)结束标志breakjp=temp取数的高位duan=P=yinyuejpduan=if(jp!=){timeh=cuzhijp*timel=cuzhijp*}else{TR=fm=关蜂鸣器}delay(temp)取数的低位TR=唱完一个音停MSfm=delay()TR=i}TR=fm=}延时程序代码:voiddelay(uintz)延时MS,即十六分音符{uintx,yfor(x=zx>x)for(y=y>y)}voiddelay(uintz)延时MS{uintx,yfor(x=zx>x)for(y=y>y)}程序源代码(见附录A)调试检查硬件连接在PROTUES检查各硬件管脚是否连接正确线路逻辑是否正确例如:晶振电路的连接复位电路是否设计正确。检查软件系统.根据系统的原理结构检查各流程图是否正确再根据流程图来检查程序是否也正确。.将所有程序组织起来在软件环境下运行检查程序是否正确。通过对硬件和软件系统的认真检查反复测试如果没有出现问题即可把源程序编译成HEX文件装载到单片机中对硬件进行仿真。测试结果.总体运行图图系统总体运行图.花样灯种花样图由于截图只能看到静态图不能看到整体图样下面画图说明:图花样灯()第一种花样灯显示方式为:从D移向D然后D熄灭再从D移向D然后D熄灭以此类推往复循环。图第一种花样()第二种花样灯显示方式为:从两边向中间移动首先从D移向D再从D移向D以此类推往复循环。具体如图。图第种花样()第三种花样灯显示方式为:从D移向D然后D熄灭再从D移向D然后D熄灭以此往复循环。与第一种方式的不同之处为:当D移向D时D不熄灭再从D移向D时D也不熄灭以此类推。图第中花样总结单片机的设计至今为止已经进入了令人鼓舞的阶段在进行了长达两个多月的时间的摸索与实验使我不仅仅是对于单片机入门软件与硬件的常用设计与功能还使我对于一项设计研究的制作过程所需要的详细步骤和具体的实现方法的力度的掌握。当然在这次宝贵的毕业设计活动中经验才是对于我们最大的收获而且还增强了自身对未知问题以及对知识的深化认识的能力用受益匪浅这个词语来概括这次难忘的活动我觉得再合适不过了。但是光是完成了作品还是不可以自我满足的在从一开始的时候就怀着将作品制作得更加人性化更加令人满意更加地使功能完美又方便地被应用领域这个最终目的下随着对单片机这门学科的认识加深到达了拓展的程度我想这个目的将在不远的时期内被实现。总之这次设计从软件编写、调试到软硬件联机调试我倾注了大量的时间和心血。真是曾经为程序的编写而冥思查找过曾经为无法找出错误而郁闷苦恼过也曾经为某一功能不能实现而犹豫彷徨过但最终我成功了。我不仅品味到了结果的喜悦更明白了过程的弥足珍贵。致谢感谢我的导师冯永政老师他们严谨细致、一丝不苟的作风一直是我工作、学习中的榜样他们循循善诱的教导和不拘一格的思路给予我无尽的启迪。感谢我的爸爸妈妈焉得谖草言树之背养育之恩无以回报你们永远健康快乐是我最大的心愿。感谢我的室友们是你们和我共同维系着彼此之间兄弟般的感情维系着寝室那份家的融洽。四年了仿佛就在昨天。四年里我们没有红过脸没有吵过嘴没有发生上大学前所担心的任何不开心的事情。只是今后大家就难得再聚在一起吃每年元旦那顿饭了吧没关系各奔前程大家珍重。我们在一起的日子我会记一辈子的。在论文即将完成之际我的心情无法平静从开始进入课题到论文的顺利完成有多少可敬的师长、同学、朋友给了我无言的帮助在这里请接受我诚挚的谢意!参考文献李建忠单片机原理及应用M西安电子科技大学出版社黄智伟全国大学生电子设计竞赛系统设计M北京:北京航空航天大学出版社黄智伟凌阳单片机课程设计指导M北京:北京航空航天大学出版社李广弟朱月秀王秀山单片机基础M北京:北京航空航天大学出版社赵曙光郭万有杨颂华可编程逻辑器件原理开发与应用M,西安:西安电子科技大学候伯亨VHDL硬件描述语言与数字逻辑电路设计M,西安:西安电子科技大学出版社康华光模拟电子技术基础(第四版)M,武汉:华中理工大学出版社谭浩强C语言程序设计(第二版)M北京:清华大学出版社陈小忠黄宁单片机接口技术实用子程序M北京:北京人民邮电出版社欧伟明周春临瞿遂春电子信息系统设计M西安电子科技大学出版社贾立新王涌电子系统设计与实践M北京:清华大学出版社罗亚非凌阳位单片机应用基础M北京:北京航空航天大学出版社雷思孝凌阳单片机原理及实用技术M西安电子科技大学科技外文文献GettingStartedwithµVisionTheKeilSoftwaredevelopmenttoolslistedbelowareprogramsyouusetocompileyourCcode,assembleyourassemblysourcefiles,linkandlocateobjectmodulesandlibraries,createHEXfiles,anddebugyourtargetprogramµVisionforWindowsisanIntegratedDevelopmentEnvironmentthatcombinesprojectmanagement,sourcecodeediting,andprogramdebugginginonesingle,powerfulenvironmentTheCANSIOptimizingCCrossCompilercreatesrelocatableobjectmodulesfromyourCsourcecodeTheAMacroAssemblercreatesrelocatableobjectmodulesfromyourassemblysourcecodeTheBLLinkerLocatorcombinesrelocatableobjectmodulescreatedbytheCCompilerandtheAAssemblerintoabsoluteobjectmodulesTheLIBLibraryManagercombinesobjectmodulesintolibrariesthatmaybeusedbythelinkerTheOHObjectHEXConvertercreatesIntelHEXfilesfromabsoluteobjectmodulesTheRTXRealtimeOperatingSystemsimplifiesthedesignofcomplex,timecriticalsoftwareprojectsSoftwareDevelopmentCycleWhenyouusetheKeilSoftwaretools,theprojectdevelopmentcycleisroughlythesameasitisforanyothersoftwaredevelopmentprojectCreateaproject,selectthetargetchipfromthedevicedatabase,andconfigurethetoolsettingsCreatesourcefilesinCorassemblyBuildyourapplicationwiththeprojectmanagerCorrecterrorsinsourcefilesTestthelinkedapplicationµVisionIDETheµVisionIDEcombinesprojectmanagement,arichfeaturededitorwithinteractiveerrorcorrection,optionsetup,makefacility,andonlinehelpUseµVisiontocreateyoursourcefilesandorganizethemintoaprojectthatdefinesyourtargetapplicationµVisionautomaticallycompiles,assembles,andlinksyourembeddedapplicationandprovidesasinglefocalpointforyourdevelopmenteffortsLIBLibraryManagerTheLIBlibrarymanagerallowsyoutocreateobjectlibraryfromtheobjectfilescreatedbythecompilerandassemblerLibrariesarespeciallyformatted,orderedprogramcollectionsofobjectmodulesthatmaybeusedbythelinkeratalatertimeWhenthelinkerprocessesalibrary,onlythoseobjectmodulesinthelibrarythatarenecessarytocreatetheprogramareusedBLLinkerLocatorTheBLlinkercreatesanabsoluteobjectmoduleusingtheobjectmodulesextractedfromlibrariesandthosecreatedbythecompilerandassemblerAnabsoluteobjectfileormodulecontainsnorelocatablecodeordataAllcodeanddataresideatfixedmemorylocationsTheabsoluteobjectfilemaybeused:ToprogramanEPROMorothermemorydevices,WiththeµVisionDebuggerforsimulationandtargetdebugging,WithanincircuitemulatorfortheprogramtestingµVisionDebuggerTheµVisionsymbolic,sourceleveldebuggerisideallysuitedforfast,reliableprogramdebuggingThedebuggerincludesahighspeedsimulatorthatletyousimulateanentiresystemincludingonchipperipheralsandexternalhardwareTheattributesofthechipyouuseareautomaticallyconfiguredwhenyouselectthedevicefromtheDeviceDatabaseTheµVisionDebuggerprovidesseveralwaysforyoutotestyourprogramsonrealtargethardware:InstalltheMONTargetMonitoronyourtargetsystemanddownloadyourprogramusingtheMonitorinterfacebuiltintotheµVisionDebuggerUsetheAdvancedGDIinterfacetoattachusetheµVisionDebuggerfrontendwithyourtargetsystemMonitorTheµVisionDebuggersupportstargetdebuggingusingMonitorThemonitorprogramresidesinthememoryofyourtargethardwareandcommunicateswiththeµVisionDebuggerusingtheserialportoftheandaCOMportofyourPCWithMonitor,µVisionletsyouperformsourcelevel,symbolicdebuggingonyourtargethardwareRTXRealTimeOperatingSystemTheRTXrealtimeoperatingsystemisamultitaskingkernelforthemicrocontrollerfamilyTheRTXrealtimekernelsimplifiesthesystemdesign,programming,anddebuggingofcomplexapplicationswherefastreactiontotimecriticaleventsisessentialThekernelisfullyintegratedintotheCCompilerandiseasytouseTaskdescriptiontablesandoperatingsystemconsistencyareautomaticallycontrolledbytheBLlinkerlocatorCOptimizingCCrossCompilerTheKeilCCrossCompilerisanANSICCompilerthatwaswrittenspecificallytogeneratefast,compactcodeforthemicrocontrollerfamilyTheCCompilergeneratesobjectcodethatmatchestheefficiencyandspeedofassemblyprogrammingUsingahighlevellanguagelikeChasmanyadvantagesoverassemblylanguageprogramming:KnowledgeoftheprocessorinstructionsetisnotrequiredRudimentaryknowledgeofthememorystructureoftheCPUisdesirable(butnotnecessary)DetailslikeregisterallocationandaddressingofthevariousmemorytypesanddatatypesismanagedbythecompilerProgramsgetaformalstructure(whichisimposedbytheCprogramminglanguage)andcanbedividedintoseparatefunctionsThiscontributestosourcecodereusabilityaswellasbetteroverallapplicationstructureTheabilitytocombinevariableselectionwithspecificoperationsimprovesprogramreadabilityKeywordsandoperationalfunctionsthatmorenearlyresemblethehumanthoughtprocessmaybeusedProgrammingandprogramtesttimeisdrasticallyreducedTheCruntimelibrarycontainsmanystandardroutinessuchas:formattedoutput,numericconversions,andfloatingpointarithmeticExistingprogrampartscanbemoreeasilyincludedintonewprogramsbecauseofmodularprogramconstructiontechniquesThelanguageCisaveryportablelanguage(basedontheANSIstandard)thatenjoyswidepopularsupportandiseasilyobtainedformostsystemsExistingprograminvestmentscanbequicklyadaptedtootherprocessorsasneededCodeOptimizationsTheCCompilerisanaggressiveoptimizingcompilerthattakesnumerousstepstoensurethatthecodegeneratedandoutputtotheobjectfileisthemostefficient(smallestandorfastest)codepossibleThecompileranalyzesthegeneratedcodetoproducethemostefficientinstructionsequencesThisensuresthatyourCprogramrunsasquicklyandeffectivelyaspossibleintheleastamountofcodespaceTheCCompilerprovidesninedifferentlevelsofoptimizingEachincreasinglevelincludestheoptimizationsoflevelsbelowitThefollowingisalistofalloptimizationscurrentlyperformedbytheCCompilerGeneralOptimizationsConstantFolding:ConstantvaluesoccurringinanexpressionoraddresscalculationarecombinedasasingleconstantJumpOptimizing:JumpsareinvertedorextendedtothefinaltargetaddresswhentheprogramefficiencyistherebyincreasedDeadCodeElimination:Codethatcannotbereached(deadcode)isremovedfromtheprogramRegisterVariables:AutomaticvariablesandfunctionargumentsarelocatedinregisterswheneverpossibleNodatamemoryspaceisreservedforthesevariablesParameterPassingViaRegisters:AmaximumofthreefunctionargumentsmaybepassedinregistersGlobalCommonSubexpressionElimination:IdenticalsubexpressionsoraddresscalculationsthatoccurmultipletimesinafunctionarerecognizedandcalculatedonlyoncewheneverpossibleCommonTailMerging:CommoninstructionblocksaremergedtogetherusingjumpinstructionsReuseCommonEntryCode:CommoninstructionsequencesaremovedinfrontofafunctiontoreducecodesizeCommonBlockSubroutines:MultipleinstructionsequencesarepackedintosubroutinesInstructionsarerearrangedtomaximizetheblocksize中文译文KeilC简介KeilSoftware的开发工具提供以下程序你可以用它们来编译你的C源码汇编你的汇编源程序连接和重定位你的目标文件和库文件创建HEX文件调试你的目标程序。Windows应用程序uVision是一个集成开

类似资料

编辑推荐

西方视野里的中国形象·美国的中国形象 (美)哈罗德·伊萨克斯着.pdf

成为作家.pdf

小说写作教程++虚构文学速成全攻略.pdf

西安出土的汉代玉器及其特征_下_王蔚华.pdf

西安出土的汉代玉器及其特征_上_王蔚华.pdf

职业精品

精彩专题

上传我的资料

精选资料

热门资料排行换一换

  • 《Educational Psy…

  • 宠物的历史·彩图版 李鹏、赵博编…

  • 财富的诞生:现代世界繁荣的起源 …

  • 血酬定律:中国历史中的生存游戏 …

  • 02S701砖砌化粪池标准图集(…

  • 债法总论.pdf

  • 《清史编年 第九卷(咸丰朝)》.…

  • 埃及迷药:艳后克莉奥佩特拉 (德…

  • “当代资本主义研究”丛书 当代资…

  • 资料评价:

    / 34
    所需积分:2 立即下载

    意见
    反馈

    返回
    顶部