0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于AT89C51单片机的十进制计算器系统设计

电子设计 2018-08-28 23:45 次阅读

本设计是基于AT89C51 单片机进行的十进制计算器系统设计,可以完成计算器的键盘输入,进行加、减、乘、除4 位无符号数字的简单四则运算,并在LED 上相应的显示结果。硬件方面从功能考虑,首先选择内部存储资源丰富的AT89C51 单片机,输入采用4×4 矩阵键盘。显示采用4 位7 段共阳极LED 动态显示。软件方面从分析计算器功能、流程图设计,再到程序的编写进行系统设计。

引言

本系统采用AT89C51 单片机作为控制器,用来实现实现四位数的“+”,“-”,“*”,“/”运算,运算结果通过数码管显示,并具有有清零功能。AT89C51 具有如下特点:40 个引脚,4k BytesFlash 片内程序存储器,128 bytes 的随机存取数据存储器(RAM),32 个外部双向输入/ 输出(I/O)口,5 个中断优先级2层中断嵌套中断,2 个16 位可编程定时计数器,2 个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器

1 总体设计方案

1.1 系统组成与工作原理

本系统以51 单片机为主控核心,与矩阵键盘、晶振、LED 显示管模块一起组合而成。其工作过程为:首先存储单元初始化,显示初始值和键盘扫描,判断按键位置,得出按键值,单片机则对数据进行储存与相应的处理转换,之后送入数码管动态显示。将运算结果送入数码管动态显示。本设计只能进行结果不超过四位数的运算,其功能如下:

(1)数字键“0”到“9”用数码管显示。

(2)加法运算: 加数与被加数均不能超过9999,加法最终结果不能超过9999。

(3)减法运算: 减法运算正常逻辑为大的数值减去小的数值,本计算器亦如此,只能进行正常逻辑的运算,如为小的数值减去大的数值,则将得到的负数与535 相加,得到相应的结果,即如果想进行小数减大数的运算,则把得到的结果减去535 即得到负数的正确结果。

(4)乘法运算: 与上述方法一样,计算结果不能超出9999,如溢出则显示结果只有后三位。

(5)除法运算: 除数与被除数均不能超过9999,计算结果只显示整数部分。

(6)等于键: 只有按下等于键才能将运算结果显示出来,否则一直显示上一个数。

(7)清零功能:程序不稳定或出现错误时,运用清零键回到初始状态,也可用复位键清零。

2 系统硬件设计

2.1 系统硬件总体设计

本系统由键盘矩阵、LED 显示管、这几个部分组成,键盘输入键值,LED 显示管显示当前按键及结果。硬件总体设计图1 如下:


图1 硬件总体设计图

2.2 矩阵扫描显示当前按键模块

利用AT89S51 单片机的P0 端口的P0.0 - P0.7 连接到一个七段数码管的a - h 的笔段上,数码管的公共端接电源。矩阵扫描显示当前按键模块见图2。


图2 矩阵扫描显示当前按键模块

2.3 键盘布局模块

矩阵键盘的工作原理:计算器的键盘布局如图3 所示:一般有16 个键组成,在单片机中正好可以用一个P 口实现16 个按键功能,这种形式在单片机系统中也最常用。


图3 计算器的键盘布局模块

3 系统软件设计

3.1 系统软件总体设计

本系统的软件流程如图4 所示。


图4 系统的软件流程图

3.2 显示程序模块

显示程序将要显示数值的千位、百位、十位与个位分别计算出来,通过P0 段选口输出数值,通过位选口P3^3、P3^4、 P3^5、P3^6 实现动态显示。

LED 数码管,实现七段数码管的显示四位十进制数。通过段选来显示按键及计算结果的数值。由于本硬件设计选用的是共阳接法,所以对应的段码表如下3.3 键盘扫描模块。

本次键盘扫描程序采用的是行列翻转法扫描键盘,即先置行为0,读列值,存在变量1 中,然后把列置为0,读行值,存在变量2 中,把变量1 和变量2 相加即为按键对应的键值,下表为相应按键对应的键值。

4 结束语

本计算器是以51 系列单片机为核心构成计算器系统,该设计为能进行简易算术运算的计算器,在现有的硬件条件下只能进行结果不超过四位数的运算,能实现加减乘除的运算功能与数字清零功能,以及系统的复位功能。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
收藏 人收藏

    评论

    相关推荐

    基于51单片机的7人多数投票表决设计

    设计编号:P13 1.主要功能:           基于51单片机AT89C51/52(与AT89S51/52、AT89C51/52、S
    的头像 发表于 11-09 09:48 421次阅读
    基于<b class='flag-5'>51</b><b class='flag-5'>单片机</b>的7人多数投票表决<b class='flag-5'>器</b>设计

    基于FPGA的计算器设计

    本文通过FPGA实现8位十进制数的加、减、乘、除运算,通过矩阵键盘输入数据和运算符,矩阵键盘的布局图如下所示。该计算器可以进行连续运算,当按下等号后,可以直接按数字进行下次运算,或者按运算符,把上次运算结果作为本次运算的第一个操作数。
    的头像 发表于 10-24 14:28 358次阅读
    基于FPGA的<b class='flag-5'>计算器</b>设计

    十进制数据转十六进制字符_转ASCII码

    十进制数据转十六进制字符_转ASCII码
    发表于 09-18 10:17 0次下载

    十进制和4位二进制计数数据表

    电子发烧友网站提供《十进制和4位二进制计数数据表.pdf》资料免费下载
    发表于 05-31 09:32 0次下载
    <b class='flag-5'>十进制</b>和4位二<b class='flag-5'>进制</b>计数<b class='flag-5'>器</b>数据表

    双4位十进制和二进制计数数据表

    电子发烧友网站提供《双4位十进制和二进制计数数据表.pdf》资料免费下载
    发表于 05-13 11:12 0次下载
    双4位<b class='flag-5'>十进制</b>和二<b class='flag-5'>进制</b>计数<b class='flag-5'>器</b>数据表

    同步4位十进制和二进制计数数据表

    电子发烧友网站提供《同步4位十进制和二进制计数数据表.pdf》资料免费下载
    发表于 05-09 11:29 0次下载
    同步4位<b class='flag-5'>十进制</b>和二<b class='flag-5'>进制</b>计数<b class='flag-5'>器</b>数据表

    基于单片机AT89C51的数字电压表仿真实现,原理图,论文,源码

    概述 本设计是基于Atmel 51单片机开发平台和自动控制原理的基础上实现的一种数字电压表系统。 该系统采用AT89C51
    发表于 04-03 20:16

    基于51单片机的车辆倒车雷达报警系统,HC-SR04超声波测距,全套资料

    系统概述 本课题以AT89C51单片机为核心设计一种超声波倒车雷达系统,同时兼顾车内温度测量。 系统
    发表于 03-19 14:17

    基于单片机多功能洗衣控制

    需注意仿真中51单片机芯片是兼容的,AT89C51,AT89C52是51单片机的具体型号,内核是
    发表于 03-18 10:13 610次阅读
    基于<b class='flag-5'>单片机</b>多功能洗衣<b class='flag-5'>机</b>控制

    基于51单片机的简易计算器设计

    电子发烧友网站提供《基于51单片机的简易计算器设计.rar》资料免费下载
    发表于 01-12 10:50 9次下载

    基于51单片机计算器设计

    电子发烧友网站提供《基于51单片机计算器设计.rar》资料免费下载
    发表于 01-12 09:17 39次下载

    基于51单片机计算器设计

    电子发烧友网站提供《基于51单片机计算器设计.rar》资料免费下载
    发表于 01-03 11:33 21次下载

    基于51单片机的简易计算器设计

    基于51单片机的简易计算器设计(实物)
    发表于 01-02 10:02 9次下载

    你知道十进制转二进制如何进行转换吗?

    你知道十进制转二进制如何进行转换吗? 当我们提到数字系统时,最常见的是十进制系统和二进制
    的头像 发表于 12-20 17:05 1481次阅读

    基于51单片机的正弦信号发生的设计

    正弦信号是电子电路设计中非常重要的信号之一。在很多电子设备和系统中,需要正弦信号作为输入源。基于51单片机的正弦信号发生设计是一种较为简单且常见的方法。本文将详细介绍如何设计一个基于
    的头像 发表于 12-07 16:20 1704次阅读