基于单片机设计的计算器_第1页
基于单片机设计的计算器_第2页
基于单片机设计的计算器_第3页
基于单片机设计的计算器_第4页
基于单片机设计的计算器_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

南 昌 工 程 学 院毕 业 设 计 (论 文 )机 械 与 电 气 工 程 学 院 ( 院 ) 系 电气工程及其自动化 专业毕业设计(论文)题目 基于单片机设计的计算器(硬件)学 生 姓 名 班 级 学 号 指 导 教 师 完 成 日 期 2010 年 6 月 18 日基于单片机设计的计算器(硬件)The calculator based on the design of MCU (hardware)总计 毕业设计(论文) 34 页表 格 6 个插 图 18 幅南昌工程学院本科毕业设计(论文)摘 要近年来随着计算机在社会领域的渗透和大规模集成电路的发展,单片机的应用正在不断地走向深入,由于它具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点,因此特别适合于与控制有关的系统,越来越广泛地应用于自动控制,智能化仪器,仪表,近年来随着计算机在社会领域的渗透和大规模集成电路的发展,单片机的应用正在不断地走向深入,由于它具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点,因此特别适合于与控制有关的系统,越来越广泛地应用于自动控制,智能化仪器,仪表,数据采集,军工产品以及家用电器等各个领域。作为微型机的一个主要分支,单片机在结构上的最大特点是把 CPU、RAM 和 ROM 存储器、定时器和多种 I/O 接口电路集成在一块超大规模集成电路芯片上。从它的组成和功能来看,一块单片机芯片其实就是一台计算机。本次设计是采用 MSC-51 单片机来设计的六位数计算器, 采用 C 语言进行程序编写实现计算器功能。外接 4X5 的键盘,通过键盘扫描来完成输入数的控制,输出采用1602 液晶显示,并设有清零键可随时完成计算与显示的清零。计算器将完成的 0 至99999 整数的加/减/乘/除运算。关键字:单片机 AT89S52 1602 液晶 矩阵键盘 C 语言南昌工程学院本科毕业设计(论文)AbstractIn recent years, as computer penetration in the social field and large-scale development of integrated circuits, microcontroller applications are continually deepening, because of its powerful function, small size, low power consumption, cheap, reliable, easy to use, etc. therefore particularly suitable for systems with control of more and more widely used in automatic control, intelligent instruments, meters, data acquisition, military products and home appliances fields.As one of the main branch of microcomputer, microcontroller in the structure of the biggest feature is the CPU, RAM and ROM memory, timer and multiple I / O interface circuit integrated on a VLSI chip. The composition and function from its point of view, a single chip is actually a computer. This design is the use of MSC-51 microcontroller to design the six-digit calculator, using C programming language to achieve calculator functions. 4X5external keyboard, the keyboard scan to finish by the number of control values and the 1602 output with human-type liquid crystal to achieve,and has cleared at any time to complete key calculation and display clear. Calculator to complete from 0 to 99999 plus / minus / multiply / divide.Key words: MCU AT89S52; LCD1602; Matrix Keyboard; C language南昌工程学院本科毕业设计(论文)目 录摘要 I ABSTRACT. II 第一章 引言 .11.1 选题的依据及课题的意义 .11.2 研究概况及发展趋势综述 .11.3 实验 设计要求21.4.总 体设计思路 2第二章 设计方案论证与 选择 .32.1 控制部分的设计方案论证 与选择 .32.2 显示电路的设计方案论证与选择 .42.3 单片机电源部分的设计方 案论证与选择 .62.4 键盘设计方案论证与 选择 .82.5 单片 机复位 电路的设计方案论 证与选择 .92.6 系统 组成 .10第三章 重要器件的知识介绍 .113.1 单片机的知识介绍 113.1.1 单片机功 能特性113.1.2 单片机各引脚功 能说明 113.1.3 单片机时钟电路133.1.4 LED 提示电路 143.2 1602 液 晶显示资料 15第四章 计 算器的软件编程 .164.1 程序设计思想164.2 4*5 键盘扫描程序174.3 1602 液晶显示程序 .18第五章 计算器使用 说明 .19结 语 .20参考文献 .21致 谢 .22附 录 .23南昌工程学院本科毕业设计(论文)- 1 -第一章 引言单 片 机 设 计 的 计 算 器 在人们的日常中是比较的常见的电子产品之一。其特点是携带 方 便 与 价 格 廉 价 , 因 此 广 泛 运 用 于 商 业 交 易 与 生 活 实 用 中 , 可是它还在发展之中,以后必将出现功能更加强大的计算器,基于这样的理念,本次设计用单片机来设计一个六 位 数 的 计 算 器 。1.1 选题的依据及课题的意义单 片 机 也 被 称 为 微 控 制 器 ( Microcontroller) , 是 因 为 它 最 早 被 用 在 工 业 控制 领 域 。 单 片 机 由 芯 片 内 仅 有 CPU 的 专 用 处 理 器 发 展 而 来 。 最 早 的 设 计 理 念 是 通过 将 大 量 外 围 设 备 和 CPU 集 成 在 一 个 芯 片 中 , 使 计 算 机 系 统 更 小 , 更 容 易 集 成 进 复杂 的 而 对 体 积 要 求 严 格 的 控 制 设 备 当 中 。通过编程可加深对 C 语言的理解及 51 单片机系列的硬件、及其指令,还有从硬件上了解单片机是如何扩展外部电路的。如:这次用到了 1602 液晶,掌握了 1602 的硬件原理后我们可以使其与单片机相连,通过对单片机的控制,给 1602 发出指令或数据。通过这次毕业设计可以学到一种学习方法,对于一块陌生的芯片,我们可通过提供给的芯片资料,了解其运作,然后达到运用的目的。1.2 研究概况及发展趋势综述单片机设计的计算器有输入单元(按键)运算单元(MCU)显示单元(LCD)三大部分组成,键盘执行数据采集以及操作的输入,MCU 按照固化好的程序运算出结果送入LCD 显示。早 期 的 单 片 机 都 是 8 位 或 4 位 的 。 其 中 最 成 功 的 是 INTEL 的 8031, 因 为 简 单可 靠 而 性 能 不 错 获 得 了 很 大 的 好 评 。 此 后 在 8031 上 发 展 出 了 MCS51 系 列 单 片 机 系统 。 基 于 这 一 系 统 的 单 片 机 系 统 直 到 现 在 还 在 广 泛 使 用 。 随 着 工 业 控 制 领 域 要 求的 提 高 , 开 始 出 现 了 16 位 单 片 机 , 但 因 为 性 价 比 不 理 想 并 未 得 到 很 广 泛 的 应 用 。90 年 代 后 随 着 消 费 电 子 产 品 大 发 展 , 单 片 机 技 术 得 到 了 巨 大 的 提 高 。 随 着 INTEL i960 系 列 特 别 是 后 来 的 ARM 系 列 的 广 泛 应 用 , 32 位 单 片 机 迅 速 取 代 16 位 单 片 机的 高 端 地 位 , 并 且 进 入 主 流 市 场 。 目 前 , 高 端 的 32 位 单 片 机 主 频 已 经 超 过南昌工程学院本科毕业设计(论文)300MHz性 能 直 追 90 年 代 中 期 的 专 用 处 理 器 , 而 普 通 的 型 号 出 厂 价 格 跌 落 至 1 美 元 , 最 高端 的 型 号 也 只 有 10 美 元 。 当 代 单 片 机 系 统 已 经 不 再 只 在 裸 机 环 境 下 开 发 和 使 用 ,大 量 专 用 的 嵌 入 式 操 作 系 统 被 广 泛 应 用 在 全 系 列 的 单 片 机 上 。1.3 实验设计要求根据设计要求,设计一个计算器,预计所能达到功能如下(1)该计算器能进行六位数的运算,即运算结果可从 0 到 999999;(2)能进行加减乘除 4 种运算,精确到小数点后三位;(3)能对错误进行提示,比如被除数等于 0,乘法运算结果大于 999999 等;(4)含有清除单个最低位数据和全部输入数据的功能;(5)能够实现加减乘除四则混合运算,能够实现连续计算,并能判断运算优先级;(6)进行正负数运算;1.4 总体设计思路设计主要采用以下基本模块来实现,控制器模块,输入模块,输出模块和电源模块。通过对控制器进行编程,使其对输入模块的信号进行处理计算,然后通过输出模块反馈给使用者以计算结果。该系统的结构框图如下图所示图 1-1 系统组成方框图南昌工程学院本科毕业设计(论文)- 3 -第二章 设计方案论证与选择2.1 控制部分的设计方案论证与选择方案一 采用单片机 AT89S52 芯片 AT89S52 是一个低功耗,高性能 CMOS 8 位单片机,片内含 8k Bytes ISP(In-system programmable)的可反复擦写 1000 次的 Flash 只读程序存储器,器件采用ATMEL 公司的高密度、非易失性存储技术制造,兼容标准 MCS-51 指令系统及 80C51 引脚结构,芯片内集成了通用 8 位中央处理器和 ISP Flash 存储单元,功能强大的微型计算机的 AT89S52 可为许多嵌入式控制应用系统提供高性价比的解决方案。AT89S52 具有如下特点:40 个引脚,8k Bytes Flash 片内程序存储器,256 bytes的随机存取数据存储器(RAM) ,32 个外部双向输入/输出(I/O)口,5 个中断优先级2 层中断嵌套中断,2 个 16 位可编程定时计数器,2 个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。方案二 采用单片机 AT89C52 芯片AT89C52 是一个低电压,高性能 CMOS 8 位单片机,片内含 8k bytes 的可反复擦写的 Flash 只读程序存储器和 256 bytes 的随机存取数据存储器(RAM) ,器件采用 ATMEL公司的高密度、非易失性存储技术生产,兼容标准 MCS-51 指令系统,片内置通用 8 位中央处理器和 Flash 存储单元,功能强大的 AT89C52 单片机可为您提供许多较复杂系统控制应用场合。AT89C52 有 40 个引脚,32 个外部双向输入/输出(I/O)端口,同时内含 2 个外中断口,3 个 16 位可编程定时计数器,2 个全双工串行通信口,2 个读写口线,AT89C52可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和 Flash 存储器结合在一起,特别是可反复擦写的 Flash 存储器可有效地降低开发成本。综上所述,AT89C51 不支持 ISP,只能采用昂贵的编程器来下程序.AT89S52 支持ISP,可采用并口,用下载线,即可下程序,因此用 AT89S52 作为控制器,不仅功能易于实现,并且有其成本低、技术成熟和功耗小等优点,因此我们采用方案一。第二章 设计方案论证与选择- 4 -2.2 显示电路的设计方案论证与选择 方案一 采用 LCD 1602 型液晶显示(一) 基本特性a、显示特性 单 5V 电源电压,低功耗、长寿命、高可靠性 内置 192 种字符(160 个 5 7 点阵和 32 个 5 10 点阵字符) 显示方式:SIN、半透、正显 驱动方式:1/16DUTY,1/5BIAS 视角方向:6 点 背光方式:底部 LED 通讯方式:4 位或 8 位并口可选 标准的接口特性:适配 MC51 和 M6800 系列 MPU 的操作时序。b、物理特性如表 2-1 所示表 2-1 物理特性( 二)接口定义表 2-2 接口定义管脚号 符号 功能1 VSS 电源地2 VDD 电源电压(+5V)3 V0 LCD 驱动电压(可调)寄存器选择输入端,输入 MPU 选择模块内部寄存器类型信号 RS=0外形尺寸 80*36*14 单位可视范围 64.6(w) 16.0(H)mm显示容量 16 字符二行点尺寸 0.55 0.75 mm点间距 0.08 mm南昌工程学院本科毕业设计(论文)- 5 -4 RS 当 MPU 进行写模块操作,指向指令寄存器当 MPU 进行读操作,指向地址计数器;RS=1,无论 MPU 是读操作还是写操作,均指向数据寄存器5 R/W 读写控制输入端,输入 MPU 选择读/写操作信号:R/W=0 读操作;R/W=1 写操作6 E 使能信号输入端,入 MPU 选择读/写操作使能信号;读操作时,高电平有效;写操作时,下降沿有效7 DB0 数据输入/输出口,MPU 与模块之间的数据传送通道8 DB1 数据输入/输出口,MPU 与模块之间的数据传送通道9 DB2 数据输入/输出口,MPU 与模块之间的数据传送通道10 DB3 数据输入/输出口,MPU 与模块之间的数据传送通道11 DB4 数据输入/输出口,MPU 与模块之间的数据传送通道12 DB5 数据输入/输出口,MPU 与模块之间的数据传送通道13 DB6 数据输入/输出口,MPU 与模块之间的数据传送通道14 DB7 数据输入/输出口,MPU 与模块之间的数据传送通道4 位通讯方式时,不使用DB0715 A 背光灯正极16 K 背光灯负极LCD 1602 液晶有 16 个引脚,它能显示 32 个字符,且硬件电路设计简单,显示美观。LCD 1602 与单片机的接口电路如图 2-1 所示第二章 设计方案论证与选择- 6 -图 2-1LCD 1602 与单片机接口电路方案二 采用汉字图形点阵液晶显示器 RT12864M 显示方案 RT12864M 汉字图形点阵液晶显示模块,可显示汉字及图形。供电电源为3.3V+5V(内置升压电路,无需负压),能采用并行和串行两种通信方式。并有光标显示、画面移位、自定义字符、睡眠模式等功能。其与单片机的接口电路如图 2-2 所示图 2-2 12864 与单片机的接口电路综上所叙,LCD 1602 液晶的设计简单,且能满足设计要求,故我们选择 LCD 1602 液晶作为显示部分。2.3 单片机电源部分的设计方案论证与选择方案一 用固定式三端稳压器 7805 三 端 稳 压 集 成 电 路 7805 只 有 三 条 引 脚 输 出 , 分 别 是 输 入 端 、 接 地 端 和 输 出 端 。它 的 样 子 象 是 普 通 的 三 极 管 。用 7805 组 成 稳 压 电 源 所 需 的 外 围 元 件 极 少 , 电 路 内 部 还 有 过 流 、 过 热 及 调 整 管的 保 护 电 路 , 使 用 起 来 可 靠 、 方 便 , 而 且 价 格 便 宜 。常见 78 系列的输入输出压差为 7V,所以正常范围内 12V 是 7805 的输入电压上限。南昌工程学院本科毕业设计(论文)- 7 -当电压再高时,虽然也可以继续稳压,但输出电流能力将受到很大影响。因此这里使用 9V 电池作为电源。如图 2-3,7805 系列稳压器输出固定的正电压 5V,输入端接电容 C1 可以进一步滤除纹波,输出端接电容 C2 能改变负载的瞬态影响,使电路稳定工作 C1、C2 最好采用漏电流小的钽电容。如果采用电解电容,电容要比图中数值增加 10 倍。图 2-3 固定式三端稳压器方案二 用 7805 加一些外围器件 虽然 7805 三端集成稳压管内部有过流、过热和安全区的保护电路,但其输出仍有可能发生过压的危险。因此本电路加了过压保护电路,电路如图 2-4 所示,该电路由稳压管 VD3、电阻 R3 和晶闸管 VS 组成。1 2 3 4 5 6ABCD654321DCBATitleNumber RevisionSizeBDate: 15-Sep-2001 Sheet of File: F:My Documents-.ddbDrawn By:Vin1GND2+5V 3U17805VD21S1885VD11S1885R1470R34.7KC10.022uFC20.022uF C30.022uFC4220u/25VVD3VT1 2SB683GND+-+-5V/1.6A9V5 5VC56800uF/35V R210KVSC6 0.1uF图 2-4 可扩流过压保护 5V 稳压电源第二章 设计方案论证与选择- 8 -综上所述,方案一电路简单,而且已符合本次设计的要求,第二种方案所用元件较多,性价比不高,所以选择方案一。2.4 键盘设计方案论证与选择方案一 通过 PS2 协义,用键盘同单片机相接,从而实现单片机与键盘通信现在 PC 机广泛采用的 PS/2 接口为 miniDIN 6 引脚的连接器。其引脚图为 1数据线(DATA) ;2未用;3电源地(GND) ;4电源(+5 V) ;5时钟(CLK) ;6未用。其电路如图 2-5 所示图 2-5 键盘与单片机接口图由 1-7 图可知,使用键盘硬件结构比较简单,但键盘的体积太大。方案二 独立键盘独立键盘为一端接地,另一端接 I/O 口,并且要接上拉电阻。这种键盘的硬件都很容易实现,但每一个按键就要用一个 I/O 口,非常的浪费单片机的 I/O 口资源。方案三 自制编码键盘如图 2-6 是 15 个按键的编码键盘所示,这种键盘有编程简单,占用资源少,但其硬件比较复杂,要用很多的二极管,不是很理想。南昌工程学院本科毕业设计(论文)- 9 -图 2-6 自制 15 个按键的编码键盘电路图方案四 4*5 矩阵式键盘其矩阵式键盘电路图如图 2-7 所示图 2-7 4*5 矩阵式键盘电路图综上所述,矩阵式键盘的硬件简单,使用的 I/O 口也不多,而且这种键盘的编程方法已很成熟。所以本次键盘部分采用这种矩阵式键盘。2.5 单片机复位电路的设计方案论证与选择复位是单片机的初始化操作,其主要功能是把 PC 初始化为 0000H,使单片机从0000H 单元开始执行程序。除了进入系统的正常初始化之外,当由于程序运行出错或操作错误是系统处于死锁状态时,为摆脱困境,也需要按复位键以重新启动。RST 引脚是单片机复位信号的输入端,复位信号是高电平有效,其有效时间应持续24 个振荡周期(即 2 个机器周期)以上,若使用频率为 11.0592MHz 的晶振,则复位信号持续时间应超过 4s 才能完成复位操作。方案一 自动上电复位电路 通过外部复位电路的 RC 电路充放电来实现的。方案二 手动按键复位电路第二章 设计方案论证与选择- 10 -按键电平复位是通过使复位端经电阻与 VCC 电源接通而实现的。为了保证复位信号持续时间超过 4s,从而实现复位功能,故选择电容为 10F,R2 的电阻为 10k。其复位电路如下图 2-8图 2-8 复位电路综上所述,自动复位需去电再通电才能复位,而手动复位电路可以随时复位,尤其是程序跑飞时,只需按下键就可以复位。因此选择手动按键复位电路作为单片机复位电路。2.6 系统组成经过方案最终论证与比较,最终确定的系统组成框图如图 2-9 所示。其中单片机作为主控设备对采集输入信号后并进行处理,最后通过输出设备输出给使用者。该系统的结构框图如图 2-9 所示南昌工程学院本科毕业设计(论文)- 11 -图 2-9 第三章 重要器件的知识介绍3.1 单片机的知识介绍ATMEL 公司生产的 AT89S52 型单片机是方便程序下载程序且好用,而且能够满足本设计的要求。3.1.1 单片机功能特性(1)与 MCS-51 单 片 机 产 品 兼 容 (2)8K 字 节 在 系 统 可 编 程 Flash 存 储 器(3)1000 次 擦 写 周 期(4)全 静 态 操 作 : 0Hz 33MHz (5)三 级 加 密 程 序 存 储 器 (6)32 个 可 编 程 I/O 口 线 (7)三 个 16 位 定 时 器 /计 数 器 八 个 中 断 源 (8)全 双 工 UART 串 行 通 道(9)低 功 耗 空 闲 和 掉 电 模 式 (10)掉 电 后 中 断 可 唤 醒 (11)看 门 狗 定 时 器(12)双 数 据 指 针3.1.2 单片机各引脚功能说明AT89S52 的功能引脚如图 3-1 所示第三章 重要器件的知识介绍- 12 -图 3-1 AT89S52 的引脚图VCC:供电电压。GND:接地。RST:复位输入。当振荡器复位器件时,要保持 RST 脚两个机器周期的高电平时间。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。P0 口:P0 口为一个 8 位漏级开路双向 I/O 口,每脚可吸收 8TTL 门流。当 P1 口的管脚第一次写 1 时,被定义为高阻输入。P0 能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在 FIASH 编程时,P0 口作为原码输入口,当 FIASH 进行校验时,P0 输出原码,此时 P0 外部必须被拉高。P1 口:P1 口是一个内部提供上拉电阻的 8 位双向 I/O 口,P1 口缓冲器能接收输出4TTL 门电流。P1 口管脚写入 1 后,被内部上拉为高,可用作输入,P1 口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在 FLASH 编程和校验时,P1 口作为第八位地址接收。 P2 口:P2 口为一个内部上拉电阻的 8 位双向 I/O 口,P2 口缓冲器可接收,输出 4个 TTL 门电流,当 P2 口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2 口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2 口当用于外部程序存储器或 16 位地址外部数据存储器进行存取时,P2 口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2 口输出其特殊功能寄存器的内容。P2 口在 FLASH 编程和校验时接收高南昌工程学院本科毕业设计(论文)- 13 -八位地址信号和控制信号。P3 口:P3 口管脚是 8 个带内部上拉电阻的双向 I/O 口,可接收输出 4 个 TTL 门电流。当 P3 口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3 口将输出电流(ILL)这是由于上拉的缘故。P3 口也可作为AT89S52 的一些特殊功能口,如表 3-1 所示表 3-1 AT89S52 的一些特殊功能口管脚 备选功能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 (外部数据存储器读选通)ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在 FLASH 编程期间,此引脚用于输入编程脉冲。在平时,ALE 端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的 1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个 ALE 脉冲。如想禁止 ALE 的输出可在 SFR8EH 地址上置 0。此时, ALE 只有在执行 MOVX,MOVC 指令时才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态 ALE 禁止,置位无效。:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器PSEN周期两次 有效。但在访问外部数据存储器时,这两次信号将不出现。/VPP:当 保持低电平时,则在此期间外部程序存储器(0000H-FFFFH) ,A不管是否有内部程序存储器。注意加密方式 1 时, 将内部锁定为 RESET;当 端EAEA保持高电平时,此间内部程序存储器。在 FLASH 编程期间,此引脚也用于施加 12V 编第三章 重要器件的知识介绍- 14 -程电源(VPP) 。3.1.3 单片机时钟电路时钟电路产生单片机工作所需要的时钟信号,单片机本身就是一个复杂的同步时序电路,为了保证同步工作方式的实现,电路在唯一的时钟信号控制下严格地按时序进行工作。在 MCS-51 芯片内部有一个高增益反相放大器,其输入端为芯片引脚 X1,输出端为引脚 X2,在芯片的外部跨接晶体振荡器和微调电容,形成反馈电路,就构成了一个稳定的自激振荡器。 此时钟电路采用 11.0592MHz 的石英晶体,时钟电路如下图 3-2图 3-2 时钟电路3.1.4 LED 提示电路 这个 LED 提示电路是用一个 LED 接单片机的一个引脚,在其引脚发出一个高电平导通。有三个功能:系统初始化时会闪烁、归零时会闪烁、shift 功能键会闪烁。与单片机连接的电路原理图如图 3-3 所示南昌工程学院本科毕业设计(论文)- 15 -图 3-3 LED 提示电路3.2 1602 液晶显示资料控制器内部带有 80*8 位(80 字节)的 RAM 缓冲区,对应关系如图 3-4 所示图 3-4 RAM 地址映射图设置数据指针如表 3-2表 3-2 数据指针显示开/关及光标设置如表 3-3表 3-3 显示及光标设置指令码 功能0 0 1 1 1 0 0 0 设置 16*2 显示,5*7 点阵,8 为数据接口第三章 重要器件的知识介绍- 16 -0 0 0 0 1 D C B D=1 开显示;C=1 显示光标; B=1 光标闪烁D=0 关显示;C=0 不显示光标;B=0 不光标闪烁0 0 0 0 0 1 N S N=1 当读或写一个字符后地址指针加一,切光标加一N=0 当读或写一个字符后地址指针减一,切光标减一S=1 当读或写一个字符整屏显示左移(N=1)或右移(N=0)S=0 当写一个字符,整屏不移动其它设置如表 3-4表 3-4 其它设置指令码 功能01H 数据指针清零 所有显示清零02H 数据指针清零10H 光标左移 数据指针加 114H 光标右移 数据指针减 118H 屏幕左移 光标跟着左移 数据指针不变1CH 屏幕右移 光标跟着左移 数据指针不变第四章 计算器的软件编程4.1 主函数根据任务书的要求,让主程序一直保持在一个大循环中(一直保持键盘扫描) ,对相应的键值进行判断且处理,再接着键盘扫描。具体如程序流程图 4-1南昌工程学院本科毕业设计(论文)- 17 -图 4-1 程序流程图4.2 4*5 键盘扫描程序根据硬件的介绍,键盘是直接接到 I/O 口上的,这个键盘需要一个软件的消抖,可对键值按下时产生的脉冲进行相应的延时,键盘扫描程序在附录。其驱动程序流程第四章 计算器软件编程- 18 -图 4-2 如下所示图 4-2 驱动程序流程图4.3 1602 液晶显示程序根据第一章所介绍的 1602 液晶的相关资料,我编写了一个带双参数的函数(集合了写数据和写指令的函数)如下所示:void write(uchar date,uchar com) 南昌工程学院本科毕业设计(论文)- 19 -lcdrs=com;P0=date;delay(5);lcden=1;delay(5);lcden=0;结语- 20 -第五章 计算器使用说明这个计算器的使用,跟平常所使用的普通计算器没多大的区别,只不过有些未知的因数在里面,毕竟没有进行相关的测试,只是一味的满足任务书上的要求。举个简单的例子,符号不能被删除,就是那个“C”键(键盘如图 5-1) ,不能删除符号,但是你想改变符号,你可以直接按符号键。“shift”键,它有两个功能:一是输入负数,这个负数的输入方法是先输入该数的正整数部分,再按下“shift”键,这时信号灯会闪一下,接着在按下负号(这时这个数是不能被“C”键单个清除的) ;二是做为括号的输入,这个括号在前面第二章主程序中有提起,它是不包含括号运算功能的,只是为了让负数显示的更理想。还有一点是当按下“shift” 键时,想取消则再按一次。 (注意:在使用“shift”键的功能时,当要按下第二个键时,

温馨提示

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

评论

0/150

提交评论