萧芸凤 发表于 2015-5-14 10:53:36

74HC595 和74HC165的使用

595串入并出有很多的例子,这里只简单写了一下代码。
int st = 5;
int sh = 6;
int ce = 4;
int ds = 3;

byte data1,data2 ;
byte dd;
void setup()
{
pinMode(ds,OUTPUT);
pinMode(st,OUTPUT);
pinMode(sh,OUTPUT);
pinMode(ce,OUTPUT);


}
void loop()
{
        digitalWrite(ce,LOW);
        write_595_1(st,sh,ds,data1);
        write_595_2(st,sh,ds,data2);
       
}

void write_595_1(int stcp,int shcp, int dspin, byte data)
{
    digitalWrite(stcp,LOW); //将ST_CP口上面加低电平让芯片准备好接收数据
    shiftOut(dspin,shcp,MSBFIRST,data);//
    digitalWrite(stcp,HIGH); //将ST_CP这个针脚恢复到高电平
}

void write_595_2(int stcp,int shcp, int dspin, byte data1,byte data2)
{
    digitalWrite(stcp,LOW); //将ST_CP口上面加低电平让芯片准备好接收数据
    shiftOut(dspin,shcp,MSBFIRST,data1);//
    shiftOut(dspin,shcp,MSBFIRST,data2);//
    digitalWrite(stcp,HIGH); //将ST_CP这个针脚恢复到高电平
}
data1,data2,需要在实际运行时带入数据。
现在来看一下165的使用,其实很早就算是成功了,只是一只以为165和595一样,把ds作为数据接口,后来看了一些资料才发现,165读取数据是Q7,也就是第9脚,当然第7脚也可以,不过是互补的数据。
int ds = 8; // Q7
int ce = 9;
int cp =10;
int pl =11;
int ms =5;
void setup()
{
        pinMode(ce,OUTPUT);
        pinMode(cp,OUTPUT);
        pinMode(pl,OUTPUT);
        pinMode(ds,INPUT);
       Serial.begin(9600);
}
void loop()
{
        digitalWrite(ce, 0);
        digitalWrite(pl, 0);
        Serial.println(Read_165(),BIN);
        delay(100);
}
int Read_165(int ds,int cp,int pl,int num)
{
        int data;
        int temp;
       
        digitalWrite(pl, 0);
        delayMicroseconds(ms);
        digitalWrite(pl, 1);
        delayMicroseconds(ms);

        data = 0 ;

        for(int i = 0 ; i < 8 * num; i++)
        {
                data = data << 1;
                digitalWrite(cp, 0);
                delayMicroseconds(ms);
                temp = digitalRead(ds);
                data |= temp;
                digitalWrite(cp, 1);
                delayMicroseconds(ms);

        }

        return data ;
}


除了CE接口可以省略外,如果两个同时使用就要6个接口,不知道能否进行功用,CP,PL,ST,SH,DS,Q7复用,用CE来片选,这样需要5个接口,如果公用一个CE,用非门连接595和165的CE这样就需要4个接口了,下一步验证一下。

hss03100130 发表于 2016-6-8 13:14:02

請問程式裡num是什麼?
页: [1]
查看完整版本: 74HC595 和74HC165的使用