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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 2505|回復(fù): 6
收起左側(cè)

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

[復(fù)制鏈接]
ID:379492 發(fā)表于 2018-8-21 12:47 | 顯示全部樓層 |閱讀模式
想讓兩個(gè)字上下之間沒有間隙,我該怎么辦?

不帶字庫(kù)12864LCD

不帶字庫(kù)12864LCD

  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. //漢字當(dāng)前點(diǎn)陣大小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);//修改頁(yè)地址 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);//左邊 頁(yè)地址+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);//右邊 頁(yè)地址+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.         }
復(fù)制代碼


回復(fù)

使用道具 舉報(bào)

ID:379492 發(fā)表于 2018-8-21 12:48 | 顯示全部樓層
想讓安和科兩個(gè)字上下緊挨著,我怎么實(shí)現(xiàn)不了。壳蟠笊褓n教
回復(fù)

使用道具 舉報(bào)

ID:379492 發(fā)表于 2018-8-22 10:25 | 顯示全部樓層
850787641@qq.co 發(fā)表于 2018-8-21 12:48
想讓安和科兩個(gè)字上下緊挨著,我怎么實(shí)現(xiàn)不了啊?求大神賜教

請(qǐng)大師指點(diǎn)一下
回復(fù)

使用道具 舉報(bào)

ID:387733 發(fā)表于 2018-8-22 11:43 | 顯示全部樓層
12864的液晶橫向128個(gè)點(diǎn),縱向64個(gè)點(diǎn),顯示16*16點(diǎn)陣漢字就是橫向8個(gè)漢字,縱向4個(gè)漢字。一般16*16點(diǎn)陣字庫(kù)實(shí)際不是用足16*16個(gè)點(diǎn)陣,而是在下面和右面各留一個(gè)點(diǎn)陣作為間隙,如果要想不留間隙,就需要更換字庫(kù)成真正16*16的字庫(kù)
回復(fù)

使用道具 舉報(bào)

ID:387733 發(fā)表于 2018-8-22 11:51 | 顯示全部樓層
更換字庫(kù)
回復(fù)

使用道具 舉報(bào)

ID:379492 發(fā)表于 2018-8-22 14:57 | 顯示全部樓層
sxhwdz 發(fā)表于 2018-8-22 11:43
12864的液晶橫向128個(gè)點(diǎn),縱向64個(gè)點(diǎn),顯示16*16點(diǎn)陣漢字就是橫向8個(gè)漢字,縱向4個(gè)漢字。一般16*16點(diǎn)陣字庫(kù) ...

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

使用道具 舉報(bào)

ID:387733 發(fā)表于 2018-8-22 16:53 | 顯示全部樓層
這個(gè)比較麻煩,因?yàn)槊孔止?jié)8位,縱向64點(diǎn)是8個(gè)字節(jié),那必須對(duì)字庫(kù)進(jìn)行移位拼接,不是一點(diǎn)點(diǎn)麻煩,不建議
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 欧美乱大交xxxxx另类电影 | 亚洲成在线观看 | 中文字幕在线视频一区二区三区 | 午夜一区二区三区 | 成人网在线看 | 伦理午夜电影免费观看 | 国产欧美在线观看 | 亚洲成人久久久 | 国产精彩视频在线观看 | 日日天天 | 日韩播放 | 久久在视频 | 亚洲国产一区在线 | 日韩国产中文字幕 | 岛国午夜 | 欧美精品在线播放 | 欧美一区二区三区久久精品 | 免费九九视频 | 天天操一操 | 情侣av| 狠狠草视频| 亚洲精品久久久一区二区三区 | 亚洲性人人天天夜夜摸 | 亚洲欧美视频一区二区 | 亚洲欧美成人影院 | 久久综合久久综合久久综合 | 欧美在线一区二区三区四区 | 九七午夜剧场福利写真 | 99riav国产一区二区三区 | 亚洲一区二区久久 | 福利社午夜影院 | 精品视频在线播放 | 97国产精品视频人人做人人爱 | 国产精品成人在线播放 | 国产农村妇女精品一区 | 亚洲精品在线免费 | 欧美日韩一二三区 | 欧美精品一区二区在线观看 | 成人特级毛片 | 91亚洲国产| 亚洲人成人一区二区在线观看 |