4991|19

51

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

多路复用的LED设计程序怎么写?(急.急.急...) [复制链接]

最普通的行列矩阵式驱动,可以用N+M个IO驱动N*M个LED。而这种被叫做Charlieplexing的方法可以用N个IO驱动N*(N-1)个LED。也就是说要驱动6个LED,用行列式需要5个口,而这种方法只要3个。LED也多,节省的IO越多。比方说驱动20个LED,行列式要用9个,而这种只要5个。  

这么做有个前提,IO口要有三种状态:高电平输出、低电平输出、高阻输入,利用“行列分时复用”的思想,设计电路。   

     如下图:



用汇编语言如何进行程序编写?(80c51)
哪位兄弟能发表一下高见?
谢谢啦!

最新回复

回应ZHKFLYING:      邮件已收到,谢谢你啦!  详情 回复 发表于 2009-5-30 22:16
点赞 关注

回复
举报

79

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
大概感觉了一下它的设计想法

轮循切换限流电阻上的那个IO

它做为控制线

不停地扫这个控制线以及给出别的IO值,达到点亮特定管子的目的

这样想法是不错

不过有个小问题,按说是可以驱动很多的LED,但是LED太多,扫描的代价太大

这会不会太郁闷?

呵呵
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
呵呵,当LED多了,其占空比很低的!(这无关紧要的)
我只是想就上面的电路图写个程序试试
可不知道怎么写,一点思路都没有!
你说的扫描又是怎么回事的?
请多多指点下!!!
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

4
 
感觉说的这些很像俺前一阵子刚用上的4*4键盘。
LED不知道怎么保证常亮长灭,硬件不懂哈~

键盘的思路:
1、第一行给低电平,其他三行高电平,看第几列被拉低了。(1行n列键被按下)
2、第二行……
3、……
4、……
 
 
 

回复

86

帖子

0

TA的资源

一粒金砂(初级)

5
 
“高电平输出”“高阻输入”两种情况下都是不亮吧?
没看到图,是ouravr的哪个帖子?
 
 
 

回复

60

帖子

0

TA的资源

一粒金砂(初级)

6
 
对呀!我怎么没想到呢!?
呵呵`~多谢slowhand指点!不小虾咪在这里恭候
多时,还是希望更多的大虾来指点迷津,有程序参考更好.......
谢谢诸位!
 
 
 

回复

61

帖子

0

TA的资源

一粒金砂(初级)

7
 
恩,就是ouravr上面的,其图为:

我很想知道是怎么用汇编编程的?
 
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

8
 
提供下面的真值表给你参考:

IO_01  IO_02  IO_03  哪个LED亮
输出高  输出低  高阻态   LED12
输出低  输出高  高阻态   LED13
输出高  高阻态  输出低   LED9
输出低  高阻态  输出高   LED10
高阻态  输出高  输出低   LED8
高阻态  输出低  输出高   LED11
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

9
 
请问zhkflying:
一个简单的问题,当I/O口为高阻态,用汇编怎么写的?或者说LED12亮怎么写?
请大虾们指点指点.........
 
 
 

回复

99

帖子

0

TA的资源

一粒金砂(初级)

10
 
如果你用的是Intel的8051:

;IO定义
sbit IO_01=P1^1;
sbit IO_02=P1^2;
sbit IO_03=P1^3;

;让LED12亮
SETB IO_01     ;输出高
CLR  IO_02     ;输出低
SETB IO_03     ;先置1
NOP            ;
MOV  C,IO_03   ;作为输入

当然你如果用的是其它类型的MCU,也许有专门设置I/O口作为输入或输出的寄存器。
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

11
 
请问zhkflying:又有一个新的问题:当我用proteus仿真时,6个LED是每二个一起亮的,即(LED9,LED12),(LED8,LED13),(LED10,LED11)依次循环点亮,而不是一个接一个的循环点亮的.
让LED12亮
SETB IO_01    ;输出高
CLR  IO_02    ;输出低
SETB IO_03    ;先置1
NOP            ;
MOV  C,IO_03  ;作为输入

此时LED12点亮,而IO_3还是出1使得LED9点亮;是不是当I/O口设为高阻态输入的,没有起到真正高阻态的作用呢?
请各路大虾指点!
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

12
 
此时LED12点亮,而IO_3还是出1使得LED9点亮;是不是当I/O口设为高阻态输入的,没有起到真正高阻态的作用呢?
——如果是Intel的8051,那么P1口内部有个上拉电阻,确实不是高阻态!
 
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

13
 
请问zhkflying:
那怎么办?有别的办法没?我改用P0口,它不是没上拉嘛,外接上拉之后,若P0.0为高阻态,我能不能控制其上拉不用从而转为高阻态,能的话又是怎么控制的?
   
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

14
 
E:\Intel\8051_IO三态.bmp
 
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

15
 
如果一定要用Intel的8051,那么请看上面的电路图:

SETB P1.1  ;P1.1输出高,三极管导通
SETB P0.1  ;P0.1为高阻,综合则IO_01输出高

CLR  P1.1  ;P1.1输出低,三极管截止
SETB P0.1  ;P0.1为高阻,综合则IO_01为高阻

CLR  P1.1  ;P1.1输出低,三极管截止
CLR  P0.1  ;P0.1输出低,综合则IO_01输出低

请验证,如果可以换带有三态输出I/O的MCU那最好
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

16
 
回应ZHKFLYING:
上面的电路图看不到,麻烦你发给我,我的QQ:296015908(296015908@qq.com)

谢谢!
 
 
 

回复

62

帖子

0

TA的资源

一粒金砂(初级)

17
 
     嘿嘿   楼上的  请问 版主 加了你好友没? 关于那个电路图看到啦吗?
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

18
 
回复LVWUWEI;
        呵呵`` 没有啦,正急着、、、、等待中!
   请问你有什么高见没?
         
 
 
 

回复

55

帖子

0

TA的资源

一粒金砂(初级)

19
 
这几天比较忙,没有上eeworld,今天刚上来,发邮件给你了,请查收图纸。
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

20
 
回应ZHKFLYING:
     邮件已收到,谢谢你啦!
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表