迪文DGUS屏利用os實現RTC的星期換成中文的改進版os

; DWIN OS

LDBR R10,0,16
MOVDR 23H,R13,1 ;DGUS屏的23寄存器給到os寄存器R13放星期0-6表示 日、一、二、。。。六
LDWR R16,2 ;乘以2,這裏用乘法是用查表的字節
MAC R10,R14,R18 ;乘積放入了os寄存器8個 18 19 20 21 22 23 24 25
LDADR TAB2 ;加載TAB2,這裏tab1和2是一樣的,存到的地址會到os的寄存器 5 6 7
ADD R22,R4,R30 ;30 31 32 33 34 35 36 37是和=查表地址的起始地址+星期號*2字節數
MOV R34,R4,4 ; os的寄存器5 6 7是多少我們不用管,只需要知道有起始地址了根據星期是多少來加載新的地址
MOVC R24,2

LDWR R0,0002H ;0002H地址是用的文本顯示,再吧R24裏面的星期給進去到屏上面變量地址顯示就行
MOVXR R24,0,1

END

TAB1:
DW 0XC8D5,0XD2BB,0XB6FE,0XC8FD,0XCBC4,0XCEE5,0XC1F9 ;日一二三四五六

TAB2:
DW “日一二三四五六”

常規的寫法可能就是星期的那個寄存器的值需要判斷6次,分別給進去,
本os程序用了查表、加法 乘法指令,設計還是比較巧妙,對於查表指令的理解需要掌握,另外加法、乘法的寄存器佔用需要清晰。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章