單片機芯片之(74HC595/74LS595)


一、僅用一個74HC595驅動四位甚至更多的數碼管

在數碼管上要顯示同一個數字可以用靜態顯示,當數碼管要顯示不同數字時就用到動態顯示。圖所示為74HC595芯片的封裝及引腳分布。74HC595是由8位移位寄存器和8位三態並行輸出的D型鎖存器組成,如圖所示。

14腳:DS(SER),串行數據輸入引腳

13腳:OE,  輸出使能控制腳,它是低電才使能輸出,所以接GND

12腳:RCK,存儲寄存器時鍾輸入引腳。上升沿時,數據從移位寄存器轉存帶存儲寄存器。

11腳:SCK,移位寄存器時鍾引腳,上升沿時,移位寄存器中的bit 數據整體后移,並接受新的bit(從SER輸入)。

10腳:MR,低電平時,清空移位寄存器中已有的bit數據,一般不用,接 高電平即可。

9 腳 :串行數據出口引腳。當移位寄存器中的數據多於8bit時,會把已有的bit“擠出去”,就是從這里出去的。用於595的級聯。

Qx:並行輸出引腳

 

74HC595具有以下特征:

(1) 移位寄存器接收串行數據、提供串行或8位並行數據輸出;

(2) 移位寄存器和鎖存器擁有獨立的時鍾輸入;

(3) 移位寄存器擁有異步復位信號

所示為74HC595的時序圖。由時序圖可以看出,串行輸入數據在移位時鍾的上升沿被讀進移位寄存器中(更正先傳輸高位,時序圖有誤);當復位信號有效時,移位寄存器被清零;在輸出使能為低電平且鎖存時鍾的上升沿時,移位寄存器的值被鎖存輸出;當輸出使能為高電平時,輸出高阻態。而串行輸出接口則是輸出移位寄存器的最高位,且不受輸出使能的控制。

 

14腳:DS,又叫SER  英文全稱是:Serial data input ,顧名思義,就是串行數據輸入口。

11腳,(shift register clock input)  移位寄存器時鍾引腳。上升沿有效。

12腳: (storage register clock input )  存儲寄存器數據從位移寄存器轉移到存儲寄存器,也是需要時鍾脈沖驅動的,上升沿有效。

  參考代碼(代碼有誤,先傳高位)

#include<reg51.h>
#include<intrins.h>

/**********函數聲明********************/ void SendTo595(unsigned char byteData);
/***********************************/ sbit SER = P3^4; //p3.4腳控制串行數據輸入 sbit SCK = P3^6; //串行輸入時鍾 sbit RCK = P3^5; //存儲寄存器時鍾 void main() { SendTo595(55); //85的二進制:0101 0101 while(1); } //功能:發送一個字節的數據給595,再並行輸出 void SendTo595(unsigned char byteData) { char i=0;
for(;i<8;i++) { SER = byteData>>7; //此條語句嚴重錯誤,因為74HC595先傳高位 byteData= byteData<<1; SCK = 1; //上升沿,讓串行輸入時鍾變為高電平,並延時2個時鍾周期 _nop_(); _nop_(); SCK = 0; //變為低電平,為下次准備 } /*位移寄存器數據准備完畢,轉移到存儲寄存器*/ RCK = 1; //上升沿,讓存儲寄存器時鍾變為高電平,並延時2個時鍾周期 _nop_(); _nop_(); RCK = 0; }

 74HC595和74HC164的區別主要有:
1、74HC595有鎖存器,所以在移位過程中輸出可以保持不變;而74HC164沒有鎖存器,所以每產生一個移位時鍾輸出就改變一次。這是二者的最大區別
2、74HC595使用專門的Q7'引腳實現多片級聯;74HC164直接使用輸出引腳Q7級聯
3、74HC595有使能OE,OE無效時輸出引腳為高阻態;而74HC164沒有使能引腳
4、74HC595的復位是針對移位寄存器的,想要復位LATCH寄存器還須ST_CP上升沿將移位寄存器內容加載到鎖存寄存器;也就是說:74HC595的復位是同步的,74HC164的復位是異步的,所以74HC164的復位更簡單
5、74HC164有對應的74HC165並轉串芯片


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM