论坛风格切换切换到宽版
  • 3637阅读
  • 10回复

给点提示吧 [复制链接]

上一主题 下一主题
离线BG5HAD
 
发帖
689
只看楼主 倒序阅读 0楼 发表于: 2003-07-21
89c51+8279+62255+8位led+16个按键
做一个计算器,16个按键要复用一部分吧

那位能给些资料。

最好有源代码:d
离线bd4ji
发帖
4532
只看该作者 1楼 发表于: 2003-07-21
行列扫描啦.
离线BG7FW
发帖
487
只看该作者 2楼 发表于: 2003-07-22
对,用矩阵扫描吧!16个键8个io就行了,
如果还不够用就干脆把键盘和led段码数据线复用!!
离线kunpeng
发帖
123
只看该作者 3楼 发表于: 2003-07-22
键盘用矩阵扫描,4*4的键盘需8个口。led用动态扫描显示8个段显8个位显需16个口,8051有p0,p1,p2,p3共32个i/o口,还剩8个口可以扩展其他用途
离线BG5HAD
发帖
689
只看该作者 4楼 发表于: 2003-07-23
这些不是问题,8279帮我全部搞定了.但是我不知道怎么把扫描到的一系列按键序列变成相应的数字
离线BG5HAD
发帖
689
只看该作者 5楼 发表于: 2003-07-23
板子上已经有16个开关,但对于计算器还是不够,所以要一键多义,利用状态转换来做,具体怎么弄俺不会
离线BG7FW
发帖
487
只看该作者 6楼 发表于: 2003-07-23
1、但是我不知道怎么把扫描到的一系列按键序列变成相应的数字??
在键盘处理程序里面把健值直接与数字对应上就行了。

2、利用状态转换来做,具体怎么弄俺不会
在程序结构中引入状态机是多任务处理系统的很好解决方法,
它可以令程序简洁明了,可控制性好,易升级。
具体的实现方法要根据系统的要求具体分析,
可以参照一下<程序结构设计>和<编译原理>等书
对你整个编程思路和程序结构有很大帮助。
离线BG5HAD
发帖
689
只看该作者 7楼 发表于: 2003-07-23
谢谢
我依次输入123,如何让单片机识别为1百二十三
离线BG7FW
发帖
487
只看该作者 8楼 发表于: 2003-07-24
我没有做过计算器,不清楚行业内通常的做法,
当然要实现你所说的很容易,方法也很多,
如可以定义多个权位寄存器,个位,十位,百位,,,,
每输入一个数所有的数都向高位移1字节,
当然这样浪费资源,
也可以定义一个16位或32位寄存器,每输入一个数,寄存器乘10,再加上输入的数。
还有很多方法,都可以实现,
但你要从系统整体的角度来考虑,哪种方法对你后面的运算,处理比较合适。
祝你成功。
离线BG5HAD
发帖
689
只看该作者 9楼 发表于: 2003-07-24
多谢斑竹
离线bravoradio
发帖
1968
只看该作者 10楼 发表于: 2003-07-24
作业?