单片机音乐播放器设计.docx
- 文档编号:12177691
- 上传时间:2023-04-17
- 格式:DOCX
- 页数:59
- 大小:539.93KB
单片机音乐播放器设计.docx
《单片机音乐播放器设计.docx》由会员分享,可在线阅读,更多相关《单片机音乐播放器设计.docx(59页珍藏版)》请在冰豆网上搜索。
单片机音乐播放器设计
单片机音乐播放器设计
摘要
本文将介绍一种以89C51型单片机为基础元件设计的自动音乐播放器。
在当今这个科技高速发展的时代,生活节奏的加快,人们长期处于工作、学习压力过大的状态,对于调节心理压力而言音乐对于每一个人都十分重要,由此音乐播放器在国内已经开始普及。
校园里的上下课的铃声,宿舍内早晨的起床号声音,都由以前枯燥刺耳的铃音转变成了好听的音乐,公路、广场中的计时装置也逐渐开始采用音乐来充当铃声。
此装置不仅为人们日常生活的计时提供了方便,同时也为目前快节奏的生活带来了乐趣。
本文是应用MCS-51单片机原理和控制理论设计音乐演奏控制器的硬件电路,并利用C语言进行程序设计。
通过控制单片机内部的定时器来产生不同频率的方波,驱动蜂鸣器发出不同音调的音乐,再利用延迟来控制发音时间的长短。
把乐谱转化成相应的定时常数就可以从发音设备中演奏出悦耳动听的音乐。
这种控制电路结构简单,可读性高,应用性强;软件程序适应范围广,对于不同的音乐只需要改变相应的定时常数即可。
关键词:
单片机;音乐播放器;C语言
1绪论
1.1概述
单片机,更确切地说应称为作微控制器,是20世纪70年代中期发展起来的一种面向控制的大规模集成电路模块,其特点是功能强、体积小、可靠性高、价格低廉。
它一面世便在工业控制、数据采集、智能仪表化、机电一体化、家用电器等领域得到了广泛应用,极大地提高了这些领域的技术水平和自动化程度。
因此,单片机的开发应用已成为高科技和工程领域的一项重大课题。
本文将介绍一种以89C51型单片机为基础元件设计的自动音乐播放器。
在当今这个科技高速发展的时代,生活节奏的加快,人们长期处于工作、学习压力过大的状态,对于调节心理压力而言音乐对于每一个人都十分重要,由此音乐播放器在国内已经开始普及。
校园里的上下课的铃声,宿舍内早晨的起床号声音,都由以前枯燥刺耳的铃音转变成了好听的音乐,公路、广场中的计时装置也逐渐开始采用音乐来充当铃声。
此装置不仅为人们日常生活的计时提供了方便,同时也为目前快节奏的生活带来了乐趣。
本次设计以89C51单片机为基础,利用单片机编成技术对芯片进行功能设定,实现音乐的播放。
同时,利用单片机的定时器中断,在单片机内部产生所需要的音乐频率,并通过音频功率放大器将音频信号放大,通过蜂鸣器连续播放一段音乐。
此设计通过多次测试,音乐声音宏亮清晰,节拍正常,达到预期效果。
本文将围绕基于单片机的自动音乐播放器,介绍一些关于单片机的基础知识、音乐播放器的制作原理及方法(其中包括了音乐编程原理)、定时器的设定,以及仿真软件(Keil、Protel99SE)的使用方法和相关PCB板的制作。
1.2单片机的产生和发展
单片微型计算机是随着微型计算机的发展而产生和发展的。
自从1975年美国德克萨斯仪器公司的第一台单片微型计算机(简称单片机)TMS-1000问世以来,迄今为止,单片机技术已成为计算机技术的一个独特分支,单片机的应用领域也越来越广泛,特别是在工业控制中经常遇到对某些物理量进行定时采样与控制的问题,在仪器仪表智能化中也扮演着极其重要的角色。
如果将8位单片机的推出作为起点,那么单片机的发展历史大致可以分为以下几个阶段:
第一阶段(1976—1978):
单片机的探索阶段。
以Intel公司的MCS-48为代表。
MCS-48的推出是在工控领域的探索,参与这一探索的公司还有Motorola、Zilog等。
都取得了满意的效果。
这就是SCM的诞生年代,“单片机”一词即由此而来。
第二阶段(1978—1982):
单片机的完善阶段。
Intel公司在MCS-48基础上推出了完善的、典型的单片机系列MCS-51。
它在以下几个方面奠定了典型的通用总线型单片机体系结构。
(1)完善的外部总线。
MCS-51设置了经典的8位单片机的总线结构,包括8位数据总线、16位地址总线、控制总线及具有多机通信功能的串行通信接口。
(2)CPU外围功能单元的集中管理模式。
(3)体现工控特性的地址空间及位操作方式。
(4)指令系统趋于丰富和完善,并且增加了许多突出控制功能的指令。
第三阶段(1982—1990):
8位单片机的巩固发展及16位单片机的推出阶段,也是单片机向微控制器发展的阶段。
Intel公司推出的MCS-96系列单片机,将一些用于测控系统的模数转换器、程序运行监视器、脉宽调制器等纳入片中,体现了单片机的微控制器特征。
第四阶段(1990—):
微控制器的全面发展阶段。
随着单片机在各个领域全面、深入地发展和应用,出现了高速、大寻址范围、强运算能力的8位/16位/32位通用型单片机,以及小型廉价的专用型单片机。
1.3单片机的特点及应用
1.3.1单片机主要特点
(1)有优异的性能价格比。
(2)集成度高、体积小、有很高的可靠性。
单片机把各功能部件集成在一块芯片上,内部采用总线结构,减少了各芯片之间的连线,大大提高了单片机的可靠性和抗干扰能力。
另外,其体积小,对于强磁场环境易于采取屏蔽措施,适合在恶劣环境下工作。
(3)控制功能强。
为了满足工业控制的要求,一般单片机的指令系统中均有极丰富的转移指令、I/O口的逻辑操作以及位处理功能。
单片机的逻辑控制功能及运行速度均高于同一档次的微机。
(4)低功耗、低电压,便于生产便携式产品。
(5)外部总线增加了I2C(Inter-IntegratedCircuit)及SPI(SerialPeripheralInterface)等串行总线方式,进一步缩小了体积,简化了结构。
(6)单片机的系统扩展和系统配置较典型、规范,容易构成各种规模的应用系统。
优异的性能价格比。
1)集成度高、体积小、有很高的可靠性。
单片机把各功能部件集成在一块芯片上,内部采用总线结构,减少了各芯片之间的连线,大大提高了单片机的可靠性与抗干扰能力。
另外,其体积小,对于强磁场环境易于采取屏蔽措施,适合于在恶劣环境下工作。
此外,程序多采取固化形式也可以提高可靠性。
2)控制功能强。
为了满足工业控制要求,一般单片机的指令系统中均有极丰富的转移指令、I/O口的逻辑操作以及位处理功能。
单片机的逻辑控制功能及运行速度均高于同一档次的微机。
3)单片机的系统扩展、系统配置较典型、规范,容易构成各种规模的应用系统。
1.3.2单片机的应用
A自动控制
例:
单片机已在工业过程控制、机床控制、机器人控制、汽车控制以及飞行器制导系统等方面得到广泛的应用。
B智能仪表
智能家居系统
智能小区管理系统
自动售货机
ATM
C在实时控制中的应用
数字万用表
数字示波器
数字温度计
环境监测仪
D在分布式多机系统中的应用
E家用电器
全自动洗衣机、热水器、电子游戏机等
1.4系统设计总体方案
单片机音乐播放器控制系统结构简单,环节较少,因此,单片机音乐播放器包括LED彩灯、数码管的显示。
除了播放音乐有按键外,其余的硬件组成大体相同。
对于单片机音乐播放器声音的读出除了蜂鸣器以外,还要配置合适的放大器播放出响亮的声音。
单片机音乐播放器电路板向着小型化、低功耗、抗千扰、低成本、实用功能方向发展。
因此在对单片机的选择趋向于容量适中、功能丰富、性能可靠、价格低的元件。
因此本设计中应用最为广泛的MCS-51系列8位单片机8051。
2MCS-51单片机的结构与原理
2.1MCS-51单片机的基本结构
2.1.18051单片机的基本组成及主要性能
图2-18051基本组成
(1)中央处理器(CPU)
中央处理器是单片机的核心,完成运算和控制功能。
8051的CPU能处理8位二进制数或代码。
(2)内部数据存储器(内部RAM)
8051芯片中共有256个RAM单元,但其中后128单元被专用寄存器占用,能作为寄存器供用户使用的只是前128单元,用于存放可读写的数据。
因此通常所说的内部数据存储器就是指前128单元,简称内部RAM。
(3)内部程序存储器(内部ROM)
8051共有4KB掩膜ROM,用于存放程序、原始数据或表格,因此,称之为程序存储器,简称内部ROM。
(4)定时/计数器
8051共有两个16位的定时/计数器,以实现定时或计数功能,并以其定时或计数结果对计算机进行控制。
(5)并行I/O口
MCS-51共有4个8位的I/O口(P0、P1、P2、P3),以实现数据的并行输入/输出。
(6)串行口
8051单片机有一个全双工的串行口,以实现单片机和其它设备之间的串行数据传送。
该串行口功能较强,既可作为全双工异步通信收发器使用,也可作为同步移位器使用。
(7)中断控制系统
8051单片机的中断功能较强,以满足控制应用的需要。
8051共有5个中断源,即外中断两个,定时/计数中断两个,串行中断一个。
全部中断分为高级和低级共两个优先级别。
(8)时钟电路
8051芯片的内部有时钟电路,但石英晶体和微调电容需外接。
时钟电路为单片机产生时钟脉冲序列。
系统允许的晶振频率一般为6MHz和12MHz。
从上述内容可以看出,MCS-51虽然是一个单片机芯片,但作为计算机应该具有的基本部件它都包括,因此,实际上它已是一个简单的微型计算机系统了。
2.1.28051单片机的外部引脚说明
8051是标准的40引脚双列直插式集成电路芯片,引脚如图2-2所示。
图2-280c51引脚
A信号引脚介绍
(1)主电源引脚
◇VCC:
+5V电源
◇VSS:
地线。
(2)时钟电路引脚
◇XTAL1和XTAL2:
外接晶体引线端。
当使用芯片内部时钟时,此二引线端用于外接石英晶体和微调电容;当使用外部时钟时,用于接外部时钟脉冲信号。
(3)控制信号引脚
◇RST/VPD:
复位信号。
当输入的复位信号延续两个机器周期以上的高电平时即为有效,用以完成单片机的复位初始化操作;当单片机掉电时,此引脚上可接备用电源,由VPD向片内RAM提供备用电源,一保持片内RAM中的数据不丢失。
◇ALE/PROG:
地址锁存控制信号。
在系统扩展时,ALE用于控制把P0口输出的低8位地址锁存起来,以实现低位地址和数据的隔离。
此外,由于ALE是以晶振1/6的固定频率输出的正脉冲,因此,可作为外部时钟或外部定时脉冲使用。
对于EPROM型单片机,在EPRAM编程期间,此引脚接收编程脉冲。
◇PSEN:
片外程序存储器读选通信号输出端。
◇EA/VPP:
访问程序存储控制信号。
当EA信号为低电平时,对ROM的读操作限定在外部程序存储器;当EA信号为高电平时,对ROM的读操作是从内部程序存储器开始,并可延至外部程序存储器。
对于EPROM型单片机,在EPRAM编程期间,此引脚接上加21VEPROM编程电源VPP。
(4)I/O引脚
P0.0~P0.7:
P0口8位双向口线。
P1.0~P1.7:
P1口8位双向口线。
P2.0~P2.7:
P2口8位双向口线。
P3.0~P3.7:
P3口8位双向口线。
1)P3口线的第二功能。
P3的8条口线都定义有第二功能,详见表2-1。
表2-1P3口各引脚与第二功能表
引脚
第二功能
信号名称
P3.0
RXD
串行数据接收
P3.1
TXD
串行数据发送
P3.2
INT0
外部中断0申请
P3.3
INT1
外部中断1申请
P3.4
T0
定时/计数器0的外部输入
P3.5
T1
定时/计数器1的外部输入
P3.6
WR
外部RAM写选通
P3.7
RD
外部RAM读选通
以上把8051单片机的全部信号引脚分别以第一功能和第二功能的形式列出。
对于各种型号的芯片,其引脚的第一功能信号是相同的,所不同的只在引脚的第二功能信号。
对于9、30和31三个引脚,由于第一功能信号与第二功能信号是单片机在不同工作方式下的信号,因此不会发生使用上的矛盾。
但是P3口的情况却有所不同,它的第二功能信号都是单片机的重要控制信号。
因此,在实际使用时,都是先按需要选用第二功能信号,剩下的才以第一功能的身份作数据位的输入/输出使用。
B并行输入/输出口电路结构
单片机芯片内还有一项主要内容就是并行I/O口。
8051共有4个8位的并行I/O口,分别记作P0、P1、P2、P3。
每个口都包含一个锁存器、一个输出驱动器和输入缓冲器。
实际上,它们已被归入专用寄存器之列,并且具有字节寻址和位寻址功能。
在访问片外扩展存储器时,低8位地址和数据由P0口分时传送,高8位地址由P2口传送。
在无片外扩展存储器的系统中,这4个口的每一位均可作为双向的I/O端口使用。
8051单片机的4个I/O口都是8位双向口,这些口在结构和特性上是基本相同的,但又各具特点。
C时钟电路
(1)内部方式时钟电路
在8051芯片内部有一个高增益反相放大器,其输入端为芯片引脚XTAL1,其输出端为引脚XTAL2。
而在芯片的外部,XTAL1和XTAL2之间跨接晶体振荡器和微调电容,从而构成一个稳定的自激振荡器,这就是单片机的时钟电路,如图3-3所示。
时钟电路产生的振荡脉冲经过触发器进行二分频之后,才成为单片机的时钟脉冲信号。
请读者特别注意时钟脉冲与振荡脉冲之间的二分频关系,否则会造成概念上的错误。
一般地,电容C1和C2取30pF左右,晶体的振荡频率范围是1.2~12MHz。
晶体振荡频率高,则系统的时钟频率也高,单片机运行速度也就快。
8051在通常应用情况下,使用振荡频率为6MHz或12MHz。
图2-3时钟振荡电路
(2)外部方式时钟电路
在由多片单片机组成的系统中,为了各单片机之间时钟信号的同步,应当引入惟一的公用外部脉冲信号作为各单片机的振荡脉冲。
这时,外部的脉冲信号是经XTAL2引脚注入,其连接如图3-4所示。
图2-4外部时钟源接法
(3)时序
时序是用定时单位来说明的。
8051的时序定时单位共有4个,从小到大依次是:
节拍、状态、机器周期和指令周期。
它们之间的关系如下:
1)一个振荡脉冲的周期为节拍;
2)一个状态就包含两个节拍;
3)一个机器周期的宽度为6个状态;
4)一条指令周期由若干个机器周期组成。
(4)单片机的复位电路
单片机复位是使CPU和系统中的其他功能部件都处在一个确定的初始状态,并从这个状态开始工作,复位后PC=0000H,使单片机从第一个单元取指令。
单片机复位的条件是:
必须使RST/VPD或RST引脚加上持续两个机器周期(即24个振荡周期)的高电平。
若时钟频率为12MHz,每机器周期为1 μs,则只需2μs以上时间的高电平,在RST引脚出现高电平后的第二个机器周期执行复位。
单片机复位期间不产生ALE和PSEN信号,即ALE=1和PSEN=1。
这表明单片机复位期间不会有任何取指操作。
复位后,内部各专用寄存器状态如下:
PC:
0000HTMOD:
00H
ACC:
00HTCON:
00H
B:
00HTH0:
00H
PSW:
00HTL0:
00H
SP:
07HTH1:
00H
DPTR:
0000HTL1:
00H
P0~P3:
FFHSCON:
00H
IP:
***00000BSBUF:
不定
IE:
0**00000BPCON:
0***0000
其中,*表示无关位。
注意:
(1)复位后PC值为0000H,表明复位后程序从0000H
开始执行,这一点在实训中已介绍。
(2)SP值为07H,表明堆栈底部在07H。
一般需重新设置SP值。
(3)P0~P3口值为FFH。
P0~P3口用作输入口时,必须先写入“1”。
单片机在复位后,已使P0~P3口每一端线为“1”,为这些端线用作输入口做好了准备。
2.2MCS-51单片机的微处理器
2.2.1运算器
ALU
实现8位数据的算数运算、逻辑运算和位运算。
累加器A
用于向ALU提供操作数和存放运算的结果。
最常用的一个专用寄存器
·大部分单操作数指令的操作数取自A
很多双操作数指令的一个操作数取自A
算术运算和逻辑运算的结果放在A或AB对中
指令系统采用A作为累加器的标识符
寄存器B
8位寄存器作一RAM单元用
与累加器A配合使用,一般用于乘除法运算
寄存器B存放第二操作数、乘积的高8位字节
程序状态字PSW
8位寄存器,存放ALU运算结果的特征
格式如下:
表2-2八位寄存器运算特征
PSW
D7D6D5D4D3D2D1D0
CY
AC
F0
RS1
RS0
OV
---
P
2.2.2控制器
程序计数器PC
16位专用寄存器,寻址范围64KB
通电时自动复位,运行时可手动复位,复位后,
PC的内容自动清零PC0000H系统的启动地址
用来存放下一条指令地址。
CPU取指令时,将PC内容经地址总线送到程序存储器,从该地址单元取回指令,译码并执行;同时,PC自动加1
此时的程序是顺序执行的
如果程序需要转移,可在程序中安排转移或条件转移指令
指令寄存器IR
保存当前正在执行的一条指令。
定时与控制
控制取指令、执行指令、存取操作数或运算结果等操作,向其它部件发出各种微操作控制信号,协调各部件的工作。
指令寄存器IR
保存当前正在执行的一条指令。
定时与控制
控制取指令、执行指令、存取操作数或运算结果等操作,向其它部件发出各种微操作控制信号,协调各部件的工作。
2.3MCS-51单片机的存储器
8051单片机与一般微机的存储器配置方式很不相同。
一般微机通常只有一个逻辑空间,可以随意安排ROM或RAM。
访问存储器时,同一地址对应唯一的存储单元,可以是ROM也可以是RAM,并用同类访问指令。
而MCS-51则普林斯顿与哈佛两种不同结构。
8051在物理结构上设计成程序存储器与数据存储器独立分开的哈佛结构:
片内程序存储器4KB(ROM0000H-0FFFH)
片内数据存储器128B(RAM00H-7FH)
2.3.1内部数据存储器
8051单片机的芯片内部有RAM和ROM两类存储器,即所谓的内部RAM和内部ROM,首先分析内部RAM。
(1)内部数据存储器低128单元
8051的内部RAM共有256个单元,通常把这256个单元按其功能划分为两部分:
低128单元(单元地址00H~7FH)和高128单元(单元地址80H~FFH)。
低128单元是单片机的真正RAM存储器,按其用途划分为寄存器区、位寻址区和用户RAM区三个区域。
1)寄存器区
8051共有4组寄存器,每组8个寄存单元,各组都以R0~R7作寄存单元编号。
寄存器常用于存放操作数中间结果等。
由于它们的功能及使用不作预先规定,因此称之为通用寄存器,有时也叫工作寄存器。
4组通用寄存器占据内部RAM的00H~1FH单元地址。
在任一时刻,CPU只能使用其中的一组寄存器,并且把正在使用的那组寄存器称之为当前寄存器组。
到底是哪一组,由程序状态字寄存器PSW中RS1、RS0位的状态组合来决定。
通用寄存器为CPU提供了就近存储数据的便利,有利于提高单片机的运算速度。
此外,使用通用寄存器还能提高程序编制的灵活性,因此,在单片机的应用编程中应充分利用这些寄存器,以简化程序设计,提高程序运行速度。
2)位寻址区
内部RAM的20H~2FH单元,既可作为一般RAM单元使用,进行字节操作,也可以对单元中每一位进行位操作,因此把该区称之为位寻址区。
位寻址区共有16个RAM单元,计128位,地址为00H~7FH。
MCS-51具有布尔处理机功能,这个位寻址区可以构成布尔处理机的存储空间。
这种位寻址能力是MCS-51的一个重要特点。
3)用户RAM区
在内部RAM低128单元中,通用寄存器占去32个单元,位寻址区占去16个单元,剩下80个单元,这就是供用户使用的一般RAM区,其单元地址为30H~7FH。
对用户RAM区的使用没有任何规定或限制,但在一般应用中常把堆栈开辟在此区中。
(2)内部数据存储器高128单元
内部RAM的高128单元是供给专用寄存器使用的,其单元地址为80H~FFH。
因这些寄存器的功能已作专门规定,故称之为专用寄存器(SpecialFunctionRegister),也可称为特殊功能寄存器。
2.3.2内部程序存储器
8051的程序存储器用于存放编好的程序和表格常数。
8051片内有4KB的ROM。
051的片外最多能扩展64KB程序存储器,片内外的ROM是统一编址的。
如端保持高电平,8051的程序计数器PC在0000H~0FFFH地址范围内(即前4KB地址)是执行片内ROM中的程序,当PC在1000H~FFFFH地址范围时,自动执行片外程序存储器中的程序;当保持低电平时,只能寻址外部程序存储器,片外存储器可以从0000H开始编址。
8051的程序存储器中有些单元具有特殊功能,使用时应予以注意。
其中一组特殊单元是0000H~0002H。
系统复位后,(PC)=0000H,单片机从0000H单元开始取指令执行程序。
如果程序不从0000H单元开始,应在这三个单元中存放一条无条件转移指令,以便直接转去执行指定的程序。
还有一组特殊单元是0003H~002AH,共40个单元。
这40个单元被均匀地分为5段,作为5个中断源的中断地址区。
其中:
0003H~000AH外部中断0中断地址区
000BH~0012H定时/计数器0中断地址区
0013H~001AH外部中断1中断地址区
001BH~0022H定时/计数器1中断地址区
0023H~002AH串行中断地址区
中断响应后,按中断种类,自动转到各中断区的首地址去执行程序,因此在中断地址区中理应存放中断服务程序。
但通常情况下,8个单元难以存下一个完整的中断服务程序,因此通常也是从中断地址区首地址开始存放一条无条件转移指令,以便中断响应后,通过中断地址区,再转到中断服务程序的实际入口地址。
2.3.3专用寄存器(SFR)简介
8051共有21个专用寄存器,其中部分寄存器简单介绍如下:
(1)程序计数器PC:
PC是一个16位的计数器,它的作用是控制程序的执行顺序。
其内容为将要执行指令的地址,寻址范围达64KB。
PC有自动加1功能,从而实现程序的顺序执行。
PC没有地址,是不可寻址的,因此用户无法对它进行读写,但可以通过转移、调用、返回等指令改变其内容,以实现程序的转移。
因地址不在SFR(专用寄存器)之内,一般不计作专用寄存器。
(2)累加器ACC:
累加器为8位寄存器,是最常用的专用寄存器,功能较多,地位重要。
它既可用于存放操作数,也可用来存放运算的中间结果。
MCS-51单片机中大部分单操作数指令的操作数就取自累加器,许多双操作数指令中的一个操作数也取自累加器。
(3)B寄存器。
B寄存器是一个8位寄存器,主要用于乘除运算。
乘法运算时,B存乘数。
乘法操作后,乘积的高8位存于B中,除法运算时,B存除数。
除法操作后,余数存于B中。
此外,B寄存器也可作为一般数据寄存器使用。
(4)程序状态字PSW:
序状态字是一个8位寄存器,用于存放程序运行中的各种状态信息。
其中有些位的状态是根据程序执行结果,由硬件自动设置的,而有些位的状态则使用软件方法设定。
PSW的位状态可以用专门指令进行测试,也可以用指令读出。
一些条件转移指令将根据PSW有些位的状态,进行程序转移。
PSW的各位定义如下:
表2-3PSW的位状态
PSW位地址
D7H
D6H
D5H
D4H
D3H
D2H
D1H
D0H
字节地址
CY
AC
F0
RS1
RS0
OV
F1
P
除PS
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 音乐 播放 设计