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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 11680|回復(fù): 9
打印 上一主題 下一主題
收起左側(cè)

求大神講解下12864的行和列,具體怎么定點顯示

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:67818 發(fā)表于 2014-11-19 10:12 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
本帖最后由 fujian2014 于 2014-11-19 18:13 編輯

我用的是jlx12864g-378不懂啊
  1. void lcd_address(uint page,uint column)
  2. {


  3.         transfer_command_lcd(0xb0+page);   /*設(shè)置頁地址*/
  4.         transfer_command_lcd(0x10+(column>>4&0x0f));        /*設(shè)置列地址的高4位*/
  5.         transfer_command_lcd(column&0x0f);        /*設(shè)置列地址的低4位*/        
  6. }

  7. /*顯示16x16點陣圖像、漢字、生僻字或16x16點陣的其他圖標(biāo)*/
  8. void display_graphic_16x16(uint page,uint column,uchar *dp)
  9. {
  10.         uint i,j;
  11.         CS_12864=0;        
  12.         for(j=0;j<2;j++)j
  13.         {
  14.                 lcd_address(page+j,column);//設(shè)置顯示位置命令
  15.                 for (i=0;i<16;i++)
  16.                 {        
  17.                         transfer_data_lcd(*dp);                                        /*寫數(shù)據(jù)到LCD,每寫完一個8位的數(shù)據(jù)后列地址自動加1*/
  18.                         dp++;
  19.                 }
  20.         }
  21.         CS_12864=1;
  22. }

  23. /*全屏清屏*/
  24. void clear_screen()
  25. {
  26.         unsigned char i,j;
  27.         CS_12864=0;
  28.         
  29.         for(i=0;i<9;i++)
  30.         {
  31.                 transfer_command_lcd(0xb0+i);
  32.                 transfer_command_lcd(0x10);
  33.                 transfer_command_lcd(0x00);
  34.                 for(j=0;j<132;j++)
  35.                 {
  36.                         transfer_data_lcd(0x00);
  37.                 }
  38.         }
  39.         CS_12864=1;
  40. }



  41. void display_text(uchar *s,page,column)
  42. {
  43.         uchar a;
  44.         for(a=0;s[a]!=0;a+=2)
  45.         {
  46.                 display_graphic_16x16(page,column+a*8,tep[a/2+page]);
  47.         }
  48. }
  49. void main()
  50. {
  51.         uchar i=0;
  52.         uchar j=0;
  53.         uchar k=0;
  54.         uint humi,gq;
  55.         P0=0;
  56.         CS_12864=0;
  57.         initial_lcd();        
  58.         clear_screen();
  59.         display_text("溫度濕",0,0)        ;
  60.         display_text("濕度濕",3,0);
  61.         display_text("光照濕",6,0);
  62. }
復(fù)制代碼
足下留步這是液晶的資料鏈接http://www.jlxlcd.cn/UpFile/201212895822.pdf

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

使用道具 舉報

沙發(fā)
ID:67992 發(fā)表于 2014-11-20 20:51 | 只看該作者
我沒你這型號的12864.控制芯片不同,行列地址定義不一樣。其實和LED點陣差不多。字庫好象漢字為16*16,字母和數(shù)字8*8.橫為行,豎為列。行64,列128.屏有分左右屏,上下屏,你這好象沒分。你這屏分上下分為8塊,即8頁。每頁為8*128.地址的設(shè)定決定了輸入的位置,一個點的位置由行列地址共同決定。而輸入地址并不是簡單的如行0列0,它有自己的規(guī)定,說得好亂。

評分

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

查看全部評分

回復(fù)

使用道具 舉報

板凳
ID:67992 發(fā)表于 2014-11-20 22:41 | 只看該作者
本帖最后由 dgahz 于 2014-11-20 22:48 編輯

lcd_address(uint page,uint column)                       //這里決定輸入點位置,共8頁,每頁8行,page范圍0-7;列column范圍0-127;
{                                                                           頁(或行)決定了上下位置,列決定了左右位置。


        transfer_command_lcd(0xb0+page);                                          /*設(shè)置頁地址*/  0xb0為規(guī)定的0頁地址
        transfer_command_lcd(0x10+(column>>4&0x0f));                 /*設(shè)置列地址的高4位*/  column>>4&0x0f取列地址高4位,為和格式規(guī)定的
                                                                                                                 0x10組合,需右移4位變成低4位,原因0x10已占高4位



          transfer_command_lcd(column&0x0f);                                            /*設(shè)置列地址的低4位*/     取 列地址低4位  
}

                                                                                                               /*顯示16x16點陣圖像、漢字、生僻字或16x16點陣的其他圖標(biāo)*/
void display_graphic_16x16(uint page,uint column,uchar *dp)
{
        uint i,j;
        CS_12864=0;                                                                                        //片選選中芯片工作
        for(j=0;j<2;j++)j                                                                                  //因為是要生成16*16,所以占2頁16列,每頁16列循環(huán)2次,注:每頁8行
        {
                lcd_address(page+j,column);                                                    //設(shè)置顯示位置命令
                for (i=0;i<16;i++)                                                                         //16列
                {        
                        transfer_data_lcd(*dp);                                                      //每次寫8位數(shù)據(jù)                /*寫數(shù)據(jù)到LCD,每寫完一個8位的數(shù)據(jù)后列地址自                                                                                                                       動加1*/
                        dp++;                                                                                   //寫完數(shù)據(jù)列地址自加,頁(行)不會自加,所以前面要加page+j這一條,                                                                                                                          而column不用加
                }                                                                                                  //dp++必需有,它不會自加
        }
        CS_12864=1;                                                                                     //停芯片
}

/*全屏清屏*/
void clear_screen()
{
        unsigned char i,j;
        CS_12864=0;
        
        for(i=0;i<9;i++)                                                                                          //為什么是9頁,猜可能頁地址儲存器多出一頁,清的是儲存器
        {
                transfer_command_lcd(0xb0+i);
                transfer_command_lcd(0x10);
                transfer_command_lcd(0x00);
                for(j=0;j<132;j++)                                                                                 //列地址存儲器說明書上是83H  即0-131
                {
                        transfer_data_lcd(0x00);                                                                //各點寫入0
                }
        }
        CS_12864=1;
}



void display_text(uchar *s,page,column)                                                                  //定點輸入16*16
{
        uchar a;
        for(a=0;s[a]!=0;a+=2)                                                                                         //選偶數(shù),a*8剛好為0,16,32,為16倍數(shù),16為一個字占位                                                                                                                                               置。a/2自己分析
        {
                display_graphic_16x16(page,column+a*8,tep[a/2+page]);                             //調(diào)用前面顯示16*16函數(shù),寫完一個字,向右挪一個字位置,
        }                                                                                                                                 //即列地址加16,而數(shù)據(jù)加1遞增
}
void main()
{
        uchar i=0;
        uchar j=0;
        uchar k=0;
        uint humi,gq;
        P0=0;
        CS_12864=0;
        initial_lcd();        
        clear_screen();
        display_text("溫度濕",0,0)        ;
        display_text("濕度濕",3,0);
        display_text("光照濕",6,0);
}

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50

查看全部評分

回復(fù)

使用道具 舉報

地板
ID:51088 發(fā)表于 2014-11-20 23:15 來自手機 | 只看該作者
樓上老大的解釋太給力了。非常詳細非常感謝,我先好好消化一下。
回復(fù)

使用道具 舉報

5#
ID:67818 發(fā)表于 2014-11-21 23:51 | 只看該作者
嗯謝謝啦
回復(fù)

使用道具 舉報

6#
ID:220665 發(fā)表于 2017-7-18 22:07 | 只看該作者
dgahz 發(fā)表于 2014-11-20 22:41
lcd_address(uint page,uint column)                       //這里決定輸入點位置,共8頁,每頁8行,page ...

你好,請教下。調(diào)用顯示16X16的函數(shù)的時候,里面的數(shù)學(xué)運算看不懂啊~能不能解釋下
回復(fù)

使用道具 舉報

7#
ID:220665 發(fā)表于 2017-7-18 22:19 | 只看該作者
dgahz 發(fā)表于 2014-11-20 22:41
lcd_address(uint page,uint column)                       //這里決定輸入點位置,共8頁,每頁8行,page ...

還有那個a是用來干嘛的呢
回復(fù)

使用道具 舉報

8#
ID:265426 發(fā)表于 2018-2-5 19:15 | 只看該作者
菜鳥請教 為什么可以直接寫漢字?       display_text("溫度濕",0,0)        ;
                                                     display_text("濕度濕",3,0);
                                                     display_text("光照濕",6,0);
回復(fù)

使用道具 舉報

9#
ID:461428 發(fā)表于 2019-1-14 11:28 | 只看該作者
dgahz 發(fā)表于 2014-11-20 22:41
lcd_address(uint page,uint column)                       //這里決定輸入點位置,共8頁,每頁8行,page ...

transfer_command_lcd(0x10+(column>>4&0x0f));                 /*設(shè)置列地址的高4位*/  column>>4&0x0f取列地址高4位,為和格式規(guī)定的
這句是否可以直接寫成0xf0&column.也是取高四位么?
回復(fù)

使用道具 舉報

10#
ID:409988 發(fā)表于 2019-4-8 18:09 | 只看該作者
qihuaman 發(fā)表于 2018-2-5 19:15
菜鳥請教 為什么可以直接寫漢字?       display_text("溫度濕",0,0)        ;
                          ...

12864有自帶字庫
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 精品国产不卡一区二区三区 | 欧美精品一区二区三区在线四季 | 黄色骚片 | 国产99免费视频 | 91精品国模一区二区三区 | 黄色一级视频 | 亚洲激情综合网 | 国产高清在线精品一区二区三区 | 99久久婷婷国产综合精品首页 | 狠狠躁天天躁夜夜躁婷婷老牛影视 | 日韩美女一区二区三区在线观看 | 色偷偷噜噜噜亚洲男人 | 91麻豆精品国产91久久久久久久久 | 韩日一区二区 | 成人精品国产免费网站 | 国产乱码一二三区精品 | 中文字幕在线观看视频网站 | 一区二区三区四区国产 | 91在线影院 | 亚洲国产成人精品久久久国产成人一区 | 国产精品自拍视频 | 九色91视频 | 波多野结衣一区二区三区 | 欧美性受xxxx白人性爽 | 国产精品国产精品国产专区不卡 | 亚洲人成人一区二区在线观看 | 天天av综合 | 欧美激情精品久久久久久 | 亚洲国产一区在线 | 色资源在线 | 午夜视频一区二区三区 | 盗摄精品av一区二区三区 | 国产又色又爽又黄又免费 | 欧美淫片 | 久久久妇女国产精品影视 | 成人不卡 | 天天综合久久 | 亚洲xxxxx | 亚洲精品91 | 日韩在线| 91影院在线观看 |