查看: 7106|回复: 15

[提问] 不连续IO口怎么输出7led显示

[复制链接]
发表于 2009-11-25 14:37:08 | 显示全部楼层 |阅读模式
关键词: 输出
大家好:   小弟初学KEIL,看到很多流水灯例子都是用连续的IO,比方:P0,P1等,   由于PCB布线的原因,不连续的IO(比方说:7LED用到的段为P1.5,P1.6,P3.7,P1.7,P3.4,P1.4,P1.3)通过什么方法(也就是像操作P1口那样)输出7LED数码管显示呢?谢谢
发表于 2009-11-25 22:27:41 | 显示全部楼层
不知道这样可以不?用“P4(x);”代替“P4 = (x);”
#include

#define P4(x)         P1_2 = 0x01&x;\
                                P1_5 = 0X02&x;\
                                P1_6 = 0x04&x;\
                                P3_7 = 0x08&x;\
                                P1_7 = 0x10&x;\
                                P3_4 = 0x20&x;\
                                P1_4 = 0x40&x;\
                                P1_3 = 0x80&x
 楼主| 发表于 2009-11-27 20:53:37 | 显示全部楼层
楼上的好像不行的。
发表于 2010-5-19 01:01:14 | 显示全部楼层
感谢1楼! 你的代码是可以的, 列表为证:
  12          void main(void)
  13          {
  14   1          P4(5);
  15   1         
  16   1          while(1);
  17   1      }
C51 COMPILER V8.02   TES1                                                                  05/19/2010 00:59:30 PAGE 5   

ASSEMBLY LISTING OF GENERATED OBJECT CODE


             ; FUNCTION main (BEGIN)
                                           ; SOURCE LINE # 12
                                           ; SOURCE LINE # 13
                                           ; SOURCE LINE # 14
0000 D292              SETB    P1_2
0002 C295              CLR     P1_5
0004 D296              SETB    P1_6
0006 C2B7              CLR     P3_7
0008 C297              CLR     P1_7
000A C2B4              CLR     P3_4
000C C294              CLR     P1_4
000E C293              CLR     P1_3
0010         ?C0001:
发表于 2010-5-19 01:02:14 | 显示全部楼层
1楼高手, 有空多交流!
发表于 2010-5-26 01:48:55 | 显示全部楼层
哈哈。真的要感谢uushuo,这个问题也困扰我很久了 ,
发表于 2010-5-29 10:04:05 | 显示全部楼层
要是写成类似这样会更好:
#define P4((x))         P1_2 = 0x01&(x);\
.....

这里的x可以是一个常数表达式, 如 0x01<<2.
发表于 2010-5-30 14:08:30 | 显示全部楼层
初学者,看不明白.用(X)是表示什么意思
发表于 2010-6-1 23:16:05 | 显示全部楼层
1楼高手 ,好久不用51了
发表于 2010-6-7 23:30:20 | 显示全部楼层
还真没想到这个问题呢
发表于 2011-6-12 11:23:55 | 显示全部楼层
按位赋值
发表于 2011-6-12 11:24:14 | 显示全部楼层
按位赋值
发表于 2011-7-4 08:27:09 | 显示全部楼层
自己做个枚举列表,犹如数组一样,这样看着也方便。
发表于 2011-7-4 09:06:48 | 显示全部楼层
学习
发表于 2011-7-11 16:05:22 | 显示全部楼层
简单的数据处理,没什么不同
发表于 2011-7-14 18:28:58 | 显示全部楼层
先查出欲显示信息的字段码,再按位赋值
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
快速回复 返回顶部 返回列表