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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2567|回復: 6
打印 上一主題 下一主題
收起左側(cè)

不帶字庫12864想讓兩個漢字上下之間沒有間隙緊挨著要怎么做?

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:379492 發(fā)表于 2018-8-21 12:47 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
想讓兩個字上下之間沒有間隙,我該怎么辦啊?

  1. #include <reg51.h>
  2. sbit e=0xb0;//1011 0000
  3. sbit rw=0xb1;//1011 0001
  4. sbit rs=0xb2;//1011 0010
  5. sbit cs2=0xb3;//1011 0011
  6. sbit cs1=0xb4;//1011 0100
  7. sbit busy=0xa7;//1010 0111
  8. //PCtoLCD2002完美版 陰碼,逐列式,順向
  9. //漢字當前點陣大小16*16,字寬19,字高19
  10. char code an[]=        {
  11.                                 0x0A,0x10,0x32,0x10,0x22,0x10,0x23,0x90,0x2E,0xA0,0x62,0x60,
  12.                                 0x22,0x40,0x23,0xA0,0x22,0x20,0x2A,0x10,0x32,0x10,0x00,0x00,/*"安",0*/
  13.                                 };
  14. char code ke[]=        {
  15.                                 0x28,0xC0,0x2B,0x00,0x3F,0xF0,0x4A,0x00,0x49,0x00,0x00,0x80,
  16.                                 0x24,0x80,0x12,0x80,0x00,0x80,0x7F,0xF0,0x01,0x00,0x00,0x00,/*"科",0*/
  17.                 };
  18. void pulse()//puse=使能脈沖
  19.         {
  20.         e=1;
  21.         e=0;
  22.         }
  23. void busy_check(char right)
  24.         {
  25.         P2=0xff;//數(shù)據(jù)口全部高電平
  26.         if (right==1)
  27.                 {
  28.                 P3=0x13;//0001 0011 CS1=1;CS2=0;RS=0;RW=1;RW=1;左半屏
  29.                 while(!busy);
  30.                 }
  31.         if (right==0)
  32.                 {
  33.                 P3=0x0b;//0000 1011 CS1=0;CS2=1;RS=0;RW=1;RW=1;右半屏
  34.                 while(!busy);                        
  35.                 }
  36.         }

  37. void cmd_w(char cmd,char right)
  38.         {
  39.         busy_check(right);
  40.         if (right==1)
  41.                 {
  42.                 P3=0x10;//0001 0000 CS1=1
  43.                 }
  44.         if (right==0)
  45.                 {
  46.                 P3=0x08;//0000 1000        CS2=0
  47.                 P3=0x08;//0000 1000        CS2=0
  48.                 }
  49.         P2=cmd;
  50.         pulse();//使能脈沖
  51.         }

  52. void data_w(char dat,char right)
  53.         {
  54.         busy_check(right);
  55.         if (right==1)
  56.                 {
  57.                 P3=0x14;//0001 0100 CS1=1; RS=1;
  58.                 }
  59.         if (right==0)
  60.                 {
  61.                 P3=0x0c;//0000 1100 CS2=1; RS=1;
  62.                 }
  63.         P2=dat;
  64.         pulse();
  65.         }

  66. void lcd_init()
  67.         {
  68.         unsigned int i;
  69.         cmd_w(0x3e+1,0);//顯示開關(guān) 0011 1111
  70.         cmd_w(0xc0+0,0);//修改顯示起始行 1100 0000
  71.         cmd_w(0xb8+0,0);//修改頁地址 1011 1000
  72.         cmd_w(0x40+0,0);//修改列地址 0100 0000
  73.         cmd_w(0x3e+1,1);
  74.         cmd_w(0xc0+0,1);
  75.         cmd_w(0xb8+0,1);
  76.         cmd_w(0x40+0,1);
  77.         for(i=0;i<256;i++)
  78.                 {
  79.                 data_w(0x00,0);
  80.                 }

  81.         cmd_w(0xb8+4,0);//左邊 頁地址+4
  82.         cmd_w(0x40+8,0);//左邊 列地址+8
  83.         for(i=0;i<256;i++)
  84.                 {
  85.                 data_w(0x00,0);
  86.                 }

  87.         for(i=0;i<256;i++)
  88.                 {
  89.                 data_w(0x00,1);
  90.                 }

  91.         cmd_w(0xb8+4,1);//右邊 頁地址+4
  92.         cmd_w(0x40+8,1);//右邊 列地址+8
  93.         for(i=0;i<256;i++)
  94.                 {
  95.                 data_w(0x00,1);
  96.                 }
  97.         }

  98. char chang(char a)//chang(zhi[i])
  99.         {
  100.         char temp,i;
  101.         for(i=0;i<8;i++)
  102.                 {
  103.                 temp<<=1;//左移1位
  104.                 temp|=(a&0x01);//temp=temp|(a&0x01)
  105.                 a>>=1;//右移1位
  106.                 }
  107.         return(temp);
  108.         }

  109. void hanzi_w(char hang,char lie,char zhi[24])
  110.         {
  111.         unsigned char i;
  112.         if(lie<4)//漢字上半部分;左半屏
  113.                 {
  114.                 cmd_w(0xb8+1*hang,0);
  115.                 cmd_w(0x40+1*lie,0);
  116.                 for(i=0;i<24;i=i+2)
  117.                         data_w(chang(zhi[i]),0);
  118.                 }
  119.         else//漢字上半部分;右半屏
  120.                 {
  121.                 cmd_w(0xb8+1*hang,1);
  122.                 cmd_w(0x40+1*(lie-4),1);
  123.                 for(i=0;i<24;i+=2)
  124.                         data_w(chang(zhi[i]),1);
  125.                 }
  126.         if(lie<4)//漢字下半部分;左半屏
  127.                 {
  128.                 cmd_w(0xb8+1*hang+1,0);
  129.                 cmd_w(0x40+1*lie,0);
  130.                 for(i=1;i<24;i+=2)
  131.                         data_w(chang(zhi[i]),0);
  132.                 }
  133.         else//漢字下半部分;右半屏
  134.                 {
  135.                 cmd_w(0xb8+1*hang+1,1);
  136.                 cmd_w(0x40+1*(lie-4),1);
  137.                 for(i=1;i<24;i+=2)
  138.                         data_w(chang(zhi[i]),1);
  139.                 }
  140.         }

  141. void delay(unsigned char a)
  142.         {
  143.         unsigned char i,j;
  144.         for(i=0;i<a;i++)
  145.                 for(j=0;j<200;j++)
  146.                         ;
  147.         }

  148. void main()
  149.         {
  150.         //unsigned char i;
  151.         lcd_init();
  152.         hanzi_w(0,0,an);
  153.         hanzi_w(2,0,ke);

  154.         while(1)
  155.                 {
  156.                  delay(3);
  157.                 cmd_w(0xc0+1,0);
  158.                 cmd_w(0xc0,1);
  159.                 //i++;
  160.                 //if(i==64)
  161.                         //i=0;
  162.                 }
  163.         }
復制代碼


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

使用道具 舉報

沙發(fā)
ID:379492 發(fā)表于 2018-8-21 12:48 | 只看該作者
想讓安和科兩個字上下緊挨著,我怎么實現(xiàn)不了啊?求大神賜教
回復

使用道具 舉報

板凳
ID:379492 發(fā)表于 2018-8-22 10:25 | 只看該作者
850787641@qq.co 發(fā)表于 2018-8-21 12:48
想讓安和科兩個字上下緊挨著,我怎么實現(xiàn)不了啊?求大神賜教

請大師指點一下
回復

使用道具 舉報

地板
ID:387733 發(fā)表于 2018-8-22 11:43 | 只看該作者
12864的液晶橫向128個點,縱向64個點,顯示16*16點陣漢字就是橫向8個漢字,縱向4個漢字。一般16*16點陣字庫實際不是用足16*16個點陣,而是在下面和右面各留一個點陣作為間隙,如果要想不留間隙,就需要更換字庫成真正16*16的字庫
回復

使用道具 舉報

5#
ID:387733 發(fā)表于 2018-8-22 11:51 | 只看該作者
更換字庫
回復

使用道具 舉報

6#
ID:379492 發(fā)表于 2018-8-22 14:57 | 只看該作者
sxhwdz 發(fā)表于 2018-8-22 11:43
12864的液晶橫向128個點,縱向64個點,顯示16*16點陣漢字就是橫向8個漢字,縱向4個漢字。一般16*16點陣字庫 ...

我的子模是取的12*12,想顯示5行漢字,5*12=60,每行之間間隔一個像素,剛好是64,能實現(xiàn)嗎?
回復

使用道具 舉報

7#
ID:387733 發(fā)表于 2018-8-22 16:53 | 只看該作者
這個比較麻煩,因為每字節(jié)8位,縱向64點是8個字節(jié),那必須對字庫進行移位拼接,不是一點點麻煩,不建議
回復

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲综合区 | 久久久久久久一区 | 日皮视频免费 | 成人在线视频网站 | 国产一区二区精品在线观看 | 国产精品久久久久久久久久久久久 | 91嫩草精品| 日韩成人性视频 | 久草青青草 | 久久久久久a | 91在线影院| 国产日韩欧美电影 | 亚洲精品在线视频 | 亚洲欧美aⅴ | 久久99国产精一区二区三区 | 亚洲精品18| 国产精品日本一区二区在线播放 | 亚洲精品视频免费 | 欧美日韩高清一区二区三区 | 91在线视频观看免费 | www.788.com色淫免费 | 日日干夜夜干 | 国产电影一区二区在线观看 | 日韩成人精品在线 | 四虎影视| 国产一区二区三区四区三区四 | yiren22综合网成人 | 四虎影音 | 久久成人免费 | 亚洲精品福利在线 | 日韩中文在线视频 | 国产一区二区三区久久 | 亚洲国产一区二区三区在线观看 | 亚洲午夜精品久久久久久app | 91精品久久久久 | 91精品国产综合久久婷婷香蕉 | 日日夜夜精品 | 国外成人在线视频 | 久久福利电影 | 亚洲第一av | 天天精品在线 |