引 言
所有单片机论文尽在 QQ:1634189238。所有单片机资料请资讯 QQ:
1634189238
.所有单片机项目尽在 QQ: 1634189238
对于我们电子信息工程专业而言,《单片机原理与应用》是一门实用性很强的课程!
在该课程的学习过程中!让我们最感兴趣的就是自己动手设计单片机控制系统。但是,
要将单片机的硬件知识与软件知识融会贯通,设计出实用的系统却是让我们颇感困难的
环节。许多同学对此感到无从下手。其实,对于单片机应用系统的设计还是有章可循的。
单片机多用于实时工业控制、通信设备和智能仪表中。但在某些方面,如有些教学实
验中,加进一些音乐,一定会趣味横生。
本文介绍了笔者利用 AT89C52 型单片机和 LM386 型音频功率放大器构成了自动音
乐播放器。设计音乐的思想是,选一个输出位,如 P1。0 端让其按音乐的变化节奏产生音
频脉冲。要产生音频脉冲,就要算出某一音频的周期(1/频率),将此周期除以 2,即半周期的
时间,然后利用单片机计时器计此半周期的时间。每当计时到后就将输出脉冲的 P1。0
位反相,然后重复计此半周期时间再对 P1。0 反相,如此就可以在口端得到此频率的脉冲。
计数器工作在模式 MODE1 下,改变计数值 TH0 及 TL0 以产生不同的音频声响。
据网络调查公司 Jupiter Media Metrix 的统计数据显示:使用音乐播放器(不论是离
线播放器还是网络播放器)的家庭用户从2000 年 1 月的3320 万猛增到2001 年 1 月的4170
万。在工作中使用音乐播放器的专业用户数量也较去年同期上升了 34.9%,从 2000 年 1
月的 1160 万增加到 2001 年 1 月的 1570 万。以单片机为基础的本设计成本低,效果好,
值得推广。而如车载音乐播放器、能够播放流式音乐的播放器更是我们要深入的领域。
- 1 -
基于单片机的音乐播放器的设计
第 1 章 绪 论
本设计系统是基于单片机的音乐播放器的设计,具有一定的实际意义。因此在设计
过程中,设计的系统应该考虑到播放器便捷性和稳定性,使设计的系统能够使人们的生
活更加丰富多彩。
系统的设计是先是通过第 2 章,方案的论证,确定系统的元器件。第 3 章,硬件电
路的设计,硬件的设计是通过元器件的功能和使用方法进行的。第 4 章,软件程序的设
计,系统的软件设计是根据单片机对其它元器件的控制进行设计的。以实现系统的采集
功能。
1.1 单片机的发展状况
21 世纪,电子技术进入了突飞猛进的发展阶段。随着集成电子技术的迅速发展,特
别是微型计算机的出现使现代科学研究得到了质的飞跃,那么可以毫无夸张的说,单片
机技术的出现则是给现代工业测控领域带来一次新的技术命。目前,单片机以其功能强、
体积小、可靠性高、造价低和开发周期短等优点,在工业控制系统、数据采集系统、智
能化仪器仪表、办公自动化等诸多领域得到极为广泛的应用,并已进入家庭,从洗衣机、
微波炉到音响、汽车,到处都可见到单片机的踪影。因此,单片机技术开发和应用水平
已逐步成为一个国家工业发展水平的标志之一,单片机的发展阶段可分为:
第一阶段(1971~1974 年):1971 年 11 月美国 Intel 公司首先设计成集为
2000 只晶体管的 4 位微处理器 Intel 4004,并且配有随机存储器 ROM 和移位寄存器等
芯片,构成第一台 MCS-4 微型计算机。1972 年 4 月 Intel 公司又研发成了功能较强的 8
位微处理器 Intel 8008,这些微处理器虽说不是单片机,但从此拉开了研发单片机的序
幕。
第二阶段(1974~1978 年):初级单片机阶段。以 Intel 公司的 MCS-48 为代表。这
个系列的单片机内集成有 8 位 CPU、并行 I\O 串口、8 位定时器\计数器,寻址范围不大
于 4K,且无串行口。
第三阶段(1978~1983 年):高性能单片机阶段。这一阶段单片机普遍带有串口、多
级中断处理系统、16 位定时器\计数器。片内 ROM、RAM 容量加大,寻址范围到了 64K,
有的还带有 A\D 转换接口。比如 Intel 公司的 MCS-51,Motorola 公司的 6801 等。这类单
片机的应用领域已经及其广泛,这类系列的各类产品是目前国内外产品的主流。其中
MCS-51 系列产品,由于其优良的性能价格比,特别适合我国的国情,MCS-51 系列单
- 2 -
片机有可能稳定相当一段时期。现在国内的 MCS-51 热正在继续升温,随着我国经济建
设步伐的加大,MCS-51 系列单片机必将在各个领域大显身手。
第四阶段(1983~):8 位单片机巩固发展到 16 位单片机推出阶段。此阶段主要特征
是一方面发展 16 位单片机及专用单片机;另一方面不断完善高档 8 位单片机,改善其
结构,以满足不同的用户需要。
MCS-51 系列属高档单片机,近年来,Intel 公司在提高该系列产品性能方面做了不
少工作,相继推出了不少新产品:
(1)8052\8752\8032:将原来 8051\8751\8031 单片机进行了扩展,片内数据存储器
增至 256 字节,程序存储器增至 8K,定时器\计数器增至 3 个 16 位计数器,有 6 个中断
源。
(2)低功耗看的 CHMOS 工艺芯片 80C51\87C51\80C31:这种芯片允许电源波动范
围大,为 5V±20%,并有三种功耗控制方式。
(3)具有高级语言编程的芯片 8052AH-BASIC.该芯片在片内固化有 MCS-BASIC52 解
释程序,软件开发比较方便。此外还能实现 BCD 码的浮点运算以及 16 进制数和十进制
数的转换。
(4)高性能的 C52 系列:在 8052 的基础上,采用 CHMOS 工艺,并将 MCS-96 系列中
的一些高速输出、脉宽调制、上\下定时器\计数器移植进来,构成新一代 MCS-51 产品
80C252\87C252\83C252,他们是 MCS-51 系列中的新产品。
1.2 设计的内容
设计的课题是“基于单片机的音乐播放器设计”,它是以单片机 AT89C52 作为硬
件核心控制部件,结合负脉冲电路和 LM386 功率放大器,数码管构成典型的显示电路,
以及其他外围设备组成的音乐播放系统。
根据音乐演奏控制器所要实现的显示与选曲及音乐产生功能原理,系统包括演奏扬
声器、选曲、播放和显示几部分。其中,S1 开关用来选曲,通过显示器显示歌曲序号。
S2 按钮用作播放。所设计的单片机乐曲播放控制器不仅能够播放悦耳的歌曲,同时设
置按钮使所设计的程序能在五首歌曲之间进行选曲,并通过显示器使其显示歌曲序号。
本文设计的音乐演奏控制器是通过控制单片机内部的定时器来产生不同频率的方
波,驱动喇叭发出不同音节的声音,再利用延迟来控制发音时间的长短,即控制音调中
的节拍。同时设置按钮使所设计的程序能在五首歌曲之间进行选曲、设计显示器使其显
示歌曲序号。
- 3 -
基于单片机的音乐播放器的设计
第 2 章 方案比较
设计的课题是“基于单片机的音乐播放器设计”,播放器要求方便快捷地进行音乐
的播放。
2.1 设计要求
具体的设计应该满足以下功能:
硬件方面:
(1) 可以通过按键进行曲目的选择;
(2) 可以通过按键进行曲目的播放和停止;
(3) CPU 可以控制声音的音节和长短;
(4) 音频数据信息记录需要大量非易失性数据存储器实时快速地记录数据。因此
需要具有掉电保护功能的大容量存储器;
(5) 可以通过显示器知道曲目的序号;
软件方面:
(1) 系统中外扩的各器件的初始化工作均在主程序中完成,其次,要设计如何调
用显示子程序以及乐曲播放程序。
(2) 在实际的控制过程,常要求有实时时钟,以实现定时或延时控制,所以需要
此类中断服务程序。
(3) 由于按键为机械开关结构,机械触点的弹性及电压突跳等原因,往往在触点
闭合或断开的瞬间会出现电压抖动。为保证键识别的准确,在电压信号抖动
的情况下不能进行状态的输入。为此需要进行去抖动处理的中断服务程序。
(当然这种问题也可以通过硬件方案解决。)
2.2 方案的提出
方案一:基于 C8051F350 单片机和 AT45DB642D 存储器的音频播放器
音频播放器系统结构如图2-1所示, 它主要由C8051F350 单片机、PC 机、
AT45DB642D 存储器、RS232 串行通信接口、显示电路、键盘电路以及信号放大电路等
组成。系统中单片机是控制核心, 通过UART串口与PC 机通讯, SPI 串口对存储器进行
读、写操作。写操作就是数据下载过程, 即写入存储器的音频文件经PC 机里的Lab
Windows/CVI 软件处理, 通过RS232 串行通信接口传输到单片机, 由单片机通过SPI
串口写入存储器。[1]读操作就是音频信号播放过程, 即由键盘选择播放曲目, 单片机通
- 4 -
过SPI 串口读取存储器中的音频代码, 以单片机的电流模式DAC 输出, 再经信号放大
电路后音频输出。键盘用来调节信号频率、控制音量和选择曲目, 单片机通过扫描方式
读取键盘接口命令, 并根据查表程序选择相应的控制命令, 执行相应的操作。液晶显示
模块显示曲目序号和相应的播放时间。该系统突出特点是合理应用了Flash 存储器
AT45DB642D,可以根据需要由PC 机将音频文件转换为适合音频播放器播放的文本文件,
并下载到存储器。存储在AT45DB642D 中的音频信息由单片机读取后播放,用户可以根据
爱好调节播放频率和音量。
图 2-1
C51F350 单片机播放器系统结构图
系统控制核心器件选用美国 Cygnal 公司的 C8051F350 单片机, C8051F350 的
CIP-8051 结构, 流水作业执行指令, 大大提高指令的运行速度 AT45DB642D 存储器
( Flash RAM) 具有宽电源电压、大容量、接口简单、读写速度快等特点。设计应用中, 由
于 AT45DB642D 同时有 EPROM 的掉电数据不丢失和 E2PROM 的电可擦写功能, 又能
像 SRAM 进行随机快高密度、高可靠性的存储器。液晶显示屏采用定制的段位式液晶,
采用 HT1620 驱动器驱动, 单片机和液晶屏的接口只需 3 条数据线。
方案二:基于 SPCE061A 16 位单片机的音乐播放器
音乐播放器的硬件结构如图 2-2 所示,选用 SPCE061A 单片机作为嵌入式系统的微处
图 2-2 SPCE061A 16 位单片机音乐播放器硬件结构框
理器,SPCE061A 是一款资源丰富、功能强大、集成度高的 16 位结构微控制器,数字信号
处理功能是其特色.它功耗小,系统处于备用状态(睡眠状态)时的耗电仅为 2μA/3.6 V;
内置 2K 字 SRAM 和 32K 的 FLASH;2 个 16 位可编程定时器/计数器;2 个 10 位 DAC(数/模
转换)输出通道;2 个 16 位通用可编程输入/输出端口 IOA 和 IOB;丰富的中断资源:定时
器 A/B 中断、时基中断、2 个外部中断以及触键唤醒中断;7 通道 10 位电压模/数转换器
- 5 -
基于单片机的音乐播放器的设计
(ADC)和单通道声音模/数转换器;具备串行设备接口(SIO);低电压复位功能和低电压检
测功能;WatchDog 功能等。[2]
该系统集成了存储器、高速数/模转换器和原驱鸟器芯片功率放大器、键盘 4 个功
能模块,具有对语音信号压缩、存储、解码和播放的功能,以及数字滤波语音信号实时数
/模转换和定时播放,并将语音信号输出到功率放大电路。
2.3 方案比较
从以上两种方案中可以看出不同的设计方法各有优缺点:
方 案 一 : 基 于 C8051F350 单 片 机 和 AT45DB642D 存 储 器 的 音 频 播 放 器 采 用
AT45DB642D 存储器解决了嵌入式系统中大容量数据存储的问题, 采用功能强大的
C8051F350 单片机作为控制核心, 减少了系统的外围器件, 简化了硬件设计, 提高了
可靠性, 降低了成本。缺点在于信号放大及音频输出系统比较复杂,成本较高。播放器
模式较多,不够简化。
方案二:基于 SPCE061A 16 位单片机的音乐播放器使用常用的音频形式和压缩算法,
波形编码:sub-band 即 SACM-A2000 ,其特点是高质量、高码率,适于高保真语音/音乐。
声音播放模块决定对存储在语音芯片中的驱鸟声音的调用方式,并调用定时模块进行间
隔播放和随机播放。.高速和高精度保证了转换后的信号的质量和平滑性。缺点是存储
器容量不大,声音采集通道单一。
对于 C51 单片机,它抗干扰性较强,且集成度高、功能强、指令丰富等,可以应
用的地方较数字电路更多些,广泛应用于工业控制系统,数据采集系统、智能化仪器仪
表,及通讯设备、日常消费类产品、玩具等。而且单片机已经深入到工业生产的各个环
节以及人民生活的各层次中,如车间流水线控制、自动化系统等、智能型家用电器(冰
箱、空调、彩电)等,都含有 C51 单片机控制器。
通过综合比较我们不采用上面的两种方案,我采用的是基于 C51 单片机的音乐播放
器的设计,该系统控制性能良好,硬件电路简单、经济实惠,能得到更好的效果。该系
统设计将在下文做详细介绍。
2.4 设计的思路
在硬件上是基于单片机 AT89C52 为核心器件进行控制及信号的产生,共有两个按
键 S1 和 S2,S1 开关用来选曲,通过显示器显示歌曲序号。S2 按钮用作播放。本设计
- 6 -
图 2-3 C52 音乐播放器组成框图
的音乐演奏控制器是通过控制单片机内部的定时器来产生不同频率的方波,驱动喇叭发
出不同音节的声音。再利用延迟来控制发音时间的长短,即控制音调中的节拍。[3]同时
设置按钮使所设计的程序能在几首歌曲之间进行选曲,设计显示器使其显示歌曲序号。
对于电路抖动,论文决定用软件方案解决。而为了不丢失外部中断,笔者选择边
沿触发。
- 7 -
基于单片机的音乐播放器的设计
第 3 章 硬件电路设计
3.1 单片机的选择
在设计中文章选择单片机 AT89C52 作为播放器的核心控制部件,原因是因为
AT89C52 的功能全部兼容 MCS-51,并且还有程序加密等功能,相比而言更加实用。
AT89C52 单片机是美国 ATMEL 公司生产的低电压,高性能 CMOS8 位单片机,片
内含 8KB 的可反复擦写的只读程序存储器和 256 字节的随机存取存储器,器件采用
ATMEL 公司的高密度、非易失性存储技术生产,与标准 MCS-51 指令系统及 8051 产品
引脚兼容,片内置通用 8 位中央处理器(CPU)和 Flash 存储单元,其强大的功能更适
合较为复杂的控制应用场合。其主要工作特性是:
·片内程序存储器内含 8KB 的 Flash 程序存储器,可擦写寿命为 1000 次;
·片内数据存储器内含 256 字节的 RAM;
·具有 32 根可编程 I/O 口线;
·具有 3 个可编程定时器;
·中断系统是具有 8 个中断源、6 个中断矢量、2 级优先权的结构;
·串行口是具有一个全双工的可编程串行通信口;
·具有一个数据指针 DPTR;
·低功耗工作模式有空闲模式和掉电模式;
·具有可编程的 3 级程序锁定位;
·AT89C52 工作电源电压位 5(1±0.2)V,且典型值为 5V。
·AT89C52 最高工作频率为 24MHZ,编程频率为 3~24HZ,编程启动电流为 1mA。[4]
3.1.1 引脚排列及功能
AT89C52 的引脚排列如图 3-1 所示:
首先对于 I/O 口线做一介绍:
·P0 口—8 位、漏极开路的双向 I/O 口。
当使用片外存储器及外扩 I/O 口时,P0 口作为低字节地址/数据复用线。在编程时,
P0 口可用于接收指令代码字节;在校验时,P0 口可输出指令字节(须外加上拉电阻)。
P0 口也可做通用 I/O 口使用,但需加上拉电阻,变为准双向口。当作为普通输入时,应
将输出锁存器置 1。P0 口可驱动 8 个 TTL 负载。
·P1 口—8 位、准双向 I/O 口,具有内部上拉电阻。
P1 口是为用户准备的 I/O 口双向口。在编程和校验时,可用做输入低 8 位地址。用做输
入时,应先将输出锁存器置 1。P1 口可驱动 4 个 TTL 负载。
·P2 口—8 位、准双向 I/O 口,具有内部上拉电阻。
- 8 -