·
圖 8-7 顯示器驅動功能方塊圖顯示器驅動函式
參考圖 8-7 顯示器驅動功能方塊圖,這一個功能方塊是把要顯示的數值,轉換為七節管碼,然後對小數點所在的位數做小數點加入處理。其中七節管轉碼,可以用查表方式分四次取得四個位數的七節管碼。而小數點加入方塊,則選擇小數點所在位數的小數點點亮,假設七節管用 b6~b0, b7 控制小數點亮不亮,要是將控制七節管用輸出埠的 b7 致能,亦即原七節管碼加上 2^7=128 ,或則與0b1000 0000 做 OR 運算。本功能方塊需要有 0~9 的七節管碼的表以供查找,可存放於功能方塊結構體的欄位內。
typedef struct {
uint8_t SegmentTable[10];
} Display7Segment_t
其初始值非 0 有需要宣告一個初始化巨集。
#define DISPLAY7SEGMENT_INIT { \
.SegmentTable ={126,48,109,121,51,91,95,112,127,123} \
}
其步級函式如下
uint8_t Display7Segment_step( Display7Segment_t Str_p,ToShow_t* ToShow_p)
• 簡介:本函式工作內容是做 4 個待顯示值轉為七節管碼,再將小數點所在位數加入小數點之後輸出七節管碼點亮十節管。
• 傳值變數:N/A
• 傳址變數:Display7Segment_t Str_p:功能方塊結構體住址。
ToShow_t* ToShow_p:要顯示相關結構體住址。 • 回傳:錯誤訊息,無錯誤回傳 0。