可以做兼職的網(wǎng)站有哪些工作室石家莊網(wǎng)站建設(shè)方案推廣
字模
字模,就是把文字符號轉(zhuǎn)換為LCD能識別的像素點陣信息。
電子發(fā)燒友可能都熟悉字模的用途。就是調(diào)用者通過向LCD模塊發(fā)送字模數(shù)據(jù),LCD根據(jù)字模數(shù)據(jù)在LCD面板上相應(yīng)的像素描繪出圖形或文字。
現(xiàn)在,大部分的LCD都內(nèi)置了字模庫,只需告訴LCD模塊想要顯示的文字和坐標(biāo),LCD就會自動查詢內(nèi)置的字模庫,然后就直接把內(nèi)容顯示出來。
但是,外送字模給LCD模塊去顯示,也還是支持的。
字模庫
字模庫,就是根據(jù)中文文字或英文字母,預(yù)先轉(zhuǎn)換成LCD可識別的像素點陣數(shù)據(jù),最后匯總所有點陣數(shù)據(jù)所生成的文件。字模庫具有可定位的特性。如輸入’x’字符,則可在庫中,根據(jù)’x’提取到對應(yīng)的點陣數(shù)據(jù)。
根據(jù)字符集的不同,字模庫也分為很多種。
如,在國內(nèi),通常使用GB2312字符集(簡體漢字),可以生成一個字模庫。在港臺,通常使用GBK(繁體漢字),也可以生成另一種字模庫。
本文中,以英文字符集生成的字模庫為例。
代碼
#include "stdafx.h"
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <dos.h>int _tmain(int argc, _TCHAR* argv[])
{int i, j;int a, b, c;//設(shè)定要顯示的文字,只能提取字母、數(shù)字、特殊字符//tab鍵在字模庫中不存在,提取空格代替unsigned char asc[] = "GET 123.45$ CYN。SPEND 5$";unsigned char zimo[32] = { 0 };unsigned int pos;FILE *fp = NULL;for (i = 0; i<sizeof(asc)-1; i++){fopen_s(&fp, "ASC16", "rb");if (asc[i] == '\t') //字模庫中不存在,用空格代替。{fseek(fp, (long)' ' * 16, SEEK_SET);fread(zimo, sizeof(unsigned char), 16, fp); /*讀32字節(jié)點陣數(shù)據(jù)*/}else{fseek(fp, (long)asc[i] * 16, SEEK_SET);fread(zimo, sizeof(unsigned char), 16, fp); /*讀32字節(jié)點陣數(shù)據(jù)*/}fclose(fp);//顯示提取到的字模數(shù)據(jù)for(j=0; j<16; j++)printf("%02x ", zimo[j]);printf("\n");//在console上模擬畫出對應(yīng)的文字。for (a = 0; a < 16; a++){for (c = 0; c < 8; c++){if (((zimo[a] >> (7 - c)) & 0x1) != 0x00)printf("* ");elseprintf(" ");}printf("\n");}}getchar();return 0;
}
運行結(jié)果
由于顯示原因,打印部分結(jié)果。
需要的可下載工程源碼!
完!