<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久久国产露脸精品国产,日本伦理在线一区二区
      文章詳情

      清達(dá)光電1602SPI串口液晶屏樣例程序

      日期:2025-12-16 07:25
      瀏覽次數(shù):1877
      摘要:清達(dá)光電1602SPI串口液晶屏供電電壓有5V和3.3V,顯示屏有黃綠模式和藍(lán)模式。

          清達(dá)光電1602SPI串口液晶屏為16*2字符型,接口為SPI接口,供電電壓有5V/3.3V,顯示模式有藍(lán)模式/黃綠模式,下面為這款1602SPI串口液晶屏樣例程序(基于普通的51單片機(jī),IO口模擬時(shí)序的):


      #include<reg51.h>

      #include<string.h>

      #include<stdio.h>

      #include <intrins.h>

      #define uchar unsigned char

      #define uint unsigned int

      sbit SID=P3^4;

      sbit SCK=P3^3;

      sbit CS=P3^1;

      sbit RS=P3^0;

      #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 延時(shí)

      1.03895500 s */

      uchar code string1[]={"Jia Xian Ke Ji"};

      uchar code string2[]={"www.tsingtek.com"};

      uchar code string3[]={"0123456789"};

      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,

      /* 隔點(diǎn) 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 */

      };

      /********* 時(shí)間延時(shí)函數(shù) *********/

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

      { uint i,j;

      for(i=t;i>0;i--)

      for(j=125;j>0;j--);

      }

      void write_com(uchar Command_byte)

      {

      uint i;

      RS=0;//write command

      CS=0;

      SCK=1;

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

      {

      if((Command_byte&0x80)==0x80)

      SDI=1;

      else

      SDI=0;

      SCK=0;

      if(i==0)

      {

      delay(1);

      }

      Command_byte<<=1;

      SCK=1;

      }

      CS=1;

      delay(1);

      }

      /////////////////////////////////////////

      void write_data(uchar Data8_byte)

      {

      uint i;

      RS=1;//write data

      CS=0;

      SCK=1;

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

      {

      if((Data8_byte&0x80)==0x80)

      SDI=1;

      else

      SDI=0;

      SCK=0;

      if(i==0)

      {

      delay(1);

      }

      Data8_byte<<=

      SCK=1;

      }

      CS=1;

      RS=0;

      delay(1);

      }

      /********* 建立自定義字符函數(shù)

      *********/

      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]); /* 寫“數(shù)據(jù)”

      */

      }

      /********* 字符全屏顯示函數(shù) *********/

      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); /* 寫“數(shù)據(jù)”*/

      }

      delay(time); /* 延時(shí) */

      }

      /********* 字符串顯示函數(shù) *********/

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

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

      { uchar i,j,temp=0;

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

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

      if(*str!='\0') /*字符串結(jié)束標(biāo)志 */

      { if(i)

      temp=j|ddram2; /* DDRAM

      **行地址 */

      else

      temp=j|ddram1; /* DDRAM

      **行地址 */

      write_com(temp); /* 寫“指

      令” */

      write_data(*str++); /* 寫“數(shù)據(jù)”

      */

      }

      else

      { if(i)

      temp=j|ddram2;

      /* DDRAM **行地址 */

      else

      temp=j|ddram1;

      /* DDRAM **行地址 */

      write_com(temp);

      /* 寫“指令” */

      write_data(0xfe);

      /* 寫“數(shù)據(jù)” */

      }

      delay(time); /* 延時(shí) */

      }

      /********* 設(shè)置參數(shù)函數(shù) *********/

      void set(void)

      { delay(15); /* 延時(shí) 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);

      }

      /********* 主函數(shù) *********/

      void main() /* 子程序里

      有延時(shí)1s */

      { set(); /* 設(shè)置參數(shù) */

      write_com(clear); /* 清屏 */

      { 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);

      /* 顯示“隔點(diǎn)” */

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

      write_com(clear); /* 清屏 */

      string_disp(0,3,string3);

      /* **行顯示字符串string3 */

      string_disp(1,0,string4);

      /* **行顯示字符串string4 */

      write_com(clear); /* 清屏 */

      string_disp(0,2,string5);

      /* **行顯示字符串string5:*/

      string_disp(1,8,string6); /* **行顯

      示字符串string6: 2012 年10 月*/

      delay(time);

      }

      }


      主站蜘蛛池模板: 新国产三级在线观看播放| 久久aⅴ无码av高潮AV喷| 缙云县| 国产午夜无码精品免费看动漫| 亚洲乱理伦片在线观看中字| 亚洲欧美中文字幕日韩一区二区| 性欧美free高清video| 亚洲人成网77777色在线播放| 伊人中文字幕在线乱码| 少妇久久久被弄到高潮| 啪啪视频免费看一区二区| 丰满少妇爆乳无码专区| 亚洲水蜜桃久久综合网站| 欧美色综合网站| 国产亚洲精品综合在线网址 | 亚洲精品中文字幕日本| 国产91在线|亚洲| 午夜福利波多野结衣人妻| 黑人玩弄漂亮少妇高潮大叫| 少妇高潮紧爽免费观看| 扎鲁特旗| 亚洲综合国产成人丁香五月小说| 亚洲中文精品一区二区| 亚洲一区二区三区香蕉| 日本岛国大片不卡人妻| 人妻少妇一区二区三区| 乱中年女人伦av三区| 国产亚洲人成网站在线观看| 亚洲精品免费一二三区| 国产女人体一区二区三区| 一二三三免费观看视频| 超清中文乱码字幕在线| 欧美a级在线现免费观看| 亚洲一区二区三区十八禁| 日韩在线手机专区av| 亚洲欧美另类日本久久影院 | 亚洲老女人区一区二视频| 亚洲精品亚洲人成在线播放| 欧美精品AⅤ在线视频| 亚洲精品美女一区二区| 久久精品国产福利国产秒拍|