<form id="lpvjh"><nobr id="lpvjh"><th id="lpvjh"></th></nobr></form>

<form id="lpvjh"></form>
<form id="lpvjh"><th id="lpvjh"></th></form>

<form id="lpvjh"></form>

<address id="lpvjh"></address>

    <span id="lpvjh"><th id="lpvjh"></th></span>

      新聞詳情

      液晶模塊HG128641與8051單片機應用示例-2

      日期:2021-12-03 01:45
      瀏覽次數:875
      摘要:

      液晶模塊HG128641與8051單片機應用示例-2  接上一篇

      四‘、液晶模塊HG128641與8051單片機連接電路圖:
         

      五、HG128641與8051單片機示例程序(寫指令寫數據等主要子程序)

      /************
        延時子程序
      *****************/
      void Delay(uint t)
      {uint i,j;
      for(i=0;i<t;i++)
      for(j=0;j<305;j++)
      _nop_();_nop_();_nop_();_nop_();
      }
      /***********
       忙判斷子程序
      ************/
      void Busy()
      {
       A0=0;
       RW=1;
      buslcd=0xff;
       E=1;
      _nop_();
      while(buslcd&0x80);
      E=0;
      _nop_();
      }
      /*********************
       寫入左半屏指令 子程序
      **********************/
      void Writecom1(uchar wcom)
      {
      CS1=1;CS2=0;
       Busy();
       buslcd=wcom;
       A0=0;
       RW=0;
       E=1;
      _nop_();
        E=0;
      _nop_();}
      /*********************
       寫入左半屏數據 子程序
      **********************/
      void Writedata1(uchar wdata)
      {
      CS1=1;CS2=0;
       Busy();
       buslcd=wdata;
       A0=1;
       RW=0;
       E=1;
      _nop_();
       E=0;
      _nop_();}
      /*********************
       寫入右半屏指令 子程序
      ***********************/
      void Writecom2(uchar wcom)
      {
      CS1=0;CS2=1;
       Busy();
       buslcd=wcom;
       A0=0;
       RW=0;
       E=1;
      _nop_();
        E=0;
      _nop_();}
      /************************
       寫入右半屏數據 子程序
      *************************/
      void Writedata2(uchar wdata)
      {
      CS1=0;CS2=1;
       Busy();
       buslcd=wdata;
       A0=1;
       RW=0;
       E=1;
      _nop_();
       E=0;
      _nop_();}

      /*********************
      讀出左半屏數據 子程序
      **********************/
      uchar Readdata1()
      {
      uchar rdata;
      CS1=1;CS2=0;
       Busy();
       A0=1;
       RW=1;
       E=1;
       rdata=buslcd;
      _nop_();_nop_();_nop_();
       E=0;
      _nop_();
      return rdata;
      }
      /**********************
      讀出右半屏數據 子程序
      ****************************/
      uchar Readdata2()
      {
      uchar rdata;
      CS1=0;CS2=1;
       Busy();
       A0=1;
       RW=1;
       E=1;
       rdata=buslcd;
      _nop_();_nop_();_nop_();
       E=0;
      _nop_();
      return rdata;
      }
      /*********************
          清屏子程序
      ****************************/
      void Clear(void)
      {uchar i,j;
      for(i=0;i<8;i++)
      {Writecom1(0xb8+i);Writecom1(0x40);
      Writecom2(0xb8+i);;Writecom2(0x40);
      for(j=0;j<64;j++)
      {Writedata1(0);Writedata2(0);}}
      }
      /**********************
          液晶初始化子程序
      ***********************/
      void INT()
      {
      Delay(3);
      Writecom1(0x3f);
      Writecom2(0x3f);
      Writecom1(0xc0);
      Writecom2(0xc0);
      Writecom1(0xb8);
      Writecom2(0xb8);
      Writecom1(0x40);
      Writecom2(0x40);
      Clear();
      }

      新博体育