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