74hc595

 

遇到问题:

 

下发时间耗时太长;

 

解决方案:

 

数据不更新则不下发;

 

六路一起下发;

 

static u8 TEMP_BUF[24];

static u8 TEMP_BUF_BAK[24];

void sendreplay(void)

{

u8 i;

 

for(i=0;i<24;i++)

{

if(TEMP_BUF[i] != TEMP_BUF_BAK[i]) break;

}

 

if(i<24)

{

for(i=0;i<24;i++) TEMP_BUF_BAK[i] = TEMP_BUF[i];

TI74HC595_SendMultiByte(TEMP_BUF);

 

}

 

}

 

 

74htc595

功能

8位串行输入

8位串行或并行输出

3态输出的存储

寄存器带直接清零的移位寄存器100 MHZ(典型)

移出频率

ESD保护H

BM ELAJESD22-A114-A超过2000VMM

EIAJESD23-A115-A超过200 V

 

说明

74HC/HCT595是高速硅栅CMOS器件,

与低功率肖特基TTLLSTTL引脚兼容。

它们是根据JEDEC第号标准规定的。7

74HC/HCT595是一个8级串行移位寄存器,具有静态寄存器和3态输出。

移位寄存器和存储寄存器具有独立的时钟。

数据在SH_CP输入的正向转换中进行移位。

每个寄存器中的数据在ST _ CP输入的正向转换时传输到存储寄存器。

如果两个时钟连接在一起,则移位寄存器将始终领先存储寄存器一个时钟脉冲。

移位寄存器具有串行输入(DS)和串行标准输出(Q7),用于级联。

它还为所有8个移位寄存器级提供异步复位(有效低电平)。

存储寄存器具有8个并行的3态总线驱动器输出。

每当输出使能输入(OE)为LOW(低)时,存储寄存器中的数据就会出现在输出端

 

void TI74HC595_SendByte_1(uint8_t dat)

{

uint8_t mid;

GPIO_SetBits(PC15_SH1_PORT, PC15_SH1_PIN );

GPIO_SetBits(PC14_ST1_PORT, PC14_ST1_PIN );

for(mid=0;mid<8;mid++) //·¢ËÍ 8 λÊý

{

if((dat >> 7) == 0x01){

GPIO_SetBits(PC13_DS1_PORT, PC13_DS1_PIN );

}else{

GPIO_ResetBits(PC13_DS1_PORT, PC13_DS1_PIN);

}

dat <<= 1;

GPIO_ResetBits(PC15_SH1_PORT, PC15_SH1_PIN);

_74DELAY;

GPIO_SetBits(PC15_SH1_PORT, PC15_SH1_PIN );

_74DELAY;

}

 

}

 

void TI74HC595_CS_1(void)

{

  GPIO_ResetBits(PC14_ST1_PORT, PC14_ST1_PIN);

_74DELAY;

GPIO_SetBits(PC14_ST1_PORT, PC14_ST1_PIN );

_74DELAY;

 

}

void TI74HC595_SendMultiByte_1(uint8_t *data,uint16_t len)

{

 uint8_t i;

 

    for (i = 0; i < len; i ++ )

 

    {

 

        TI74HC595_SendByte_1(data[i]);

 

    }

 

    TI74HC595_CS_1();

}

posted @ 2024-09-25 15:17  不折不扣  阅读(27)  评论(0编辑  收藏  举报