本文旨在介紹單片機入門的基礎知識,為初接觸或即將接觸單片的新手提供一個入門指導。本文章會陸續(xù)推出,隔幾天一個章節(jié)。希望對廣大即將接觸單片機的人有所幫助,如果有錯誤歡迎回帖指出與本人交流或加入QQ群143586739.
由于電腦系統(tǒng)重裝,PROTEUS沒有找到破解版,本章就不做仿真了,直接上電路圖和程序講解。
上一章簡單介紹了數(shù)碼管的靜態(tài)顯示,主要是講解數(shù)碼管顯示數(shù)據(jù)的原理,這種方法的優(yōu)點是硬件電路簡單編程思路明晰,但是卻浪費單片機的IO口。數(shù)碼管的動態(tài)顯示(使用專用芯片)可以做到節(jié)省IO的目的。
動態(tài)顯示的原理:動態(tài)顯示的特點是將所有位數(shù)碼管的段選線并聯(lián)在一起,由位選線控制是哪一位數(shù)碼管有效。選亮數(shù)碼管采用動態(tài)掃描顯示。所謂動態(tài)掃描顯示即輪流向各位數(shù)碼管送出字形碼和相應的位選,利用發(fā)光管的余輝和人眼視覺暫留作用,使人的感覺好像各位數(shù)碼管同時都在顯示。

圖中使用兩片74HC595驅(qū)動4位數(shù)碼管(本例其實可以驅(qū)動8位),DAT,RCK,CLK是直接連接到單片機引腳的,由此可以看出只需要使用3個IO接口驅(qū)動8位數(shù)碼管,大大節(jié)省了IO資源。本例中使用共陽數(shù)碼管,調(diào)節(jié)R38,R39,R40,R41可以改變字段的亮度。
硬件分析:
數(shù)碼管的段選都是連在一起的,顯示的時候通過片選來確定要點亮哪一片數(shù)碼管,然后讓片選要依次選通就可以實現(xiàn)數(shù)據(jù)動態(tài)顯示。

這里用的是LPC11C14單片機,圖中的宏定義使用了三目運算符。

第52行,寫數(shù)據(jù)前將CLK拉低;
第53行,先判斷高位,高位有數(shù)據(jù)則將數(shù)據(jù)送至74HC595;
第55行,數(shù)據(jù)移位;

該函數(shù)的目的是讓RCK產(chǎn)生一個上升沿,因為74HC595在RCK處于上升沿的時候才將數(shù)據(jù)鎖存并顯示。

第91,92,93,94,95行,分離數(shù)據(jù)的個,十,百位;
第97,98行,控制片選;
動態(tài)顯示就是這個效果:

|