跟我學51單片機(五):單片機動態(tài)掃描驅動數碼管
74HC595 最多需要5 根控制線, 即SDI(Pin14)、SCK(Pin11)、RCK(Pin12)、 (Pin10)和
(Pin13)。圖2 中將
直接接到高電平, 用軟件來實現寄存器清零;
直接接到低電平, 一直輸出有效。把其余三根線和單片機的I/O 口相接, 即可實現對74HC595 的控制。數據從SDI 口送入74HC595 , 在每個SCK 的上升沿, SDI 口上的數據移入寄存器, 在SCK 的第9 個上升沿, 數據開始從SDO 移出。如果把第一個74HC595的SDO 和第二個74HC595 的SDI 相接, 數據即移入第二個74HC595 中, 照此一個個接下去, 可接任意多個。數據全部送完后, 給RCK 一個上升沿, 寄存器中的數據即置入鎖存器。此時
為低電平, 數據即從并口Q0 ~ Q7 輸出。
74HC245 為八總線收發(fā)器芯片,即可以將數據從A 總線端口傳送到B 總線端口,也可將數據從B 總線端口傳送到A 總線端口。傳送方向由方向控制管腳DIR(芯片1 腳)輸入的邏輯電平而定。其真值表如表3 所示:
表3 74HC245輸入輸出真值表
H 代表高電平,L 代表低電平,X 代表不定的狀態(tài)。
四、程序設計
本講設計實例核心程序如下:
……
#define SDI P2_7 ( 1)
#define SCLK P2_6 ( 2)
#define RCLK P2_5 ( 3)
……
void dat_in(unsigned char dat) ( 4)
{
unsigned char i; ( 5)
for(i=0;i8;i++) ( 6)
{
SCLK=0; ( 7)
SDI=dat0X80; ( 8)
dat《=1; ( 9)
SCLK=1; ( 10)
}
RCLK=0; ( 11)
RCLK=1; ( 12)
}
程序詳細說明:
(1)將數據輸出端定義為P2.7 管腳。
(2)將數據時鐘輸出端定義為P2.6 管腳。
?。?)將寄存器時鐘輸出端定義為P2.5 管腳。
?。?)數據傳入函數,傳入一字節(jié)。
?。?)定義一個無符號字符型變量。
?。?)要因為要傳送一個字節(jié),故要8 次。
?。?)數據時鐘先輸出低。
?。?)讓數據管腳輸出傳入字節(jié)的最高位。
?。?)傳入字節(jié)左移一位。
?。?0)數據時鐘輸出高,上升沿將數據所存儲至74HC595 數據寄存器中。
(11)寄存器時鐘先輸出低。
?。?2)寄存器時鐘輸出高,上升沿將數據所存儲至74HC595 數據寄存器中。
以上字程序的作用, 當發(fā)送一個字節(jié)的顯示數據的時候, 通過74HC595 進行串行轉并行的控制,每次從單片機IO發(fā)送1Bit出去, 循環(huán)8次, 完成發(fā)送一個字節(jié),之后再的輸出端以一個字節(jié)的方式傳輸給數碼管, 實現顯示。
五、調試要點與實驗現象
接好硬件電路,通過冷啟動方式將程序所生成的。hex 文件下載到單片機運行后,復位單片機,就可以觀察到板上8 個數碼管都點亮(見圖3),并從數字0 到9 變化閃爍。調試的時候需要注意的是,數碼管的使能控制端(見圖2)必須用跳線帽跳上,從而讓74HC138 能工作輸出。不需要用到數碼管時可以, 反之,跳開以節(jié)省系統(tǒng)電流損耗。
圖3 數碼管顯示效
另外動態(tài)掃描過程中, 數碼管顯示的亮度與驅動電流、點亮時間和關斷時間有關, 所以應當適當調整驅動電流大小和掃描頻率, 從而控制顯示所需要的亮度。這在驅動尺寸較大的數碼管組時更是如此,為了穩(wěn)定顯示,硬件方面必須達到該有的驅動能力,如在驅動端再接達林頓管等。軟件方面,應在實際的調試過程中不斷的嘗試(見本講程序中所掃描次數的經驗值),找到一個最佳臨界點,即要注意動態(tài)掃描的延時間隔和掃描次數。
六、總結
本講介紹了單片機動態(tài)驅動數碼管的原理并給出了實例,通過該講,我們可以總結如下:
動態(tài)掃描驅動數碼管的優(yōu)點:當顯示位數較多時,采用動態(tài)顯示方式比較節(jié)省I/O 口,硬件電路也較靜態(tài)顯示簡單;缺點:其穩(wěn)定度不如靜態(tài)顯示方式。而且在顯示位數較多時CPU要輪番掃描,占用CPU較多的時間。
總的來說,無論是動態(tài)還是靜態(tài)顯示,其顯示更新的速率不能太快,如數據不停變化,太快則無法看清楚顯示的內容,在軟件設計是必須注意的。另外,在同等條件下動態(tài)顯示的亮度比靜態(tài)顯示要差一些,所以在適當提高驅動電流,例如使用限流電阻,就應略小于靜態(tài)顯示電路中的,或者使用緩沖驅動芯片。下講將重點講述單片機外部中斷以及應用,以對紅外遙控器進行解碼作為實例,敬請期待。
紅外遙控器相關文章:紅外遙控器原理萬能遙控器相關文章:萬能遙控器代碼
51單片機相關文章:51單片機教程
評論