基于51单片机的音乐播放器制作

摘要

摘 要

本次课程设计是基于AT89C51单片机设计一个音乐播放器。通过单片机音乐播放器系统设计和研究,对于切实掌握单片机相关知识具有重要的理论和实际意义。

这次课程设计的音乐播放器是软件和硬件的结合,乐曲中不同的音符,实质就是不同频率的声音。通过单片机产生不同的频率的脉冲信号,经过放大电路,由蜂鸣器放出,就产生了美妙和谐的乐曲。根据各音阶频率算出定时器定时常数,根据节拍给出该音阶持续的时间,最终实现播放简单歌曲的功能。例如“世上只有妈妈好”。

关键字:单片机,音乐播放器,音节频率

ABSTRACT

ABSTRACT

This course is designed based on single chip microcomputer 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,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 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章 引言 . ................................................................................................................ 1

1.1 选题背景 ................................................................................................................... 1

1.2 设计原理 ................................................................................................................... 1

1.3 单片机简介 ............................................................................................................... 2

1.4 单片机的发展历史 ................................................................................................... 2

1.5 单片机的应用领域及发展趋势 ............................................................................... 2

第2章 方案论证 . ........................................................................................................ 5

2.1 设计要求 ................................................................................................................... 5

2.2 系统描述 ................................................................................................................... 5

2.3 设计方案 ................................................................................................................... 6

2.3.1 集成电路 ................................................................................................................ 6

2.3.2 单片机最小系统 .................................................................................................. 10

2.3.3 结论 ...................................................................................................................... 12

第3章 硬件设计 . ...................................................................................................... 13

3.1 硬件结构 ................................................................................................................. 13

3.2 中心控制模块 ......................................................................................................... 13

3.3 电源模块 ................................................................................................................. 16

3.4 控制电路 ................................................................................................................. 17

3.5 复位电路 ................................................................................................................. 17

3.6 电路设计所需要的器件 ......................................................................................... 19

第4章 软件设计 . ...................................................................................................... 20

4.1 音乐发声设计原理 ................................................................................................. 20

4.1.1 发声原理 .............................................................................................................. 20

4.1.2 单片机产生不同频率脉冲信号的原理 .............................................................. 20

4.1.3 键控子程序 .......................................................................................................... 23

4.1.4 播放/暂停子程序 ................................................................................................. 24

4.1.5 曲目选择子程序 .................................................................................................. 24

4.2 音乐播放程序设计 ................................................................................................. 25

第5章 系统调试 . ...................................................................................................... 29

5.1 软件调试 ................................................................................................................. 29

5.2 KEIL开发系统 ....................................................................................................... 29

5.3 调试中遇到的问题及解决 ..................................................................................... 30

5.4 仿真结果 ................................................................................................................. 31

5.5 误差分析 ................................................................................................................. 32

第6章 结论 . .............................................................................................................. 33

参考文献 ........................................................................................................................ 34

致谢 ................................................................................................................................ 35

附录 ................................................................................................................................ 36

附录一:完整的音乐程序 ............................................................................................ 36

附录二:原理图 ............................................................................................................ 40

附录三:仿真图 ............................................................................................................ 41

附录四:PCB 图 . ........................................................................................................... 42

第1章 引言

第1章 引言

1.1 选题背景

单片微型计算机简称单片机,是典型的嵌入式微控制器(Microcontroller Unit),常用英文字母的缩写MCU 表示单片机,它最早是被用在工业控制领域。单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。单片机由运算器,控制器,存储器,输入输出设备构成,相当于一个微型的计算机(最小系统),和计算机相比,单片机缺少了外围设备等。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。。

INTEL 的8080是最早按照这种思想设计出的处理器,当时的单片机都是8位或4位的。其中最成功的是INTEL 的8051,此后在8051上发展出了MCS51系列单片机系统。因为简单可靠而性能不错获得了很大的好评。尽管2000年以后ARM 已经发展出了32位的主频超过300M 的高端单片机,直到现在基于8051的单片机还在广泛的使用。现代人类生活中所用的几乎每件有电子器件的产品中都会集成有单片机。手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电子产品中都含有单片机。 汽车上一般配备40多片单片机,复杂的工业控制系统上甚至可能有数百片单片机在同时工作!

利用单片机实现音乐播放有很多优点,例如外部电路简单,控制方便等,因而备受广大单片机爱好者的喜爱。通过音乐发生器的设计方案,掌握C 语言的编程方法。并熟练的运用89C51单片机定时器产生固定频率的方波信号,驱动喇叭发出旋律,按下按键可以演奏预先设置的歌曲旋律,最重要的是自己还可以通过程序设计输入自己喜欢的歌曲来演奏。

1.2 设计原理

乐曲中不同的音符,实质就是不同频率的声音。通过单片机产生不同的频率的脉冲信号,经过放大电路,由蜂鸣器放出,就产生了美妙和谐的乐曲。

电子科技大学成都学院课程设计

1.3 单片机简介

单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU 随机存储器RAM 、只读存储器ROM 、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域的广泛应用。从上世纪80年代,由当时的4位、8位单片机,发展到现在的32位300M 的高速单片机。它的最大优点是体积小,可放在仪表内部,但储存量小,输入输出接口简单,功能较低。由于其发展的非常迅速,旧的单片机的定义已经不能满足,所以在很多应用场合被称为范围更广的微控制器。由于单晶片微电脑常用于当控制器故又名single chip microcontroller。

1.4 单片机的发展历史

单片机诞生于1971年,经历了SCM 、MCU 、SoC 三大阶段,早期的SCM 单片机都是8位或4位的。其中最成功的是INTEL 的8031,此后在8031上发展出了MCS51系列MCU 系统。基于这一系统的单片机系统直到现在还在广泛使用。随着工业控制领域要求的提高,开始出现了16位单片机,但因为性价比不理想并未得到很广泛的应用。90年代后随着消费电子产品大发展,单片机技术得到了巨大提高。随着INTEL i960系列特别是后来的ARM 系列的广泛应用,32位单片机迅速取代16位单片机的高端地位,并且进入主流市场。

而传统的8位单片机的性能也得到了飞速提高,处理能力比起80年代提高了数百倍。高端的32位Soc 单片机主频已经超过300MHz ,性能直追90年代中期的专用处理器,而普通的型号出厂价格跌落至1美元,最高端的型号也只有10美元。

当代单片机系统已经不再只在裸机环境下开发和使用,大量专用的嵌入式操作系统被广泛应用在全系列的单片机上。而在作为掌上电脑和手机核心处理的高端单片机甚至可以直接使用专用的Windows 和Linux 操作系统。

1.5 单片机的应用领域及发展趋势

单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的

第1章 引言

智能化管理及过程控制等领域,大致可分为如下几个范畴:

一、在智能仪器仪表的应用

单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器仪表中,结合不同类型的传感器,可实现诸如电压、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量。采用单片机控制使得仪器仪表数字化、智能化、微型化,且功能比起采用电子或数字电路更加强大。例如精密的测量设备(功率计、示波器、各种分析仪)。

二、在家用电器中的应用

可以这样说,现在的家用电器基本上都采用了单片机控制,从洗衣机、电冰箱、空调机、其他音响视频器材、再到电子秤量设备,五花八门,无所不在。

三、在工业控制中的应用

用单片机可以构成形式多样的控制系统、数据采集系统。例如工厂流水线的智能化管理,电梯智能化控制、各种报警系统,与计算机联网构成二级控制系统等。

四、在计算机网络和通信领域中的应用

现代的单片机普遍具备通信接口,可以很方便地与计算机进行数据通信,为在计算机网络和通信设备间的应用提供了极好的物质条件,现在的通信设备基本上都实现了单片机智能控制,从手机,电话机、小型程控交换机、楼宇自动通信呼叫系统、列车无线通信、再到日常工作中随处可见的移动电话,集群移动通信,无线电对讲机等。

单片机的发展趋势现在可以说是百花齐放,百家争鸣的时期,世界上各大芯片制造公司都推出了自己的单片机,从8位、16位到32位,数不胜数,应有尽有,有与主流C51系列兼容的,也有不兼容的,但它们各具特色,互成互补,为单片机的应用提供了广阔的天地。

纵观单片机的发展过程,可以预示单片机的发展趋势,大致有:

一、微型单片化

现在常规的单片机普遍都是将中央处理器(CPU )、随机存取数据存储(RAM )、

电子科技大学成都学院课程设计

只读程序存储器(ROM )、并行和串行通信接口,中断系统、定时电路、时钟电路集成在一块单一的芯片上,增强型的单片机集成了如A/D转换器、PMW (脉宽调制电路)、WDT (看门狗)、有些单片机将LCD (液晶)驱动电路都集成在单一的芯片上,这样单片机包含的单元电路就更多,功能就越强大。

此外,现在的产品普遍要求体积小、重量轻,这就要求单片机除了功能强和功耗低外,还要求其体积要小。现在的许多单片机都具有多种封装形式,其中SMD (表面封装)越来越受欢迎,使得由单片机构成的系统正朝微型化方向发展。

二、低功耗CMOS 化

MCS-51系列的8031推出时的功耗达630mW ,而现在的单片机普遍都100mW 左右,随着对单片机功耗要求越来越低,现在的各个单片机制造商基本都采用了CMOS (互补金属氧化物半导体工艺)。像80C51就采用了HMOS (即高密度金属氧化物半导体工艺)和CHMOS (互补高密度金属氧化物半导体工艺)。CMOS 虽然功耗低,但由于其物理特征决定其工作速度不够高,而CHMOS 则具备了高速和低功耗的特点,这些特征,更适合于要求低功耗像电池供电的应用场合。所以这种工艺将是今后一段时期单片机发展的主要途径。

第2章 方案论证

第2章 方案论证

2.1 设计要求

具体的设计要求应该满足以下功能:

硬件方面:

1、可以通过按键进行曲目的选着;

2、可以通过按键进行曲目的播放和停止;

3、可以控制声音的音节和长短;

4、音频数据信息记录需要大量的非易失性数据存储器实时快速地记录数据。因此需要具有掉电保护功能的大容量存储器。

软件方面:

1、系统中外的各器件的初始化工作均在主程序中完成,其次,要设计如何调用显示子程序以及乐曲播放程序。

2、在实际的控制过程中,常要求有实时时钟,以实现定时或延时控制所以需要此类中断服务程序。

2.2 系统描述

本课题主要任务是利用单片机等部件设计一个多功能音乐盒,实现音乐的播放,以及通过按键的控制实现上叙述的功能。

本文分析基于AT89C51单片机的音乐播放器的硬件电路和软件设计,具体过程包括数据处理子程序的设计,显示子程序的设计,最后针对仿真过程中遇到的现象进行咯说明和分析。

电子科技大学成都学院课程设计

2.3 设计方案

2.3.1 集成电路

集成电路(integrated circuit)如图2-1是一种微型电子器件或部件。采用一定的工艺,把一个电路中所需的晶体管、二极管、电阻、电容和电感等元件及布线互连一起,制作在一小块或几小块半导体晶片或介质基片上,然后封装在一个管壳内,成为具有所需电路功能的微型结构;其中所有元件在结构上已组成一个整体,使电子元件向着微小型化、低功耗和高可靠性方面迈进了一大步。它在电路中用字母“IC”表示。集成电路发明者为杰克·基尔比(基于硅的集成电路)和罗伯特·诺伊思(基于锗的集成电路)。当今半导体工业大多数应用的是基于硅的集成电路。

图2-1 集成电路

1、特点

集成电路或称微电路(microcircuit )、微芯片(microchip )、芯片(chip )在电子学中是一种把电路(主要包括半导体装置,也包括被动元件等)小型化的方式,并通常制造在半导体晶圆表面上。

前述将电路制造在半导体芯片表面上的集成电路又称薄膜(thin-film )集成电路。另有一种厚膜(thick-film )混成集成电路(hybrid integrated circuit)是由独立半导体设备和被动元件,集成到衬底或线路板所构成的小型化电路。 集成电路具有体积小,重量轻,引出线和焊接点少,寿命长,可靠性高,性能好等优点,同时成本低,便于大规模生产。它不仅在工、民用电子设备如收录机、电视机、计算机等方面得到广泛的应用,同时在军事、通讯、遥控等方面也得到广泛的应用。用集成电路来装配电子设备,其装配密度比晶体管可提高几十

第2章 方案论证 倍至几千倍,设备的稳定工作时间也可大大提高。

2、分类

按功能结构分类

集成电路,又称为IC ,按其功能、结构的不同,可以分为模拟集成电路、数字集成电路和数/模混合集成电路三大类。

模拟集成电路又称线性电路, 用来产生、放大和处理各种模拟信号(指幅度随时间变化的信号。例如半导体收音机的音频信号、录放机的磁带信号等),其输入信号和输出信号成比例关系。而数字集成电路用来产生、放大和处理各种数字信号(指在时间上和幅度上离散取值的信号。例如3G 手机、数码相机、电脑CPU 、数字电视的逻辑控制和重放的音频信号和视频信号)。

按制作工艺分类

集成电路按制作工艺可分为半导体集成电路和膜集成电路。

膜集成电路又分类厚膜集成电路和薄膜集成电路。

按集成度高低分类

集成电路按集成度高低的不同可分为:

SSI 小规模集成电路(Small Scale Integrated circuits)

MSI 中规模集成电路(Medium Scale Integrated circuits)

LSI 大规模集成电路(Large Scale Integrated circuits)

VLSI 超大规模集成电路(Very Large Scale Integrated circuits)

ULSI 特大规模集成电路(Ultra Large Scale Integrated circuits)

GSI 巨大规模集成电路也被称作极大规模集成电路或超特大规模集成电路(Giga Scale Integration)。

按导电类型不同分类 集成电路按导电类型可分为双极型集成电路和单极型集成电路,他们都是数字集成电路。

双极型集成电路的制作工艺复杂,功耗较大,代表集成电路有TTL 、ECL 、

电子科技大学成都学院课程设计 HTL 、LST-TL 、STTL 等类型。单极型集成电路的制作工艺简单,功耗也较低,易于制成大规模集成电路,代表集成电路有CMOS 、NMOS 、PMOS 等类型。

按用途分类 集成电路按用途可分为电视机用集成电路、音响用集成电路、影碟机用集成电路、录像机用集成电路、电脑(微机)用集成电路、电子琴用集成电路、通信用集成电路、照相机用集成电路、遥控集成电路、语言集成电路、报警器用集成电路及各种专用集成电路。

(1)电视机用集成电路包括行、场扫描集成电路、中放集成电路、伴音集成电路、彩色解码集成电路、AV/TV转换集成电路、开关电源集成电路、遥控集成电路、丽音解码集成电路、画中画处理集成电路、微处理器(CPU )集成电路、存储器集成电路等。

(2)音响用集成电路包括AM/FM高中频电路、立体声解码电路、音频前置放大电路、音频运算放大集成电路、音频功率放大集成电路、环绕声处理集成电路、电平驱动集成电路,电子音量控制集成电路、延时混响集成电路、电子开关集成电路等。

(3)影碟机用集成电路有系统控制集成电路、视频编码集成电路、MPEG 解码集成电路、音频信号处理集成电路、音响效果集成电路、RF 信号处理集成电路、数字信号处理集成电路、伺服集成电路、电动机驱动集成电路等。

(4)录像机用集成电路有系统控制集成电路、伺服集成电路、驱动集成电路、音频处理集成电路、视频处理集成电路。

按应用领域分类

集成电路按应用领域可分为标准通用集成电路和专用集成电路。

按外形分类

集成电路按外形可分为圆形(金属外壳晶体管封装型,一般适合用于大功率)、扁平型(稳定性好,体积小)和双列直插型。

3、简史

1947年:贝尔实验室肖特莱等人发明了晶体管,这是微电子技术发展中第一个里程碑;

第2章 方案论证 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门),为现如今的大规模集成电路发展奠定了坚实基础,具有里程碑意义

1971年:Intel 推出1kb 动态随机存储器(DRAM ),标志着大规模集成电路出现

1971年:全球第一个微处理器4004由Intel 公司推出,采用的是MOS 工艺,这是一个里程碑式的发明

1978年:64kb 动态随机存储器诞生,不足0.5平方厘米的硅片上集成了14万个晶体管,标志着超大规模集成电路(VLSI )时代的来临

1979年:Intel 推出5MHz 8088微处理器,之后,IBM 基于8088推出全球第一台PC

1985年:80386微处理器问世,20MHz

1988年:16M DRAM问世,1平方厘米大小的硅片上集成有3500万个晶体管,标志着进入超大规模集成电路(VLSI )阶段

1989年:1Mb DRAM进入市场

1989年:486微处理器推出,25MHz ,1μm 工艺,后来50MHz 芯片采用 0.8μm 工艺

1992年:64M 位随机存储器问世

电子科技大学成都学院课程设计 1997年:300MHz 奔腾Ⅱ问世,采用0.25μm 工艺

1999年:奔腾Ⅲ问世,450MHz ,采用0.25μm 工艺,后采用0.18μm 工艺 2003年:奔腾4 E系列推出,采用90nm 工艺。

2005年:intel 酷睿2系列上市,采用65nm 工艺。

2007年:基于全新45纳米High-K 工艺的intel 酷睿2 E7/E8/E9上市。

2009年:intel 酷睿i 系列全新推出,创纪录采用了领先的32纳米工艺,并且下一代22纳米工艺正在研发。

我国集成电路发展历史

我国集成电路产业诞生于六十年代,共经历了三个发展阶段:

1965年-1978年:以计算机和军工配套为目标,以开发逻辑电路为主要产 品,初步建立集成电路工业基础及相关设备、仪器、材料的配套条件

1978年-1990年:主要引进美国二手设备,改善集成电路装备水平,在“治散治乱”的同时,以消费类整机作为配套重点,较好地解决了彩电集成电路的国产化

1990年-2000年:以908工程、909工程为重点,以CAD 为突破口,抓好科技攻关和北方科研开发基地的建设,为信息产业服务,集成电路行业取得了新的发展。 集成电路产业是对集成电路产业链各环节市场销售额的总体描述,它不仅仅包含集成电路市场,也包括IP 核市场、EDA 市场、芯片代工市场、封测市场,甚至延伸至设备、材料市场。

集成电路产业不再依赖CPU 、存储器等单一器件发展,移动互联、三网融合、多屏互动、智能终端带来了多重市场空间,商业模式不断创新为市场注入新活力。目前我国集成电路产业已具备一定基础,多年来我国集成电路产业所聚集的技术创新活力、市场拓展能力、资源整合动力以及广阔的市场潜力,为产业在未来5年~10年实现快速发展、迈上新的台阶奠定了基础。

2.3.2 单片机最小系统

在设计的时候我们了解了2款芯片,AT89C51和AT89C52。下面是2款芯片

第2章 方案论证

的简介:

AT89C51:是一种带4K 字节FLASH 存储器(FPEROM —Flash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。AT89C2051是一种带2K 字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL 高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU 和闪烁存储器组合在单个芯片中,ATMEL 的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

主要功能特性:

1) 与MCS-51 兼容;

2) 4K 字节可编程FLASH 存储器;

3) 全静态工作:0Hz-24MHz ;

4) 128×8位内部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指令系统;

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章 硬件设计

3.1 硬件结构

图3-1是以AT89C51单片机为核心的音乐播放器系统硬件设计结构框图。该系统主要是由复位电路、按键电路、时钟电路、中心模块、扬声器驱动等组成。其工作原理为:此音乐播放器,有三个按键及控制按钮:播放/暂停、下一曲、上一曲;通过控制按钮控制单片机,播放所要求的音乐,并通过放大电路和喇叭输出声音。

图3-1 硬件结构图

3.2 中心控制模块

中控采用的是AT89C51芯片,下面是AT89C51的引脚图:

电子科技大学成都学院课程设计

图3-2 AT89C51引脚图

各端口作用:

P0口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL 逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。在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位地址字节。

引脚号第二功能

第3章 硬件设计

● P1.0 T2(定时器/计数器T2的外部计数输入),时钟输出

● P1.1 T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)

● P1.5 MOSI(在系统编程用)

● P1.6 MISO(在系统编程用)

● P1.7 SCK(在系统编程用)

P2口:P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL 逻辑电平。对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL )。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX @DPTR)时,P2口送出高八位地址。在这种应用中,P2口使用很强的内部上拉发送1。在使用8位地址(如MOVX @RI)访问外部数据存储器时,P2口输出P2锁存器的内容。在flash 编程和校验时,P2口也接收高8位地址字节和一些控制信号。

P3口:P3口是一个具有内部上拉电阻的8位双向I/O口,p3输出缓冲器能驱动4个TTL 逻辑电平。对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL )。P3口亦作为AT89C52特殊功能(第二功能)使用,如下表所示。在flash 编程和校验时,P3口也接收一些控制信号。

端口引脚第二功能

● P3.0 RXD(串行输入口)

● P3.1 TXD(串行输出口)

● P3.2 INTO(外中断0)

● P3.3 INT1(外中断1)

● P3.4 TO(定时/计数器0)

● P3.5 T1(定时/计数器1)

● P3.6 WR(外部数据存储器写选通)

● P3.7 RD(外部数据存储器读选通)

电子科技大学成都学院课程设计

此外,P3口还接收一些用于FLASH 闪存编程和程序校验的控制信号。 RST ——复位输入。当振荡器工作时,RST 引脚出现两个机器周期以上高电平将是单片机复位。

ALE/PROG——当访问外部程序存储器或数据存储器时,ALE (地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE 仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE 脉冲。对FLASH 存储器编程期间,该引脚还用于输入编程脉冲(PROG )。如有必要,可通过对特殊功能寄存器(SFR )区中的8EH 单元的D0位置位,可禁止ALE 操作。该位置位后,只有一条MOVX 和MOVC 指令才能将ALE 激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE 禁止位无效。

PSEN ——程序储存允许(PSEN )输出是外部程序存储器的读选通信号,当AT89C52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN 有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN 信号。

EA/VPP——外部访问允许,欲使CPU 仅访问外部程序存储器(地址为0000H-FFFFH ),EA 端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA 端状态。如EA 端为高电平(接Vcc 端),CPU 则执行内部程序存储器的指令。FLASH 存储器编程时,该引脚加上+12V的编程允许电源Vpp ,当然这必须是该器件是使用12V 编程电压Vpp 。

3.3 电源模块 对于一个电子系统来说,电源部分的设计越发重要。对于一个实际的电子系统,要认真的分析它的电源需求。不仅仅是关心输入电压,输出电压和电流,还要考虑到总的功率,电源实现的效率,电源部分对负载变化的瞬态响应能力,关键器件对电源波动的容忍范围以及相应的允许的电源纹波,还有散热问题等等。

本次设计基于AT89C51功率因数测量系统中使用到咯+5V的电源,电源设计的原理图如下。电路中使用到的芯片是7805,7805是稳压芯片,好处是应用比较简单,只需要接上几个电容就可以使用了。

第3章 硬件设计

图3-3 电源电路图

3.4 控制电路

控制电路,键1与P3.2相连、键2与P3.3相连、键3与P3.5相连。当电键按下时接口接低电平,实现对音乐播放器的控制。键1连通实现上一曲更换,键二连通实现下一曲更换,键三连通实现开始暂停操作。

3.5 复位电路

复位电路的基本功能是:系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号。为可靠起见,电源稳定后还要经一定的延时才撤销复位信号,以防电源开关或电源插头分-合过程中引起的抖动而影响复位。

复位电路采用RC 充电电路组成上电复位单片机电路,当系统上电时,在上电初期,电容C 充电,使复位脚持续高电平,当C 充电到达一定程度复位脚电位会慢慢变低,最后被电阻R 完全拉低,高电平复位的时间由充电的时间决定,充电时间又由R 与C 的阻值和容值之积决定。一旦单片机复位脚拉低后就一直都低电平,只有下电后再上电才重新开始复位过程。电路图如下所示:

电子科技大学成都学院课程设计

图3-4 复位电路图

第3章 硬件设计

3.6 电路设计所需要的器件

表3-1 电路设计器件表

电子科技大学成都学院课程设计

第4章 软件设计

4.1 音乐发声设计原理

4.1.1 发声原理

一首乐曲是由多个音符构成的。每个音符都对应着一个确定的频率,乐曲中不同的音符,实质就是不同频率的声音;另外每个音符会根据乐曲的要求设定一个确定的节拍。可以控制单片机产生不同频率不同节拍的脉冲信号,由蜂鸣器发出就产生了美妙和谐的乐曲。

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 (532Hz )。

计数脉冲值与频率的关系公式如下:

N=Fi/2/Fr (4-1)

其中N 表示计数值;Fi 表示内部计时一次为1uS ,故其频率为1MHz ;Fr 表示要产生的频率。

3、其计数值的求法如下:

T=65536-N=65536-Fi/2/Fr (4-2)

计算举例:

第4章 软件设计

设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=65536-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 简谱对应的频率、简谱码和计数初值表

电子科技大学成都学院课程设计 表4-2 节拍码与实际节拍对照表

建立音乐步骤:

(1)先把乐谱的音符找出,然后由上表建立T 值表的顺序。

(2)把T 值表构成一个编码表,构成发音符的计数值放在计数初值编码表里。 (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) 节拍的控制码在表TABLE 中位于音符码的后面。

5) 当一个音符的发音时间到时, 再查下一个音符的定时常数和延时常数。依此进行下去, 就可演奏出悦耳动听的乐曲。

程序流程图如图所示:

第4章 软件设计

图4-1 主程序流程图

如图4-3所示,开始播放自定义音乐程序时,指针指向乐谱第一个字节,将第一字节拆分为高低字节,其高字节即为音符中音高对应定时器定时常数,低字节即为音符中节拍对应的1/4节拍的次数,同时启动中断定时器0工作在方式1, 由定时器定时常数得到相应音高,通过延时子程序设定1/4节拍的时间,由节拍次数得到节拍,再读取下一个乐谱字节,循环下去则演奏出美妙和谐的乐曲。 4.1.3 键控子程序

键控子程序主要由播放/暂停子程序、上一曲子程序、下一曲子程序组成,分别由一个计数器中断和两个外部中断实现。

电子科技大学成都学院课程设计

4.1.4 播放/暂停子程序

播放/暂停在程序利用内部中断T0口。将T0口设为计数中断并工作在方式2下。标识符初值赋值为R1=00H,计数初值设为TH0=0FFH,TL0=0FFH。当按键第一次产生中断信号时,播放/暂停子程序改变标志符R1,将其赋值为01H 。此时播放器由暂停状态进入播放状态。当按键第二次产生中断信号时,播放/暂停子程序判断R1是否为02H 后,将R1再次赋值为00H 。此时,播放器由播放状态进入暂停状态。

4.1.5 曲目选择子程序

图4-2 曲目选择子程序流程图

第4章 软件设计

图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,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,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) }

二、键延时函数 void keydelay(void) {

keydata=1;

第4章 软件设计

uchar i;

for(i=300;i=0;i--)

}

三、延时函数

void delay(unsigned char time)

{

unsigned char t1;

unsigned char t2;

for(t1=0;t1

{

for(t2=0;t2

}

}

四、定时器0中断服务子程序

void time0_int() interrupt 1 using 0

{

TR0=0;

P00=~P00;

TH0=BTH0;

TL0=BTL0;

TR0=1;

}

五、赋T0计数初值,开始计数

void sing()

电子科技大学成都学院课程设计

{

TH0=BTH0;

TLO=BTL0;

TR0=1;

delay(time);

}

第5章 系统调试

第5章 系统调试

5.1 软件调试

结构化软件的调试一般可以将重点放在分模块调试上,通调是最后一环。软件调试可以采取离线调试和在线调试两种方式。前者不需要硬件仿真器, 借助于软件仿真器即可; 后者一般需要仿真系统的支持。在本次设计中利用的是KEIL C51软件仿真器, 其评估版本可以免费获取, 只是有2KB 代码限制。

5.2 KEIL 开发系统

使用Keil 软件建立一个工程: Keil 是目前进行51单片机开发最常用的编译软件。关于Keil 的使用,有很多的资料介绍,这里只介绍其整个编译过程。在Keil 里,每一个完整的程序,都是以一个工程的形式建立的。一个工程里可以有一个或多个*.c文件和*.h文件,但只可以有一个main()函数。一般的做法是将包含main()函数的C 文件加入到工程中,其他文件以#include头文件的形式加到这个C 文件里。这样,在编译的时候,其他的文件会被自动的导入到工程里来。

打开Keil 软件后,出现(图5-1)所示界面。当然,如果Keil 在上次关闭时有打开的工程,再一次打开时它会自动加载上一次的工程文件。

电子科技大学成都学院课程设计

图5-1 Keil 软件主界面

5.3 调试中遇到的问题及解决

1、编程时要注意,在程序开始时,要写入各定时器中断的入口地址。

2、有时会出现程序一点错误也没有,但就是不能正常运行的现象,最后我们发现是因为程序中有的指令书写得不规范导致的,例如有的RET 返回指令一定要按正确格式书写。

3、程序中的跳转指令的运用很重要,为保险起见,都用LJMP, 我们就遇到过跳转指令用错程序无法正常运行的现象。

4、编程过程中要注意加注释或分割线,否则,在程序过长时容易变得很乱,不便于查找或更改。

5、开始时候没有将单片机的第31号引脚接到高电平,结果使MP3播放器的播放性能不稳定(有时候能工作,有时候却工作不了),当接一高电平以后,播放器能正常工作了。

6、开始没有考虑键盘的消抖,造成的按键工作紊乱,具体的现象是:按1次键却被要机器认为是按了1次或多次,这就使播放器有时候可以正常工作,有时

第5章 系统调试

候却不可以。给键盘程序加了消抖呼程序以后,按键就工作正常了。

7、两个定时器同时工作,存在中断时序问题,刚开始时我们把定时器1设定在方式3,计250us ,由于定时中断过于频繁,使CPU 负载过大,导致音乐不能正常播放,时间不能正常显示。解决办法:将定时器1设定在工作方式1,16位计数,计50ms ,效果有很大改观。

5.4 仿真结果

我在keil 软件中建立工程,连接,编译后生成了.hex 文件,在proteus 中在单片机中加载.hex 文件仿真中遇到了以下问题。

蜂鸣器不能正常播放音乐,在protues 仿真中的蜂鸣器老是不能正常响,会断断续续地播放,经过我几天的调试,我发现应该是电平驱动的问题, 是由于三极管的失真造成的。最后终于能播放音乐了。

最终仿真结果如图5-2所示:

图5-2 仿真结果图

电子科技大学成都学院课程设计

5.5 误差分析

1、有时会出现程序一点错误也没有,但就是不能正常运行的现象,最后我们发行是因为程序中有的指令书写得不规范导致的,例如有的返回指令一定要按正确格式书写或在两行指令间最好不要留空行。

2、程序中的跳转指令的运用很重要,为保险起见,都必须要反复检查, 我们就遇到过跳转指令用错程序无法正常运行的现象。当用修改指令时,跳转范围比较少,这时要用一个标号中转。

3、编程时要注意,在程序开始时,要写入各定时器中断的入口地址。

4、编程过程中要注意加注释或分割线,否则,在程序过长时容易变得很乱,不便于查找或更改。

5、程序的结构要设计的合理,避免上下乱调用的现象,这样会使程序更加清晰化。

第6章 结论

第6章 结论

原本对单片机的硬件设计,软件设计掌握的深度不够,但通过此次课程设计,却改变了很多,首先对于硬件电路的工作原理有了进一步的学习,同样就有了进一步的认识;其次软件方面,在程序的设计,程序的调试方面都学到了很多东西,这是第一次编写单片机的大程序,很有成就感。

本设计按键分别是A 、B 、C 、D 四个功能键和1、2、3、4四个数字键,以及复位键和暂停键,中间芯片为核心部件AT89C51,扬声器控制电路由反向器和喇叭组成。

本次设计的音乐播放器最终实现的功能为:

1. 音乐播放器按照从头到尾的顺序自动循环播放预先设定的全部乐曲。

2. 按下C 键,选定某一乐曲,随即输入选定乐曲的序列号(1~4),音乐播

放器对选定的某一乐曲循环播放。

3. 当用户按下暂停键E 时,音乐播放器打断正在播放的某一乐曲,用户再次

按下暂停键时,该乐曲继续播放。

4. 当用户按下复位键F 时。音乐播放器终止正在播放的某一乐曲。

电子科技大学成都学院课程设计

参考文献

[1] 黄振杰. 基于A T89S52的多功能音乐播放器[J].广东:电子设计工程:2009年2月第2期

[2] 吴迅. 用单片机设计音乐播放器[J].山东:电子世界,2009.6

[3] 朱清慧等.Protues 教程—电子线路设计/制版与仿真[M].北京:清华大学出版社,2008.9

[4] 侯玉宝, 李成群. 基于Proteus 的51系列单片机设计与仿真[M].北京:电子工业出版社,2008

[5] 何立民.MCS-51系列单片机应用系统设计[M].北京航空航天大学出版社,1990

[6] 李华. MCS-51系列单片机应用接口技术[M].北京航空航天大学出版,1993

[7] 李广弟, 朱月秀. 单片机基础[M].北京:北京航空航天大学出版社,2007.6

[8] 张义和, 王敏男等. 例说51单片机[M].北京:人民邮电出版社,2008.4

[9] 陈明荧.8051单片机课程设计实训教材[M](第一版). 北京:清华大学出版社,2004

致谢

致谢

经过几个月的忙碌,本次毕业论文设计已经接近尾声。,由于经验的匮乏,难免有许多考虑不到的地方,在多次的修改和研究之后才写出完成。如果没有导师的督促和指导,以及同学和朋友的支持,想要完成这个毕业论文设计是难以想像的。感谢同学和朋友的及时帮助和教导。

在论文的写作过程中,得到了伊学君老师的亲切关怀和耐心的指导。老师严谨的治学态度和科学的工作方法给了我极大的帮助和影响。从课题的选择得到毕业论文设计最终完成,老师都始终给予我细心的指导。在此谨向伊学君老师致以诚挚的谢意和崇高的敬意。同时,也要感谢各位老师,同学和朋友们给我极大的支持,对我的论文提出了宝贵的意见及建议。

感谢所有帮助我的老师、同学和朋友们,在此向他们表达我的感激之情。

电子科技大学成都学院课程设计

附录

附录一:完整的音乐程序

#include

sbit p00=p0^0;

sbit p10=p1^0;

unsigned char BTH0,BTL0;

unsigned char time;

unsigned char keytmp;

code unsigned char table[]={6,2,3, 5,2,1, 3,2,2, 5,2,2, 1,3,2, 6,2,1, 5,2,1, 6,2 4, 3,2,2, 5,2,1, 6,2,1, 5,2,2, 3,2,2, 1,2,1, 6,1,1, 5,2,1, 3,2,1, 2,2,4, 2,2,3, 3,2,1, 5,2,2, 5,2,1, 6,2,1, 3,2,2, 2,2,2, 1,2,4, 5,2,3, 3,2,1, 2,2,1, 1,2,1, 6,1,1, 1,2,1, 5,1,6, 0,0,0};

Code unsigned char TH0[]={0xF2,0xF3,0xF5,0xF5,0xF6,0xF7,0xF8,0xF9,0xF9, 0xFA,0xFA,0xFB,0xFB,0xFC,0xFC,0xFC,0xFD,0xFD,0xFD,0xFD,0xFE,0xFE,0xFE ,

0xFE,0xFE,0xFE,0xFE,0xFF,};

code unsigned char TL0[]={0x42,0xC1,0x17,0xB6,0xD0,0xD1,0xB6,0x21,0xE1, 0x8C,0xD8,0x68,0xE9,0x5B,0x8F,0xEE,0x44,0x6B,0xB4,0xF4,0x2D,0x47,0x77, 0xA2,0xB6,0xDA,0xFA,0x16,};

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(i=300;i=0;i--)

{

}

}

void delay(unsigned char time)

{

unsigned char t1;

unsigned char t2;

for(t1=0;t1

{

for(t2=0;t2

{

}

}

}

void time0_int() interrupt 1 using 0

{

电子科技大学成都学院课程设计

TR0=0;

P00=~P00;

TH0=BTH0;

TL0=BTL0;

TR0=1;

}

void sing()

{

TH0=BTH0;

TLO=BTL0;

TR0=1;

delay(time);

}

void main(void)

{

unsigned char k,i;

i=0;

TMOD=0x01;

EA=1;

ET0=1;

IE=0x82;

while(1)

{

void scankey();

附录

if(keydata==0) { } else if(keydata= =1) { }keydelay(); time=1; while(time) { } if(table[i]= =0) { } else if(table[i]!=0) { } k=table[i]+7*table[i+1]-1; BTH0=TH0[K]; BTL0=TL0[K]; time=table[i+2]; i=i+3; sing(); i=0;

电子科技大学成都学院课程设计

附录二:原理图

附录

附录三:仿真图

电子科技大学成都学院课程设计

附录四:PCB 图

摘要

摘 要

本次课程设计是基于AT89C51单片机设计一个音乐播放器。通过单片机音乐播放器系统设计和研究,对于切实掌握单片机相关知识具有重要的理论和实际意义。

这次课程设计的音乐播放器是软件和硬件的结合,乐曲中不同的音符,实质就是不同频率的声音。通过单片机产生不同的频率的脉冲信号,经过放大电路,由蜂鸣器放出,就产生了美妙和谐的乐曲。根据各音阶频率算出定时器定时常数,根据节拍给出该音阶持续的时间,最终实现播放简单歌曲的功能。例如“世上只有妈妈好”。

关键字:单片机,音乐播放器,音节频率

ABSTRACT

ABSTRACT

This course is designed based on single chip microcomputer 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,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 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章 引言 . ................................................................................................................ 1

1.1 选题背景 ................................................................................................................... 1

1.2 设计原理 ................................................................................................................... 1

1.3 单片机简介 ............................................................................................................... 2

1.4 单片机的发展历史 ................................................................................................... 2

1.5 单片机的应用领域及发展趋势 ............................................................................... 2

第2章 方案论证 . ........................................................................................................ 5

2.1 设计要求 ................................................................................................................... 5

2.2 系统描述 ................................................................................................................... 5

2.3 设计方案 ................................................................................................................... 6

2.3.1 集成电路 ................................................................................................................ 6

2.3.2 单片机最小系统 .................................................................................................. 10

2.3.3 结论 ...................................................................................................................... 12

第3章 硬件设计 . ...................................................................................................... 13

3.1 硬件结构 ................................................................................................................. 13

3.2 中心控制模块 ......................................................................................................... 13

3.3 电源模块 ................................................................................................................. 16

3.4 控制电路 ................................................................................................................. 17

3.5 复位电路 ................................................................................................................. 17

3.6 电路设计所需要的器件 ......................................................................................... 19

第4章 软件设计 . ...................................................................................................... 20

4.1 音乐发声设计原理 ................................................................................................. 20

4.1.1 发声原理 .............................................................................................................. 20

4.1.2 单片机产生不同频率脉冲信号的原理 .............................................................. 20

4.1.3 键控子程序 .......................................................................................................... 23

4.1.4 播放/暂停子程序 ................................................................................................. 24

4.1.5 曲目选择子程序 .................................................................................................. 24

4.2 音乐播放程序设计 ................................................................................................. 25

第5章 系统调试 . ...................................................................................................... 29

5.1 软件调试 ................................................................................................................. 29

5.2 KEIL开发系统 ....................................................................................................... 29

5.3 调试中遇到的问题及解决 ..................................................................................... 30

5.4 仿真结果 ................................................................................................................. 31

5.5 误差分析 ................................................................................................................. 32

第6章 结论 . .............................................................................................................. 33

参考文献 ........................................................................................................................ 34

致谢 ................................................................................................................................ 35

附录 ................................................................................................................................ 36

附录一:完整的音乐程序 ............................................................................................ 36

附录二:原理图 ............................................................................................................ 40

附录三:仿真图 ............................................................................................................ 41

附录四:PCB 图 . ........................................................................................................... 42

第1章 引言

第1章 引言

1.1 选题背景

单片微型计算机简称单片机,是典型的嵌入式微控制器(Microcontroller Unit),常用英文字母的缩写MCU 表示单片机,它最早是被用在工业控制领域。单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。单片机由运算器,控制器,存储器,输入输出设备构成,相当于一个微型的计算机(最小系统),和计算机相比,单片机缺少了外围设备等。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。。

INTEL 的8080是最早按照这种思想设计出的处理器,当时的单片机都是8位或4位的。其中最成功的是INTEL 的8051,此后在8051上发展出了MCS51系列单片机系统。因为简单可靠而性能不错获得了很大的好评。尽管2000年以后ARM 已经发展出了32位的主频超过300M 的高端单片机,直到现在基于8051的单片机还在广泛的使用。现代人类生活中所用的几乎每件有电子器件的产品中都会集成有单片机。手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电子产品中都含有单片机。 汽车上一般配备40多片单片机,复杂的工业控制系统上甚至可能有数百片单片机在同时工作!

利用单片机实现音乐播放有很多优点,例如外部电路简单,控制方便等,因而备受广大单片机爱好者的喜爱。通过音乐发生器的设计方案,掌握C 语言的编程方法。并熟练的运用89C51单片机定时器产生固定频率的方波信号,驱动喇叭发出旋律,按下按键可以演奏预先设置的歌曲旋律,最重要的是自己还可以通过程序设计输入自己喜欢的歌曲来演奏。

1.2 设计原理

乐曲中不同的音符,实质就是不同频率的声音。通过单片机产生不同的频率的脉冲信号,经过放大电路,由蜂鸣器放出,就产生了美妙和谐的乐曲。

电子科技大学成都学院课程设计

1.3 单片机简介

单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU 随机存储器RAM 、只读存储器ROM 、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域的广泛应用。从上世纪80年代,由当时的4位、8位单片机,发展到现在的32位300M 的高速单片机。它的最大优点是体积小,可放在仪表内部,但储存量小,输入输出接口简单,功能较低。由于其发展的非常迅速,旧的单片机的定义已经不能满足,所以在很多应用场合被称为范围更广的微控制器。由于单晶片微电脑常用于当控制器故又名single chip microcontroller。

1.4 单片机的发展历史

单片机诞生于1971年,经历了SCM 、MCU 、SoC 三大阶段,早期的SCM 单片机都是8位或4位的。其中最成功的是INTEL 的8031,此后在8031上发展出了MCS51系列MCU 系统。基于这一系统的单片机系统直到现在还在广泛使用。随着工业控制领域要求的提高,开始出现了16位单片机,但因为性价比不理想并未得到很广泛的应用。90年代后随着消费电子产品大发展,单片机技术得到了巨大提高。随着INTEL i960系列特别是后来的ARM 系列的广泛应用,32位单片机迅速取代16位单片机的高端地位,并且进入主流市场。

而传统的8位单片机的性能也得到了飞速提高,处理能力比起80年代提高了数百倍。高端的32位Soc 单片机主频已经超过300MHz ,性能直追90年代中期的专用处理器,而普通的型号出厂价格跌落至1美元,最高端的型号也只有10美元。

当代单片机系统已经不再只在裸机环境下开发和使用,大量专用的嵌入式操作系统被广泛应用在全系列的单片机上。而在作为掌上电脑和手机核心处理的高端单片机甚至可以直接使用专用的Windows 和Linux 操作系统。

1.5 单片机的应用领域及发展趋势

单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的

第1章 引言

智能化管理及过程控制等领域,大致可分为如下几个范畴:

一、在智能仪器仪表的应用

单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器仪表中,结合不同类型的传感器,可实现诸如电压、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量。采用单片机控制使得仪器仪表数字化、智能化、微型化,且功能比起采用电子或数字电路更加强大。例如精密的测量设备(功率计、示波器、各种分析仪)。

二、在家用电器中的应用

可以这样说,现在的家用电器基本上都采用了单片机控制,从洗衣机、电冰箱、空调机、其他音响视频器材、再到电子秤量设备,五花八门,无所不在。

三、在工业控制中的应用

用单片机可以构成形式多样的控制系统、数据采集系统。例如工厂流水线的智能化管理,电梯智能化控制、各种报警系统,与计算机联网构成二级控制系统等。

四、在计算机网络和通信领域中的应用

现代的单片机普遍具备通信接口,可以很方便地与计算机进行数据通信,为在计算机网络和通信设备间的应用提供了极好的物质条件,现在的通信设备基本上都实现了单片机智能控制,从手机,电话机、小型程控交换机、楼宇自动通信呼叫系统、列车无线通信、再到日常工作中随处可见的移动电话,集群移动通信,无线电对讲机等。

单片机的发展趋势现在可以说是百花齐放,百家争鸣的时期,世界上各大芯片制造公司都推出了自己的单片机,从8位、16位到32位,数不胜数,应有尽有,有与主流C51系列兼容的,也有不兼容的,但它们各具特色,互成互补,为单片机的应用提供了广阔的天地。

纵观单片机的发展过程,可以预示单片机的发展趋势,大致有:

一、微型单片化

现在常规的单片机普遍都是将中央处理器(CPU )、随机存取数据存储(RAM )、

电子科技大学成都学院课程设计

只读程序存储器(ROM )、并行和串行通信接口,中断系统、定时电路、时钟电路集成在一块单一的芯片上,增强型的单片机集成了如A/D转换器、PMW (脉宽调制电路)、WDT (看门狗)、有些单片机将LCD (液晶)驱动电路都集成在单一的芯片上,这样单片机包含的单元电路就更多,功能就越强大。

此外,现在的产品普遍要求体积小、重量轻,这就要求单片机除了功能强和功耗低外,还要求其体积要小。现在的许多单片机都具有多种封装形式,其中SMD (表面封装)越来越受欢迎,使得由单片机构成的系统正朝微型化方向发展。

二、低功耗CMOS 化

MCS-51系列的8031推出时的功耗达630mW ,而现在的单片机普遍都100mW 左右,随着对单片机功耗要求越来越低,现在的各个单片机制造商基本都采用了CMOS (互补金属氧化物半导体工艺)。像80C51就采用了HMOS (即高密度金属氧化物半导体工艺)和CHMOS (互补高密度金属氧化物半导体工艺)。CMOS 虽然功耗低,但由于其物理特征决定其工作速度不够高,而CHMOS 则具备了高速和低功耗的特点,这些特征,更适合于要求低功耗像电池供电的应用场合。所以这种工艺将是今后一段时期单片机发展的主要途径。

第2章 方案论证

第2章 方案论证

2.1 设计要求

具体的设计要求应该满足以下功能:

硬件方面:

1、可以通过按键进行曲目的选着;

2、可以通过按键进行曲目的播放和停止;

3、可以控制声音的音节和长短;

4、音频数据信息记录需要大量的非易失性数据存储器实时快速地记录数据。因此需要具有掉电保护功能的大容量存储器。

软件方面:

1、系统中外的各器件的初始化工作均在主程序中完成,其次,要设计如何调用显示子程序以及乐曲播放程序。

2、在实际的控制过程中,常要求有实时时钟,以实现定时或延时控制所以需要此类中断服务程序。

2.2 系统描述

本课题主要任务是利用单片机等部件设计一个多功能音乐盒,实现音乐的播放,以及通过按键的控制实现上叙述的功能。

本文分析基于AT89C51单片机的音乐播放器的硬件电路和软件设计,具体过程包括数据处理子程序的设计,显示子程序的设计,最后针对仿真过程中遇到的现象进行咯说明和分析。

电子科技大学成都学院课程设计

2.3 设计方案

2.3.1 集成电路

集成电路(integrated circuit)如图2-1是一种微型电子器件或部件。采用一定的工艺,把一个电路中所需的晶体管、二极管、电阻、电容和电感等元件及布线互连一起,制作在一小块或几小块半导体晶片或介质基片上,然后封装在一个管壳内,成为具有所需电路功能的微型结构;其中所有元件在结构上已组成一个整体,使电子元件向着微小型化、低功耗和高可靠性方面迈进了一大步。它在电路中用字母“IC”表示。集成电路发明者为杰克·基尔比(基于硅的集成电路)和罗伯特·诺伊思(基于锗的集成电路)。当今半导体工业大多数应用的是基于硅的集成电路。

图2-1 集成电路

1、特点

集成电路或称微电路(microcircuit )、微芯片(microchip )、芯片(chip )在电子学中是一种把电路(主要包括半导体装置,也包括被动元件等)小型化的方式,并通常制造在半导体晶圆表面上。

前述将电路制造在半导体芯片表面上的集成电路又称薄膜(thin-film )集成电路。另有一种厚膜(thick-film )混成集成电路(hybrid integrated circuit)是由独立半导体设备和被动元件,集成到衬底或线路板所构成的小型化电路。 集成电路具有体积小,重量轻,引出线和焊接点少,寿命长,可靠性高,性能好等优点,同时成本低,便于大规模生产。它不仅在工、民用电子设备如收录机、电视机、计算机等方面得到广泛的应用,同时在军事、通讯、遥控等方面也得到广泛的应用。用集成电路来装配电子设备,其装配密度比晶体管可提高几十

第2章 方案论证 倍至几千倍,设备的稳定工作时间也可大大提高。

2、分类

按功能结构分类

集成电路,又称为IC ,按其功能、结构的不同,可以分为模拟集成电路、数字集成电路和数/模混合集成电路三大类。

模拟集成电路又称线性电路, 用来产生、放大和处理各种模拟信号(指幅度随时间变化的信号。例如半导体收音机的音频信号、录放机的磁带信号等),其输入信号和输出信号成比例关系。而数字集成电路用来产生、放大和处理各种数字信号(指在时间上和幅度上离散取值的信号。例如3G 手机、数码相机、电脑CPU 、数字电视的逻辑控制和重放的音频信号和视频信号)。

按制作工艺分类

集成电路按制作工艺可分为半导体集成电路和膜集成电路。

膜集成电路又分类厚膜集成电路和薄膜集成电路。

按集成度高低分类

集成电路按集成度高低的不同可分为:

SSI 小规模集成电路(Small Scale Integrated circuits)

MSI 中规模集成电路(Medium Scale Integrated circuits)

LSI 大规模集成电路(Large Scale Integrated circuits)

VLSI 超大规模集成电路(Very Large Scale Integrated circuits)

ULSI 特大规模集成电路(Ultra Large Scale Integrated circuits)

GSI 巨大规模集成电路也被称作极大规模集成电路或超特大规模集成电路(Giga Scale Integration)。

按导电类型不同分类 集成电路按导电类型可分为双极型集成电路和单极型集成电路,他们都是数字集成电路。

双极型集成电路的制作工艺复杂,功耗较大,代表集成电路有TTL 、ECL 、

电子科技大学成都学院课程设计 HTL 、LST-TL 、STTL 等类型。单极型集成电路的制作工艺简单,功耗也较低,易于制成大规模集成电路,代表集成电路有CMOS 、NMOS 、PMOS 等类型。

按用途分类 集成电路按用途可分为电视机用集成电路、音响用集成电路、影碟机用集成电路、录像机用集成电路、电脑(微机)用集成电路、电子琴用集成电路、通信用集成电路、照相机用集成电路、遥控集成电路、语言集成电路、报警器用集成电路及各种专用集成电路。

(1)电视机用集成电路包括行、场扫描集成电路、中放集成电路、伴音集成电路、彩色解码集成电路、AV/TV转换集成电路、开关电源集成电路、遥控集成电路、丽音解码集成电路、画中画处理集成电路、微处理器(CPU )集成电路、存储器集成电路等。

(2)音响用集成电路包括AM/FM高中频电路、立体声解码电路、音频前置放大电路、音频运算放大集成电路、音频功率放大集成电路、环绕声处理集成电路、电平驱动集成电路,电子音量控制集成电路、延时混响集成电路、电子开关集成电路等。

(3)影碟机用集成电路有系统控制集成电路、视频编码集成电路、MPEG 解码集成电路、音频信号处理集成电路、音响效果集成电路、RF 信号处理集成电路、数字信号处理集成电路、伺服集成电路、电动机驱动集成电路等。

(4)录像机用集成电路有系统控制集成电路、伺服集成电路、驱动集成电路、音频处理集成电路、视频处理集成电路。

按应用领域分类

集成电路按应用领域可分为标准通用集成电路和专用集成电路。

按外形分类

集成电路按外形可分为圆形(金属外壳晶体管封装型,一般适合用于大功率)、扁平型(稳定性好,体积小)和双列直插型。

3、简史

1947年:贝尔实验室肖特莱等人发明了晶体管,这是微电子技术发展中第一个里程碑;

第2章 方案论证 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门),为现如今的大规模集成电路发展奠定了坚实基础,具有里程碑意义

1971年:Intel 推出1kb 动态随机存储器(DRAM ),标志着大规模集成电路出现

1971年:全球第一个微处理器4004由Intel 公司推出,采用的是MOS 工艺,这是一个里程碑式的发明

1978年:64kb 动态随机存储器诞生,不足0.5平方厘米的硅片上集成了14万个晶体管,标志着超大规模集成电路(VLSI )时代的来临

1979年:Intel 推出5MHz 8088微处理器,之后,IBM 基于8088推出全球第一台PC

1985年:80386微处理器问世,20MHz

1988年:16M DRAM问世,1平方厘米大小的硅片上集成有3500万个晶体管,标志着进入超大规模集成电路(VLSI )阶段

1989年:1Mb DRAM进入市场

1989年:486微处理器推出,25MHz ,1μm 工艺,后来50MHz 芯片采用 0.8μm 工艺

1992年:64M 位随机存储器问世

电子科技大学成都学院课程设计 1997年:300MHz 奔腾Ⅱ问世,采用0.25μm 工艺

1999年:奔腾Ⅲ问世,450MHz ,采用0.25μm 工艺,后采用0.18μm 工艺 2003年:奔腾4 E系列推出,采用90nm 工艺。

2005年:intel 酷睿2系列上市,采用65nm 工艺。

2007年:基于全新45纳米High-K 工艺的intel 酷睿2 E7/E8/E9上市。

2009年:intel 酷睿i 系列全新推出,创纪录采用了领先的32纳米工艺,并且下一代22纳米工艺正在研发。

我国集成电路发展历史

我国集成电路产业诞生于六十年代,共经历了三个发展阶段:

1965年-1978年:以计算机和军工配套为目标,以开发逻辑电路为主要产 品,初步建立集成电路工业基础及相关设备、仪器、材料的配套条件

1978年-1990年:主要引进美国二手设备,改善集成电路装备水平,在“治散治乱”的同时,以消费类整机作为配套重点,较好地解决了彩电集成电路的国产化

1990年-2000年:以908工程、909工程为重点,以CAD 为突破口,抓好科技攻关和北方科研开发基地的建设,为信息产业服务,集成电路行业取得了新的发展。 集成电路产业是对集成电路产业链各环节市场销售额的总体描述,它不仅仅包含集成电路市场,也包括IP 核市场、EDA 市场、芯片代工市场、封测市场,甚至延伸至设备、材料市场。

集成电路产业不再依赖CPU 、存储器等单一器件发展,移动互联、三网融合、多屏互动、智能终端带来了多重市场空间,商业模式不断创新为市场注入新活力。目前我国集成电路产业已具备一定基础,多年来我国集成电路产业所聚集的技术创新活力、市场拓展能力、资源整合动力以及广阔的市场潜力,为产业在未来5年~10年实现快速发展、迈上新的台阶奠定了基础。

2.3.2 单片机最小系统

在设计的时候我们了解了2款芯片,AT89C51和AT89C52。下面是2款芯片

第2章 方案论证

的简介:

AT89C51:是一种带4K 字节FLASH 存储器(FPEROM —Flash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。AT89C2051是一种带2K 字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL 高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU 和闪烁存储器组合在单个芯片中,ATMEL 的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

主要功能特性:

1) 与MCS-51 兼容;

2) 4K 字节可编程FLASH 存储器;

3) 全静态工作:0Hz-24MHz ;

4) 128×8位内部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指令系统;

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章 硬件设计

3.1 硬件结构

图3-1是以AT89C51单片机为核心的音乐播放器系统硬件设计结构框图。该系统主要是由复位电路、按键电路、时钟电路、中心模块、扬声器驱动等组成。其工作原理为:此音乐播放器,有三个按键及控制按钮:播放/暂停、下一曲、上一曲;通过控制按钮控制单片机,播放所要求的音乐,并通过放大电路和喇叭输出声音。

图3-1 硬件结构图

3.2 中心控制模块

中控采用的是AT89C51芯片,下面是AT89C51的引脚图:

电子科技大学成都学院课程设计

图3-2 AT89C51引脚图

各端口作用:

P0口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL 逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。在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位地址字节。

引脚号第二功能

第3章 硬件设计

● P1.0 T2(定时器/计数器T2的外部计数输入),时钟输出

● P1.1 T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)

● P1.5 MOSI(在系统编程用)

● P1.6 MISO(在系统编程用)

● P1.7 SCK(在系统编程用)

P2口:P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL 逻辑电平。对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL )。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX @DPTR)时,P2口送出高八位地址。在这种应用中,P2口使用很强的内部上拉发送1。在使用8位地址(如MOVX @RI)访问外部数据存储器时,P2口输出P2锁存器的内容。在flash 编程和校验时,P2口也接收高8位地址字节和一些控制信号。

P3口:P3口是一个具有内部上拉电阻的8位双向I/O口,p3输出缓冲器能驱动4个TTL 逻辑电平。对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL )。P3口亦作为AT89C52特殊功能(第二功能)使用,如下表所示。在flash 编程和校验时,P3口也接收一些控制信号。

端口引脚第二功能

● P3.0 RXD(串行输入口)

● P3.1 TXD(串行输出口)

● P3.2 INTO(外中断0)

● P3.3 INT1(外中断1)

● P3.4 TO(定时/计数器0)

● P3.5 T1(定时/计数器1)

● P3.6 WR(外部数据存储器写选通)

● P3.7 RD(外部数据存储器读选通)

电子科技大学成都学院课程设计

此外,P3口还接收一些用于FLASH 闪存编程和程序校验的控制信号。 RST ——复位输入。当振荡器工作时,RST 引脚出现两个机器周期以上高电平将是单片机复位。

ALE/PROG——当访问外部程序存储器或数据存储器时,ALE (地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE 仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE 脉冲。对FLASH 存储器编程期间,该引脚还用于输入编程脉冲(PROG )。如有必要,可通过对特殊功能寄存器(SFR )区中的8EH 单元的D0位置位,可禁止ALE 操作。该位置位后,只有一条MOVX 和MOVC 指令才能将ALE 激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE 禁止位无效。

PSEN ——程序储存允许(PSEN )输出是外部程序存储器的读选通信号,当AT89C52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN 有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN 信号。

EA/VPP——外部访问允许,欲使CPU 仅访问外部程序存储器(地址为0000H-FFFFH ),EA 端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA 端状态。如EA 端为高电平(接Vcc 端),CPU 则执行内部程序存储器的指令。FLASH 存储器编程时,该引脚加上+12V的编程允许电源Vpp ,当然这必须是该器件是使用12V 编程电压Vpp 。

3.3 电源模块 对于一个电子系统来说,电源部分的设计越发重要。对于一个实际的电子系统,要认真的分析它的电源需求。不仅仅是关心输入电压,输出电压和电流,还要考虑到总的功率,电源实现的效率,电源部分对负载变化的瞬态响应能力,关键器件对电源波动的容忍范围以及相应的允许的电源纹波,还有散热问题等等。

本次设计基于AT89C51功率因数测量系统中使用到咯+5V的电源,电源设计的原理图如下。电路中使用到的芯片是7805,7805是稳压芯片,好处是应用比较简单,只需要接上几个电容就可以使用了。

第3章 硬件设计

图3-3 电源电路图

3.4 控制电路

控制电路,键1与P3.2相连、键2与P3.3相连、键3与P3.5相连。当电键按下时接口接低电平,实现对音乐播放器的控制。键1连通实现上一曲更换,键二连通实现下一曲更换,键三连通实现开始暂停操作。

3.5 复位电路

复位电路的基本功能是:系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号。为可靠起见,电源稳定后还要经一定的延时才撤销复位信号,以防电源开关或电源插头分-合过程中引起的抖动而影响复位。

复位电路采用RC 充电电路组成上电复位单片机电路,当系统上电时,在上电初期,电容C 充电,使复位脚持续高电平,当C 充电到达一定程度复位脚电位会慢慢变低,最后被电阻R 完全拉低,高电平复位的时间由充电的时间决定,充电时间又由R 与C 的阻值和容值之积决定。一旦单片机复位脚拉低后就一直都低电平,只有下电后再上电才重新开始复位过程。电路图如下所示:

电子科技大学成都学院课程设计

图3-4 复位电路图

第3章 硬件设计

3.6 电路设计所需要的器件

表3-1 电路设计器件表

电子科技大学成都学院课程设计

第4章 软件设计

4.1 音乐发声设计原理

4.1.1 发声原理

一首乐曲是由多个音符构成的。每个音符都对应着一个确定的频率,乐曲中不同的音符,实质就是不同频率的声音;另外每个音符会根据乐曲的要求设定一个确定的节拍。可以控制单片机产生不同频率不同节拍的脉冲信号,由蜂鸣器发出就产生了美妙和谐的乐曲。

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 (532Hz )。

计数脉冲值与频率的关系公式如下:

N=Fi/2/Fr (4-1)

其中N 表示计数值;Fi 表示内部计时一次为1uS ,故其频率为1MHz ;Fr 表示要产生的频率。

3、其计数值的求法如下:

T=65536-N=65536-Fi/2/Fr (4-2)

计算举例:

第4章 软件设计

设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=65536-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 简谱对应的频率、简谱码和计数初值表

电子科技大学成都学院课程设计 表4-2 节拍码与实际节拍对照表

建立音乐步骤:

(1)先把乐谱的音符找出,然后由上表建立T 值表的顺序。

(2)把T 值表构成一个编码表,构成发音符的计数值放在计数初值编码表里。 (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) 节拍的控制码在表TABLE 中位于音符码的后面。

5) 当一个音符的发音时间到时, 再查下一个音符的定时常数和延时常数。依此进行下去, 就可演奏出悦耳动听的乐曲。

程序流程图如图所示:

第4章 软件设计

图4-1 主程序流程图

如图4-3所示,开始播放自定义音乐程序时,指针指向乐谱第一个字节,将第一字节拆分为高低字节,其高字节即为音符中音高对应定时器定时常数,低字节即为音符中节拍对应的1/4节拍的次数,同时启动中断定时器0工作在方式1, 由定时器定时常数得到相应音高,通过延时子程序设定1/4节拍的时间,由节拍次数得到节拍,再读取下一个乐谱字节,循环下去则演奏出美妙和谐的乐曲。 4.1.3 键控子程序

键控子程序主要由播放/暂停子程序、上一曲子程序、下一曲子程序组成,分别由一个计数器中断和两个外部中断实现。

电子科技大学成都学院课程设计

4.1.4 播放/暂停子程序

播放/暂停在程序利用内部中断T0口。将T0口设为计数中断并工作在方式2下。标识符初值赋值为R1=00H,计数初值设为TH0=0FFH,TL0=0FFH。当按键第一次产生中断信号时,播放/暂停子程序改变标志符R1,将其赋值为01H 。此时播放器由暂停状态进入播放状态。当按键第二次产生中断信号时,播放/暂停子程序判断R1是否为02H 后,将R1再次赋值为00H 。此时,播放器由播放状态进入暂停状态。

4.1.5 曲目选择子程序

图4-2 曲目选择子程序流程图

第4章 软件设计

图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,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,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) }

二、键延时函数 void keydelay(void) {

keydata=1;

第4章 软件设计

uchar i;

for(i=300;i=0;i--)

}

三、延时函数

void delay(unsigned char time)

{

unsigned char t1;

unsigned char t2;

for(t1=0;t1

{

for(t2=0;t2

}

}

四、定时器0中断服务子程序

void time0_int() interrupt 1 using 0

{

TR0=0;

P00=~P00;

TH0=BTH0;

TL0=BTL0;

TR0=1;

}

五、赋T0计数初值,开始计数

void sing()

电子科技大学成都学院课程设计

{

TH0=BTH0;

TLO=BTL0;

TR0=1;

delay(time);

}

第5章 系统调试

第5章 系统调试

5.1 软件调试

结构化软件的调试一般可以将重点放在分模块调试上,通调是最后一环。软件调试可以采取离线调试和在线调试两种方式。前者不需要硬件仿真器, 借助于软件仿真器即可; 后者一般需要仿真系统的支持。在本次设计中利用的是KEIL C51软件仿真器, 其评估版本可以免费获取, 只是有2KB 代码限制。

5.2 KEIL 开发系统

使用Keil 软件建立一个工程: Keil 是目前进行51单片机开发最常用的编译软件。关于Keil 的使用,有很多的资料介绍,这里只介绍其整个编译过程。在Keil 里,每一个完整的程序,都是以一个工程的形式建立的。一个工程里可以有一个或多个*.c文件和*.h文件,但只可以有一个main()函数。一般的做法是将包含main()函数的C 文件加入到工程中,其他文件以#include头文件的形式加到这个C 文件里。这样,在编译的时候,其他的文件会被自动的导入到工程里来。

打开Keil 软件后,出现(图5-1)所示界面。当然,如果Keil 在上次关闭时有打开的工程,再一次打开时它会自动加载上一次的工程文件。

电子科技大学成都学院课程设计

图5-1 Keil 软件主界面

5.3 调试中遇到的问题及解决

1、编程时要注意,在程序开始时,要写入各定时器中断的入口地址。

2、有时会出现程序一点错误也没有,但就是不能正常运行的现象,最后我们发现是因为程序中有的指令书写得不规范导致的,例如有的RET 返回指令一定要按正确格式书写。

3、程序中的跳转指令的运用很重要,为保险起见,都用LJMP, 我们就遇到过跳转指令用错程序无法正常运行的现象。

4、编程过程中要注意加注释或分割线,否则,在程序过长时容易变得很乱,不便于查找或更改。

5、开始时候没有将单片机的第31号引脚接到高电平,结果使MP3播放器的播放性能不稳定(有时候能工作,有时候却工作不了),当接一高电平以后,播放器能正常工作了。

6、开始没有考虑键盘的消抖,造成的按键工作紊乱,具体的现象是:按1次键却被要机器认为是按了1次或多次,这就使播放器有时候可以正常工作,有时

第5章 系统调试

候却不可以。给键盘程序加了消抖呼程序以后,按键就工作正常了。

7、两个定时器同时工作,存在中断时序问题,刚开始时我们把定时器1设定在方式3,计250us ,由于定时中断过于频繁,使CPU 负载过大,导致音乐不能正常播放,时间不能正常显示。解决办法:将定时器1设定在工作方式1,16位计数,计50ms ,效果有很大改观。

5.4 仿真结果

我在keil 软件中建立工程,连接,编译后生成了.hex 文件,在proteus 中在单片机中加载.hex 文件仿真中遇到了以下问题。

蜂鸣器不能正常播放音乐,在protues 仿真中的蜂鸣器老是不能正常响,会断断续续地播放,经过我几天的调试,我发现应该是电平驱动的问题, 是由于三极管的失真造成的。最后终于能播放音乐了。

最终仿真结果如图5-2所示:

图5-2 仿真结果图

电子科技大学成都学院课程设计

5.5 误差分析

1、有时会出现程序一点错误也没有,但就是不能正常运行的现象,最后我们发行是因为程序中有的指令书写得不规范导致的,例如有的返回指令一定要按正确格式书写或在两行指令间最好不要留空行。

2、程序中的跳转指令的运用很重要,为保险起见,都必须要反复检查, 我们就遇到过跳转指令用错程序无法正常运行的现象。当用修改指令时,跳转范围比较少,这时要用一个标号中转。

3、编程时要注意,在程序开始时,要写入各定时器中断的入口地址。

4、编程过程中要注意加注释或分割线,否则,在程序过长时容易变得很乱,不便于查找或更改。

5、程序的结构要设计的合理,避免上下乱调用的现象,这样会使程序更加清晰化。

第6章 结论

第6章 结论

原本对单片机的硬件设计,软件设计掌握的深度不够,但通过此次课程设计,却改变了很多,首先对于硬件电路的工作原理有了进一步的学习,同样就有了进一步的认识;其次软件方面,在程序的设计,程序的调试方面都学到了很多东西,这是第一次编写单片机的大程序,很有成就感。

本设计按键分别是A 、B 、C 、D 四个功能键和1、2、3、4四个数字键,以及复位键和暂停键,中间芯片为核心部件AT89C51,扬声器控制电路由反向器和喇叭组成。

本次设计的音乐播放器最终实现的功能为:

1. 音乐播放器按照从头到尾的顺序自动循环播放预先设定的全部乐曲。

2. 按下C 键,选定某一乐曲,随即输入选定乐曲的序列号(1~4),音乐播

放器对选定的某一乐曲循环播放。

3. 当用户按下暂停键E 时,音乐播放器打断正在播放的某一乐曲,用户再次

按下暂停键时,该乐曲继续播放。

4. 当用户按下复位键F 时。音乐播放器终止正在播放的某一乐曲。

电子科技大学成都学院课程设计

参考文献

[1] 黄振杰. 基于A T89S52的多功能音乐播放器[J].广东:电子设计工程:2009年2月第2期

[2] 吴迅. 用单片机设计音乐播放器[J].山东:电子世界,2009.6

[3] 朱清慧等.Protues 教程—电子线路设计/制版与仿真[M].北京:清华大学出版社,2008.9

[4] 侯玉宝, 李成群. 基于Proteus 的51系列单片机设计与仿真[M].北京:电子工业出版社,2008

[5] 何立民.MCS-51系列单片机应用系统设计[M].北京航空航天大学出版社,1990

[6] 李华. MCS-51系列单片机应用接口技术[M].北京航空航天大学出版,1993

[7] 李广弟, 朱月秀. 单片机基础[M].北京:北京航空航天大学出版社,2007.6

[8] 张义和, 王敏男等. 例说51单片机[M].北京:人民邮电出版社,2008.4

[9] 陈明荧.8051单片机课程设计实训教材[M](第一版). 北京:清华大学出版社,2004

致谢

致谢

经过几个月的忙碌,本次毕业论文设计已经接近尾声。,由于经验的匮乏,难免有许多考虑不到的地方,在多次的修改和研究之后才写出完成。如果没有导师的督促和指导,以及同学和朋友的支持,想要完成这个毕业论文设计是难以想像的。感谢同学和朋友的及时帮助和教导。

在论文的写作过程中,得到了伊学君老师的亲切关怀和耐心的指导。老师严谨的治学态度和科学的工作方法给了我极大的帮助和影响。从课题的选择得到毕业论文设计最终完成,老师都始终给予我细心的指导。在此谨向伊学君老师致以诚挚的谢意和崇高的敬意。同时,也要感谢各位老师,同学和朋友们给我极大的支持,对我的论文提出了宝贵的意见及建议。

感谢所有帮助我的老师、同学和朋友们,在此向他们表达我的感激之情。

电子科技大学成都学院课程设计

附录

附录一:完整的音乐程序

#include

sbit p00=p0^0;

sbit p10=p1^0;

unsigned char BTH0,BTL0;

unsigned char time;

unsigned char keytmp;

code unsigned char table[]={6,2,3, 5,2,1, 3,2,2, 5,2,2, 1,3,2, 6,2,1, 5,2,1, 6,2 4, 3,2,2, 5,2,1, 6,2,1, 5,2,2, 3,2,2, 1,2,1, 6,1,1, 5,2,1, 3,2,1, 2,2,4, 2,2,3, 3,2,1, 5,2,2, 5,2,1, 6,2,1, 3,2,2, 2,2,2, 1,2,4, 5,2,3, 3,2,1, 2,2,1, 1,2,1, 6,1,1, 1,2,1, 5,1,6, 0,0,0};

Code unsigned char TH0[]={0xF2,0xF3,0xF5,0xF5,0xF6,0xF7,0xF8,0xF9,0xF9, 0xFA,0xFA,0xFB,0xFB,0xFC,0xFC,0xFC,0xFD,0xFD,0xFD,0xFD,0xFE,0xFE,0xFE ,

0xFE,0xFE,0xFE,0xFE,0xFF,};

code unsigned char TL0[]={0x42,0xC1,0x17,0xB6,0xD0,0xD1,0xB6,0x21,0xE1, 0x8C,0xD8,0x68,0xE9,0x5B,0x8F,0xEE,0x44,0x6B,0xB4,0xF4,0x2D,0x47,0x77, 0xA2,0xB6,0xDA,0xFA,0x16,};

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(i=300;i=0;i--)

{

}

}

void delay(unsigned char time)

{

unsigned char t1;

unsigned char t2;

for(t1=0;t1

{

for(t2=0;t2

{

}

}

}

void time0_int() interrupt 1 using 0

{

电子科技大学成都学院课程设计

TR0=0;

P00=~P00;

TH0=BTH0;

TL0=BTL0;

TR0=1;

}

void sing()

{

TH0=BTH0;

TLO=BTL0;

TR0=1;

delay(time);

}

void main(void)

{

unsigned char k,i;

i=0;

TMOD=0x01;

EA=1;

ET0=1;

IE=0x82;

while(1)

{

void scankey();

附录

if(keydata==0) { } else if(keydata= =1) { }keydelay(); time=1; while(time) { } if(table[i]= =0) { } else if(table[i]!=0) { } k=table[i]+7*table[i+1]-1; BTH0=TH0[K]; BTL0=TL0[K]; time=table[i+2]; i=i+3; sing(); i=0;

电子科技大学成都学院课程设计

附录二:原理图

附录

附录三:仿真图

电子科技大学成都学院课程设计

附录四:PCB 图


相关内容

  • 电子琴课程设计
  • 摘要 随着电子技术的发展,电子技术正在逐渐改善着人们的学习.生活.工作,电子技术与音乐的结合正在不断加深.因此开发本系统希望能够给人们多带来一点生活上的乐趣.电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器.本文的主要内容是用AT89C51单片机为核心控制元件,设计一个电子琴.以单片机作为 ...

  • 单片机毕业设计题目
  • 1. 智能压力传感器系统设计 2. 智能定时器 3. 液位控制系统设计 4. 液晶控制模块的制作 5. 嵌入式激光打标机运动控制卡软件系统设计 6. 嵌入式激光打标机运动控制卡硬件系统设计 7. 基于单片机控制的数字气压计的设计与实现 8. 基于MSC1211的温度智能温度传感器 9. 机器视觉系统 ...

  • 自动化毕业设计论文题目
  • 自 动 化 毕 业 设 计 论 文 题 目 1. 智能压力传感器系统设计 2. 智能定时器 3. 液位控制系统设计 4. 液晶控制模块的制作 5. 嵌入式激光打标机运动控制卡软件系统设计 6. 嵌入式激光打标机运动控制卡硬件系统设计 7. 基于单片机控制的数字气压计的设计与实现 8. 基于MSC12 ...

  • 通信工程毕业设计题目精选
  • 不管怎样,生活还是要继续向前走去.有的时候伤害和失败不见得是一件坏事,它会让你变得更好,孤单和失落亦是如此.每件事到最后一定会变成一件好事,只要你能够走到最后. 通信工程毕业设计题目精选 1. 智能压力传感器系统设计 2. 智能定时器 3. 液位控制系统设计 4. 液晶控制模块的制作 5. 嵌入式激 ...

  • 电气自动化设计论文题目大全
  • 机电一体化 毕 业 设 计 论 文 题 目 第1-100个电气自动化毕业设计论文题目 1. 智能压力传感器系统设计 2. 智能定时器 3. 液位控制系统设计 4. 液晶控制模块的制作 5. 嵌入式激光打标机运动控制卡软件系统设计 6. 嵌入式激光打标机运动控制卡硬件系统设计 7. 基于单片机控制的数 ...

  • 电气自动化毕业设计论文题目
  • 电 气 自 动 化 毕 业 设 计 论 文 题 目 第1-100个电气自动化毕业设计论文题目 1. 智能压力传感器系统设计 2. 智能定时器 3. 液位控制系统设计 4. 液晶控制模块的制作 5. 嵌入式激光打标机运动控制卡软件系统设计 6. 嵌入式激光打标机运动控制卡硬件系统设计 7. 基于单片机 ...

  • PLC毕业设计论文题目
  • P L C 第1-100个PLC毕业设计论文题目 1. 智能压力传感器系统设计 2. 智能定时器 3. 液位控制系统设计 4. 液晶控制模块的制作 5. 嵌入式激光打标机运动控制卡软件系统设计 6. 嵌入式激光打标机运动控制卡硬件系统设计 7. 基于单片机控制的数字气压计的设计与实现 8. 基于MS ...

  • 基于单片机的电子音乐门铃设计
  • 微机控制系统应用方向学年设计任务书 微机控制系统应用方向学年设计说明书 学院名称: 计算机与信息工程学院 班级名称: 计科101 学生姓名: 祖 杰. 赵雷. 周来宇. 朱路平. 张毅苗 学 号:2010211154.2010211150.2010211151.2010211153. 2010211 ...

  • 单片机音乐盒课程设计
  • 姓名:蔡晓锋 学号学院:计算机与信息工程学院 专业班级:自动化3班 论文题目:基于单片机的音乐盒设计 任课老师:赵伟志 [摘要]本设计是一个基于STC 12c5608ad 系列单片机的音乐盒,依据单片机技术原理,通过硬件电路制作以及软件编译,设计制作出一个多功能音乐盒.该音乐盒主要由按键电路.复位电 ...