1目录第一章绪论...............................................................................................................21.1课题简介......................................................21.2课题背景......................................................31.2本课题设计的目的..............................................31.3本课题设计的主要内容..........................................3第二章课题设计的元件介绍...................................................................................42.1AT89S52介绍.................................................42.2LCD1602液晶显示屏............................................5第三章计算器系统总体方案设计.............................................................................63.1设计方案的确定................................................73.2计算器控制系统硬件设计.......................................113.3计算器系统软件设计...........................................13第四章计算器系统的调试.......................................................................................214.1硬件调试.....................................................214.2软件调试.....................................................21总结...........................................................................................................................23参考文献.....................................................................................................................24附录...........................................................................................................................25附录一:计算器实物图.............................................25附录二:元器件清单...............................................26附录三:源程序...................................................272第一章绪论(引言)1.1课题简介科技发展的今天,随着人们物质生活的不断提高,电子产品已经走进了家家户户,无论是生活、学习,还是娱乐和消遣几乎样样都离不开电子产品,其大型复杂的计算能力是人脑所不能胜任的,而且人脑比较容易出错。计算器作为一种快速而通用的计算工具方便了每一个使用者。计算器可谓是人们最亲密的电子伙伴之一。本设计着重在于分析计算器硬件、软件和开发过程中的环节和步骤,并从实践经验出发对计算器设计做了详细的分析和研究。单片机由于其微小的体积和极低的成本,广泛的应用于家用电器、工业控制等领域中。在工业生产中,单片微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。单片微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。本系统就是选用了AT89S52单片机芯片。系统以AT89S52单片机为中心器件来设计计算器,实现了能根据实际输入值显示并存储计算的功能,计算器程序是在kill软件中,自己编制开发C语言程序。1.2课题背景目前,单片机在我国的各行各业得到了广泛应用,如各大本、专科院校、职业培训学校,均开设了单片机原理与应用方面的课程,这是一门技术性和实践性很强的学科,必须通过一系列的软硬件实验、理论联系实际,才能真正的让单片机的控制思想进入每一个人的脑海中。所以,本次设计使用单片机控制设计计算器,用其实现加、减、乘、除四则运算。1.3本课题设计的目的开发本系统旨在进一步掌握单片机理论知识,理解嵌入式单片机系统的硬软件设计,加强对实际应用系统设计的能力。(1)、对字符液晶显示模块的工作原理,如初始化、清屏、显示、调用及外3特性有较清楚的认识,并会使用LCD(液晶显示模块)实现计算结果的显示;掌握液晶显示模块的驱动和编程,设计LCD和单片机的接口电路,以及利用单片机对液晶模块的驱动和操作;(2)、在充分分析内部逻辑的概念,进行软件和调试,学会使用,并能够以其为平台设计出具有四则运算能力简易计算器的硬件电路和软件程序。1.4本课题设计的主要内容在本系统设计中,主要完成如下方面的内容:(1)、简要阐述单片机技术及LCD显示和矩阵键盘基本原理;(2)、完成主要功能模块的硬件电路设计和必要的参数确定;(3)、用kill软件进行从语言程序编写开发;(4)、用Proteus7Professional软件完成计算器的仿真;(5)、焊接硬件电路。4第二章。。。。总体设计方案2.1AT89S52介绍1、AT89S52的功能特性描述AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K系统可编程Flash存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器系统可编程,亦适于常规编程器在单片机行里有一席之地。在单芯片上,拥有灵巧8位CPU和系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89S52具有以下标准功能:8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。此外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。8位微控制器8K字节在系统可编程Flash。同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。AT89S52单片机为40引脚芯片见图2.2口线:P0、P1、P2、P3共四个八位口。2、AT89S52在本系统中多用引脚功能说明P0口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0不具有内部上拉电阻。在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。在本系统中液晶显示数据口选用了P0口。AT89S52单片机引脚如图2.1所示。5图2.1AT89S52单片机引脚P2口:P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。在访问外部程序存储器或用16位地址读取外部数据存储器时,P2口送出高八位地址。在这种应用中,P2口使用很强的内部上拉发送1。在使用8位地址(如MOVX@RI)访问外部数据存储器时,P2口输出P2锁存器的内容。在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。在本系统中4×4键盘接口选用了P2口。P3口:P3口是一个具有内部上拉电阻的8位双向I/O口,p3输出缓冲器能驱动4个TTL逻辑电平。对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。P3口亦作为AT89S52特殊功能(第二功能)使用,在flash编程和校验时,P3口也接收一些控制信号。此外,P3口还接收一些用于FLASH闪存编程和程序校验的控制信号。本系统中液晶显示器控制口就选用了P3口的3.0、3.1、3.2。6其他引脚说明:RST:复位输入。晶振工作时,RST脚持续2个机器周期高电平将使单片机复位。看门狗计时完成后,RST脚输出96个晶振周期的高电平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。DISRTO默认状态下,复位高电平有效。XTAL1是片内振荡器的反相放大器输入端,XTAL2则是输出端,使用外部振荡器时,外部振荡信号应直接加到XTAL1,而XTAL2悬空。内部方式时,时钟发生器对振荡脉冲二分频,如晶振为12MHz,时钟频率就为6MHz。晶振的频率可以在1MHz-24MHz内选择,在本系统电路中使用的是外部振荡器其晶振为11.0592MHz。电容取20PF左右。机器周期=11.0592×时间周期,如11.0592MHz的机器周期为1微秒。RESET此脚为高电平时(约2个机器周期)可将单片机复位。RST/VPD——当出现两个机器周期高电平时,单片机复位。复位后,P0~P3输出高电平;SP寄存器为07H;其它寄存器全部清0;不影响RAM状态。AT89SXX系列单片机实现了ISP下载功能,故而取代了89CXX系列的下载方式,也是因为这样,ATMEL公司已经停止生产89CXX系列的单片机。3、AT89S52单片机的编程方法编程前,须按编程模式表设置好地址、数据及控制信号;顺序如下:①在地址线上加上要编程单元的地址信号。②在数据线上加上要写入的数据字节。③激活相应的控制信号。④将EA/Vpp端加上+12V编程电压。⑤每对Flash存储阵列写入一个字节或每写入一个程序机密位,加上一个ALE/PROG编程脉冲。每个字节写入周期是自身定时的,大多数约为50us。改变编程单元的地址和写入的数据,重复①—⑤步骤,直到全部文件编程结束。2.2LCD1602液晶显示屏模块内部自带字符发生存储器(CGROM),字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是(41H),显示时模块把代码41H发给液晶模块,我们就能在液晶上看到字母“A”。以此类推,可以显示更多的代码。1602液晶模块内部的控制器共有11条控制指令,丰富的指令可以完成液晶7的时序控制、工作方式式设置和数据显示等。采用的LCD1602液晶模块是标准16针插座,接口电路如下图所示。关于LCD1602的详细资料见表2.1和表2.2。图2.21602LCD接口电路图表2.1LCD1602引脚说明第1脚VSS为地电源第2脚VDD接5V正电源第3脚V0为液晶显示器对比度调整