AT89C51单片机C语言编程高手进。。

我要做一个实训,就是用51单片机去实现一个简易计算器的操作。。要求是用C语言编程,我想了好几天,还是没有头绪。。以下是设计原理图,数码管为7SEG-MPX8-CA-BLUE,单片机为AT89C51 键盘为KEYPAD-SMALLCALC,还有一个上拉排阻。。能够帮我的顶啊,定重谢。。

首先,你的原理图没有问题的。
你可以设置几个缓冲区(也就是变量),分别放几个输入的数,例如输入的第一个数,第二个数结果等等但是一定要注意这个缓冲区的位宽。有了这些存放数据的“容器”再对这些数进行加减乘除运算就简单多了。还有一点,尽管在C语言里有运算乘除的操作符,但是我不建议你用这些,你最好用移位运算来代替。
在编程上我建议你用模块化编程(也就是若干个子函数),例如分成显示模块,运算模块,键盘检测模块等等。一个一个地调,上一个模块调好了之后再调另一个模块。如果你不这么做的话很可能到最后你自己都找不到头绪!呵呵....加油!这个不难的.....
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-06-09
这个不难啊 你在网上找一下关于计算机的编程C程序 然后你的任务主要是协调各个模块之间的程序, 像键盘,液晶显示这些程序在网上都能找到,追问

能不能帮我提供一下呢?我找了好几天了。。都匹配不起来呀。谢了

追答

http://wenku.baidu.com/view/532a2585ec3a87c24028c42d.html 这个资料介绍的比较详细 你看下

本回答被网友采纳
第2个回答  2011-06-09
一个动态显示函数 一个矩阵键盘扫描函数 一个计算函数
动态扫描最好用个定时中断 会稳定点
把他们联系起来就好 没什么难的
细节方面注意一下数据结构 任何数据结构都是有上限的 比如unsigned char 0-0xff 也就是0-255
处理小数的时候可以不用FLOAT而是在整数上人为的加小数点 这样会简单一点追问

我看到都晕了。。。能不能帮我提供几个函数呢?我QQ258214683谢了

第3个回答  2011-06-10
呵呵,proteus文件夹中的实例就有这个东西,你进去看看就知道了。