viq505 发表于 2015-1-20 11:04:17

请教74hc595级联的问题

本帖最后由 viq505 于 2015-1-20 11:08 编辑

请教74hc595级联的问题:
本人第一次调试74HC595级联了9片当然我加了74HC245
我每次送595数据的时候只会显示最后的送的数据,比如我送0x01然后再送0x55就所有595全部显示0x55


我怎样做才能全部显示不一样的数据呢?
假如我想让
第1片595显示0x01
第2片595显示0x02
第3片595显示0x03
第4片595显示0x04
第5片595显示0x05
第6片595显示0x06
。。。。。。
我的代码太乱就不贴全部出来了
unsigned char code T_COM[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
void Send_595(unsigned char dat)        //发送一个字节
{               
        unsigned char        i;
        for(i=0; i<8; i++)
        {
                if(dat & 0x80)        P_HC595_SER = 1;
                else                        P_HC595_SER = 0;
                P_HC595_SRCLK = 1;
                P_HC595_SRCLK = 0;
                dat = dat << 1;
        }
void main()
{       
        unsigned char        i;
while(1)
{
for(i=0;i<8;i++)
       {
                Send_595(T_COM);
                P_HC595_RCLK = 1;
                P_HC595_RCLK = 0;
                P_HC595_EN=0;
        }
}
}
这样会显示
第1片595显示0x80
第2片595显示0x80
第3片595显示0x80
第4片595显示0x80
第5片595显示0x80
第6片595显示0x80
。。。。。。

jiaowoxiaolu 发表于 2015-1-20 11:09:37

你这样子不会是时钟数据锁存都连在一起了吧,级联共用时钟和锁存,数据是从每个595的数据级联端口连接下一片595的

steaven2000 发表于 2015-1-20 11:11:26

"我每次送595数据的时候只会显示最后的送的数据,比如我送0x01然后再送0x55就所有595全部显示0x55"

你确认你是级联?贴电路图吧。

SXH201312 发表于 2015-1-20 14:12:53

怎么觉得楼主不是级联,而是并联的,

级联的数据级联,锁存(14脚)跟时钟脚(11脚好像)并联

dz20062008 发表于 2015-1-20 14:23:14

SXH201312 发表于 2015-1-20 14:12
怎么觉得楼主不是级联,而是并联的,

级联的数据级联,锁存(14脚)跟时钟脚(11脚好像)并联 ...

同意您的说法。

dlsuntao 发表于 2015-1-20 16:00:19

jiaowoxiaolu 发表于 2015-1-20 11:09
你这样子不会是时钟数据锁存都连在一起了吧,级联共用时钟和锁存,数据是从每个595的数据级联端口连接下一 ...

同意!!

xingjianpeng 发表于 2015-1-21 10:50:37

贴出原理图看看会不会有问题、

viq505 发表于 2015-1-22 10:59:00

问题已经解决是程序的问题顺便贴出原理图
        P_HC595_RCLK = 1;
        P_HC595_RCLK = 0;
将这两条程序加在了发送数据的前边问题解决
谢谢大家
页: [1]
查看完整版本: 请教74hc595级联的问题