乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      lcd1602 屏驅(qū)動(自定義字符)

       共同成長888 2015-07-18

      1、時序圖
      2、代碼
      3、自定義字符

                                


                                       時序圖



      代碼:

      #include <reg51.h>
      #include<intrins.h>
      sbit RS = P2^4;   //定義端口
      sbit RW = P2^5;
      sbit EN = P2^6;
      void Delayus(unsigned char t) // us級別延時
      {  
       while(--t);
      }
      void Delayms(unsigned char t)// ms級別延時
      {
          
       while(t--)
       {
           //大致延時1mS
           Delayus(245);
        Delayus(245);
       }
      }
      bit m_1602() //判斷1602是否忙
      {
       P0 = 0xFF; //準備讀取
       RS = 0;
       RW = 1;
       EN = 0;
       _nop_();
       EN = 1; //產(chǎn)生高電平
       return (bit)(P0 & 0x80);
      }
      void x_1602(bit i,unsigned char j) //參數(shù)一是寫(0、寫指令 1、寫數(shù)據(jù)),參數(shù)二是寫入的8位數(shù)據(jù)
      {
       while(m_1602())
       {
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
       }
       RS = i;
       RW = 0;
       EN = 1;
       P0 = j;
       _nop_();
       EN = 0; //產(chǎn)生下降沿
      }
      void qp_1602() //清屏函數(shù)
      {
       x_1602(0,0x01); //第一個參數(shù)是:寫入的類型(0、寫指令 1、寫數(shù)據(jù)),第一個參數(shù)是:寫入的數(shù)據(jù)
       Delayms(5);
      }
      //顯示字符
      void zf_1602(unsigned char x,unsigned char y,unsigned dat) //參數(shù)一是顯示的列,參數(shù)二是顯示的行,參數(shù)三是顯示的數(shù)據(jù)
      {
       if(y==0)
       {
        x_1602(0,(0x80+x)); //第一行
       }
       else
       {
        x_1602(0,(0xc0+x)); //第二行
       }
       x_1602(1,dat); //寫入數(shù)據(jù)
      }
      void zfc_1602(unsigned char x,unsigned char y,unsigned char *dat)
      {
       if(y==0)
       {
        x_1602(0,(0x80+x)); //第一行
       }
       else
       {
        x_1602(0,(0xc0+x)); //第二行
       }
       while(*dat) //&:取地址 *:取值
       {
        x_1602(1,*dat);
        dat ++;
       }
      }
      void csh_1602()  //初始化1602
      {
       x_1602(0,0x38); //顯示模式設置 
       Delayms(5);
       x_1602(0,0x38);
       Delayms(5);
       x_1602(0,0x38);
       Delayms(5);
       x_1602(0,0x38);
       x_1602(0,0x08); //顯示關閉.
       x_1602(0,0x01); //顯示清屏 
       x_1602(0,0x06); //顯示光標移動設置 
       Delayms(5);
       x_1602(0,0x0c);  //顯示開及光標設置
      }
      void main()
      {
       csh_1602();
       qp_1602();
       while(1)
       {
        zf_1602(0,0,'Q'); //寫入字符
        zf_1602(1,0,'Q'); //寫入字符
        zf_1602(2,0,' '); //寫入字符
        zfc_1602(3,0,"
      www.baidu.con"); //寫入字符串
        zfc_1602(1,1,"1990.02.08"); //寫入字符串
        while(1);
       }
      }

      自定義字符 (轉(zhuǎn))

      圖示:

       

      用戶自定義字符的應用:
      我們從CGROM表上可以看到,在表的最左邊是一列可以允許用戶自定義的CGRAM,從上往下看著是16個,實際只有8個字節(jié)可用。它的字符碼是 00000000-00000111這8個地址,表的下面還有8個字節(jié),但因為這個CGRAM的字符碼規(guī)定0-2位為地址,3位無效,4-7全為零。因此 CGRAM的字符碼只有最后三位能用也就是8個字節(jié)了。等效為0000X111,X為無效位,最后三位為000-111共8個。
      如果我們要想顯示這8個用戶自定義的字符,操作方法和顯示CGROM的一樣,先設置DDRAM位置,再向DDRAM寫入字符碼,例如“A”就是41H?,F(xiàn)在我們要顯示 CGRAM的第一個自定義字符,就向DDRAM寫入00000000B(00H),如果要顯示第8個就寫入00000111(08H),簡單吧!
      好!現(xiàn)在我們來看怎么向這八個自定義字符寫入字模。有個設置CGRAM地址的指令如下圖:

       


      從這個指令可以看出指令數(shù)據(jù)的高2位已固定是01,只有后面的6位是地址數(shù)據(jù),而這6位中的高3位就表示這八個自定義字符,最后的3位就是字模數(shù)據(jù)的八個地址了。例如第一個自定義字符的字模地址為01000000-01000111八個地址。我們向這8個字節(jié)寫入字模數(shù)據(jù),讓它能顯示出“℃”
      地址:01000000  數(shù)據(jù):00010000     圖示:    ○○○■○○○○
         01000001     00000110                ○○○○○■■○
         01000010     00001001                ○○○○■○○■
         01000011     00001000                 ○○○○■○○○
         01000100     00001000                ○○○○■○○○
         01000101     00001001                ○○○○■○○■
         01000110     00000110                ○○○○○■■○
         01000111     00000000                ○○○○○○○○

        本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多