51单片机 简易计算器

来源:百度知道 编辑:UC知道 时间:2024/06/08 15:21:03
51单片机做一个简易计算器,在八位数码管上显示,功能基本为能实现加减乘除,小数的加减乘除,可以显示负数,可以进行混合运算,使用C程序编写的,有注解。急求参考,整了好多天都没完成功能,请大虾帮忙解决,同时请看清要求哈!请调试成功,慎重呀!小弟刚接触51单片机,请包涵了。
最好能打包发到我邮件里dzgcxy2008@qq.com 要求至少要满足8位共阴数码管,实现加减乘除,小数的加减乘除,后面的显示负数和混合运算可以满足其中一个

发到你的邮箱了看一下

浮点是单片机的弱项,初学难度有点大。

用keil C51,加入
#include<math.h>
就行了。
但你要注意了!要进行浮点运算,你的程序存储器一定要大,因为一个乘除法需要几百个字节,开方需要更多,而且好像算得不太准。慎用!

乘法,除法 用加减法代替!!
平方开放 再想想办法。

单片机忌违浮点运算!

网上有很好的仿真程序,你为什么不找找呢,我这有LCD的仿真,相对于数码管可能要复杂些.而且你需要有仿真程序.

你的硬件电路都没有,怎么写啊?难道你只要模拟不成?

我有4位LED,不带负数的,没混合运算的,你要吗?

这是流程:
1. 4X4键盘输入,点阵字符型液晶显示。
2. 由于所采用的浮点程序库的限制(MCU平台只找到这个……),浮点运算采用3字节二进制补码表示,有效数字6位。对于输入输出,采用3字节BCD码浮点数格式,有效数字只有4位,因此最终有效数字只有4位。
3. 可进行连续输入,例如:1.23+4.56*8.23/234.8 ,但是运算结果为从左到右,这也是8位简易计算器的方式。
4. 可进行错误判断,溢出、除零等错误将显示一个字符 E 。
5. 由于键盘只有16个按键,安排如下:
+---------------+
| 7 | 8 | 9 | + |
| 4 | 5 | 6 | - |
| 1 | 2 | 3 | * |
| 0 | . | = | / |
+---------------+
6. 按键的缺少导致取消了一些特殊函数,即开根号,三角函数(sin, cos, tan, ctg)的实现,由于这些函数在浮点程序库中均已提供,如果硬件允许,在原来的框架上添加这些附加功能是很容易的(可以看作和+, -, *, /等价的按键操作,调用不同的子程序进行运算即可)
7. 按两次 = 等于清灵。因为按键实在太少,才采用了这个做法。
8. 相应举例:
按键