版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、摘 要本次课程设计是基于at89c51单片机设计一个音乐播放器。通过单片机音乐播放器系统设计和研究,对于切实掌握单片机相关知识具有重要的理论和实际意义。这次课程设计的音乐播放器是软件和硬件的结合,乐曲中不同的音符,实质就是不同频率的声音。通过单片机产生不同的频率的脉冲信号,经过放大电路,由蜂鸣器放出,就产生了美妙和谐的乐曲。根据各音阶频率算出定时器定时常数,根据节拍给出该音阶持续的时间,最终实现播放简单歌曲的功能。例如“世上只有妈妈好”。关键字:单片机,音乐播放器,音节频率abstractthis course is designed based on single chip microcom
2、puter at89c51 design a music playerthrough the single-chip microcomputer music player system design and research, to be mastered microcontroller related knowledge is of important theoretical and practical significance.the course design of the music player is the combination of software and hardware,
3、different notes in the music, the essence is different frequency of sound. through the single-chip microcomputer produce different frequency of the pulse signal, amplified circuit, released by a buzzer to produce the harmonious beauty of music.according to each octave frequency calculate timer time
4、constant, according to beat the the duration of the scale are given, finally realizes the play simple songs function. for example there is only a good mother.keywords: mcu,music player, syllable frequency目 录第1章引言11.1 选题背景11.2 设计原理11.3 单片机简介21.4 单片机的发展历史21.5 单片机的应用领域及发展趋势2第2章方案论证52.1 设计要求52.2 系统描述52.
5、3 设计方案62.3.1 集成电路62.3.2 单片机最小系统102.3.3 结论12第3章硬件设计133.1 硬件结构133.2 中心控制模块133.3 电源模块163.4 控制电路173.5 复位电路173.6 电路设计所需要的器件19第4章软件设计204.1 音乐发声设计原理204.1.1 发声原理204.1.2 单片机产生不同频率脉冲信号的原理204.1.3 键控子程序234.1.4 播放/暂停子程序244.1.5 曲目选择子程序244.2 音乐播放程序设计25第5章系统调试295.1 软件调试295.2 keil开发系统295.3 调试中遇到的问题及解决305.4 仿真结果315.5
6、 误差分析32第6章结论33参考文献34致谢35附录36附录一:完整的音乐程序36附录二:原理图40附录三:仿真图41附录四:pcb图42第1章 引言1.1 选题背景单片微型计算机简称单片机,是典型的嵌入式微控制器(microcontroller unit),常用英文字母的缩写mcu表示单片机,它最早是被用在工业控制领域。单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。单片机由运算器,控制器,存储器,输入输出设备构成,相当于一个微型的计算机(最小系统),和计算机相比,单片机缺少了外围设备等。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价
7、格便宜、为学习、应用和开发提供了便利条件。intel的8080是最早按照这种思想设计出的处理器,当时的单片机都是8位或4位的。其中最成功的是intel的8051,此后在8051上发展出了mcs51系列单片机系统。因为简单可靠而性能不错获得了很大的好评。尽管2000年以后arm已经发展出了32位的主频超过300m的高端单片机,直到现在基于8051的单片机还在广泛的使用。现代人类生活中所用的几乎每件有电子器件的产品中都会集成有单片机。手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电子产品中都含有单片机。 汽车上一般配备40多片单片机,复杂的工业控制系统上甚至可能有数百片单片机在同时工作
8、!利用单片机实现音乐播放有很多优点,例如外部电路简单,控制方便等,因而备受广大单片机爱好者的喜爱。通过音乐发生器的设计方案,掌握c语言的编程方法。并熟练的运用89c51单片机定时器产生固定频率的方波信号,驱动喇叭发出旋律,按下按键可以演奏预先设置的歌曲旋律,最重要的是自己还可以通过程序设计输入自己喜欢的歌曲来演奏。1.2 设计原理乐曲中不同的音符,实质就是不同频率的声音。通过单片机产生不同的频率的脉冲信号,经过放大电路,由蜂鸣器放出,就产生了美妙和谐的乐曲。1.3 单片机简介单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器cpu随机存储器ram、只读存储器ro
9、m、多种i/o口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、a/d转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域的广泛应用。从上世纪80年代,由当时的4位、8位单片机,发展到现在的32位300m的高速单片机。它的最大优点是体积小,可放在仪表内部,但储存量小,输入输出接口简单,功能较低。由于其发展的非常迅速,旧的单片机的定义已经不能满足,所以在很多应用场合被称为范围更广的微控制器。由于单晶片微电脑常用于当控制器故又名single chip microcontroller。1.4 单片机的发展历史单片机诞生于1971年,
10、经历了scm、mcu、soc三大阶段,早期的scm单片机都是8位或4位的。其中最成功的是intel的8031,此后在8031上发展出了mcs51系列mcu系统。基于这一系统的单片机系统直到现在还在广泛使用。随着工业控制领域要求的提高,开始出现了16位单片机,但因为性价比不理想并未得到很广泛的应用。90年代后随着消费电子产品大发展,单片机技术得到了巨大提高。随着intel i960系列特别是后来的arm系列的广泛应用,32位单片机迅速取代16位单片机的高端地位,并且进入主流市场。而传统的8位单片机的性能也得到了飞速提高,处理能力比起80年代提高了数百倍。高端的32位soc单片机主频已经超过300
11、mhz,性能直追90年代中期的专用处理器,而普通的型号出厂价格跌落至1美元,最高端的型号也只有10美元。当代单片机系统已经不再只在裸机环境下开发和使用,大量专用的嵌入式操作系统被广泛应用在全系列的单片机上。而在作为掌上电脑和手机核心处理的高端单片机甚至可以直接使用专用的windows和linux操作系统。1.5 单片机的应用领域及发展趋势单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分为如下几个范畴:一、在智能仪器仪表的应用单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器仪表中,结合不同类型的传感器,可
12、实现诸如电压、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量。采用单片机控制使得仪器仪表数字化、智能化、微型化,且功能比起采用电子或数字电路更加强大。例如精密的测量设备(功率计、示波器、各种分析仪)。二、在家用电器中的应用可以这样说,现在的家用电器基本上都采用了单片机控制,从洗衣机、电冰箱、空调机、其他音响视频器材、再到电子秤量设备,五花八门,无所不在。三、在工业控制中的应用用单片机可以构成形式多样的控制系统、数据采集系统。例如工厂流水线的智能化管理,电梯智能化控制、各种报警系统,与计算机联网构成二级控制系统等。四、在计算机网络和通信领域中的应用现代的单片
13、机普遍具备通信接口,可以很方便地与计算机进行数据通信,为在计算机网络和通信设备间的应用提供了极好的物质条件,现在的通信设备基本上都实现了单片机智能控制,从手机,电话机、小型程控交换机、楼宇自动通信呼叫系统、列车无线通信、再到日常工作中随处可见的移动电话,集群移动通信,无线电对讲机等。单片机的发展趋势现在可以说是百花齐放,百家争鸣的时期,世界上各大芯片制造公司都推出了自己的单片机,从8位、16位到32位,数不胜数,应有尽有,有与主流c51系列兼容的,也有不兼容的,但它们各具特色,互成互补,为单片机的应用提供了广阔的天地。纵观单片机的发展过程,可以预示单片机的发展趋势,大致有:一、微型单片化现在常
14、规的单片机普遍都是将中央处理器(cpu)、随机存取数据存储(ram)、只读程序存储器(rom)、并行和串行通信接口,中断系统、定时电路、时钟电路集成在一块单一的芯片上,增强型的单片机集成了如a/d转换器、pmw(脉宽调制电路)、wdt(看门狗)、有些单片机将lcd(液晶)驱动电路都集成在单一的芯片上,这样单片机包含的单元电路就更多,功能就越强大。此外,现在的产品普遍要求体积小、重量轻,这就要求单片机除了功能强和功耗低外,还要求其体积要小。现在的许多单片机都具有多种封装形式,其中smd(表面封装)越来越受欢迎,使得由单片机构成的系统正朝微型化方向发展。二、低功耗cmos化mcs-51系列的803
15、1推出时的功耗达630mw,而现在的单片机普遍都100mw左右,随着对单片机功耗要求越来越低,现在的各个单片机制造商基本都采用了cmos(互补金属氧化物半导体工艺)。像80c51就采用了hmos(即高密度金属氧化物半导体工艺)和chmos(互补高密度金属氧化物半导体工艺)。cmos虽然功耗低,但由于其物理特征决定其工作速度不够高,而chmos则具备了高速和低功耗的特点,这些特征,更适合于要求低功耗像电池供电的应用场合。所以这种工艺将是今后一段时期单片机发展的主要途径。第2章 方案论证2.1 设计要求具体的设计要求应该满足以下功能:硬件方面:1、可以通过按键进行曲目的选着;2、可以通过按键进行曲
16、目的播放和停止;3、可以控制声音的音节和长短;4、音频数据信息记录需要大量的非易失性数据存储器实时快速地记录数据。因此需要具有掉电保护功能的大容量存储器。软件方面:1、系统中外的各器件的初始化工作均在主程序中完成,其次,要设计如何调用显示子程序以及乐曲播放程序。2、在实际的控制过程中,常要求有实时时钟,以实现定时或延时控制所以需要此类中断服务程序。2.2 系统描述本课题主要任务是利用单片机等部件设计一个多功能音乐盒,实现音乐的播放,以及通过按键的控制实现上叙述的功能。本文分析基于at89c51单片机的音乐播放器的硬件电路和软件设计,具体过程包括数据处理子程序的设计,显示子程序的设计,最后针对仿
17、真过程中遇到的现象进行咯说明和分析。2.3 设计方案2.3.1 集成电路集成电路(integrated circuit)如图2-1是一种微型电子器件或部件。采用一定的工艺,把一个电路中所需的晶体管、二极管、电阻、电容和电感等元件及布线互连一起,制作在一小块或几小块半导体晶片或介质基片上,然后封装在一个管壳内,成为具有所需电路功能的微型结构;其中所有元件在结构上已组成一个整体,使电子元件向着微小型化、低功耗和高可靠性方面迈进了一大步。它在电路中用字母“ic”表示。集成电路发明者为杰克基尔比(基于硅的集成电路)和罗伯特诺伊思(基于锗的集成电路)。当今半导体工业大多数应用的是基于硅的集成电路。图2-
18、1 集成电路1、特点集成电路或称微电路(microcircuit)、微芯片(microchip)、芯片(chip)在电子学中是一种把电路(主要包括半导体装置,也包括被动元件等)小型化的方式,并通常制造在半导体晶圆表面上。前述将电路制造在半导体芯片表面上的集成电路又称薄膜(thin-film)集成电路。另有一种厚膜(thick-film)混成集成电路(hybrid integrated circuit)是由独立半导体设备和被动元件,集成到衬底或线路板所构成的小型化电路。集成电路具有体积小,重量轻,引出线和焊接点少,寿命长,可靠性高,性能好等优点,同时成本低,便于大规模生产。它不仅在工、民用电子设
19、备如收录机、电视机、计算机等方面得到广泛的应用,同时在军事、通讯、遥控等方面也得到广泛的应用。用集成电路来装配电子设备,其装配密度比晶体管可提高几十倍至几千倍,设备的稳定工作时间也可大大提高。2、分类按功能结构分类集成电路,又称为ic,按其功能、结构的不同,可以分为模拟集成电路、数字集成电路和数/模混合集成电路三大类。模拟集成电路又称线性电路,用来产生、放大和处理各种模拟信号(指幅度随时间变化的信号。例如半导体收音机的音频信号、录放机的磁带信号等),其输入信号和输出信号成比例关系。而数字集成电路用来产生、放大和处理各种数字信号(指在时间上和幅度上离散取值的信号。例如3g手机、数码相机、电脑cp
20、u、数字电视的逻辑控制和重放的音频信号和视频信号)。按制作工艺分类集成电路按制作工艺可分为半导体集成电路和膜集成电路。膜集成电路又分类厚膜集成电路和薄膜集成电路。按集成度高低分类集成电路按集成度高低的不同可分为:ssi 小规模集成电路(small scale integrated circuits)msi 中规模集成电路(medium scale integrated circuits)lsi 大规模集成电路(large scale integrated circuits)vlsi 超大规模集成电路(very large scale integrated circuits)ulsi 特大规模集
21、成电路(ultra large scale integrated circuits)gsi 巨大规模集成电路也被称作极大规模集成电路或超特大规模集成电路(giga scale integration)。按导电类型不同分类集成电路按导电类型可分为双极型集成电路和单极型集成电路,他们都是数字集成电路。双极型集成电路的制作工艺复杂,功耗较大,代表集成电路有ttl、ecl、htl、lst-tl、sttl等类型。单极型集成电路的制作工艺简单,功耗也较低,易于制成大规模集成电路,代表集成电路有cmos、nmos、pmos等类型。按用途分类集成电路按用途可分为电视机用集成电路、音响用集成电路、影碟机用集成电
22、路、录像机用集成电路、电脑(微机)用集成电路、电子琴用集成电路、通信用集成电路、照相机用集成电路、遥控集成电路、语言集成电路、报警器用集成电路及各种专用集成电路。(1)电视机用集成电路包括行、场扫描集成电路、中放集成电路、伴音集成电路、彩色解码集成电路、av/tv转换集成电路、开关电源集成电路、遥控集成电路、丽音解码集成电路、画中画处理集成电路、微处理器(cpu)集成电路、存储器集成电路等。(2)音响用集成电路包括am/fm高中频电路、立体声解码电路、音频前置放大电路、音频运算放大集成电路、音频功率放大集成电路、环绕声处理集成电路、电平驱动集成电路,电子音量控制集成电路、延时混响集成电路、电子
23、开关集成电路等。(3)影碟机用集成电路有系统控制集成电路、视频编码集成电路、mpeg解码集成电路、音频信号处理集成电路、音响效果集成电路、rf信号处理集成电路、数字信号处理集成电路、伺服集成电路、电动机驱动集成电路等。(4)录像机用集成电路有系统控制集成电路、伺服集成电路、驱动集成电路、音频处理集成电路、视频处理集成电路。按应用领域分类集成电路按应用领域可分为标准通用集成电路和专用集成电路。按外形分类集成电路按外形可分为圆形(金属外壳晶体管封装型,一般适合用于大功率)、扁平型(稳定性好,体积小)和双列直插型。3、简史1947年:贝尔实验室肖特莱等人发明了晶体管,这是微电子技术发展中第一个里程碑
24、;1950年:结型晶体管诞生1950年: r ohl和肖特莱发明了离子注入工艺1951年:场效应晶体管发明1958年:仙童公司robert noyce与德仪公司基尔比间隔数月分别发明了集成电路,开创了世界微电子学的历史;1962年:美国rca公司研制出mos场效应晶体管1963年:f.m.wanlass和c.t.sah首次提出cmos技术,今天,95%以上的集成电路芯片都是基于cmos工艺1964年:intel摩尔提出摩尔定律,预测晶体管集成度将会每18个月增加1倍1966年:美国rca公司研制出cmos集成电路,并研制出第一块门阵列(50门),为现如今的大规模集成电路发展奠定了坚实基础,具有
25、里程碑意义1971年:intel推出1kb动态随机存储器(dram),标志着大规模集成电路出现1971年:全球第一个微处理器4004由intel公司推出,采用的是mos工艺,这是一个里程碑式的发明1978年:64kb动态随机存储器诞生,不足0.5平方厘米的硅片上集成了14万个晶体管,标志着超大规模集成电路(vlsi)时代的来临1979年:intel推出5mhz 8088微处理器,之后,ibm基于8088推出全球第一台pc1985年:80386微处理器问世,20mhz1988年:16m dram问世,1平方厘米大小的硅片上集成有3500万个晶体管,标志着进入超大规模集成电路(vlsi)阶段198
26、9年:1mb dram进入市场1989年:486微处理器推出,25mhz,1m工艺,后来50mhz芯片采用 0.8m工艺1992年:64m位随机存储器问世1997年:300mhz奔腾问世,采用0.25m工艺1999年:奔腾问世,450mhz,采用0.25m工艺,后采用0.18m工艺2003年:奔腾4 e系列推出,采用90nm工艺。2005年:intel 酷睿2系列上市,采用65nm工艺。2007年:基于全新45纳米high-k工艺的intel酷睿2 e7/e8/e9上市。2009年:intel酷睿i系列全新推出,创纪录采用了领先的32纳米工艺,并且下一代22纳米工艺正在研发。我国集成电路发展历
27、史我国集成电路产业诞生于六十年代,共经历了三个发展阶段:1965年-1978年:以计算机和军工配套为目标,以开发逻辑电路为主要产 品,初步建立集成电路工业基础及相关设备、仪器、材料的配套条件1978年-1990年:主要引进美国二手设备,改善集成电路装备水平,在“治散治乱”的同时,以消费类整机作为配套重点,较好地解决了彩电集成电路的国产化1990年-2000年:以908工程、909工程为重点,以cad为突破口,抓好科技攻关和北方科研开发基地的建设,为信息产业服务,集成电路行业取得了新的发展。集成电路产业是对集成电路产业链各环节市场销售额的总体描述,它不仅仅包含集成电路市场,也包括ip核市场、ed
28、a市场、芯片代工市场、封测市场,甚至延伸至设备、材料市场。集成电路产业不再依赖cpu、存储器等单一器件发展,移动互联、三网融合、多屏互动、智能终端带来了多重市场空间,商业模式不断创新为市场注入新活力。目前我国集成电路产业已具备一定基础,多年来我国集成电路产业所聚集的技术创新活力、市场拓展能力、资源整合动力以及广阔的市场潜力,为产业在未来5年10年实现快速发展、迈上新的台阶奠定了基础。2.3.2 单片机最小系统在设计的时候我们了解了2款芯片,at89c51和at89c52。下面是2款芯片的简介:at89c51:是一种带4k字节flash存储器(fperomflash programmable a
29、nd erasable read only memory)的低电压、高性能cmos 8位微处理器,俗称单片机。at89c2051是一种带2k字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用atmel高密度非易失存储器制造技术制造,与工业标准的mcs-51指令集和输出管脚相兼容。由于将多功能8位cpu和闪烁存储器组合在单个芯片中,atmel的at89c51是一种高效微控制器,at89c2051是它的一种精简版本。at89c51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。主要功能特性:1) 与mcs-51 兼容;2) 4k字节可编程f
30、lash存储器;3) 全静态工作:0hz-24mhz;4) 1288位内部ram;5) 两个16位定时器/计数器;6) 5个中断源;7) 可编程串行通道;8) 低功耗的闲置和掉电模式;9) 片内振荡器和时钟电路。at89c52:是一个低电压,高性能cmos 8位单片机,片内含8k bytes的可反复擦写的flash只读程序存储器和256 bytes的随机存取数据存储器(ram),器件采用atmel公司的高密度、非易失性存储技术生产,兼容标准mcs-51指令系统,片内置通用8位中央处理器和flash存储单元,at89c52单片机在电子行业中有着广泛的应用。主要功能特性:1) 兼容mcs51指令系
31、统;2) 8kb可反复擦写(大于1000次)flash rom;3) 32个双向i/o口;4) 256x8bit内部ram;5) 3个16位可编程定时/计数器中断;6) 时钟频率0-24mhz;7) 2个串行中断,可编程uart串行通道;8) 2个外部中断源,共8个中断源;9) 2个读写中断口线,3级加密位;10) 低功耗空闲和掉电模式,软件设置睡眠和唤醒功能。2.3.3 结论我们通过集成电路和2款单片机的属性和优缺点对比,我们觉得at89c51单片机芯片更加适合本次实验的中心控制芯片。第3章 硬件设计3.1 硬件结构图3-1是以at89c51单片机为核心的音乐播放器系统硬件设计结构框图。该系
32、统主要是由复位电路、按键电路、时钟电路、中心模块、扬声器驱动等组成。其工作原理为:此音乐播放器,有三个按键及控制按钮:播放/暂停、下一曲、上一曲;通过控制按钮控制单片机,播放所要求的音乐,并通过放大电路和喇叭输出声音。图3-1 硬件结构图3.2 中心控制模块 中控采用的是at89c51芯片,下面是at89c51的引脚图:图3-2 at89c51引脚图各端口作用: p0口:p0口是一个8位漏极开路的双向i/o口。作为输出口,每位能驱动8个ttl逻辑电平。对p0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,p0口也被作为低8位地址/数据复用。在这种模式下,p0具有内部上拉电阻。
33、在flash编程时,p0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。 p1口:p1口是一个具有内部上拉电阻的8位双向i/o口,p1输出缓冲器能驱动4个ttl逻辑电平。对p1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(iil)。此外,p1.0和p1.2分别作定时器/计数器2的外部计数输入(p1.0/t2)和时器/计数器2的触发输入(p1.1/t2ex),具体如下表所示。在flash编程和校验时,p1口接收低8位地址字节。 引脚号第二功能 l p1.0 t2(定时器/计数器t2的
34、外部计数输入),时钟输出 l p1.1 t2ex(定时器/计数器t2的捕捉/重载触发信号和方向控制) l p1.5 mosi(在系统编程用) l p1.6 miso(在系统编程用) l p1.7 sck(在系统编程用) p2口:p2口是一个具有内部上拉电阻的8位双向i/o口,p2输出缓冲器能驱动4个ttl逻辑电平。对p2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(iil)。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行movx dptr)时,p2口送出高八位地址。在这种应用中,p2口使用很强的内
35、部上拉发送1。在使用8位地址(如movx ri)访问外部数据存储器时,p2口输出p2锁存器的内容。在flash编程和校验时,p2口也接收高8位地址字节和一些控制信号。p3口:p3口是一个具有内部上拉电阻的8位双向i/o口,p3输出缓冲器能驱动4个ttl逻辑电平。对p3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(iil)。p3口亦作为at89c52特殊功能(第二功能)使用,如下表所示。在flash编程和校验时,p3口也接收一些控制信号。 端口引脚第二功能 l p3.0 rxd(串行输入口) l p3.1 txd(
36、串行输出口) l p3.2 into(外中断0) l p3.3 int1(外中断1) l p3.4 to(定时/计数器0) l p3.5 t1(定时/计数器1) l p3.6 wr(外部数据存储器写选通) l p3.7 rd(外部数据存储器读选通) 此外,p3口还接收一些用于flash闪存编程和程序校验的控制信号。 rst复位输入。当振荡器工作时,rst引脚出现两个机器周期以上高电平将是单片机复位。 ale/prog当访问外部程序存储器或数据存储器时,ale(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ale仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于
37、定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ale脉冲。对flash存储器编程期间,该引脚还用于输入编程脉冲(prog)。如有必要,可通过对特殊功能寄存器(sfr)区中的8eh单元的d0位置位,可禁止ale操作。该位置位后,只有一条movx和movc指令才能将ale激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ale禁止位无效。psen程序储存允许(psen)输出是外部程序存储器的读选通信号,当at89c52由外部程序存储器取指令(或数据)时,每个机器周期两次psen有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次psen信号。ea/vpp外部访问允许
38、,欲使cpu仅访问外部程序存储器(地址为0000h-ffffh),ea端必须保持低电平(接地)。需注意的是:如果加密位lb1被编程,复位时内部会锁存ea端状态。如ea端为高电平(接vcc端),cpu则执行内部程序存储器的指令。flash存储器编程时,该引脚加上+12v的编程允许电源vpp,当然这必须是该器件是使用12v编程电压vpp。3.3 电源模块对于一个电子系统来说,电源部分的设计越发重要。对于一个实际的电子系统,要认真的分析它的电源需求。不仅仅是关心输入电压,输出电压和电流,还要考虑到总的功率,电源实现的效率,电源部分对负载变化的瞬态响应能力,关键器件对电源波动的容忍范围以及相应的允许的
39、电源纹波,还有散热问题等等。本次设计基于at89c51功率因数测量系统中使用到咯+5v的电源,电源设计的原理图如下。电路中使用到的芯片是7805,7805是稳压芯片,好处是应用比较简单,只需要接上几个电容就可以使用了。图3-3 电源电路图3.4 控制电路控制电路,键1与p3.2相连、键2与p3.3相连、键3与p3.5相连。当电键按下时接口接低电平,实现对音乐播放器的控制。键1连通实现上一曲更换,键二连通实现下一曲更换,键三连通实现开始暂停操作。3.5 复位电路复位电路的基本功能是:系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号。为可靠起见,电源稳定后还要经一定的延时才撤销复位信号,以
40、防电源开关或电源插头分-合过程中引起的抖动而影响复位。复位电路采用rc充电电路组成上电复位单片机电路,当系统上电时,在上电初期,电容c充电,使复位脚持续高电平,当c充电到达一定程度复位脚电位会慢慢变低,最后被电阻r完全拉低,高电平复位的时间由充电的时间决定,充电时间又由r与c的阻值和容值之积决定。一旦单片机复位脚拉低后就一直都低电平,只有下电后再上电才重新开始复位过程。电路图如下所示:图3-4 复位电路图3.6 电路设计所需要的器件表3-1 电路设计器件表类别序号型号数量(单位)用途电源178051个系统电源ic芯片2at89c511片cpu3lm3861片实时时钟日历芯片电容430pf2个单
41、片机时钟震荡电路510f1个复位电路60.1f1个7470f1个822f1个947f1个100.047f1个11100f1个晶振1212mhz1支电阻134.5k1支141k2支复位电路1510k1支限压保护164701支喇叭1774f3781个扬声器硬质板18焊接性1块基础电路二极管191n40011个电源部分20发光二极管1个检测电源第4章 软件设计4.1 音乐发声设计原理4.1.1 发声原理一首乐曲是由多个音符构成的。每个音符都对应着一个确定的频率,乐曲中不同的音符,实质就是不同频率的声音;另外每个音符会根据乐曲的要求设定一个确定的节拍。可以控制单片机产生不同频率不同节拍的脉冲信号,由蜂
42、鸣器发出就产生了美妙和谐的乐曲。 4.1.2 单片机产生不同频率脉冲信号的原理1、要产生音频脉冲,只要算出某一音频的脉冲(1/频率),然后将此周期除以2,即为半周期的时间,利用定时器计时这个半周期的时间,每当计时到后就将输出脉冲的i/o反相,然后重复计时此半周期的时间再对i/o反相,就可以在i/o脚上得到此频率的脉冲。 2、利用单片机内部定时器使其工作在计数器模式mode1下,改变计数值th0及tl0以产生不同频率的方法如下: 例如:频率为523hz,其周期天/523 s=1912us,因此只要令计数器计时956us/1us=956,在每计数956次时就将i/o反接,就可得到中音do(532h
43、z)。 计数脉冲值与频率的关系公式如下: n=fi/2/fr (4-1)其中n表示计数值;fi表示内部计时一次为1us,故其频率为1mhz;fr表示要产生的频率。 3、其计数值的求法如下: t=65536-n=65536-fi/2/fr (4-2)计算举例: 设k=65536,f=1000000=fi=1mhz,求低音do(261hz)、中音do(523hz)、 高音do(1046hz)的计数值。 t=65536-n=65536-fi/2/fr=65536-1000000/2/fr=65536-500000/fr低音do的t=65536-500000/262=63628。 中音do的t=655
44、36-500000/523=64580。高音do的t=65536-500000/1047=65059。4、每个音符使用1个字节,字节高4位代表音符高低,低4位代表音符 节拍。假设1/4节拍为1delay,则1拍应为4delay,以此类推。只要求得1/4拍的delay时间,其余节拍则为它的倍数,本设计取4/4调值,延时时间为125ms,其中节拍码与实际节拍对照表4-1-1。表4-1 简谱对应的频率、简谱码和计数初值表简谱发音频率(hz)计数初值简谱码5低音so3926426016低音la4406440027低音si4946452431中音do5236458042中音re5876468453中音m
45、i6596477764中音fa6986482075中音so7846489886中音la8806496897中音si98865030a1高音do104665058b2高音re117565110c3高音mi131865157d4高音fa139765178e5高音so156865217f不发音0表4-2 节拍码与实际节拍对照表节拍码实际节拍节拍码实际节拍节拍码实际节拍11/4拍51又1/4拍c3拍22/4拍61又1/2拍f3又3/4拍33/4拍82拍41拍a2又1/2拍建立音乐步骤:(1)先把乐谱的音符找出,然后由上表建立t值表的顺序。 (2)把t值表构成一个编码表,构成发音符的计数值放在计数初值编
46、码表里。 (3)简谱码(音符)为高位,节拍为(节拍数)为低4位,音符节拍码放在程序的简谱编码表里。 建立编码表具体如下:1)定时值为十六进制4位数,拆分为两组,如5对应的定时值为fd80h,拆分fdh和80h两组.前者装入定时器的高位th0,后组装入定时器的低位tl0。2)在程序中使用定时器t0方式1来产生来产生歌谱中各音符对应频率的音频脉冲,由p3.7输出,经三极管将信号放大后驱动蜂鸣器发出不同音节的声音。3)程序中的节拍控制是通过调用延时子程序delay的次数来实现,1拍为500ms,即需要调用4次delay;3/4拍需要调用3次delay;2/4拍需要调用2次delay。 4)节拍的控制
47、码在表table中位于音符码的后面。5)当一个音符的发音时间到时,再查下一个音符的定时常数和延时常数。依此进行下去,就可演奏出悦耳动听的乐曲。程序流程图如图所示:图4-1 主程序流程图如图4-3所示,开始播放自定义音乐程序时,指针指向乐谱第一个字节,将第一字节拆分为高低字节,其高字节即为音符中音高对应定时器定时常数,低字节即为音符中节拍对应的1/4节拍的次数,同时启动中断定时器0工作在方式1,由定时器定时常数得到相应音高,通过延时子程序设定1/4节拍的时间,由节拍次数得到节拍,再读取下一个乐谱字节,循环下去则演奏出美妙和谐的乐曲。4.1.3 键控子程序键控子程序主要由播放/暂停子程序、上一曲子
48、程序、下一曲子程序组成,分别由一个计数器中断和两个外部中断实现。4.1.4 播放/暂停子程序播放/暂停在程序利用内部中断t0口。将t0口设为计数中断并工作在方式2下。标识符初值赋值为r1=00h,计数初值设为th0=0ffh,tl0=0ffh。当按键第一次产生中断信号时,播放/暂停子程序改变标志符r1,将其赋值为01h。此时播放器由暂停状态进入播放状态。当按键第二次产生中断信号时,播放/暂停子程序判断r1是否为02h后,将r1再次赋值为00h。此时,播放器由播放状态进入暂停状态。 4.1.5 曲目选择子程序图4-2 曲目选择子程序流程图开始程序 指向乐谱第一个字节 拆分字节的高低字节 由高字节
49、得音高对应定时器定时常数 由低字节得到节拍对应节拍次数 启动定时器0 延时节拍时间 关闭定时器0 读取下一个乐谱字节 字节是00h吗? 程序循环yesno图4-3 程序播放过程4.2 音乐播放程序设计音乐程序根据上面的音调节拍编码方案用第一首歌劳动最光荣为例编码如下: uchar code ldzgr =0x52,0x82,0x82,0x52,0x62,0x62,0x54,0x32,0x52,0x12,0x32,0x28, 0x52,0x84,0x52,0x62,0x62,0x54,0x52,0x81,0xa1,0x92,0x52,0x88, 0x83,0x91,0x82,0x52,0x62,
50、0x62,0x54,0x33,0x81,0x62,0x52,0x12,0x32,0x24, 0x12,0x11,0x21,0x32,0x51,0x51,0x62,0x52,0x84,0x82,0x51,0x61,0x84,0xa4,0x92, 0x52,0x86,0x02, 0x52,0x81,0x81,0x82,0x52,0x62,0x61,0x81,0x54,0x32,0x51,0x61,0x53,0x31,0x12,0x32,0x24, 0x52,0x82,0x82,0x52,0x62,0x62,0x54,0x51,0x61,0x81,0xa1,0x92,0x52,0x88, 0x83,
51、0x91,0x82,0x52,0x62,0x62,0x54,0x33,0x81,0x62,0x52,0x12,0x32,0x24, 0x12,0x11,0x21,0x32,0x52,0x82,0x52,0x68,0x52,0x61,0x61,0x84,0xa4,0x92,0x52, 0x84,0xff ;一、键扫描函数void scankey()unsigned int keydata;keytmp=p1&0x01;if(keytmp= =0)keydata=0;else if(keytmp= =1)keydata=1;二、键延时函数void keydelay(void)uchar i;for
52、(i=300;i=0;i-)三、延时函数void delay(unsigned char time)unsigned char t1;unsigned char t2;for(t1=0;t1t;t1+)for(t2=0;t28000;t2+)四、定时器0中断服务子程序void time0_int() interrupt 1 using 0tr0=0;p00=p00; th0=bth0; tl0=btl0;tr0=1;五、赋t0计数初值,开始计数void sing()th0=bth0;tlo=btl0;tr0=1;delay(time);第5章 系统调试5.1 软件调试结构化软件的调试一般可以将
53、重点放在分模块调试上,通调是最后一环。软件调试可以采取离线调试和在线调试两种方式。前者不需要硬件仿真器,借助于软件仿真器即可;后者一般需要仿真系统的支持。在本次设计中利用的是keil c51软件仿真器,其评估版本可以免费获取,只是有2kb代码限制。5.2 keil开发系统使用keil软件建立一个工程: keil是目前进行51单片机开发最常用的编译软件。关于keil的使用,有很多的资料介绍,这里只介绍其整个编译过程。在keil里,每一个完整的程序,都是以一个工程的形式建立的。一个工程里可以有一个或多个*.c文件和*.h文件,但只可以有一个main()函数。一般的做法是将包含main()函数的c文
54、件加入到工程中,其他文件以#include头文件的形式加到这个c文件里。这样,在编译的时候,其他的文件会被自动的导入到工程里来。打开keil软件后,出现(图5-1)所示界面。当然,如果keil在上次关闭时有打开的工程,再一次打开时它会自动加载上一次的工程文件。图5-1 keil软件主界面5.3 调试中遇到的问题及解决1、编程时要注意,在程序开始时,要写入各定时器中断的入口地址。2、有时会出现程序一点错误也没有,但就是不能正常运行的现象,最后我们发现是因为程序中有的指令书写得不规范导致的,例如有的ret返回指令一定要按正确格式书写。3、程序中的跳转指令的运用很重要,为保险起见,都用ljmp,我们
55、就遇到过跳转指令用错程序无法正常运行的现象。4、编程过程中要注意加注释或分割线,否则,在程序过长时容易变得很乱,不便于查找或更改。5、开始时候没有将单片机的第31号引脚接到高电平,结果使mp3播放器的播放性能不稳定(有时候能工作,有时候却工作不了),当接一高电平以后,播放器能正常工作了。6、开始没有考虑键盘的消抖,造成的按键工作紊乱,具体的现象是:按1次键却被要机器认为是按了1次或多次,这就使播放器有时候可以正常工作,有时候却不可以。给键盘程序加了消抖呼程序以后,按键就工作正常了。7、两个定时器同时工作,存在中断时序问题,刚开始时我们把定时器1设定在方式3,计250us,由于定时中断过于频繁,使cpu负载过大,导致音乐不能正常播放,时间不能正常显示。解决办法:将定时器1设定在工作方式1,16位计数,计50ms,效果有很大改观。5.4 仿真结果我在keil软件中建立工程,连接,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- DB4115T 036-2018 信阳养生菜烹饪技艺 煎烧小白鱼
- DB4106T 53-2021 党政机关一般公务用车管理规范
- 2024年投资权益转让合同
- 2024年新式空气源热泵安装合作协议
- 董事会秘书工作计划(3篇)
- 2024年搅拌站混凝土采购条款
- 关于感恩的演讲稿初中(8篇范例)
- DB4113T 047-2023 玉雕工艺品包装操作规范
- DB4113T 030-2023 香菇定向出菇技术规程
- DB4106T 114-2023 大豆生产技术规程
- 北师大版八年级上册数学期中考试试卷带答案
- 地形图测绘报告
- 《数学广角-集合》说课稿
- 2024无障碍环境建设法知识竞赛题库及答案
- 2024-2025学年部编版语文八年级上册 期中综合测试卷(四)
- 2024至2030年中国别墅行业投资前景分析预测及未来趋势发展预测报告
- 参观河南省博物院
- 初中七年级上册综合实践活动 低碳生活从我做起 教学设计
- 2024中石油校园招聘高频考题难、易错点模拟试题(共500题)附带答案详解
- 医师定期考核(简易程序)练习及答案
- 2024-2030年中国会计师事务所行业深度分析及发展前景与发展战略研究报告
评论
0/150
提交评论