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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

st7920控制的LCD12864打點法顯示漢字

[復制鏈接]
跳轉到指定樓層
樓主
ID:196419 發表于 2020-6-2 18:24 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
請教各位大神,最近在玩st7920控制的LCD12864這個屏,有一些疑問,希望大神們帶帶小白:
用打點法顯示自己想要的漢字,具體是怎么實現的啊?比如說,我現在可以任意位置打一個點了,然后我怎么實現我想要的漢字呢?
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:452950 發表于 2020-6-2 21:04 | 只看該作者
用數組存該漢字的字模,然后將數組元素逐位放進顯示點的函數里。
回復

使用道具 舉報

板凳
ID:584814 發表于 2020-6-2 21:59 | 只看該作者
讀取點陣漢字的點信息用打點法顯示出來
回復

使用道具 舉報

地板
ID:696029 發表于 2020-6-2 23:58 | 只看該作者
有生成子模的軟件
回復

使用道具 舉報

5#
ID:196419 發表于 2020-6-3 08:54 | 只看該作者
網上多是單純的打點函數,發布者默認,看懂打點函數就會其他,例如漢字,圖片,直線,圓,因為點是一切的基本單位,但問題是,總得有個顯示的函數通過調用這個打點函數,把要顯示的東西聯系起來吧,例如,現在想在任意位置顯示一個12*12的自定義漢字,用取模軟件橫向取出字模數組,接下來用什么顯示函數(for循環什么的),調用打點函數,把這個字模打點出來,我問的是這個連接函數
回復

使用道具 舉報

6#
ID:196419 發表于 2020-6-3 09:44 | 只看該作者
xxpp2011 發表于 2020-6-2 21:04
用數組存該漢字的字模,然后將數組元素逐位放進顯示點的函數里。

感謝回答:比如我要畫這個字,字模出來了
/*--  文字:  我  --*/
/*--  宋體12;  此字體下對應的點陣為:寬x高=16x16   --*/
0x04,0x40,0x0E,0x50,0x78,0x48,0x08,0x48,0x08,0x40,0xFF,0xFE,0x08,0x40,0x08,0x44,
0x0A,0x44,0x0C,0x48,0x18,0x30,0x68,0x22,0x08,0x52,0x08,0x8A,0x2B,0x06,0x10,0x02,

怎么將這些數組元素和這個uchar DrawDots(uchar x,uchar y,ucharcolor)//打點函數,聯系起來呢


回復

使用道具 舉報

7#
ID:451718 發表于 2020-6-3 17:02 | 只看該作者
字模的取模方試,行列還是列行?取模走向,高位在前,還是低位在前?  陰碼還是陽碼?  uchar DrawDots(uchar x,uchar y, ucharcolor)的源代碼呢?
回復

使用道具 舉報

8#
ID:196419 發表于 2020-6-4 15:19 | 只看該作者
大概的通過查資料,也明白一些,LCD12864就是8192個像素點,1就是點亮,0就是熄滅。比如想顯示一個12*12的漢字,先取模,得到字模,然后應該有個函數把這些字模數組和打點函數聯系起來,網上多是單純的打點函數,比較經典的是這個了:

bit lcd_busy()        // 讀寫判斷數據的D7讀寫位,用于判斷1602是否忙

{                     

    bitresult;

    D7 =1;       //數據口D7置1,為讀狀態做準備

   LCD_RS = 0;   // 選擇指令寄存

   LCD_RW = 1;   // 選擇讀控制線

   LCD_EN = 1;   // 開使能控制線

   delayNOP();   // 時序延時

   result = D7;  // 讀D7的電平

   LCD_EN = 0;   // 關使能

   return(result); // 返回值1:忙,0可以執行操作

}

unsigned charreadData(void) //讀取數據函數

{

     uchar i;

     D0 = 1;        D1 = 1;       D2 = 1;      D3 = 1;   

     D4 = 1;        D5 = 1;       D6 = 1;      D7 = 1;   

    lcd_busy();

     LCD_RS=1; LCD_RW=1;

     LCD_EN=0; LCD_EN=1;

     B_0=D0;B_1=D1; B_2=D2; B_3=D3;//B_1=B^1,在程序前段有位定義

     B_4=D4;B_5=D5; B_6=D6;B_7=D7;

     for(i=1;i<=7;i++)

     delayNOP();//這個函數是{_nop_();_nop_();_nop_();_nop_();};

     LCD_EN=0;      

     returnB;

  }

uchar DrawDots(uchar x,uchar y,ucharcolor)//打點函數

  {

     ucharrow,xlabel,xlabel_bit;

     uchar Read_H=0,Read_L=0;

     lcd_wcmd(0x34);      //擴充指令

     lcd_wcmd(0x36);      //繪圖指令

     xlabel=x>>4;         //去16*16首地址

     xlabel_bit=x & 0x0F;

     if(y<32) row=y;

     else

     {

       row=y-32;

       xlabel+=8;

     }

     lcd_wcmd(row+0x80);

     lcd_wcmd(xlabel+0x80);

     readData();

     Read_H=readData();

     Read_L=readData();

        

     lcd_wcmd(row+0x80);

     lcd_wcmd(xlabel+0x80);

        

     if(xlabel_bit<8)

     {

      switch(color)

       {

         case 0:Read_H&=(~(0x01<<(7-xlabel_bit))); break; //變暗,看不見

         case 1:Read_H |=(0x01<<(7-xlabel_bit));break; //變亮  ,看得見

         case 2:Read_H ^=(0x01<<(7-xlabel_bit));break; //反轉

         default:break;

       }

      lcd_wdat(Read_H);

       lcd_wdat(Read_L);  

     }

     else

     {

      switch(color)

       {

         case 0:Read_L&=(~(0x01<<(15-xlabel_bit))); break; //變暗   ,看不見

         case 1:Read_L |=(0x01<<(15-xlabel_bit));break; //變亮  ,看得見

         case 2:Read_L ^=(0x01<<(15-xlabel_bit));break; //反轉

         default:break;

       }  

      lcd_wdat(Read_H);

       lcd_wdat(Read_L);  

     }

     lcd_wcmd(0x30);//恢復正常模式

  }

  如果你的單片機和12864接口不是亂的,那可以這樣寫讀取函數

unsigned charreadData(void)

{

     uchar i ,data;

     P0=0xFF;

    lcd_busy();

     LCD_RS=1; LCD_RW=1;//

     LCD_EN=0; LCD_EN=1;

     data=P0;

     for(i=1;i<=7;i++)

    delayNOP();

     LCD_EN=0;      

     returndata;

  }
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 一区二区三区免费 | 成人免费黄视频 | 亚洲免费一区二区 | 成人区精品一区二区婷婷 | 丝袜一区二区三区 | 国产精品国产a级 | 精品久久一区二区三区 | 久草在线在线精品观看 | 丝袜美腿av | 国产日产欧产精品精品推荐蛮挑 | 国产精品久久久久久238 | 91在线色视频 | 亚洲国产精品久久 | 日韩精品免费视频 | 国产高清一区二区三区 | 波多野结衣在线观看一区二区三区 | 一级黄色生活视频 | 天天色综 | 亚洲综合精品 | 色综合视频在线 | 久久精品视频在线免费观看 | 四虎永久免费黄色影片 | 亚洲精品乱码久久久久v最新版 | 天堂中文资源在线 | 日韩成人国产 | 羞羞视频网站免费观看 | 天堂一区在线观看 | 激情网站在线 | 久久国产精品视频 | 色男人的天堂 | 9久9久9久女女女九九九一九 | 伊人性伊人情综合网 | 正在播放一区二区 | 国产成人一区二区三区电影 | 亚洲精品一区二区三区蜜桃久 | 日本精品一区二区三区在线观看 | 国产日韩欧美在线 | 精品视频在线观看 | 久久国产精品网站 | 日日摸夜夜添夜夜添精品视频 | 91性高湖久久久久久久久_久久99 |