lcd顯示漢字——取模加顯示

1、顯示漢字涣楷,有專(zhuān)門(mén)的的字庫(kù)分唾,但是漢字很多,每一個(gè)漢字都需要專(zhuān)門(mén)的編碼,需要更大的存儲(chǔ)空間存放字庫(kù)狮斗,因此需要外部 flash

2绽乔、無(wú)論是漢字還是英文,顯示的原理都是一樣的——都是像素點(diǎn)的亮滅碳褒,顯示出我們想要的形狀折砸,不同lcd的分辨率會(huì)有不一樣。

像素點(diǎn)展示

3沙峻、如同上面一個(gè)漢字“實(shí)”睦授,編碼如下(陰碼——1為亮,0為滅摔寨;陽(yáng)碼——1為滅去枷,0為亮)

{0x08,0x20,0x30,0x21,0x20,0x21,0x21,0x22,0x28,0xE2,0x26,0x24,0xA0,0x28,0x60,0x30,

 0x2F,0xE0,0x20,0x30,0x20,0x28,0x20,0x24,0x20,0x22,0x28,0x21,0x30,0x20,0x00,0x00},/*"實(shí)",4*/

那么我們?cè)陲@示的時(shí)候,在為1 的地方一個(gè)點(diǎn)就好是复,為0的地方就删顶;

0x08:——0000 1000,再看看第一張圖片淑廊,從上往下找逗余,第五個(gè)像素點(diǎn)就點(diǎn)亮

相應(yīng)的,16 x 16 的漢字就需要16 x 16個(gè)像素點(diǎn)才能顯示一個(gè)漢字季惩,一個(gè)16進(jìn)制數(shù)為8位录粱,還差8位,因此需要兩個(gè)16進(jìn)制數(shù)才能顯示一列的像素點(diǎn)蜀备。

4关摇、取模軟件使用的是:PCtoLCD2002完美版,軟件界面如下圖所示碾阁。主要設(shè)置字的大小就好就好,注意:在字的大小上面還有一個(gè)對(duì)應(yīng)的英文大小些楣,這個(gè)是取英文字母字模大小脂凶,但是宪睹,誰(shuí)會(huì)去取英文字母的模呢,除非尺寸不和要求蚕钦。

[PCtoLCD2002完美版界面圖]

之后點(diǎn)擊界面1 的齒輪亭病,進(jìn)行設(shè)置。怎么選擇的取模方式嘶居,那么在寫(xiě)顯示函數(shù)的時(shí)候就得使用相同的方式進(jìn)行對(duì)像素點(diǎn)進(jìn)行處理罪帖。

設(shè)置界面

1、陰碼——1為亮邮屁,0為滅整袁;陽(yáng)碼——1為滅,0為亮佑吝;

2坐昙、取模方式:怎么取的就怎么進(jìn)行顯示就好,如逐列式芋忿,就是一列一列讀炸客;像oled比較特殊,需要列行式戈钢,顯示的時(shí)候也是八行顯示像素點(diǎn)為一個(gè)陣列痹仙。

3、方向是哪個(gè)方向得看 ——取模走向殉了,順向就從上往下瓤觥;

4宣渗、C51時(shí)使用C語(yǔ)言取模的固定操作抖所;

5、點(diǎn)陣大小就是最后生成的數(shù)組是多少個(gè)一行痕囱,如24田轧,那么就是24個(gè)數(shù)據(jù)一行,剩下的就在下一行鞍恢,這個(gè)不影響數(shù)據(jù)內(nèi)容傻粘,只是最后你復(fù)制的時(shí)候需不需要進(jìn)行改一下格式,好看一點(diǎn)而已帮掉,至于前綴后綴那些也只是最后生成的數(shù)組是什么樣的弦悉。如下數(shù)據(jù):
{0x08,0x20,0x30,0x21,0x20,0x21,0x21,0x22,0x28,0xE2,0x26,0x24,0xA0,0x28,0x60,0x30,0x2F,0xE0,0x20,0x30,0x20,0x28,0x20,0x24}, {0x20,0x22,0x28,0x21,0x30,0x20,0x00,0x00},/*"實(shí)",0*/
最后在數(shù)組里面使用的時(shí)候肯定要改一下格式而已,要不然如何使用蟆炊。

5稽莉、程序源碼

  • 相關(guān)程序的編寫(xiě)得參考你是用的LCD或者OLED屏,查看顯示字符的函數(shù)涩搓,知道掃描方向(當(dāng)然取模的時(shí)候就知道掃描方向了)污秆,哪個(gè)是x劈猪,哪個(gè)是y,加以修改就可得到顯示漢字的函數(shù)良拼。
const unsigned char Word[100] = "實(shí)踐班";//將取模的漢字全部放在這
const unsigned char WordCode[10][32] = {//漢字的模战得,一 一對(duì)應(yīng),不能亂了順序
{0x08,0x20,0x30,0x21,0x20,0x21,0x21,0x22,0x28,0xE2,0x26,0x24,0xA0,0x28,0x60,0x30,
0x2F,0xE0,0x20,0x30,0x20,0x28,0x20,0x24,0x20,0x22,0x28,0x21,0x30,0x20,0x00,0x00},/*實(shí)",0*/
 
{0x00,0x04,0x7C,0xFC,0x44,0x04,0x47,0xF8,0x44,0x88,0x7C,0x88,0x00,0x02,0x09,0x02,
0x09,0x04,0xFF,0xC8,0x09,0x30,0x92,0x28,0x52,0x44,0x12,0x82,0x02,0x1F,0x00,0x00},/*"踐",1*/
 
{0x21,0x08,0x21,0x0C,0x3F,0xF8,0x21,0x10,0x21,0x11,0x00,0x42,0x1F,0x84,0x00,0x18,
0xFF,0xE0,0x00,0x00,0x21,0x04,0x21,0x04,0x3F,0xFC,0x21,0x04,0x21,0x04,0x00,0x00},/*"班",2*/
};
 //顯示一個(gè)漢字庸推,16*16
void DisplayWord(u8 x0,u8 y0,u8 *buf)     
{
    u8 temp = 0,t1 = 0,i = 0,j = 0,x = x0,y = y0,num = 0;
    for(i=0;i<strlen((char *)Word);i++)
    {
        if(buf[i]==Word[i]&&buf[i+1]==Word[i+1])num = i/2;      //一個(gè)漢字占兩個(gè)字節(jié)
    }
    for(i = 0;i < 32;i++)//32 是由于一列16 個(gè)像素點(diǎn)常侦,需要兩個(gè)編碼才能控制一列,因此需要在32個(gè)8位編碼
    {
        temp = WordCode[num][i];
        for(t1 = 0;t1 < 8;t1++)
        {               
            if(temp&0x80)LCD_Fast_DrawPoint(x,y,POINT_COLOR);//點(diǎn)亮一個(gè)像素點(diǎn)
            temp <<= 1;//依次找完
            y++;
            if(y >= y0 + 16)
            {
                y = y0;
                x++;//換列
            }
        }
    }
}
//顯示漢字字符串贬媒,16*16
void DisplayStringWord(u8 x,u8 y,u8 *buf,u16 color)
{    
    u8 i = 0,j = 0, x1 = x, y1 = y;
    POINT_COLOR = color;
    
    for(i=0;i<strlen((char *)buf);i+=2)
    {
        DisplayWord(x1,y1,&buf[i]);
        x1 = x1 + 16;
    }
}

最后

如果你不理解上面的敘述聋亡,那么你可以將某個(gè)英文的編碼找出來(lái),然后按照順序一個(gè)一個(gè)按照二進(jìn)制進(jìn)行排列掖蛤,
如:上面 “實(shí)” 的編碼

{0x08,0x20,0x30,0x21,0x20,0x21,0x21,0x22,0x28,0xE2,0x26,0x24,0xA0,0x28,0x60,0x30,
0x2F,0xE0,0x20,0x30,0x20,0x28,0x20,0x24,0x20,0x22,0x28,0x21,0x30,0x20,0x00,0x00}
0x08——0000 1000
0x20——0010 0000
.......
依次寫(xiě)完杀捻,你會(huì)理解像素點(diǎn)顯示的奧秘

就這樣寫(xiě)下來(lái),你會(huì)發(fā)現(xiàn)蚓庭,怎么有點(diǎn)像致讥,好像之后一半,然后再組合下器赞,在倒一下......垢袱,真的比較神奇。
當(dāng)然最好的對(duì)象是數(shù)字——0港柜,不信你自己試試看请契,試了之后再來(lái)理解我說(shuō)的話,再看下文章夏醉,你會(huì)豁然開(kāi)朗爽锥。

這個(gè)方法是出自我們創(chuàng)新班的一位大佬,我看他這樣搞畔柔,我也試著這樣做氯夷。
當(dāng)然了,不同的顯示屏的驅(qū)動(dòng)代碼不同靶擦,自然顯示方式也有差異腮考,因此,必須的參考代碼中是怎么顯示英文的玄捕,然后試著改怎么顯示中文踩蔚。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市枚粘,隨后出現(xiàn)的幾起案子馅闽,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,651評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件捞蛋,死亡現(xiàn)場(chǎng)離奇詭異孝冒,居然都是意外死亡柬姚,警方通過(guò)查閱死者的電腦和手機(jī)拟杉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,468評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)量承,“玉大人搬设,你說(shuō)我怎么就攤上這事∷汉矗” “怎么了拿穴?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,931評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)忧风。 經(jīng)常有香客問(wèn)我默色,道長(zhǎng),這世上最難降的妖魔是什么狮腿? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,218評(píng)論 1 292
  • 正文 為了忘掉前任腿宰,我火速辦了婚禮,結(jié)果婚禮上缘厢,老公的妹妹穿的比我還像新娘吃度。我一直安慰自己,他們只是感情好贴硫,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,234評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布椿每。 她就那樣靜靜地躺著,像睡著了一般英遭。 火紅的嫁衣襯著肌膚如雪间护。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,198評(píng)論 1 299
  • 那天挖诸,我揣著相機(jī)與錄音汁尺,去河邊找鬼。 笑死税灌,一個(gè)胖子當(dāng)著我的面吹牛均函,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播菱涤,決...
    沈念sama閱讀 40,084評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼苞也,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了粘秆?” 一聲冷哼從身側(cè)響起如迟,我...
    開(kāi)封第一講書(shū)人閱讀 38,926評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后殷勘,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體此再,經(jīng)...
    沈念sama閱讀 45,341評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,563評(píng)論 2 333
  • 正文 我和宋清朗相戀三年玲销,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了输拇。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,731評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡贤斜,死狀恐怖策吠,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情瘩绒,我是刑警寧澤猴抹,帶...
    沈念sama閱讀 35,430評(píng)論 5 343
  • 正文 年R本政府宣布,位于F島的核電站锁荔,受9級(jí)特大地震影響蟀给,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜阳堕,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,036評(píng)論 3 326
  • 文/蒙蒙 一跋理、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧嘱丢,春花似錦薪介、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,676評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至缀旁,卻和暖如春记劈,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背并巍。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,829評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工目木, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人懊渡。 一個(gè)月前我還...
    沈念sama閱讀 47,743評(píng)論 2 368
  • 正文 我出身青樓刽射,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親剃执。 傳聞我的和親對(duì)象是個(gè)殘疾皇子誓禁,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,629評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容