单片机/MCU论坛
直播中

rainyman

10年用户 29经验值
擅长:可编程逻辑 电源/新能源 模拟技术
私信 关注
[问答]

两个595怎么控制16个数据,坐等

这个是单个595控制8位数据的c程序

#include
#include
#define uchar unsigned char
#define uint unsigned int


***it Sh_cp=P2^0;
***it Ds=P2^1;
***it St=P2^2;

***it Sh_cp1=P1^0;
***it Ds1   =P1^1;
***it St1   =P1^2;

uchar temp;
uchar temp1;
void In_Data(void)
{
         unsigned char i;
         for(i=0;i<8;i++)
         {
          Sh_cp=0;
          _nop_();_nop_();
          temp=temp<<1;Ds=CY;
          Sh_cp=1;
          _nop_();_nop_();
          Sh_cp=0;
          _nop_();_nop_();
         }
}

void Out_Data(void)
{
         St=0;
         _nop_();_nop_();
         St=1;                          //ÉÏÉýÑØË͵½Ëø´æÆ÷
         _nop_();_nop_();
         St=0;            //Ëø´æÏÔʾ
}

void DelayMS(unsigned int ms)
{
        unsigned char i;
        while(ms--)
        for(i=0;i<120;i++);
}

void main()
{
   uchar i;
        while(1)
        {

               
                        for(i=0;i<8;i++)
                        {
                                temp=1<                                  In_Data();
                                Out_Data();
                          DelayMS(1000);
                        }

                        //        DelayMS(2000);
                   }
        }
我把两个595的锁存和移位都连在一起,效果变成第二个595继承了第一个595的数据,第一个595接受新数据,想让两个595同时移位,控制16位数据怎么做呢,求指点~~~

  • N@4R6@13~Z$V3{WZBD]XRNR.png

回帖(4)

rainyman

2016-10-19 10:07:04
自顶~~~~坐等指点
举报

rainyman

2016-10-19 10:11:57
想让灯泡从上往下亮
举报

houjue

2016-10-19 12:44:12
呼呼,一看楼主就没仔细看595的数据手册啊~~~~~~
      仔细看OE使能端:H电平是禁止,可以理解为关闭芯片。你图里将两个芯片的OE都置L电平,也就是都开启芯片,那数据来了自然是去两路了。
举报

ZHAOLH

2016-10-19 13:36:09
将两个串在一起的话,8位寄存器就变成16位了,在主函数for循环中i=16,不知道对不对?望大神解答!!!!
举报

更多回帖

发帖
×
20
完善资料,
赚取积分