單片機應(yīng)用中從Excel軟件提取字模的方法
LED點陣作為一種重要的顯示手段,得到了廣泛的應(yīng)用,在單片機控制的點陣顯示系統(tǒng)程序中需要解決的一個重要問題就是字符點陣數(shù)據(jù)的獲取,也就是常說的取字模。筆者在工作過程中也遇到這個問題,經(jīng)學(xué)習(xí)和研究發(fā)現(xiàn)常用的取字模的方法是用專門的取字模軟件來完成的,但也遇到點陣大小固定、不能隨意選擇的問題。比如,在控制5×7的LED點陣程序中,無法找到合適的軟件取得字模。經(jīng)研究試驗發(fā)現(xiàn),使用Excel軟件可以實現(xiàn)任意點陣大小取字模。
此方法的核心思想是應(yīng)用Excel的“條件格式”功能。選中Excel表格中的任意單元格,使用“格式”菜單中“條件格式”,設(shè)置為單元格數(shù)值等于1時單元格格式為黑色底紋,如圖1所示。設(shè)置成功后會發(fā)現(xiàn)當(dāng)單元格內(nèi)數(shù)值為1時,單元格會變成黑色。利用這一功能,可以在Excel中形象地顯示點陣字模顯示效果。在Excel中選中與需要取模的點陣大小相當(dāng)?shù)谋砀駞^(qū)域,一個單元格代表一個LED,將列寬設(shè)置為2,將此區(qū)域中的各個單元格均設(shè)置好條件格式,并在需要點亮的LED對應(yīng)位置單元格中填人1,便得到了與顯示效果類似的圖形。如圖2中為5×7點陣中顯示數(shù)字“1”的效果。然后就可以利用Excel的公式功能計算對應(yīng)行和列的數(shù)據(jù),得到點陣數(shù)據(jù)了。為便于識讀,在左側(cè)和頂部分別加上了行標(biāo)號和列標(biāo)號,右側(cè)得到的便是每行的字模數(shù)據(jù),底部得到的是每列的字模數(shù)據(jù)。
在加載了Excel的“分析工具庫”宏后,可以使用函數(shù)DEC2HEX()將十進制轉(zhuǎn)換為十六進制,并使用函數(shù)TEXT()將其轉(zhuǎn)換為兩位的字符,再用運算符在其后面加上H,便得到了單片機程序中常用的十六進制數(shù)據(jù)格式。對應(yīng)圖2的Excel表格區(qū)域位置,5×7點陣中顯示“1”的第1行字模數(shù)據(jù)的公式為:=TEXT(DEC2HEX(B2+C2*2+D2*4+E2*8+F2*16),”00”)”H”,結(jié)果為04H;第1列字模數(shù)據(jù)的公式為:=TEXT(DEC2HEX(B2+B3*2+B4*4+B5*8+B6*16+B7*32+B8*64),”00””H”,結(jié)果為00H。其他行、列公式類推。同理,使用運算符可以將各字模數(shù)據(jù)組合成單片機程序的數(shù)據(jù)表格式。如圖2中第10行公式為:=”DB”B9,C9 ,D9,,E9 ,F(xiàn)9,得到1,的5×7點陣按列取的字模數(shù)據(jù)為DB 00H,42H,7FH,40H,00H;圖2中第11行公式為:=DBG2,G3 8L,G4,G5 ,G6,G7,G8,得到“1”的5×7點陣按行取的字模數(shù)據(jù)為DB04H,06H,04H,04H,04H,04H,0EH,成功生成單片機匯編語言數(shù)據(jù)表格式字模數(shù)據(jù),直接復(fù)制到單片機程序中即可使用。
評論