圖8-6 顯示處理器功能方塊圖
這一個功能方塊是顯示處理器,如圖 8-6 顯示處理器,其主要工作為選擇顯示數值為正在鍵入的數值或則是演算結果,並將顯示值分割成四個位數。其中顯示選擇器,受到輸入值特性符號/數字,等號/四則,控制決定選擇輸出什麼內容。若是新輸入值為符號,且前一個輸入符號為等號時,則顯示運算結果。反之則顯示累進值。顯示值分割器,則會將顯示值,分割成 10 進位的四個位數,再將這四個位數,存入待顯示的數字,小數點的決定,要看值的大小,當值小小於千,顯示選擇器 顯示值分割器累進值運算結果符號 / 數字等號 / 四則顯示結構體大於百,則有 1 位小數,小於百大於十則有 2 位小數,餘依此類推。 顯示處理器沒有內部變數需要記憶,因此可以不用結構體。但是處理結果可能有四個位數數值,以及小數點等資訊需要傳送,可使用結構體加以包裝。
typedef struct {
uint8_t Values[4];
uint8_t DecimalPoint;
} ToShow_t
其步級函式如下
uint8_t DisplaySelector_step ( uint8_t Symbol, uint8_t EqualSign, uint8_t CumResult, uint8_t Result_p, ToShow_t* ToShow_p)
簡介:本函式工作為選擇顯示數值為正在鍵入的數值或則是演算結果,並將顯示值分割成四個七節點顯示字串。其中顯示選擇器,受到輸入值特性符號/數字,等號/四則,控制決定選擇輸出什麼內容。
• 傳值變數:
uint8_t Symbol:符號/數值 旗標變數輸入。
uint8_t EqualSign: 等號/四則 旗標變數輸入
uint8_t CumResult:累進值輸入。
uint8_t Result:計算結果輸入。
• 傳址變數:
ToShow_t* ToShow_p:要輸出給後續顯示用的結構體住址。
• 回傳:錯誤訊息,無錯誤回傳 0。
如前例,『 12+3= 』顯示選擇器,在輸入鍵為 12 或 3 時,均為數值,此時它會選擇顯示累進值,例如輸入 1 時顯示的是 1,輸入 2 時顯示的是已累進值12。輸入 3 時,則顯示 3。當我們輸入鍵為『 + 』時仍顯示前一個累進值亦即12,當輸入『 = 』時則顯示運算結果 15。顯示值分割器,在顯示 12 時,會先依 10 進制分割 12 為 1 與 2。小數點都在第二位數。