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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

LCD12864串行顯示中文或數(shù)字程序

[復(fù)制鏈接]
ID:442599 發(fā)表于 2019-3-6 20:42 | 顯示全部樓層 |閱讀模式
  1. /*lcd12864只需三根線與單片機(jī)相連就可以實(shí)現(xiàn)串行通訊,lcd12864自帶ASCII碼庫  以下是程序代碼*/
  2. #include"reg52.h"

  3. #include"intrins.h"

  4. #define uint unsigned int

  5. #define uchar unsigned char

  6. #define x1 0x80

  7. #define x2 0x88

  8. #define y 0x80

  9. #define comm 0//0代表寫指令

  10. #define dat 1//1代表寫數(shù)據(jù)

  11. sbit LCD_cs =P2^7;

  12. sbit LCD_std =P2^6;

  13. sbit LCD_sclk =P2^5;

  14. void wr_lcd(uchar dat_comm,uchar content);

  15. void delay (uint us);

  16. void lcd_char(uchar x0,uchar y0,uchar k,uchar *chn);

  17. void init_lcd(void);

  18. void lcd_string(uchar x0,uchar y0,uchar k,uchar *chn);

  19. //------------------初始化 -----------------

  20. void init_lcd(void)

  21. {

  22. //rst=1;

  23.         wr_lcd(comm,0x30);//30---基本指令動作

  24.         wr_lcd(comm,0x01);//清屏,地址指針指向 00H

  25.         wr_lcd(comm,0x06);//光標(biāo)的移動方向

  26.         wr_lcd(comm,0x0c);//開顯示,關(guān)游標(biāo)

  27. }

  28. void wr_lcd(uchar dat_comm,uchar content)

  29. {

  30.         uchar a,i,j;

  31.         delay (500);//此延時是必須的,以防在連續(xù)操作中 LCD 內(nèi)部動作沒有完成, 不響應(yīng)后面的指令或數(shù)據(jù)

  32.         a=content;

  33.         LCD_cs=1;

  34.         _nop_();

  35.         LCD_sclk=0;

  36.         _nop_();

  37.         LCD_std=1;

  38.         _nop_();

  39.         for(i=0; i<5; i++)

  40.         {
  41.                 LCD_sclk=1;

  42.                 _nop_();

  43.                 _nop_();

  44.                 _nop_();

  45.                 LCD_sclk=0;

  46.         }

  47.         LCD_std=0;

  48.         _nop_();

  49.         LCD_sclk=1;

  50.         _nop_();

  51.         _nop_();

  52.         _nop_();

  53.         LCD_sclk=0;

  54.         _nop_();

  55.         if(dat_comm)   //如果 dat_comm為高則表示送的是顯示數(shù)據(jù)
  56.                 LCD_std=1;   //data

  57.         else                                          //如果 dat_comm為低則表示送的是控制指令

  58.                 LCD_std=0;         //command

  59.         LCD_sclk=1;

  60.         _nop_();

  61.         _nop_();

  62.         _nop_();

  63.         LCD_sclk=0;

  64.         LCD_std=0;

  65.         _nop_();

  66.         LCD_sclk=1;

  67.         _nop_();

  68.         _nop_();

  69.         _nop_();

  70.         LCD_sclk=0;

  71.         for(j=0; j<2; j++)

  72.         {

  73.                 for(i=0; i<4; i++)

  74.                 {

  75.                         a=a<<1;

  76.                         LCD_std=CY;

  77.                         LCD_sclk=1;

  78.                         _nop_();

  79.                         _nop_();

  80.                         _nop_();

  81.                         LCD_sclk=0;

  82.                 }

  83.                 LCD_std=0;

  84.                 for(i=0; i<4; i++) {

  85.                         LCD_sclk=1;

  86.                         _nop_();

  87.                         _nop_();

  88.                         _nop_();

  89.                         LCD_sclk=0;

  90.                 }

  91.         }

  92. }

  93. void delay (uint us)//delaytime

  94. {

  95.         while(us--);

  96. }

  97. void delay1(uint ms)

  98. {

  99.         uint i,j;

  100.         for(i=0; i<ms; i++)

  101.                 for(j=0; j<15; j++)

  102.                         delay(1);

  103. }

  104. //-------在任意位置顯示一串漢字或字符 ------

  105. //其中 一個漢字算兩個個字節(jié)

  106. //X0為行, Y0為列, chn 為所要顯示的漢字串 ,k 為字符個數(shù)
  107. void lcd_char(uchar x0,uchar y0,uchar k,uchar *chn)

  108. {

  109.         uchar adr,i;

  110.         switch(x0)

  111.         {

  112.                 case 1:
  113.                         adr =0x80+y0;
  114.                         break; //在第 1行 y 列顯示
  115.                 case 2:
  116.                         adr =0x90+y0;
  117.                         break; //在第 2行 y 列顯示
  118.                 case 3:
  119.                         adr =0x88+y0;
  120.                         break; //在第 3行 y 列顯示
  121.                 case 4:
  122.                         adr =0x98+y0;
  123.                         break; //在第 4行 y 列顯示
  124.                 default:
  125.                         ;

  126.         }

  127.         wr_lcd(comm,adr);

  128.         for(i=0; i<k; i++)

  129.                 wr_lcd(dat,chn[i]);

  130. }

  131. //------------------主程序 --------------------

  132. void main ()

  133. {

  134.         uchar chn[3]= {0x32,0x31,0x33};
  135. //        uchar chn[6]= {32,50,32,54,32,56};
  136. //        uchar b[]= {"歡迎使用本程序 "};
  137. //
  138. //        uchar b1[]= {"啦啦啦啦 "};
  139. //        char b2[]= {"歡迎你 "};

  140.         init_lcd();

  141.         while (1)

  142.         {

  143.         //        lcd_char(1,0,14,b);//顯示漢字

  144.                 lcd_char(2,0,3,chn);//顯示字符串

  145.         //        lcd_char(3,0,12,b1);

  146.         //        lcd_char(4,0,6,b2);

  147.                 delay1(8000);//此處延時是為了防止送顯示過快,屏?xí)W動
  148.         }

  149. }
復(fù)制代碼

LCD12864串行顯示.zip

58.75 KB, 下載次數(shù): 194, 下載積分: 黑幣 -5

評分

參與人數(shù) 1黑幣 +5 收起 理由
阿斯頓ll + 5

查看全部評分

回復(fù)

使用道具 舉報

ID:1 發(fā)表于 2019-3-7 00:35 | 顯示全部樓層
本帖需要重新編輯補(bǔ)全電路原理圖,源碼,詳細(xì)說明與圖片即可獲得100+黑幣(帖子下方有編輯按鈕)
回復(fù)

使用道具 舉報

ID:337280 發(fā)表于 2019-4-22 09:47 來自手機(jī) | 顯示全部樓層
好用,之前一直在用的串行顯示,不能直接顯示一個數(shù)組,這個很清楚。謝謝樓主
回復(fù)

使用道具 舉報

ID:337280 發(fā)表于 2019-4-22 15:24 來自手機(jī) | 顯示全部樓層
有點(diǎn)問題,只能顯示第一行,其他顯不了
回復(fù)

使用道具 舉報

ID:524818 發(fā)表于 2019-5-9 21:41 | 顯示全部樓層
電原理圖哪兒?有點(diǎn)不太明白
回復(fù)

使用道具 舉報

ID:524818 發(fā)表于 2019-5-9 23:02 | 顯示全部樓層
為啥我這里只顯示213?
回復(fù)

使用道具 舉報

ID:706719 發(fā)表于 2020-3-11 22:50 | 顯示全部樓層
有沒有Proteus仿真圖呢
回復(fù)

使用道具 舉報

ID:727600 發(fā)表于 2020-4-12 16:15 | 顯示全部樓層
你好 ,148行 的 cy是 ‘0’還是‘1’
回復(fù)

使用道具 舉報

ID:819974 發(fā)表于 2020-12-23 17:08 | 顯示全部樓層
mjy-jay 發(fā)表于 2020-4-12 16:15
你好 ,148行 的 cy是 ‘0’還是‘1’

同問,我打算移植到32,這個地方怎么改
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 亚洲精品久久久一区二区三区 | 欧美综合在线观看 | 久久精品成人 | 在线观看av不卡 | 久久久久国产精品 | 天天久久 | 美女视频黄的免费 | 久久国产精品一区二区 | 视频一区二区在线观看 | 国产午夜精品视频 | 午夜精品一区 | 999久久久久久久久 国产欧美在线观看 | 国产精品精品视频一区二区三区 | 久久与欧美 | 香蕉一区 | 欧美a免费 | 欧美一级大片免费看 | 国产乱码精品一区二区三区忘忧草 | 懂色av一区二区三区在线播放 | 综合久久av| 操人网| 久久丁香 | 综合久久久久久久 | 免费毛片网站 | 美女久久 | 国产一区二区三区精品久久久 | 中文字幕一区二区三区不卡在线 | 欧美天天视频 | 欧美日韩高清一区 | 中文在线a在线 | 日韩电影免费观看中文字幕 | 国产精品成人在线 | 噜久寡妇噜噜久久寡妇 | 亚洲永久免费观看 | 久久久久久国产精品三区 | 一级做a爰片性色毛片视频停止 | 欧美精品一区二区三区在线 | 中文字幕在线三区 | 日本精品视频一区二区三区四区 | 欧美激情一区二区三区 | 成人永久免费视频 |