当前位置:文档之家› MCS-51-单片机音乐播放器设计

MCS-51-单片机音乐播放器设计

MCS-51-单片机音乐播放器设计
MCS-51-单片机音乐播放器设计

单片机音乐播放器设计

摘要

本文将介绍一种以89C51型单片机为基础元件设计的自动音乐播放器。在当今这个科技高速发展的时代,生活节奏的加快,人们长期处于工作、学习压力过大的状态,对于调节心理压力而言音乐对于每一个人都十分重要,由此音乐播放器在国内已经开始普及。校园里的上下课的铃声,宿舍内早晨的起床号声音,都由以前枯燥刺耳的铃音转变成了好听的音乐,公路、广场中的计时装置也逐渐开始采用音乐来充当铃声。此装置不仅为人们日常生活的计时提供了方便,同时也为目前快节奏的生活带来了乐趣。

本文是应用MCS-51单片机原理和控制理论设计音乐演奏控制器的硬件电路,并利用C 语言进行程序设计。通过控制单片机内部的定时器来产生不同频率的方波,驱动蜂鸣器发出不同音调的音乐,再利用延迟来控制发音时间的长短。把乐谱转化成相应的定时常数就可以从发音设备中演奏出悦耳动听的音乐。

这种控制电路结构简单,可读性高,应用性强;软件程序适应范围广,对于不同的音乐只需要改变相应的定时常数即可。

关键词:单片机;音乐播放器;C语言

The design of the music plyer

Abstract

This article introduces a kind of 89C51-based microcontroller-based device designed for automatic music player. In today's era of rapid development of this technology, the accelerated pace of life, the long-in work, learning burden the state's case for regulating psychological stress is important for everyone, this music player at home has begun universal. Campus on the class of the ring, get up early morning dormitory No. voices, strident tones by the previous dry transformed into good music, road, square in the timing devices are also beginning to use music as ring tones. This device not only for the timing of daily life and provides a convenient, but also for the current fast-paced life fun.

This is the application of MCS-51 SCM principles and control theory, music performance controller hardware and programming using c programming language. By controlling the MCU's internal timer to generate square waves of different frequencies to drive speakers make different musical tones, and then use delay to control the length of pronunciation. The music into the corresponding time constants can be played from the sound equipment out of melodious music.

This control circuit is simple, readable, application and strong; software program to adapt to a wide range of different music just for the appropriate time constant change can be.

Keyword: Single-chip processor; Music player; C programming language

目录

1 绪论 (1)

1.1 概述 (1)

1.2 单片机的产生和发展 (1)

1.3 单片机的特点及应用 (2)

1.3.1 单片机主要特点 (2)

1.3.2 单片机的应用 (3)

1.4 系统设计总体方案 (3)

2 MCS-51单片机的结构与原理 (5)

2.1 MCS-51单片机的基本结构 (5)

2.1.1 8051单片机的基本组成及主要性能 (5)

2.1.2 8051单片机的外部引脚说明 (6)

2.2 MCS-51单片机的微处理器 (9)

2.2.1 运算器 (9)

2.2.2 控制器 (10)

2.3 MCS-51单片机的存储器 (11)

2.3.1 内部数据存储器 (11)

2.3.2 内部程序存储器 (12)

2.3.3专用寄存器(SFR)简介 (12)

2.4 MCS-51单片机的定时计数 (14)

2.4.1 定时器/计数器的结构 (14)

2.4.2 定时器/计数器的工作方式 (15)

2.4.3定时/计数器的初始化 (16)

2.5 MCS-51单片机的中断系统 (16)

2.5.1 中断源 (16)

2.5.2 中断控制 (19)

2.5.3 中断响应 (20)

2.5.4 中断请求的撤除 (20)

2.6 MCS-51单片机的并行/串行接口 (21)

3 硬件电路设计 (23)

3.1 总体设计框图 (23)

3.2 时钟电路 (23)

3.3 复位电路 (23)

3.4 选曲电路 (24)

3.5 音频发生及放大电路 (24)

4 软件程序设计 (24)

4.1单片机发声概述 (24)

4.2 程序流程图 (26)

4.3 音乐的产生 (27)

5 KEIL仿真软件及Protel 99 SE的应用 (29)

5.1 KEIL51的应用 (29)

5.2 protel99se的应用 (29)

5.3 PCB板的设计制作 (30)

6 调试与故障分析 (31)

6.1 软件程序调试 (31)

6.2 硬件电路调试 (31)

7 总结与展望 (32)

致谢 (33)

参考文献 (34)

附录1:原理图 (35)

附录2:仿真图 (36)

附录3:源程序 (37)

1 绪论

1.1 概述

单片机,更确切地说应称为作微控制器,是20世纪70年代中期发展起来的一种面向控制的大规模集成电路模块,其特点是功能强、体积小、可靠性高、价格低廉。它一面世便在工业控制、数据采集、智能仪表化、机电一体化、家用电器等领域得到了广泛应用,极大地提高了这些领域的技术水平和自动化程度。因此,单片机的开发应用已成为高科技和工程领域的一项重大课题。

本文将介绍一种以89C51型单片机为基础元件设计的自动音乐播放器。在当今这个科技高速发展的时代,生活节奏的加快,人们长期处于工作、学习压力过大的状态,对于调节心理压力而言音乐对于每一个人都十分重要,由此音乐播放器在国内已经开始普及。校园里的上下课的铃声,宿舍内早晨的起床号声音,都由以前枯燥刺耳的铃音转变成了好听的音乐,公路、广场中的计时装置也逐渐开始采用音乐来充当铃声。此装置不仅为人们日常生活的计时提供了方便,同时也为目前快节奏的生活带来了乐趣。

本次设计以89C51单片机为基础,利用单片机编成技术对芯片进行功能设定,实现音乐的播放。同时,利用单片机的定时器中断,在单片机内部产生所需要的音乐频率,并通过音频功率放大器将音频信号放大,通过蜂鸣器连续播放一段音乐。此设计通过多次测试,音乐声音宏亮清晰,节拍正常,达到预期效果。

本文将围绕基于单片机的自动音乐播放器,介绍一些关于单片机的基础知识、音乐播放器的制作原理及方法(其中包括了音乐编程原理)、定时器的设定,以及仿真软件(Keil、Protel99 SE)的使用方法和相关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-Integrated Circuit)及SPI(Serial Peripheral Interface)等串行总线方式,进一步缩小了体积,简化了结构。

(6)单片机的系统扩展和系统配置较典型、规范,容易构成各种规模的应用系统。优异的性能价格比。

1)集成度高、体积小、有很高的可靠性。

单片机把各功能部件集成在一块芯片上,内部采用总线结构,减少了各芯片之间的连线,大大提高了单片机的可靠性与抗干扰能力。另外,其体积小,对于强磁场环境易于采取屏蔽措施,适合于在恶劣环境下工作。

此外,程序多采取固化形式也可以提高可靠性。

2)控制功能强。

为了满足工业控制要求,一般单片机的指令系统中均有极丰富的转移指令、I/O口的逻辑操作以及位处理功能。单片机的逻辑控制功能及运行速度均高于同一档次的微机。

3)单片机的系统扩展、系统配置较典型、规范,容易构成各种规模的应用系统。

1.3.2 单片机的应用

A 自动控制

例:单片机已在工业过程控制、机床控制、机器人控制、汽车控制以及飞行器制导系统等方面得到广泛的应用。

B 智能仪表

智能家居系统

智能小区管理系统

自动售货机

ATM

C 在实时控制中的应用

数字万用表

数字示波器

数字温度计

环境监测仪

D 在分布式多机系统中的应用

E 家用电器

全自动洗衣机、热水器、电子游戏机等

1.4 系统设计总体方案

单片机音乐播放器控制系统结构简单,环节较少,因此,单片机音乐播放器包括LED 彩灯、数码管的显示。除了播放音乐有按键外,其余的硬件组成大体相同。对于单片机音乐播放器声音的读出除了蜂鸣器以外,还要配置合适的放大器播放出响亮的声音。

单片机音乐播放器电路板向着小型化、低功耗、抗千扰、低成本、实用功能方向发展。因此在对单片机的选择趋向于容量适中、功能丰富、性能可靠、价格低的元件。因此本设计中应用最为广泛的MCS-51系列8位单片机8051。

2 MCS-51单片机的结构与原理

2.1 MCS-51单片机的基本结构

2.1.1 8051单片机的基本组成及主要性能

TXD RXD

图 2-1 8051基本组成

(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芯片的内部有时钟电路,但石英晶体和微调电容需外接。时钟电路为单片机产生时钟脉冲序列。系统允许的晶振频率一般为6 MHz和12 MHz。

从上述内容可以看出,MCS-51虽然是一个单片机芯片,但作为计算机应该具有的基本部件它都包括,因此,实际上它已是一个简单的微型计算机系统了。

2.1.2 8051单片机的外部引脚说明

8051是标准的40引脚双列直插式集成电路芯片,引脚如图2-2所示。

图 2-2 80c51引脚

A 信号引脚介绍

(1)主电源引脚

◇ VCC:+5 V电源

◇ 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编程期间,此引脚接上加21V EPROM编程电源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-1 P3口各引脚与第二功能表

以上把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个振荡周期)的高电平。若时钟频率为12 MHz,每机器周期为1μs,则只需2μs以上时间的高电平,在RST引脚出现高电平后的第二个机器周期执行复位。

单片机复位期间不产生ALE和PSEN信号,即ALE=1和PSEN=1。这表明单片机复位期间不会有任何取指操作。复位后,内部各专用寄存器状态如下:

PC: 0000H TMOD: 00H

ACC: 00H TCON: 00H

B: 00H TH0: 00H

PSW: 00H TL0: 00H

SP: 07H TH1: 00H

DPTR: 0000H TL1: 00H

P0~P3:FFH SCON: 00H

IP: ***00000B SBUF:不定

IE: 0**00000B PCON: 0***0000

其中,*表示无关位。注意:

(1)复位后PC值为0000H,表明复位后程序从0000H

开始执行,这一点在实训中已介绍。

(2)SP值为07H,表明堆栈底部在07H。一般需重新设置SP值。

(3)P0~P3口值为FFH。P0~P3口用作输入口时,必须先写入“1”。单片机在复位后,已使P0~P3口每一端线为“1”,为这些端线用作输入口做好了准备。

2.2 MCS-51单片机的微处理器

2.2.1 运算器

ALU

实现8 位数据的算数运算、逻辑运算和位运算。

累加器A

用于向ALU提供操作数和存放运算的结果。

最常用的一个专用寄存器

·大部分单操作数指令的操作数取自A

很多双操作数指令的一个操作数取自A

算术运算和逻辑运算的结果放在A或AB对中

指令系统采用A 作为累加器的标识符

寄存器B

8位寄存器作一RAM单元用

与累加器 A 配合使用,一般用于乘除法运算

寄存器 B 存放第二操作数、乘积的高8位字节

程序状态字PSW

8位寄存器,存放ALU运算结果的特征

格式如下:

表 2-2 八位寄存器运算特征

D7 D6 D5 D4 D3 D2 D1 D0

PSW

2.2.2 控制器

程序计数器PC

16位专用寄存器,寻址范围64KB

通电时自动复位,运行时可手动复位,复位后,

PC的内容自动清零 PC 0000H 系统的启动地址

用来存放下一条指令地址。CPU取指令时,将PC内容经地址总线送到程序存储器,从该地址单元取回指令,译码并执行;同时,PC自动加1

此时的程序是顺序执行的

如果程序需要转移,可在程序中安排转移或条件转移指令

指令寄存器IR

保存当前正在执行的一条指令。

定时与控制

控制取指令、执行指令、存取操作数或运算结果等操作,向其它部件发出各种微操作控制信号,协调各部件的工作。

指令寄存器IR

保存当前正在执行的一条指令。

定时与控制

控制取指令、执行指令、存取操作数或运算结果等操作,向其它部件发出各种微操作控制信号,协调各部件的工作。

2.3 MCS-51单片机的存储器

8051单片机与一般微机的存储器配置方式很不相同。

一般微机通常只有一个逻辑空间,可以随意安排ROM或RAM。访问存储器时,同一地址对应唯一的存储单元,可以是ROM也可以是 RAM,并用同类访问指令。而MCS-51则普林斯顿与哈佛两种不同结构。

8051在物理结构上设计成程序存储器与数据存储器独立分开的哈佛结构:

片内程序存储器4KB(ROM 0000H-0FFFH)

片内数据存储器128B(RAM 00H-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。因这些寄存器的功能已作专门规定,故称之为专用寄存器(Special Function Register),也可称为特殊功能寄存器。

2.3.2 内部程序存储器

8051的程序存储器用于存放编好的程序和表格常数。8051片内有4 KB的ROM。051的片外最多能扩展64 KB程序存储器,片内外的ROM是统一编址的。如端保持高电平,8051的程序计数器PC在0000H~0FFFH地址范围内(即前4 KB地址)是执行片内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位的计数器,它的作用是控制程序的执行顺序。其内容为将要执行指令的地址,寻址范围达64 KB。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的各位定义如下:

除PSW.1位保留未用外,其余各位的定义及使用如下:

CY(PSW.7)——进位标志位。CY是PSW中最常用的标志位。其功能有二:一是存放算术运算的进位标志,在进行加或减运算时,如果操作结果的最高位有进位或借位时,CY 由硬件置“1”,否则清“0”;二是在位操作中,作累加位使用。位传送、位与位或等位操作,操作位之一固定是进位标志位。

AC(PSW.6)——辅助进位标志位。在进行加减运算中,当低4位向高4位进位或借位时,AC由硬件置“1”,否则AC位被清“0”。在BCD码调整中也要用到AC位状态。

F0(PSW.5)——用户标志位。这是一个供用户定义的标志位,需要利用软件方法置位或复位,用以控制程序的转向。

RS1和RS0(PSW.4,PSW.3)——寄存器组选择位。它们被用于选择CPU当前使用的通用寄存器组。通用寄存器共有4组。

这两个选择位的状态是由软件设置的,被选中的寄存器组即为当前通用寄存器组。但当单片机上电或复位后,RS1 RS0=00。

OV(PSW.2)——溢出标志位。在带符号数加减运算中,OV=1表示加减运算超出了累加器A所能表示的符号数有效范围(-128~+127),即产生了溢出,因此运算结果是错误的,否则,OV=0表示运算正确,即无溢出产生。在乘法运算中,OV=1表示乘积超过255,即乘积分别在B与A中,否则,OV=0,表示乘积只在A中。在除法运算中,OV=1表示除数

为0,除法不能进行,否则,OV=0,除数不为0,除法可正常进行。

P(PSW.0)——奇偶标志位。表明累加器A中内容的奇偶性。如果A中有奇数个“1”,则P置“1”,否则置“0”。凡是改变累加器A中内容的指令均会影响P标志位。此标志位对串行通信中的数据传输有重要的意义。在串行通信中常采用奇偶校验的办法来校验数据传输的可靠性。

(5)数据指针(DPTR)。数据指针为16位寄存器。编程时,DPTR既可以按16位寄存器使用,也可以按两个8位寄存器分开使用,即:

DPH DPTR高位字节

DPL DPTR低位字节

DPTR通常在访问外部数据存储器时作地址指针使用。由于外部数据存储器的寻址范围为64 KB,故把DPTR设计为16位。

(6)堆栈指针(SP—Stack Pointer)。堆栈是一个特殊的存储区,用来暂存数据和地址,它是按“先进后出”的原则存取数据的。堆栈共有两种操作:进栈和出栈。

由于8051单片机的堆栈设在内部RAM中,因此SP是一个8位寄存器。系统复位后,SP的内容为07H,从而复位后堆栈实际上是从08H单元开始的。但08H~1FH单元分别属于工作寄存器1~3区,如程序要用到这些区,最好把SP值改为1FH或更大的值。一般在内部RAM的30H~7FH单元中开辟堆栈。SP的内容一经确定,堆栈的位置也就跟着确定下来,由于SP可初始化为不同值,因此堆栈位置是浮动的。

注意:MCS-51系列单片机有21个可寻址的专用寄存器,其中有11个专用寄存器是可以位寻址的。对专用寄存器的字节寻址问题作如下几点说明:

1)21个可字节寻址的专用寄存器是不连续地分散在内部RAM高128单元之中,尽管还余有许多空闲地址,但用户并不能使用。

2)程序计数器PC不占据RAM单元,它在物理上是独立的,因此是不可寻址的寄存器。

3)对专用寄存器只能使用直接寻址方式,书写时既可使用寄存器符号,也可使用寄存器。

2.4 MCS-51单片机的定时计数

2.4.1 定时器/计数器的结构

图 2-5 定时器/计数器的结构

定时/计数器逻辑结构

计数器 2个16位T/C分别由8位计数器TH0、TL0、TH1、TL1组成“+1”结构控制寄存器TCON:控制T/C的启停、中断等

方式寄存器TMOD:控制T/C的工作方式

2.4.2 定时器/计数器的工作方式

(1) 方式0 M1M0=00

13位的定时计数器,由TH的8位和TL的低5位组成

以T1为例:

图 2-6 定时/计数器方式0逻辑图

(2)方式1 M1M0=01

16位的定时计数器,由TH的8位和TL的8位组成

以T1为例:

图 2-7 定时/计数器方式1逻辑图

(3)方式2 M1M0=10

可自动重装载的8位计数器

TL1(TL0)被定义为计数器

TH1(TH0)被定义为赋值寄存器

以T1为例:

图 2-8 定时/计数器方式2逻辑图

(4)方式3 M1M0=11

T0被分成2个相互独立的8位计数器TL0 、TH0

TL0使用自己本身的一些控制位C/T、GATE、TR0

TF0、INT0等。TH0只能做定时器,并使用T1的控制位TR1、TF1,同时占用T1的中断源

图 2-9 定时/计数器方式3逻辑图

TH0借用了T1的TR1和TF1,因此控制了T1的中断

此时T1只能用在一些不要中断的情况下

定时/计数器方式3逻辑图

2.4.3定时/计数器的初始化

初始化一般有以下几个步骤:

(1)确定工作方式,对方式寄存器TMOD赋值

(2)预置定时或计数初值,直接将其写入T0、T1中

(3)根据需要对中断允许寄存器有关位赋值,以开放或禁止定时/计数器中断

(4)启动定时/计数器,将TRi 赋值为“1”

2.5 MCS-51单片机的中断系统

中断的概念:中断是计算机工作过程的随机事件。

2.5.1 中断源

A 中断源

中断源:引起中断的事件或设备称为中断源。

采用中断的优点:良好的中断系统使处理机具有随机应变的能力,从而扩大应用范围,提高CPU效率

基于51单片机蜂鸣器发声的-C语言程序

说明:按下不同的按键会是SOUNDER发出不同频率的声音。本例使用延时函数实现不同频率的声音输出,以后也可使用定时器 */ #include #define uchar unsigned char #define uint unsigned int sbit BEEP=P3^7; sbit K1=P1^4; sbit K2=P1^5; sbit K3=P1^6; sbit K4=P1^7; //延时 void DelayMS(uint x) { uchar t; while(x--) for(t=0;t<120;t++); } //按周期t发音 void Play(uchar t) { uchar i; for(i=0;i<100;i++) { BEEP=~BEEP; DelayMS(t); } BEEP=0; } void main() { P1=0xff; BEEP=0; while(1) { if(K1==0) Play(1); if(K2==0) Play(2); if(K3==0) Play(3); if(K4==0) Play(4); } }

说明:程序运行时播放生日快乐歌,未使用定时器中断,所有频率完全用延时实现 */ #include #define uchar unsigned char #define uint unsigned int sbit BEEP=P3^7; //生日快乐歌的音符频率表,不同频率由不同的延时来决定 uchar code SONG_TONE[]= {212,212,190,212,159,169,212,212,190,212,142,159,212,212,106,126,159,169,190,1 19,119,126,159,142,159,0}; //生日快乐歌节拍表,节拍决定每个音符的演奏长短 uchar code SONG_LONG[]= {9,3,12,12,12,24,9,3,12,12,12,24, 9,3,12,12,12,12,12,9,3,12,12,12,24,0}; //延时 void DelayMS(uint x) { uchar t; while(x--) for(t=0;t<120;t++); } //播放函数 void PlayMusic() { uint i=0,j,k; while(SONG_LONG[i]!=0||SONG_TONE[i]!=0) { //播放各个音符,SONG_LONG为拍子长度 for(j=0;j

音乐播放器设计实习报告

《.net技术》实习报告带智能关机和查看日历功能的音乐播放器设计班级:指导老师: 姓名:学号: 设计时间:

正文开始 设计目的: 很多人在使用播放器的时候下载的播放器软件总是比较大,一般软件较大的打开就会比较慢,运行起来也没较小的软件运行的更“流畅“。而且当我们使用播放器的时候或是只用电脑的时候我们有时会忘记关掉电脑就离开或是睡着了!虽然电脑自带的操作系统也可以设置定时关机但比较麻烦,对电脑初学者更是不知道怎么使用操作系统设置定时关机啦!还有就是我们电脑桌面下的时钟一般只显示了几点钟,并没有显示今天是多少号,所以在影月播放器中添加一个可以查看日历的功能是很必要的! 实现的功能: 在这里我就为大家设计一款小巧的音乐播放器,同时还带有智能关机功能,所谓智能关机就是你想怎么时候关机就什么时候关机,你想立刻关机就立刻关机,想定时关机就可以自己设置关机时间,设置方法非常的简单啦。同时你只需要单击一下一个“三角图标键”(在下面还将结合图示提到)就可以看到日历表了,在日历表里你也可以选择查看你需要的那个月的日历表。同时我也在播放器中添加了显示现在时钟的功能。 下面介绍一下我设计的播放器的所有功能:首先你可以通过“添加文件夹”按钮添加你选择的文件夹内的所有音频文件,你也可以通过“添加文件”按钮单个添加你所要添加的音频文件,具体方法在下面我会给出截图加以说明,保证一看就懂,就会用。添加音乐文件后你就可以在你的播放列表里看到你添加的歌曲名了。你可以通过双击列表中的歌曲名进行播放你双击的歌曲或者单击选中列表中歌曲名后再单击播放按钮进行播放。在播放时你可也看到正在播放的歌曲名和播放进度,这里的播放进度使用显示正在播放的歌曲“已经播放了多长时间”和这首歌要播放的“总时间”,还有就是上一曲、暂停、下一曲、停止,除实现播放的基本功能外,还有一个功能那就是我在上面给大家提到的“智能关机” 物体规则震动发出的声音称为“音乐”,由有组织的乐音来表达人们思想感情、反映现实生活的一种艺术就是音乐,音乐是一种符号,声音符号,表达人的所思所想,音乐能表达一个人的内心世,界音乐能是人快乐,能使人放松心情。为了方便人们能够听到美丽的音乐,音乐播放器就成为我们的音乐大师了。 设计好的播放器运行时如下图:

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

基于51单片机的音乐播放器 余子健、刘胤、宋亮 摘要:本大作业是基于sst89e52rd2单片机制作的wav音乐播放器。该播放器可以播放存在sd卡中的音乐,通过对sd卡的读取并将数字信号送入单片机中,借助8位DA转换器TLC5620 变成模拟信号,经过放大器TDA2822放大交给扬声器发出最初读取的音频信号,实现音乐播放的功能。 关键词:SD卡,WAV文件,DA,音频放大 1背景 音乐随身听产品经过几年的发展,已经变得相当成熟。市场上可以购买到各类不同的音乐播放器,产品线涵盖了高中低不同档次。作为学习与研究,本作品尝试利用STI51开发板板载资源以及外搭的功率放大电路制作一台音乐播放器,能够播放通过计算机拷贝在SD卡(或MMC卡、TF卡)的根目录中的某一个WAV 文件。 2硬件设计 该音乐播放器硬件组成如下 本音乐播放器使用容量为2G的SD作为外部存储器 主控制器采用SST公司生产的SST89E58RDA,其40引脚封装的芯片功能模块如图1所示。芯片主要特想如下: ?兼容80C51系列,内置超级FLASH存储器的单片机 ?工作电压VDD=4.5~5V,5V工作电压时0-40MHz频率范围 ?1KB的内部RAM ?两块超级FLASH EEPROM,32KB的基本存储卡和8KB的二级存储块(扇区大小为128字节),二级存储块可用于存放掉电后要保存的数据,放在内部具有极强的抗干扰性?最大片外程序/数据地址空间为64KB ?全双工增强型UART,帧错误检测,自动地址识别 ?9个中断源,4个中端优先级 ?降低EMI模式(通过AUXR SFR不允许ALE输出时钟),确保了单片机的高抗干扰性?双DPTR指针(查表,寻址更方便)

基于51单片机的音乐播放器设计

题目:音乐播放器 课程设计(论文)任务书

摘要 随着电子技术的发展和计算机越来越普遍的使用,单片机作为这两项技术的有机结合也得到了广泛的应用,在某些领域具有不可替代的作用。音乐播放功能随处都会用到,如,在开发儿童智力的玩具中,等等。目前,基于单片机实现音乐播放,其体积小、价格低、编程灵活等特点在这一领域独领风骚。 单片机的英文名称为single chip microcomputer,最早出现在20世纪70年代,国际上现在已逐渐被微控制器(Microcontroller Unit 或MCU)一词所取代。它体积小,集成度高,运算速度快,运行可靠,功耗低,价格廉,因此在数据采集、智能化仪表、通讯设备等方面得到了广泛应用。而8051单片机在小到中型应用场合很常见,已成为单片机领域的实际标准。随着硬件的发展,8051单片机系列的软件工具也有了C级编译器和实时多任务操作系统RTOS,为单片机编程使用C语言提供了便利的条件;并针对单片机常用的接口芯片编制通用的驱动函数,可针对常用的功能模块,算法等编制相应的函数;C语言模块化程序结构特点,可以使程序模块大家共享,不断丰富,这样就使得单片机的的程序设计更简单可靠,实时性强,效率高。作为测控技术与仪器的学生,掌握8051单片机硬件基础及其相关软件操作,将其应用于现代电子产品中是必要而且重要的,这次课程设计我们的题目是用单片机实验箱系统制作音乐播放器。 本次课程设计主要内容是通过单片机C51语言进行编程,以产生乐曲音符和节拍,把乐谱翻译成计算机语言(音符转换诚成相对应的方波频率即定时器装载初值,节拍转换成相对应的延长时间),并将其预先存储到单片机里,然后根据按键调用再由单片机进行信息处理,在经过信号放大,由喇叭放出乐曲声,实现音乐播放的功能。其主要表现在可以播放十首歌曲,可以用十个数字键控制播放的歌曲,并且能在LCD液晶屏显

音乐播放器的详细设计

音乐播放器详细设计 1.引言 随着社会的快速发展,现今社会生活紧张,而欣赏音乐是其中最好的舒缓压力的方式之一,音乐成了我们生活工作中的一个重要的部分。而3G时代的到来,手机移动应用越来越普遍。此文档就是为了能更好地设计出一个基于android系统的音乐播放器而编写的。 1.1 编写目的 为软件的开发者能更好的理解和明确软件开发的详细过程,安排项目与进度、组织软件开发与测试,撰写本文档。本文档供项目组成员,软件开发人员参考。1.2项目背景 本项目由李雪梅、杨挺等人提出,由本组成员联合开发,实现播放现今流行的音乐MP3等文本格式。 该软件是基于Android系统的音乐播放软件,并能够与其他音乐播放软件兼容。 1.3 参考资料 [1] 重庆大学出版社《软件工程》“软件计划与可行性分析” [2] 靳岩、姚尚明人民邮电出版社《Android开发入门与实践》 [3] 可行性分析 [4] 《音乐播放器需求分析书》 [5] 《音乐播放器总体设计说明书》 1.4项目开发计划 实施计划:

阶段名称负责人 需求分析杨挺、李雪梅 总体设计李雪梅、杨挺 详细设计李雪梅、杨挺 软件测试李雪梅、杨挺 在技术方面,编程知识比较缺乏,对有些与项目相关的软件 不熟悉,需进行人员的技术培训(自学为主),技术难点是数据库的构架和软件功能的设计。 2. 总体设计 2.1 项目目的 本项目的目的是开发一个可以播放主流的音乐文本格式的播放器。设计的主要实现功能是播放MP3等格式的音乐文件,并且能控制播放,暂停,停止,音量控制,选择上一曲,选择下一曲,更改皮肤,歌曲列表文件的管理操作,在线播放,读取 存储卡播放等多种播放控制,界面简明,操作简单。 软件系统检测到错误行为时,报告错误,并提示处理操作。 2.2 软件运行环境 硬件:Android操作系统手机 系统软件:Android 2.2 -- 4.0版本 支撑软件:Eclipse 7.5 、ADT 1.5 2.3 需求概述

基于单片机的音乐播放器

基于单片机的音乐播放器 摘要 单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统。 基于单片机的音乐播放器可应用于MP3、MP4,扩音器等很多方面,并可作为很多系统的辅助功能,作为单片机的重要硬件资源之一,利用定时器可以产生各种固定频率的方波信号,也可以产生包括"Do"、"Re"、"Me"--等音阶在内的各种频率声音。将各个音阶连接在一起,便可组成一支曲子或是演奏一段旋律。基于这个思想,采用AT89C52单片机设计了一款特殊的"音乐播放器",本播放器可实现播放、暂停、复位等功能。 关键字:单片机;集成电路:89C52芯片;音乐播放器

Abstract Single Chip Microcomputer is an integrated circuit chip, VLSI technology is the use of having the data processing capabilities of the CPU random access memory RAM, read-only memory ROM, a variety of I / O port and interrupt system, the timer / counter functions (may also include a display driving circuit, the pulse width modulation circuit, an analog multiplexer, A / D converter circuit, etc.) are integrated into a small sound system on a microcomputer composed of silicon. Microcontroller-based music player can be used in many ways mp3, MP4, loudspeakers, etc., and as a secondary function of many systems, as one of the important microcontroller hardware resources, using the timer can generate a variety of fixed frequency square wave signal can be generated include the "Do", "Re", "Me" - like various frequencies including the sound scale. The various scales together, may form a song or play a melody. Based on this idea, using AT89C52 designed a special "Music Player", the player can be realized play, pause, reset and other functions. Keyword:Single Chip Microcomputer;integrated circuit;89C52 chip;Music Player

51单片机蜂鸣器播放音乐代码(生日快乐 两只蝴蝶 祝你平安)

/*生日快乐歌曲*/ #include #define uint unsigned int #define uchar unsigned char sbit beep = P1^5; uchar code SONG_TONE[]={212,212,190,212,159,169,212,212,190,212,142,159, 212,212,106,126,159,169,190,119,119,126,159,142,159,0}; uchar code SONG_LONG[]={9,3,12,12,12,24,9,3,12,12,12,24, 9,3,12,12,12,12,12,9,3,12,12,12,24,0}; //延时 void DelayMS(uint x) { uchar t; while(x--) for(t=0;t<120;t++); } void PlayMusic() { uint i=0,j,k; while(SONG_LONG[i]!=0||SONG_TONE[i]!=0) { //播放各个音符,SONG_LONG 为拍子长度 for(j=0;j

音乐播放器Java课程设计报告

课程设计报告课程设计题目:java音乐播放器 学生姓名: 专业:XXXXXXXXXXXXX 班级: 指导教师: 20XX年X月X日

一、课程设计目的 1、编程设计音乐播放软件,使之实现音乐播放的功能。 2、培养学生用程序解决实际问题的能力和兴趣。 3、加深java中对多媒体编程的应用。 二、课程设计的要求 利用学到的编程知识和编程技巧,要求学生: 1、系统设计要能完成题目所要求的功能,设计的软件可以进行简单的播放及其他基本功能。 2、编程简练,可用,尽可能的使系统的功能更加完善和全面 3、说明书、流程图要清楚。 三、课程设计内容 1、课程设计的题目及简介 音乐播放软件要求: 有图形界面,能播放MP3歌曲,有播放列表,前一首、后一首等常用播放软件功能。 2、设计说明 主要运用多媒体编程、图形界面、数组及循环进行设计,从而实现简单的音乐播放。 public MyMusicPlayer():实现窗口的成员方法 publi c void run():实现改变歌曲的播放状态的成员方法 public AudioClip loadSound(String filename):实现对声音的加载public void mouseClicked(MouseEvent e):实现对按钮的监听public void itemStateChanged(ItemEvent arg0):返回一个AudioClip 对象

3、程序流程图 4、程序清单 import java.awt.*; import javax.swing.*; import java.applet.*; import java.awt.event.*; import https://www.doczj.com/doc/362867387.html,.*; public class MyMusicPlayer extends Thread implements MouseListener,ItemListener{ JFrame MainFrame=new JFrame("MyMusicPlayer"); //定义主窗体 JLabel songname=new JLabel(); //用标签 显示状态 JButton last=new JButton(); JButton play=new JButton();

51单片机四路抢答器(LED灯,数码管显示,蜂鸣器提示音)C语言源程序

51单片机四路抢答器(LED灯,数码管显示,蜂鸣器提示音)C语言源程序2009-10-31 10:53 其实就是在原有的基础上,加入数码管显示及蜂鸣器,当然根据自己的要求,适当使用单片机I/O口 接线为: P0 P2 来控制数码管显示,其中P0为数码管显字控制,P2用来选择位(第几个数码管) P1用来控制8个LED灯 P3,独立按键(可以根据需要修改) P3^5(找了一个没有用到的I/O口,当然,可以用键盘扫描的方式来实现,这样的话,可以实现4*4=16路的抢答器,了解原理,做相应修改即可。 #include sbit key1=P3^0; //这里采用独立按键(4路) sbit key2=P3^1; sbit key3=P3^2; sbit key4=P3^3; sbit SPK=P3^5; //蜂鸣器,最好在ISP编程时先不接入,(我用的是杜邦线,可以设置跳线控制) void delay(unsigned int cnt) { while(--cnt); } void speak(unsigned int j) { unsigned int i; for(i=0;i

{ bit Flag; while(!Flag) { if(!key1){P1=0xFE;Flag=1;speak(300);P2=0;P0=0x06;} //LED1,数码管1显示1,蜂鸣器叫 else if(!key2){P1=0xFD;Flag=1;speak(300);P2=1;P0=0x5b;}//LED2,数码管2显示2,蜂鸣器叫 else if(!key3){P1=0xFB;Flag=1;speak(300);P2=2;P0=0x4f;}//LED3,数码管3显示3,蜂鸣器叫 else if(!key4){P1=0xF7;Flag=1;speak(300);P2=3;P0=0x66;}LED4,数码管4显示4,蜂鸣器叫 } while(Flag); } 测试完,手动复位即可,当然可设置相应的按键来控制标志:Flag,进行继续抢答。。

基于单片机音乐播放器课程设计报告书

目录 第一章绪论 (1) 第二章音乐播放器主要器件相关知识介绍 (2) 2.1 AT89C51 (2) 2.2 LCD 显示器 (4) 2.3 喇叭 (5) 2.4 键盘 (5) 第三章音乐播放器设计原理 (6) 3.1 单片机发声的基本原理 (6) 3.2 设计的相关音乐说明 (7) 3.3 音乐播放器设计功能说明 (7) 3.4 设计结构框图 (9) 3.5 主程序控制的工作流程图 (10) 3.6 播放音乐的主程序 (11) 设计心得 (15) 参考文献 (15)

第一章绪论 二十世纪九十年代以来,计算机、信息、电子、控制、通信等技术得到迅速发展,促使了社会生产力的提高,也使人们的生产方式和生活方式产生了日新月异的变化。随着人们生活水平的提高及对音乐的喜爱,对音乐播放器的品质,功能,品种等提出了越来越多的要求,表现在对控制系统性能、可靠性等要求越来越高。而品质的提高,功能的更新,可靠性的增强,品种的变化无不于产品的核心控制部分水平的提高密不可分。家用音乐播放器产品及其它有关消费电器产品都是一些开环或闭

环控制系统,都由核心控制部分,执行部分与人机界面三部分组成。而最为重要的控制部分一般是由单片机来执行完成的,这就必将导致和促进单片机在音乐领域应用的发展。现在这些由单片机实现的音乐播放器的功能越来越强、费用越来越低。例如,就市场上的mp3目前的功能越来越强大体积却越来越小,价格也逐渐便宜,被大多数人所能接受。但这些音乐播放器也或多或少的存在着一些问题,解决这些问题,还除智能化的单片机莫属。 设计指标: (1)设计一个(4×4)的键盘,并将16个键设计成16个音; (2)可弹奏想要表达的音乐; (3)该电子琴包含1首示例音乐,接通电源可播放示例音乐。 设计要求: (1)按设计指标进行电路设计; (2)列出音阶与单片机定时器输出频率关系表格; (3)制作符合设计指标的硬件电路。

单片机控制蜂鸣器概要

单片机控制蜂鸣器20年月日

目录 绪论 (1) 1、硬件设计 (2) 1.1 总体设计图 (2) 1.2 简易结构框图 (2) 1.3各部分硬件设计及功能 (3) 1.3.1 蜂鸣器发声电路:(如图1.3.1) (3) 1.3.2 电源稳压电路: (4) 1.4 元件清单 (4) 2、软件设计 (5) 2.1设计思想 (5) 2.2 程序流程图 (5) 2.3 音调、节拍以及编码的确定方法 (6) 2.3.1音调的确定 (6) 2.3.2 节拍的确定 (8) 2.3.3 编码 (9) 3、电路仿真与分析 (10) 4、电路板焊接、调试 (11) 4.1 焊接 (11) 4.2 调试 (12) 5、讨论及进一步研究建议 (12) 6、心得 (12) 7、单片机音乐播放器程序实例(卡农) (13)

绪论 蜂鸣器播放音乐电路设计对于单片机初学者来说是一个简单易实现的课题。通过编写程序使单片机产生一定频率的方波信号,方波信号进入蜂鸣器便产生我们熟知的音调。 我们用定时/计数器使单片机产生方波,利用定时/计数器使输出管脚在一定周期内反复翻转,达到所需频率,而我们给定时/计数器的初始值就是我们的音符—半周期数据表,通过我们播放的音乐的乐谱,来对数据表进行调用。 我们用延时子程序来表示节拍,不同的节拍代表不同的延时。 完成此次设计之后完全可以进行扩展,例如增加按键以及LED灯光效果,制成一个简易的音乐盒,给人以视觉听觉等全方位的享受。

1、硬件设计1.1 总体设计图 1.2 简易结构框图

1.3各部分硬件设计及功能 1.3.1 蜂鸣器发声电路:(如图1.3.1) 图1.3.1 如图所示,蜂鸣器发声电路是播放音乐电路的主要执行电路,它由一个蜂鸣器,一个三极管和一个电位器组成。蜂鸣器负责发声,三极管将电流放大,而电位器则控制流过蜂鸣器电流的大小,来达到控制音量的目的。

音乐播放器设计文档

生产实习报告 题目:音乐播放器 学生姓名:张凡 学号: 201220220123 班级: 1222201 专业:数字媒体技术 指导教师:张金 2015年08 月08日

目录 一、引言 (3) 1.1 项目背景 (3) 1.2 项目研究的目的 (4) 1.3 安卓简介 (4) 二.功能分析 (5) 2.1 功能需求分析 (5) 2.2 系统性能需求 (6) 2.3 运行环境需求 (6) 三.程序详细设计 (6) 3.1 主界面的设计 (6) 3.2 播放界面设计 (11) 3.3 其他功能 (14) 四.调试与运行 (18) 4.1 调试 (18) 4.2 运行结果 (19) 五.总结 (21)

一、引言 1.1 项目背景 当今社会的生活节奏越来越快,人们对手机的要求也越来越高,由于手机市场发展迅速,使得手机操作系统也出现了不同各类,现在的市场上主要有三个手机操作系统,symbian,Windows mobile,以及谷歌的Android操作系统,其中占有开放源代码优势的Android系统有最大的发展前景。那么能否在手机上拥有自己编写的个性音乐播放器呢?答案是:肯定的,谷歌Android系统就能做到。本文的音乐播放器就是基于谷歌Android手机平台的播放器。 随着计算机的广泛运用,手机市场的迅速发展,各种音频视频资源也在网上广为流传,这些资源看似平常,但已经渐渐成为人们生活中必不可少的一部分了。于是各种手机播放器也紧跟着发展起来,但是很多播放器一味追求外观花哨,功能庞大,对用户的手机造成了很多资源浪费,比如CPU,内存等的占用率过高,在用户需要多任务操作时,受到了不小的影响,带来了许多不便,而对于大多数普通用户,许多功能用不上,形同虚设。针对以上各种弊端,选择了开发多语种的音频视频播放器,将各种性能优化,继承播放器的常用功能,满足一般用户(如听歌,看电影)的需求,除了能播放常见格式的语音视频文件,高级功能:还能播放RMVB格式的视频文件。此外,还能支持中文、英文等语言界面。

基于51单片机音乐播放器的设计

本科毕业论文(设计) 题目:基于51单片机音乐播放器的设计 学院: 班级: 姓名: 指导教师:王振义职称:副教授 完成日期:2015年5月20日

基于51单片机音乐播放器设计 摘要:在当今这个繁杂的社会,随着生活节奏的加快,人们从事长期的工作和面对学习过大的压力导致我们处于紧绷的状态,因此音乐对于调节压力不言而喻的十分重要。校园里的上下课的铃声,广场中爷爷奶奶伴随着音乐进行锻炼身体。此设备为人们目前压力过大的生活带来了乐趣。 本文是利用51单片机原理设计音乐演奏的硬件电路,并运用C语言进行程序部分的设计。经过51单片机来产生频率不同的波,这些波经过单片机输出和放大电路的放大驱使喇叭发出不一样的音调,延迟系统有可控制音符发音长短。把音乐转化成可以从发音设备中发出的悦耳动听的音乐。 关键字:单片机;音乐播放器;C语言

Design based on 51 SCM music player Abstract:In today's complex society, with the accelerating rhythm of life, the people in the long-term work and face learning too much pressure lead to us is in a state of tension, so the music is very important for regulating pressure self-evident.The ringing of a campus of adding and dropping classes, grandma and grandpa accompanied by music in the square to exercise.This device at present stress for people brought joy of life. This paper is the use of 51 single chip microcomputer hardware circuit design of music playing, and part using C language program design.After 51 single chip microcomputer to produce different frequency of wave, the wave through single chip microcomputer output and amplifying circuit amplifier drives the horn a different tone, length of the delay system with control pronunciation notes.Can put the music into sweet music from pronunciation in the device. Keywords : Single-chip processor; Music player; C programming language

51单片机实现蜂鸣器警车、救护车、消防车声

1. /*----------------------------------------------- 名称:喇叭 论坛:www.dofl https://www.doczj.com/doc/362867387.html, 编写:shifang 日期:2009.5 修改:无 内容:模拟警车发声 ------------------------------------------------*/ #i nclude //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义 sbi t SPK=P1^2; //定义喇叭端口 unsi gned char fr q; voi d DelayUs2x(un si gned char t);//函数声明 voi d DelayMs(un si gned char t); /*------------------------------------------------ 定时器初始化子程序 ------------------------------------------------*/ voi d Init_Ti mer0(voi d) { TM OD |= 0x01; //使用模式1,16位定时器,使用"|"符号可以在使用多个定时器时不受影响

//TL0=0x00; EA=1; //总中断打开 ET0=1; //定时器中断打开 TR0=1; //定时器开关打开 } /*------------------------------------------------ 主函数 ------------------------------------------------*/ mai n() { Ini t_Timer0(); //初始化定时器 while(1) { DelayMs(1); //延时1m s,累加频率值 fr q++; } } /*------------------------------------------------ uS延时函数,含有输入参数 un si gned ch ar t,无返回值 unsigne d char是定义无符号字符变量,其值的范围是 0~255 这里使用晶振12M,精确延时请使用汇编,大致延时

单片机课程设计报告简易音乐播放器

第一章前言 伴随着科技的发展和时代的进步,人们对生活质量的要求也越来越高,由以前简单的追求温饱和物质财富转向更高层面的精神追求!而这一切催生了智能仪器的发展,音乐则是人们娱乐生活的重要组成部分,目前市场上出现了许许多多的音乐播放器,而人们对播放器的功能需求也越来越广泛,本文将设计一个基于单片机的音乐播放器,通过对其全面的介绍与分析,让大家了解音乐播放器的原理! 第二章: 简易音乐播放器的功能和原理说明 音乐播放器,可以通过单片机板子上的数字按键对音乐播放的曲目进行控制,并且通过LED灯将播放的音乐加以区分,在播放音乐的同时点亮LED灯,让人知道现在正在播放的音乐曲目,从而实现简单的音乐播放功能! 表1 需求分析 功能说明:这次设计是依据单片机技术原理,通过硬件电路设计以及软件的编译而设计的一个简单的音乐播放器,可以通过按键选择播放四首歌曲(歌曲自选,只要将想要播放的歌曲的乐谱写入程序中即可)同时点亮相应的LED灯,并用它来指示当前播放的歌曲序列,只能实现简单的音乐播放功能。 原理说明:这个音乐播放器主要有晶振电路,复位电路,LED电路,按键电路以及扬声器组成。它利用单片机产生乐曲音符,再把乐曲音符翻译成计算机音乐语言,接着用单片机进行信息处理,再通过蜂鸣器或喇叭放出音乐。音乐的产生主要是通过单片机的I/O口输出高低不同的脉冲信号来控制扬声器发音。通常利用单片机的内部定时器0,工作在方式1下,再改变计数初值TH0和TL0来产生不同频率。当控制歌曲按键按下时,按照预先存放在单片机中的程序,就

会自动判断键值,然后启动计数器,按照程序产生一定频率的脉冲,接着通过uln2003芯片驱动扬声器,播放出乐曲。该硬件电路中用P3.0,P3.1,P3.2,P3.3控制四个按键,“0”,“1”,“2”,“3”分别控制四首音乐。P1.0,P1.1,P1.2,P1.3控制四个LED灯,它们分别对应四个按键,用来显示正在播放的歌曲,并用P2.3 来控制扬声器,电路为12MHz晶振频率工作,起振电路中C1 和C2为22pf。 第三章:系统硬件电路设计 1:硬件体系结构设计 该简易音乐播放器主要有单片机核心芯片89C52,LED发光二极管,扬声器,晶振电路,按键电路,复位电路组成,通过芯片引脚输出定时器产生的各种固定频率的方波信号,然后在经由扬声器产生各种频率的声音。另外,该方案使用的是单片机板子的内部振荡电路,89C52芯片的X1,X2引脚外接石英晶体。它的系统组成如图所示。 (1)晶振电路部分晶振的作用是给电路提供工作信号脉冲的,其实就是单片机的工作速度。本次设计选用12M晶振,则单片机的工作速度就是每秒12M。与此同时,也要注意单片机的工作频率范围。 (2)复位电路部分当系统出现问题时可以重置系统,解决一些问题 (3)LED显示部分显示系统在各种不同条件下的状态 (4)89C52芯片整个设计的核心,接收和处理信号及程序 (5)按键电路部分作为系统的输入

(完整版)基于51单片机的自动音乐播放器设计毕业设计

本科毕业论文(设计) 题目: 基于51单片机的自动音乐播放 器设计 院系:电子与通信工程学院 专业:通信工程 姓名:张志顺 指导教师:陈冬云 教师职称:助教

填写日期:2014年4月20日 摘要 为了人们在快节奏的日常生活,优化工厂、事业单位、公司等的计时系统,采用了依靠单片机为基础设计了一种的自动音乐播放器。本设计利用单片机89C58RD+的计数和定时功能,来完成对时间的定时和显示功能。并且,通过对定时器初值的设定来产生不同频率的声音,利用定时器中断来对音乐节拍长度的控制。通过LM386N1音频功率放大器的音频放大功能,将单片机控制输出的信号放大,然后通过扩音器播放乐曲。通过MAX232型芯片,可以转换PC机上的电压和单片机的电源电压,再通过相应串口接入PC机,这样就能从PC机上将用C语言编写的程序代码下载到单片机上。最后可以在数码管上显示时间,当到达之前设定的时间之后,

扩音系统就会自动播放一段连续而美妙动听的音乐。此设计规避了传统闹钟的难听并且刺耳声音,而变成的是美妙动听的音乐,能给处于当前快节奏生活的人们的日常生活提供精确的计时,且因为成本较低,值得推广。 关键词:单片机;自动音乐播放;音频转换;时间显示;LM386N1音频功率放大器。 Abstract

To people in the fast pace of daily life, optimization of factories, institutions, companies such as timing system, based on microcomputer was adopted to design a kind of automatic music player. This design using the single chip microcomputer 89 c58rd + count and timing functions, to complete the regular and display function of time. And, through to the setting of the initial value of timer to generate different frequencies of sound, using a timer interrupt to control of the beat of the music length. Through the audio amplifier function LM386N1 audio power amplifier, the single-chip microcomputer control output signal amplification, and then through loudspeakers. Through MAX232 chip, can convert the voltage of power supply voltage of PC and microcontroller, again through the corresponding access PC serial port, so you can from the PC to download program code written in C language to the single chip microcomputer. Last time can be displayed on the digital tube, when, after arriving in setting the time before the public address system will automatically play a continuous and delightful music. This design to avoid the traditional alarm clock ugly and give in the fast-paced life of the People's Daily life to provide accurate timing, and because of lower cost, is worth promoting. Key words: single chip microcomputer; Automatic music playback; Audio conversion; Time display; LM386N1 audio power amplifier.

单片机课程设计报告利用蜂鸣器播放音乐

课程设计:嵌入式系统应用 题目名称:利用蜂鸣器实现音乐播放功能 姓名: 学号: 班级: 完成时间:

1设计的任务 设计内容:动手焊接一个51单片机 设计目标:利用单片机上的蜂鸣器实现音乐播放功能 2 设计的过程 2.1 基本结构 1.STC89C52RC 在本次的试验中采用了STC89C52RC单片机,STC89C52RC单片机是宏晶科技推出的新一代高速/低功耗/超强抗干扰的单片机,指令代码完全兼容传统8051单片机,12时钟/机器周期,工作电压:5.5V~3.3V(5V单片机)/3.8V~2.0V(3V单片机),工作频率范围:0~40MHz,相当于普通8051的0~80MHz,实际工作频率可达48MHz,用户应用程序空间为8K 字节。 (STC89C52RC引脚图)

STC89C52RC单片机的工作模式: (1)典型功耗<0.1μA,可由外部中断唤醒,中断返回后,继续执行原程序(2)空闲模式:典型功耗2mA (3)正常工作模式:典型功耗4Ma~7mA (4)唤醒,适用于水表、气表等电池供电系统及便携设备 2.蜂鸣器及其工作原理: 蜂鸣器按其结构分主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。 接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场,振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。 本实验采用的是电磁式蜂鸣器。 蜂鸣器按其是否带有信号源又分为有源和无源两种类型。有源蜂鸣器只需要在其供电端加上额定直流电压,其内部的震荡器就可以产生固定频率的信号,驱动蜂鸣器发出声音。无源蜂鸣器可以理解成与喇叭一

音乐播放器Java课程设计报告

课程设计报告课程设计题目:java 音乐播放器 学生姓名: 专业:XXXXXXXXXXXXX 班级: 指导教师: 20XX 年X 月X 日

、课程设计目的 1、编程设计音乐播放软件,使之实现音乐播放的功能。 2、培养学生用程序解决实际问题的能力和兴趣。 3、加深java 中对多媒体编程的应用。 二、课程设计的要求 利用学到的编程知识和编程技巧,要求学生: 1、系统设计要能完成题目所要求的功能,设计的软件可以进行简单的播放及其他基本功能。 2、编程简练,可用,尽可能的使系统的功能更加完善和全面 3、说明书、流程图要清楚。 三、课程设计内容 1、课程设计的题目及简介 音乐播放软件要求: 有图形界面,能播放MP3 歌曲,有播放列表,前一首、后一首等常用播放软件功能。 2、设计说明 主要运用多媒体编程、图形界面、数组及循环进行设计,从而实现简单的音乐播放。 public MyMusicPlayer() :实现窗口的成员方法 publi c void run() :实现改变歌曲的播放状态的成员方法 :实现对声音的加载 public AudioClip loadSound(String ) :实现对按钮的监听 public void mouseClicked(MouseEvent e) public void itemStateChanged(ItemEvent arg0) :返回一个AudioClip 对象

3、程序流程图 * 出现界面 * 选择播放歌 曲 4、程序清单 import java.awt.*; import javax.swi ng.*; import java.applet.*; import java.awt.eve nt.* import java .n et.*; public class MyMusicPIayer exte nds Thread impleme nts MouseListe ner,ltemListe ner{ JFrame Mai nF rame =new JFrame( "MyMusicPlayer" ); // 定义主窗体 JLabel songname =new JLabel(); //用标签显示状态 JButton last =new JButto n(); JButt on play =new JButt on();

相关主题
文本预览
相关文档 最新文档