導航:首頁 > 操作系統 > 單片機兩個四位數碼管

單片機兩個四位數碼管

發布時間:2022-11-29 11:59:43

⑴ 2個4位共陽數碼管直接和51單片機IO口連接,亮度偏暗的原因

數碼管直接與I/O連接,亮度肯定是很暗的,這是小事,重要的是單片機很容易被燒壞的。因為單片機I/O的驅動能力很小,是不能直接驅動數碼管的,特別是驅動共陽數碼管的公共端,這需要高電平有效驅動,需要單片機輸出電流,而對於單片機高電平時的輸出電源是極小的,因此不可能驅動公共端的,非要這么做後果就是因電流小而使數碼管顯示很暗,最壞的結果是燒壞單片機。而用I/O驅動數碼管的七段還免強維持,因單片機低電平時的輸出電流比高電平時大很多。但不提倡直接用I/O驅動數碼管,不論是公共端還是七段的控制端,而都要用一片驅動電路來連接。用74LS244和74HC244(同相驅動),或74LS240,74HC240(反相驅動)等都可以。

⑵ 一個74hc573如何驅動兩個四位數碼管

74hc573驅動4位數碼管

用74HC573驅動4位數碼管的段選,

用74HC573驅動4位數碼管的段選,如果數碼管選用共陰的, 這個電路可行。

補充: 74HC573輸出那裡串接個小電阻, 再接到數碼管的段碼端。

我的數碼管是共陰的,位選就是接地,那直接接單片機就可以了。

位選接單片機P2.7, P2.6, P2.5, P2.4 。

段選接74HC573 輸出端Q0 ~ Q7 (中間最好是串個300歐左右電阻)。

74HC573 輸入端D0 ~ D7接單片機P0口。

⑶ 使用單片機實現四位八段的數碼管顯示,顯示出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是數據
建議你把單片機和你數碼管的電路圖發出來,你說如何實現我不知道你是怎麼接的數碼管

⑷ 兩個四位一體共陽數碼管如何跟單片機連接

用單片機的兩個I/O口,一個作段碼驅動一個作位碼驅動。如果想只用一個I/O口可用兩片串並轉換IC74LS164作為輔助驅動就可以了。這樣只用4條I/O線就可以實現8位LED數碼管的顯示。

⑸ 如何利用單片機讓4位數碼管顯示

利用動態掃描讓四位數碼管穩定的顯示1234。

3.2子情境目標:

(1)掌握單片機控制四位數碼管的動態掃描技術,包括程序設計和電

路設計,本任務的效果是讓四位數碼管穩定的顯示1234。

(2)用PROTEUS進行電路設計和實時模擬

3.3知識點鏈接

(1)數碼管動態掃描(動態掃描的定義以及與靜態顯示的區別)

動態顯示的特點是將所有位數碼管的段選線s一位數碼管有效。選亮數碼管採用動態掃描顯示。所謂動態掃描顯示即輪流向各位數碼管送出字形碼和相應的位選,利用發光管的余輝和人眼視覺暫留作用,使人的感覺好像各位數碼管同時都在顯示。

(2)匯流排的應用

元器件與匯流排的連線

P0口的接線採用匯流排方式,詳細如圖5-17所示。

① 選擇匯流排按鈕

② 繪制匯流排:與普通電線的繪制方法一樣,選擇合適的起點、終點單擊。

如果終點在空白處,左鍵雙擊結束連線。

畫匯流排的時候為了和一般的導線區分,我們一般喜歡畫斜線來表示分支線。此時我們需要自己決定走線路徑,只需在想要拐點處單擊滑鼠左鍵即可。在畫斜線時,需要關閉線路自動路徑功能才好繪制。

Proteus的線路自動路徑功能簡稱WAR,當選中兩個連接點後,WAR將選擇一個合適的路徑連線。WAR可通過使用標准工具欄里的「WAR」命令按鈕來關閉或打開,也可以在菜單欄的「Tools」下找到這個圖標。

③ 給與匯流排連接的導線貼標簽PARTLABELS

與P0口相連的線標簽名依次為P00—P06,本電路中的P0口的上拉電阻通過匯流排與P0口相連,數碼管也是通過匯流排與P0口相連,這些都需要標注,以表明正確的電氣連接。單擊繪圖工具欄中的導線標簽按鈕,使之處於選中狀態。將滑鼠置於圖形編輯窗口的欲標標簽的導線上,跟著滑鼠的指針就會出現一個「×」號,表明找到了可以標注的導線,單擊滑鼠左鍵,彈出編輯導線標簽窗口,如圖5-16所示。

在「string」欄中,輸入標簽名稱(如p00),單擊「OK」按鈕,結束對該導線的標簽標定。同理,可以標注其它導線的標簽,如圖5-16所示。

注意,在標定導線標簽的過程中,相互接通的導線必須標注相同的標簽名。

圖5-16編輯導線標簽窗口

3.4任務步驟

3.4.1步驟一:PROTEUS電路設計,單片機控制四位共陰極數碼管動態掃描顯示的原理圖如圖5-17所示。

圖5-17四位共陰極數碼管動態掃描顯示的原理圖

1、選取元器件

①單片機:AT89C52

②帶公共端的排阻:RESPACK-8

③四位共陰極數碼管:7SEG-MPX4-CC

2、放置元器件、放置電源和地、連線、元器件屬性設置

數碼管動態掃描顯示的原理圖如圖5-17所示,整個電路設計操作都在ISIS平台中進行。

(1)帶公共端的排阻(RESPACK-8)如圖5-18所示,在本電路中作為P0的

上拉電阻,在如圖5-19所示ComponentValue一欄中可更改阻值,例如本例中將阻值更改為200歐姆。

圖5-18排阻圖5-19排阻屬性框

至此,我們便完成了整個電路圖的繪制。

3.4.2步驟二:源程序設計與目標代碼文件生成

(1)程序流程圖

圖5-20數碼管動態掃描的流程圖

(2)源程序設計

#include<reg52.h>//52系列單片機頭文件

#defineucharunsignedchar

#defineuintunsignedint

uintx,y;

ucharcodetable[]={

0x3f,0x06,0x5b,0x4f,

0x66,0x6d,0x7d,0x07,

0x7f,0x6f,0x77,0x7c,

0x39,0x5e,0x79,0x71};//共陰極數碼管編碼

voiddisplay(uchar,uchar,uchar,uchar);//聲明子函數

voiddelay(int);//聲明子函數

voidmain()

{

while(1)

{

display(1,2,3,4);//主程序始終調用數碼管顯示子程序

}

}

voiddisplay(uchara,ucharb,ucharc,uchard)

{

P2=0xef;

P0=table[a];//給第一個數碼管送"a"

delay(1);//延時1ms

P2=0xdf;

P0=table[b];//給第二個數碼管送"b"

delay(1);//延時1ms

P2=0xbf;

P0=table[c];//給第三個數碼管送"c"

delay(1);//延時1ms

P2=0x7f;

P0=table[d];//給第三個數碼管送"d"

delay(1);//延時1ms

}

voiddelay(uintz)//延時子函數

{

uintx,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--);

}

⑹ 如何利用單片機讓4位數碼管顯示

程序如下(用的是STC89C52晶元):

#include<reg52.h>//52系列單片機頭文件

#defineucharunsignedchar

#defineuintunsignedint

uintx,y;

ucharcodetable[]={

0x3f,0x06,0x5b,0x4f,

0x66,0x6d,0x7d,0x07,

0x7f,0x6f,0x77,0x7c,

0x39,0x5e,0x79,0x71};//共陰極數碼管編碼

voiddisplay(uchar,uchar,uchar,uchar);//聲明子函數

voiddelay(int);//聲明子函數

voidmain()

{

while(1)

{

display(1,2,3,4);//主程序始終調用數碼管顯示子程序

}

}

voiddisplay(uchara,ucharb,ucharc,uchard)

{

P2=0xef;

P0=table[a];//給第一個數碼管送"a"

delay(1);//延時1ms

P2=0xdf;

P0=table[b];//給第二個數碼管送"b"

delay(1);//延時1ms

P2=0xbf;

P0=table[c];//給第三個數碼管送"c"

delay(1);//延時1ms

P2=0x7f;

P0=table[d];//給第三個數碼管送"d"

delay(1);//延時1ms

}

voiddelay(uintz)//延時子函數

{

uintx,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--);

}

(6)單片機兩個四位數碼管擴展閱讀

led數碼管是由多個發光二極體封裝在一起組成「8」字型的器件,引線已在內部連接完成,只需引出它們的各個筆劃,公共電極。led數碼管常用段數一般為7段有的另加一個小數點,還有一種是類似於3位「+1」型。

位數有半位,1,2,3,4,5,6,8,10位等等,led數碼管根據LED的接法不同分為共陰和共陽兩類,了解LED的這些特性,對編程是很重要的,因為不同類型的數碼管,除了它們的硬體電路有差異外,編程方法也是不同的。

⑺ 單片機匯編語言 用兩個四位數碼管代替八位數碼管

兩個四位一體數碼管,和一個8位一體數碼管,其電路結構是相同的,顯示方式也同樣是動態掃顯示的,如果輸出段碼和位碼的電路不變,那程序是通用的,不用作什麼修改的。你可以直接試一下就知道了,如果不行再找原因或再來提問。

⑻ 怎樣用兩個四位數碼管代替一個八位數碼管,主要是怎麼接引腳 謝謝!

這是可以的,分別讓兩個四位數碼管顯示四位數,合在一起就是八位數。
原理:兩個四位數碼管的數據針腳分別相連後,與P0口相連;位選針腳分別與P3口相連,這樣就實現了用兩個四位數碼管代替一個八位數碼管。
方法:第1步、數碼管1的A-H針腳分別與數碼管2的A-H相連,即A-A(11),B-B(7),C-C(4),D-D(2),E-E(1),F-F(10),G-G(5),H-H(3)後;然後再A接P0.0,依次往下直到H接P0.7;這樣就完成了數據口的連接。
第2步、四位一體數碼管的位選針腳為12,9,8,6.讓顯示前四位的數碼管的這四個針腳與P3.0-P3.3相連,顯示後四位的數碼管的這四個針腳與P3.4-P3.7相連,這樣就完成了位選端的電路。
第3步、控制方法是P3口的P3.0控制八位數字的左邊第一位,依次往右,P3.7控制八位數字的右邊第一位。P0口控制所要顯示的數據。
電路就是這樣連接的,相信程序你會寫好的。祝你好運!

⑼ 單片機同時控制兩個數碼管

實際上看作是四位數碼管就可以了。
東西方向是兩個,南北方向是兩個
用一個595,加四個I/O口就可以實現
並聯顯示就相同的

⑽ 兩個 四位七段LED數碼管該如何連接

他們之間不是直接連在一起的,是通過單片機聯系起來的,每一個數碼管有4個位選信號。其他的一些口則連接在l\o口上。。

閱讀全文

與單片機兩個四位數碼管相關的資料

熱點內容
dvd光碟存儲漢子演算法 瀏覽:757
蘋果郵件無法連接伺服器地址 瀏覽:962
phpffmpeg轉碼 瀏覽:671
長沙好玩的解壓項目 瀏覽:144
專屬學情分析報告是什麼app 瀏覽:564
php工程部署 瀏覽:833
android全屏透明 瀏覽:736
阿里雲伺服器已開通怎麼辦 瀏覽:803
光遇為什麼登錄時伺服器已滿 瀏覽:302
PDF分析 瀏覽:484
h3c光纖全工半全工設置命令 瀏覽:143
公司法pdf下載 瀏覽:381
linuxmarkdown 瀏覽:350
華為手機怎麼多選文件夾 瀏覽:683
如何取消命令方塊指令 瀏覽:349
風翼app為什麼進不去了 瀏覽:778
im4java壓縮圖片 瀏覽:362
數據查詢網站源碼 瀏覽:150
伊克塞爾文檔怎麼進行加密 瀏覽:892
app轉賬是什麼 瀏覽:163