基于AT89S52的简易计算器设计论文_第1页
基于AT89S52的简易计算器设计论文_第2页
基于AT89S52的简易计算器设计论文_第3页
基于AT89S52的简易计算器设计论文_第4页
基于AT89S52的简易计算器设计论文_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、. . . . 基于51单片机简易计算器的设计中文摘要 近几年单片机技术的发展很快,其中电子产品的更新速度迅猛。计算器是日常生活中比较的常见的电子产品之一。如何才能使计算器技术更加的成熟,充分利用已有的软件和硬件条件,设计出更出色的计算器呢。本设计是以AT89S52单片机为核心的计算器模拟系统设计,输入采用矩阵键盘和P1.5-P1.7引脚,可以进行加、减、乘、除乘方和开方运算,并在LCD1602上显示操作过程。科技的进步告别了以前复杂的模拟电路,一块几厘米平方的单片机可以省去很多繁琐的电路。现在应用较广泛的是科学计算器,与我们日常所用的简单计算器有较大差别,除了能进行加减乘除,科学计算器还可以

2、进行正数的四则运算和乘方、开方运算,具有指数、对数、三角函数、反三角函数与存储等计算功能。计算器的未来是小型化和轻便化,现在市面上出现的使用太阳能电池的计算器,使用ASIC设计的计算器,如使用纯软件实现的计算器等,未来的智能化计算器将是我们的发展方向,更希望成为应用广泛的计算工具。关键词: AT89S52单片机;LCD1602;矩阵键盘Abstractsingle-chip computer technology developing rapidly in recent years, the electronic product update speed is fast. Calculator

3、 is in daily life is one of the common electronic products. How can you make the calculator technology more mature, make full use of existing software and hardware conditions, design a better calculator?This design is based on AT89S52 microcontroller as the core of the calculator simulation system d

4、esign, input the matrix keyboard and P1.5 - P1.7 pins, could add, subtract, multiply and divide power and root operation, and on the LCD1602 display operation process.The progress of science and technology said goodbye before complex analog circuits, a piece of a few centimeters square microcontroll

5、er can save a lot of complicated circuit. Widely used now is a scientific calculator, and we use simple calculator has a larger difference, in addition to, in addition, subtraction, multiplication, and division of scientific calculator can also be a positive number four arithmetic operations and, ch

6、engfang, root operation has the exponential, logarithmic, trigonometric function, inverse trigonometric function and computing functions such as storage. Calculator's future is the miniaturization and lightweight, and now the use of solar cells appear on the market of the calculator, using an AS

7、IC design of the calculator, such as using pure software implementation of the calculator, the future of intelligent calculator will be our development direction, more hope to become widely used computing tools.key words: AT89S52 single chip microcomputer; LCD1602; Matrix keyboard 目 录1 前言41.1 课程简介41

8、.2 设计目的41.3 设计任务52 计算器系统简介62.1 单片机的发展62.2 计算器系统现状72.3 简易计算器系统简介83 主要器件简介93.1 AT89S52单片机简介93.1.1主要性能103.1.2 AT89S52的功能特性描述103.1.3 AT89S52引脚功能113.2 其它器件简介163.2.1键盘接口电路163.2.2 LCD显示模块184 计算器系统设计244.1 总体设计244.2 系统硬件设计254.3 系统软件设计264.3.1 主程序流程图274.4 LCD显示子程序流程图275 调试与仿真295.1KEIL uVision4单片机软件开发系统295.1.1

9、KEIL uVision4的简介295.1.2 系统的整体结构295.2 proteus305.2.1 proteus的简介305.2.2 proteus的简要的安装步骤315.2.3 proteus的操作32致 35参考文献37附录381 前言1.1 课程简介随着社会的发展,科学的进步,人们的生活水平在逐步的提高,尤其是微电子技术的发展,犹如雨后春笋般的变化。电子产品的更新速度快就不足惊奇了。计算器在人们的日常中是比较的常见的电子产品之一。如何使计算器技术更加的成熟,充分利用已有的软件和硬件条件,设计出更出色的计算器,使其更好的为各个行业服务,成了如今电子领域重要的研究课题。 单片机由于其微

10、小的体积和极低的成本,广泛的应用于家用电器、工业控制等领域中。单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。单片机微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。本系统就是充分利用了AT89S52芯片的I/O引脚。ATMEL89系列单片机是ATMEL公司的以8031核构成的8位Flash单片机系列。这个系列单片机的最大特点就是在片含有Flash存储器。至于位数和功能,如果有需要可以设计扩充原系统来实现 。1.2 设计目的通过本次设计,运用智能化测量控制仪表原理与设计、MCS-51系列单片微型计算机与其应用所学知识与查阅相关资料,完成简易计算器的设计,达到理论知识

11、与实践更好结合、提高综合运用所学知识和设计能力的目的。本设计旨在进一步掌握单片机理论知识,理解嵌入式单片机系统的硬软件设计,加强对实际应用系统设计的能力。通过本设计的学习,使我掌握单片机程序设计和微机接口应用的基本方法,并能综合运用本科阶段所学软、硬件知识分析实际问题,提高解决毕业设计实际问题的能力,为单片机应用和开发打下良好的基础。对字符液晶显示模块的工作原理,如初始化、清屏、显示、调用与外特性有较清楚的认识,并会使用LCD(液晶显示模块)实现计算结果的显示;掌握液晶显示模块的驱动和编程,设计LCD和单片机的接口电路,以与利用单片机对液晶模块的驱动和操作; 在充分分析部逻辑的概念,进行软件和

12、调试,学会使用,并能够以其为平台设计出具有四则运算能力简易计算器的硬件电路和软件程序。1.3 设计任务在本次工程实践中,主要完成如下方面的设计任务:简要综述单片机技术发展的现状与液晶显示和矩阵键盘基本原理;掌握MCS-51系列某种产品的最小电路与外围扩展电路的设计方法;了解单片机数据转换功能与工作过程;用protues软件完成原理电路的绘制;完成系统设计说明书。2 计算器系统简介2.1 单片机的发展 随着微电子技术的不断发展,微处理器芯片的集成度越来越高,在一片集成电路芯片上集成微处理器、储存器、I/O接口短路等元器件,从而构成了“单片机微型计算机”,简称单片机。单片机的诞生标志着计算机正式形

13、成了通用计算机系统和嵌入式计算机系统两个分支。以单片机微核心的智能化产品,将计算机技术、信息处理技术和电子测量与控制技术结合在一起,对传统产品结构和应用方式产生根本性的变革。单片机的发展像PC系统中的CPU一样历经几代的过程,由于单片机的巨大市场空间和广泛的应用围,世界各大芯片厂商纷纷推出自己的单片机产品。1976年Intel公司率先推出8位机MCS-48系列产品,其性能大大超过并取代了MCS-48系列产品。如计算速度为MCS-48系列的10倍,时钟12MHz时指令周期可为1s。由于8位机可以一次处理一个ASC码,因而一问世便显示出其强大的生命力,广泛应用于显示、终端键盘、打印、字处理、工业控

14、制等。虽然在8位机发展应用过程中出现了16位机、32位机,乃至64位机,但是8位机仍以它的价格低廉、品种齐全、应用软件丰富、支持环境充分、开发方便等特点而占领着单片机市场的主导地位。所以世界各大芯片生产厂商纷纷生产与MCS-51兼容或不兼容的单片机产品。虽然单片机品种多样,型号繁多,时至至今有如下发展趋势: 低功耗CMOS化 MCS-51系列的8051推出时的功耗达630mW,而现在的单片机普遍都在100mW左右,随着对单片机功耗要求越来越低,现在的各个单片机制造商基本都采用了CMOS(互补金属氧化物半导体工艺)。象80C51就采用了HMOS(即高密度金属氧化物半导体工艺)和CHMOS(互补高

15、密度金属氧化物半导体工艺)。CMOS虽然功耗较低,但由于其物理特征决定其工作速度不够高,而CHMOS则具备了高速和低功耗的特点,这些特征,更适合于在要求低功耗象电池供电的应用场合。所以这种工艺将是今后一段时期单片机发展的主要途径。 微型单片化 现在常规的单片机普遍都是将中央处理器(CPU)、随机存取数据存储(RAM)、只读程序存储器(ROM)、并行和串行通信接口,中断系统、定时电路、时钟电路集成在一块单一的芯片上,增强型的单片机集成了如A/D转换器、PMW(脉宽调制电路)、WDT(看门狗)、有些单片机将LCD(液晶)驱动电路都集成在单一的芯片上,这样单片机包含的单元电路就更多,功能就越强大。甚

16、至单片机厂商还可以根据用户的要求量身定做,制造出具有自己特色的单片机芯片。 此外,现在的产品普遍要求体积小、重量轻,这就要求单片机除了功能强和功耗低外,还要求其体积要小。现在的许多单片机都具有多种封装形式,其中SMD(表面封装)越来越受欢迎,使得由单片机构成的系统正朝微型化方向发展。 主流与多品种共存 现在虽然单片机的品种繁多,各具特色,但仍以51为核心的单片机占主流,兼容其结构和指令系统的有PHILIPS公司的产品,ATMEL公司的产品和中国的Winbond系列单片机。所以51为核心的单片机占据了半壁江山.而Microchip公司的PIC精简指令集(RISC)也有着强劲的发展势头,中国的HO

17、LTEK公司近年的单片机产量与日俱增,与其低价质优的优势,占据一定的市场分额。此外还有MOTOROLA公司的产品,日本几大公司的专用单片机。在一定的时期,这种情形将得以延续,将不存在某个单片机一统天下的垄断局面,走的是依存互补,相辅相成、共同发展的道路。2.2 计算器系统现状计算器一般由运算器、控制器、存储器、键盘、显示器、电源和一些可选外围设备与电子配件通过人工或机器设备组成。低档计算器的运算器、控制器由数字逻辑电路实现简单的串行运算,其随机存储器只有一、二个单元,供累加存储用。高档计算器由微处理器和只读存储器实现各种复杂的运算程序,有较多的随机存储单元以存放输入程序和数据。键盘是计算器的输

18、入部件,一般采用接触式或传感式。为减小计算器的尺寸,一键常常有多种功能。显示器是计算器的输出部件,有发光二极管显示器或液晶显示器等。除显示计算结果外,还常有溢出指示、错误指示等。计算器电源采用交流转换器或电池,电池可用交流转换器或太阳能转换器再充电。为节省电能,计算器都采用CMOS工艺制作的大规模集成电路(见互补金属-氧化物-半导体集成电路),并在部装有定时不操作自动断电电路。计算器可选用的外围设备有微型打印机、盒式磁带机和磁卡机等。2.3 简易计算器系统简介本计算器是以AT89S52单片机为核心构成的简易计算器系统。该系统通过单片机控制,实现对4*4键盘扫描进行实时的按键检测,并把检测数据存

19、储下来。整个计算器系统的工作过程为:首先存储单元初始化,显示初始值和键盘扫描,判断按键位置,查表得出按键值,单片机则对数据进行储存与相应处理转换,之后送入数码管动态显示。整个系统可分为三个主要功能模块:功能模块一,实时键盘扫描;功能模块二,数据转换为了数码管显示;功能模块三,数码管动态显示。3 主要器件简介3.1 AT89S52单片机简介 单片机是单片微型机的简称,故又称为微控制器MCU(Micro Control Unit)。通常由单块集成电路芯片组成,部包含有计算机的基本功能部件:中央处理器CPU,存储器和I/O接口电路等。因此,单片机只要和适当的软件与外部设备相结合,便可成为一个单片机控

20、制系统。单片机广泛用于智能产品,智能仪表,测控技术,智能接口等,具有操作简单,实用方便,价格便宜等优点,而其中AT89S52以MCS-51为核,是单片机中最典型的代表,应用于各种控制领域。 AT89S52单片机是一种低功耗高性能的CMOS8位微控制器,置8KB可在线编程闪存。该器件采用Atmel公司的高密度非易失性存储技术生产,其指令与工业标准的80C51指令集兼容。片程序存储器允许重复在线编程,允许程序存储器在系统通过SPI串行口改写或用同用的非易失性存储器改写。通过把通用的8位CPU与可在线下载的Flash集成在一个芯片上,AT89S52便成为一个高效的微型计算机。它的应用围广,可用于解决

21、复杂的控制问题,且成本较低。AT89S52单片机如图3-1所示。图3-1 单片机AT89S523.1.1主要性能(1) 8031 CPU与MCS-51 兼容 8K字节可编程FLASH存储器(寿命:1000写/擦循环) 全静态工作:0Hz-33MHz 三级加密程序存储器 128*8位部RAM 32条可编程I/O线 三个16位定时器/计数器 八个中断源 全双工UART串行通道 低功耗的闲置和掉电模式掉电后中断可唤醒看门狗定时器双数据指针掉电标识符 片振荡器和时钟电路 (2) 管脚说明: VCC:供电电压。 GND:接地。3.1.2 AT89S52的功能特性描述AT89S52 是一种低功耗、高性能C

22、MOS8位微控制器,具有 8K 在系统可编程Flash 存储器。使用Atmel 公司高密度非 易失性存储器技术制造,与工业80C51 产品指令和引脚完 全兼容。片上Flash允许程序存储器在系统可编程,亦适于 常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统 可编程Flash,使得AT89S52为众多嵌入式控制应用系统提 供高灵活、超有效的解决方案。AT89S52具有以下标准功能: 8k字节Flash,256字节RAM, 32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位 定时器/计数器,一个6向量2级中断结构,全双工串行口, 片晶振与时钟电路。此外, AT89S52 可

23、降至0Hz 静态逻 辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工 作。掉电保护方式下,RAM容被保存,振荡器被冻结, 单片机一切工作停止,直到下一个中断或硬件复位为止。8 位微控制器 8K 字节在系统可编程 Flash。同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。3.1.3 AT89S52引脚功能AT89S52 单片机为40 引脚芯片见图3-2。图3-2 AT89S52引脚图口线:P0、P1、P2、P3 共四个八位口。P0 口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8

24、个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。 当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0不具有部上拉电阻。 在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。 P1口:P1 口是一个具有部上拉电阻的8 位双向I/O 口,p1 输出缓冲器能驱动4 个TTL 逻辑电平。对P1 端口写“1”时,部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于部电阻的原因,将输出电流(IIL)。 此外,P1.0和P1.1分别作定时器/计数器2的外部计数输入(P1.0/T2)

25、和定时器/计数器2的触发输入(P1.1/T2EX),具体如下表所示。 在flash编程和校验时,P1口接收低8位地址字节。 引脚号第二功能:P1.0 T2(定时器/计数器T2的外部计数输入),时钟输出 P1.1 T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制) P1.5 MOSI(在系统编程用) P1.6 MISO(在系统编程用) P1.7 SCK(在系统编程用)P2口:P2 口是一个具有部上拉电阻的8 位双向I/O 口,P2 输出缓冲器能驱动4 个TTL 逻辑电平。对P2 端口写“1”时,部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于部电阻的原

26、因,将输出电流(IIL)。 在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX DPTR) 时,P2 口送出高八位地址。在这种应用中,P2 口使用很强的部上拉发送1。在使用8位地址(如MOVX RI)访问外部数据存储器时,P2口输出P2锁存器的容。 在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。 P3 口:P3 口是一个具有部上拉电阻的8 位双向I/O 口,p3 输出缓冲器能驱动4 个TTL 逻辑电平。对P3 端口写“1”时,部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于部电阻的原因,将输出电流(IIL)。 P3口亦

27、作为AT89S52特殊功能(第二功能)使用,如表3-1所示。 表3-1 P3口管脚 备选功能:端口引脚第二功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2/INT0(外部中断0)P3.3/INT1(外部中断1)P3.4T0(记时器0外部输入)P3.5T1(记时器1外部输入)P3.6/WR(外部数据存储器写选通)P3.7/RD(外部数据存储器读选通)在flash编程和校验时,P3口也接收一些控制信号。 此外,P3口还接收一些用于FLASH闪存编程和程序校验的控制信号。 其他引脚说明:RST:复位输入。晶振工作时,RST脚持续2 个机器周期高电平将使单片机复位。看门狗计时完成后

28、,RST 脚输出96 个晶振周期的高电平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。DISRTO默认状态下,复位高电平有效。ALE/PROG当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。 对FLASH存储器编程期间,该引脚还用于输入编程脉冲(PROG)。 如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该位置位后,只有一条MOV

29、X和MOVC指令才能将ALE激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。 PSEN程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89S52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号。 EA/VPP外部访问允许,欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时部会锁存EA端状态。 如EA端为高电平(接Vcc端),CPU则执行部程序存储器的指令。 FLASH存储器编程

30、时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。XTAL1:反向振荡放大器的输入与部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。 XTAL1,XTAL2接石英晶体振荡器。如图3-3所示晶体电路图。晶振电路如图3-3所示:图3-3 晶振电路XTAL1是片振荡器的反相放大器输入端,XTAL2则是输出端,使用外部振荡器时,外部振荡信号应直接加到XTAL1,而XTAL2悬空。部方式时,时钟发生器对振荡脉冲二分频,如晶振为12MHz,时钟频率就为6MHz。晶振的频率可以在1MHz-24MHz选择,在本设计电路中选用了12MHz。电容取20PF左右。机

31、器周期12×时间周期,如12MHz的机器周期为1微秒。控制或复位引脚RESET 此脚为高电平时(约2个机器周期)可将单片机复位。RST/VPD当出现两个机器周期高电平时,单片机复位。复位后,P0P3输出高电平;SP寄存器为07H;其它寄存器全部清0;不影响RAM状态。如图3-4所示。 图3-4 按键电平复位AT89SXX系列单片机实现了ISP下载功能,故而取代了89CXX系列的下载方式,也是因为这样,ATMEL公司已经停止生产89CXX系列的单片机,现在市面上的AT89CXX多是停产前的库存产品。 3.1.4 AT89S52的编程方法 编程前,须按编程模式表设置好地址、数据与控制信号

32、;顺序如下:在地址线上加上要编程单元的地址信号。在数据线上加上要写入的数据字节。激活相应的控制信号。将EA/Vpp端加上+12V编程电压。每对Flash存储阵列写入一个字节或每写入一个程序位,加上一个ALE/PROG编程脉冲。每个字节写入周期是自身定时的,大多数约为50us。改变编程单元的地址和写入的数据,重复步骤,直到全部文件编程结束。单片机的现状与发展方向:单片机是为了工业控制需要满足而诞生的,是自动控制系统的核心部件,因而也主要用于工业控制、智能化仪器仪表、家用电器中。它具有体积小,功能多、价格低、使用方便、系统设计灵活等优点,应用领域不断扩大,除了工业控制,智能化仪表,通讯,家用电器外

33、,在智能化高档电子玩具产品中也大量采用单片机芯片作为核心控制部件。由于单片机主要面向工业控制,工作环境比较恶劣,入高温,强电磁干扰,甚至含有腐蚀性气体,在太空中工作的单片机控制系统,还必须具有抗辐射能力,这决定了单片机CPU于通用微机CPU具有不同的技术特征和发展方向:(1)可靠性高;(2)控制功能往往很强,数值计算交叉;(3)指令系统比通用微处理器慢的多;(4) X系列芯片取代;(5)抗干扰性强,工作温度围宽。3.2 其它器件简介3.2.1键盘接口电路键盘可分为两类:编码键盘和非编码键盘。编码键盘是较多按键(20个以上)和专用驱动芯片的组合,当按下某个按键时,它能够处理按键抖动、连击等问题,

34、直接输出按键的编码,无需系统软件干预。通用计算机使用的标准键盘就是编码键盘。当系统功能比较复杂,按键数量很多时,采用编码键盘可以简化软件设计。但大多数智能仪器和电子产品的按键数目都不太多(20个以),为了降低成本和简化电路通常采用非编码键盘。非编码键盘的接口电路有设计者根据需要自行决定,按键信息通过接口软件来获取。本设计用的是16个按键,故选择用非编码键盘。键盘是单片机系统中最常用的人机对话输入设备,用户通过键盘向单片机输入数据或指令。键盘控制程序需完成的任务有:监测是否有键按下,有键按下时,在无硬件去抖的动电路时,应用软件延时方法消除按键抖动影响;当有多个键同时按下时,只处理一个按键,不管一

35、次按键持续多长时间,仅执行一次按键功能程序。 矩阵按键扫描程序是一种节省IO口的方法,按键数目越多节省IO口就越可观,思路:先判断某一列(行)是否有按键按下,再判断该行(列)是那一只键按下。但是,在程序的写法上,采用了最简单的方法,使得程序效率最高。本程序中,如果检测到某键按下了,就不再检测其它的按键,这完全能满足绝大多数需要,又能节省大量的CPU时间。本键盘扫描程序的优点在于:不用专门的按键延时程序,提高了CPU效率,也不用中断来扫描键盘,节省了硬件资源。另外,本键盘扫描程序,每次扫描占用CPU时最短,不论有键按下或者无键按下都可以在很短的时间完成一次扫描。本键盘扫描子程序名叫key,每次要

36、扫描时用lcall key调用即可。阵键盘的工作原理:由于计算器中所需要使用的按键数量较多,如果全部采用独立按键的话,势必会占用很多IO口,造成了不必要的资源浪费,而如果使用矩阵键盘就能很好的解决上述问题,本设计中用8个IO口组成了一个4*4的矩阵键盘。如图3-5所示:图 3-5 矩阵键盘布局图矩阵键盘部电路图如图3-6所示: 图 3-6矩阵键盘部电路图3.2.2 LCD显示模块引脚功能说明本设计系统是采用液晶屏1602作为显示模块,1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如表3-2所示。表3-2 引脚接口说明表编号符号引脚说明编号符号引脚说明1VSS电源

37、地9D2数据2VDD电源正极10D3数据3VL液晶显示偏压11D4数据4RS数据/命令选择12D5数据5R/W读/写选择13D6数据6E使能信号14D7数据7D0数据15BLA背光源正极8D1数据16BLK背光源负极各个管脚接口说明如下 第一脚:VSS为电源地 第二脚:VDD接5V正电源正极第三脚:VEE为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会 产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。第四脚:RS为寄存器选择,高电平1时选择数据寄存器,低电平0时选择指令寄存器。第五脚:RW为读写信号线,高电平1时进行读操作,低电平0时进行写操作。

38、第六脚:E端为使能(enable)端,高电平(1)时读取信息,负跳变时执行指令。第七到第十四脚:D0-D7为8位双向数据线其接口原理图如下图3-7所示:图3-7液晶显示接口电路(2)1602LCD的指令说明与时序1602液晶模块部的控制器共有11条控制指令,如表3-3所示:表3-3 控制命令表序号指令RSR/WD7D6D5D4D3D2D1D01清显示00000000012光标返回000000001*3置输入模式00000001I/DS4显示开/关控制0000001DCB5光标或字符移位000001S/CR/L*6置功能00001DLNF*7置字符发生存贮器地址0001字符发生存贮器地址8置数据

39、存贮器地址001显示数据存贮器地址9读忙标志或地址01BF计数器地址10写数到CGRAM或DDRAM)10要写的数据容11从CGRAM或DDRAM读数11读出的数据容1602液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的。(说明:1为高电平、0为低电平)指令1:清显示,指令码01H,光标复位到地址00H位置。指令2:光标复位,光标返回到地址00H。指令3:光标和显示模式设置 I/D:光标移动方向,高电平右移,低电平左移 S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效。指令4:显示开关控制。 D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示 C:控制光

40、标的开与关,高电平表示有光标,低电平表示无光标 B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。指令5:光标或显示移位 S/C:高电平时移动显示的文字,低电平时移动光标。指令6:功能设置命令 DL:高电平时为4位总线,低电平时为8位总线 N:低电平时为单行显示,高电平时双行显示 F: 低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符。指令7:字符发生器RAM地址设置。指令8:DDRAM地址设置。指令9:读忙信号和光标地址 BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。指令10:写数据。指令11:读数据。 读写操作时序如图3-8和3-9所示:图3

41、-8 读操作时序图3-9 写操作时序LCD的特点:低压微功耗;平板型结构;被动显示型(无眩光,不刺激人眼,不会引起眼睛疲劳);显示信息量大(因为像素可以做得很小);易于彩色化(在色谱上可以非常准确的复现);无电磁辐射(对人体安全,利于信息);长寿命(这种器件几乎没有什么劣化问题,因此寿命极长,但是液晶背光寿命有限,不过背光部分可以更换)。4 计算器系统设计4.1 总体设计根据功能和指标要求,本系统选用MCS-51系列单片机为主控机。通过扩展必要的外围接口电路,实现对计算器的设计。具体设计如下: 由于要设计的是简单的计算器,可以进行四则运算,为了得到较好的显示效果,采用LCD 显示数据和结果。

42、另外键盘包括数字键(09)、符号键(+、-、×、÷)、乘方、开方、清除键和等号键,设计中采用集成的计算键盘。 执行过程:开机显示零,等待键入数值,当键入数字,通过LCD显示出来,当键入+、-、*、/运算符,计算器在部执行数值转换和存储,并等待再次键入数值,当再键入数值后将显示键入的数值,按等号就会在LCD上输出运算结果。 错误提示:当计算器执行过程中有错误时,会在LCD上显示相应的提示,如:当输入的数值或计算得到的结果大于计算器的表示围时,计算器会在LCD上提示溢出;当除数为0时,计算器会在LCD上提示错误。 系统模块如图4-1所示。图4-1 系统模块图4.2 系统硬件设计

43、本设计选用AT89S52单片机为主控单元。 显示部分:采用LCD静态显示。按键部分:采用4*4键盘和P1.5-P1.7,读取输入的键值。为了更好的实现系统得功能,设计应该遵循以下原则:优化电路采用软件设计与硬件设计相结合的方法;尽管采用软件来实现硬件系统的功能时,也许响应时间会比单纯使用硬件时长,而且还要占用微处理器(MCU)的时间;但是,用软件实现硬件的功能可以简化硬件结构,提高电路的可靠性。所以,在设计本系统得时候,在满足可靠性和实时性的前提下,尽可能的通过软件来实现硬件功能。可靠性与抗干扰设计根据可靠性设计理论,系统所用芯片数量越少,系统的平均无故障时间越长。而且,所用芯片数量越少,地址

44、和数据总线在电路板上受干扰的可能性也就越小。因此,系统的设计思想是在满足功能的情况下力争使用较少数量的芯片。灵活的功能扩展功能扩展是否灵活是衡量一个系统优劣的重要指标。一次设计往往不能完全考虑到系统的各个方面,系统需要不断完善以与进行功能升级。进行功能扩展时,应该在原有设计的基础上,通过修改软件程序和少量硬件完成。对于本系统而言,就是要求在系统硬件不变的情况下,能够通过修改软件程序,完成功能的升级和扩展。根据第提出的系统设计方案,结合以上三条原则,确定了系统硬件的设计。计算器主要由以下一些功能模块构成:非编码键盘模块、LCD液晶显示屏模块等。该系统的硬件设计采用了模块化的设计方法。AT89S5

45、2单片机与LCD液晶显示屏显示电路是整个电路的核心,它们实现系统的功能要求。简易计算器主要包括:键盘电路,显示电路。下图4-2为整个系统的图。图4-2 总体图4.3 系统软件设计系统的软件主要是采用C语言,对单片机进行变成实现各项功能。主程序对模块进行初始化,而后调用按键处理程序、显示等。 现实生活中人们熟知的计算器,其功能主要如下:键盘输入;数值显示;加、减、乘、除四则运算与乘方和开方运算; 针对上述功能,计算器软件程序要完成以下模块的设计:按键输入检测模块LCD显示模块;算术运算模块错误处理与提示模块。4.3.1 主程序流程图主程序的主要功能是负责温度的实时显示、处理脉冲信号并负责调用各子

46、程序,其程序流程如图4-3系统程序流程图。开始系统初始化LCD初始化处理按键值判断当前状态LCD显示图4-3系统程序流程图4.4 LCD显示子程序流程图 LCD显示流程图如图4-4所示。图4- 4 LCD显示流程图5 调试与仿真下面用KEIL uVision4与 proteus仿真软件介绍十进制加法计算器的仿真与调试。5.1KEIL uVision4单片机软件开发系统5.1.1 KEIL uVision4的简介 2009年2月发布Keil uVision4,Keil uVision4引入灵活的窗口管理系统,使开发人员能够使用多台监视器,并提供了视觉上的表面对窗口位置的完全控制的任何地方。新的用

47、户界面可以更好地利用屏幕空间和更有效地组织多个窗口,提供一个整洁,高效的环境来开发应用程序。新版本支持更多最新的ARM芯片,还添加了一些其他新功能。 2011年3月ARM1公司发布最新集成开发环境RealView MDK开发工具中集成了最新版本的Keil uVision4,其编译器、调试工具实现与ARM器件的最完美匹配。目前使用Keil uVision4的产品有Keil MDK-ARM,Keil C51,Keil C166和Keil C251。本设计我使用的是Keil c51。5.1.2 系统的整体结构C51工具包的整体结构中,其中uVision是C51 for Windows的集成开发环境(

48、IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。然后分别由C51编译器编译生成目标文件(.OBJ)。目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。采用KEIL 开发的89S52单片机应用程序步骤: 在uVision 集成开发环境中创建新项目(Project),扩展文件名为.UV2,并为该

49、项目选定合适的单片机CPU器件(本设计采用ATMEL 公司下的AT89C51)用uVision 的文本编辑器编写源文件,可以是汇编文件(.ASM),也可以使C语言文件(扩展名.C),并将该文件添加到项目中去。通过uVision 4的相关选择项,配置编译环境、连接定位器以与Debug调试器的功能。对项目中的源文件进行编译连接,生成绝对目标代码和可选的.HEX文件,如果出现编译连接错误则返回到第2步,修改源文件中的错误后重构整个项目。对没有语法错误的程序进行仿真调试,调试成功后将HEX文件写入到单片机应用系统的ROM中。5.2 proteus5.2.1 proteus的简介Proteus是英国La

50、bcenter公司开发的电路分析与仿真软件。该软件的特点是: 集原理图设计、仿真和PCB设计于一体,真正实现从概念到产品的完整电子设计工具。 具有模拟电路、数字电路、单片机应用系统、嵌入式系统(不高于ARM7)设计与仿真功能。 具有全速、单步、设置断点等多种形式的调试功能。 具有各种信号源和电路分析所需的虚拟仪表。 支持Keil C51 uVision4、MPLAB等第三方的软件编译和调试环境。 具有强大的原理图到PCB板设计功能,可以输出多种格式的电路设计报表。拥有PROTEUS电子设计工具,就相当于拥有了一个电子设计和分析平台。5.2.2 proteus的简要的安装步骤 解压文件 然后可以

51、看到图5-1的画面,点击“next”。图 5-1开始安装画面 然后点击“Yes”。 这里选择“Use a locally installed Licence Key”(其实是默认选择了的,不用改),点“Next”。 点“Next”。 点击“Browse For Key File”。 找到“破解”这个文件夹。双击打开,里面只会看到一个文件:LICENCE.lxk。双击该文件。 此时点击“Install”。 此时点击“是”。 然后就点击“Close”。 点“Next”。 安装完成,点“Finish”。 安装完成之后,就是破解了。 最后程序打开。可以看到是7.8 sp2版本的,如图5-2所示。图 5

52、-2 proteus启动界面5.2.3 proteus的操作硬件电路图的接法操作放置选择(删除)元器件移动元器件缩放视图连接导线仿真,调试单片机系统PROTEUS设计与仿真过程 Proteus强大的单片机系统设计与仿真功能,使它可成为单片机系统应用开发和改进手段之一。全部过程都是在计算机上通过Proteus来完成的。其过程一般也可分为三步:在ISIS平台上进行单片机系统电路设计、选择元器件、接插件、连接电路和电检测等,简称Proteus电路设计。效果如图5-3。在Keil平台上进行单片机系统程序设计、编辑、汇编编译、代码级调试,最后生成目标代码文件(*.hex)。简称Proteus源程序设计和

53、生成目标代码文件。如图5-3所示。图5-3在ISIS平台上将目标代码文件加载到单片机系统中,并实现单片机系统的实时交互、协同仿真。它在相当程度上反映了实际单片机系统的运行情况。简称Proteus仿真。步骤如下: 第一步:如图5-4。图5-4 第二步:点击OK。 第三步:开始仿真,debugStart/Restart Debuging。 第四步:实例,例如:3/4=0。 如图5-5所示。致 单片机毕业设计终于结束了,通过紧的工作,完成了我的设计任务-器。总的来说,这次毕业设计是还算成功的。当然,这其中也经历了许多坎坷,但是在我的坚持不懈下,在老师的细心指导下,在同学们的热情帮助下,最终克服了种种

54、困难,取得了成功。 刚开始接到这个计算器的课程设计任务时,因为以前做过类似的题目,于是在脑海中初步构建了编写程序的一些控制程序。但是由于缺乏编写大量程序的经验,不能如行云流水般的将全部的各部分代码写出,于是去网上查找相关资料,了解计算器的输入控制原理、运算处理以与显示的原理。了解之后自己尝试编写程序,在此过程中,其中键盘扫描和动态扫描显示扫描程序困扰了我很久,经过几天的辛苦工作,终于初步把所需要的程序编好了,于是就用Keil uversion4进行仿真,在仿真期间也发现了许多错误,基本上都是平日容易犯的错误,比如忘记了子程序标号、死循环程序、标点符号的漏写等。经过反复的编译差错,仿真编译通过后,于是开始在Proteus中连硬件电路,全部接完电路之后将Keil生成的.Hex文件导入进行仿真,发

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论