/*****************************************************************************
FileName : hc164.c
Function : 74HC164驅動程序---驅動74HC164,2入8出
Author : mike
Email : [email protected]
Version : V1.0
Date : 2019-07-12
Note : 本程序曾用於生產產品
*****************************************************************************/
#define u8 unsigned char
#define BIT(n) (1 << n)
#define HC164_INIT() //初始化,設爲輸出
#define HC164_DAT_HIGH() P2 |= BIT(0)
#define HC164_DAT_LOW() P2 &= ~BIT(0)
#define HC164_CLK_HIGH() P2 |= BIT(1)
#define HC164_CLK_LOW() P2 &= ~BIT(1)
void send_74hc164_data(u8 dat)
{
u8 i;
for(i = 0;i < 8;i++)
{
if(dat&0x80)
{
HC164_DAT_HIGH();
}
else
{
HC164_DAT_LOW();
}
dat <<= 1;
HC164_CLK_LOW();
//_nop_();_nop_(); //稍做延時
HC164_CLK_HIGH();
//_nop_();_nop_(); //稍做延時
}
HC164_CLK_LOW();
HC164_DAT_LOW();
}