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