❶ 單片機驅動LED數碼管有哪幾種顯示方法
就兩種顯示方式,一種是靜態顯示方式,適合於數碼管位數較少的電路。
另一種是動態掃描顯示方式,適合於多位數碼管的電路。
❷ 使用單片機實現四位八段的數碼管顯示,顯示出852.6如何實現,請寫出實現流程
有兩種方式,一種是動態掃描,假設你數碼管有COM1,COM2,COM3,COM4,然後有8個段,常見的是7個控制數碼管段還有一個小數點一共8個段
那麼這里就描述單片機一次掃描4位的過程,首先,如果你的數碼管是共陽,那麼顯示第一位就將COM1引腳拉到高電平,然後8個引腳接到單片機IO口上,你說你要顯示852.6,那麼第一位是8,7個段全亮,所以7個IO全部拉低電平就行,隨後延遲差不多1ms左右
接下來就是顯示第二個數碼管,和之前一樣,COM2拉高,然後你要顯示5的話有兩個段是不亮的,所以哪兩個腳你不想讓他亮,你直接把對應的IO拉高就行,你要讓剩下哪5個段亮直接拉高電平即可,隨後再延時1ms左右
接下來兩位和上面一樣,對應位的COM口拉高電平,對應的欄位IO你要讓哪個段亮就把哪個拉低電平,哪個段不想亮就拉高電平,最後延時1ms就行
最後程序外面套個while(1)就可以實現無限循環了
還有一種方式就是用74HC595和4個數碼管連接起來,74HC595是一個串列鎖存寄存器,只需要4個74HC595和4個數碼管就行,最少只佔用單片機2個IO
這里就說明一下74HC595的控制方式
首先74HC595應該有個EN口,拉低,然後時鍾拉高,循環8次,再把時鍾信號拉低,用一個AND運算,如你要傳輸一個0XAA,那麼就是
void InputData(0XAA)
{
for(int i=0;i<8;i++)
{
if(dat&0x01==1)
{
digitalWrite(SCK,LOW);
digitalWrite(DAT,HIGH);
delayMicroseconds(10);
}
else
{
digitalWrite(SCK,LOW);
digitalWrite(DAT,LOW);
delayMicroseconds(10);
}
dat=dat>>1;
digitalWrite(SCK,HIGH);
}
}
這里我是直接復制我以前寫的一個arino驅動74HC595的程序,SCK是時鍾,DAT是數據
建議你把單片機和你數碼管的電路圖發出來,你說如何實現我不知道你是怎麼接的數碼管
❸ 在單片機應用系統中。LED數碼管顯示電路通常有什麼顯示方式
動態掃描。
LED燈是繼電器工作狀態指示燈,點亮代表繼電器啟動中,熄滅代表繼電器關閉,LED1是伴同蜂鳴器報警的指示燈,只要數碼管不處於設置時間狀態,都能夠用E歸零鍵進行清零操作,數碼管就會顯示00:00 (此時不是對主晶元進行復位,只是對狀態進行清零) 。
(3)單片機數碼管有幾種顯示方式擴展閱讀:
注意事項:
檢查時若發光暗淡,說明器件已老化,發光效率太低。如果顯示的筆段殘缺不全,說明數碼管已局部損壞。
對於型號不明、又無管腳排列圖的LED數碼管,用數字萬用表的h距擋可完成下述測試工作:判定數碼管的結構形式(共陰或共陽),識別管腳,檢查全亮筆段。預先可假定某個電極為公共極,然後根據筆段發光或不發光加以驗證。
❹ 單片機按鍵控制數碼管顯示
你有原理圖沒?
設置三個標志位,全局變數,需要在倒計時中斷里改變狀態的。
程序流程是:
主程序流程:
上電初始化(設置LED狀態,設置定時器相關寄存器參數,設置三個標志位狀態)--->
死循環(判斷標志位是否容許按鍵有效,然後判斷是否有按鍵按下,轉入響應的子程序處理段)
定時器中斷任務:
判斷是否到15秒,到了就置位標志位。
❺ 在單片機系統中led數碼管顯示電路通常由什麼和什麼顯示方式
在單片機系統中led數碼管顯示電路通常由靜態顯示方式乎卜和動態顯示方式。根據查詢相關公開信息顯示,靜態顯示方式是指當顯示器顯示某一字元時,發光二極體的位選始終被選中,動態顯示方式是指一位一位地輪流點亮每位顯示器(稱為掃描),即每個數碼歲戚穗管的位選被輪流選中仔亂。