久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 3871|回復(fù): 8
收起左側(cè)

求解一段單片機(jī)小程序,關(guān)于12864(不帶字符)

[復(fù)制鏈接]
ID:379492 發(fā)表于 2018-9-7 09:29 | 顯示全部樓層 |閱讀模式
struct                         //漢字可以隨便加
{
uchar index[2];            
uchar msk[32];                     
}
code hzdate[6] = {        
"新",
          0x20,0x24,0x2C,0x35,0xE6,0x34,0x2C,0x24,0x00,0xFC,0x24,0x24,0xE2,0x22,0x22,0x00,
      0x21,0x11,0x4D,0x81,0x7F,0x05,0x59,0x21,0x18,0x07,0x00,0x00,0xFF,0x00,0x00,0x00,

"鄉(xiāng)", 0x00,0x00,0x00,0x20,0x30,0x28,0xAC,0xA7,0x62,0x20,0x30,0x1C,0xC8,0x80,0x00,0x00,
      0x00,0x40,0x40,0x42,0x47,0x23,0x22,0x22,0x12,0x11,0x09,0x07,0x01,0x00,0x00,0x00,

"安", 0x80,0x90,0x8C,0x84,0x84,0xF4,0xA5,0x86,0x84,0x84,0x84,0x84,0x94,0x8C,0x84,0x00,
      0x80,0x80,0x80,0x40,0x47,0x28,0x28,0x10,0x28,0x24,0x43,0xC0,0x40,0x00,0x00,0x00,

"科", 0x10,0x12,0x92,0x72,0xFE,0x51,0x91,0x00,0x22,0xCC,0x00,0x00,0xFF,0x00,0x00,0x00,
      0x04,0x02,0x01,0x00,0xFF,0x00,0x04,0x04,0x04,0x02,0x02,0x02,0xFF,0x01,0x01,0x00,

"電", 0x00,0x00,0xF8,0x48,0x48,0x48,0x48,0xFF,0x48,0x48,0x48,0x48,0xF8,0x00,0x00,0x00,
      0x00,0x00,0x0F,0x04,0x04,0x04,0x04,0x3F,0x44,0x44,0x44,0x44,0x4F,0x40,0x70,0x00,

"子", 0x00,0x00,0x02,0x02,0x02,0x02,0x02,0xE2,0x12,0x0A,0x06,0x02,0x00,0x80,0x00,0x00,
      0x01,0x01,0x01,0x01,0x01,0x41,0x81,0x7F,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,  
};

/**********************字形碼位置檢索************************/  
  uint hz(uint v)
{         uchar k;
    uint c;         
          for(k=0;k<6;k++)
        {
         c=hzdate[k].index[0]<<8|hzdate[k].index[1];   
         if(v==c) return (k);
        }
}



回復(fù)

使用道具 舉報(bào)

ID:379492 發(fā)表于 2018-9-7 09:30 | 顯示全部樓層
想問一下
struct                         //漢字可以隨便加

{

uchar index[2];            

uchar msk[32];                     

}
這個(gè)數(shù)組什么意思?

c=hzdate[k].index[0]<<8|hzdate[k].index[1];   這句程序是什么意思啊?
求大神賜教
回復(fù)

使用道具 舉報(bào)

ID:379492 發(fā)表于 2018-9-7 12:36 | 顯示全部樓層
自己頂一個(gè)
回復(fù)

使用道具 舉報(bào)

ID:362076 發(fā)表于 2018-9-7 20:57 | 顯示全部樓層
本帖最后由 凌凈清河 于 2018-9-7 21:12 編輯

是這樣的,struct定義了一個(gè)結(jié)構(gòu)體,這個(gè)結(jié)構(gòu)體中有兩個(gè)數(shù)組元素index和msk,可以看出,這兩個(gè)數(shù)組都是unsigned char類型的,也就是說,每一個(gè)數(shù)組中的元素大小為1個(gè)字節(jié)。
然后程序使用這個(gè)結(jié)構(gòu)體定義了一個(gè)結(jié)構(gòu)體數(shù)組hzdate[6],這個(gè)時(shí)候要注意為什么6個(gè)漢字可以一起寫入到結(jié)構(gòu)體中,因?yàn)樵趦?nèi)存中,這一個(gè)結(jié)構(gòu)體里面兩個(gè)連續(xù)的數(shù)組空間是挨著的,也就是說,看似定義的兩個(gè)數(shù)組,實(shí)際上是一個(gè)temp[34]數(shù)組,而一次性創(chuàng)建的6個(gè)結(jié)構(gòu)體數(shù)組又把6個(gè)temp[34]的內(nèi)存空間順序安排了。
上面這個(gè)是理解的基礎(chǔ)。然后進(jìn)行下一步分析。可以看到,每一個(gè)漢字在字模表里的存放分為兩個(gè)部分,第一個(gè)部分是漢字本身,而后跟著漢字的字模,因?yàn)樵谟?jì)算機(jī)中一個(gè)漢字占用的是兩個(gè)字節(jié),而注意到之前定義的index數(shù)組是unsigned char類型,所以需要index[2]存放這兩個(gè)字節(jié)的漢字信息,這個(gè)時(shí)候就把漢字轉(zhuǎn)換成兩個(gè)unsigned char類型的數(shù)值,也就是拆分之后的漢字編碼,其中,高8位被存放在index[0]中,低8位被存放在index[1]中,便于后續(xù)比對(duì)。
而6個(gè)漢字的編碼和字模就分別存放在結(jié)構(gòu)體數(shù)組中的每個(gè)元素結(jié)構(gòu)體里了。

我們知道結(jié)構(gòu)體中成員的調(diào)用,是結(jié)構(gòu)體.成員名,所以hzdate[k].index[0]指代的是hzdate結(jié)構(gòu)體數(shù)組中的第k個(gè)元素的index成員中的第1個(gè)元素;
我們繼續(xù),<<這個(gè)符號(hào)是將數(shù)據(jù)(理解成二進(jìn)制)左移,所以<<8指的是左移8個(gè)位,而8位正好是一個(gè)字節(jié)的大小,|這個(gè)符號(hào)將index[1]和左移過的index[0]進(jìn)行位或操作,可以理解為將漢字的高8位和低8位拼接起來了。故hzdate[k].index[0]<<8|hzdate[k].index[1]這句話的意思就是將第k個(gè)漢字的字型編碼由兩個(gè)unsigned char類型合并成unsigned int類型,繼而賦值給c。

后面的就好理解多了,判斷形參v是否等于c,即漢字編碼匹配,成功返回漢字在結(jié)構(gòu)體數(shù)組中的位置k,就是比對(duì)到的那個(gè)計(jì)數(shù)值。

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:111634 發(fā)表于 2018-9-8 21:16 | 顯示全部樓層
本帖最后由 zl2168 于 2018-9-9 17:12 編輯

不要去看這些沒頭沒腦的東東,費(fèi)時(shí)費(fèi)力一場空。
給你介紹一本書,張志良編著的:《80C51單片機(jī)仿真設(shè)計(jì)實(shí)例教程——基于Keil CProteus》清華大學(xué)出版社ISBN 978-7-302-41682-1內(nèi)有常用的單片機(jī)應(yīng)用100案例,用于仿真實(shí)驗(yàn)操作,電路與程序真實(shí)可靠可信可行,可演示,可觀測,
程序語句條條有注解
實(shí)驗(yàn)25 LCD12864顯示屏顯示.rar (60.48 KB, 下載次數(shù): 8)
12864.jpg
Proteus仿真一下,確認(rèn)有效。以上摘自張志良編著《80C51單片機(jī)仿真設(shè)計(jì)實(shí)例教程——基于Keil CProteus》清華大學(xué)出版社ISBN 978-7-302-41682-1內(nèi)有常用的單片機(jī)應(yīng)用100案例,用于仿真實(shí)驗(yàn)操作,電路與程序真實(shí)可靠可信可行,可演示,可觀測,程序語句條條有注解。
回復(fù)

使用道具 舉報(bào)

ID:164602 發(fā)表于 2018-9-10 08:37 | 顯示全部樓層
850787641@qq.co 發(fā)表于 2018-9-7 09:30
想問一下
struct                         //漢字可以隨便加

        unsigned char  Index[2];            // 漢字內(nèi)碼索引,一個(gè)漢字占兩個(gè)字節(jié)       
        unsigned char  Msk[32];             // 點(diǎn)陣碼數(shù)據(jù)(16*16有32個(gè)數(shù)據(jù))
回復(fù)

使用道具 舉報(bào)

ID:379492 發(fā)表于 2018-9-12 08:52 | 顯示全部樓層
凌凈清河 發(fā)表于 2018-9-7 20:57
是這樣的,struct定義了一個(gè)結(jié)構(gòu)體,這個(gè)結(jié)構(gòu)體中有兩個(gè)數(shù)組元素index和msk,可以看出,這兩個(gè)數(shù)組都是unsi ...

解釋的太詳細(xì)了,都是一個(gè)個(gè)手打的,這么多字,講的非常詳細(xì),這下我理解了,太謝謝你了,真的太謝謝你了

評(píng)分

參與人數(shù) 1黑幣 +15 收起 理由
凌凈清河 + 15 不用謝,至少我這些字沒白打哈~

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:379492 發(fā)表于 2018-9-12 08:53 | 顯示全部樓層
HC6800-ES-V2.0 發(fā)表于 2018-9-10 08:37
unsigned char  Index[2];            // 漢字內(nèi)碼索引,一個(gè)漢字占兩個(gè)字節(jié)       
        unsigned char  Msk[32]; ...

好的,謝謝你啊,一樓講的的很詳細(xì),我看懂了,和你說的是一樣,謝謝啊
回復(fù)

使用道具 舉報(bào)

ID:379492 發(fā)表于 2018-9-13 11:11 | 顯示全部樓層
850787641@qq.co 發(fā)表于 2018-9-12 08:52
解釋的太詳細(xì)了,都是一個(gè)個(gè)手打的,這么多字,講的非常詳細(xì),這下我理解了,太謝謝你了,真的太謝謝你了

我又遇到了一個(gè)問題,我開了一個(gè)新帖子,能幫幫我嗎?
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 免费看片在线播放 | 欧美精选一区二区 | 精品一区二区三区在线视频 | 日韩精品一区二区三区在线观看 | 日韩欧美成人一区二区三区 | 自拍偷拍视频网 | 久久精品在线免费视频 | 天天精品在线 | 国产精品爱久久久久久久 | 久久亚洲综合 | 亚洲综合国产精品 | 成人免费一区二区三区视频网站 | www.久久| 一区二区三区四区在线视频 | 免费观看av网站 | 日韩久久精品视频 | 最新国产精品 | 亚洲高清一区二区三区 | 国产精品久久久久久久久久久久 | 成人精品鲁一区一区二区 | 亚洲免费网站 | 91久久国产综合久久91精品网站 | 国产黄色在线观看 | 中文字幕精品视频在线观看 | 999精品在线观看 | 国产精品视频在线播放 | 最近日韩中文字幕 | 免费观看色 | 久久99精品久久久 | 黄色三级在线播放 | 成人欧美一区二区三区黑人孕妇 | 国产资源一区二区三区 | 国产精品久久片 | 97精品国产97久久久久久免费 | 天天综合网永久 | 超碰伊人久久 | 午夜精品影院 | 午夜影院在线免费观看视频 | 中文精品一区二区 | 日产精品久久久一区二区福利 | 国产精品网页 |