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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6925|回復: 1
收起左側

帶中文字庫的LCD12864單片機顯示程序

[復制鏈接]
ID:77367 發表于 2015-4-19 03:12 | 顯示全部樓層 |閱讀模式
  1. 帶中文字庫的LCD12864顯示幾個字的代碼.txt成熟不是心變老,而是眼淚在眼里打轉卻還保持微笑。把一切平凡的事做好既不平凡,把一切簡單的事做對既不簡單。下面是帶中文字庫的LCD12864

  2. #include<reg52.h>

  3. #include <math.h>



  4. void lcd_init(void);

  5. void clr_lcd(void);

  6. void send_com(unsigned char cmd);

  7. void send_data(unsigned char dat);

  8. void chek_busy(void);

  9. void set_xy(unsigned char xpos,unsigned char ypos);

  10. void print(unsigned char x,unsigned char y,char* str);

  11. void printstr(unsigned char xpos,unsigned char ypos,unsigned char str[],unsigned char k);



  12. unsigned char code buf[4] ={0xbb,0xb6,0xd3,0xad};//歡迎





  13. #define DATA       P2

  14. #define CONTROL P0

  15. #define E    7           //并行的使能信號        sbit E   = P0^7

  16. #define RW   6          //并行的讀寫信號         sbit RW = P0^6

  17. #define RS   5         //并行的指令數據選擇信號 sbit RS = P0^5  

  18. #define PSB 4         //并/串行接口選擇         sbit PSB = P0^4

  19. #define RST 3         //復位 低電平有效         sbit RST = P0^3

  20. #define SETB(x,y) (x|=(1<<y))

  21. #define CLRB(x,y) (x&=(~(1<<y)))

  22. #define CHKB(x,y) (x&(1<<y))





  23. /********************測忙碌**********************/

  24. //測忙碌子程序

  25. //RS=0,RW=1,E=H,D0-D7=狀態字

  26. /************************************************/

  27. void chek_busy(void)

  28. { unsigned char temp1;//狀態信息(判斷是否忙)

  29.    CLRB(CONTROL,RS);    // RS = 0;

  30.    SETB(CONTROL,RW);    // RW = 1;

  31.    SETB(CONTROL,E);    // E = 1;

  32.    do{temp1 = DATA;DATA=0xFF;} while(temp1&0x80);

  33.    SETB(CONTROL,E);   // E = 1;

  34.    DATA=0xFF;

  35. }

  36. /********************寫命令**********************/

  37. //寫命令子程序

  38. //

  39. /************************************************/

  40. void send_com(unsigned char cmd)/*寫命令*/

  41. {

  42. chek_busy();

  43. CLRB(CONTROL,RS); //RS = 0;

  44. CLRB(CONTROL,RW); //RW = 0;

  45. DATA = cmd;

  46. SETB(CONTROL,E); //E = 1;

  47. CLRB(CONTROL,E); //E = 0;

  48. }

  49. /********************寫數據**********************/

  50. //寫數據子程序

  51. //

  52. /************************************************/

  53. void send_data(unsigned char dat)

  54. {

  55. chek_busy();

  56. SETB(CONTROL,RS); //RS = 1;

  57. CLRB(CONTROL,RW); //RW = 0;

  58. DATA = dat;

  59. SETB(CONTROL,E); //E = 1;

  60. CLRB(CONTROL,E); //E = 0;

  61. }

  62. /********************初始化**********************/

  63. //復位、通訊方式選擇

  64. /************************************************/

  65. void lcd_init(void)

  66. {

  67.     SETB(CONTROL,RST);//復位RST=1

  68.     SETB(CONTROL,PSB);       //通訊方式為并口PSB = 1

  69.       //send_com(0x34);//34H--擴充指令操作

  70. send_com(0x30);//功能設置,一次送8位數據,基本指令集

  71. send_com(0x0C);//0000,1100 整體顯示,游標off,游標位置off

  72. send_com(0x01);//0000,0001 清DDRAM

  73. send_com(0x02);//0000,0010 DDRAM地址歸位

  74. send_com(0x80);//1000,0000 設定DDRAM 7位地址000,0000到地址計數器AC

  75. }



  76. /*******************************************************************/

  77. //          設置顯示位置    xpos(1~16),tpos(1~4)

  78. /*******************************************************************/

  79. void set_xy(unsigned char xpos,unsigned char ypos)

  80. {

  81. switch(ypos)

  82. {

  83.    case 1:

  84.     send_com(0X80|xpos);break;

  85.    case 2:

  86.     send_com(0X90|xpos);break;

  87.    case 3:

  88.     send_com(0X88|xpos);break;

  89.    case 4:

  90.     send_com(0X98|xpos);break;

  91.    default:break;

  92. }

  93. }

  94. /*******************************************************************/

  95. //          在指定位置顯示字符串

  96. /*******************************************************************/

  97. void print(unsigned char x,unsigned char y,char* str)

  98. {

  99.     unsigned char lcd_temp;

  100.     set_xy(x,y);

  101.     lcd_temp=*str;

  102.     while(lcd_temp != 0x00)

  103.     {

  104.         send_data(lcd_temp);

  105.         lcd_temp=*(++str);

  106.     }

  107. }



  108. /********************寫字符串******************/

  109. //寫字符串子程序

  110. //xpos1取0~7共八列,ypos1取0~3共四行。

  111. /**********************************************/

  112.     void printstr(unsigned char xpos,unsigned char ypos,unsigned char str[],unsigned char k)

  113. { unsigned char n;

  114.      switch (ypos)

  115.     { case 1: xpos |= 0x80;break;         //第一行

  116.       case 2: xpos |= 0x90;break;         //第二行

  117.       case 3: xpos |= 0x88;break;         //第三行

  118.       case 4: xpos |= 0x98;break;         //第四行

  119.       default: break;

  120.      }

  121.       send_com(xpos);                                    //此處的Xpos已轉換為LCM的顯示寄存器實際地址

  122.       for(n=0;n < k;n++)

  123.      {

  124.       send_data(str[n]);//顯示漢字時注意碼值,連續兩個碼表示一個漢字

  125.       }

  126.    }



  127. /********************清屏************************/

  128. //清屏

  129. /************************************************/

  130. void clr_lcd(void)

  131. {

  132.    send_com(0x01);

  133.    //send_com(0x34);

  134.    //send_com(0x30);

  135. }



  136. /**************主函數***********************/

  137. void main ()

  138. {

  139. lcd_init();     //設定液晶工作方式

  140. printstr(1,1,buf,4);

  141. print(5,1,"光臨");

  142. print(0,3," SEEGU百度空間");

  143. while(1) { }

  144. }
復制代碼


回復

使用道具 舉報

ID:73992 發表于 2018-1-5 17:11 | 顯示全部樓層
IMG0001B.jpg IMG0002A.jpg
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲成人中文字幕 | 免费一级做a爰片久久毛片潮喷 | 亚洲黄色一级 | 伊人网在线播放 | 国产精品久久久久久久久久三级 | 精品久久久久一区二区国产 | 日韩一区二区在线视频 | 国产成人综合av | 国精日本亚洲欧州国产中文久久 | 国产精品久久久久久久久久免费 | 亚洲欧美国产一区二区三区 | 亚洲综合免费 | 四虎影院新地址 | 成年人在线电影 | 国产激情一区二区三区 | 国产视频一区二区在线观看 | 国产欧美一区二区三区日本久久久 | 国产一级在线 | 国产精品嫩草影院精东 | 一区二区三区中文字幕 | 福利久久 | 精品99在线| 国产一级片在线播放 | 国产aⅴ精品 | 2019天天干夜夜操 | 欧美色综合天天久久综合精品 | 亚洲国产中文字幕 | 国产农村一级国产农村 | 91成人精品| 免费观看毛片 | 在线国产精品一区 | 日本三级在线 | 在线看亚洲 | 无人区国产成人久久三区 | 黄色一级大片在线观看 | 拍真实国产伦偷精品 | 中文字幕av一区二区三区 | 国产精品黄| 中文av在线播放 | jlzzjlzz国产精品久久 | 亚洲免费观看视频网站 |