新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 單片機(jī)利用條件格式從Excel軟件提取字模的方法

單片機(jī)利用條件格式從Excel軟件提取字模的方法

作者: 時間:2011-10-14 來源:網(wǎng)絡(luò) 收藏

LED點陣作為一種重要的顯示手段,得到了廣泛的應(yīng)用,在單片機(jī)控制的點陣顯示系統(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()將十進(jìn)制轉(zhuǎn)換為十六進(jìn)制,并使用函數(shù)TEXT()將其轉(zhuǎn)換為兩位的字符,再用運(yùn)算符在其后面加上H,便得到了單片機(jī)程序中常用的十六進(jìn)制數(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。其他行、列公式類推。同理,使用運(yùn)算符可以將各字模數(shù)據(jù)組合成單片機(jī)程序的數(shù)據(jù)表格式。如圖2中第10行公式為:=”DB”B9","C9 ","D9",","E9 ","F9,得到"1",的5×7點陣按列取的字模數(shù)據(jù)為DB 00H,42H,7FH,40H,00H;圖2中第11行公式為:="DB"G2","G3 8L","G4","G5 ","G6","G7","G8,得到“1”的5×7點陣按行取的字模數(shù)據(jù)為DB04H,06H,04H,04H,04H,04H,0EH,成功生成單片機(jī)匯編語言數(shù)據(jù)表格式字模數(shù)據(jù),直接復(fù)制到單片機(jī)程序中即可使用。

擴(kuò)展運(yùn)用此法,在Excel中還可實現(xiàn)七段數(shù)碼管求字形碼。如圖3中第9行中計算七段數(shù)碼管求字形碼的公式為:=TEXT(DEC2HEX(C2+D3*2+D5*4+C6*8+B5*16+B3*32+C4*64),"00")"H",得到“2”的七段數(shù)碼管求字形碼為5BH。

在此使用Excel取字模的方法中:
①點陣取模的高低位順序問題可以通過調(diào)整單元格計算公式中各位的位權(quán)來修改。
②不同大小點陣取字模時,以文中5×7點陣類推,畫出對應(yīng)大小區(qū)域并修改公式計算的單元格數(shù)量即可實現(xiàn)。
③此方法中如果條件格式設(shè)置為“單元格數(shù)值等于1時單元格格式為黑色底紋”,則計算和求字形碼
顯示結(jié)果為共陰極數(shù)碼管字形碼,即亮的字段為1。如需
共陽極數(shù)碼管字形碼,即亮的字段為0,則將條件格式設(shè)置為“單元格數(shù)值等于0時單元格格式為黑色底紋”,并在不需要點亮的位置輸入1,公式不變即可實現(xiàn)。



評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉