74HC164驱动(2线串行通信)

 

/*****************************************************************************
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();  
} 

 

 

 

 

 

 

 

你可能感兴趣的:(单片机,驱动,C语言)