Proteus 仿真 16x16点阵实验绘字原理
16x16点阵,顾名思义,就是需要16x16=256个发光二极管组成,每个发光二极管都是可以控制亮灭的,亮的时候为1,灭的时候为0。分辨率更大的也是同样的原理。
因为这个比较简单,所以我们直接用例子来实现。
我做了一个“唐”字,首先确定那些地方需要亮灭,如图表格16x16,按照上面的规则,1为亮,0为灭,这里0我就没有打出来了。

在写汇编指令的时候的数据段,我们是每八位放一个数字,256/8=32,一共需要写入32个八位二进制数,我把这些八位二进制数都转换成了十六进制放在左边或者右边。每八位我用不同的颜色区分出来了,左八位是黄色,右边八位是橙色,方便转换进制。
在填写入数据段是,我们需要遵循两个规则。
首先,是每个八位的读数,注意这里的二进制是反着读的。平常我们读二进制是不是从左往右读的?而我们在这里读八位需要从右往左读。
比如:第四行的右八位,平常读成“1111 1100”,翻译成十六进制数就应该是“FC”。但是我们这里不这么读,我们读成“0011 1111”,翻译成十六进制就变成了“3F”。
其次,在填入每个转换的十六进制数时,我们反而是从左往右录入的。
比如,当我们录入前两排的数据时,应该录入为“000H, 01CH, 008H, 008H”。
“唐”字Proteus仿真,hex的数据段整个录入的结果(定义的字节):

运行结果:

最后我仍然要夹带私货,给我女儿(自己写的小说的女主)也做了一个她名字中的“樗”字。
数据段:

运行结果:

本文均为作者原创,如有错漏处请大佬们斧正,转载请标明出处~