用AT90S1200代換顯示驅(qū)動(dòng)芯片MC14499的應(yīng)用電路
4 軟件設(shè)計(jì)
使用AT90S1200直接代換MC14499完成顯示功能時(shí),系統(tǒng)軟件可采和AVR精簡指令的匯編語言編寫,并可采用模塊化結(jié)構(gòu)設(shè)計(jì)。為達(dá)到 MC14499的通訊速度,對串行數(shù)據(jù)的接收采用中斷方式處理,使用內(nèi)置振蕩器,WDT可使用外部中斷接收CLK信號(hào),AT90S1200具有89條指令代碼,且全部為單字節(jié)指令,可進(jìn)行十位數(shù)字運(yùn)算,在32個(gè)工作寄存器中只有16~31個(gè)寄存器可執(zhí)行立即數(shù)據(jù)的操作,并支持C語言編程,而且靈活方便,下面給出用AT90S1200代換MC1449的顯示數(shù)據(jù)轉(zhuǎn)換子程序和接收數(shù)據(jù)子程序。
4.1 驅(qū)動(dòng)顯示子程序
由于AT90S1200不能查表。故在顯示子程序中應(yīng)分別進(jìn)行處理,主程序內(nèi)使用了通用寄存器R26中帶為的接收BCD碼,并通過本子程序轉(zhuǎn)換為段碼,仍由R26帶出并返回到調(diào)用程序處,本示例為0、1、2、3、4五個(gè)字段碼的轉(zhuǎn)換:
Data:CPI R26,$00 ;數(shù)據(jù)0的轉(zhuǎn)換
BRNE Data0
LDI R26,$7B
RJMP DataD
Data0:CPI R26,$01 ;數(shù)據(jù)1由BCD轉(zhuǎn)換為段碼
BRNE Datal
LDI R26,$48
RJMP DataD
Datal:CPI R26,$02 ;數(shù)據(jù)2的轉(zhuǎn)換
BRNE Data2
LDI R26,$D3
RJMP DataD
Data2:CPI R26,$03 ;數(shù)據(jù)3的轉(zhuǎn)換
BRNE Data3
LDI R26,$D9
RJMP DataD
Data CPI R26,$04 ;數(shù)據(jù)4的轉(zhuǎn)換
BREN Data4
LDI R26,$E8
RJMP DataD
…
DataD:RET
DIY機(jī)械鍵盤相關(guān)社區(qū):機(jī)械鍵盤DIY
評(píng)論