74hc595驅(qū)動led點陣原理及74HC595在8x8LED點陣中的應(yīng)用
只有1個移位寄存器,但有1+8個,共9個鎖存器。其中第1個鎖存器可以理解為中轉(zhuǎn)前置鎖存器,它并沒有連接Q0-Q7,后面8個鎖存器連接了Q0-Q7。
當(dāng)?shù)?次SCK和LCK時,移位寄存器中=第1位數(shù)據(jù),前置鎖存器=第1位數(shù)據(jù)。但是并沒有進入到Q0-Q7所對應(yīng)的鎖存器當(dāng)中去。Q0到Q7=NON。
當(dāng)?shù)?次SCK和LCK時,移位寄存器中=第2位數(shù)據(jù),前置鎖存器=第2位數(shù)據(jù)。同時前置鎖存器把之前的第1位數(shù)據(jù)才更新到Q0對應(yīng)的鎖存器當(dāng)中去。此時Q0=第1位。Q1到Q7=NON。
當(dāng)?shù)?次SCK和LCK時,移位寄存器中=第3位數(shù)據(jù),前置鎖存器=第3位數(shù)據(jù)。同時前置鎖存器把之前的第2位數(shù)據(jù)才更新到Q0對應(yīng)的鎖存器當(dāng)中去,Q0把之前的第1位數(shù)據(jù)給Q1,此時Q0=第2位。Q1=第1位。Q2到Q7=NON。
當(dāng)循環(huán)8次后(給出8個SCK和8個LCK后),移位寄存器中=第8位數(shù)據(jù),前置鎖存器=第8位數(shù)據(jù)。但Q0-Q6里分別對應(yīng)第7位-第1位數(shù)據(jù),第8位數(shù)據(jù)并沒有更新到Q0,同時Q7=NON。
這就是為什么給出循環(huán)8次的程序,總是不能顯示第8位數(shù)據(jù)的原因。
因此要全部顯示8位,需要再多給一次SCK和LCK。
那么問題來了,最后給這次SCK和LCK,全部顯示8位了。但是:移位寄存器和前置鎖存器中又鎖定了8位之外的第9位無用數(shù)據(jù)。
那么我們就可以用到SCLR(10腳)了。
給SCLR一個下降沿就可以了。這個下降沿同時清空移位寄存器和前置鎖存器。但并不立即生效!只有產(chǎn)生下一個SCK時,才生效。
所以,SCLR時,前置鎖存器和Q0-Q7鎖存器依然鎖定的是原來的數(shù)據(jù),直到下一個SCK之前,不會改變輸出內(nèi)容。
而等我們下一次再傳送一個新的8位數(shù)據(jù)時,在第一個SCK的時候,SCLR生效之后才接收新數(shù)據(jù),因為不會影響接收新數(shù)據(jù)。
這個過程我稱之為“收口操作“。
74HC595在【8x8LED點陣】中的應(yīng)用
每個燈就相當(dāng)于坐標圖中的一個點,具有唯一獨特的坐標位置,這樣就可以通過引腳的信號來控制每個燈的關(guān)和開
col管腳連接的是P0的八個引腳,row管腳連接的是595的八位并行輸出端。
實驗中采取的是逐列顯示,通過P0控制八列每列逐列顯示,其間通過595位移緩存器控制每列要亮的led燈。
74HC595是串入并出帶有鎖存功能移位寄存器.形象來說,14引腳是搬運工,11是進廠守門員,12是出廠守門員,11出現(xiàn)上升沿時,從14引腳輸入一位數(shù)據(jù),一共重復(fù)八次12引腳上升沿時,將之前進來的八位數(shù)據(jù)分別從1到7引腳輸出OE為使能端,低電平時使輸出有效。