毕业设计(论文)基于单片机的电子的计算器.doc

上传人:仙人指路1688 文档编号:3981034 上传时间:2023-03-30 格式:DOC 页数:39 大小:1.58MB
返回 下载 相关 举报
毕业设计(论文)基于单片机的电子的计算器.doc_第1页
第1页 / 共39页
毕业设计(论文)基于单片机的电子的计算器.doc_第2页
第2页 / 共39页
毕业设计(论文)基于单片机的电子的计算器.doc_第3页
第3页 / 共39页
毕业设计(论文)基于单片机的电子的计算器.doc_第4页
第4页 / 共39页
毕业设计(论文)基于单片机的电子的计算器.doc_第5页
第5页 / 共39页
点击查看更多>>
资源描述

《毕业设计(论文)基于单片机的电子的计算器.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)基于单片机的电子的计算器.doc(39页珍藏版)》请在三一办公上搜索。

1、目录1前言11.1系统开发背景11.2系统开发意义11.3设计目的12方案22.1芯片22.2输入模块32.2.1方案构思32.2.2显示模块42.2.3方案构思42.2.4方案比较与选择53系统硬件设计及说明53.1系统组成及总体框图53.1.1元件简介53.1.2AT89S52特点63.1.374LS08简要说明113.1.4LCD1602液晶显示屏124设计原理分析144.1设计方案的确定154.2计算器硬件方案及硬件资源分配154.2.1硬件资源分配154.3键盘电路的设计164.4显示电路的设计175计算器的软件设计185.1计算器的软件规划185.2键盘扫描的程序设计185.3显示

2、模块的程序设计205.4主程序的设计215.5软件的可靠性设计21结束语22致谢23附录一 实物图24附录二 软件程序26基于单片机的电子的计算器摘要:简易计算器是一种非常广泛日常工具,对现代社会越来越流行。它可以进行一些简易的计算。本系统可进行简易的计算信息,还具有时间校准等功能。该电路采用AT89S52单片机作为核心,功耗小,能在3V的低压工作,电压可选用35V电压供电。本系统硬件部分由AT89S52单片机、LCD1602液晶屏、键盘、指示灯系统等部分构成。软件部分在keil环境下用C51语言编写,包括简易计算显示等。关键字:AT89S52;液晶屏LCD1602;矩阵键盘1 前言1.1 系

3、统开发背景随着社会的发展,科学的进步,人们的生活水平在逐步的提高,尤其是微电子技术的发展,犹如雨后春笋般的变化。电子产品的更新速度快就不足惊奇了。计算器在人们的日常中是比较的常见的电子产品之一。如何使计算器技术更加的成熟,充分利用已有的软件和硬件条件,设计出更出色的计算器,使其更好的为各个行业服务,成了如今电子领域重要的研究课题。1.2 系统开发意义今天,人们的日常生活中已经离不开计算器了,社会的各个角落都有它的身影,比如商店,办公室,学校。因此设计一款简单实用的计算器会有很大的实际意义。1.3 设计目的本设计旨在进一步掌握单片机理论知识,理解嵌入式单片机系统的硬软件设计,加强对实际应用系统设

4、计的能力。通过本设计的学习,使我掌握单片机程序设计和微机接口应用的基本方法,并能综合运用本科阶段所学软、硬件知识分析实际问题,提高解决毕业设计实际问题的能力,为单片机应用和开发打下良好的基础。1、对字符液晶显示模块的工作原理,如初始化、清屏、显示、调用及外特性有较清楚的认识,并会使用LCD(液晶显示模块)实现计算结果的显示;掌握液晶显示模块的驱动和编程,设计LCD和单片机的接口电路,以及利用单片机对液晶模块的驱动和操作; 2、在充分分析内部逻辑的概念,进行软件和调试,学会使用,并能够以其为平台设计出具有四则运算能力简易计算器的硬件电路和软件程序。2 方案2.1 芯片本设计中的芯片可以采用两种方

5、案,一种是以FPGA为核心处理芯片,配备相应的外设;另一种是以AT89S52处理器,配备相应的外设。方案一:采用FPGA控制FPGA是一种高密度的可编程逻辑器件,自从Xilinx公司1985年推出第一片FPGA以来,FPGA的集成密度和性能提高很快,其集成密度最高达500万门/片以上,系统性能可达200MHz。由于FPGA器件集成密度高,方便易用,开发和上市周期短,在数字设计和电子生产中得到迅速普及和应用,并一度在高密度的可编程逻辑器件领域中独占鳌头。但是基于SRAM编程的FPGA,其编程信息需存放在外部存储器上,需外部存储器芯片,且使用方法复杂,保密性差,而其对于一个简单的计算器而言,使用F

6、PGA有点大材小用,成本太高。方案二:采用AT89S52单片机是单片微型机的简称,故又称为微控制器MCU(Micro Control Unit)。通常由单块集成电路芯片组成,内部包含有计算机的基本功能部件:中央处理器CPU,存储器和I/O接口电路等。因此,单片机只要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。单片机广泛应用于智能产品,智能仪表,测控技术,智能接口等,具有操作简单、实用方便、价格便宜等优点。其中AT89S52是一种带8K字节闪烁可编程可擦除只读存储器(FPEROM-Flash Programable and Erasable Read Only Memory)的低电

7、压,高性能COMOS8的微处理器。该器件与工业标准的MCS-51指令集和输出管脚相兼容;且是单片机中最典型的代表,应用于各种控制领域。方案比较与选择:通过以上两种方案的论证和比较,从设计的实用性、方便性和成本等诸多方面考虑,最终选择了以AT89S52单片机作为中央处理单元进行计算器的设计,这样设计能够实现对九位整数加、减、乘、除的四则运算。2.2 输入模块2.2.1 方案构思方案一:采用独立式按键作为输入模块独立式按键输入模块,其特点是:直接用I/O口构成单个按键电路,接口电路配置灵活、按键识别和软件结构简单;但是当键数较多时,占用I/O口较多,比较浪费资源。其原理图如图1-2-1所示。图 2

8、.2.1 独立的功能按键方案二:采用矩阵式键盘作为输入模块矩阵式按键输入模块,其特点是:电路和软件稍复杂,但相比之下,当键数越多时,越节约I/O口,比较节省资源。其原理图如图2-2-2所示。图 2.2.2 矩阵键盘输入方案比较与选择本设计中的输入模块使用的是矩阵键盘输入。键盘输入预置用于计算,按键较多。若是采用独立按键,需频繁按键,为软件设计增加负担,且操作界面不友好;若是采用矩阵式按键,可以方便地输入一个数值,使操作界面更具有人性化,且节约了宝贵的I/O口资源。通过对比,故采用方案二作为系统输入模块。2.2.2 显示模块2.2.3 方案构思方案一:采用LED数码管静态显示采用LED数码管的静

9、态显示,其特点是:其亮度较高;这种显示方式接口,编程容易且管理简单;不足的是,占用的I/O的线资源较多。如果采用单片机或CPLD/FPGA来控制的话,势必存在浪费I/O口资源的问题。如图1-3-1所示。图 2.3.1 4位数码管静态显示方案二:采用LED数码管动态显示采用LED数码管的动态显示,其特点是:其亮度比静态显示的亮度要差一些;但其电路比较简单,适合于显示位数较多的情况。如图1-3-2所示。图 2.3.2 4位数码管的动态显示方案三:采用LCD1602液晶显示采用LCD1602液晶显示,其特点是:可以调节其背光亮度,这种显示方式接口,编程虽然有些麻烦,但管理较方便,占用的I/O口资源线

10、也不多。2.2.4 方案比较与选择本设计中的显示模块使用的是LCD1602液晶显示。在计算器运算中,需显示的数字、符号较多,按很据个方面的特点,而后可以发现LCD液晶显示,虽然在价格上的确是稍贵于LED数码管;但数码管在硬件设计电路中,会因线太多、线路复杂而过于繁琐,则舍弃LED数码管,选择LCD液晶显示。通过对比,故采用方案三作为系统显示模块。3 系统硬件设计及说明3.1 系统组成及总体框图图3.1 系统组成及总体框图3.1.1 元件简介 3.1.2 AT89S52特点图3.2.1-1 单片机AT89S521、主要性能: 8031 CPU与MCS-51 兼容 8K字节可编程FLASH存储器(

11、寿命:1000写/擦循环) 全静态工作:0Hz-33MHz 三级加密程序存储器 128*8位内部RAM 32条可编程I/O线 三个16位定时器/计数器 八个中断源 全双工UART串行通道 低功耗的闲置和掉电模式 掉电后中断可唤醒 看门狗定时器 双数据指针 掉电标识符 片内振荡器和时钟电路 管脚说明: VCC:供电电压。 GND:接地。2、AT89S52的功能特性AT89S52 是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。使用Atmel 公司高密度非 易失性存储器技术制造,与工业80C51 产品指令和引脚完 全兼容。片上Flash允许程序存储器在系统可编

12、程,亦适于 常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统 可编程Flash,使得AT89S52为众多嵌入式控制应用系统提 供高灵活、超有效的解决方案。AT89S52具有以下标准功能: 8k字节Flash,256字节RAM, 32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位 定时器/计数器,一个6向量2级中断结构,全双工串行口, 片内晶振及时钟电路。此外, AT89S52 可降至0Hz 静态逻 辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工 作。掉电保护方式下,RAM内容被保存,振荡器被冻结, 单片机一切

13、工作停止,直到下一个中断或硬件复位为止。8 位微控制器 8K 字节在系统可编程 Flash。同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。3、AT89S52引脚功能介绍AT89S52 单片机为40 引脚芯片,见图3.2.1-2。图3.2.1-2 AT89S52引脚图(1)口线:P0、P1、P2、P3 共四个八位口。P0 口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。 对P0端口写“1”时,引脚用作高阻抗输入。 当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0不具有内部上拉电阻。 在f

14、lash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。 P1口:P1 口是一个具有内部上拉电阻的8 位双向I/O 口,p1 输出缓冲器能驱动4 个TTL 逻辑电平。对P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。 此外,P1.0和P1.1分别作定时器/计数器2的外部计数输入(P1.0/T2)和定时器/计数器2的触发输入(P1.1/T2EX),具体如下表所示。 在flash编程和校验时,P1口接收低8位地址字节。 引脚号第二功能: P1.0 T2(定时器

15、/计数器T2的外部计数输入),时钟输出 P1.1 T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制) P1.5 MOSI(在系统编程用) P1.6 MISO(在系统编程用) P1.7 SCK(在系统编程用)P2口:P2 口是一个具有内部上拉电阻的8 位双向I/O 口,P2 输出缓冲器能驱动4 个TTL 逻辑电平。对P2 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。 在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX DPTR) 时,P2 口送出高八位地址。在这种应用中,P

16、2 口使用很强的内部上拉发送1。在使用8位地址(如MOVX RI)访问外部数据存储器时,P2口输出P2锁存器的内容。 在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。 P3 口:P3 口是一个具有内部上拉电阻的8 位双向I/O 口,p3 输出缓冲器能驱动4 个TTL 逻辑电平。对P3 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。 P3口亦作为AT89S52特殊功能(第二功能)使用,如表3.2.1所示。 表3.2.1 P3口管脚 备选功能端口引脚第二功能P3.0RXD(串行输入口)P

17、3.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闪存编程和程序校验的控制信号。 (2)其他引脚说明:RST:复位输入。晶振工作时,RST脚持续2 个机器周期高电平将使单片机复位。看门狗计时完成后,RST 脚输出96 个晶振周期的高电平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。DISRTO默认状态下,

18、复位高电平有效。 ALE/PROG当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。 对FLASH存储器编程期间,该引脚还用于输入编程脉冲(PROG)。 如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。 PSEN程序储存允许(P

19、SEN)输出是外部程序存储器的读选通信号,当AT89S52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号。 EA/VPP外部访问允许,欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。 如EA端为高电平(接Vcc端),CPU则执行内部程序存储器的指令。 FLASH存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。 XTAL1:反向振荡放大器的输入及内

20、部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。 XTAL1,XTAL2接石英晶体振荡器。如图3.2.1-3所示外接晶体引脚图。图3.2.1-3晶振外接结构引脚图XTAL1是片内振荡器的反相放大器输入端,XTAL2则是输出端,使用外部振荡器时,外部振荡信号应直接加到XTAL1,而XTAL2悬空。内部方式时,时钟发生器对振荡脉冲二分频,如晶振为12MHz,时钟频率就为6MHz。晶振的频率可以在1MHz-24MHz内选择,在本设计电路中选用了12MHz。电容取20PF左右。机器周期12时间周期,如12MHz的机器周期为1微秒。控制或复位引脚RESET 此脚为高电平时(约2个机器周期)可将

21、单片机复位。RST/VPD当出现两个机器周期高电平时,单片机复位。复位后,P0P3输出高电平;SP寄存器为07H;其它寄存器全部清0;不影响RAM状态。如图3.2.1-4所示。 图3.2.1-4 按键电平复位 AT89SXX系列单片机实现了ISP下载功能,故而取代了89CXX系列的下载方式,也是因为这样,ATMEL公司已经停止生产89CXX系列的单片机,现在市面上的AT89CXX多是停产前的库存产品。 (3)AT89S52的编程方法 编程前,须按编程模式表设置好地址、数据及控制信号;顺序如下: 在地址线上加上要编程单元的地址信号。 在数据线上加上要写入的数据字节。 激活相应的控制信号。 将EA

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

23、境比较恶劣,入高温,强电磁干扰,甚至含有腐蚀性气体,在太空中工作的单片机控制系统,还必须具有抗辐射能力,这决定了单片机CPU于通用微机CPU具有不同的技术特征和发展方向:l 可靠性高;l 控制功能往往很强,数值计算交叉;l 指令系统比通用微处理器慢的多;l X系列芯片取代;l 抗干扰性强,工作温度范围宽。3.1.3 74LS08简要说明74LS08为四组2输入端与门(正逻辑),其主要电特性的典型值如下表3.2.2所示:􀩟表3.2.2 74LS08主要电特性的典型值型号tPLHtphlPD74LS088ns10ns17mW74LS08逻辑图如下图3.2.2:图3.2.2 74L

24、S08逻辑图引出端符号 1A4A 输入端1B4B 输入端 1Y4Y 输出端 74LS08功能表如下表3.2.3所示:表3.2.3 74LS08功能表(Y=AB)InputsOutputABYLLHHLHLHLLLH极限值:电源电压 7V 输入电压 7V AB 间电压 5.5V 输出截止态电压 7V工作环境温度 070存储温度 -65150推荐工作条件如表2.2.4所示:表2.2.4推荐工作条件74LS08最小额定最大单位电源电压VCC4.7555.25V输入高电平电压ViH2V输入低电平电 压ViL08V输出高电平电流IOH-400A输出低电平电 流IOL8mA静态特性(TA 为工作环境温度范

25、围)如表2.2.5所示:表2.2.5静态特性参 数测 试 条 件【1】最小最大单位V IK输入嵌位电压Vcc=最小-1.5VVOH输出高电平电压Vcc最小,VIH2V, IOH最大2.7VVOL输出低电平电压Vcc= 最小,VIL=最大,IOL=最大0.5VII最大输入电压时输入电流Vcc最大0.1mAI IH输入高电平电流Vcc最大20uAI IL输入低电平电流Vcc最大mAI OS输出短路电流Vcc最大-20-100mAICCH输出高电平时电源电流Vcc最大4.8mAICCL输出低电平时电源电流Vcc最大8.8mA注1: 测试条件中的“最小”和“最大”用推荐工作条件中的相应值。动态特性(T

26、A=25) 如表2.2.6所示:表2.2.6动态特性参 数测 试 条 件最大单位tPLH输出由低到高传输延迟时间Vcc=5V,CL=15Pf,RL=2K15nstPHL输出由高到低传输延迟时间20ns3.1.4 LCD1602液晶显示屏1、应用简介模块内部自带字符发生存储器(CGROM),字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是(41H),显示时模块把代码41H发给液晶模块,我们就能在液晶上看到字母“A”。1602液晶模块内部的控制器共有11条控制指令,丰富的指令可以完成液晶的时序控制、工作方式式设置和数据显

27、示等。采用的LCD1602液晶模块是标准16针插座,接口电路如图3.2.3所示:关于LCD1602的详细资料见表3.2.3-1和表3.2.3-2。图3.2.3 LCD接口电路表3.2.3-1 LCD1602引脚说明第1脚VSS为地电源第2脚VDD接5V正电源第3脚V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。第4脚RS为寄存器选择,高电平选择数据寄存器、低电平选择指令寄存器。第5脚RW为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和RW共同为低电平时 (00)可以写入指令或者显示地

28、址;当RS为低电平RW为高电平时(01)可以读入忙信号;当RS为高电平RW为低电平时(10)可以写入数据。第6脚E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第714脚D0D7为8位双向数据线。第1516脚背光阳极和背光阴极。表3.2.3-2 LCD1602指令表指令1清显示 指令码01H, 光标复位到地址00H位置;指令2光标复位 指令码02H, 光标返回到地址00H位置 ;指令3光标和显示模式设置 I/D位 光标移动方向,高电平右移,低电平左移;S 位 屏幕上所有文字是否左移或者右移,高电平有效,低电平无效;指令4显示开关控制 D 位 控制整体显示的开与关,高电平表示开显示

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

30、板型结构;(3)被动显示型(无眩光,不刺激人眼,不会引起眼睛疲劳);(4)显示信息量大(因为像素可以做得很小);(5)易于彩色化(在色谱上可以非常准确的复现);(6)无电磁辐射(对人体安全,利于信息保密);(7)长寿命(这种器件几乎没有什么劣化问题,因此寿命极长,但是液晶背光寿命有限,不过背光部分可以更换)。4 设计原理分析4.1 设计方案的确定本设计需要使用LCD液晶显示屏和编码键盘。故选择静态显示和用编码键盘。使用LCD液晶显示屏显示运算结果。 主程序进行初始化,其他的程序选择模块式的方式。首先对每个模块进行调试, 当模块调试成功后,逐一的加入主程序中,最后完成整个软件部分的设计。4.2

31、计算器硬件方案及硬件资源分配4.2.1 硬件资源分配主要用到的硬件:AT89S52 LCD液晶显示屏 编码键盘 1、硬件分配:l P0、P3口:做为输出口,控制LCD液晶显示屏显示数据的结果。l P1口:做为输入口,与键盘连接,实现数据的输入。l LCD液晶显示屏显示输出。2、系统的硬件设计为了更好的实现系统得功能,硬件电路的设计应该遵循以下原则:(1)优化硬件电路采用软件设计与硬件设计相结合的方法;尽管采用软件来实现硬件系统的功能时,也许响应时间会比单纯使用硬件时长,而且还要占用微处理器(MCU)的时间;但是,用软件实现硬件的功能可以简化硬件结构,提高电路的可靠性。所以,在设计本系统得时候,

32、在满足可靠性和实时性的前提下,尽可能的通过软件来实现硬件功能。(2)可靠性及抗干扰设计根据可靠性设计理论,系统所用芯片数量越少,系统的平均无故障时间越长。而且,所用芯片数量越少,地址和数据总线在电路板上受干扰的可能性也就越小。因此,系统的设计思想是在满足功能的情况下力争使用较少数量的芯片。(3)灵活的功能扩展功能扩展是否灵活是衡量一个系统优劣的重要指标。一次设计往往不能完全考虑到系统的各个方面,系统需要不断完善以及进行功能升级。进行功能扩展时,应该在原有设计的基础上,通过修改软件程序和少量硬件完成。对于本系统而言,就是要求在系统硬件不变的情况下,能够通过修改软件程序,完成功能的升级和扩展。根据

33、第提出的系统设计方案,结合以上三条原则,确定了系统硬件的设计。计算器主要由以下一些功能模块构成:非编码键盘模块、LCD液晶显示屏模块等。该系统的硬件设计采用了模块化的设计方法。AT89S52 单片机与LCD液晶显示屏显示电路是整个电路的核心,它们实现系统的功能要求。简易计算器主要包括:键盘电路,显示电路。下图为总体硬件结构。(如图4.2.1 所示为整个系统的原理图)图4.2.1 计算器原理图前面叙述了该系统的设计说明,系统采用了比较简单的设计方案,所以该系统的硬件设计的总外围电路不会产生过多的干扰。在下面的阐述中,对系统的外围电路分别予以介绍。键盘部分采用编码键盘,显示部分采用LCD液晶显示屏

34、完全能够很好的实现显示方面的要求。4.3 键盘电路的设计键盘可分为两类:编码键盘和非编码键盘。编码键盘是较多按键(20个以上)和专用驱动芯片的组合,当按下某个按键时,它能够处理按键抖动、连击等问题,直接输出按键的编码,无需系统软件干预。通用计算机使用的标准键盘就是编码键盘。在智能仪器中,使用并行接口芯片8279或串行接口芯片HD7279均可以组成编码键盘,同时还可以兼顾数码管的显示驱动,其相关的接口电路和接口软件均可在芯片资料中得到。当系统功能比较复杂,按键数量很多时,采用编码键盘可以简化软件设计。非编码键盘成本低廉。 从成本角度出发,本设计选用的是非编码键盘。如图4.2.2图4.2.2 编码

35、键盘电路4.4 显示电路的设计当系统需要显示少量数据时,采用LCD液晶显示屏进行显示是一种经济实用的方法。P0口作为液晶显示的数据端口,P3.5-P3.7口作为其控制端口,控制LCD液晶显示屏显示输出数据。最终电路如图4.2.3所示: 图4.2.3 LCD液晶显示屏显示5 计算器的软件设计5.1 计算器的软件规划简易计算器的程序主要包括以下功能模块: l 定时查键模块,分为读键程序、判键程序段、运算操作子程序等部分; l 基于LCD液晶显示屏的显示模块; l 主模块,为系统的初始化。 5.2 键盘扫描的程序设计键盘扫描子程序,首先读出P1的低四位,然后读出P1口的高四位。然后键值并显示缓存。然

36、后将键如的值转换为ASCII码然后就可以软件来设置硬件按键各个键代表的内容。 读键程序使用的是反转法读键,不管键盘矩阵的规模大小,均进行两次读键。第一次所有行线均输出低电平,从所有读入键盘信息(列信息);第二次所有列线均输出低电平,从所有行线读入键盘信息(行信息)。系统中连接的是4*4行列式按键键盘,其中“0-9”为数字键;“+、-、*、/、=”为符号键;“ON/C”为功能键(清屏键),在程序中会加入一个记忆功能键,而与其搭配的硬件按键为符号键中的“=”,以为求方便。数字键按下则将相应的数字送入数字缓冲区;符号键按下则将送入符号缓冲区;功能键按下则执行相应的程序;最终进行运算后,综合结果将送入

37、结果缓冲区,并在LCD液晶显示屏上显示出来。键盘模块程序也可相当于一个中断服务子程序,如图4-4-1所示。图 5-2-1 中断服务程序框图通过以上的中断服务程序框图,来编写其子程序:void keyscan() /键盘扫描程序 uchar temp,uu=0xf7; uint i; for(i=0;i4;i+) uu=_crol_(uu,1); /_crol_为左移函数 case 0xee: key=0; break; case 0xde: key=1; break; case 0x77: key=15; break; 在以上的程序中,其中的“key=0key=15”是按键“0-9、+、-、*

38、、/、=、ON/C”16个键。而“case 0xee: key=0; break;”中,被赋值为“0xee”,则是因为行信息是P3口的低四位,若是按键按下为“0”,则P3.0为“0”,P3.1-P3.3为“1”;同时,列信息是P3口的高四位,若是按键按下为“0”,则P3.4为“0”,P3.5-P3.7为“1”;由此可得,其被赋值为“0xee”。以此类推,之后一直到“case 0x77: key=15; break;”为止,都是采用相同的方法去赋值的。5.3 显示模块的程序设计显示模块程序首先要对显示模块进行初始化;然后控制光标的位置;定义液晶显示的控制端口,用SBIT指令完成;然后设置清屏、关

39、闭显示、归位、开显示、显示位置的首地址等等。显示模块的流程图如图5.3所示:图5.3模块的流程图5.4 主程序的设计 主程序主要是用来对LCD液晶显示屏进行初始化的。在考虑主程序编写之前,先应对计算器的运作流程有一个大致的了解,之后依次为依据画出大致的流程图(如图5-4-1),以便于编写其主模块的程序,这样看来,会比较清晰、更加方便。图 5-4-1 主程序框图5.5 软件的可靠性设计 提高本仪器其可靠性措施主要有: (1) 为防止程序跑飞,软件中设置了软件陷阱。 (2) 为防止程序死循环,软件中使用了看门狗技术。5.6 仿真与实物图 结束语通过基于89S52单片机简易计算器的设计,加深了我对单

40、片机的了解,学以致用,不但回顾了过去所学,更使我了解现在的不足,弥补了一些知识漏洞。在硬件的制作过程中,我走了很多弯路。主要是在系统还没有到设计完全的时候就开始很心急地买元器件及动手焊板子。后来发现与设计的要求还有偏差,而后反复地改了好几次,浪费了大量的时间和精力。板子按照自己的设计焊完之后,应开始设计自己的软件程序了。一开始,本想用汇编语言来编程的,可是当编了一部分之后才发现,用汇编语言来编程的话,相当繁复冗长;之后就想试着用C语言来编程。在图书馆查阅了一些相关资料后,就开始写程序。在编写程序的过程中,发现硬件居然出现了不少问题。所以,在编写程序的过程中,也就完善了硬件的设计。编程时,已充分

41、使用了结构化的思想。这样一来,因为语句较少,程序调试也比较方便,功能模块可以逐一地调试,充分体现了结构化编程的优势。当每个模块都完成时,将其功能加到一起就完成了整体的设计。更重要的是在实际设计和试验中形成了更加科学合理的认识,不断形成更为合理和具有科学性的思想方式。在这次设计中借助了互联网等途径查询相关信息,并在图书馆查阅了大量单片机资料。这不但扩展了有关单片机领域的眼界,而且完善了以往的知识体系。提高了运用知识的综合能力。致谢本次毕业设计得到指导老师孙老师的热心指导,在这里对孙老师表示最衷心的感谢。孙老师平易近人,对学生的设计进度和学习很关心。在毕业设计的前期,首先给我们分析了一下课题的基本

42、含义,也介绍了不少有用的资料和书籍;在硬件设计等方面给予悉心地指导;在调试的过程中,孙老师给每个出现的问题也给予了及时的指导。在写毕业设计论文的阶段,孙老师先跟我们讲了一下大体的结构思路、内容字体、格式上的及一些其他问题。待人平和、工作认真、治学严谨的她给我留下了很深刻的印象。更重要的是,她善于与学生沟通,不仅在毕业设计上给了我及时的指导,更为我大学最后阶段的学习提出了许多宝贵的意见。这一切都在潜移默化地影响着我,为我以后进入工作岗位树立了良好的榜样。同时,还应该感谢完成毕业设计期间共同努力相互学习和帮助的同学们,在整个毕业设计的过程中,正因为有了与同学之间的共同探讨,让我在独立完成任务的同时

43、,体会到团队中智慧的强大。最后再次向所有帮助和关心过我的人表示衷心感谢!参考文献1张靖武,周灵杉.单片机系统的PROTEUS设计与仿真M.北京:北京电子工业出版社2孟建华 郝晋霞.AT89S系列单片机及在线编程技术西安工程科技学院学报 2006 63刘守义. 单片机应用技术M.:西安电子科技大学出版社,20014林志琦.基于PROTEUS的单片机可视化软硬件仿真M.北京:北京航空航天大学出版社,20065梁家海.基于MCS 51系列单片机的并发式显示系统的设计 钦州学院学报 2006 66基于单片机的简易计算器设计.7肖洪兵. 跟我学用单片机. 北京:北京航空航天大学出版社,2002.88曹瑞

44、 徐森 科技视界,2012 第2期9严桂兰. C语言程序设计M.厦门:厦门大学出版社,200610刘刚. 单片机原理及其接口技术. 科学出版社 201211 Kilic, R. SC-CNN based multifunction signal generator. International journal of bifurcation and chaos in applied sciences and engineering, 2007.17(12)12 Tao Wet,Yu kun Han,YanJun Li .Temperature-insensitive miniaturized fiber in line Fabry-Perot interferometer for highly sensitive refractive index measurement. Optics Express. 2008.16(08)13 Popa, C.Improved Accuracy Pseudo-Exponential Function Generator With Applications in Ana

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号