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