图10
图11
图12
然后在下面输入框里输入汉字回车后,左边显示点阵字,见图10。对点阵自行修饰改动,用鼠标点选即可,例如竖笔加粗等,这里没改。
点右旋90度按钮,点阵汉字右旋90度,其目的是由上往下取码,相当于显示时从左往右显示。点“提取字模”按钮,字模代码呈现在点阵下面,见图11。注意字模码有2行,上行对应旋转后的右半区域从上往下取码,下行对应左半区域从上往下取码,这就等同于旋转前的汉字从左往右取码,而上行代码对应的是汉字的上半代码,下行则对应的是汉字的下半代码。正好符合上述汉字显示程序先显示上半部后显示下半部的要求。这样就取得了例子中的字模代码。
可以把所需的汉字逐一取码,然后存在二维表中,就形成了16×16点阵字模数组。 因为单片机FLASH ROM程序存储空间较大而RAM较小,而一个16点阵汉字占据32字节,10个字就320字节,对于RAM通常在几百到1K字节以下的单片机嫌太大,所以字库应该存放在FLASH区比较合理。但是读出FLASH中的数据,程序还要变一下,以使用GCC编程为例,前述字模常量和程序修改如下:
const unsigned char_[?]PROGMEM{0x80,0x40,0x70,0xCF,0x48,0x48,0x00,0xF0,0x10,0x10,0xFF,0x10,0x10,0xF8,0x10,0x00,0x02,0x02,0x02,0x7F,0x22,0x12,0x00,0x07,0x02,0x02,0xFF,0x02,0x02,0x07,0x00,0x00,};
要在第2页第6列显示“钟”,用一个稍稍不同的函数: LcdShowFlash1616(unsigned x,unsigned y, const char *p); 即:LcdShowFlash1616(6,2, ZHONG_); 就行了。
以上各有关函数具体内容可到《无线电》网站上下载。
制作非标准的字模
有时我们需要一些“非标准的”字符,例如12宽×16高或者8×8字符,同样也可以使用上述工具,不过这时字符就要用鼠标在选定区域内逐点点出,因为他提取的时候还是针对16×16点阵,所以最后还要去除多余的0字节,如图12表示一个数字9的取模。得到的代码上下排都去掉最后4个0字节如图中下面画线的那8个。最后每个字就24字节,程序中循环此书作相应改变。
好了 喋喋不休一大堆,基本方法都交代了,说得口干看得头大,这次就到这里,下次结合一个具体的小日历钟,看看该怎么整。
大大小小的液晶模块在电子市场里有很多种,读者朋友不一定限于笔者所用的型号,更多lcd液晶显示模块请关注显杰科技www.szxianjie.com