欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > DOC文档下载  

    基于51单片机的简易计算器设计毕业论文(设计)word格式可编辑.doc

    • 资源ID:3919551       资源大小:501KB        全文页数:47页
    • 资源格式: DOC        下载积分:6
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要6
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于51单片机的简易计算器设计毕业论文(设计)word格式可编辑.doc

    河南河南#学校学校 毕毕业业设设计计(论论文文) 基于基于 5151 单片机的简易计算器单片机的简易计算器 系系 部部: : 自动控制系自动控制系 专专 业业: : 电气自动化电气自动化 班班 级级: : 自自 083083 姓姓 名名: : 崔崔 # # # # 学学 号号: : 091415302091415302 指导老师指导老师: : 许许 # # 二零一二年五月八日二零一二年五月八日 基于 51 单片机的简易计算器 I 摘要摘要 工程实践教学环节是为了学生能够更好地巩固和实践所学专业知识而设置的, 在本次工程实践中,我以智能化测量控制仪表原理与设计 、 MCS-51 系列单 片微型计算机及其应用课程中所学知识为基础,设计了简易计算器。本系统以 MCS-51 系列中的 8051 单片机为核心,能够实现多位数的四则运算。该系统通过 检测矩阵键盘扫描,判断是否按键,经数据转换把数值送入数码管动态显示。本 系统的设计说明重点介绍了如下几方面的内容:基于单片机简易计算器的基本功 能,同时对矩阵键盘及数码管动态显示原理进行了简单的阐述;介绍了系统的总 体设计、给出了系统的整体流程框图,并对其进行了功能模块划分及所采用的元 器件进行了详细说明;对系统各功能模块的软、硬件实现进行了详细的设计说明。 关键词关键词:MCS-51; 8051 单片机;计算器;加减乘除 Based on the simple calculator 51 SCM II Abstract The engineering practice teaching is to students better to consolidate and practice have set up by the professional knowledge, in this engineering practice, I to the intelligent measurement control instrument principle and design “, “the MCS-51 series single chip computer and its application“ course knowledge as the foundation, the design the simple calculator. This system to MCS-51 of the 8051 series single chip microcomputer as the core, can realize the connection arithmetic. The system through the test matrix keyboard scan, judge whether key, the data transfer the numerical into digital tube dynamic display. This system mainly introduced the design that the following aspects of content: based on single chip microcomputer simple calculator basic functions, and the matrix keyboard and a digital tube dynamic display of the principle of a simple expatiated; introduced the design of the whole system, the whole process of the system are discussed, and its function module partition and the components for a detailed explanation; the functional modules of the system hardware and software of the implementation of the detailed design instructions. Key words: MCS-51; 8051 single chip microcomputer; Calculator; Add, subtract, multiply and divide: 目录 III 目录目录 第 1 章 绪 论······································· ··························1 1.1 课题简 介······································· ························1 1.2 设计目 的······································· ························1 1.3 设计任 务······································· ························1 1.4 章节安排说 明······································· ···················1 第 2 章 计算器系统简 介············································· ·············2 2.1 单片机发展现 状······································· ·················2 2.2 计算机系统现 状······································· ·················2 2.3 简易计算器系统简 介······································· ·············3 第 3 章 计算机硬件系统简 介············································· ········4 3.1 计算机硬件需 IV 求······································· ·················4 3.2 MCS-51 系列单片机简 介······4 3.3 外围电路设计 ········································ ·················8 3.3.1 振荡电路设 计······································· ··················8 3.3.2 复位电路设 计······································· ··················9 3.3.3 键盘电路设 计······································· ··················9 3.3.4 数码管显示电路设 计······································· ···········10 3.4 硬件原理 图······································· ·····················11 第 4 章 计算器软件系统设 计······································· ·12 4.1 系统模块 图···································· ···············12 4.2 系统流程 图·································· ·················12 4.3 计算器主程序设 计······································· 目录 V ·············12 4.3.1 计算器主程序设 计·································· ·········12 4.3.2 存储单元分 配·································· ··············13 4.4 计算器子程序设 计·································· ···········14 4.4.1 输入程序设 计··································· ···············14 4.4.2 运算程序设 计··································· ··············15 4.4.3 显示程序设 计·································· ··············16 第 5 章 结论与展 望······································· ················18 5.1 结 论·································· ·······················18 5.2 不足与展 望·································· ·················18 参考文 献············································· ····························19 附录 程序源代 VI 码············································· ······················20 基于 51 单片机的简易计算器 1 第第 1 1 章章 绪论绪论 1.1 课题简介课题简介 单片机由于其微小的体积和极低的成本,广泛的应用于家用电器、工业控制 等领域中。在工业生产中。单片机微型计算机是微型计算机的一个重要分支,也 是颇具生命力的机种。单片机微型计算机简称单片机,特别适用于控制领域,故 又称为微控制器。 本系统就是充分利用了 8051 芯片的 I/O 引脚。系统统采用 MSC-51 系列单片 机 Intel8051 为中心器件来设计计算器控制器,实现了能根据实际输入值显示并 存储,计算程序则是参照教材。至于位数和功能,如果有需要可以设计扩充原系 统来实现 。 1.2 设计目的设计目的 通过本次工程实践,运用智能化测量控制仪表原理与设计 、 MCS-51 系 列单片微型计算机及其应用所学知识及查阅相关资料,完成简易计算器的设计, 达到理论知识与实践更好结合、提高综合运用所学知识和设计能力的目的。 通过本次设计训练,可以使我们在基本思路和基本方法上对基于 MCS-51 单 片机的嵌入式系统设计有一个比较感性的认识,并具备一定程度的设计能力。 1.3 设计设计任务任务 在本次工程实践中,主要完成如下方面的设计任务: (1) 简要综述单片机技术发展的国内外现状及数码管动态显示和矩阵键盘基 本原理; (2) 掌握 MCS-51 系列某种产品(例如 8051)的最小电路及外围扩展电路的 设计方法; (3) 了解单片机数据转换功能及工作过程; (4) 完成主要功能模块的硬件电路设计及必要的参数确定; (5)用 protues 软件完成原理电路的绘制; (6) 完成系统设计说明书。 1.4 章节安排说明章节安排说明 整个设计总共分为四个章节,第一章是前言部分,主要介绍了设计基于单片 机简易计算器的意义、目的及主要内容;第二章简要介绍了单片机发展的国内外 现状及键盘扫描,数据转换,和动态显示原理进行了简要的说明。第三章是器件 简介,这一部分主要介绍了系统的所用主要器件的选择。第四章是系统详细设计 河南机电高等专科学校毕业论文 2 阶段,分为硬件设计和程序设计。按照程序设计的各部分实现的功能不同,将整 个软件系统分成了三个块,并对每一个功能块所采用的元器件进行了详细介绍。 此外还编写了主要功能模块的基本程序,详尽阐述了各模块的工作过程。还有总 流程图,源代码,硬器件铺线图。 基于 51 单片机的简易计算器 3 第第 2 2 章章 计算器系统简介计算器系统简介 2.1 单片机发展现状单片机发展现状 单片机的发展趋势:低功耗 CMOS 化;微型单片化;主流与多品种共存;单 片机从 8 位、16 位到 32 位,数不胜数,应有尽有,有与主流 C51 系列兼容的, 也有不兼容的,但它们各具特色,互成互补,为单片机的应用提供广阔的天地。 纵观单片机的发展过程,可以预示单片机的发展趋势,大致有: ( (1) ) 低功耗低功耗 CMOSCMOS 化化 MCS-51 系列的 8051 推出时的功耗达 630mW,而现在的单片机普遍都在 100mW 左右,随着对单片机功耗要求越来越低,现在的各个单片机制造商基本都采用了 CMOS(互补金属氧化物半导体工艺)。象 80C51 就采用了 HMOS(即高密度金属氧化 物半导体工艺)和 CHMOS(互补高密度金属氧化物半导体工艺)。CMOS 虽然功耗较 低,但由于其物理特征决定其工作速度不够高,而 CHMOS 则具备了高速和低功耗 的特点,这些特征,更适合于在要求低功耗象电池供电的应用场合。所以这种工 艺将是今后一段时期单片机发展的主要途径。 ( (2)微型单片化)微型单片化 现在常规的单片机普遍都是将中央处理器(CPU)、随机存取数据存储(RAM)、 只读程序存储器(ROM)、并行和串行通信接口,中断系统、定时电路、时钟电路 集成在一块单一的芯片上,增强型的单片机集成了如 A/D 转换器、PMW(脉宽调制 电路)、WDT(看门狗)、有些单片机将 LCD(液晶)驱动电路都集成在单一的芯片上, 这样单片机包含的单元电路就更多,功能就越强大。甚至单片机厂商还可以根据 用户的要求量身定做,制造出具有自己特色的单片机芯片。 此外,现在的产品普遍要求体积小、重量轻,这就要求单片机除了功能强和 功耗低外,还要求其体积要小。现在的许多单片机都具有多种封装形式,其中 SMD(表面封装)越来越受欢迎,使得由单片机构成的系统正朝微型化方向发展。 ( (3) ) 主流与多品种共存主流与多品种共存 现在虽然单片机的品种繁多,各具特色,但仍以 80C51 为核心的单片机占主 流,兼容其结构和指令系统的有 PHILIPS 公司的产品,ATMEL 公司的产品和中国 台湾的 Winbond 系列单片机。所以 C8051 为核心的单片机占据了半壁江山。而 Microchip 公司的 PIC 精简指令集(RISC)也有着强劲的发展势头,中国台湾的 HOLTEK 公司近年的单片机产量与日俱增,与其低价质优的优势,占据一定的市场 分额。此外还有 MOTOROLA 公司的产品,日本几大公司的专用单片机。在一定的 河南机电高等专科学校毕业论文 4 时 期内,这种情形将得以延续,将不存在某个单片机一统天下的垄断局面,走 的是依存互补,相辅相成、共同发展的道路。 2.2 计算器系统现状计算器系统现状 计算器一般由运算器、控制器、存储器、键盘、显示器、电源和一些可选 外围设备及电子配件通过人工或机器设备组成。低档计算器的运算器、控制器 由数字逻辑电路实现简单的串行运算,其随机存储器只有一、二个单元,供累 加存储用。高档计算器由微处理器和只读存储器实现各种复杂的运算程序,有 较多的随机存储单元以存放输入程序和数据。键盘是计算器的输入部件,一般 采用接触式或传感式。为减小计算器的尺寸,一键常常有多种功能。显示器是 计算器的输出部件,有发光二极管显示器或液晶显示器等。除显示计算结果外 ,还常有溢出指示、错误指示等。计算器电源采用交流转换器或电池,电池可 用交流转换器或太阳能转换器再充电。为节省电能,计算器都采用CMOS 工 艺制作的大规模集成电路(见互补金属 -氧化物-半导体集成电路),并在内 部装有定时不操作自动断电电路。计算器可选用的外围设备有微型打印机、盒 式磁带机和磁卡机等。 2.3 简易计算器系统简介简易计算器系统简介 本计算器是以 MCS-51 系列 8051 单片机为核心构成的简易计算器系统。该系 统通过单片机控制,实现对 4*4 键盘扫描进行实时的按键检测,并把检测数据存 储下来。整个计算器系统的工作过程为:首先存储单元初始化,显示初始值和键 盘扫描,判断按键位置,查表得出按键值,单片机则对数据进行储存与相应处理 转换,之后送入数码管动态显示。整个系统可分为三个主要功能模块:功能模块 一,实时键盘扫描;功能模块二,数据转换为了数码管显示;功能模块三,数码 管动态显示。 基于 51 单片机的简易计算器 5 第第 3 三章三章 计算机主要硬件简介计算机主要硬件简介 3.1 计算器硬件计算器硬件需求需求 89C51 单片机一片,按钮 17 个, 1K 电阻 17 个,22pF 电容两个,22uF 一个, 微型振荡器一个,3 个 74HC595,4 位共阳极的七段数码管 3 个,组成 12 位显示 屏,4 个 9012 三极管控制 3 个数码管模块的第 1、2、3、4 位的显示,另外有连 线和电阻若干,220V5V 电源适配器一个。89C51 单片机的 P1 口和 P3 口作键盘 口,16 个端口分别接 16 个按钮,顺序是数字 0-9,小数点,等号, “+-x/”四个 运算符号, 1 个复位键接在单片机复位端,按下时给单片机复位信号,中断全部 运算清楚全部内存和寄存器,回到单片机启动初始状态。12 位数码管用于显示当 前数值的 10 亿位到个位,运算中的最大值不能超过 2 的 32 次方,这是因为程序 中的运算中间值采用 long 类型保存的缘故, 3.2 MCS-51 系列单片机简介系列单片机简介 8051 是 MCS-51 系列单片机的典型产品,以这一代表性的机型进行系统的讲 解。 8051 单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定 时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线 和控制总线等三大总线,现在我们分别加以说明: 1.中央处理器中央处理器 中央处理器(CPU)是整个单片机的核心部件,是 8 位数据宽度的处理器,能 处理 8 位二进制数据或代码,CPU 负责控制、指挥和调度整个单元系统协调的工 作,完成运算和控制输入输出功能等操作。 2. 数据存储器数据存储器( (RAM) ) 8051 内部有 128 个 8 位用户数据存储单元和 128 个专用寄存器单元,它们是 统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用 于存放用户数据,所以,用户能使用的 RAM 只有 128 个,可存放读写的数据, 运算的中间结果或用户定义的字型表。 3.程序存储器程序存储器( (ROM) 8051 共有 4096 个 8 位掩膜 ROM,用于存放用户程序,原始数据或表格。 4.定时定时/ /计数器计数器( (ROM) ): 8051 有两个 16 位的可编程定时/计数器,以实现定时或计数产生中断用于控 制程序转向。 河南机电高等专科学校毕业论文 6 8051 内部结构图 3-1 5. 并行输入输出并行输入输出(I/O)(I/O)口口 8051 共有 4 组 8 位 I/O 口(P0、 P1、P2 或 P3),用于对外部数据的传输。 6. 全双工串行口全双工串行口 8051 内置一个全双工串行通信口,用于与其它设备间的串行数据传送,该行 口既可以用作异步通信收发器,也可以当同步移位器使用。 7. 中断系统中断系统 8051 具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个 串行中断,可满足不同的控制要求,并具有 2 级的优先级别选择。 8. 时钟电路时钟电路 8051 内置最高频率达 12MHz 的时钟电路,用于产生整个单片机运行的脉冲 时序,但 8051 单片机需外置振荡电容。 单片机的结构有两种类型,一种是程序存储器和数据存储器分开的形式,即 哈佛(Harvard)结构,另一种是采用通用计算机广泛使用的程序存储器与数据存储 器合二为一的结构,即普林斯顿(Princeton)结构(如下页图 3-2) 。INTEL 的 MCS-51 系列单片机采用的是哈佛结构的形式,而后续产品 16 位的 MCS-96 系列 单片机则采用普林斯顿结构。 MCS-51 的引脚说明(如下页图 3-3) MCS-51 系列单片机中的 8031、8051 及 8751 均采用 40Pin 封装的双列直接 DIP 结构,右图是它们的引脚配置,40 个引脚中,正电源和地线两根,外置石英 振荡器的时钟线两根,4 组 8 位共 32 个 I/O 口,中断口线与 P3 口线复用。现在 我们对这些引脚的功能加以说明。 Pin9:RESET/Vpd复位信号复用脚,当 8051 通电,时钟电路开始工作,在 RESET 引脚上出现 24 个时钟周期以上的高电平,系统即初始复位。初始化后,程 序计数器 PC 指向 0000H,P0-P3 输出口全部为高电平,堆栈指针写入 07H,其它 基于 51 单片机的简易计算器 7 专用寄 下图是 MCS-51 系列单片机的内部结构示意图 3-2。 MCS-51 结构图 3-2 下图是 8951 单片机引脚示意图 3-3 双列直插式封装引脚图 3-3 存器被清“0” 。RESET 由高电平下降为低电平后,系统即从 0000H 地址开始 执行程序。然而,初始复位不改变 RAM(包括工作寄存器 R0-R7)的状态,8051 的初始态。 8051 的复位方式可以是自动复位,也可以是手动复位。此外,RESET/Vpd还 是一复用脚,Vcc掉电其间,此脚可接上备用电源,以保证单片机内部 RAM 的数据 不丢失。见下图 3-4 为两种复位方式和两种时钟方式: 河南机电高等专科学校毕业论文 8 Pin30:ALE/当访问外部程序器时,ALE(地址锁存)的输出用于锁存地址的 低位字节。而访问内部程序存储器时,ALE 端将有一个 1/6 时钟频率的正脉冲信 号,这个信号可以用于识别单片机是否工作,也可以当作一个时钟向外输出。更 有一个特点,当访问外部程序存储器,ALE 会跳过一个脉冲。 如果单片机是 EPROM,在编程其间,将用于输入编程脉冲。 图 3-4 ·Pin29:当访问外部程序存储器时,此脚输出负脉冲选通信号,PC 的 16 位地址数据将出现在 P0 和 P2 口上,外部程序存储器则把指令数据放到 P0 口上, 由 CPU 读入并执行。 ·Pin31:EA/Vpp程序存储器的内外部选通线,8051 和 8751 单片机,内置有 4kB 的程序存储器,当 EA 为高电平并且程序地址小于 4kB 时,读取内部程序存储 器指令数据,而超过 4kB 地址则读取外部指令数据。如 EA 为低电平,则不管地 址大小,一律读取外部程序存储器指令。显然,对内部无程序存储器的 8031,EA 端必须接地。在编程时,EA/Vpp脚还需加上 21V 的编程电压。 3.3 外围电路设计外围电路设计 本设计外围电路大致可分为四部分: 1振荡电路。 2复位电路。 3键盘电路。 4显示电路。 3.3.1 振荡电路设计振荡电路设计 振荡电路如图 3-5 所示. 图中 X1、X2 分别接单片机的 19 和 18 号脚。时钟有内部电路产生,定时器 件为石英晶体和电容组成的并联谐振回路,电容 C1、C2 的取之为 30p,Y1 的取值 为 12MHz。 基于 51 单片机的简易计算器 9 振荡电路图 3-5 3.3.2 复位电路设计复位电路设计 复位电路如图 3-6 所示. 复位电路图 3-6 图中的 RST 接单片机的 9 号脚,当按键 ac 按下时单片机复位。其中电阻 R2 为 1K,电容 C3 为电解性电容取值为 16V/22UF。Vcc 接 5V 电压。 3.3.3 键盘电路设计键盘电路设计 键盘电路如图 3-7 所示. 矩阵键盘工作原理是。在矩阵式键盘中,每条水平线和垂直线在交叉处不直 接连通,而是通过一个按键加以连接。这样,一个端口(如 P1 口)就可以构成 4*4=16 个按键。确定矩阵式键盘上何键被按下,用“行扫描法” 。 行扫描法又称 为逐行(或列)扫描查询法,是一种最常用的按键识别方法.判断键盘中有无键按 下: 将全部行线置低电平,然后检测列线的状态。只要有一列的电平为低,则 表示键盘中有键被按下,而且闭合的键位于低电平线与 4 根行线相交*的 4 个按 河南机电高等专科学校毕业论文 10 键之中。若 键盘电路图 3-7 所有列线均为高电平,则键盘中无键按下。判断闭合键所在的位置: 在确认有 键按下后,即可进入确定具体闭合键的过程。其方法是:依次将行线置为低电平, 即在置某根行线为低电平时,其它线为高电平。在确定某根行线位置为低电平后, 再逐行检测各列线的电平状态。若某列为低,则该列线与置为低电平的行线交* 处的按键就是闭合的按键。把每个键都分成水平和垂直的两端接入,比如说扫描 码是从垂直的入,那就代表那一行所接收到的扫描码是同一个位,而读入扫描码 的则是水平,扫描的动作是先输入扫描码,再去读取输入的值,经过比对之后就 可知道是哪个键被按下。 3.3.4 数码管显示电路设计数码管显示电路设计 如图 3-8 三个四位数码管所示. 三个四位数码管图 3-8 数码显示驱动电路 该设计采用 74HC595 芯片作为驱动,以保证数码管显示 的亮度。在本任务中用 4 位数码管显示当前数值的千,百,十,个,由于数码管 个数多,如采用静态显示方式,则占用单片机的 I/O 口线太多,如果用定时器/ 计数器的串行移位寄存器工作方式及外接串入并出移位寄存器 74LS164 的方式, 则电路复杂。所以,在数码管个数较多时,常采用动态显示方式。 如图所示为 基于 51 单片机的简易计算器 11 单片机应用系统中的一种数码管动态显示电路图,4 位数码管的相同段并联在一 起,由一个 8 位 I/O(P1 口)输出字形码控制显示某一字形,每个数码管的公共 端由另外一个 I/O 口(P0 口)输出的字位码控制,即数码管显示的字形是由单片 机 I/O 口输出的字形码确定,而哪个数码管点亮是由单片机 I/O 口输出的字位码 确定的 8 个数码管分时轮流循环点亮,在同一时刻只有 1 个数码管点亮,但由于 数码管具有余辉特性及人眼具有视觉暂留特性,所以适当地选取循环扫描频率, 看上去所有数码管是同时点亮的,察觉不出闪烁现象。动态显示方式所接数码管 不能太多,否则会因每个数码管所分配的实际导通时间太少,使得数码管的亮度 不足。在本任务中,为了简便,字形码和字位元码都没由加驱动电路,在实际应 用中应加驱动电路。数码管有共阴极和共阳极两种,对于共阳数码管,字形驱动 输出 0 有效,字位驱动输出 1 有效;而对于共阴数码管则相反,即:字形驱动输 出 1 有效,字位驱动输出 0 有效。 3.4 硬件原理图硬件原理图 硬件原理图如图 3-9 所示. 单片机的 p0.0 口接 74HC595 芯片的串行输入端 DS 端,74HC595 的并行输 出端接数码管的公共端。P2.0-p2.3 接三极管控制数码管段选。P1 接矩阵键盘。 硬件原理图 3-9 河南机电高等专科学校毕业论文 12 第第 4 4 章章 计算器软件系统设计计算器软件系统设计 4.1 系统模块图系统模块图 本系统有四个模块构成:显示模块、输入模块、电源模块、运算模块。如下 图 4-1 所示. 系统模块图 4-1 4.2 系统流程图系统流程图 本任务由 P1 口输出字形码,P0 口输出字位码。先将存放于 30H 单元的数值 个位七段码由 P1 口输出,同时 P0 口输出使数值个位显示数码管点亮的字位码。 由于采用的是共阳数码管,所以只有该位数码管对应的 P0.0 为 1,其他位 P0.1- P0.3 位 0,点亮延时 10MS。如下页系统流程图 4-2 所示。 4.3 计算器主程序设计计算器主程序设计 4.3.1 计算器主程序设计计算器主程序设计 主程序调用按键子程序,检查哪个键按下,用 switch 结构分数步来组成一个 运算式,比如头一个按下数字,存入 f1 变量,如果按负号就存入 fh1,否则 fh1 是 正一,下面如果继续按数字,就按照 F1=fh1xf1x10+数字,更新 f1 变量,然后如果 按加减乘除符号,就存入 yunsuan 变量,可以继续按运算符号,就存入 yunsuan1 变量,之所以这样是因为按减号既可能确实是在按减号也可能是想按后面数字的 负号,直到按下数字,才肯定是想输入第二个数字,其符号存入 fh2,这个数字存 入 f2,继续按数字,就按照 f2=f2x10+数字来更新 f2。等到按等号或者运算符号时, 就按 y=fh1*f1(+-x/)fh2*f2 来计算最后的值。 无论输入什么数字都要存进一个缓冲区,主程序最后有一些专门代码把这个 缓冲区的内容翻译成将要输往 74HC595 的数据放在显示缓冲区中,最后的运算值 也有一个子程序翻译成将要输往 74HC595 的数据放在显示缓冲区中。 在程序开始时,初始化程序设定了 T1 中断开始执行,每 0.5 毫秒中断程序执 基于 51 单片机的简易计算器 13 行一次,中断程序的内容就是把显示缓冲区的内容送到第一个 74HC595 的 SER 端子,同时发送脉冲到每一个 74HC595 的 SCK 端子,用上面提到的串入并出的 方法 把内容显示出来。 系统流程图 4-2 4.3.2 存储单元分配存储单元分配 数码管采用动态显示方式,P2 口的 0,1,2.3 端口接 4 个三级管按从高到低的顺 河南机电高等专科学校毕业论文 14 序分别让数码管单元的 4 位分别导通,比如第一次三个数码管模块的第 4 位导通, 第二次关第 4 位让第 3 位导通,第三次关第 3 位,让第 2 位导通,最后一次关第 2 位让第 1 位导通,然后循环往复,扫描周期 1 毫秒。 那么每次就有三个字亮,比如三个数码管模块的第四位亮,这三个数码管各 有内容显示,怎么决定这个显示值呢,是这样:每个数码管的内容由一个字节决 定,三个数码管由三个字节决定,数码管单元是接在 74HC595 移位寄存器上的, 三个数码管单元接三个 74HC595,第一个 74HC595 的 SER 端子接 P0 第一个端口, 然后第一个 74HC595 的 H端子接第 2 个 74HC595 的 SER 端子,第 2 个 74HC595 的 H端子接第 3 个 74HC595 的 SER 端子,每个 74HC595 的脉冲端口 SCK 都接在 P0 的第 2 个端口,这个端口不停的发出移位脉冲,第一批 8 个脉冲 会把第一个 74HC595 的 SER 的数据移动到第一个 74HC595 的缓冲区,第 2 批 8 个脉冲把第二批新数据移动到第一个 74HC595 的缓冲区,同时把第一个 74HC595 的缓冲区数据移动到第二个 74HC595 的缓冲区,第三批 8 个脉冲把 SER 新数据移动到第一个 74HC595 的缓冲区,同时把第一个 74HC595 缓冲区的 数据移动到第二个 74HC595 的缓冲区,而第二个 74HC595 缓冲区的数据被移动 到了第三个 74HC595 缓冲区。这样不停循环,需要显示的数据由单片机送往第一 个 74HC595 的 SER 端子,每 24 个脉冲后这个要显示的数据出现在 74HC595 的 缓冲区,然后 24 个数据从三个 74HC595 同时输出到数码管,这样串行输入并行 输出来完成数字显示。 4.4 计算器子程序设计计算器子程序设计 4.4.1 输入程序设计输入程序设计 该模块利用 17 的小按键,提供 0-9, +、-、*、/、 =、小数点、清零键。再 利用数码管,对于即时按下的键和结果进行显示。向列扫描码逐列输出低电平, 然后从行码地址读回。如果有键按下,则相应的行值应为低,如果无键按下,由 于上拉电阻的作用,行码为高。这样可以通过输出的列码和读取的行码判断按下 的是什么键,在判断有键按下后,要有一定的延时,防止键盘抖动矩阵按键扫描 程序是一种节省 IO 口的方法,按键数目越多节省 IO 口就越可观,思路:先判断 某一列(行)是否有按键按下,再判断该行(列)是那一只键按下。但是,在程 序的写法上,采用了最简单的方法,使得程序效率最高。本程序中,如果检测到 某键按下了,就不再检测其它的按键,这完全能满足绝大多数需要,又能节省大 量的 CPU 时间。 本键盘扫描程序的优点在于:不用专门的按键延时程序,提高了 CPU 效率, 基于 51 单片机的简易计算器 15 也不用中断来扫描键盘,节省了硬件资源。另外,本键盘扫描程序,每次扫描占 用 CPU 时最短,不论有键按下或者无键按下都可以在很短的时间完成一次扫描。 本键盘扫描子程序名叫 key,每次要扫描时用 lcall key 调用即可。 流程图如图 4-3 所示. 键盘识别程序流程图 4-3 4.4.2 运算程序设计运算程序设计 AT89c 单片机是一块芯片中集成了 CPU、RAM、ROM、定时器、计数器、 和多功能 I/O 等一台计算器所需要的基本功能部分。如果按功能划分,它由如下 功能部分组成,即微处理器(CPU) 、数据处理器(RAM) 、程序处理器 (ROM/CPROM) 、并行 I/O 口、串行口、定时器、计数器、中断系统及特殊功能 寄存器(SFR) 。单片机是靠程序运行的,并且可以修改。通过不同的程序实现不 同的功能,尤其是特殊一些功能,通过使用单片机编写的程序可以凸显高智能、 河南机电高等专科学校毕业论文 16 高效率以及高可靠性!因此我们采用单片机作为计算器的主要功能部件,可以很 快实现运算功能。 计算器输入数字和其他功能按键要用到很多按键,如果采用独立按键的方式, 在这种情况下,编程会很简单,但是会占用到很多的 I/O 资源,因此在很多情况 下都不采用这种方式(如图 4-4) 。但因为实体资源有限不得已而为之,但不会影 响其功能。 运算程序图 4-4 4.4.3 显示程序设计显示程序设计 利用数码管动态显示的方法,设置显示循环次数,让 3 个四位数码管从左到 右依次显示,之间要调用延时子程序,但延时时间小于人的视觉暂留。显示程序 流程图如下页图 4-5 如示 . 1. 数码管显示数据转换子程序数码管显示数据转换子程序 由于数值单元存放的是二进制数,而用户熟悉的是十进制数,所以应将数值 单元中的二进制转换为十进制数,即 BCD 码。要通过数码管显示出当前数值, 还 必须将 BCD 码进一步转换为七段码,转换的最终结果数据存放于显示缓冲区 30H- -33H 单元中,其中 30H 单元存放数值的个位七段码,31H 单元存放数值的十位七 基于 51 单片机的简易计算器 17 段码,32H 单元存放数值的百位七段码,33H 单元存放数值的千位七段码。 2. 数码管动态显示子程序数码管动态显示子程序 本任务由 P1 口输出字形码,P0 口输出字位码。先将存放

    注意事项

    本文(基于51单片机的简易计算器设计毕业论文(设计)word格式可编辑.doc)为本站会员(小小飞)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开