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

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章