<noscript id="iwesy"><optgroup id="iwesy"></optgroup></noscript>
<ul id="iwesy"><pre id="iwesy"></pre></ul>
<samp id="iwesy"><tbody id="iwesy"></tbody></samp>
    • <samp id="iwesy"><pre id="iwesy"></pre></samp>
    • 人妻大战黑人白浆狂泄,一区二区日韩国产精久久,日本不卡一区二区三区,久久亚洲日本免费高清一区,精品国产一区二区三区香蕉 ,日韩视频一区二区三区视频 ,69久久国产露脸精品国产,日本伦理在线一区二区
      文章詳情

      8051單片機控制字符I2C液晶屏應用實例

      日期:2025-10-30 11:26
      瀏覽次數:2078
      摘要: 8051單片機控制字符I2C液晶屏應用實例 摘要:本文介紹了通用型8051單片機控制清達光電字符型I2C液晶模塊HC1624-I2C,同時介紹了HC1624的主要參數以及特點。 更多的信息您可以QQ 453189731 13701081790聯系。 1,8051單片機控制字符I2C液晶屏應用實例——8051單片機控制HC1624-I2C液晶模塊硬件以及軟件應用 示例程序 #include<reg51.h> #include<string.h> #include<stdio.h> #include <...

      8051單片機控制字符I2C液晶屏應用實例


      摘要:本文介紹了通用型8051單片機控制清達光電字符型I2C液晶模塊HC1624-I2C,同時介紹了HC1624的主要參數以及特點。

      更多的信息您可以QQ 453189731   13701081790聯系。

       

      1,8051單片機控制字符I2C液晶屏應用實例——8051單片機控制HC1624-I2C液晶模塊硬件以及軟件應用

       


       

      示例程序

      #include<reg51.h> 

      #include<string.h> 

      #include<stdio.h> 

      #include <intrins.h>

       #define uchar unsigned char

       #define uint unsigned int   

      #define IIC 

      sbit SDA=P1^6;//connect to DB6 

      sbit SCL=P1^7;//connect to DB7  

      #define clear 0x01  /* Clear Display */ 

      #define home 0x02  /* Return Home */ 

      #define enmode 0x06 /* Enter Mode Set */

       #define off 0x08  /* Display on/off Set */ 

      #define on 0x0e  /* Display on/off Set */ 

      #define shift 0x14 /* Cursor or Display Shift */ 

      #define reset 0x30  /* reset */ 

      #define function 0x38  /* Function Set */ 

      #define cgram 0x40 /*Set CGRAM Address */ 

      #define ddram1 0x80   /* Set DDRAM Line1 Address */

       #define ddram2 0xC0  /* Set DDRAM Line2 Address */

       #define time  1000   /* 1000延時 1.03895500 s */ 

       uchar code string1[]={"Jia Xian Ke Ji"}; uchar code string2[]={"www.tsingtek.com"};

       uchar code string3[]={"Tel:13701081790"}; 

      uchar code string4[]={"abcdefghijklmnopqrstuvwxyz"}; uchar code string5[]={"Thank You !"}; uchar code string6[]={'2','0','1','2',0x06,'1','0',0x07,'\0'};  

      /********* 自定義字符庫 *********/ uchar code CGF[8][8]={    0x1f,0x00,0x1f,0x00,0x1f,0x00,0x1f,0x00,  /* 隔行 00H */    0x00,0x1f,0x00,0x1f,0x00,0x1f,0x00,0x1f,  /*      01H */    0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,  /* 隔列 02H */    0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,  /*      03H */    0x15,0x0a,0x15,0x0a,0x15,0x0a,0x15,0x0a,  /* 隔點 04H */    0x0a,0x15,0x0a,0x15,0x0a,0x15,0x0a,0x15,  /*      05H */    0x08,0x0f,0x12,0x0f,0x0a,0x1f,0x02,0x02,  /* "" 06H */    0x0f,0x09,0x0f,0x09,0x0f,0x09,0x11,0x00,  /* "" 07H */ }; 

       /********* 時間延時函數 *********/ 

      void delay(uint t)     /* 1.02500 ms */ 

      { uint i,j;   for(i=t;i>0;i--)     for(j=125;j>0;j--); }  

       

      #ifdef IIC //============================================ 

      void start() 

      {    SDA=1; 

      _nop_();    

      SCL=1;    

      _nop_();    

      _nop_();    

      SDA=0;   

       _nop_();    

      _nop_();    

      SCL=0; }

       //============================================ 

       

      void stop() {    SDA=0;  _nop_();    SCL=1;    _nop_();    _nop_();    SDA=1;    _nop_();    _nop_(); } 

       //============================================ 

      void sendbyte(uint temp) 

      {   int i,j;  for(i=0;i<8;i++)  

         {  SCL=0;  if(temp&0x80)   SDA=1;  else   SDA=0;  _nop_();  _nop_();  SCL=1;  _nop_();  _nop_();  SCL=0;  temp=temp<<1;  } 

      _nop_();  _nop_();  SCL=1;  _nop_();  _nop_();  SCL=0;  _nop_();  _nop_(); }  //============================================ 

      void write_com(uint para) 

      {  start();    sendbyte(0x78);    //slave address    sendbyte(0x00);    //command    sendbyte(para);    stop(); } 

      //============================================ 

      void write_data(uint para) 

      {  start();    sendbyte(0x78);  //RW1033 slave   address    

      sendbyte(0x40);   //data    sendbyte(para);    

      stop(); } 

      #endif  

      /****** 建立自定義字符函數*******/

       void CGFUNTION(uchar array[8][8]) 

      { uchar i,j;   write_com(cgram);  /* 寫“指令”CGRAM地址 */  

       for(i=0;i<8;i++)     for(j=0;j<8;j++)      write_data(array[i][j]);  /* 寫“數據” */ } 

       

      /********* 字符全屏顯示函數 *********/ 

      void char_fill_disp(uchar dat)

       { uchar i,j,temp=0;  

       for(i=0;i<2;i++)     

      for(j=0;j<16;j++)      

      { if(i==1)           temp=j|ddram2;   /* DDRAM**行地址 */          

      else           temp=j|ddram1;   /* DDRAM**行地址 */        

      write_com(temp);   /* 寫“指令” */        

      write_data(dat);   /* 寫“數據” */      } }

       

       /********* 字符串顯示函數 *********/ 

      /*********** 可選行顯示 **********/ 

      void string_disp(uchar x, uchar y, uchar *str) 

      { uchar i,j,temp=0;  

       for(i=x,j=y;j<16&&*s!='\0';j++)  /* 字符串結束標志 */       

      { if(i==0)          temp=j|ddram1;   /* DDRAM**行地址 */        

      else          temp=j|ddram2;   /* DDRAM**行地址 */         

      write_com(temp);           

       write_data(*s++);      } }  

       

       /********* 設置參數函數 *********/

       void set(void) 

      { delay(15);  /* 延時 15.20800 ms */     

       write_com(0x38); //Function set N=1(2line),F=0(5*8 dot)  

      delay(5);  

      write_com(0x0C); //display on  

      delay(5);  

      write_com(0x01); //clear display  

      delay(10); 

       

      write_com(0x06); //entry set  

      delay(5); } 

       

       /********* 主函數 *********/

       void main()    /* 子程序里有延時1s */ 

      { set();  /* 設置參數 */   

      write_com(clear);  /* 清屏 */   

      while(1)   { char_fill_disp(0xff);  /* 全屏 */     

                 write_com(clear);  /* 清屏 */ 

                string_disp(0,1,string1);    /* **行顯示字符串string1 */

                string_disp(1,0,string2);   /* **行顯示字符串string2 */     

                write_com(clear);  /* 清屏 */     

               char_fill_disp(0x31);  /* 顯示“1” */ 

               CGFUNTION(CGF);   /* 建立自定義字符 */    

               write_com(clear);  /* 清屏 */    

               char_fill_disp(0x00);  /* 顯示“隔行” */    

               char_fill_disp(0x02);  /* 顯示“隔列” */   

               char_fill_disp(0x04);  /* 顯示“隔點” */   

               char_fill_disp(0xff);  /* 全屏 */         

               write_com(clear);  /* 清屏 */

               string_disp(0,0,string3);    /* **行顯示字符串string3 */

               string_disp(1,0,string4);   /* **行顯示字符串string4 */    

               write_com(clear);  /* 清屏 */ 

               string_disp(0,2,string5);   /* **行顯示字符串string5:*/

              string_disp(1,8,string6);   /* **行顯示字符串string6: 201210*/           delay(time);    } } 

       

      2. 8051單片機控制字符I2C液晶屏應用實例——HC1624-I2C介紹

       

      18051單片機控制字符I2C液晶屏應用實例——I2C液晶時序介紹:

          I2C是一種時序,液晶模塊時序是指對LCD顯示模塊進行讀寫時電路的時序要求和狀態。

      主要分為以下幾種時序:8080并口,6800并口,SPI串口,I2C串口,UART串口,RS232串口,USB等幾種類型。

      清達光電I2C液晶模塊HC1624時序圖如下:


       


       

       

       

       

      28051單片機控制字符I2C液晶屏應用實例——HC1624-I2C液晶模塊主要參數:

      HC1624為清達光電生產的16*2字符液晶模塊(資料參考http://www.chinalcdmodule.com/character-lcm-hc1624.html

       

      模塊外形圖


       

       


      接口定義:

      編號  符號 電平 功能 

      1 VSS 0V 接地               2 VDD +5.0V 邏輯電壓 

      3 V0 - LCD驅動電壓          4~6 NC - 空腳

      7~8 VSS 0V 邏輯地           9~11 NC - 空腳

      12 VSS 0V 邏輯地            13 SDA H/L I2C接口數據輸入 

      14 SCL H/L I2C接口時鐘輸入 

      15 LEDA +3.3V               16 LEDK 0V LED背光源輸入電壓

       

      3)8051單片機控制字符I2C液晶屏應用實例——HC1624-I2C液晶模塊控制器介紹


       


      西文字庫表

       

      主站蜘蛛池模板: 亚洲精品国产视频一区二区| 国产V综合V亚洲欧美久久| 日本成人字幕在线不卡| 棚户区小伙嫖老妓女| 免费一级a毛片在线播出| 南木林县| 香蕉国产人午夜视频在线观看| 久久精品国产亚洲av热九九热| 亚洲小说图区综合在线| 宝贝腿开大点我添添公口述视频 | 国产午夜无码视频在线观看 | 国产精品一区二区三区91| 国产欧美亚洲精品第一页| 国产女主播福利一二区| 武定县| 无遮挡中文毛片免费观看| 亚洲AV秘 片一区二区三区 | 丁香五月婷激情综合第九色| 国产精品va在线播放| 亚洲午夜看片无码| 人妻无码中文专区久久综合| 国产一区国产精品自拍| 色综合天天综合高清网国产在线| 久久国产一区二区三区| 人妻少妇被猛烈进入中文字| 麻豆国产VA免费精品高清在线| 欧美中文字幕在线看| 日韩精品一区二区都可以| 国产精品亚洲一区二区极品| 青青草免费在线播放视频五月天 | 曰韩亚洲AV人人夜夜澡人人爽| 久久精品蜜芽亚洲国产AV| 午夜精品久久久影院av| 2021国产最新在线视频一区| 久久久久国产亚洲AV麻豆| 97久久久精品综合88久久| 在线观看亚洲你懂得| 日本骚色老妇视频网站| 国产精品亚洲а∨天堂2021| 中文字幕人妻无码专区APP| 韩国主播av福利一区二区|