74HC595(串入并出)芯片的應用

74HC595是在單片機系統中常用的芯片之一。它的作用就是把串行的信號轉為并行的信號,常用在各種數碼管以及點陣屏的驅動芯片,使用74HC595可以節約單片機的io口資源,用3個io就可以控制8個數碼管的引腳,它還具有一定的驅動能力,可以免掉三極管等放大電路,所以這塊芯片是驅動數碼管的神器,應用非常廣泛。我們先看一下圖一74HC595的引腳圖。


圖一

74HC595的數據端:

QA--QH(有的也叫Q0-Q7): 八位并行輸出端,可以直接控制數碼管的8個段,也可以直接控制8個LED。

QH': 級聯輸出端。通常我們將它接下一個595的SI端,實現多個芯片之間的級聯。

SI: 串行數據輸入端。

74hc595的控制端說明:

/SCLR(10腳): 低電平時將移位寄存器的數據清零。通常我們將它接Vcc。

SCK(11腳):上升沿時數據寄存器的數據移位。QA-->QB-->QC-->...-->QH;下降沿移位寄存器數據不變。圖二是74HC595脈沖圖。


圖二

控制移位寄存器

SCK 上升沿 數據 ?移位 ? ? ? ?SCK 下降沿 數據 ?保持

RCK(12腳):上升沿時移位寄存器的數據進入存儲寄存器,下降沿時存儲寄存器數據不變。通常我將RCK置為低電平,當移位結束后,在RCK端產生一個正脈沖,更新顯示數據。圖三為74HC595真值表。


圖三

控制存儲寄存器

RCK 上升沿,移位寄存器的數據進入存儲寄存器。 ? ? ? RCK 下降沿,存儲寄存器數據不變。

G(13腳): 高電平時禁止輸出(高阻態)。如果單片機的引腳不緊張,用一個引腳控制它,可以方便地產生閃爍和熄滅效果。比通過數據端移位控制要省時省力。

74HC595是具有8位移位寄存器和一個存儲器,三態輸出功能。 移位寄存器和存儲器是分別的時鐘。數據在SHcp(見時序圖)的上升沿輸入,在STcp(見時序圖)的上升沿進入的存儲寄存器中去。如果兩個時鐘連在一起,則移位。

寄存器總是比存儲寄存器早一個脈沖。移位寄存器有一個串行移位輸入(Ds),和一個串行輸出

(Q7’),和一個異步的低電平復位,存儲寄存器有一個并行8位的,具備三態的總線輸出,當使

能 OE時(為低電平),存儲寄存器的數據輸出到總線。

595具體使用的步驟:

第一步:目的:將要準備輸入的位數據移入74HC595數據輸入端上。

方法:送位數據到_595。

第二步:目的:將位數據逐位移入74HC595,即數據串入

方法:SCK_595產生一上升沿,將PSI_595上的數據移入74HC595中.從低到高

第三步:目的:并行輸出數據。即數據并出

方法:P1.1產生一上升沿,將由SI_595上已移入數據寄存器中的數據

送入到輸出鎖存器。

說明: 從上可分析:從SCK_595產生一上升沿(移入數據)和RCK_595產生一上升沿(輸出數據)是二個獨立過程,實際應用時互不干擾。即可輸出數據的 同時移入數據。

程序如下,復制就能用(因為我也是復制)。

sbit SI_595=P2^0;

sbit RCK_595=P2^2;

sbit SCK_595=P2^1;

void HC595SendData(unsigned char SendVal)//發送數據

{

unsigned char i;

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

{

if((SendVal<

else SI_595=0;

SCK_595=0;//從SCK_595產生一上升沿(移入數據)

_nop_();

_nop_();

SCK_595=1;

}

}

void HC595ShowData()//RCK_595產生一上升沿(輸出數據)

{

RCK_595=0;

_nop_();

_nop_();

RCK_595=1;

}

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容