LED數碼管顯示

2021-06-26 23:01:38 字數 2408 閱讀 1392

在電梯、家用電器中,隨處可見數碼管顯示的應用。一般是7個發光管組成8字形的排列,可以顯示0-9的數字。我們可以給這7個發光管編號,以便區分它們:

我們給出了乙個用於模擬這個顯示過程的程式,並提供了源**。輸入數字,可以在控制台示意這些數字的對應數碼管顯示的效果,亮的管顯示為「@」, 不亮的管顯示為「.」。

程式的主要用途是:決定哪個數字由哪些點亮的數碼管組成。因為不能控制真的數碼管,所以採用了乙個字元緩衝區來模擬效果。

//第n號數碼管的顯示

void write_one_to_buf(char buf [4], int n)

break;

case 1:

for (i = 0; i < 4; i++)

break;

case 2:

for (i = 0; i < 4; i++)

break;

case 3:

for (i = 0; i < 4; i++)

break;

case 4:

for (i = 0; i < 4; i++)

break;

case 5:

for (i = 0; i < 4; i++)

break;

case 6:

for (i = 0; i < 4; i++)

break; }}

void show_buf()

printf(" ");

for (int j = 0; j < 4; j++)

printf(" ");

for (int j = 0; j < 4; j++)

printf("\n"); }}

//lk:水平放大係數,hk:垂直放大係數

void show_buf_big(int lk, int hk)

}printf(" ");

for (int j = 0; j < 4; j++)

}printf(" ");

for (int j = 0; j < 4; j++)

}printf("\n");

} }}void show_buf_lean()

for (int j = 0; j < 4; j++)

printf(" ");

for (int j = 0; j < 4; j++)

printf(" ");

for (int j = 0; j < 4; j++)

printf("\n"); }}

//某個數字由哪些根數碼管組成

void write_to_buf(char buf [4], int digit) }}

int main()

//分解千、百、個

int a = n / 100;

int b = n / 10 % 10;

int c = n % 10;

init_buf(buf1);

init_buf(buf2);

init_buf(buf3);

//不亮的位置,我們用"."來表示點亮的位置,用"@"來表示

write_to_buf(buf1, a);

write_to_buf(buf2, b);

write_to_buf(buf3, c);

//顯示模擬緩衝區的內容

show_buf();

printf("按任意鍵繼續...");

getch();

show_buf_big(2, 3);//水平放大2倍,垂直放大1倍

printf("按任意鍵繼續...");

getch();

show_buf_lean();//傾斜顯示

} return 0;

}程式執行結果:

數碼管顯示

數碼管顯示 最近因為對突然對電子感興趣,前幾天在路過電子 時買了乙個數碼管。因為以前總是紙上談兵,根本沒實驗過,連數碼見都沒見過,所以開始覺得將這塊數碼管顯示出來是非常具有挑戰性的工作。今天正好有空,拿來了我的數碼管,並在網上看了一些資料,才發現並不是想象中的那麼難,其實更準確的說是太簡單了。不到半...

數碼管顯示

一 區分數碼管的類別 共陰數碼管 即所有數碼管的陰極接在一起。要使某個數碼管點亮,只需置上高電平,中該位置 1 共陽數碼管 即所有數碼管的陽極接在一起。要使某個數碼管點亮,只需置上低電平,中該位置 0 二 單個數碼管顯示 a h 表示單個數碼管上面的8個led。根據共陰共陽的特性,點亮相應的led,...

數碼管顯示

數碼管由8個led組成,對應乙個i o口的輸出.根據連線方式不同分為共陽和共陰數碼管 可以看到,由於結構不同,共陽和共陰使led亮起的輸出電平也不同,如下是兩種連線方式對應的16進製製碼 當我們要對多個數碼管進行控制的時候,不僅需要控制顯示內容 段碼 還要控制顯示的位置 位碼 簡單一點的方法可以用另...