在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

    
    
    <address id="vxupu"><td id="vxupu"></td></address>

      <pre id="vxupu"><small id="vxupu"></small></pre>
      <dfn id="vxupu"></dfn>
      <div id="vxupu"><small id="vxupu"></small></div>
    1. 新聞中心

      LCD 240*128 T6963C C51程序

      作者: 時間:2016-12-02 來源:網(wǎng)絡(luò) 收藏

      /**********************************
      //= 函數(shù)原型: Clr_char_Scr(void)
      //= 功 能: 清除當(dāng)前文本屏幕
      //= 參 數(shù):
      //= 返 回 值:
      //= 函數(shù)性質(zhì):公有函數(shù)
      **********************************/
      void Clr_char_Scr(void)//文本屏可以在內(nèi)存中保持很多屏
      {
      uint i;
      // char_addr_Pointer_Set(0,0);//從0行0列開始
      char_addr_Pointer_Set(2,0);//從0行0列開始
      wr_cmd_0(LC_AUT_WR); // 自動寫
      // for(i=0;i<16*30;i++) //16行30列字符
      for(i=0;i<14*30;i++) //16行30列字符
      {
      awr_data(0x00); // 寫數(shù)據(jù)空白
      }
      wr_cmd_0(LC_AUT_OVR); // 自動寫結(jié)束
      char_addr_Pointer_Set(0,0); // 重置地址指針
      }

      /**********************************
      //= 函數(shù)原型: Clr_lcdram(void)
      //= 功 能: 清除所有的顯示內(nèi)存
      //= 參 數(shù):
      //= 返 回 值:
      //= 函數(shù)性質(zhì):私有函數(shù)
      **********************************/
      void Clr_lcdram(void)
      {
      uint i;
      wr_cmd_2(LC_ADD_POS,0x0000); // 設(shè)置地址指針0
      wr_cmd_0(LC_AUT_WR); // 自動寫
      for(i=0;i<=DISRAM_SIZE;i++)
      {
      awr_data(0x00); // 寫數(shù)據(jù)
      }
      wr_cmd_0(LC_AUT_OVR); // 自動寫結(jié)束
      wr_cmd_2(LC_ADD_POS,0x0000); // 重置地址指針
      }


      /**********************************
      //= 函數(shù)原型: reset_lcm(void)
      //= 功 能: 復(fù)位液晶模塊
      //= 參 數(shù):
      //= 返 回 值:
      //= 函數(shù)性質(zhì):私有函數(shù)
      **********************************/
      void reset_lcm(void)
      {
      LCMRESET = 0;
      _nop_();
      _nop_();
      LCMRESET=0XFF;
      }

      /**********************************
      //= 函數(shù)原型: void lcm_init(void)
      //= 功 能: 初始化液晶模塊
      //= 參 數(shù):
      //= 返 回 值:
      //= 函數(shù)性質(zhì):公有函數(shù)
      **********************************/
      void lcm_init(void)
      {
      reset_lcm();//復(fù)位

      wr_cmd_2(LC_TXT_HOME,TXTSTART); // 文本顯示區(qū)首地址
      wr_cmd_2(LC_TXT_AREA,30); // 文本顯示區(qū)寬度30列
      txthome = TXTSTART;

      wr_cmd_2(LC_GRH_HOME,GRSTART); // 圖形顯示區(qū)首地址
      wr_cmd_2(LC_GRH_AREA,30); // 圖形顯示區(qū)寬度30列
      grhome = GRSTART;

      wr_cmd_2(LC_CGR_OFFSET,CGRAMSTART >> 11);//CGRAM 偏移地址設(shè)置

      wr_cmd_0(LC_MOD_XOR|0x08); // 顯示方式設(shè)置,異或,字符全部用RAM區(qū)域生成
      wr_cmd_0(LC_DIS_SW |0x0c); // 顯示開關(guān)設(shè)置,圖文混和模式

      Clr_lcdram();//清除內(nèi)存

      }

      /**********************************
      //= 函數(shù)原型: Pixel(unsigned char PointX,unsigned char PointY, bit Mode)
      //= 功 能: 在指定坐標(biāo)位置顯示一個點(diǎn)
      //= 參 數(shù): 坐標(biāo),顯示點(diǎn)或清除點(diǎn)
      //= 返 回 值:
      //= 函數(shù)性質(zhì):私有函數(shù)
      //= 如果顯示屏超過了256*256,請修改這個函數(shù) PointX,PointY的類型
      //= Mode 1:顯示 0:清除該點(diǎn)
      **********************************/
      Pixel(unsigned char PointX,unsigned char PointY, bit Mode)
      {
      unsigned int StartAddr;
      unsigned char dat;
      StartAddr=(uint)PointX*30 + PointY/8 + grhome;
      dat=LC_BIT_OP+7-PointY%8; //生產(chǎn)位操作命令畫點(diǎn)的數(shù)據(jù)
      if(Mode) dat=dat|0x08;
      wr_cmd_2(LC_ADD_POS,StartAddr);//設(shè)置該點(diǎn)所在單元地址
      wr_cmd_0(dat); // 利用位操作命令畫點(diǎn)
      }


      /**********************************
      //= 函數(shù)原型: void line( unsigned char x1, unsigned char y1, unsigned char x2, unsigned char y2, bit Mode)
      //= 功 能: 劃線函數(shù)
      //= 參 數(shù): 坐標(biāo)1,坐標(biāo)2,顯示點(diǎn)或清除點(diǎn)
      //= 返 回 值:
      //= 函數(shù)性質(zhì):私有函數(shù)
      //= 其它:顯示點(diǎn)陣不超過255*255
      /**********************************/

      void line( unsigned char y1,unsigned char x1, unsigned char y2,unsigned char x2, bit Mode)
      {
      unsigned char x,y;
      float k,b;
      if( abs(y1-y2) <= abs(x1-x2) ) // |k|<=1
      {
      k=((float)y2-y1) / ((float)x2-x1) ;
      b=y1-k*x1;
      if( x1 <= x2 )
      {
      for(x=x1;x<=x2;x++)
      {
      y=(uchar)(k*x+b);
      Pixel(x, y, Mode);
      }
      }
      else
      {
      for(x=x2;x<=x1;x++)
      {
      y=(uchar)(k*x+b);
      Pixel(x, y, Mode);
      }
      }
      }
      else // abs(y1-y2) > abs(x1-x2) |K|>1
      {
      k=((float)x2-x1) / ((float)y2-y1) ;
      b=x1-k*y1;
      if( y1 <= y2 )
      {
      for(y=y1;y<=y2;y++)
      {
      x=(uchar)(k*y+b);
      Pixel( x , y,Mode );
      }
      }
      else
      {
      for(y=y2;y<=y1;y++)
      {
      x=(uchar)(k*y+b);
      Pixel( x , y,Mode );
      }
      }
      }
      }

      /**********************************
      //= 函數(shù)原型: void ShowChar(uchar row,uchar col,uchar ch)
      //= 功 能: 在指定行列顯示8*16字符
      //= 參 數(shù): 坐標(biāo)行,坐標(biāo)列,字符串指針
      //= 返 回 值:
      //= 函數(shù)性質(zhì):公有函數(shù)
      //=其它:所有可顯示字符不超過128個,否則本函數(shù)有溢出的可能
      **********************************/
      void showchar(uchar col,uchar row,uchar *chp)
      {
      #define hzp chp
      uchar char_sequence_number;
      uchar ascii_num;
      row/=8;col/=8;
      while (*chp !=