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

发布者:幸福满溢最新更新时间:2014-09-18 来源: dzsc关键字:AT89C51  单片机  十进制  计算器系统 手机看文章 扫描二维码
随时随地手机看文章

      引言

      本系统采用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 硬件总体设计图
                                      图1 硬件总体设计图

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

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

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

      2.3 键盘布局模块

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

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

      3 系统软件设计

      3.1 系统软件总体设计

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

图4 系统的软件流程图
                                  图4 系统的软件流程图

      3.2 显示程序模块

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

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

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

      4 结束语

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

关键字:AT89C51  单片机  十进制  计算器系统 引用地址:基于AT89C51单片机的十进制计算器系统设计

上一篇:基于单片机的大功率太阳能LED路灯设计与仿真
下一篇:RFID 射频读写器的设计方案

推荐阅读最新更新时间:2024-03-16 13:41

AVR单片机的掉电保护
简介:在掉电时怎样保护数据到EEPROM中 我想在掉电时保存数据(3个字节)到EEPROM中,用BOD掉电检测,不知怎样使用。望高手指点: 1、在BOOT区设置好BODEN,BODLEVEL,后软件还要怎样设置? 2、掉电中断是否是产生复位?我的写EEPROM程序应该放在什么地方?他和其他复位怎样区别? 3、设置了BOOT区后,硬件上是否要加电源到一个管脚比较后才产生中断?? 掉电检测BOD的误解 AVR自带的BOD(Brown-outDetection)电路,作用是在电压过低(低于设定值)时产生复位信号,防止CPU意外动作. 对EEPROM的保护作用是当电压过低时保持RESET信号为低,防止CPU意外动作,错误修改
[单片机]
AVR单片机在柴油机转速测量中的应用
   摘要:利用ATMEL新一代AVR单片机(AT90S2313)实现对柴油机转速的测量,在C语言程序设计中引入了消息的概念,最后给出了AT90S2313与AT89C2051在转速测量中使用效果的比较。 关键词:单片机 转速测量 柴油机 消息    柴油机的转速是一个较为重要的运行参数,也有很多种用于测量转速的仪表,如:机械软轴式转速表、频率-电压转换式转速表、数字式转速表等,它们中间有的成本很高而且精度较差、有的工艺复杂而且可靠性不高。本文介绍了一种利用单片机技术制成的智能转速表,不仅精度高、工艺简单、线路简洁,而且可靠性高、功能强。其不仅可以测量转速,而且可以统计机器运行的累计时间,当柴油
[应用]
单片机最小系统原理图及详解
单片机最小系统 主要由电源、复位、振荡电路以及扩展部分等部分组成。最小系统原理图如图所示。 电源供电模块 对于一个完整的电子设计来讲,首要问题就是为整个系统提供电源供电模块,电源模块的稳定可靠是系统平稳运行的前提和基础。51单片机虽然使用时间最早、应用范围最广,但是在实际使用过程中,一个和典型的问题就是相比其他系列的单片机, 51单片机 更容易受到干扰而出现程序跑飞的现象,克服这种现象出现的一个重要手段就是为单片机系统配置一个稳定可靠的电源供电模块。 此最小系统中的电源供电模块的电源可以通过计算机的USB口供给,也可使用外部稳定的5V电源供电模块供给。电源电路中接入了电源指示LED,图中R11为LED的限流电阻。S1
[单片机]
<font color='red'>单片机</font>最小<font color='red'>系统</font>原理图及详解
Interrupt(单片机中断)
所有的中断(外部中断,定时器中断……)运行的结果都是一样的:流水灯逐个点亮,当中断响应的时候,流水灯全部熄灭,当中断结束的时候,流水灯继续刚才的流动。 proteus原理图: 1.外部中断: 代码: #include reg52.h #include stdio.h #define uint unsigned int #define uchar unsigned char uchar temp; //声明一个全局变量 void delay(uint delay_time); void main() { EA=1; //开总中断 EX0=1; //开外部中断0 IT0=0; //设置有效方式
[单片机]
Interrupt(<font color='red'>单片机</font>中断)
基于51单片机的CAN通讯协议C语言程序
//-----------------------函数声明,变量定义-------------------------------------------------------- #include reg52.h sbit int0 = P3^2; //-----------------------定义寻址的基址-------------------------------------------------------- #define base_Adr 0x00 //-----------------------定义总线定时寄存器的值-----------------------------------
[单片机]
MCS-51单片机定时器和计数器的4种工作方式解析
MCS-51单片机含有2个定时器/计数器,具有4种工作方式。具有两种工作模式(计数器模式和定时器模式) MCS-51单片机含有1个全双工串行口,具有4种工作方式。 TMOD-》定时器/计数器方式控制寄存器 TCON-》定时器/计数器控制寄存器 SMOD-》串行口波特率系数选择位 SCON-》串行口控制寄存器 SBUF -》串行口数据缓冲器 TH0 -》定时器/计数器0(高字节) TL0 -》定时器/计数器0(低字节) TH1 -》定时器/计数器1(高字节) TL1 -》定时器/计数器1(低字节) MCS-51单片机定时器和计数器的4种工作方式解析 一、定时器/计数器 定时器/计数器T0由特殊功能寄存器TH0、TL0
[单片机]
MCS-51<font color='red'>单片机</font>定时器和计数器的4种工作方式解析
利用单片机定时器实现信号采样和PWM控制
PWM控制方式广泛应用于各种控制系统中,但对脉冲宽度的调节一般采用硬件来实现。如使用PWM控制器或在系统中增加PWM电路 等,则成本高、响应速度慢,而且PWM控制器与系统之间存在兼容问题。另外,控制系统中的信号采样通常是由A/D转换器来完成,因此检测精度要求较高时,调理电路复杂,而且因A/D的位数高,从而使设计的系统成本居高不下。   本文以应用于温度控制系统为例,介绍利用Motorola公司生产的新型单片机 MSP430F413 内的定时器Time_A设计可以用时间量进行温度采样以及实现PWM调节的方法。为了可在使用少量外围电路的情况下实现控制系统的高精度测量和控制,一方面用时间量采样,在省去1片A/D的情况下得到12位的高精度
[工业控制]
利用<font color='red'>单片机</font>定时器实现信号采样和PWM控制
平凡单片机教学 第七讲 寻址方式与指令系统
通过前面的学习,我们已经了解了单片机内部的结构,并且也已经知道,要控制单片机,让它为我们干学,要用指令,我们已学了几条指令,但很零散,从现在开始,我们将要系统地学习8051的指令部份。 一、概述 1、指令的格式 我们已知,要让计算机做事,就得给计算机以指令,并且我们已知,计算机很 笨 ,只能懂得数字,如前面我们写进机器的75H,90H,00H等等,所以指令的第一种格式就是机器码格式,也说是数字的形式。但这种形式实在是为难我们人了,太难记了,于是有另一种格式,助记符格式,如MOV P1,#0FFH,这样就好记了。 这两种格式之间的关系呢,我们不难理解,本质上它们完全等价,只是形式不一样而已。 2、汇编 我们写指令使
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(16)
    ARM有很多东西要学习,那么中断,就肯定是需要学习的东西。自从CPU引入中断以来,才真正地进入多任务系统工作,并且大大提高了工作效率。采 ...
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved