74595芯片引腳及功能


引言
在數(shù)字電子領(lǐng)域,74LS595(低功耗肖特基TTL)和74HC595(高速CMOS)是兩款廣泛應(yīng)用的8位串行輸入/并行輸出移位寄存器,它們在許多需要擴展微控制器GPIO的應(yīng)用中扮演著核心角色。這兩種芯片的功能相同,但在電源電壓范圍、功耗和速度特性上有所不同,使其適用于不同的設(shè)計場景。它們的主要作用是將串行數(shù)據(jù)轉(zhuǎn)換為并行數(shù)據(jù),從而允許微控制器使用少量的引腳控制大量的LED、數(shù)碼管、LCD顯示器或其他并行設(shè)備。這種串并轉(zhuǎn)換的能力極大地簡化了硬件設(shè)計,降低了布線復(fù)雜性,并有效節(jié)省了微控制器的寶貴引腳資源。理解其引腳功能和工作原理對于高效地利用這些芯片至關(guān)重要。
芯片概述
74LS595和74HC595芯片內(nèi)部集成了兩個主要的8位寄存器:一個8位移位寄存器(Shift Register)和一個8位存儲寄存器(Storage Register,也稱為鎖存器)。數(shù)據(jù)首先通過串行數(shù)據(jù)輸入引腳(DS)逐位移入移位寄存器。一旦8位數(shù)據(jù)全部移入,用戶可以通過一個脈沖將移位寄存器中的數(shù)據(jù)并行地傳輸?shù)酱鎯拇嫫?。存儲寄存器的?shù)據(jù)隨后通過8個并行輸出引腳(Q0-Q7)輸出,這些輸出引腳通常是三態(tài)的,可以通過一個輸出使能引腳(OE)進行控制。此外,芯片還提供一個串行數(shù)據(jù)輸出引腳(Q7'或QH'),允許將多個74595芯片級聯(lián),以擴展輸出能力。這種串行輸入、并行輸出的設(shè)計使其成為微控制器與外部并行設(shè)備之間理想的接口橋梁,特別適用于那些對I/O端口需求旺盛,而微控制器自身I/O資源有限的場合。
74LS595/74HC595 芯片引腳圖
___ ___
DS 1| U |16 VCC
Q1 2| |15 Q0
Q2 3| |14 DS (SER) - 有時也標(biāo)為SER
Q3 4| |13 GND
Q4 5| |12 RCLK (STCP) - 存儲寄存器時鐘,有時也標(biāo)為STCP
Q5 6| |11 SRCLK (SHCP) - 移位寄存器時鐘,有時也標(biāo)為SHCP
Q6 7| |10 OE (GND) - 輸出使能,有時也標(biāo)為GND(使能時連接到GND)
Q7 8|_______| 9 Q7' (QH') - 串行數(shù)據(jù)輸出,有時也標(biāo)為QH'
重要說明: 盡管引腳圖上可能標(biāo)示為Q0-Q7,但在實際的PCB設(shè)計和芯片手冊中,為避免混淆,并行輸出引腳通常會明確標(biāo)記為Q0、Q1、Q2、Q3、Q4、Q5、Q6、Q7。某些數(shù)據(jù)手冊中,RCLK可能標(biāo)為STCP(Storage Register Clock),SRCLK可能標(biāo)為SHCP(Shift Register Clock),DS可能標(biāo)為SER(Serial Data Input),OE可能標(biāo)示為$overline{ ext{OE}}$或GND,Q7'可能標(biāo)示為QH'(Cascading Serial Output)。這些都是同一功能引腳的不同命名方式,理解其功能比記住具體名稱更為重要。
引腳功能詳細(xì)解釋
1. VCC (引腳 16): 電源正極
功能描述: VCC是芯片的電源輸入引腳,用于為內(nèi)部邏輯電路提供工作電壓。對于74LS595系列芯片,其典型工作電壓為5V。而對于74HC595系列芯片,它具有更寬的電源電壓范圍,通常在2V到6V之間。選擇合適的電源電壓對于芯片的穩(wěn)定工作至關(guān)重要。過高或過低的電壓都可能導(dǎo)致芯片損壞或功能異常。在實際應(yīng)用中,VCC引腳通常連接到微控制器或其他電路的VCC電源線上,并建議在VCC和GND之間放置一個0.1$mu$F的去耦電容,以濾除電源噪聲,確保芯片供電的穩(wěn)定性。去耦電容應(yīng)盡可能靠近芯片的VCC引腳放置。
2. GND (引腳 8 或 13): 接地
功能描述: GND是芯片的接地引腳,為所有內(nèi)部電路提供公共的參考電位。所有信號的電壓都是相對于GND來測量的。GND引腳必須牢固地連接到電路的公共地線上。與VCC引腳類似,GND的連接質(zhì)量直接影響芯片的抗干擾能力和工作穩(wěn)定性。
3. DS / SER (引腳 14): 串行數(shù)據(jù)輸入
功能描述: DS(Data Serial)或SER(Serial Data Input)是74595芯片的串行數(shù)據(jù)輸入引腳。所有要移入移位寄存器的數(shù)據(jù)都通過這個引腳逐位輸入。數(shù)據(jù)的輸入是同步的,即每當(dāng)移位寄存器時鐘(SRCLK/SHCP)引腳接收到一個上升沿時,DS引腳上的電平(高電平或低電平)就會被移入移位寄存器的最低位(Q0)。因此,在SRCLK/SHCP的每個上升沿到來之前,DS引腳上的數(shù)據(jù)必須保持穩(wěn)定。為了確保正確的位移,微控制器通常會在發(fā)送每個數(shù)據(jù)位之前,將DS引腳設(shè)置為相應(yīng)的高低電平,然后發(fā)送一個SRCLK/SHCP脈沖。
4. SRCLK / SHCP (引腳 11): 移位寄存器時鐘
功能描述: SRCLK(Shift Register Clock)或SHCP(Shift Clock Pulse)是移位寄存器時鐘輸入引腳。這個引腳控制著串行數(shù)據(jù)在移位寄存器內(nèi)部的移動。當(dāng)SRCLK/SHCP引腳從低電平變?yōu)楦唠娖剑ㄉ仙兀r,DS引腳上的當(dāng)前數(shù)據(jù)位被移入移位寄存器的Q0位,同時移位寄存器中原有的數(shù)據(jù)向高位移動一位(Q0移到Q1,Q1移到Q2,以此類推,Q7的數(shù)據(jù)被移出)。要將一個完整的8位字節(jié)移入74595,需要向SRCLK/SHCP引腳發(fā)送8個上升沿時鐘脈沖,并且在每個脈沖的上升沿到來之前,DS引腳上必須準(zhǔn)備好相應(yīng)的位數(shù)據(jù)。
5. RCLK / STCP (引腳 12): 存儲寄存器時鐘/鎖存時鐘
功能描述: RCLK(Register Clock)或STCP(Storage Clock Pulse)是存儲寄存器時鐘輸入引腳,也常被稱為鎖存時鐘。它的作用是將移位寄存器中的8位數(shù)據(jù)并行地傳輸(鎖存)到存儲寄存器中。與SRCLK不同,RCLK/STCP通常只需要一個上升沿脈沖。當(dāng)RCLK/STCP引腳從低電平變?yōu)楦唠娖剑ㄉ仙兀r,當(dāng)前移位寄存器中的全部8位數(shù)據(jù)將被同步復(fù)制到存儲寄存器。一旦數(shù)據(jù)被鎖存到存儲寄存器中,即使移位寄存器中的數(shù)據(jù)繼續(xù)發(fā)生變化(例如,移入新的數(shù)據(jù)),并行輸出引腳(Q0-Q7)上的數(shù)據(jù)也會保持穩(wěn)定,直到下一次RCLK/STCP的上升沿到來。這對于避免輸出數(shù)據(jù)的瞬時抖動非常重要,尤其是在驅(qū)動顯示器等對數(shù)據(jù)穩(wěn)定性有要求的設(shè)備時。
6. OE / overlinetextOE (引腳 10): 輸出使能
功能描述: OE(Output Enable)或$overline{ ext{OE}}$(Output Enable Bar,表示低電平有效)是并行輸出引腳(Q0-Q7)的使能控制引腳。這個引腳通常是一個低電平有效的輸入引腳,即當(dāng)OE引腳為低電平(0V)時,并行輸出引腳(Q0-Q7)被使能,它們的輸出狀態(tài)與存儲寄存器中的數(shù)據(jù)一致(高電平或低電平)。當(dāng)OE引腳為高電平(VCC)時,并行輸出引腳進入高阻態(tài)(High-Impedance State)。在高阻態(tài)下,這些引腳相當(dāng)于斷開連接,不輸出高電平也不輸出低電平,可以有效避免與其他設(shè)備之間的信號沖突。這個功能在多路復(fù)用或需要動態(tài)控制輸出的場合非常有用,例如在LED點陣顯示中,可以利用OE快速地開關(guān)LED的顯示,實現(xiàn)亮度調(diào)節(jié)或掃描顯示。在不需要輸出高阻態(tài)的情況下,OE引腳通常直接接地以始終使能輸出。
7. MR / overlinetextMR (引腳 10, 與OE共用一個引腳號,但在不同的芯片型號或數(shù)據(jù)手冊中,這個引腳可能被標(biāo)記為$overline{ ext{MR}}$或CLEAR): 主復(fù)位/清零
功能描述: 有些版本的74595芯片,特別是某些變體,會將引腳10設(shè)計為主復(fù)位(Master Reset,overlinetextMR)功能,而不是輸出使能。然而,更常見的74LS595和74HC595版本中,引腳10通常是OE。如果引腳10被設(shè)計為$overline{ ext{MR}},則它是一個低電平有效的異步清零引腳。當(dāng)overline{ ext{MR}}引腳被拉低(0V)時,移位寄存器和存儲寄存器中的所有數(shù)據(jù)位都會被異步清零為0。這意味著無論時鐘信號如何,只要overline{ ext{MR}}為低,芯片的輸出就會被強制清零。這個功能在系統(tǒng)初始化或需要快速重置芯片狀態(tài)時非常有用。??需要強調(diào)的是,對于大多數(shù)市面上常見的74LS595和74HC595芯片,引腳10是OE而不是overline{ ext{MR}}$。** 在使用時務(wù)必查閱具體芯片的數(shù)據(jù)手冊以確認(rèn)其功能。
8. Q0 - Q7 (引腳 15, 2, 3, 4, 5, 6, 7): 并行數(shù)據(jù)輸出
功能描述: Q0到Q7是74595芯片的8個并行數(shù)據(jù)輸出引腳。這些引腳直接連接到內(nèi)部的存儲寄存器,并受OE引腳的控制。當(dāng)OE引腳使能(通常為低電平)時,Q0-Q7引腳的輸出電平將反映存儲寄存器中對應(yīng)的8位數(shù)據(jù)。Q0是最低有效位(LSB),Q7是最高有效位(MSB)。這些引腳可以直接驅(qū)動LED、繼電器或其他TTL/CMOS兼容的數(shù)字輸入。在設(shè)計電路時,需要考慮這些輸出引腳的驅(qū)動能力(灌電流和拉電流),以確保它們能夠滿足所連接負(fù)載的需求。例如,驅(qū)動高亮LED時可能需要外部限流電阻。
9. Q7' / QH' (引腳 9): 串行數(shù)據(jù)輸出(級聯(lián)輸出)
功能描述: Q7'(Q seven prime)或QH'(Q High-bit serial output)是74595芯片的串行數(shù)據(jù)輸出引腳。這個引腳輸出的是移位寄存器中最高位(Q7)的數(shù)據(jù)。它的主要作用是用于將多個74595芯片進行級聯(lián)。當(dāng)一個芯片的Q7'引腳連接到下一個芯片的DS引腳時,可以實現(xiàn)對更多并行輸出的擴展。每當(dāng)一個SRCLK/SHCP脈沖到來時,移位寄存器中的數(shù)據(jù)向高位移動,Q7的數(shù)據(jù)被“推出”并通過Q7'引腳輸出。因此,通過這種級聯(lián)方式,我們可以使用微控制器的三個引腳(DS、SRCLK、RCLK)控制任意數(shù)量的74595芯片,從而控制更多的輸出設(shè)備。例如,連接兩個74595芯片可以提供16個并行輸出,連接三個可以提供24個,以此類推。這種級聯(lián)特性使得74595成為I/O擴展的理想選擇。
74595 芯片工作原理
理解74595的工作原理對于正確使用它至關(guān)重要。其核心在于兩個8位寄存器:移位寄存器和存儲寄存器,以及它們之間的協(xié)調(diào)工作。
1. 串行數(shù)據(jù)輸入與移位寄存器
數(shù)據(jù)通過DS引腳串行地進入芯片。每當(dāng)SRCLK(移位寄存器時鐘)引腳接收到一個上升沿時,DS引腳上的當(dāng)前邏輯狀態(tài)(高電平或低電平)就被讀入到移位寄存器的最低位(Q0)。同時,移位寄存器中原有的所有數(shù)據(jù)位都會向高位移動一位。例如,原本在Q0的數(shù)據(jù)會移到Q1,Q1的數(shù)據(jù)移到Q2,以此類推,直到Q6的數(shù)據(jù)移到Q7。而原來在Q7的數(shù)據(jù)則會通過Q7'(QH')引腳被移出芯片。
這個過程就像一列火車,每一節(jié)車廂代表一個數(shù)據(jù)位。DS是入口,SRCLK是推動火車前進的動力。當(dāng)車廂進入入口時,整列火車就向前移動一節(jié)。為了將一個完整的8位字節(jié)數(shù)據(jù)移入,微控制器需要執(zhí)行8次這樣的操作:
設(shè)置DS引腳為當(dāng)前位的數(shù)據(jù)。
發(fā)送一個SRCLK上升沿脈沖。
重復(fù)以上兩步8次,從最高位(MSB)或最低位(LSB)開始發(fā)送,取決于你的數(shù)據(jù)組織方式,但通常是MSB在前。
例如,如果要發(fā)送數(shù)據(jù)0b10110010
(二進制表示):
將DS設(shè)置為1(MSB)。發(fā)送SRCLK上升沿。
將DS設(shè)置為0。發(fā)送SRCLK上升沿。
將DS設(shè)置為1。發(fā)送SRCLK上升沿。 ...
將DS設(shè)置為0(LSB)。發(fā)送SRCLK上升沿。
在8個SRCLK脈沖之后,整個8位數(shù)據(jù)就會完全存儲在移位寄存器中。
2. 數(shù)據(jù)鎖存與存儲寄存器
僅僅將數(shù)據(jù)移入移位寄存器是不夠的,因為移位寄存器中的數(shù)據(jù)在后續(xù)的SRCLK脈沖中會不斷移動。為了使并行輸出穩(wěn)定,需要將移位寄存器中的數(shù)據(jù)“鎖存”到存儲寄存器中。
這個操作由RCLK(存儲寄存器時鐘)引腳控制。當(dāng)RCLK引腳接收到一個上升沿時,移位寄存器中的所有8位數(shù)據(jù)會同步、并行地復(fù)制到存儲寄存器中。一旦數(shù)據(jù)被鎖存,存儲寄存器中的數(shù)據(jù)將保持不變,直到下一次RCLK的上升沿到來,即使移位寄存器中的數(shù)據(jù)在此期間因為新的SRCLK脈沖而發(fā)生了變化。
這種兩級寄存器(移位寄存器和存儲寄存器)的設(shè)計是74595的關(guān)鍵優(yōu)勢之一。它允許在后臺準(zhǔn)備新的輸出數(shù)據(jù)(通過DS和SRCLK),而當(dāng)前顯示的輸出(通過存儲寄存器)仍然保持穩(wěn)定。只有當(dāng)所有新數(shù)據(jù)準(zhǔn)備就緒并需要更新時,才發(fā)送一個RCLK脈沖進行更新,從而避免了輸出抖動,提高了系統(tǒng)的穩(wěn)定性。
3. 并行輸出與輸出使能
存儲寄存器中的數(shù)據(jù)通過Q0-Q7引腳并行輸出。這些輸出引腳是三態(tài)的,其工作狀態(tài)受OE(輸出使能)引腳的控制。
當(dāng)OE引腳為低電平時,Q0-Q7引腳正常輸出存儲寄存器中的數(shù)據(jù)。
當(dāng)OE引腳為高電平時,Q0-Q7引腳進入高阻態(tài)。在高阻態(tài)下,這些引腳表現(xiàn)為斷路,不吸收電流也不提供電流,這對于在總線上連接多個設(shè)備或需要動態(tài)開關(guān)輸出的應(yīng)用非常有用。
在大多數(shù)簡單的應(yīng)用中,為了持續(xù)顯示輸出,OE引腳通常直接連接到GND。
4. 級聯(lián)工作
74595的Q7'(QH')引腳是移位寄存器的串行輸出,它輸出移位寄存器中Q7位的數(shù)據(jù)。這個引腳使得多個74595芯片可以方便地進行級聯(lián),以擴展并行輸出的數(shù)量。
當(dāng)多個74595級聯(lián)時,第一個芯片的Q7'引腳連接到第二個芯片的DS引腳,第二個芯片的Q7'連接到第三個芯片的DS引引腳,以此類推。所有級聯(lián)芯片的SRCLK和RCLK引腳通常都連接到同一個時鐘源(例如微控制器的相應(yīng)引腳)。OE引腳可以單獨控制每個芯片,也可以共同控制。
通過這種方式,微控制器只需要三個引腳(一個DS、一個SRCLK、一個RCLK)就可以控制任意數(shù)量的74595芯片,從而實現(xiàn)數(shù)十個甚至上百個并行輸出的控制,這對于驅(qū)動大型LED陣列、點陣顯示屏或多個數(shù)碼管顯示器等應(yīng)用場合非常有優(yōu)勢。
74LS595 與 74HC595 的區(qū)別
雖然74LS595和74HC595在功能引腳上完全兼容,但它們屬于不同的邏輯家族,因此在電氣特性上存在顯著差異。了解這些差異對于選擇合適的芯片至關(guān)重要。
1. 邏輯家族
74LS595: 屬于低功耗肖特基TTL(Transistor-Transistor Logic) 系列。TTL邏輯器件使用雙極性晶體管制造,其特點是速度相對較快,但功耗相對較高,且輸入輸出電平與CMOS不完全兼容,通常工作在5V電源。
74HC595: 屬于高速CMOS(Complementary Metal-Oxide-Semiconductor) 系列。CMOS邏輯器件使用MOSFET晶體管制造,其特點是功耗極低(尤其是在靜態(tài)時),輸入輸出阻抗高,且具有較寬的電源電壓范圍。
2. 電源電壓范圍
74LS595: 典型工作電壓為 5V(標(biāo)準(zhǔn)范圍可能在4.75V至5.25V)。對電源電壓要求相對嚴(yán)格。
74HC595: 具有更寬的電源電壓范圍,通常為 2V至6V。這使得它在電池供電或需要與不同電壓等級設(shè)備連接的場合更具靈活性。
3. 功耗
74LS595: 相對而言,功耗較高,尤其是在動態(tài)工作時。這主要是因為TTL器件在輸出高電平時仍然會有一定的靜態(tài)電流,并且在開關(guān)過程中會有較大的瞬態(tài)電流。
74HC595: 功耗極低,尤其是在靜態(tài)(沒有信號切換)時。CMOS器件的功耗主要來源于動態(tài)功耗,即在輸入信號切換時對內(nèi)部電容的充放電。在大多數(shù)應(yīng)用中,74HC595的功耗遠(yuǎn)低于74LS595,這對于電池供電系統(tǒng)或?qū)拿舾械膽?yīng)用至關(guān)重要。
4. 速度特性
74LS595: 速度相對較快,但與現(xiàn)代CMOS高速芯片相比,其最大時鐘頻率和傳播延遲可能略遜一籌。
74HC595: 盡管是CMOS,但它屬于高速CMOS系列,因此其開關(guān)速度和時鐘頻率可以與LS系列相媲美,甚至在某些情況下更快。其傳播延遲通常較短,允許在更高的頻率下工作。
5. 輸入/輸出電平
74LS595:
輸入高電平閾值 (textV_textIH) 較高,通常要求輸入電壓至少達(dá)到2V才被識別為高電平。
輸入低電平閾值 (textV_textIL) 較低,通常要求輸入電壓不高于0.8V才被識別為低電平。
輸出高電平 (textV_textOH) 典型值在2.7V以上。
輸出低電平 (textV_textOL) 典型值在0.5V以下。
輸出驅(qū)動電流(特別是灌電流,sink current)較大,能夠驅(qū)動多個TTL輸入。
74HC595:
輸入高電平閾值 (textV_textIH) 通常是VCC的70%左右,例如在5V供電下,約為3.5V。
輸入低電平閾值 (textV_textIL) 通常是VCC的30%左右,例如在5V供電下,約為1.5V。
輸出高電平 (textV_textOH) 接近VCC,通常在VCC-0.1V以內(nèi)。
輸出低電平 (textV_textOL) 接近GND,通常在GND+0.1V以內(nèi)。
輸出驅(qū)動電流相對較弱,但足以驅(qū)動大多數(shù)CMOS輸入或中小功率負(fù)載。對于驅(qū)動LED等負(fù)載,通常需要額外的限流電阻。
6. 抗干擾能力
74LS595: TTL器件在輸入端通常需要上拉電阻,對噪聲敏感度中等。
74HC595: CMOS器件具有高輸入阻抗,因此對輸入噪聲的敏感度較低,抗干擾能力較強。
7. 應(yīng)用場景建議
選擇74LS595:
當(dāng)你的系統(tǒng)主要采用5V TTL邏輯,且對功耗不敏感時。
需要較高的輸出灌電流來驅(qū)動某些特定TTL負(fù)載時。
對成本非常敏感時,有時LS系列會更便宜。
選擇74HC595:
當(dāng)你的系統(tǒng)采用3.3V或5V的CMOS邏輯,例如使用STM32、ESP32等微控制器時。
對功耗有嚴(yán)格要求,例如電池供電應(yīng)用。
需要寬電源電壓范圍的應(yīng)用。
對噪聲容限和抗干擾能力有較高要求時。
總結(jié): 盡管兩者功能相同,但74HC595通常是更現(xiàn)代、更通用、功耗更低的選擇,尤其是在與微控制器(通常是CMOS器件)接口時,其電平兼容性更好。74LS595則在一些遺留系統(tǒng)或特定TTL驅(qū)動需求下仍有應(yīng)用。
74595 芯片的典型應(yīng)用
74595芯片因其獨特的串行輸入/并行輸出特性,在許多電子設(shè)計中都發(fā)揮著關(guān)鍵作用。以下是一些典型的應(yīng)用場景:
1. 驅(qū)動多個LED
這是74595最常見也最直觀的應(yīng)用之一。微控制器通常只有有限的GPIO引腳,如果直接驅(qū)動大量的LED(例如8個、16個、甚至更多),會迅速耗盡微控制器的引腳資源。通過使用74595,微控制器只需要3個引腳(DS、SRCLK、RCLK)就可以控制8個LED。通過級聯(lián)多個74595,可以輕松控制數(shù)十個甚至上百個LED,這在LED指示燈陣列、燈光效果、簡易跑馬燈等應(yīng)用中非常普遍。
應(yīng)用原理: 將每個74595的Q0-Q7輸出引腳通過限流電阻連接到LED的陽極(共陰連接)或陰極(共陽連接)。微控制器將待點亮的LED狀態(tài)(1表示亮,0表示滅)打包成一個字節(jié),并通過DS和SRCLK串行發(fā)送到74595的移位寄存器。數(shù)據(jù)發(fā)送完畢后,發(fā)送一個RCLK脈沖將數(shù)據(jù)鎖存到存儲寄存器,從而點亮或熄滅相應(yīng)的LED。
2. 驅(qū)動數(shù)碼管顯示器(七段數(shù)碼管或點陣數(shù)碼管)
數(shù)碼管是另一種典型的并行驅(qū)動設(shè)備。一個七段數(shù)碼管通常需要7個段(a-g)和一個小數(shù)點(dp)共8個引腳來控制。如果直接用微控制器驅(qū)動,每個數(shù)碼管就需要8個引腳。使用74595,一個芯片可以驅(qū)動一個數(shù)碼管的所有段,極大地節(jié)省了微控制器的I/O。
應(yīng)用原理: 74595的Q0-Q7輸出引腳分別連接到數(shù)碼管的a-g和dp段。微控制器發(fā)送代表數(shù)字或字符段碼的字節(jié)到74595,然后鎖存,即可顯示對應(yīng)的數(shù)字。在多位數(shù)碼管顯示中,通常會采用多路復(fù)用(Multiplexing)技術(shù),即用多個74595分別驅(qū)動每個數(shù)碼管的段,同時用微控制器的另外引腳(或另一個74595)控制每個數(shù)碼管的公共端(共陽極或共陰極),并通過快速輪流刷新實現(xiàn)多位顯示。
3. 驅(qū)動LCD顯示器(特別是字符型LCD,如1602 LCD)
許多字符型LCD顯示模塊,如常用的1602或2004 LCD,通常有8位并行數(shù)據(jù)接口(D0-D7)。直接連接需要占用微控制器8個GPIO口,加上RS、RW、E等控制線,總共需要11個引腳。通過74595,可以將8位數(shù)據(jù)線簡化為串行輸入,從而大幅減少微控制器與LCD連接的引腳數(shù)量。
應(yīng)用原理: 74595的Q0-Q7連接到LCD的D0-D7數(shù)據(jù)線。RS、RW、E線可以直接由微控制器控制,或者也可以通過額外的74595引腳來控制,但通常為了時序的精確控制,RS和E會直接連接到微控制器。通過這種方式,微控制器可以用串行方式向74595發(fā)送LCD指令或數(shù)據(jù),再由74595并行輸出給LCD。
4. 鍵盤掃描(小型矩陣鍵盤)
在一些小型矩陣鍵盤(如4x4鍵盤)中,74595可以用于掃描鍵盤的行或列。通過驅(qū)動74595的輸出引腳,逐行或逐列地驅(qū)動鍵盤,然后讀取微控制器的輸入引腳,從而判斷按鍵狀態(tài)。
應(yīng)用原理: 將74595的Q0-Q7連接到鍵盤的行線或列線。通過每次只驅(qū)動一個輸出引腳為高電平(或其他邏輯),然后讀取另一組輸入引腳的電平,來判斷哪個按鍵被按下。例如,將74595的輸出連接到4x4矩陣鍵盤的4列,然后將4行連接到微控制器的4個輸入引腳,通過掃描每列來檢測行輸入。
5. 級聯(lián)擴展 I/O 口
這是74595最強大的功能之一。通過Q7'(QH')引腳,可以將多個74595芯片串聯(lián)起來,形成一個更長的移位寄存器,從而實現(xiàn)無限量的I/O擴展(理論上無限,實際上受限于時序和信號完整性)。
應(yīng)用原理: 第一個74595的Q7'連接到第二個74595的DS,第二個的Q7'連接到第三個的DS,依此類推。所有芯片的SRCLK和RCLK都并聯(lián)到微控制器相應(yīng)的引腳上。微控制器一次性發(fā)送N個字節(jié)(N為芯片數(shù)量)的數(shù)據(jù)流,這些數(shù)據(jù)會依次經(jīng)過所有芯片的移位寄存器,直到所有數(shù)據(jù)到位。最后,一個RCLK脈沖將所有芯片的數(shù)據(jù)同步鎖存到各自的存儲寄存器,實現(xiàn)同時更新所有輸出。這種方法在控制大量獨立輸出(如LED陣列、繼電器陣列)時非常有效。
6. 并行數(shù)據(jù)轉(zhuǎn)換與存儲
在某些需要將串行數(shù)據(jù)流轉(zhuǎn)換為并行數(shù)據(jù),并保持輸出一段時間的場合,74595也很有用。例如,從串行通信接口(SPI、UART等)接收到的數(shù)據(jù)需要并行輸出給其他設(shè)備。
應(yīng)用原理: 微控制器或?qū)S么薪涌趯?shù)據(jù)串行發(fā)送到74595,然后74595將其轉(zhuǎn)換為并行數(shù)據(jù),供后端設(shè)備使用。鎖存功能確保了并行數(shù)據(jù)在整個操作周期中的穩(wěn)定性。
7. 數(shù)字信號多路分配
雖然不是其主要設(shè)計用途,但在某些情況下,74595也可以用于將一個串行輸入信號,通過移位和鎖存,并行地分配到不同的輸出線上。例如,將一個配置字通過串行方式寫入,然后將其不同位用于控制不同功能。
總結(jié): 74595芯片以其簡單高效的串并轉(zhuǎn)換能力,成為微控制器擴展I/O的“瑞士軍刀”。無論是簡單的LED驅(qū)動,還是復(fù)雜的顯示控制,甚至是大規(guī)模的I/O擴展,它都提供了一個成本效益高、易于實現(xiàn)的解決方案。
74595 芯片使用注意事項與編程思路
正確使用74595芯片不僅需要理解其引腳功能,還需要掌握相應(yīng)的編程時序和一些電路設(shè)計上的注意事項。
1. 時序圖與控制順序
理解74595的時序圖是編程的關(guān)鍵。雖然不同型號的數(shù)據(jù)手冊可能略有差異,但核心原理是一致的:
步驟一:準(zhǔn)備數(shù)據(jù)
在每次SRCLK上升沿到來之前,將DS引腳設(shè)置為待發(fā)送的當(dāng)前數(shù)據(jù)位(高電平或低電平)。數(shù)據(jù)位的順序通常從最高位(MSB)開始發(fā)送,但也可以從最低位(LSB)開始,只要保證微控制器和74595的解析順序一致即可。
步驟二:移入數(shù)據(jù)
發(fā)送一個SRCLK脈沖:將SRCLK引腳從低電平拉高(上升沿),然后拉低。這個上升沿會將DS引腳上的數(shù)據(jù)移入移位寄存器。
重復(fù)步驟一和步驟二共8次(對于8位數(shù)據(jù))。完成8次操作后,8位數(shù)據(jù)就全部進入了移位寄存器。
步驟三:鎖存數(shù)據(jù)
發(fā)送一個RCLK脈沖:將RCLK引腳從低電平拉高(上升沿),然后拉低。這個上升沿會將移位寄存器中的數(shù)據(jù)并行地傳輸?shù)酱鎯拇嫫?,并更新Q0-Q7輸出。
步驟四:控制輸出使能(可選)
如果需要控制輸出的開啟/關(guān)閉,在數(shù)據(jù)傳輸完成后,根據(jù)需要設(shè)置OE引腳的電平。通常OE引腳接GND,則無需額外控制。如果用于動態(tài)使能或多路復(fù)用,則根據(jù)需求進行高低電平切換。
典型編程偽代碼示例 (C語言,基于Arduino/STM32等微控制器):
// 假設(shè)微控制器引腳定義#define DS_PIN PA0 // 對應(yīng) 74595 的 DS/SER#define SRCLK_PIN PA1
// 對應(yīng) 74595 的 SRCLK/SHCP#define RCLK_PIN PA2 // 對應(yīng) 74595 的 RCLK/STCP#define OE_PIN PA3
// 對應(yīng) 74595 的 OE (如果需要控制)// 假設(shè)已經(jīng)初始化了GPIO引腳為輸出模式void write_595_byte(uint8_t data) {
// 確保時鐘線初始為低電平
digitalWrite(RCLK_PIN, LOW);
digitalWrite(SRCLK_PIN, LOW); // 循環(huán)發(fā)送8位數(shù)據(jù)
for (int i = 0; i < 8; i++) { // 從最高位 (MSB) 開始發(fā)送
// 將當(dāng)前位數(shù)據(jù)發(fā)送到DS引腳
digitalWrite(DS_PIN, (data & 0x80) ? HIGH : LOW); // 0x80 = 10000000b
// 發(fā)送SRCLK上升沿
digitalWrite(SRCLK_PIN, HIGH); // 小延時確保時序穩(wěn)定,通常不需要顯式延時,
除非MCU速度非???br/> // delayMicroseconds(1);
digitalWrite(SRCLK_PIN, LOW); // 移位到下一位
data <<= 1; // 左移一位,將下一位移到MSB位置
} // 鎖存數(shù)據(jù)到存儲寄存器
digitalWrite(RCLK_PIN, HIGH); // 小延時
// delayMicroseconds(1);
digitalWrite(RCLK_PIN, LOW); // 可選:如果OE不是直接接地,可以在這里控制
// digitalWrite(OE_PIN, LOW); // 使能輸出}// 示例用法:點亮Q0和Q7// write_595_byte(0b10000001);
// 對應(yīng)十進制 129// 級聯(lián)兩個74595的例子 (發(fā)送兩個字節(jié))void write_595_bytes_cascaded(uint8_t data1,
uint8_t data2) { // 確保時鐘線初始為低電平
digitalWrite(RCLK_PIN, LOW);
digitalWrite(SRCLK_PIN, LOW); // 先發(fā)送給第二個芯片的數(shù)據(jù),它會先通過第一個芯片
// 循環(huán)發(fā)送第二個字節(jié)
for (int i = 0; i < 8; i++) {
digitalWrite(DS_PIN, (data2 & 0x80) ? HIGH : LOW);
digitalWrite(SRCLK_PIN, HIGH);
digitalWrite(SRCLK_PIN, LOW);
data2 <<= 1;
} // 再發(fā)送給第一個芯片的數(shù)據(jù)
// 循環(huán)發(fā)送第一個字節(jié)
for (int i = 0; i < 8; i++) {
digitalWrite(DS_PIN, (data1 & 0x80) ? HIGH : LOW);
digitalWrite(SRCLK_PIN, HIGH);
digitalWrite(SRCLK_PIN, LOW);
data1 <<= 1;
} // 鎖存所有芯片的數(shù)據(jù)
digitalWrite(RCLK_PIN, HIGH);
digitalWrite(RCLK_PIN, LOW);
}
2. 電源與去耦
電源穩(wěn)定性: 為74595提供穩(wěn)定的電源電壓至關(guān)重要。電源波動或噪聲可能導(dǎo)致數(shù)據(jù)傳輸錯誤或芯片工作不穩(wěn)定。
去耦電容: 在74595的VCC和GND引腳之間,應(yīng)盡可能靠近芯片放置一個0.1$mu$F的陶瓷去耦電容。這個電容能夠濾除電源線上的高頻噪聲,并為芯片在瞬態(tài)開關(guān)時提供瞬時電流,從而確保芯片的穩(wěn)定工作。對于多個74595芯片,每個芯片都應(yīng)該有一個獨立的去耦電容。
3. 輸出限流電阻
當(dāng)74595的輸出引腳直接驅(qū)動LED時,必須在每個LED和74595輸出之間串聯(lián)一個限流電阻。這是為了限制流過LED的電流,防止LED燒毀,也防止74595的輸出引腳過載。電阻值根據(jù)LED的類型、正向電壓和所需電流以及電源電壓來計算。
計算公式:R=(textVCC?textV?textF)/textI?textF
其中,VCC是電源電壓,$ ext{V}{ ext{F}}是LED的正向電壓(通常為1.8V?3.5V), ext{I}{ ext{F}}$是LED的正向電流(通常為5mA-20mA)。
4. 未使用引腳處理
對于不使用的輸入引腳(例如,如果OE始終接地),應(yīng)該將其連接到確定的邏輯電平(VCC或GND),而不是懸空。懸空的輸入引腳容易受到噪聲干擾,導(dǎo)致芯片行為異常。對于74595而言,如果OE引腳不需要動態(tài)控制,通常將其直接接地。
未使用的輸出引腳可以懸空,但如果設(shè)計中考慮到電磁兼容性(EMC)問題,有時也會連接到小電阻再接地,以避免成為天線,但這通常不是必須的。
5. 級聯(lián)時的時序考慮
在級聯(lián)多個74595時,所有芯片的SRCLK和RCLK引腳通常是并聯(lián)的,由微控制器統(tǒng)一控制。
數(shù)據(jù)發(fā)送順序:當(dāng)向多個級聯(lián)的74595發(fā)送數(shù)據(jù)時,需要從最遠(yuǎn)端的74595(也就是數(shù)據(jù)最終會流到其Q7',然后到下一個芯片DS的那個芯片)開始發(fā)送數(shù)據(jù)。例如,如果串聯(lián)了A、B、C三個芯片(微控制器->A->B->C),微控制器應(yīng)該先發(fā)送給C的數(shù)據(jù),然后是B的數(shù)據(jù),最后是A的數(shù)據(jù)。因為每次SRCLK脈沖,數(shù)據(jù)都會向前推進一位,所以最先發(fā)送的數(shù)據(jù)會“穿過”前面的芯片,最終到達(dá)最遠(yuǎn)端的芯片。
一旦所有數(shù)據(jù)位都被移入到所有級聯(lián)芯片的移位寄存器中,再發(fā)送一個RCLK脈沖,所有芯片的存儲寄存器會同時更新。
6. 功耗考慮
雖然74HC595的靜態(tài)功耗很低,但在高頻切換時,動態(tài)功耗會增加。
驅(qū)動大量LED或其他高電流負(fù)載時,應(yīng)確保電源能夠提供足夠的電流。單個74595的輸出驅(qū)動能力有限,如果每個輸出都要驅(qū)動較大的電流,總電流可能會超過芯片或電源的承載能力。必要時,可能需要外部驅(qū)動電路,如晶體管陣列(ULN2003等)或MOSFET來放大驅(qū)動能力。
7. 復(fù)位功能(如果可用)
如果您的74595芯片帶有$overline{ ext{MR}}(主復(fù)位)引腳(通常是引腳10,與OE共用),在系統(tǒng)上電初始化時,可以通過拉低overline{ ext{MR}}引腳來清空所有寄存器,確保芯片處于已知狀態(tài)。在正常工作時,應(yīng)將overline{ ext{MR}}拉高(連接到VCC)以避免誤觸發(fā)復(fù)位。??再次強調(diào),對于大部分常見的74LS595/74HC595,引腳10是OE而不是overline{ ext{MR}}$。**
總結(jié): 74595是一款非常實用的芯片,但它的使用也需要遵循一定的規(guī)范和時序。掌握其工作原理、引腳功能以及編程時序,結(jié)合電路設(shè)計中的注意事項,可以幫助開發(fā)者高效地利用它來擴展微控制器的I/O能力,從而實現(xiàn)各種復(fù)雜的控制和顯示功能。通過串行通信和并行輸出的巧妙結(jié)合,74595極大地簡化了硬件連接,是數(shù)字電路設(shè)計中不可或缺的工具。
責(zé)任編輯:David
【免責(zé)聲明】
1、本文內(nèi)容、數(shù)據(jù)、圖表等來源于網(wǎng)絡(luò)引用或其他公開資料,版權(quán)歸屬原作者、原發(fā)表出處。若版權(quán)所有方對本文的引用持有異議,請聯(lián)系拍明芯城(marketing@iczoom.com),本方將及時處理。
2、本文的引用僅供讀者交流學(xué)習(xí)使用,不涉及商業(yè)目的。
3、本文內(nèi)容僅代表作者觀點,拍明芯城不對內(nèi)容的準(zhǔn)確性、可靠性或完整性提供明示或暗示的保證。讀者閱讀本文后做出的決定或行為,是基于自主意愿和獨立判斷做出的,請讀者明確相關(guān)結(jié)果。
4、如需轉(zhuǎn)載本方擁有版權(quán)的文章,請聯(lián)系拍明芯城(marketing@iczoom.com)注明“轉(zhuǎn)載原因”。未經(jīng)允許私自轉(zhuǎn)載拍明芯城將保留追究其法律責(zé)任的權(quán)利。
拍明芯城擁有對此聲明的最終解釋權(quán)。