单片机应用中使用Excel实现任意点阵大小取字模 LED点阵作为一种重要的显示手段,得到了广泛的应用,在单片机控制的点阵显示系统程序中需要解决的一个重要问题就是字符点阵数据的获取,也就是常说的取字模。笔者在工作过程中也遇到这个问题,经学习和研究发现常用的取字模的方法是用专门的取字模软件来完成的,但也遇到点阵大小固定、不能随意选择的问题。比如,在控制5×7的LED点阵程序中,无法找到合适的软件取得字模。经研究试验发现,使用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行公式为:="DB"&G2&","&G3 8L","&G4&","&G5 &","&G6&","&G7&","&G8,得到“1”的5×7点阵按行取的字模数据为DB04H,06H,04H,04H,04H,04H,0EH,成功生成单片机汇编语言数据表格式字模数据,直接复制到单片机程序中即可使用。 扩展运用此法,在Excel中还可实现七段数码管求字形码。如图3中第9行中计算七段数码管求字形码的公式为:=TEXT(DEC2HEX(C2+D3*2+D5*4+C6*8+B5*16+B3*32+C4*64),"00")&"H",得到“2”的七段数码管求字形码为5BH。 在此使用Excel取字模的方法中: |