由原理圖可知,八個(gè)數(shù)碼管并不是直接接在單片機(jī)的IO口上的,而是用了74HC595芯片,那么我們要想驅(qū)動(dòng)數(shù)碼管,就必須了解595芯片到底是個(gè)什么玩意兒,大多數(shù)開(kāi)發(fā)板并沒(méi)有使用這個(gè)芯片。
74HC595
74HC595芯片的作用就是把串行的信號(hào)轉(zhuǎn)為并行的信號(hào)。關(guān)于這個(gè)芯片的詳細(xì)信息以及時(shí)序問(wèn)題,我不在這里詳細(xì)敘述,大家去問(wèn)百度去,百度一大堆資料。
只談?wù)?4HC595芯片的使用步驟
第一步:將要準(zhǔn)備輸入的唯一數(shù)據(jù)移入74HC595數(shù)據(jù)輸入端上。送位數(shù)據(jù)到595芯片。
第二步:將位數(shù)據(jù)逐步移入74HC595,即SCL產(chǎn)生一個(gè)上升沿,將SI上的數(shù)據(jù)移入74HC595移位寄存器中,先送低位,再送高位。
第三步:并行輸出數(shù)據(jù),即數(shù)據(jù)并出。RCK產(chǎn)生一上升沿,將由QA-QH上已移入數(shù)據(jù)寄存器中的數(shù)據(jù)送入輸出鎖存器。
根據(jù)原理圖可以知道,數(shù)碼管驅(qū)動(dòng)設(shè)計(jì)到兩個(gè)74HC595芯片,一個(gè)芯片的輸出用于控制數(shù)碼管的位選,另一個(gè)芯片的輸出控制數(shù)碼管的段選,兩個(gè)芯片的12號(hào)引腳同時(shí)受單片機(jī)的P2.5引腳控制,兩個(gè)芯片的11號(hào)引腳同時(shí)受到單片機(jī)的P2.6引腳控制,段選數(shù)據(jù)和位選數(shù)據(jù)都是通過(guò)單片機(jī)引腳P2.7發(fā)送,在控制時(shí)鐘引腳P2.6的控制下,當(dāng)P2.6出現(xiàn)上升沿時(shí),單片機(jī)通過(guò)P2.7引腳向505芯片內(nèi)部發(fā)送數(shù)據(jù),應(yīng)先發(fā)送位選數(shù)據(jù),當(dāng)八位位選數(shù)
據(jù)在P2.7引腳產(chǎn)生的8個(gè)上升沿的作用下,從高位到低位一次存于Q7——Q0上。感覺(jué)說(shuō)了這么多,已經(jīng)有人懵逼了,覺(jué)得很煩,算啦,直接上代碼大家瞅瞅吧,我只給大家看看驅(qū)動(dòng)代碼,至于main主函數(shù)里面的,相信大家自己可以完成:
實(shí)驗(yàn)效果