十进制加减法计算器单片机设计

十进制加减法计算器单片机设计

一、设计目的

通过课程设计使学生更进一步掌握单片机原理与应用课程的有关知识,提高用汇编语言编程的能力,并将所学的内容加以综合。通过查阅资料,了解所学知识的应用情况。

二、课程设计要求

设计十进制加减法计算器。要求能(不同时)显示3位输入和4位输出。

要求程序实现功能

(1)十进制加减法计算:输入范围为(1~999),该程序输入两个定点数,每个3位,输出4位;A为加,B为减,C为等于,输出为四位计算结果。数据输入采用规范化输入,即必须输入3个数才算完成一个运算数的输入,两个运算数之间输入运算符A或者B,输入完成按C显示计算结果。

(2)计算器复位功能:DEL均为清零重启,任何时候按下DEL中一个将重新开始。

三、硬件设计

现实生活中人们熟知的计算器,其功能主要如下:(1)键盘输入;(2)数值显示;(3)加、减运算(此次只要求加减);(4)对错误的控制及提示。

此次计算器设计的最终结果是使其工作流程为:开机不显示,等待键入数值,键入三个数字,通过LCD显示出来,当键入+、-运算符,计算器在内部执行数值转换和存储,并等待再次键入数值,当再键入三个数字将显示键入的数值,按等号就会在LCD上输出运算结果。同时考虑到操作中可能出现的错误时,计算器会进行自动控制。

根据设计要求,选用8098 单片机为主控机。通过扩展必要的外围接口电路,实现对计算器的设计。此次设计的系统模块图如下,

具体设计考虑如下:

1、单片机工作时电源引脚外接电源,工作电压为5V,同时本次设计通过内部振荡器和时钟发生器产生时钟信号。

2、8098单片机可寻址的存储器空间为64K空间,其内部仅带有只能用作寄存器的256个字节容量的RAM,所以在此设计过程中,需要外接存储器芯片,我们选用容量足够大的62128存储器芯片。

本次设计的接口电路采用8255可编程并行I/O芯片,8255A具有通常意义的接口所需要的基本功能,有着很强的适应性,此次设计中它起的作用是将显示器和键盘与单片机连接,通过向其控制寄存器送入控制字,以规定8255的工作方式和实现确定的功能,如本次设计的电路图,8255的A口、C口均工作于输出方式,而B口工作于输入方式。

存储器芯片和8255芯片各都需要通过一个锁存器74LS373芯片和单片机连接,锁存器的作用是锁存单片机P3口送出的低8位地址码。

5、由于要设计的是简单的计算器,可以进行加减运算,对数字的大小范围要求不高,故我们采用可以进行三位数字的运算,选用4片七段共阴极LED显示数据和结果。

6、键盘共设置16个键,为4×4分布,其中数字键从第四排左起0~9共十个,接着是加号键、减号键、等号键和三个清除键,所对应的键值分别是A(+)、B(—)、C(=)、和D、E、F(清除键)。

键盘控制程序需完成的任务有:监测是否有键按下,有键按下时,若无硬件去抖动电路时,应用软件延时方法消除按键抖动影响;当有多个键同时按下时,只处理一个按键,不管一次按键持续多长时间,仅执行一次按键功能程序。

本次设计读取键值采用按键扫描程序的方法,思路是对键盘上的某一行送低电平,其他行为高电平,然后读取列值。若列值中有一位是低,则表明该行与低电平对应列的键被按下;否则,扫描下一行。本程序中,如果检测到某键按下了,就不再检测其它的按键,这完全能满足绝大多数需要,又能节省大量的CPU时间。

本次的电路设计在附图上。

软件设计

汇编语言 本次设计是由硬件电路和软件编程相结合,虽然我们以前学过C语言,而且觉得这次设计用C语言会更加方便,灵活,但是汇编语言特别适合于实时控制系统这样的应用场合,作为学电气工程及其自动化专业的学生,我们学习单片机的主要目的是将单片机用于检测和控制领域,所以,选择用汇编语言进行本次设计将有助于提高我们的专业知识。

软件设计思路主要从以下几个方面考虑:

在主程序中先设置8255的工作方式,初始化对需要存数值和标志位的存储单元清零,并且位选不选中任何数码管,段选为#00H,即使4个数码管初始状态无显示。

进入键盘扫描程序,先对最低行送低电平,其他行为高电平,然后读取列值。若列值中有一位是低,则表明该行与低电平对应列的键被按下;否则,扫描上一行。当扫描到有键按下,可以通过行首键值和列编号值之和来读取此按键的键值,不管有没有按键,扫描一次返回主程序,进入键值处理程序中。

若没有按键,则进入键值处理程序中,相当于执行了一条空指令,同样进入显示程序中由于没有按键也相当于执行了一条空指令,所以在没有按键的情况下,主程序的循环相当于扫描程序的不停循环,一直等到有按键出现。

若在扫描程序中查到按键,则可以读出键值,在键值处理程序中,首先通过FL检查这一次的按键是第几次按键,已检查此次按键操作有没有存在错误。若有错误,则直接返回主程序

单片机加减法计算器_十进制加减法计算器单片机设计.doc相关推荐

  1. c51单片机矩阵键盘1602计算器_【Proteus】单片机配合矩阵键盘LCD1602制作简易计算器...

    前言 想出一个关于Protues仿真的系列,回想起在大学时做课程设计,大多数是用这个来做,这个系列就围绕一些常用的外设或者说课程设计题目来进行对以前知识的回顾,温故而知新,同时也希望能对新手读者的学习 ...

  2. 单片机蓝牙烧录_蓝牙模块与单片机如何连接?

    蓝牙模块与单片机如何连接? 首先我们来看看蓝牙模块 蓝牙模块HC-05: TX连接单片机P3.0口,RX连接单片机P3.1口. 在蓝牙模块连接到单片机上前,首先通过USB-TTL转接器,连接到电脑上后 ...

  3. hc05与单片机连接图_蓝牙模块与单片机如何连接?

    蓝牙模块与单片机如何连接? 首先我们来看看蓝牙模块 蓝牙模块HC-05: TX连接单片机P3.0口,RX连接单片机P3.1口. 在蓝牙模块连接到单片机上前,首先通过USB-TTL转接器,连接到电脑上后 ...

  4. 基于c语言的自动泊车系统软件设计,基于单片机的自动泊车系统实验平台的设计.doc...

    摘要:随着新一轮科技变革的来临,人类已经进入了汽车时代.城市拥堵问题已经成为一个共性问题,给人们的出行带来诸多不变,治理拥堵成为考验城市管理者能力的一个难点.特别是大城市的停车场管理更加有困难.这就迫 ...

  5. 河南理工大学c语言报告封面,河南理工大学图书信息管理系统设计_纯c语言课程设计.doc...

    河南理工大学图书信息管理系统设计_纯c语言课程设计 C语言课程设计报告 题 目:图书信息管理系统设计 河南理工大学计算机学院 目 录 第一章 题目与要求 1.1 问题提出1 1.2 本系统涉及的知识点 ...

  6. 定积分计算器_使用科学计算器计算概率分布

    [作者声明] 本文所有文字均为作者原创,所有图片均为作者本人亲自拍摄或制作. 版权所有,仅供阅读欣赏,禁止任何单位或个人以任何形式对本文的文字或图片进行包括但不限于复制.转载.引用.抄袭.截图.模仿. ...

  7. 怎样用计算机算出别人的出生日期,【怀孕出生日期计算器_怀孕出生日期计算器专题】- 天鹅到家...

    很多要想比较技术专业且精确地预测分析自身的排卵期的女性.要想怀孕或避开怀孕的女性,或是要想根据对排卵期的预测分析,根据排卵期時间的不一,对生理学病症做出一些预防的女性,能够运用女性排卵期计算器.女性排 ...

  8. java 孕周计算器_周期表孕期计算器

    原标题:周期表孕期计算器 怀孕(或称妊娠.有身),是指哺乳类雌性(包括人类)在体内有一个或多个胎儿或胚胎.人类的妊娠是哺乳动物中研究最详细的. 人类的妊娠从最后一次月经到分娩持续大约40个星期(从排卵 ...

  9. 涨跌停计算器_在线涨跌计算器

    在线涨跌计算器 众人颔首,都知道这句话是什么意思,也就是说,如果不出意外,盖特应该能够击碎光墙,或者至少在上面留下痕迹. 伊蒂丝觉得,这两年来她压抑了太多的情绪,是这些情绪促使她一往无前地来到威布伦斯 ...

最新文章

  1. HDU 2206 IP的计算(字符串处理)
  2. Android 对BaseAdapter做优化处理
  3. 数据特殊显示``````
  4. 【机器学习基础】用Python画出几种常见机器学习二分类损失函数
  5. kafka 运行一段时间报错Too many open files
  6. xampp mysql 查询很慢_如何开启mysql的慢查询机制
  7. python狗图像识别_TensorFlow卷积神经网络之使用训练好的模型识别猫狗图片
  8. 烂代码解决方案:Java设计模式的魅力
  9. python处理大数据越来越慢_请问使用JdbcTemplate读取大数据很慢如何优化?(十几万数据)...
  10. java query object_Object Query Language (OQL) query 基本使用
  11. 【转载】在回答WCF问题时,在我们的园子找到了一篇彪悍的文章
  12. DH参数例子-SCARA机器人
  13. 了解“黑马程序员”有感
  14. 复杂网络作业四:第三题——随机图、小世界网络和真实网络的度分布
  15. Ubuntu 下访问摄像头 及将摄像头数据重定向到http协议 远程访问摄像头
  16. 算法小程序:倒水问题
  17. 组合数算法的非递归实现
  18. Elastic认证特训营 难点解读04——集群问题排查实战指南
  19. 嵌入式应用层开发要学习什么
  20. acm专题三1006

热门文章

  1. 转载的一片关于Mapper.xml中sql的相关技术点,供以后自己慢慢学习之用
  2. Lesson 52 A pretty carpet 漂亮的地毯
  3. 地图分幅编号C 语言编程,地图分幅编号的计算
  4. 小波神经网络(时间序列预测)
  5. java web 打印 Cl0dup
  6. 开发项目中,360浏览器遇到的一个坑
  7. 骨传导耳机对耳朵好不好、不伤耳的骨传导耳机推荐
  8. 基于Html5 的canvas容器实现定制印章(圆形、椭圆、方形)
  9. 计算机二级办公软件高级应用操作题,谁有计算机二级办公软件高级应用技术word操作题目啊?...
  10. 用墨刀设计原型,易被忽略的8种玩法。