单片机与接口技术课程设计(论文) 数字音乐盒的设计院(系)名称电子与信息工程学院专业班级通信121班学号*********学生姓名潘凤麟指导教师高影讲师起止时间:2015.7.4—2015.7.13课程设计(论文)任务及评语院(系):电子与信息工程学院教研室:通信工程摘要单片机是把CPU、存储器和I/O接口集成在一片半导体硅片上的微型计算机。
本次课程设计所设计出的数字音乐盒就是基于单片机的一个系统。
它的的硬件电路部分采用Proteus软件进行设计,以AT89C51单片机作为主芯片,用其I/O口产生不同频率的方波来驱动蜂鸣器发出不同的音调,再配以LCD显示屏和4*4键盘实现必要的显示和控制。
软件部分采用Keil与Proteus进行联合仿真,并用汇编语言来设计程序,把用Keil生成的HEX文件写入到单片机中即可实现设计所要求的功能。
通过Proteus与Keil的联合仿真,该数字音乐盒可播放3首不同的歌曲,并可通过LCD显示屏显示歌曲名称或序号;可通过4*4键盘实现对歌曲的选择,暂停,与播放功能,故仿真结果符合设计要求。
关键词:数字音乐盒;LCD显示屏;键盘目录第1章绪论 (1)1.1 AT89C51简介 (1)1.2 仿真环境简介 (2)1.3本文研究内容 (3)第2章数字音乐盒硬件电路图的设计与分析 (4)2.1 总体设计方案分析 (4)2.2 数字音乐盒部分电路原理说明 (4)2.2.1 蜂鸣器驱动部分电路图与原理说明 (4)2.2.2 LCD显示部分电路图与原理说明 (5)2.2.3 键盘控制部分电路图与原理说明 (6)第3章数字音乐盒的软件设计 (7)3.1 数字音乐盒总体软件程序流程图与分析 (8)3.2 数字音乐盒各子程序的设计与分析 ......................... 错误!未定义书签。
3.2.1 系统初始化子程序设计与分析 (9)3.2.2 LCD显示子程序设计与分析 (10)3.2.3 蜂鸣器频率控制子程序设计与分析 (11)3.2.4 键盘控制子程序设计与分析 (11)第4章仿真结果与分析 (12)4.1 仿真结果 (12)4.2 仿真步骤与结果分析 (13)第5章总结 (16)参考文献 (17)附录Ⅰ (18)附录Ⅱ (19)附录Ⅲ (20)第1章绪论1.1 AT89C51简介所谓单片机,是指把CPU、存储器和I/O接口集成在一片半导体硅片上的微型计算机。
单片机的始祖是由Intel公司所开发出的MCS-51系列单片机。
在20世纪80年代中期以后,Intel公司以专利转让或技术交换的形式把其开发单片机的内核技术转让给了许多半导体芯片生产厂家,ATMEL公司就是其中之一,它开发出的AT89C51单片机被人们广泛地应用于生活与生产当中。
下面分别简要介绍AT89C51的硬件结构及引脚。
AT89C51单片机的硬件结构如下图1.1所示,主要由8大部分构成:1个8位的微处理器,完成运算与控制功能;片内128B的数据存储器,可扩展至片外64KB;64KB 的程序存储器,其类型是Flash ROM,它的读写速度非常快,电擦除次数可达到10000次;4个8位的可编程并行I/O口(P0,P1,P2,P3),可提供地址总线,数据总线,以及控制总线;1个全双工的串行口;2个16位的定时/计数器(T0,T1);中断系统:包含5个中断源(外部中断0,定时器T0,外部中断1,定时器1,串行口中断)和2个中断优先级(低级,高级);21个特殊功能寄存器。
图1.1 AT89C51硬件结构图AT89C51的引脚采用40引脚双列直插式封装(DIP)方式,如下图1.2所示,按照功能可将其分为3类:一是电源及时钟引脚:VCC,VSS,XTAL1,XTAL2,二是控制引脚:PSEN,ALE,EA,RST,三是I/O口引脚:P0,P1,P2,P3,为4个8位I/O 口的外部引脚。
图1.2 AT89C51引脚分布图1.2 仿真环境简介本次课程设计采用Proteus与keil进行联合仿真。
Proteus软件是英国Lab Center Electronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术有限公司)。
它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。
它是目前比较好的仿真单片机及外围器件的工具。
虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。
Proteus 可以完成从原理图布图、代码调试到单片机与外围电路的协同仿真,并能够一键切换到PCB设计,真正实现了从概念到产品的完整设计,是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台。
Proteus的处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、A VR、ARM、8086和MSP430等,2010年又增加了Cortex和DSP系列处理器,并持续增加其他系列处理器模型。
在编译方面,它也支持IAR、Keil和MATLAB等多种编译器。
Keil 是美国Keil Software公司出品的51系列兼容单片机C语言/汇编语言软件开发系统。
Keil提供了包括编译器、宏汇编、链接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,并通过一个集成开发环境(μVision)将这些部分组合在一起。
把在Keil中编译,连接,运行后生成的十六进制HEX文件写入到用Proteus绘制出的硬件电路图的单片机中,启动电路后,即可完成仿真。
1.3本文研究内容本文研究的是基于单片机的数字音乐盒设计,经过对资料的查找和分析,我拟出了满足如下技术要求的设计方案。
硬件电路部分用Proteus软件来绘制,软件部分采用Keil 软件,并基于汇编语言来进行程序设计。
在仿真时,通过Proteus与Keil的联合仿真,得到了满足设计要求的结果。
第2章 数字音乐盒硬件电路图的设计与分析2.1总体设计方案分析本次课程设计所设计出的数字音乐盒在硬件电路上主要包括3大部分:蜂鸣器驱动部分,LCD 显示部分和键盘控制部分。
它的总体方案框图如下图2.1所示。
蜂鸣器驱动部分是采用AT89C51单片机的P3.7引脚产生不同频率的方波,从而去控制蜂鸣器发出不同的音调,这样就可以完成对一首歌曲的播放。
LCD 显示部分采用LM032L 作为液晶显示器,并用AT89C51的P0.0~P0.7引脚去控制LCD 来完成乐曲名称或序号的显示。
键盘控制部分采用4*4键盘,并用AT89C51的P1.0~P1.7引脚进行控制,以完成对歌曲的选择,暂停与播放功能。
下面分别对各硬件电路图作以简要的介绍与分析,总电路原理图将在附录Ⅱ中给出。
图2.1 数字音乐盒总体设计方案框图2.2 数字音乐盒部分电路原理说明2.2.1 蜂鸣器驱动部分电路图与原理说明蜂鸣器驱动电路部分的原理采用AT89C51的P3.7引脚产生不同的频率方波去驱动蜂鸣器发出不同的音调。
这些不同的音调由软件设计部分中不同的数码来实现,这些不同的数码就表示不同的频率成分,这些频率成分就会去驱动蜂鸣器发出不同的音调,从而完成对一首歌曲的播放。
蜂鸣器驱动部分的电路图如下图2.2所示。
蜂鸣器LCD 液晶显示系统键盘控制系统 AT89C51单片机图2.2数字音乐盒蜂鸣器驱动部分示意图2.2.2 LCD显示部分电路图与原理说明LCD是液晶显示器的缩写,它是一种被动式的显示器,即液晶本身并不发光,而是利用液晶经过处理后能够改变光线通过方向的特性,从而达到白底黑字或黑底白字显示的目的。
液晶显示器具有低功耗、抗干扰能力强等优点,因而被广泛应用在仪器仪表和控制系统中。
而被广泛地应用在各类单片机系统中的显示模块是点阵字符型LCD显示器,它的模块电路框图如下图2.3所示。
图2.3字符型LCD模块的电路框图如图2.3所示,字符型LCD模块的电路图由控制器HD44780、驱动器HD44100及几个电阻和电容组成。
HD44100用作扩展字符显示。
该电路模块共有14个引脚,其中8条数据线,3条控制线,3条电源线,通过单片机写入模块的数据和命令,就可以对显示方式和显示的内容作出选择。
如本次课程设计中所设计的LCD显示部分,它的电路原理图如下图2.4所示。
它采用P0.0~P0.7引脚去控制LCD显示屏,再通过对应的软件指令的设计,即可令显示屏显示歌曲的名称或序号。
图2.4数字音乐盒LCD显示部分示意图2.2.3 键盘控制部分电路图与原理说明常用的键盘接口分为独立式键盘接口和行列式键盘接口。
独立式键盘接口适用于按键较少或操作速度较高的场合,而行列式键盘适用于按键数目较多的场合。
由于本次课程设计要求能够播放至少3首歌曲,同时要能实现歌曲的暂停与播放功能,故选择按键数目较多的行列式键盘。
行列式键盘的键盘结构如下图2.5所示,它由行线和列线组成,而各按键在行、列线的交叉点上。
行线通过上拉电阻接到+5V电源上。
在无按键按下时,行线处于高电平状态;当有按键按下时,行线电平状态将由与此行线相连的列线电平决定。
列线的电平如果为低,则行线电平为低;列线的电平如果为高,则行线的电平也为高,这一点是识别行列式键盘是否按下的关键所在。
图2.5 行列式键盘原理图本次课程设计所采用的键盘控制系统的原理框图如图下图2.6所示。
它使用4*4键盘,并用P1.0~P1.7引脚进行控制,与AT89C51的中断系统相结合,并用软件进行编程后,就可实现对乐曲的播放与暂停功能。
图2.6 数字音乐盒键盘控制部分示意图第3章 数字音乐盒的软件设计3.1数字音乐盒总体软件程序流程图与分析数字音乐盒的三大主要硬件部分为蜂鸣器驱动部分,LCD 显示部分以及键盘控制部分。
故按照此硬件构造,可以设计出如下图3.1所示的总体程序流程图。
在软件运行之前,第一步操作就是要对系统进行初始化操作。
初始化完毕后,即可开始设计系统的核心功能部件,即LCD 的显示和音乐的播放,最后就是键盘控制程序的设计,由于键盘既要控制LCD 显示对应的歌曲名称或序号,又要控制蜂鸣器去播放不同的歌曲,所以把键盘控制程序写在LCD 显示程序设计和蜂鸣器频率控制程序设计的下方,且箭头都指向它。
键盘的每次按下都相当于产生了一次中断,故除上述核心程序外,该软件设计还包含一系列的中断子程序,用以完成对歌曲的选择,播放,暂停功能。
下面对除中断子程序外的其他核心程序分别作以简要介绍,而包含全部程序的程序清单将在附录Ⅲ中给出。
图3.1 数字音乐盒总体程序流程图系统初始化子程序设计 LCD 显示子程序设计蜂鸣器频率控制子程序设计键盘控制子程序设计系统初始化子程序设计键盘控制子程序设计3.2数字音乐盒各子程序的设计与分析3.2.1 系统初始化子程序设计与分析系统的初始化操作包括对所使用端口的定义与赋值,汇编起始地址的赋值,中断子程序入口地址的赋值,堆栈的初始化以及LCD显示屏的初始化。