默認分類(lèi) 2009-02-25 19:13:47 閱讀557 評論0 字號:大中小 訂閱
|
LED驅動(dòng)芯片74HC595功能及用法 作者:草原驕子 2008年5月10日 23:20 74HC595,是我們做LED顯示屏最常用的芯片,本人對其功能做了簡(jiǎn)單說(shuō)明,并介紹了用MCS51單片機如何實(shí)現數據的顯示。 74HC595芯片是8位串行輸入并行輸出移位寄存/鎖存器。人們利用了其這些功能,方便的實(shí)現了LED的顯示。 74HC595外形圖 ______ QB--|1 16|--Vcc QC--|2 15|--QA QD--|3 14|--SI QE--|4 13|--/G QF--|5 12|--RCK QG--|6 11|--SCK QH--|7 10|--/SCLR GND- |8 9|--QH' | _____ | 74595的數據端: QA--QH: 八位并行輸出端,可以直接8顆LED等做為8個(gè)象素點(diǎn),也可以控制數碼管的8個(gè)段。 QH': 級聯(lián)輸出端。我將它接下一個(gè)595的SI端。 SI: 串行數據輸入端。 74595的控制端說(shuō)明: /SCLR(10腳): 低電平時(shí)將移位寄存器的數據清零。通常我將它接Vcc。 SCK(11腳): 移位時(shí)鐘CLK,上升沿時(shí)數據寄存器的數據移位。QA-->QB-->QC-->...-->QH;下降沿移位寄存器數據不變。(脈沖寬度:5V時(shí),大于幾十納秒就行了。我通常都選微秒級) RCK(12腳): 鎖存時(shí)鐘STB,上升沿時(shí)移位寄存器的數據進(jìn)入數據存儲寄存器,下降沿時(shí)存儲寄存器數據不變。通常我將RCK置為低點(diǎn)平,當移位結束后,在RCK端產(chǎn)生一個(gè)正脈沖(5V時(shí),大于幾十納秒就行了。我通常都選微秒級),更新顯示數據。 /G(13腳): 高電平時(shí)禁止輸出(高阻態(tài))。在LED顯示應用中通常接地。 注1)74164和74595功能相仿,都是8位串行輸入轉并行輸出移位寄存器。74164的驅動(dòng)電流(25mA)比74595(35mA)的要小,14腳封裝,體積也小一些。 2)74595的主要優(yōu)點(diǎn)是具有數據存儲寄存器,在移位的過(guò)程中,輸出端的數據可以保持不變。這在串行速度慢的場(chǎng)合很有用處,LED燈沒(méi)有閃爍感。 3)595是串入并出帶有鎖存功能移位寄存器,它的使用方法很簡(jiǎn)單,在正常使用時(shí)SCLR為高電平, G為低電平。從SER每輸入一位數據,串行輸595是串入并出帶有鎖存功能移位寄存器,它的使用方法很簡(jiǎn)單,如下面的真值表,在正常使用時(shí)SCLR為高電平, G為低電平。從SER每輸入一位數據,串行輸入時(shí)鐘SCK上升沿有效一次,直到八位數據輸入完畢,輸出時(shí)鐘上升沿有效一次,此時(shí),輸入的數據就被送到了輸出端。入時(shí)鐘SCK上升沿有效一次,直到八位數據輸入完畢,輸出時(shí)鐘上升沿有效一次,此時(shí),輸入的數據就被送到了輸出端。
下面用簡(jiǎn)單的文字描述595的時(shí)序: 第一步:目的: 將要準備輸入的位數據移入74HC595數據輸入端上。 方法: 將一位數據送到595的SI端 第二步:目的:將位數據逐位移入74HC595,即數據串入 方法:CLK產(chǎn)生一上升沿,將數據移入74HC595中.從低到高,重復第一步,等所有數據都移位完成,執行第三步 第三步:目的:并行輸出數據。即數據并出 方法:STB產(chǎn)生一上升沿,將移入數據寄存器中的數據 送入到輸出鎖存器。
用MCS51單片機實(shí)現上述過(guò)程的具體編程方法為: ;DISBUF 顯示數據緩存單元首地址 ; N 顯示數據的字節數
;*****接口定義: SER EQU P1.0 ;串行數據輸入(595-14) SRCLK EQU P1.2 ;移位時(shí)鐘脈沖(595-11) STB_595 EQU P1.1 ;輸出鎖存器控制脈沖(595-12) ;--------------------------- MAIN: ...... CLR STB_595 LCALL SEND0 ;向595輸出數據 SETB STB_595 ......... ;如果是掃描顯示的,增加一下程序 CLR OE ; OE位顯示使能,這里表示關(guān)閉,禁止顯示 LCALL SCAN ;調用行掃描自程序,打開(kāi)相應的顯示行 SETB OE ;允許顯示 .......... ;--------------------- SEND0: MOV R4,#N ;發(fā)送一行,N字節數據 LOP: CLR C ;清C方便每個(gè)字節的移動(dòng) MOV R2,#8 ;每個(gè)字節有8位 MOV A,@R0 ;將顯存的字節的單元移入A CPL A LCALL SEND1B INC R0 DJNZ R4,LOP RET SEND1B: CLR SRCLK ; RLC A ;將每個(gè)字節移位 MOV SER,C ;將移入C的位移入信號端 MOV GDD,C SETB SRCLK ;觸發(fā)串行CP端 DJNZ R2,SEND1B ;每個(gè)字節位移8次夠了沒(méi)有 RET ??;------------------- 以上是本人的一點(diǎn)粗淺經(jīng)驗,不夠嚴密。僅供學(xué)習參考之用
|
聯(lián)系客服