/*****************************************************************************
FileName : hc164.c
Function : 74HC164驱动程序---驱动74HC164,2入8出
Author : mike
Email : hxtiou@163.com
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();
}