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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2453|回復: 0
打印 上一主題 下一主題
收起左側

基于SC95F8616單片機的W25Q16中文字庫構建及使用

[復制鏈接]
跳轉到指定樓層
樓主
ID:776997 發(fā)表于 2020-7-16 16:21 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
本帖最后由 jinglixixi 于 2020-7-17 19:13 編輯

1. 串行通訊傳送字庫文件
首先制作一個測試文件HEX.TXT


然后編寫主程序,其代碼如下:
  1. extern bit Uart0SendFlag;
  2. extern bit Uart0ReceiveFlag;

  3. uint8_t  Send_DATA[16];
  4. uint8_t  Rec_DATA[16];

  5. void main(void)
  6. {
  7.           uint8_t j
  8.          Uart0Init();
  9.          enableInterrupts();
  10.          while(1)
  11.          {
  12.              if(Uart0ReceiveFlag)
  13.              {
  14.                              Uart0ReceiveFlag = 0;
  15.                               u=UART0_ReceiveData8();
  16.                               printf("%c",u);
  17.                               j++;
  18.             }
  19.             if(j==16)
  20.             {
  21.                j=0;   
  22.            }
  23.        }
  24. }
復制代碼

輔助函數(shù)為:
  1. void Uart0Init(void)
  2. {
  3.          GPIO_Init(GPIO2, GPIO_PIN_1, GPIO_MODE_IN_PU);
  4.          UART0_Init(32000000, 9600, UART0_Mode_10B, UART0_CLOCK_TIMER1, UART0_RX_ENABLE);
  5.          UART0_ITConfig(ENABLE, LOW);
  6. }

  7. char putchar(char c)
  8. {
  9.          UART0_SendData8(c);
  10.          while(!Uart0SendFlag);
  11.          Uart0SendFlag = 0;
  12.          return c;
  13. }
復制代碼

通訊中斷復位程序為:
  1. void UART0Interrupt()              interrupt 4
  2. {
  3.          if(UART0_GetFlagStatus(UART0_FLAG_TI))
  4.          {
  5.                    UART0_ClearFlag(UART0_FLAG_TI);
  6.                    Uart0SendFlag = 1;
  7.          }
  8.          else if(UART0_GetFlagStatus(UART0_FLAG_RI))
  9.          {
  10.                    UART0_ClearFlag(UART0_FLAG_RI);
  11.                    Uart0ReceiveFlag = 1;   
  12.                    UART0_SendData8(UART0_ReceiveData8());
  13.          }
  14. }
復制代碼

在下載程序后,首先打開串口調試器并設好通訊參數(shù)。然后按“讀取文件”按鈕,以載入發(fā)送文件。再將發(fā)送方式選為16進制,點擊“發(fā)送”按鈕加以發(fā)送,則獲得圖示的結果,說明收發(fā)數(shù)據(jù)項一致是可行的。
串口收發(fā)效果

將下面的字庫文件發(fā)送給存儲模塊并保存,以便后續(xù)測試。


2.以區(qū)位碼進行漢字顯示
在使用自建字庫,由于規(guī)模小,一般是使用順序號來調用字模,但要使用一個完整的字庫,則要參照區(qū)位碼來調用字模。
本打算以這種方式來進行OLED_ShowCHineseh(0,2,''),無奈編譯系統(tǒng)不支持,只好直接采用區(qū)位碼的方式OLED_ShowCHineseh(0,2,0xB0A1),其運行效果如圖所示。

以區(qū)位碼顯示中文

顯示顯示效果的主程序如下:
  1. void main(void)
  2. {
  3.          OLED_Init();
  4.          OLED_Clear();
  5.          OLED_ShowCHineseh(0,2,0xB0A1);   //啊
  6.          OLED_ShowCHineseh(16,2,0xB0A2);  //阿
  7.          OLED_ShowCHineseh(32,2,0xB0A3);  //埃
  8.          OLED_ShowCHineseh(48,2,0xB0A4);  //挨
  9.          OLED_ShowCHineseh(64,2,0xB0A5);  //哎
  10.         
  11.          OLED_ShowCHineseh(0,4,0xB0A6);   //唉
  12.          OLED_ShowCHineseh(16,4,0xB0A7);  //哀
  13.          OLED_ShowCHineseh(32,4,0xB0A8);  //皚
  14.          OLED_ShowCHineseh(48,4,0xB0A9);  //癌
  15.          OLED_ShowCHineseh(64,4,0xB0AA);  //藹
  16.          while(1);
  17. }
復制代碼

按區(qū)位碼顯示中文函數(shù)為:
  1. void OLED_ShowCHineseh(unsigned char x,unsigned char y,unsigned int no)
  2. {                                
  3.            unsigned char t,q,w,u;
  4.            // 暫未添加區(qū)碼處理
  5.            // q=(unsigned char) (no&0xff00)>>8;
  6.            // w=(q-176)*94+w
  7.            w=(unsigned char) no&0xff;
  8.            w=(w-0xA1)*2;
  9.            if(w>9)
  10.            {
  11.                                OLED_ShowChar(16,0,w/10+'0',16);
  12.            }
  13.            OLED_ShowChar(24,0,w%10+'0',16);
  14.            OLED_Set_Pos(x,y);   
  15.            for(t=0;t<16;t++)
  16.            {
  17.                                OLED_WR_Byte(Hzk[w][t],OLED_DATA);
  18.            }  
  19.            q=q+1;
  20.            OLED_Set_Pos(x,y+1);         
  21.            for(t=0;t<16;t++)
  22.            {  
  23.                               OLED_WR_Byte(Hzk[w][t],OLED_DATA);
  24.            }
  25. }
復制代碼

這樣在具備完整中文字庫的情況下,我們就可以按漢字的編碼從字庫中讀取字模來顯示中文信息。

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 精品乱码一区二区 | 亚洲国产精品人人爽夜夜爽 | 久久成人国产精品 | 欧美日韩不卡在线 | 亚洲精品一区中文字幕乱码 | 午夜精品一区二区三区在线视频 | 91在线电影| 99精品国产一区二区青青牛奶 | 亚洲自拍偷拍免费视频 | 欧美激情综合网 | 91丨九色丨国产在线 | 国产精品国产成人国产三级 | 精精国产xxxx视频在线野外 | 自拍 亚洲 欧美 老师 丝袜 | 国产精品夜夜夜一区二区三区尤 | 91成人精品 | 精品国产三级 | 中文字字幕一区二区三区四区五区 | 成人久久久久久久久 | 日韩欧美一区二区三区免费看 | 91麻豆精品国产91久久久更新资源速度超快 | 成人性视频免费网站 | 亚洲 欧美 日韩 在线 | 欧美日韩在线一区二区 | 久久综合一区二区三区 | 玖玖精品 | 国产视频在线观看一区二区三区 | 成人免费黄色片 | 97视频在线观看网站 | 九色视频网站 | 国产欧美精品一区二区 | 日韩在线资源 | 99热在线免费| 国产精品国产a | 久久中文免费视频 | 亚洲精品在线视频 | 亚洲精品天堂 | 免费视频久久 | 国产特级毛片aaaaaa喷潮 | 午夜精品久久久久久久星辰影院 | 成人综合视频在线观看 |