单片机应用中从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行公式为:=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取字模的方法中:
①点阵取模的高低位顺序问题可以通过调整单元格计算公式中各位的位权来修改。
②不同大小点阵取字模时,以文中5×7点阵类推,画出对应大小区域并修改公式计算的单元格数量即可实现。
③此方法中如果条件格式设置为“单元格数值等于1时单元格格式为黑色底纹”,则计算和求字形码
显示结果为共阴极数码管字形码,即亮的字段为1。如需
共阳极数码管字形码,即亮的字段为0,则将条件格式设置为“单元格数值等于0时单元格格式为黑色底纹”,并在不需要点亮的位置输入1,公式不变即可实现。
推荐几款便宜又好用的蓝牙耳机,值得拥有赶紧入手吧
Intel指控前员工窃取技术机密给美光
联通携手华为共同推进车联网创新发展
分析打造“绿色低能耗数据中心”的可实施方案
一加跳脱平价策略,首款5G手机定价可能超过300美元
单片机应用中从Excel软件提取字模的方法
在英特尔RealSouth.Unity工具包中对资产应用操作
赛灵思、Arm、Cadence和台积公司宣布一项合作,将构建加速器测试芯片
日立电器开发出可调光小型LED灯泡
凌云光成功登陆科创板,机器视觉的应用领域逐渐扩大
关于铠装光纤跳线综合布线厂家有话说-clan
特朗普拟邀库克共进晚餐,称赞苹果向美国经济中注入“巨额资金”
联发科技正式对外发布天玑1000+ 5G芯片
苹果将于9月发售三款全新的iPhone相机系统会有大幅度提升
现场使用磁翻板液位计有哪些校准方法
一篇文章读懂读透FPGA AXI4 总线协议
RT-1圈铁耳机评测 整体的音质解析表现不错
多媒体投影互动系统问答总汇
华为举行2021春季华为全屋智能及智慧屏旗舰新品发布会
海信进入总线方法