打印

74HC595如何分别控制LED

[复制链接]
1747|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
milktang|  楼主 | 2012-1-9 10:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用74HC595输出驱动8个LED,如果把Q0-Q2三个LED做为一组,用按键K1控制其中某一个LED亮,把Q3-Q5三个LED用按键K2控制其中某一个亮,Q6-Q7两个LED用按键K3控制其中某一个亮,按键只对本组的LED起作用,不对其他组的LED起作用,应如何操作,现在是三个组定义三个变量,根据三个变量或的结果显示,有其他方法吗

相关帖子

沙发
dengm| | 2012-1-9 11:56 | 只看该作者
Key                Min                  Max                  Mask
  k1          00000001B        00000100B     00000111B
  K2          00001000B        00100000B     00111000B
  K3          01000000B        10000000B     11000000B
;--------------------------------------------------------------------
   DATA595=MIN(1) OR MIN(2) OR MIN(3)
   DO
        CALL KEY_INPUT(KEY)
        IN KEY<>0 THEN
             A = DATA595 AND MASK(KEY)
             IF A = MAX(KEY) THEN
                  A = MIN(KEY)
              ELSE
                  A = A + A
              END IF
              DATA595 = (DATA595 AND (NOT MASK(KEY))) OR A
              KEY = 0
        END IF



    LOOP

使用特权

评论回复
板凳
milktang|  楼主 | 2012-1-17 17:08 | 只看该作者
LS的流程可以讲解下吗

使用特权

评论回复
地板
gx_huang| | 2012-1-17 17:30 | 只看该作者
这个基本的一个字节内各个比特的操作,还是自己闭门想想才好。

使用特权

评论回复
5
milktang|  楼主 | 2012-1-18 08:55 | 只看该作者
本帖最后由 milktang 于 2012-1-18 09:48 编辑

IF A = MAX(KEY) THEN
                  A = MIN(KEY)
是指A等于最大键值则赋最小键值吗
IN KEY<>0 THEN
             A = DATA595 AND MASK(KEY)
是指什么,不太懂汇编

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

267

帖子

4

粉丝