简易  计算器 (带小数点)
一.主要实现功能
1.能完成五位数以内的加减乘除运算(其中整数部分最多为3位,小数部分最多为2位,多余的输入无效)。
2.运算结果数码管显示。
3.在进行减法运算时,如果差是负数,数码管能够显示负数。
4.能及时显示输入的值和运算的结果
二.操作方法(类似普通的计算器)
本计算器的操作方法与普通的计算器的操作方法类似,操作板上标有0--9数字的作为数字0--9的键入键,Esc键的功能是返回上一状态(当有无操作时可以使用该功能键返回),Enter键是个双重键,当处于数字的键入状态时作为小数的键入键,数字输入完成后,它的功能变为等号 的键入键。上挡键是加法的输入键,下挡键是减法的输入键,左挡键是乘法的输入键,右挡键
是除法的输入键。操作的时序完全与普通计算器相同,首先键入第一个数字,然后键入运算键,其次是第二个数的键入,最后等号键。得出结果。数字的输入过程,数码管能够实时的显示出来。
三.程序流程图
1.思想
计算器的操作步骤来看,可以把计算器的输入过程分解由四个状态来实现,如下图所示
                                                                                                                                                                             
与整数计算器不同的是,带小数的计算器要完成小数点的键入,须记录小数点后面的位数,所以我们又可以把数字的输入分为两个状态,一个是整数部分的键入,另一个是小数部分的键入。如下所示:                                                                                                                                                       
程序流程图
由程序流程图可以画出程序流程图
                           
   
                0        1          2          3字符串截取小数点
以上只是从整体把握计算器程序,也就是程序是通过几个模块实现的。各个模块之间互不影响的。各个模块实现的算法可以不同,加减乘除和等号的输入比较简单在这就不描述了,下面对数字的输入和显示做简要的描述,如下图所示:
 
  0                1    0            1              2
四.算法
数字的输入与显示
1>.如何从键盘上读出键入的值并且如实的表示出来?例如按顺序输入12.12,则在数码管上显示12.12,我们可设一变量th,从键盘上所读出来的值key ,th=th*10+key,如果按顺序输入1 2 .1 2 ,则th的值为1212。这时我们需对th做一些处理,在输入小数时可设一变量cnt来记录小数部分的个数。如果cnt为2则th不作处理,cnt为1则shu=th*10,cnt为0则shu=th*100,第二位输入数也做同样的处理,这样就把数全部化为了整数,单片机就可以对它进行快速的处理和预算。第一位输入数和第二位数的显示,我们在利用分解原理得  bai=th/100  shi =th/10%10  ge=th%10.,在数码管的第三位上点亮dp也就是数码管上显示2位小数,小数点后面第二位相当于整数的个位。这样数码管上观察到的是12.12,其实shu的值是1212。但对于运算的结果的处理则与第一位输入数cnt和第二位输入数cnt都有关系,详见程序中的处理。
程序的结构
1> 条件语句  if ....if... 结构  在程序中要不停的检测从显示板上读出的值判断是键入的是哪个值 并且执行相应的操作
2>开关语句  ase 结构  使整个程序的框架,其它的处理都是在这个大框架上完成的。
简易计算器(带小数点)程序

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。