74HC595是一個(gè)8位串行輸入、平行輸出的位移緩存器:平行輸出為三態(tài)輸出。在SCK的上升沿,單行數(shù)據(jù)由SDL輸入到內(nèi)部的8位位移緩存器,并由Q7‘輸出,而平行輸出則是在LCK的上升沿將在8位位移緩存器的數(shù)據(jù)存人到8位平行輸出緩存器。當(dāng)串行數(shù)據(jù)輸人端OE的控制信號(hào)為低使能時(shí),平行輸出端的輸出值等于平行輸出緩存器所存儲(chǔ)的值。而當(dāng)OE為高電位,也就是輸出關(guān)閉時(shí),平行輸出端會(huì)維持在高阻抗?fàn)顟B(tài)。
74HC595芯片引腳圖及功能
74HC595引腳圖
74HC595管腳功能
74HC595芯片邏輯圖
下面這個(gè)74HC595芯片邏輯圖,輸出使能端13腳我們一直讓它使能,復(fù)位端10腳我們一直讓它無(wú)效,這兩個(gè)引腳在硬件設(shè)計(jì)時(shí)為了方便,就直接給它們連到相應(yīng)的電平上了。程序中我們只需要關(guān)注數(shù)據(jù)輸入引腳14腳、移位脈沖引腳11腳和鎖存脈沖引腳12腳。
圖中的SRA——SRH是移位寄存器(ShiftRegister),數(shù)據(jù)從它們的D引腳輸入,從Q引腳輸出,每次移位脈沖引腳(ShiftClock)提供一個(gè)脈沖,D引腳的數(shù)據(jù)就會(huì)輸出并保持到Q引腳,因?yàn)檫@里的移位脈沖引腳(ShiftClock)是連到每一個(gè)SR上的,所以自然每次給一個(gè)移位脈沖的時(shí)候,所有的數(shù)據(jù)都向后移動(dòng)了一位。
這里我們注意到,SRA的D腳連接的是串行數(shù)據(jù)輸入,也就是我們的數(shù)據(jù)引腳。所以每次給脈沖移位之前,我們需要準(zhǔn)備好該引腳的值,因?yàn)槊看谓o一個(gè)脈沖,它的數(shù)據(jù)就會(huì)移入后方。
很直觀的看到,我們給幾個(gè)脈沖,數(shù)據(jù)引腳就會(huì)有幾次被移入移位寄存器,并且這些值會(huì)保持在各個(gè)SR的Q腳。所以假設(shè)我們要將一個(gè)字節(jié)移入移位寄存器,因?yàn)?個(gè)字節(jié)是8位的,所以我們需要給出8個(gè)脈沖,那么SRA——SRH的Q腳就保持了這8位值,再看看這8位值,它是先在數(shù)據(jù)引腳輸出的值就會(huì)走得越遠(yuǎn),所以如果我們先輸出數(shù)據(jù)高位的話(huà),最高位在8個(gè)脈沖后就會(huì)跑到SRH的Q腳。這就像我們排隊(duì)一樣,一個(gè)寄存器里面有8個(gè)位置,每次給一個(gè)脈沖就好比一次呼叫:“大家可以往前移一位了!”就這樣,隊(duì)伍不斷得往前移。
然后我們看到LRA——LRH,它們是鎖存寄存器(LatchRegister),每次鎖存脈沖引腳(LatchClock)給一個(gè)脈沖,Q腳就會(huì)輸出并保持D腳的值。LR和SR其實(shí)是差不多的功能,只是SR多了個(gè)復(fù)位腳。
我們可以把LR看成是照相機(jī),鎖存脈沖引腳就相當(dāng)于是照相機(jī)的快門(mén),我們給一個(gè)鎖存脈沖,那么數(shù)據(jù)就被鎖存在了對(duì)應(yīng)的Q腳。而當(dāng)我們沒(méi)有操作鎖存引腳的時(shí)候,照相機(jī)只是擺在那里,不管隊(duì)伍怎么前進(jìn)了,照相機(jī)的輸出始終是不變的。只有某次按下了快門(mén),所有的照相機(jī)的照片就都更新了一次。
大概有人會(huì)問(wèn),圖中的三角形加小圓圈是什么呢?那是非門(mén),說(shuō)白了就是如果它前面是0,后面就是1;前面是1,后面就是0。還有就是貼在方形鎖存器上的那些小圓圈,也是起到反向的左右。
74HC595使用方法
74HC595的數(shù)據(jù)端
Q0--Q7:八位并行輸出端,可以直接控制數(shù)碼管的8個(gè)段。
Q7:級(jí)聯(lián)輸出端。將它接下一個(gè)595的DS端。
DS:串行數(shù)據(jù)輸入端,級(jí)聯(lián)的話(huà)接上一級(jí)的Q7。
74HC595的控制端說(shuō)明
/MR(10腳):低電平時(shí)將移位寄存器的數(shù)據(jù)清零。通常我將它接Vcc。
SH_CP(11腳):上升沿時(shí)數(shù)據(jù)寄存器的數(shù)據(jù)移位。Q0->Q1->Q2-->Q3-->...-->Q7;下降沿移位寄存器數(shù)據(jù)不變。(脈沖寬度:5V時(shí),大于幾十納秒就行了。我通常都選微秒級(jí))
ST_CP(12腳):上升沿時(shí)移位寄存器的數(shù)據(jù)進(jìn)入數(shù)據(jù)存儲(chǔ)寄存器,下降沿時(shí)存儲(chǔ)寄存器數(shù)據(jù)不變。通常我將ST_CP置為低電平,當(dāng)移位結(jié)束后,在ST_CP端產(chǎn)生一個(gè)正脈沖(5V時(shí),大于幾十納秒就行了。我通常都選微秒級(jí)),更新顯示數(shù)據(jù)。
/OE(13腳):高電平時(shí)禁止輸出(高阻態(tài))。如果單片機(jī)的引腳不緊張,用一個(gè)引腳控制它,可以方便地產(chǎn)生閃爍和熄滅效果。比通過(guò)數(shù)據(jù)端移位控制要省時(shí)省力。
注1)74164和74595功能相仿,都是8位串行輸入轉(zhuǎn)并行輸出移位寄存器。74164的驅(qū)動(dòng)電流(25mA)比74595(35mA)的要小,14腳封裝,體積也小一些。
2)74595的主要優(yōu)點(diǎn)是具有數(shù)據(jù)存儲(chǔ)寄存器,在移位的過(guò)程中,輸出端的數(shù)據(jù)可以保持不變。這在串行速度慢的場(chǎng)合很有用處,數(shù)碼管沒(méi)有閃爍感。
3)595是串入并出帶有鎖存功能移位寄存器,它的使用方法很簡(jiǎn)單,如下面的真值表,在正常使用時(shí)ST_CP為低電平,/OE為低電平。從DS每輸入一位數(shù)據(jù),串行輸入時(shí)鐘SH_CP上升沿有效一次,直到八位數(shù)據(jù)輸入完畢,輸出時(shí)鐘ST_CP上升沿有效一次,此時(shí),輸入的數(shù)據(jù)就被送到了輸出端。
74HC595具體使用的步驟
第一步:目的:將要準(zhǔn)備輸入的位數(shù)據(jù)移入74HC595數(shù)據(jù)輸入端上。方法:送位數(shù)據(jù)到_595。
第二步:目的:將位數(shù)據(jù)逐位移入74HC595,即數(shù)據(jù)串入方法:SH_CP產(chǎn)生一上升沿,將DS上的數(shù)據(jù)移入74HC595移位寄存器中,先送低位,后送高位。
第三步:目的:并行輸出數(shù)據(jù)。即數(shù)據(jù)并出方法:ST_CP產(chǎn)生一上升沿,將由DS上已移入數(shù)據(jù)寄存器中的數(shù)據(jù)送入到輸出鎖存器。
說(shuō)明:從上可分析:從SH_CP產(chǎn)生一上升沿(移入數(shù)據(jù))和ST_CP產(chǎn)生一上升沿(輸出數(shù)據(jù))是二個(gè)獨(dú)立過(guò)程,實(shí)際應(yīng)用時(shí)互不干擾。即可輸出數(shù)據(jù)的同時(shí)移入數(shù)據(jù)。
相關(guān)資料下載推薦>>>>>>>>74hc595芯片中文資料分享
評(píng)論