51单片机 简易计算器

51单片机做一个简易计算器,在八位数码管上显示,功能基本为能实现加减乘除,小数的加减乘除,可以显示负数,可以进行混合运算,使用C程序编写的,有注解。急求参考,整了好多天都... 51单片机做一个简易计算器,在八位数码管上显示,功能基本为能实现加减乘除,小数的加减乘除,可以显示负数,可以进行混合运算,使用C程序编写的,有注解。急求参考,整了好多天都没完成功能,请大虾帮忙解决,同时请看清要求哈!请调试成功,慎重呀!小弟刚接触51单片机,请包涵了。
最好能打包发到我邮件里dzgcxy2008@qq.com 要求至少要满足8位共阴数码管,实现加减乘除,小数的加减乘除,后面的显示负数和混合运算可以满足其中一个
展开
 我来答
勇闯天涯595595
2009-07-27 · TA获得超过1470个赞
知道小有建树答主
回答量:444
采纳率:100%
帮助的人:140万
展开全部
这是流程:
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. 相应举例:
按键 结果 说明
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
123+= 123 按下等号而没有第二个操作数,保留第一个操作数
并认为此次运算结束(等号的功能)

123+321/111 4.0 等价于(123+321) / 111

2.3+5.4=/0.1+ 77 等号后直接按 / ,则将前面的运算结果作为第一个
操作数
1/0= E 错误显示

这是源码:http://macroling.bokee.com/2390458.html

参考资料: http://macroling.bokee.com/2390458.html

a6538662
2009-07-27 · TA获得超过2093个赞
知道小有建树答主
回答量:1142
采纳率:100%
帮助的人:810万
展开全部
浮点是单片机的弱项,初学难度有点大。

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

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

单片机忌违浮点运算!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jackwanng
2009-07-27
知道答主
回答量:8
采纳率:0%
帮助的人:0
展开全部
发到你的邮箱了看一下
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cocaxuebi
2009-07-26 · TA获得超过156个赞
知道小有建树答主
回答量:194
采纳率:0%
帮助的人:157万
展开全部
网上有很好的仿真程序,你为什么不找找呢,我这有LCD的仿真,相对于数码管可能要复杂些.而且你需要有仿真程序.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wujunli85
2009-07-25 · TA获得超过667个赞
知道小有建树答主
回答量:189
采纳率:0%
帮助的人:188万
展开全部
我有4位LED,不带负数的,没混合运算的,你要吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 4条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式