《单片机原理及应用》课程设计报告书课题名称音乐播放器姓名学号专业指导教师机电与控制工程学院年月日任务书本次课题是:设计一个以单片机为核心的音乐播放器,该音乐播放器具有音乐的循环播放及播放时的音乐显示等功能。
具体要求如下:设计三个键分别实现:播放/停止、下一曲、上一曲;同时用LED显示器显示播放曲目,为了节省电源,LED显示器在播放期间设计为关闭状态,只有当一首歌演奏结束或选曲时显示器才显示曲目信息。
当播放键打开时音乐开始播放,同时LED显示器显示,假如是第一首歌则LED显示器显示数字1,当打开下一曲按键时播放器开始播放第二首歌,同时LED显示器显示数字2。
声音经过三级管放大后由蜂鸣器输出。
音乐可以给我们的生活带来乐趣,音乐可以放松我们的心情,音乐可以让我们得到释怀。
而且通过这次设计我们可以学到关于单片机在实际生活中的设计应用,同时也使我们加深了对单片机的认识,提高了我们的编程能力,为我们能够更好的学习单片机有很大的帮助。
目录1.绪论 (1)2.方案论证 (2)3.方案说明 (2)4.硬件方案设计 (3)5.软件方案设计 (13)6.调试 (14)7.小结 (17)8.参考文献 (11)9.附录 (14)1.绪论二十世纪九十年代以来,计算机、信息、电子、控制、通信等技术得到迅速发展,现代家庭更加注重生活品质,健康、安全、舒适、便捷成为人们的迫切需要。
智能家电控制系统为智能家居的一个重要组成部分,为人们提供方便、安全、智能化、舒适的数字化生活提供解决方案。
随着电子技术的迅速发展,特别是随大规模集成电路出现,给人类生活带来了根本性的改变。
由其是单片机技术的应用产品已经走进了千家万户。
首先描述系统硬件工作原理,并附以系统结构框图加以说明,着重介绍了本系统所应用的各硬件接口技术和各个接口模块的功能及工作过程,其次,详细阐述了程序的各个模块和实现过程。
本设计以数字集成电路技术为基础,单片机技术为核心。
本文编写的主导思想是软硬件相结合,以硬件为基础,来进行各功能模块的编写。
系统以单片机的汇编语言进行软件设计,增加了程序的可读性和可移植性,为了便于扩展和更改,软件的设计采用模块化结构,使程序设计的逻辑关系更加简洁明了。
系统通过扬声器为载体发出声音,所以具有人性化的操作和悦耳的歌声。
要产生音频信号,只要算出某一音频的周期(频率的倒数),将此周期除以2即为半周期的时间,利用定时器计时此半周期时间,计时到后取反输出,重复此过程即得到此频率的声音信号。
此信号从P1.7脚输出。
定时器T0工作在定时方式1,改变TH0及TL0,产生不同的音频频率。
必须考虑到中断响应时间的影响,尤其在高音部分,若忽略中断响应时间,会使音频频率比标准值低几十Hz,相当于1/4音程,很容易听出来,对低音部分影响不大。
一般中断响应时间为3~6个机器周期,经过反复试验取5个机器周期作为校正最为恰当,表1中所给的定时初值就是考虑中断响应后的定时常数。
另外,为避免T1中断可能引起杂音,应将定时器T0中断设为高优先级。
这样编写出来的程序播放的音与标准音叉进行差频校音,非常准确和谐。
2.方案论证首先设定三个键分别将三个开关键接到单片机的三个端口P1.0—P1.2,P3.5作为输出接口。
8255的A口接LED显示器的字形控制端口,PC0接位控制端口,并将片选信号接口接好。
将输出信号通过三极管放大后由蜂鸣器输出,三极管的一端接高电平,一段接低电平,另一端接地。
3.方案说明当打开播放键时系统经过判别选出第一首歌曲,首先将歌曲地址送到寄存器中,然后调用音乐频率数码表,经过P3.5口输出,再经三极管放大,最后由蜂鸣器发出音乐。
同时在音乐播放期间,显示电路通过并行方式与单片机扩展的8255的PA口相连,用74LS244译码后接到显示上。
假如是第一首歌则显示器显示1,第二首则显示相应的数字2。
同时也可以通过相应的开关选择相应的歌曲。
4.硬件方案设计4.1单片机的选择单片机采用应用最为普遍的MCS-51系列单片机。
MCS-51单片机是由8位CPU、只读存储器EPROM/ROM、读写存储器RAM、并行I/O口、串行I/O口、定时器/计数器、中断系统、振荡器和时钟电路等部分组成,各部分之间通过内部总线相连。
MCS-51系列单片机的主要性能有:1)8位字长CPU和指令系统;2)1个片内时钟振荡器和时钟电路;3)64K外部数据存储器的地址空间;4)64K外部程序存储器的地址空间;5)32条双向且分别可位寻址的I/O口线;6)128B的片内RAM;7)2个16位定时器/计数器;8)具有2个优先级的5个中断源结构;9)1个全双工串行口;10)1个布尔处理器。
MCS-51单片机的核心部分是中央处理器CPU,它由运算器和控制器两大部分组成。
运算器用来完成算术运算、逻辑运算和进位操作,由算术逻辑单元(ALU)、位处理器、累加器ACC、寄存器B、暂存器TMP1和TMP2等组成,与一般运算器的作用类似。
控制器是用来统一指挥和控制计算机进行工作的部件,它由定时和控制逻辑、内部振荡电路OSC、指令寄存器及其译码器、程序计数器PC 及其增量器、程序地址寄存器、程序状态寄存器PSW、RAM地址寄存器、数据指针DPTR、堆栈指针SP等部分组成。
单片机工作的时间基准是由时钟电路提供的。
在单片机的XTAL1和XTAL2两个管脚,接一只晶振及两只电容就构成了单片机的时钟电路。
电路中,电容器C1和C2对振荡频率有微调作用,通常的取值范围为(30+10)pF。
石英晶体选择6MHz或12MHz都可以,其结果只是机器周期时间不同,影响计数器的计数初值。
如图所示:单片机的RST管脚为主机提供一个外部复位信号输入端口。
复位信号是高电平有效,高电平有效的持续时间应为2个机器周期以上。
单片机的复位方式有上电自动复位和手工复位两种。
4.4 8255A芯片的简介Intel 8086/8088 系列的可编程外设接口电路(Programmable Peripheral Interface)简称PPI,型号为8255(改进型为8255A及8255A-5),具有24条输入/输出引脚、可编程的通用并行输入/输出接口电路。
它是一片使用单一+5V电源的40脚双列直插式大规模集成电路。
8255A的通用性强,使用灵活,通过它CPU可直接与外设相连接。
4.4.1 8255SA的内部结构可编程并行接口Intel8255A, 其内部结构如图3.4.1所示,由以下4个部分组成:图4.4.1 8255A内部结构1.输入/输出端口A、B、C 。
这三个端口均可看作是I/O端口,但它们的结构和功能也稍有不同。
A口和B口是一个独立的8位I/O口。
C口:可以看作是一个独立的8位I/O口;也可以看作是两个独立的4位I/O口。
2.A组和B组控制电路。
这是两组根据CPU命令控制8255A工作方式的电路,这些控制电路内部设有控制寄存器,可以根据CPU送来的编程命令来控制8255A的工作方式,也可以根据编程命令来对C口的指定位进行置/复位的操作。
A组控制电路用来控制A口及C口的高4位;B 组控制电路用来控制B口及C口的低4位3.读/写控制逻辑。
(同上:它负责管理8255A的数据传输过程。
它接收CS*及RD*、WR*、RESET,还有来自系统地址总线的口地址选择信号A0和A1。
将这些信号组合后,得到对A组控制部件和B组控制部件的控制命令,并将命令发给这两个部件,以完成对数据、状态信息和控制信息的传输。
)4.数据总缓冲器。
(同上:它是8位的双向的三态缓冲器。
作为8255A 与系统总线连接的界面,输入/输出的数据,CPU的编程命令以及外设通过8255A传送的工作状态等信息,都是通过它来传输的。
4.4.2 8255A的引脚信号如图3.4.2所示是8255A的芯片引脚信号。
除了电源和地以外,其他信号可以分为两组。
1.和外设一边相连的:PA7-PA0:A组数据信号PB7-PB0:B组数据信号PC7-PC0:C组数据信号2.和CPU一边相连的:RESET:复位信号,低电平有效。
当RESET信号来到时,所有内部寄存器就被清除,同时,3个数据端口被自动设为输入端口。
D7-D0:它们是8255A的数据线,和系统数据总线相连。
CS\:芯片选择信号,低电平有效。
在一个系统中,一般根据全部接口芯片来分配若干较低位地址(比如A5、A4、A3)来组成各种芯片选择码,当这几位地址组成某一个代码时,译码器便往8255A的CS*端输出一个低电平,于是8255A被选中。
只有当CS\有效时,读信号RD\和写信号WR\才对8255A有效。
RD*:芯片读出信号低电平有效。
WR*:芯片写入信号低电平有效。
A1、A0:端口选择信号。
8255A内部有3个数据端口和一个控制端口,共四个端口。
规定当A1、A0为00时,选中A端口;为01时,选中B端口;为10时,选中C端口;为11时,选中控制口。
8255A的几个控制信号和传输动作之间的关系如下表8255A的控制信号与传输动作的对应关系4.4.3 8255A的控制1.工作方式控制字8255有三种工作方式:方式0、方式1、方式2。
两组端口可分别指定不同的工作方式。
每组端口在某种工作方式下,并不要求各信号同为输入或同为输出,而是可以分别指定。
方式选择控制字的格式如图3.4.3所示。
图3.4.3 方式选择控制字的格式2.PC口控制字PC口的各信号线常作为控制线来使用,因此,经常需要单独对每根信号线置1或置0。
这种操作用向PC口控制字寄存器送出PC口控制字来实现。
PC口控制字格式如图3.4.4所示。
应用注意:PC口控制字虽然是对端口C操作,但应写入到控制口地址,而不是写入到PC数据口。
编程举例:设PA数据口地址00E0H,PB数据口地址00E2H,PC 数据口地址00E4H,控制口00E6H例子一:当要求端口A工作在方式0,输出;端口B工作在方式1,输入;端口C的高4位为输入,低4位为输出;则方式控制字为10001110B 或8EH,如图3.4.5所示汇编指令如下:MOV DX,00E4HMOV AL,8EHOUT DX,AL例子二:当要求端口A工作在方式1,输入;端口B工作在方式0,输入;端口C的高4位为输出,低4位为输出;则方式控制字为10110010B 或0B2H,如图3.4.6所示汇编指令如下:MOV DX,00E4HMOV AL,0B2HOUT DX,AL4.5 LED显示电路设计单片机应用系统中,通常都需要进行人机对话。
这包括人对应用系统的状态干预与数据输入,以及应用系统向人们显示运行状态与运行结果等。
显示器、键盘电路就是用来完成人机对话活动的人机通道。
常用的LED数码显示器由7个发光二极管组成7段LED显示器,其排列形状如图所示。