多數(shù)人也都知道,51單片機的入門第一篇就是led燈的操作,當(dāng)然了,那也是最基本的操作。上次玩完led燈,就相當(dāng)于是入門,今天我們來看看數(shù)碼管,對于數(shù)碼管,大家可以是再熟悉不過了,生活中處處都可以見到各種各樣的數(shù)碼管,但是你知道其內(nèi)部的原理嗎,其實還是相當(dāng)簡單的,老樣子,我們要玩什么,當(dāng)然是先看看這個部分的原理圖了:
由原理圖可知,八個數(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ù)里面的,相信大家自己可以完成:
實驗效果