//Logo Image
作者:蔡宗成、王崇飛(2002-03-21);推薦:徐業良(2002-03-26)

單晶片實習-七段顯示器控制

在單晶片的人機應用中,除了LCD顯示器與LED燈外,七段顯示器也是常用的輸出電路。一般實驗室常用的設備,如電源供應器與訊號產生器等,如圖1,便是應用七段顯示器作為數字輸出介面。本文介紹單晶片如何控制七段顯示器電路,依序顯示0~9的數字,也可以直接透過RS232控制顯示。

1. 七段顯示器應用

1.     七段顯示器原理簡介

七段顯示器外型如圖2,內部構造由8LED燈組成,為七個筆畫與一個小數點,依順時針方向為abcdefgdp8組資料,七段顯示器的背面有10支接腳,如圖3所示,可參考產品資料手冊或以通電方式來判斷資料編號位置。

2. 七段顯示器外型

3. 七段顯示器底視圖

七段顯示器主要有兩種規格,分為共陽極與共陰極,共陽極規格必須使用“Sink Current”方式,由單晶片產生低電位的腳位,外部電源流經七段顯示器,再流入單晶片;共陰極規格則使用“Source Current”方式,由單晶片輸出高電位的腳位,提供七段顯示器電流,且必須注意單晶片所能提供的電流大小。

要產生數字的方法,便是點亮特定資料的LED燈,例如要產生數字「0」,必須只點亮abcdef等節段;要產生數字「5」,必須只點亮acdfg等節段,以此類推。如圖4為單晶片與七段顯示器接腳圖,以共陽極電路而言,要產生數字「0」,必須控制單晶片的PortBRB0~RB5為“低電位”,使電路形成通路狀態;以共陰極電路而言,要產生數字「5」,必須控制單晶片的PortBRB0RB2RB3RB5RB6等接腳為“高電位”,提供七段顯示器電源。七段顯示器的兩支com接腳則與單晶片共接地,加上限流電阻約100~300Ω之間。

以共陰極電路而言,單晶片控制七段顯示器顯示0~9數字的方法是由PortB送出十六進位資料,使特定腳位同時呈現高電位狀態,相關數字轉換的資料碼如表1所示。

1. 顯示數字資料碼

腳位

RB7

RB6

RB5

RB4

RB3

RB2

RB1

RB0

十六進位

資料

dp

g

f

e

d

c

b

a

0

0

0

1

1

1

1

1

1

3F

1

0

0

0

0

0

1

1

0

06

2

0

1

0

1

1

0

1

1

5B

3

0

1

0

0

1

1

1

1

4F

4

0

1

1

0

0

1

1

0

66

5

0

1

1

0

1

1

0

1

6D

6

0

1

1

1

1

1

0

1

7D

7

0

0

0

0

0

1

1

1

07

8

0

1

1

1

1

1

1

1

7F

9

0

1

1

0

1

1

1

1

6F

4(a). 單晶片與七段顯示器共陽極接腳圖

4(b). 單晶片與七段顯示器共陰極接腳圖

2. 七段顯示器控制程式

本實習使用共陰極電路控制七段顯示器,由單晶片直接提供電源作為驅動方式,如圖5為基本控制程式,引用相關設定與函數庫;程式流程為一開始時,每隔0.5秒依序顯示0~9的數字,接著,等待由RS232所傳來的控制指令,顯示所指定的數字。

5. 基本控制程式碼

程式內容為先宣告LED7[10]的一維變數矩陣,矩陣內容為0~9的十六進位數值,display_7led(char c)為顯示數值副程式,當由RS232接收到0~9的控制指令後,便控制七段顯示器顯示該數字,否則不顯示任何數字。主程式內容先設定一For迴圈,每隔0.5秒依序顯示0~9數字,可作為七段顯示器性能判斷;然後程式進入While迴圈,使用getch()指令,接收RS232所傳來的資料,並將資料存入data變數裡,再呼叫顯示數值副程式,顯示該數字。

6、圖7VB程式介面與程式碼,放置10個按鈕物件(command)與引用RS232物件,設定各按鈕屬性,當使用者按下按鈕時,傳送所設定的數值以顯示該數字。

6. VB程式介面

7. VB程式碼