由原理圖可知,八個(ge) 數碼管並不是直接接在單片機的IO口上的,而是用了74HC595芯片,那麽(me) 我們(men) 要想驅動數碼管,就必須了解595芯片到底是個(ge) 什麽(me) 玩意兒(er) ,大多數開發板並沒有使用這個(ge) 芯片。
74HC595
74HC595芯片的作用就是把串行的信號轉為(wei) 並行的信號。關(guan) 於(yu) 這個(ge) 芯片的詳細信息以及時序問題,我不在這裏詳細敘述,大家去問百度去,百度一大堆資料。
隻談談74HC595芯片的使用步驟
第一步:將要準備輸入的唯一數據移入74HC595數據輸入端上。送位數據到595芯片。
第二步:將位數據逐步移入74HC595,即SCL產(chan) 生一個(ge) 上升沿,將SI上的數據移入74HC595移位寄存器中,先送低位,再送高位。
第三步:並行輸出數據,即數據並出。RCK產(chan) 生一上升沿,將由QA-QH上已移入數據寄存器中的數據送入輸出鎖存器。
根據原理圖可以知道,數碼管驅動設計到兩(liang) 個(ge) 74HC595芯片,一個(ge) 芯片的輸出用於(yu) 控製數碼管的位選,另一個(ge) 芯片的輸出控製數碼管的段選,兩(liang) 個(ge) 芯片的12號引腳同時受單片機的P2.5引腳控製,兩(liang) 個(ge) 芯片的11號引腳同時受到單片機的P2.6引腳控製,段選數據和位選數據都是通過單片機引腳P2.7發送,在控製時鍾引腳P2.6的控製下,當P2.6出現上升沿時,單片機通過P2.7引腳向505芯片內(nei) 部發送數據,應先發送位選數據,當八位位選數
據在P2.7引腳產(chan) 生的8個(ge) 上升沿的作用下,從(cong) 高位到低位一次存於(yu) Q7——Q0上。感覺說了這麽(me) 多,已經有人懵逼了,覺得很煩,算啦,直接上代碼大家瞅瞅吧,我隻給大家看看驅動代碼,至於(yu) main主函數裏麵的,相信大家自己可以完成:
實驗效果