激情人妻在线,又长又硬又粗一区二区三区,国产爽爽爽网,最新中文字幕久久二区

  1. <bdo id="cbt7u"><span id="cbt7u"><meter id="cbt7u"></meter></span></bdo>

    <bdo id="cbt7u"><span id="cbt7u"><meter id="cbt7u"></meter></span></bdo>
  2. <track id="cbt7u"><input id="cbt7u"></input></track>
  3. 文章詳情

    清達(dá)光電SPI液晶模塊與8051單片機(jī)應(yīng)用實(shí)例

    日期:2025-07-02 14:12
    瀏覽次數(shù):2327
    摘要:

    清達(dá)光電SPI液晶模塊與8051單片機(jī)應(yīng)用實(shí)例

    1,SPI液晶時(shí)序介紹:

        SPI是一種時(shí)序,液晶模塊時(shí)序是指對LCD顯示模塊進(jìn)行讀寫時(shí)電路的時(shí)序要求和狀態(tài)。

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

    清達(dá)光電SPI液晶模塊HC1624時(shí)序圖如下:

     

     

     

     

    2SPI液晶HC1624主要參數(shù):

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

     

    尺寸規(guī)格

     

     

     

     

     

     

    原理結(jié)構(gòu)圖

     

     

    模塊外形圖

     

     

    接口定義:

    編號(hào)  符號(hào) 電平 功能 

    1 VSS 0V 接地 

    2 VDD +5.0V 邏輯電壓 

    3 V0 - LCD驅(qū)動(dòng)電壓 

    4 RS H/L H: 數(shù)據(jù)  L: 指令 

    5~11 NC - 空腳位 

    12 /CS L 低片選有效 

    13 SCLK H/L 串行時(shí)鐘輸入 

    14 SID H/L 串行數(shù)據(jù)輸入 

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

     

     

     

    3, SPI液晶模塊HC1624控制器介紹

     


    西文字庫表

     


    4,SPI液晶模塊與8051單片機(jī)硬件及軟件應(yīng)用實(shí)例

     

    硬件接口圖

     

     

    軟件應(yīng)用實(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; 

     

    /*********************

    延時(shí)子程序

    ********************/

    void delayus(uchar m)

    {

    while(--m);

    }

    void delayms(uchar m)

    {

    uchar i,j;

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

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

    delayus(1);

    }

    /****************

    液晶屏寫入程序

    ********************************************/

    void SendByte(unsigned char Dbyte)

    {

         unsigned char i ;

        // CS = 0;

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

         {

               SCK = 0 ;

               delayus(1);

               Dbyte=Dbyte<< 1 ;      //左移一位

               delayus(1);

               SID = CY ;            //移出的位給SID

               delayus(1);

               SCK = 1 ;

               SCK = 0 ;

         }

    }

    void WriteCommand( unsigned char Cbyte )

    {

           CS = 0;

         delayus(1);

         SendByte(Cbyte) ;

         delayus(1);

    }

     

    void WriteData( unsigned char Dbyte)

    {

             CS = 0;

         WriteCommand(0x3c);

         SendByte(0x80) ;

         SendByte(Dbyte) ;

    }

    /***********************

    液晶屏初始化

    ************************/

    void lcd_init()

    {

     RES=0;

     delayus(10);

     RES=1;

     delayus(10);

     delayms(60);

     WriteCommand(0x38);//8位數(shù),2行顯示,外部功能關(guān)

      delayms(60);

     WriteCommand(0x38);//8位數(shù),2行顯示,外部功能關(guān)

      delayms(60);

     WriteCommand(0x38);//8位數(shù),2行顯示,外部功能關(guān)

      delayus(60);

     WriteCommand(0x0e); //開顯示,光標(biāo),2行顯示

      delayus(60);

     WriteCommand(0x01); //**

      delayus(60);

     WriteCommand(0x02); //歸零

       delayus(60);

     WriteCommand(0x14); //光標(biāo)右移

     WriteCommand(0x06); //模式進(jìn)入

    }

    void goto_lcd(uchar x,uchar y)

    {

      WriteCommand(0x38);

      WriteCommand(0x80+x+y*0x40);

    }

    void write_string(uchar x,uchar y,uchar *s)

    {

      goto_lcd(x,y);

      while(*s>0)

      {WriteData(*s); s++;}

    }

    void ringt_lcd()

    {

    uchar i;

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

    {WriteCommand(0x1c);delayms(4000); };

    }

    void left_lcd()

    {

    uchar i;

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

    {WriteCommand(0x18);delayms(4000); };

    }

    int main(void)

    {

    uchar i;

    lcd_init();

    write_string(0,0,"012456789ABCDEFG");

    write_string(4,1,"Tsingtek");

    while(1);

    }