毕业设计(论文)_基于MC51单片机的简易计算器设计说明.doc
《毕业设计(论文)_基于MC51单片机的简易计算器设计说明.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)_基于MC51单片机的简易计算器设计说明.doc(47页珍藏版)》请在咨信网上搜索。
. 电 》 毕业设计(论文) 题 目: 基于单片机的简易计算器 专业名称: 电子信息工程技术 姓 名: 学 号: 班 级: 08级通信与信息技术班 指导教师: (2011届) 2010年 12月 30日 摘要 [摘要] 近几年单片机技术的发展很快,其中电子产品的更新速度迅猛。计算器是日常生活中比较的常见的电子产品之一。如何才能使计算器技术更加的成熟,充分利用已有的软件和硬件条件,设计出更出色的计算器呢。 本设计是以AT89S52单片机为核心的计算器模拟系统设计,输入采用4×6矩阵键盘,可以进行加、减、乘、除9位带符号数字运算,并在LCD1602上显示操作过程。 科技的进步告别了以前复杂的模拟电路,一块几厘米平方的单片机可以省去很多繁琐的电路。现在应用较广泛的是科学计算器,与我们日常所用的简单计算器有较大差别,除了能进行加减乘除,科学计算器还可以进行正数的四则运算和乘方、开方运算,具有指数、对数、三角函数、反三角函数与存储等计算功能。计算器的未来是小型化和轻便化,现在市面上出现的使用太阳能电池的计算器,使用ASIC设计的计算器,如使用纯软件实现的计算器等,未来的智能化计算器将是我们的发展方向,更希望成为应用广泛的计算工具。 [关键词] AT89S52 LCD1602 计算器 矩阵键盘 目录 第一章前言1 1.1 系统开发背景1 1.2 系统开发意义1 1.3 设计目的1 第二章方案论证2 2.1 方案构思2 2.2 方案比较与选择2 第三章系统硬件设计与说明3 3.1系统组成与总体框图3 3.2元件简介3 3.2.1 AT89S52特点3 3.2.2 74LS08简要说明9 3.2.3 LCD1602液晶显示屏12 第四章设计原理分析15 4.1 设计方案的确定15 4.2计算器硬件方案与硬件资源分配15 4.2.1 硬件资源分配15 4.2.2 系统的硬件设计15 4.2.3 键盘电路的设计17 4.2.4 显示电路的设计18 第五章计算器的软件设计19 5.1计算器的软件规划19 5.2 键盘扫描的程序设计19 5.3 显示模块的程序设计19 5.4 主程序的设计20 5.5 软件的可靠性设计20 结束语22 致23 参考文献24 附录25 附录一:硬件实物图25 附录二:系统程序清单26 43 / 47 第一章 前言 1.1 系统开发背景 随着社会的发展,科学的进步,人们的生活水平在逐步的提高,尤其是微电子技术的发展,犹如雨后春笋般的变化。电子产品的更新速度快就不足惊奇了。计算器在人们的日常中是比较的常见的电子产品之一。如何使计算器技术更加的成熟,充分利用已有的软件和硬件条件,设计出更出色的计算器,使其更好的为各个行业服务,成了如今电子领域重要的研究课题。 1.2 系统开发意义 今天,人们的日常生活中已经离不开计算器了,社会的各个角落都有它的身影,比如商店,办公室,学校……。因此设计一款简单实用的计算器会有很大的实际意义。 1.3 设计目的 本设计旨在进一步掌握单片机理论知识,理解嵌入式单片机系统的硬软件设计,加强对实际应用系统设计的能力。通过本设计的学习,使我掌握单片机程序设计和微机接口应用的基本方法,并能综合运用本科阶段所学软、硬件知识分析实际问题,提高解决毕业设计实际问题的能力,为单片机应用和开发打下良好的基础。 1、对字符液晶显示模块的工作原理,如初始化、清屏、显示、调用与外特性有较清楚的认识,并会使用LCD(液晶显示模块)实现计算结果的显示;掌握液晶显示模块的驱动和编程,设计LCD和单片机的接口电路,以与利用单片机对液晶模块的驱动和操作; 2、在充分分析部逻辑的概念,进行软件和调试,学会使用,并能够以其为平台设计出具有四则运算能力简易计算器的硬件电路和软件程序。 第二章 方案论证 2.1 方案构思 本设计可以采用两种方案,一种是以FPGA为核心处理芯片,配备相应的外设;另外一种是以AT89S52处理器,配备相应的外设。 1、方案一:采用FPGA控制 FPGA是一种高密度的可编程逻辑器件,自从Xilinx公司1985年推出第一片FPGA以来,FPGA的集成密度和性能提高很快,其集成密度最高达500万门/片以上,系统性能可达200MHz。由于FPGA器件集成度高,方便易用,开发和上市周期短,在数字设计和电子生产中得到迅速普与和应用,并一度在高密度的可编程逻辑器件领域中独占鳌头。 但是而基于 SRAM编程的FPGA,其编程信息需存放在外部存储器上 ,需外部存储器芯片 ,且使用方法复杂 ,性差,而其对于一个简单的计算器而言,实用FPGA有点大材小用,成本太高。 2、方案二:采用AT89S52 单片机是单片微型机的简称,故又称为微控制器MCU(Micro Control Unit)。通常由单块集成电路芯片组成,部包含有计算机的基本功能部件:中央处理器CPU,存储器和I/O接口电路等。因此,单片机只要和适当的软件与外部设备相结合,便可成为一个单片机控制系统。单片机广泛用于智能产品,智能仪表,测控技术,智能接口等,具有操作简单,实用方便,价格便宜等优点,而其中AT89S52以MCS-51为核,是单片机中最典型的代表,应用于各种控制领域。 2.2 方案比较与选择 通过以上两种方案论证和比较,从设计的实用性,方便性和成本出发,选择了以AT89S52单片机作为中央处理单元进行计算器的设计,这样设计能够实现对六位浮点数的加减和三位浮点数的乘除运算。 第三章 系统硬件设计与说明 3.1系统组成与总体框图 与门模块 LCD液晶显示屏模块 电源模块 AT89S52 主控制模 块 编码键盘模块 图3.1 系统组成与总体框图 3.2元件简介 3.2.1 AT89S52特点 图3.2.1-1 单片机AT89S52 1、主要性能: (1) • 8031 CPU与MCS-51 兼容 • 8K字节可编程FLASH存储器(寿命:1000写/擦循环) • 全静态工作:0Hz-33MHz •三级加密程序存储器 • 128*8位部RAM • 32条可编程I/O线 • 三个16位定时器/计数器 • 八个中断源 •全双工UART串行通道 • 低功耗的闲置和掉电模式 •掉电后中断可唤醒 •看门狗定时器 •双数据指针 •掉电标识符 • 片振荡器和时钟电路 (2) 管脚说明: VCC:供电电压。 GND:接地。 2、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等三种封装形式,以适应不同产品的需求。 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不具有部上拉电阻。 在flash编程时,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(定时器/计数器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 口送出高八位地址。在这种应用中,P2 口使用很强的部上拉发送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.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口也接收一些控制信号。 此外,P3口还接收一些用于FLASH闪存编程和程序校验的控制信号。 (2)其他引脚说明: RST:复位输入。晶振工作时,RST脚持续2 个机器周期高电平将使单片机复位。看门狗计时完成后,RST 脚输出96 个晶振周期的高电平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。DISRTO默认状态下,复位高电平有效。 ALE/PROG——当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。 对FLASH存储器编程期间,该引脚还用于输入编程脉冲(PROG)。 如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。 PSEN——程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89S52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号。 EA/VPP——外部访问允许,欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时部会锁存EA端状态。 如EA端为高电平(接Vcc端),CPU则执行部程序存储器的指令。 FLASH存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。 XTAL1:反向振荡放大器的输入与部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。 XTAL1,XTAL2接石英晶体振荡器。如图3.2.1-3所示外接晶体引脚图。 C2XTAL2 悬空XTAL2 C1XTAL1外部振荡信号XTAL1 GND GND 接地 接地 a.部方式b.外部方式 图3.2.1-3晶振外接结构引脚图 XTAL1是片振荡器的反相放大器输入端,XTAL2则是输出端,使用外部振荡器时,外部振荡信号应直接加到XTAL1,而XTAL2悬空。部方式时,时钟发生器对振荡脉冲二分频,如晶振为12MHz,时钟频率就为6MHz。晶振的频率可以在1MHz-24MHz选择,在本设计电路中选用了12MHz。电容取20PF左右。机器周期=12×时间周期,如12MHz的机器周期为1微秒。 (3)控制或复位引脚 RESET 此脚为高电平时(约2个机器周期)可将单片机复位。 RST/VPD——当出现两个机器周期高电平时,单片机复位。复位后,P0~P3输出高电平;SP寄存器为07H;其它寄存器全部清0;不影响RAM状态。如图3.2.1-4所示。 图3.2.1-4 按键电平复位 AT89SXX系列单片机实现了ISP下载功能,故而取代了89CXX系列的下载方式,也是因为这样,ATMEL公司已经停止生产89CXX系列的单片机,现在市面上的AT89CXX多是停产前的库存产品。 4、AT89S52的编程方法 编程前,须按编程模式表设置好地址、数据与控制信号;顺序如下: ① 在地址线上加上要编程单元的地址信号。 ②在数据线上加上要写入的数据字节。 ③激活相应的控制信号。 ④将EA/Vpp端加上+12V编程电压。 ⑤每对Flash存储阵列写入一个字节或每写入一个程序位,加上一个ALE/PROG编程脉冲。每个字节写入周期是自身定时的,大多数约为50us。改变编程单元的地址和写入的数据,重复①—⑤步骤,直到全部文件编程结束。 单片机的现状与发展方向: 单片机是为了工业控制需要满足而诞生的,是自动控制系统的核心部件,因而也主要用于工业控制、智能化仪器仪表、家用电器中。它具有体积小,功能多、价格低、使用方便、系统设计灵活等优点,应用领域不断扩大,除了工业控制,智能化仪表,通讯,家用电器外,在智能化高档电子玩具产品中也大量采用单片机芯片作为核心控制部件。 由于单片机主要面向工业控制,工作环境比较恶劣,入高温,强电磁干扰,甚至含有腐蚀性气体,在太空中工作的单片机控制系统,还必须具有抗辐射能力,这决定了单片机CPU于通用微机CPU具有不同的技术特征和发展方向: (1)可靠性高; (2)控制功能往往很强,数值计算交叉; (3)指令系统比通用微处理器慢的多; (4) X系列芯片取代; (5)抗干扰性强,工作温度围宽。 3.2.2 74LS08简要说明 74LS08为四组2输入端与门(正逻辑),其主要电特性的典型值如下: 型号 tPLH tphl PD 74LS08 8ns 10ns 17mW 74LS08逻辑图: 图3.2.2 74LS08逻辑图 引出端符号 1A-4A 输入端 1B-4B 输入端 1Y-4Y 输出端 74LS08功能表: 表3.2.2 74LS08功能表(Y=AB) Inputs Output A B Y L L H H L H L H L L L H 极限值: 电源电压 ……………. 7V 输入电压………………. 7V A-B 间电压………. 5.5V 输出截止态电压………. 7V 工作环境温度………… 0~70℃ 存储温度 …………. -65~150℃ 推荐工作条件: 74LS08 最小 额定 最大 单位 电源电压VCC 4.75 5 5.25 V 输入高电平电压ViH 2 V 输入低电平电压ViL 0.8 V 输出高电平电流IOH -400 μA 输出低电平电流IOL 8 mA 静态特性(TA 为工作环境温度围): 参数 测试条件[1] 最小 最大 单位 V IK输入嵌位电压 Vcc=最小 -1.5 V VOH输出高电平电压 Vcc=最小,VIH=2V, IOH=最大 2.7 V VOL输出低电平电压 Vcc= 最小,VIL=最大,IOL=最大 0.5 V II最大输入电压时输入电流 Vcc=最大 0.1 mA I IH输入高电平电流 Vcc=最大 20 uA I IL输入低电平电流 Vcc=最大 mA I OS输出短路电流 Vcc=最大 -20 -100 mA ICCH输出高电平时电源电流 Vcc=最大 4.8 mA ICCL输出低电平时电源电流 Vcc=最大 8.8 mA [1]: 测试条件中的“最小”和“最大”用推荐工作条件中的相应值。 动态特性(TA=25℃): 参数 测试条件 最大 单位 tPLH输出由低到高传输延迟时间 Vcc=5V,CL=15Pf,RL=2KΩ 15 ns tPHL输出由高到低传输延迟时间 20 ns 3.2.3 LCD1602液晶显示屏 1、应用简介 模块部自带字符发生存储器(CGROM),字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是(41H),显示时模块把代码41H发给液晶模块,我们就能在液晶上看到字母“A”。 1602液晶模块部的控制器共有11条控制指令,丰富的指令可以完成液晶的时序控制、工作方式式设置和数据显示等。 采用的LCD1602液晶模块是标准16针插座,接口电路如图3.2.3所示:关于LCD1602的详细资料见表3.2.3-1和表3.2.3-2。 图3.2.3LCD接口电路 表3.2.3-1 LCD1602引脚说明 第1脚 VSS为地电源 第2脚 VDD接5V正电源 第3脚 V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。 第4脚 RS为寄存器选择,高电平选择数据寄存器、低电平选择指令寄存器。 第5脚 RW为读写信号线,高电平时进行读操作,低电平时进行写操作。 当RS和RW共同为低电平时 (00)可以写入指令或者显示地址; 当RS为低电平RW为高电平时(01)可以读入忙信号; 当RS为高电平RW为低电平时(10)可以写入数据。 第6脚 E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。 第7~14脚 D0~D7为8位双向数据线。 第15~16脚 背光阳极和背光阴极。 表3.2.3-2 LCD1602指令表 指令1 清显示 指令码01H, 光标复位到地址00H位置; 指令2 光标复位 指令码02H, 光标返回到地址00H位置 ; 指令3 光标和显示模式设置 I/D位 → 光标移动方向,高电平右移,低电平左移; S 位 → 屏幕上所有文字是否左移或者右移,高电平有效,低电平无效; 指令4 显示开关控制 D 位 → 控制整体显示的开与关,高电平表示开显示,低电平表示关显示; C 位 → 控制光标的开与关,高电平表示有光标,低电平表示无光标; B 位 → 控制光标是否闪烁,高电平闪烁,低电平不闪烁 ; 指令5 光标或显示移位 S/C位 → 高电平时移动显示的文字,低电平时移动光标 指令6 功能命令设置 DL位---高电平时为4位数据总线,低电平时为8位总线; N—位低电平时为单行显示,高电平时为双行显示; F—位低电平时显示5x7的点阵字符,高电平时为5x10的点阵字符; 指令7 字符发生器RAM地址设置 指令8 DDRAM地址设置 指令9 读忙信号和光标地址 BF位→为忙标志位,高电平表示忙,此时模块不能接收命令或者数据 指令10 写数据 指令11 读数据 2 、LCD的特点: (1)低压微功耗; (2)平板型结构; (3)被动显示型(无眩光,不刺激人眼,不会引起眼睛疲劳); (4)显示信息量大(因为像素可以做得很小); (5)易于彩色化(在色谱上可以非常准确的复现); (6)无电磁辐射(对人体安全,利于信息); (7)长寿命(这种器件几乎没有什么劣化问题,因此寿命极长,但是液晶背光寿命有限,不过背光部分可以更换)。 第四章 设计原理分析 4.1 设计方案的确定 本设计需要使用LCD液晶显示屏和编码键盘。故选择静态显示和用编码键盘。使用LCD液晶显示屏显示运算结果。 主程序进行初始化,其他的程序选择模块式的方式。首先对每个模块进行调试, 当模块调试成功后,逐一的加入主程序中,最后完成整个软件部分的设计。 4.2计算器硬件方案与硬件资源分配 4.2.1 硬件资源分配 主要用到的硬件:AT89S52 LCD液晶显示屏 编码键盘 硬件分配: 1、P0、P3口:做为输出口,控制LCD液晶显示屏显示数据的结果。 2、P1口:做为输入口,与键盘连接,实现数据的输入。 3、LCD液晶显示屏显示输出。 4.2.2 系统的硬件设计 为了更好的实现系统得功能,硬件电路的设计应该遵循以下原则: 1、优化硬件电路 采用软件设计与硬件设计相结合的方法;尽管采用软件来实现硬件系统的功能时,也许响应时间会比单纯使用硬件时长,而且还要占用微处理器(MCU)的时间;但是,用软件实现硬件的功能可以简化硬件结构,提高电路的可靠性。所以,在设计本系统得时候,在满足可靠性和实时性的前提下,尽可能的通过软件来实现硬件功能。 2、可靠性与抗干扰设计 根据可靠性设计理论,系统所用芯片数量越少,系统的平均无故障时间越长。而且,所用芯片数量越少,地址和数据总线在电路板上受干扰的可能性也就越小。因此,系统的设计思想是在满足功能的情况下力争使用较少数量的芯片。 3、灵活的功能扩展 功能扩展是否灵活是衡量一个系统优劣的重要指标。一次设计往往不能完全考虑到系统的各个方面,系统需要不断完善以与进行功能升级。进行功能扩展时,应该在原有设计的基础上,通过修改软件程序和少量硬件完成。对于本系统而言,就是要求在系统硬件不变的情况下,能够通过修改软件程序,完成功能的升级和扩展。 根据第提出的系统设计方案,结合以上三条原则,确定了系统硬件的设计。计算器主要由以下一些功能模块构成:非编码键盘模块、LCD液晶显示屏模块等。 该系统的硬件设计采用了模块化的设计方法。AT89S52单片机与LCD液晶显示屏显示电路是整个电路的核心,它们实现系统的功能要求。 简易计算器主要包括:键盘电路,显示电路。 下图为总体硬件结构。(如图4.2.2 所示为整个系统的原理图) 图4.2.2 计算器原理图 前面叙述了该系统的设计说明,系统采用了比较简单的设计方案,所以该系统的硬件设计的总外围电路不会产生过多的干扰。在下面的阐述中,对系统的外围电路分别予以介绍。键盘部分采用编码键盘,显示部分采用LCD液晶显示屏完全能够很好的实现显示方面的要求。 4.2.3 键盘电路的设计 键盘可分为两类:编码键盘和非编码键盘。编码键盘是较多按键(20个以上)和专用驱动芯片的组合,当按下某个按键时,它能够处理按键抖动、连击等问题,直接输出按键的编码,无需系统软件干预。通用计算机使用的标准键盘就是编码键盘。在智能仪器中,使用并行接口芯片8279或串行接口芯片HD7279均可以组成编码键盘,同时还可以兼顾数码管的显示驱动,其相关的接口电路和接口软件均可在芯片资料中得到。当系统功能比较复杂,按键数量很多时,采用编码键盘可以简化软件设计。非编码键盘成本低廉。 从成本角度出发,本设计选用的是非编码键盘。如图4.2.3 图4.2.3编码键盘电路 4.2.4 显示电路的设计 当系统需要显示少量数据时,采用LCD液晶显示屏进行显示是一种经济实用的方法。P0口作为液晶显示的数据端口,P3.5-P3.7口作为其控制端口,控制LCD液晶显示屏显示输出数据。 最终电路如图4.2.4所示: 图4.2.4LCD液晶显示屏显示 第五章 计算器的软件设计 5.1计算器的软件规划 简易计算器的程序主要包括以下功能模块: 1、定时查键模块,分为读键程序、判键程序段、运算操作子程序等部分; 2、基于LCD液晶显示屏的显示模块; 3、主模块,为系统的初始化。 5.2 键盘扫描的程序设计 键盘扫描子程序,首先读出P1的低四位,然后读出P1口的高四位。然后键值并显示缓存。然后将键如的值转换为ASCII码然后就可以软件来设置硬件按键各个键代表的容。 读键程序使用的是反转法读键,不管键盘矩阵的规模大小,均进行两次读键。第一次所有行线均输出低电平,从所有读入键盘信息(列信息);第二次所有列线均输出低电平,从所有行线读入键盘信息(行信息)。 数字键按下则将相应的数字送入缓存区,功能键按下则执行相应的程序。 5.3 显示模块的程序设计 显示模块程序首先要对显示模块进行初始化;然后控制光标的位置;定义液晶显示的控制端口,用SBIT指令完成;然后设置清屏、关闭显示、归位、开显示、显示位置的首地址等等。 显示模块的流程图如图5.3所示: 延时程序 开始 检测LED是否在忙 扫描键盘 Y N 加减乘除运算子程序 液晶显示 结束 图5.3模块的流程图 5.4 主程序的设计 主程序主要是用来对LCD液晶显示屏进行初始化的。 5.5 软件的可靠性设计 提高本仪器其可靠性措施主要有: 1、为防止程序跑飞,软件中设置了软件陷阱。 2、为防止程序死循环,软件中使用了看门狗技术。 结束语 在硬件的制作过程中我走了好多的弯路,主要是在系统还没有设计很有把握就开始动手制作了。后来发现与设计的要求还有偏差,反复的改过了几次,浪费了大量的时间和体力。感受到设计人员要有耐心,要认真的从要求开始研究。软件的编写过程中费了很大的力气,因为软件的编写要求很高,要很细心,一不小心就会调用错误,很深刻的体会到作为软件编程人员是绝不能粗心大意的。一个程序的完成的速度和质量高低与细心与否有着很大联系。编程时,我充分使用了结构化的思想。这样因为语句较少,程序调试比较方便,功能模块可以逐一的调试,充分体现了结构化编程的优势。当每个模块都完成时,将其功能加到一起就完成了整体的设计。 致 本次毕业设计得到导师应华老师的热心指导,在这里对老师表示最衷心的感。老师平易近人,对学生的设计进度和学习很关心。在毕业设计的前期,首先给我们介绍了不少有用的资料和书籍;在硬件设计等方面给予悉心的指导;在调试的过程中老师给每个出现的问题给予与时的指导。在写毕业设计论文的阶段,老师让我们提前给他评审,不论容字体,还是格式上的问题都一一指出。待人平和、工作认真、治学严谨他的给我留下很深刻的印象。更重要的是,他善于与学生沟通,不仅在毕业设计上给我与时的指导,更为我大学最后阶段的学习提出了许多宝贵的意见。这一切都在潜移默化地影响着我,为我以后进入工作岗位树立了良好的榜样。 同时还要感梁芳芳老师,她关心同学们的进程,了解同学们在撰写过程中的麻烦,给我们提供很多帮助。 最后向所有帮助和关心过我的人表示衷心感! 参考文献 [1]靖武,周灵杉.单片机系统的PROTEUS设计与仿真[M].:电子工业 [2]靳达.科技.单片机应用系统开发实例导航[M].:人民邮电,2006 [3]守义. 单片机应用技术[M].:电子科技大学,2001 [4]林志琦.基于PROTEUS的单片机可视化软硬件仿真[M].:航空航天大学,2006 [5]胡汉才.单片机原理与接口技术.清华大学,1996 [6]徐江海.单片机实用教程[M].:机械工业,2007. [7]肖洪兵. 跟我学用单片机. :航空航天大学,2002.8 [8]夏继强. 单片机实验与实践教程. :航空航天大学, 2001 [9]谭浩强. C语言程序设计[M].:清华大学,2000. [10]福基. C语言程序设计与实训教程[M].:科学,2004. [11]磊. C语言程序设计[M].:高等教育,2005. [12]严桂兰. C语言程序设计[M].:大学,2006 附录 附录一:硬件实物图 硬件实物图(正面) 硬件实物图(背面) 附录二:系统程序清单 ;主程序 // Header: // File Name: // Author: // Date: #include <AT89X51.h> #include "LCD1602.h" #include "Keypade.h" void Header_printf(unsigned char *str) //规避WARNING L15 { while(*str!='\0') { BWR_data(*str); str++; } } void Header() { LCD_moveto(0,0); Header_printf("ZhangFeng "); LCD_moveto(1,3); Header_printf("XH:0810416016"); } void Main() { LCD_init(); Header(); P2=P2|0x0F; P1=P1&0xC0; /*开外部中断*/ IT0=1; //下降沿触发 EX0=1; EA = 1; while(1); } void mINT0 (void) interrupt 0 { char i; EA=0; for(i=5;i>0;i--) { if(INT0==1) break; } if(INT0==0) { Key_press(); } EA=1; } ;按键处理程序 #include <At89X51.h> #include "LCD1602.h" #include "Keypade.h" #include "Operation.h" void Key_press() { char a[16]; //第一次输入数字存在b[16]里,按下中间计算符后,循环a[len]=b[len];清空b[len] char b[16]; //再次输入数字仍存在b[16]里,按下等号后,计算a,b,结果存在b[len]; char key; char i; char arc; //运算符 char len; //数字长度 bit sign; //正负号 bit point; //小数点 key=Key_get(); //数字键处理 if(key==12) key='7'; else if(key==13) key='8'; else if(key==14) key='9'; else if(key==22) key='4'; else if(key==23) key='5'; else if(key==24) key='6'; else if(key==32) key='1'; else if(key==33) key='2'; else if(key==34) key='3'; else if(key==42) key='0'; else if(key==11) key='C'; //清空 else if(key==21) key='S'; //正负号 else if(key==31) key='%'; else if(key==41) key=' '; //空格 else if(key==43) key='.'; else if(key==44) key='='; else if(key==45) key='+'; else if(key==25) key='-'; else if(key==15) key='*'; else if(key==16) key='/'; else if(key==26) key='M'; //MRC else if(key==36) key='D'; //M- else if(key==46) key='A'; //M+ else key='E'; //错误 if(len<15) //前15个- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业设计 论文 基于 MC51 单片机 简易 计算器 设计 说明
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文