keil c51 v9.01此版不是汉化中文版,是英文版来的。ARM发布Keil μVision4集成开发环境(IDE),用来在微控制器和智能卡设备上创建、仿真和调试嵌入式应用。 μVision4 IDE是为增强开发人员的工作效率设计的,有了它可以更快速、更高效地开发和检验程序。通过μVision4 IDE中引入的灵活的窗口管理系统,开发人员可以使用多台监视器,在可视界面任何地方全面控制窗口放置。 新用户界面可以更好地利用屏幕空间,更有效地组织多个窗口,为开发应用提供整齐高效的环境。 μVision4在μVision3的成功经验的基础上增加了:* System Viewer (系统查看程序)窗口,提供了设备外围寄存器信息,这些信息可以在System Viewer窗口内部直接更改。* Debug Restore Views (调试恢复视图)允许保存多个窗口布局,为程序分析迅速选择最适合的调试视图。* Multi-Project Workspace(多项目工作空间)为处理多个并存的项目提供了简化的方法,如引导加载程序和应用程序。* 为基于ARM Cortex 处理器的MCU提供了Data and instruction trace(数据和指令追踪)功能。* 扩展了Device Simulation(设备仿真)功能以支持许多新设备,如Luminary、NXP和东芝生产的基于ARM Cortex-M3处理器的MCU;Atmel SAM7/9;及新的8051衍生品,如Infineon XC88x和SiLABS 8051Fxx。* 支持许多debug adapter interfaces(调试适配器接口),包括ADI miDAS Link、Atmel SAM-ICE、Infineon DAS和ST-Link。
上传时间: 2013-10-31
上传用户:qingdou
单片机音乐中音调和节拍的确定方法:调号-音乐上指用以确定乐曲主音高度的符号。很明显一个八度就有12个半音。A、B、C、D、E、F、G。经过声学家的研究,全世界都用这些字母来表示固定的音高。比如,A这个音,标准的音高为每秒钟振动440周。 升C调:1=#C,也就是降D调:1=BD;277(频率)升D调:1=#D,也就是降E调:1=BE;311升F调:1=#F,也就是降G调:1=BG;369升G调:1=#G,也就是降A调:1=BA;415升A调:1=#A,也就是降B调:1=BB。466,C 262 #C277 D 294 #D(bE)311 E 330 F 349 #F369 G 392 #G415A 440. #A466 B 494 所谓1=A,就是说,这首歌曲的“导”要唱得同A一样高,人们也把这首歌曲叫做A调歌曲,或叫“唱A调”。1=C,就是说,这首歌曲的“导”要唱得同C一样高,或者说“这歌曲唱C调”。同样是“导”,不同的调唱起来的高低是不一样的。各调的对应的标准频率为: 单片机演奏音乐时音调和节拍的确定方法 经常看到一些刚学单片机的朋友对单片机演奏音乐比较有兴趣,本人也曾是这样。在此,本人将就这方面的知识做一些简介,但愿能对单片机演奏音乐比较有兴趣而又不知其解的朋友能有所启迪。 一般说来,单片机演奏音乐基本都是单音频率,它不包含相应幅度的谐波频率,也就是说不能象电子琴那样能奏出多种音色的声音。因此单片机奏乐只需弄清楚两个概念即可,也就是“音调”和“节拍”。音调表示一个音符唱多高的频率,节拍表示一个音符唱多长的时间。 在音乐中所谓“音调”,其实就是我们常说的“音高”。在音乐中常把中央C上方的A音定为标准音高,其频率f=440Hz。当两个声音信号的频率相差一倍时,也即f2=2f1时,则称f2比f1高一个倍频程, 在音乐中1(do)与 ,2(来)与 ……正好相差一个倍频程,在音乐学中称它相差一个八度音。在一个八度音内,有12个半音。以1—i八音区为例, 12个半音是:1—#1、#1—2、2—#2、#2—3、3—4、4—#4,#4—5、5一#5、#5—6、6—#6、#6—7、7—i。这12个音阶的分度基本上是以对数关系来划分的。如果我们只要知道了这十二个音符的音高,也就是其基本音调的频率,我们就可根据倍频程的关系得到其他音符基本音调的频率。 知道了一个音符的频率后,怎样让单片机发出相应频率的声音呢?一般说来,常采用的方法就是通过单片机的定时器定时中断,将单片机上对应蜂鸣器的I/O口来回取反,或者说来回清零,置位,从而让蜂鸣器发出声音,为了让单片机发出不同频率的声音,我们只需将定时器予置不同的定时值就可实现。那么怎样确定一个频率所对应的定时器的定时值呢?以标准音高A为例: A的频率f = 440 Hz,其对应的周期为:T = 1/ f = 1/440 =2272μs 由上图可知,单片机上对应蜂鸣器的I/O口来回取反的时间应为:t = T/2 = 2272/2 = 1136μs这个时间t也就是单片机上定时器应有的中断触发时间。一般情况下,单片机奏乐时,其定时器为工作方式1,它以振荡器的十二分频信号为计数脉冲。设振荡器频率为f0,则定时器的予置初值由下式来确定: t = 12 *(TALL – THL)/ f0 式中TALL = 216 = 65536,THL为定时器待确定的计数初值。因此定时器的高低计数器的初值为: TH = THL / 256 = ( TALL – t* f0/12) / 256 TL = THL % 256 = ( TALL – t* f0/12) %256 将t=1136μs代入上面两式(注意:计算时应将时间和频率的单位换算一致),即可求出标准音高A在单片机晶振频率f0=12Mhz,定时器在工作方式1下的定时器高低计数器的予置初值为 : TH440Hz = (65536 – 1136 * 12/12) /256 = FBH TL440Hz = (65536 – 1136 * 12/12)%256 = 90H根据上面的求解方法,我们就可求出其他音调相应的计数器的予置初值。 音符的节拍我们可以举例来说明。在一张乐谱中,我们经常会看到这样的表达式,如1=C 、1=G …… 等等,这里1=C,1=G表示乐谱的曲调,和我们前面所谈的音调有很大的关联, 、 就是用来表示节拍的。以 为例加以说明,它表示乐谱中以四分音符为节拍,每一小结有三拍。比如: 其中1 、2 为一拍,3、4、5为一拍,6为一拍共三拍。1 、2的时长为四分音符的一半,即为八分音符长,3、4的时长为八分音符的一半,即为十六分音符长,5的时长为四分音符的一半,即为八分音符长,6的时长为四分音符长。那么一拍到底该唱多长呢?一般说来,如果乐曲没有特殊说明,一拍的时长大约为400—500ms 。我们以一拍的时长为400ms为例,则当以四分音符为节拍时,四分音符的时长就为400ms,八分音符的时长就为200ms,十六分音符的时长就为100ms。可见,在单片机上控制一个音符唱多长可采用循环延时的方法来实现。首先,我们确定一个基本时长的延时程序,比如说以十六分音符的时长为基本延时时间,那么,对于一个音符,如果它为十六分音符,则只需调用一次延时程序,如果它为八分音符,则只需调用二次延时程序,如果它为四分音符,则只需调用四次延时程序,依次类推。通过上面关于一个音符音调和节拍的确定方法,我们就可以在单片机上实现演奏音乐了。具体的实现方法为:将乐谱中的每个音符的音调及节拍变换成相应的音调参数和节拍参数,将他们做成数据表格,存放在存储器中,通过程序取出一个音符的相关参数,播放该音符,该音符唱完后,接着取出下一个音符的相关参数……,如此直到播放完毕最后一个音符,根据需要也可循环不停地播放整个乐曲。另外,对于乐曲中的休止符,一般将其音调参数设为FFH,FFH,其节拍参数与其他音符的节拍参数确定方法一致,乐曲结束用节拍参数为00H来表示。下面给出部分音符(三个八度音)的频率以及以单片机晶振频率f0=12Mhz,定时器在工作方式1下的定时器高低计数器的予置初值 : C调音符 频率Hz 262 277 293 311 329 349 370 392 415 440 466 494TH/TL F88B F8F2 F95B F9B7 FA14 FA66 FAB9 FB03 FB4A FB8F FBCF FC0BC调音符 1 1# 2 2# 3 4 4# 5 5# 6 6# 7频率Hz 523 553 586 621 658 697 739 783 830 879 931 987TH/TL FC43 FC78 FCAB FCDB FD08 FD33 FD5B FD81 FDA5 FDC7 FDE7 FE05C调音符 频率Hz 1045 1106 1171 1241 1316 1393 1476 1563 1658 1755 1860 1971TH/TL FB21 FE3C FE55 FE6D FE84 FE99 FEAD FEC0 FE02 FEE3 FEF3 FF02
上传时间: 2013-10-20
上传用户:哈哈haha
提出了一个由AT89C52单片机控制步进电机的实例。可以通过键盘输入相关数据, 并根据需要, 实时对步进电机工作方式进行设置, 具有实时性和交互性的特点。该系统可应用于步进电机控制的大多数场合。实践表明, 系统性能优于传统的步进电机控制器。关键词: 单片机; 步进电动机; 直流固态继电器; 实时控制Con trol System of Stepp ingMotor Ba sed on AT89C52 ChipM icrocomputerMENGWu2sheng, L ILiang (College of Automatization, Northwestern Polytechnical Unversity, Xipan 710072, China)ABSTRACT: A stepp ing motor control system based on AT89C52 chip microcomputer was described.The data can be inputwith keyboard, and stepp ingmotorwas controlled by these data. According to the demand, users can set the workingmodel of stepp ingmotor in real2time. This system can be widely used in stepp ing motor controlling. The p ractice showed that the performance of this system outdid the tradi tional stepp ing motor controller.KEY WORDS: Chip microcomputer; Stepp ingmotor; DCSSR; Real2time control
标签: Control System ingMot Stepp
上传时间: 2013-11-19
上传用户:leesuper
利用系介质陶瓷材料研制的微波元器件,广泛应用于航空航天、军事及民用通信及电子设备中,在理论分析和工艺试验的基础上,通过对介质陶瓷材料组分和控制温度工艺研究,优化BaO-Nd2O3-TiO2组分材料,改进煅烧温度等工艺方法,研制出性能稳定性介质陶瓷材料。为研制用于高频、超高频电子设备中性能稳定微波元器件找到了有效的途径。
上传时间: 2013-11-05
上传用户:kangqiaoyibie
针对Ka频段卫星通信信道中电波传播特性的研究,通过引入SAM模型和新的影响因子,包括雨滴大小、云雾及大气吸收等,分析了降雨及多因子对信道的影响,建立了Ka频段卫星通信信道仿真模型,并基于OPNET平台进行仿真。此模型能够更好地提供清晰的数学表达式,对卫星信道的研究提供了可靠数据。
上传时间: 2013-10-14
上传用户:wpwpwlxwlx
用二端口S-参数来表征差分电路的特性■ Sam Belkin差分电路结构因其更好的增益,二阶线性度,突出的抗杂散响应以及抗躁声性能而越来越多地被人们采用。这种电路结构通常需要一个与单端电路相连接的界面,而这个界面常常是采用“巴伦”器件(Balun),这种巴伦器件提供了平衡结构-到-不平衡结构的转换功能。要通过直接测量的方式来表征平衡电路特性的话,通常需要使用昂贵的四端口矢量网络分析仪。射频应用工程师还需要确定幅值和相位的不平衡是如何影响差分电路性能的。遗憾的是,在射频技术文献中,很难找到一种能表征电路特性以及衡量不平衡结构所产生影响的好的评估方法。这篇文章的目的就是要帮助射频应用工程师们通过使用常规的单端二端口矢量网络分析仪来准确可靠地解决作为他们日常工作的差分电路特性的测量问题。本文介绍了一些用来表征差分电路特性的实用和有效的方法, 特别是差分电压,共模抑制(CMRR),插入损耗以及基于二端口S-参数的差分阻抗。差分和共模信号在差分电路中有两种主要的信号类型:差分模式或差分电压Vdiff 和共模电压Vcm(见图2)。它们各自的定义如下[1]:• 差分信号是施加在平衡的3 端子系统中未接地的两个端子之上的• 共模信号是相等地施加在平衡放大器或其它差分器件的未接地的端子之上。
上传时间: 2013-10-14
上传用户:叶山豪
该电路集包括了从业界享有盛名的公司搜集到的大量最新电路,体现了丰富的设计思想。为便于读者理解和应用这些电路,本书几乎对每个电路都附有简要说明。$ C' I" t% P5 l3 V. l0 K, B 本书可供电子技术工作者、高等院校和中等专科学校师生、电子爱好者阅读和参考。( H& s, \, z6 ~% D: @
上传时间: 2013-10-19
上传用户:songnanhua
一种改进的huaffman算法,压缩效率不错的喔!!来看看ba:)
上传时间: 2015-03-31
上传用户:zhaiyanzhong
实验描述:分布式数据库的算法partition的具体实现。即通过该算法找到关系数据库最优分裂点,使得结果最优。 算法思想: 1、 首先根据所输入的attribute usage matrix得到AQ( ) 2、 对CA矩阵中划分点预先设在n-1处,并将属性列分成两个集合,TA和BA,TA中的元为:{ A1 、A2 …… An-1 },BA中的元素为:{ An} 3、 确定集合TQ、BQ和OQ,其中TQ={ qj| AQ(qi) TA},BQ= TQ={ qj| AQ(qi) BA}, OQ=Q-{TQ BQ}。 4、 计算出CTQ、CBQ、COQ这些值,其中CTQ= ,CBQ= ,COQ= 5、 通过划分点的第次移动分别计算出z=CTQ*CBQ-COQ2 6、 对取到的z的最大值处标记,为分割点 7、 对CA进行调整,重复计算得到最终z的最大值点,对CA矩阵进行划分 8、 对上述算法进行修改,将得到的最大z值的分割点和次大的分割点都记录下来,得到两个分割,则将原有的属性集划分成三部分。 该算法的目的是找到独立存取的属性集合或者分别的应用集。比如说,如果可以找到两个属性A1,A2,他们只是被q1读取,而A3,A4被q2,q3读取,这样在分裂的时候可以确定。算法就是找到这些组。另外为了简单化起见,我命令refj(qi)全部等于1.
上传时间: 2015-06-04
上传用户:13160677563
实验描述:分布式数据库的算法partition的具体实现。即通过该算法找到关系数据库最优分裂点(2个),使得结果最优。 1、 首先根据所输入的attribute usage matrix得到AQ( ) 2、 对CA矩阵中划分点预先设在n-1处,并将属性列分成3个集合,TA和BA和MA, 3、 确定集合TQ、BQ,MQ和OQ,其中TQ={ qj| AQ(qi) TA},BQ= TQ={ qj| AQ(qi) BA}, MQ={ qj| AQ(qi) MA},OQ=Q-{TQ BQ}。 4、 计算出CTQ、CBQ、CMQ、COQ这些值,其中CTQ= ,CBQ= ,CMQ= ,COQ= 5、 通过划分点的第次移动分别计算出z=CTQ*CBQ*CMQ-COQ3 6、 对取到的z的最大值处标记,为分割点 7、 对CA进行调整,重复计算得到最终z的最大值点,对CA矩阵进行划分 对上述算法进行修改,将得到的最大z值的分割点和次大的分割点都记录下来,得到两个分割,则将原有的属性集划分成三部分。
上传时间: 2015-06-04
上传用户:515414293