七段顯示器簡介
七段顯示器是用來顯示數字的常用電子元件,在很多地方都可以看到它的身影,例如電子時鐘、溫度顯示器和各種儀表。
它外型如下圖,背面一共有10 支接腳:
七段顯示器分成共陽極和共陰極兩種,不管是哪一種,內部構造都是由 8 個 LED 發光二極體所組成,其中七個是筆劃,另外一個是小數點,如下圖所示,依順時針方向分別為 a, b, c, d, e, f, g 以及小數點 dp (decimal point):
![]()
要產生數字,方法是點亮指定的 LED。例如要產生數字 0,便點亮 a, b, c, d, e, f 等節段;要產生數字 1,便點亮 b, c 等節段;要產生數字 2,便點亮 a, b, d, e, g 等節段,依此類推。
以共陰極而言,0 到 9 這十個阿拉伯數字與各節段的對應表如下:
| 顯示 數字 |
dp | a | b | c | d | e | f | g | 十六 進制 |
| 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0x3F |
| 1 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0x06 |
| 2 | 0 | 1 | 1 | 0 | 1 | 1 | 0 | 1 | 0x5B |
| 3 | 0 | 1 | 1 | 1 | 1 | 0 | 0 | 1 | 0x4F |
| 4 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 1 | 0x66 |
| 5 | 0 | 1 | 0 | 1 | 1 | 0 | 1 | 1 | 0x6D |
| 6 | 0 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 0x7D |
| 7 | 0 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0x27 |
| 8 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0x7F |
| 9 | 0 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 0x67 |
如果使用的是共陽極的七段顯示器,上面表格中所有的 1 都要換成 0, 所有的 0 都要換成 1。
十六進制在C語言中:"0x"表示16進制,"0b"則代表2進制。
![]()
上圖是共陰極型的七段顯示器,3, 8 接腳要接到 GND,如果是共陽極則 3, 8 接腳要接到 +5V。
接線
- 將七段顯示器 3, 8 腳接到 GND (本例使用共陰極,若為共陽極請將 3, 8 腳接到 +5V)
- 查表將 Arduino 2, 3, 4, 5, 6, 7, 8 接到七段顯示器對應的腳位,並在每支接腳上串接一顆 220 ohm 電阻
![]()
下表為 Arduino 與七段顯示器的腳位對應表:
| Arduino 腳位 | 七段示顯器腳位 (筆劃) |
| 2 | 7 (A) |
| 3 | 6 (B) |
| 4 | 4 (C) |
| 5 | 2 (D) |
| 6 | 1 (E) |
| 7 | 9 (F) |
| 8 | 10 (G) |
| 9 | 5 (DP) |
![]()
程式碼
// 七段控制腳陣列,分別對應a~g段
int seg7[] = {11, 10, 9, 8, 7, 6, 5};
// 七節顯示器編碼表
char TAB[]={ 0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x27,0x7F,0x67 }; //十六進制
int i,j; // 迴圈用的變數
void setup() {
// 初始化指定的數位腳位為輸出模式
for (i=0; i<7; i++) {
pinMode(seg7[i], OUTPUT);
}
}
void loop() {
for (i=0; i<10; i++) { // 依序顯示 0~9
OutPort(TAB[i]); // 取出陣列中對應的數字編碼表
delay(500); // 延遲 0.5 秒
}
}
// 將指定值顯示在七段顯示器上,最低位元為a,依序為 abcdefg
void OutPort(byte dat) {
for (j=0; j<7; j++) {
if (dat % 2==1) // 取出 dat 的最低位元
digitalWrite(seg7[j], HIGH); // 若為 1 代表該段要亮, 輸出高準位
else
digitalWrite(seg7[j], LOW); // 若為 0 代表該段要滅, 輸出低準位
dat=dat/2; // 除2,進行下一位元的處理
}
}

請先 登入 以發表留言。