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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3826|回復: 8
收起左側

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

[復制鏈接]
ID:379492 發表于 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,

"鄉", 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);
        }
}



回復

使用道具 舉報

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

{

uchar index[2];            

uchar msk[32];                     

}
這個數組什么意思?

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

使用道具 舉報

ID:379492 發表于 2018-9-7 12:36 | 顯示全部樓層
自己頂一個
回復

使用道具 舉報

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

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

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

后面的就好理解多了,判斷形參v是否等于c,即漢字編碼匹配,成功返回漢字在結構體數組中的位置k,就是比對到的那個計數值。

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

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

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

使用道具 舉報

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

        unsigned char  Index[2];            // 漢字內碼索引,一個漢字占兩個字節       
        unsigned char  Msk[32];             // 點陣碼數據(16*16有32個數據)
回復

使用道具 舉報

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

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

評分

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

查看全部評分

回復

使用道具 舉報

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

好的,謝謝你啊,一樓講的的很詳細,我看懂了,和你說的是一樣,謝謝啊
回復

使用道具 舉報

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

我又遇到了一個問題,我開了一個新帖子,能幫幫我嗎?
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 中文字幕免费视频 | 日韩视频免费看 | 精品国产青草久久久久96 | 亚洲精品久久久久久首妖 | av黄色在线 | 范冰冰一级做a爰片久久毛片 | 亚洲精品国产a久久久久久 午夜影院网站 | 在线视频国产一区 | 亚洲夜射| 一级高清免费毛片 | 在线国产视频 | 欧美日在线 | 中文字幕亚洲欧美日韩在线不卡 | 亚洲国产精品一区在线观看 | 成人在线视频免费观看 | 伊人久久综合 | 国产在线精品一区二区三区 | 99精品久久久 | 天天干夜夜操 | 精精国产xxxx视频在线播放7 | 伊人春色成人 | 成人三级电影 | 中文字幕乱码一区二区三区 | 99久久久国产精品 | 国产精品夜间视频香蕉 | www国产亚洲精品久久网站 | 男女羞羞视频在线免费观看 | 亚洲电影成人 | 日韩精品一 | 亚洲九九| 国产精品久久久久久久久久 | 浴室洗澡偷拍一区二区 | 亚洲精品在线视频 | 中文字幕1区 | 九九热在线精品视频 | av国产精品 | 亚洲欧美自拍偷拍视频 | 欧美久久一区二区三区 | 久久99精品久久久久久 | 日韩福利| 天天看天天操 |