基于AT89C52单片机设计3.docx
《基于AT89C52单片机设计3.docx》由会员分享,可在线阅读,更多相关《基于AT89C52单片机设计3.docx(55页珍藏版)》请在冰豆网上搜索。
基于AT89C52单片机设计3
毕业设计(论文)任务书
(2016届)
所属系(部):
机电工程学院
所学专业:
通信技术
班级:
13通信技术班
姓名:
xxx
学号:
xxx
指导教师:
xxx
2015年7月7日
AT89C52单片机设计
通信技术
Xxx
Xxx
摘要
计算器是微型电子计算机的一种特殊类型。
它与一般通用计算机的主要区别在于程序输入方式的不同。
计算器的程序一般都已经固定,只需按键输入数据和运算符号就会得出结果,很容易就能掌握。
而一般计算机的程序可以根据需要随时改动,或重新输入新的程序。
简易计算器主要用于加减乘除;科学计算器,又增添了初等函数运算。
随着微电子技术的不断发展,微处理芯片的集成程度越来越高,单片机已可以在一片芯片上同时集成cpu,存储器,定时器,计数器,并行和串行接口,看门狗,前置放大器,A|D转换器,D|A转换器等多种电路。
完成一定区间和条件的简单四则运算过程.
关键词:
计算器,AT89C52,矩阵按键,LCD1602
第一章绪论
1.1课题的提出及意义
随着社会的发展,科学的进步,人们的生活水平在逐步地提高,尤其是微电子技术的发展犹如雨后春笋般的变化。
计算器在人们的日常中是比较常见的电子产品之一,如何使计算器技术更加的成熟,充分利用已有的软件和硬件条件,设计出更出色的计算器,使其更好地为各个行业服务,成了如今电子领域重要的研究课题.现在人们的日常生活中已经离不开计算器了,社会的各个角落都有它。
因此设计一款简单实用的计算器会有很大的实际意义。
本设计在进一步掌握单片机理论知识,理解嵌入式单片机系统的硬软件设计,加强对实际应用系统设计的能力。
通过本设计的学习,使我掌握单片机程序设计和微机接口应用的基本方法,并能综合运用本科阶段所学软、硬件知识分析实际问题,提高解决毕业设计实际问题的能力,为单片机应用和开发打下良好的基础。
对字符液晶显示模块的工作原理,如初始化、清屏、显示、调用及外特性有较清楚的认识,并会使用LCD(液晶显示模块)实现计算结果的显示;掌握液晶显示模块的驱动和编程,设计LCD和单片机的接口电路,以及利用单片机对液晶显示模块的驱动和操作;
在充分分析内部逻辑的概念,进行软件和调试,学会使用,并能够以其为平台设计出具有四则运算能力简易计算器的硬件电路和软件程序.
1.2设计的任务及要求
目的:
通过本次工程实践,运用《智能化测量控制仪表原理与设计》、《MCS—51系列单片微型计算机及其应用》所学知识及查阅相关资料,完成简易计算器的设计,达到理论知识与实践更好结合、提高综合运用所学知识和设计能力的目的。
通过本次设计训练,可以使我们在基本思路和基本方法上对基于MCS-51单片机的嵌入式系统设计有一个比较感性的认识,并具备一定程度的设计能力。
要求:
使用硬件:
MCS-51单片机,中央处理器,数据存储器(RAM),程序存储器(ROM)等。
使用软件:
电子绘图软件Protel。
(1)通过网络及各种相关书籍查找相关信息,确定使用的元器件。
(2)以MCS-51单片机为核心,开发一个完整的系统,包括硬件设计和软件的编程。
(3)使用Protel软件,绘制原理图、PCB,并进行元器件安装、焊接及调试检测达到预期的目的。
矩阵按键输入、LCD1602液晶显示,构成一套可以运算两个数之间的加减乘除的设计。
最大运算是:
9999*9999,可以运算负数.
第二章总体方案设计
2。
1芯片比较
2。
1。
1单片机选择
AT89C52是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含8Kbytes的可反复擦写的只读程序存储器(PEROM)和256bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,与标准MCS—51指令系统及8052产品引脚兼容,片内置通用8位中央处理器(CPU)和FLASH存储单元,功能强大AT89C52单片机适用于许多较为复杂控制应用场合。
AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89C52可以按照常规方法进行编程,也可以在线编程。
其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。
AT89C52有PDIP、PQFP/TQFP及PLCC等三种封装形式,以适应不同产品的需求。
2。
1。
2显示器的选择
在单片机应用系统中,使用的显示器主要有LED(发光二极管显示器)、LCD液晶显示.
方案一:
使用8位LED数码管来显示,LED显示器是由发光二极管显示字段组成的显示器件,在单片机应用系统中通常使用的是七段LED,这种显示器有共阴极和共阳极两种,它具有成本低廉、配置灵活和单片机接口方便等特点.
方案二:
使用液晶显示器来显示.液晶是介于固态和液态间的有机化合物,将其加热会变成透明液态,冷却后变成结晶的浑浊固态。
在电机的作用下,产生冷热变化,从而影响它的透光性,来达到显示的目的.LCD还具有以下优点:
(1)低压、微功耗;
(2)显示信息量大;(3)长寿命;(4)无辐射、无污染。
选择液晶显示屏。
为了适应本课题的需要,本设计采用液晶显示屏LCD1602进行显示.
2。
1.3按键部分的选择
根据操作需要和毕业设计需要,按键部分采用4*4行列式键盘,分别设定数字键和功能键。
2。
2总体设计及系统原理
大致原理图如图2.2。
1所示:
图2。
2。
1原理图
总的电路设计方案以单片机AT89S52来作为核心元器件,外围采用4*4行列式键盘作为输入,采用lcd1602液晶显示来做输出.这里重点介绍液晶输出,它是一个双行显示的液晶显示器,其采用标准的16脚接口。
1.vss为地电源;
2.vdd接5v正电源;
3.vo为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高会产生影子,使用时可以通过一个10k的电位器调整对比度;
4。
rs为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器;
5.rw为读写信号线,高电平时选择读操作,低电平时选择写操作。
当rs和rw共同为低电平时可以写入指令或者显示地址,当rs为低电平rw为高电平时可以读忙信号,当rs为高点平rw为低电平时可以写入数据.
6。
e端为使能端,当e端由高电平跳变成低电平时,液晶模块执行命令;
7.7~14d0~d7为8位双向数据线;
8.15~16分别为背光灯正负极,A接正极,K接负极。
第三章单片机硬件设计
3。
1单片机部分
目前,52系列单片机在我国的各行各业得到了广泛应用,各大专业院校、职业培训学校,均开设了单片机原理与应用方面的课程,这是一门技术性和实践性很强的学科,必须通过一系列的软硬件实验、理论联系实际,才能学好、学懂,取得较好的学习效果.
3。
1.1单片机发展历史
单片机(Microcontrollers)诞生于1971年,经历了SCM、MCU、SoC三大阶段,早期的SCM单片机都是8位或4位的。
其中最成功的是INTEL的8051,此后在8051上发展出了MCS51系列MCU系统.基于这一系统的单片机系统直到现在还在广泛使用。
随着工业控制领域要求的提高,开始出现了16位单片机,但因为性价比不理想并未得到很广泛的应用。
90年代后随着消费电子产品大发展,单片机技术得到了巨大提高。
随着INTELi960系列特别是后来的ARM系列的广泛应用,32位单片机迅速取代16位单片机的高端地位,并且进入主流市场。
而传统的8位单片机的性能也得到了飞速提高,处理能力比起80年代提高了数百倍.高端的32位Soc单片机主频已经超过300MHz,性能直追90年代中期的专用处理器,而普通的型号出厂价格跌落至1美元,最高端的型号也只有10美元。
当代单片机系统已经不再只在裸机环境下开发和使用,大量专用的嵌入式操作系统被广泛应用在全系列的单片机上.而在作为掌上电脑和手机核心处理的高端单片机甚至可以直接使用专用的Windows和Linux操作系统.
3。
1.2单片机发展趋势
单片机的发展趋势:
低功耗CMOS化;微型单片化;主流与多品种共存;单片机从8位、16位到32位,数不胜数,应有尽有,有与主流C51系列兼容的,也有不兼容的,但它们各具特色,互成互补,为单片机的应用提供广阔的天地.
纵观单片机的发展历程,可以发现单片机的发展趋势大致有:
1、低功耗CMOS化
MCS-51系列的8051推出时的功耗达630mW,而现在的单片机普遍都在100mW左右,随着对单片机功耗的要求越来越低,现在的各个单片机制造商基本都采用了CMOS(互补金属氧化物半导体工艺)。
像80C51就采用了HMOS(即高密度金属氧化物半导体工艺)和CHMOS(互补高密度金属氧化物半导体工艺).CMOS虽然功耗较低,但由于其物理特征决定了其工作速度不够高,而CHMOS则具备了高速和低功耗的特点,这些特征,更适合于在要求低功耗象电池供电的应用场合。
所以这种工艺将是今后一段时期内单片机发展的主要途径。
2、微型单片化
现在常规的单片机普遍都是将中央处理器(CPU)、随机存取数据存储(RAM)、只读程序存储器(ROM)、并行和串行通信接口、中断系统、定时电路、时钟电路集成在一块单一的芯片上,增强型的单片机集成了如A/D转换器、PMW(脉宽调制电路)、WDT(看门狗),有些单片机将LCD(液晶)驱动电路都集成在单一的芯片上,这样单片机包含的单元电路就更多,功能就更强大。
甚至单片机厂商还可以根据用户的要求量身定做,制造出具有自己特色的单片机芯片。
此外,现在的产品普遍要求体积小、重量轻,这就要求单片机除了功能强和功耗低外,还要求其体积要小。
现在的许多单片机都具有多种封装形式,其中SMD(表面封装)越来越受欢迎,使得由单片机构成的系统正朝微型化方向发展。
3、主流与多品种共存
现在虽然单片机的品种繁多,各具特色,但仍是以80C51为核心的单片机占主流,兼容其结构和指令系统的有PHILIPS公司的产品,ATMEL公司的产品和中国台湾的Winbond系列单片机。
因此以80C51为核心的单片机占据了半壁江山。
而Microchip公司的PIC精简指令集(RISC)也有着强劲的发展势头,中国台湾的HOLTEK公司近年的单片机产量与日俱增,以其价低质优的优势,占据一定的市场份额。
此外还有MOTOROLA公司的产品,日本几大公司的专用单片机.在一定的时期内,这种形势将得以延续,将不存在某个单片机一统天下的垄断局面,走的是依存互补,相辅相成、共同发展的道路.
3。
1.3计算器系统现状
计算器一般由运算器、控制器、存储器、键盘、显示器、电源和一些可选外围设备及电子配件通过人工或机器设备组成。
低档计算器的运算器、控制器由数字逻辑电路实现简单的串行运算,其随机存储器只有一、二个单元,供累加存储用.高档计算器由微处理器和只读存储器实现各种复杂的运算程序,有较多的随机存储单元以存放输入程序和数据.键盘是计算器的输入部件,一般采用接触式或传感式。
为减小计算器的尺寸,一键常常有多种功能。
显示器是计算器的输出部件,有发光二极管显示器和液晶显示器等。
除显示计算结果外,还常有溢出指示、错误指示等.计算器电源采用交流转换器或电池,电池可用交流转换器或太阳能转换器再充电。
为节省电能,计算器都采用CMOS工艺制作的大规模集成电路(见互补金属—氧化物-半导体集成电路),并在内部装有定时不操作自动断电电路。
计算器可选用的外围设备有微型打印机、盒式磁带机和磁卡机等。
本计算器是以MCS—51系列单片机AT89C52为核心构成的简易计算器系统。
该系统通过单片机控制,实现对4*4键盘扫描进行实时的按键检测,并把检测数据存储下来。
整个计算器系统的工作过程为:
首先存储单元初始化,显示初始值和键盘扫描,判断按键位置,查表得出按键值,单片机则对数据进行储存与相应处理转换,之后送入LED显示器动态显示。
整个系统可分为两个主要功能模块:
功能模块一,实时键盘扫描;功能模块二,数据1602显示.
3。
1.4AT89C52系列单片机简介
AT89C52单片机的硬件结构
如图3-1所示,为AT89C52的硬件结构图。
AT89C52单片机的内部结构与MCS-51系列单片机的构成基本相同.CPU是由运算器和控制器所构成的。
运算器主要用来对操作数进行算术、逻辑运算和位操作的。
控制器是单片机的指挥控制部件,主要任务的识别指令,并根据指令的性质控制单片机各功能部件,从而保证单片机各部分能自动而协调地工作。
它的程序存储器为8K字节可重擦写Flash闪速存储器,闪烁存储器允许在线+5V电擦除、电写入或使用编程器对其重复编程。
数据存储器比51系列的单片机相比大了许多为256字节RAM。
AT89C52单片机的指令系统和引脚功能与MCS—51的完全兼容.单片机AT89C52结构框图如图3.1.1所示.
图3。
1。
1单片机AT89C52结构框图
主要性能参数
•8K字节可重擦写Flash闪速存储器
•1000次可擦写周期
•全静态操作:
0Hz—24MHz
•三级加密程序存储器
•256×8字节内部RAM
•32个可编程I/O口线
•3个16位定时/计数器
•8个中断源
•可编程串行UART通道
•低功耗空闲和掉电模式
AT89C52外部引脚图如图图3.1.2所示:
图3.1.2AT89C52外部引脚图
AT89C52管脚说明
VCC:
电源
GND:
接地
P0口:
P0口是一个8位漏级开路的双向I/O口。
作为输出口,每位能驱动8个TTL逻辑电平。
对P0口端口写”1"时,引脚作高阻抗输入。
当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。
在这种模式下,P0具有内部上拉电阻。
在flash编程时,P0口也用来接受指令字节:
在程序效验时,输出指令字节。
程序效验时,需要外部上拉电阻.
P1口:
P1口是一个具有内部上拉电阻的8位是双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑电平。
对P1口写”1”时,内部上拉电阻的原因,将输出电流ILL。
此外,与AT89C51不同之处是,P1.0和P1。
1还可分别作为定时/计数器2的外部计数输入(P1。
0/T2)和输出(P1。
1/T2EX),具体如表3。
1.1所示。
表3.1。
1P1。
0和P1。
1的第二功能
引脚号
功能特性
P1.0
T2(定时/计数器2外部计数脉冲输入),时钟输出
P1.1
T2EX定时/计数2捕获/重装载触发和方向控制
在Flash编程和校验时,P1口接收低8位地址字节.
P2口:
P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲级可驱动吸收或输出电流4个TTL逻辑电平。
对P2口写”1”时,通过内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流ILL。
在访问外部好曾许存储器或用16位地址读取外部数据存储器时,P2口送出高8位地址。
在这种应用中,P2口使用很强的内部上拉发送1.在使用8位地址访问外部数据存储器时,P2口输出P2锁存器的内容。
在Flash编程和校验时,P2口接收低8位地址字节和一些控制信号。
P3口:
P3口是一个具有内部上拉电阻的8位双向I/O口,P3输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑电平.对P3口写”1”时,内部上拉电阻把端口拉高,此时可以作为输入端口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流ILL。
P3口除了作为一般、的I/O口线外,更重要的是它的第二功能,如表3。
1.2所示:
表3。
1。
2P3口引脚第二功能
引脚号
第二功能
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(外部数据存储器写选通)
P3。
7
RD(外部数据存储器读选通)
在Flash编程和校验时,P3口也接收一些控制信号.
RST:
复位输入。
晶振工作时,RST脚持续2个机器周期以高电平将使用单片机复位。
ALE/
:
地址锁存器控制信号(ALE)是访问外部程序存储器时,锁存低8位地址的输出脉冲。
在Flash编程时,此引脚(
)也使用作编程输入脉冲。
在一般情况下,ALE以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。
然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。
如果需要,通过将地址为8EH的SFR的第0位置”1",ALE操作无效。
这一位置"1”,ALE仅在执行MOVX或MOVC指令时有效。
否则,ALE将被微弱拉高.这个ALE使能标志位的设置对微控制器处于外部执行模式下无效。
:
外部程序储存器选通信号(
)是外部程序存储器选通信号。
当AT89C52从外部程序存储器执行外部代码时,
在每个机器周期被激活两次,而在访问外部数据储存器时,
将不被激活。
:
访问外部程序存储器控制信号。
为使能从0000H-FFFFH的外部程序存储器读取指令,
端必须保持低电平(接地)。
为了执行内部程序指令,
应该接VCC。
在flash编程期间,
也接受12伏VPP电压.
XTAL1:
振荡器反相放大器及内部时钟发生器的输入端.
XTAL2:
振荡器反相放大器的输出端。
存储器结构
MCS-51器件有单独的程序存储器和数据存储器.外部程序存储器和数据存储器都可以64K寻址.
1.程序存储器
如果EA引脚接地,程序读取只从外部存储器开始。
对于89C52,如果EA接VCC,程序先从内部存储器(地址为0000H~1FFFFH)开始,接着从外部寻址,寻址范围为:
2000H~FFFFH。
2。
数据存储器
AT89C52有256字节RAM。
高128字节与特殊功能寄存器重叠。
也就是说高128字节与特殊功能寄存器有相同的地址,而物理上是分开的。
当一条指令访问高于7FH的地址时,寻址方式决定CPU访问高字节RAM还是特殊功能寄存器空间。
直接寻址方式访问特殊功能寄存器(SFR).
定时器
1。
定时器0和定时器1
在AT89C52中,定时器0和定时器1都是16位加法计数结构,分别由TH0(地址8CH)和TL0(地址8AH)及TH1(地址8DH)和TL1(地址8BH)两个8位计数器组成。
这4个计数器均属于专用寄存器之列.每个定时器/计数器都有定时和计数两种功能。
2。
计数功能
所谓的计数功能是指对外部事件进行计数.外部事件的发生以输入脉冲表示,因此计数功能的实质就是对外脉冲进行计数。
MCS-51系列的芯片有T0(P3。
4)和T1(P3。
5)两个信号引脚,分别就是这两个计数器的计数输入端。
外部输入的脉冲在负跳变时有效,进行计数器加1。
计数方式下,单片机在每个机器周期的S5P2拍节对外部计数脉冲进行采样。
如果前一个机器周期采样为高电平,后一个机器周期采样为低电平,即为一个有效计数脉冲。
在下一个机器周期的S3P1进行计数。
可见采样计数脉冲是在2个机器周期进行的.鉴于此,计数脉冲的频率不能高于振荡脉冲的频率不能高于振荡脉冲频率的1/24.
3。
定时功能
定时器也是通过计数器的计数来实现的,不过此时的计数脉冲来自单片机的内部,即每个机器周期产生一个计数脉冲。
也就是每个机器周期计数加1.由于一个机器周期等于12个振荡脉冲周期,因此计数频率为振荡频率的1/12。
如果单片机采用12MHz晶体,则计数频率为1MHz。
即每微秒计数器加1。
这样不但可以根据计数值计算出定时时间,也可以反过来按定时时间的要求计算出计数器的预置值。
4。
定时器2
定时器2是一个16位定时器/计数器,它既可以作定时器,又可以做事件计数器。
其工作方式由特殊寄存器T2CON中的C/T2位选择(如表2所示)。
定时器2有三种工作模式:
捕捉方式、自动重载(向上或向下计数)和波特率发生器.如表3。
3所示,工作模式由T2CON中的相关为选择.定时器2有2个8位寄存器:
TH2和TL2。
在定时工作方式中,每个机器周期,TL2寄存器都会加1。
由于一个机器周期由12个晶振周期构成,因此,计数频率就是晶振频率的1/12.定时器2工作模式如表3。
1.3所示:
表3.1。
3定时器2工作模式
RCLK+TCLK
CP/RL2
TR2
MODE
0
0
1
16位自动重载
0
1
1
16位捕捉
1
×
1
波特率发生器
×
×
0
不用
在计数工作方式下,寄存器在相关外部输入角T2发生1至0的下降沿时增加1.在这种方式下,每个机器周期的S5P2期间采样外部输入。
一个周期采样到高电平,而下一个周期采样到低电平,计数器加1。
在检测到跳变的这个周期的S3P1期间,新的计数值出现在寄存器中。
因为识别1—0的跳变需要2个机器周期(24个晶振周期),所以,最大的计数频率不高于晶振频率的1/24。
为了确保给定的电平在采样前采样到一次,电平应该至少在一个完整的机器周期内保持不变.T2MOD—定时器2控制寄存器如表3。
1。
4所示:
表3.4T2MOD—定时器2控制寄存器
T2MOD地址:
0C9H复位值:
×××××00B
-
-
-
-
-
-
T2OE
DCEN
7
6
5
4
3
2
1
0
符号
功能
-
无定义,预留扩展
T2OE
定时器2输出允许位
DCEN
置1后,定时器2可配置向上或向下计数
中断
AT89C52有6个中断源:
两个外部中断(INT0和INT1),三个定时中断定时器0、1、2和一个串行中断。
每个中断源都可以通过置位或清除特殊寄存器IE中的相关中断允许控制位分别使得中断源有效或无效。
IE还包括一个中断总控制位EA,它能禁止所有中断。
如表3.5所示,IE.6位是不可用的。
对于AT89S52,IE.5位也是不能用的。
用户软件不应给这些位写1。
它们为AT89系列新产品预留。
定时器2可以被寄存器T2CON中的TF2和EXF2的或逻辑触发。
程序进入中断服务后,这些标志位都可以由硬件清0。
实际上,中断服务程序必须判定是否是TF2或EXF2激活中断.标志位也必须由软件清0。
定时器0和定时器1标志位TF0和TF1在计数溢出的那个周期的S5P2被置位.它们的值一直到下一个周期被电路捕捉下来。
然而,定时器2的标志位TF2在计数溢出的那个周期被置位,在同一个周期被电路捕捉下来。
中断允许控制位如表3.1.5所示:
表3.1。
5中断允许控制位
符号
位地址
功能
EA
IE.7
中断允许控制位,EA=0,中断总禁止;EA=1,各中断由各自的控制位设定
—
IE.6
预留
ET2
IE。
5
定时器2中断允许控制位
ES
IE.4
串行口中断允许控制位
ET1
IE.3
定时器1中断允许控制位
EX1
IE.2
外部中断1允许控制位
ET0
IE。
1
定时器0中断允许控制位
EX0
IE.0
外部中断0允许控制位
晶振特性
AT89C52单片机有一个用于构成内部振荡器的反相放大器,XTAL1和XTAL2分别是放大器的输入、输出端。
石英晶体和陶瓷谐振器都可以用来一起构成自激振荡器。
从外部时钟