撰寫(顯示處理)函式:
顯示模組會自動因應正在輸入值或是剛輸入等號來決定要顯示的是正在輸入的數值或則是計算結果,並將要顯示的值,分割成 4 顆 7 節管應顯示之字元。
• 建立函式,輸出入變數及結構體內部永久變數
結構體內部永久變數: N/A
傳值傳參:累進值,運算結果,符號/數值旗標,等號/四則旗標。
傳址傳參(輸出用):顯示值分割成 4 顆 7 節管應顯示之字元向量之第一個 位址。
• 參考以下流程撰寫程式:
查看比對符號/數值旗標,判別旗標
若 符號/數值旗標為符號且四則/等號旗標為等號時,則
顯示值=計算結果
否則
顯示值=累進值
若顯示值為負
顯示字元 4 為『-』的 ASCII 碼
顯示值碼數為 3
顯示值=-顯示值
否則
顯示值碼數為 4
商數=顯示值,餘數=0
for (i=1 到 顯示值碼數)
餘數=商數-(商數/10)*10;
商數=(商數-餘數)/10;
顯示字元 I = 餘數的 ASCII 碼
endfor
若 商數 不等於 0 (表示數值溢位應顯示為 E)
顯示字元 1 為 E 的 ASCII,其它為不顯示。
• 測試時,修改接續前面三函式的測試程式,在呼叫運算執行器函式之後呼叫顯示選擇函式,以 printf()送回累進值,運算結果,以及要顯示之字元串。以終端機輸入一個加法運算,一個減法運算,一個乘法運算,一個除法運算,觀察其送回終端機之累進值,運算結果,以及顯示值變化。確
認函式功能正常。
撰寫(系統整合)主程式
參考修改 4 的測試用主程式,將對超級終端機之輸出入,改為呼叫灰排鍵盤驅動函式由灰排鍵盤讀取鍵號,呼叫灰排七節管顯示器驅動函式,顯示輸入累進值以及運算結果。
主程式:
定義各個功能方塊的結構體型態。
宣告各個功能方塊的初始化巨集字串。
定義並初始各個功能方塊的結構體並初始化。
while(1)
執行延時模組;(等待足夠的時間,以避免同次按鍵被連續偵測)
呼叫鍵盤驅動函式,取得 輸入按鍵編號
if (輸入按鍵編號>0)
呼叫按鍵編號解譯器函式
呼叫累加進位器函式
呼叫運算執行器函式
呼叫顯示選擇器函式
呼叫顯示器驅動函式,顯示應顯示值。
重設 輸入按鍵編號=0
endif
endwhile(1)