<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 51單片機(jī)控制HD61202液晶顯示C語(yǔ)言程序

          51單片機(jī)控制HD61202液晶顯示C語(yǔ)言程序

          作者: 時(shí)間:2016-11-28 來(lái)源:網(wǎng)絡(luò) 收藏

          //////////////////////////////////////////////
          // 從液晶片上讀數(shù)據(jù),保留在全局變量cbyte中 //
          //////////////////////////////////////////////
          void Rddata(void)
          {
          Locatexy(); //坐標(biāo)定位,返回時(shí)保留分區(qū)狀態(tài)不變 //
          Datalcm=0xFF;
          wtcom(); // waitting for enable //
          Dilcm = 1; //數(shù)據(jù)//
          Rwlcm = 1; //讀數(shù)據(jù)//
          Elcm = 1; //讀入到LCM//
          _nop_();
          cbyte = Datalcm; //虛讀一次 //
          Elcm = 0;
          Locatexy(); //坐標(biāo)定位,返回時(shí)保留分區(qū)狀態(tài)不變 //
          Datalcm=0xFF;
          wtcom(); // waitting for enable //
          Dilcm = 1; //數(shù)據(jù)//
          Rwlcm = 1; //讀數(shù)據(jù)//
          Elcm = 1; //讀入到LCM//
          _nop_();
          cbyte = Datalcm; //從數(shù)據(jù)口讀數(shù)據(jù),真讀 //
          Elcm = 0;
          }
          ///////////////////////////////////////////
          /// 數(shù)據(jù)寫入 //
          ///////////////////////////////////////////
          void Wrdata(Uchar X)
          {
          Locatexy(); ///坐標(biāo)定位,返回時(shí)保留分區(qū)狀態(tài)不變 //
          wtcom();
          Dilcm = 1; ///數(shù)據(jù)輸出//
          Rwlcm = 0; ///寫輸出 //
          Datalcm = X; ///數(shù)據(jù)輸出到數(shù)據(jù)口 //
          Elcm = 1; ////讀入到LCM//
          _nop_();
          Elcm = 0;
          }
          ///////////////////////////////////////////
          /// 清屏,全屏幕清零 //
          ///////////////////////////////////////////
          void Lcmcls( void )
          {
          for(row=0;row<8;row++)
          for(col=0;col
          }
          ///////////////////////////////////
          ///液晶屏初始化 //
          ///////////////////////////////////
          void Lcminit(void)
          {
          cbyte = DISPOFF; ///關(guān)閉顯示屏 //
          WrcmdL(cbyte);
          WrcmdR(cbyte);
          cbyte = DISPON; ///打開(kāi)顯示屏 //
          WrcmdL(cbyte);
          WrcmdR(cbyte);
          cbyte = DISPFIRST; ///定義顯示起始行為零 //
          WrcmdL(cbyte);
          WrcmdR(cbyte);
          Lcmcls();
          col=0; //清屏 //
          row=0;
          Locatexy();
          }
          ///////////////////////////////////
          /// 延時(shí) //
          ///////////////////////////////////
          void Delay(Uchar MS)
          {
          Uchar us,usn;
          while(MS!=0)
          { usn = 4;
          while(usn!=0)
          {
          us=0xf0;
          while (us!=0){us--;};
          usn--;
          }
          MS--;
          }
          }
          /////////////////////////////////////////////////////////
          // 半角字符(西文字符庫(kù))點(diǎn)陣碼數(shù)據(jù)輸出16/16 //
          /////////////////////////////////////////////////////////
          void Putedot(Uchar Order)
          {
          Uchar i,bakerx,bakery; //共定義4個(gè)局部變量 //
          int x; //偏移量,字符量少的可以定義為UCHAR //
          bakerx = row; //暫存x,y坐標(biāo),已備下半個(gè)字符使用 //
          bakery = col;
          x=Order / 0x10; //半角字符,每個(gè)字符16字節(jié) //
          ///上半個(gè)字符輸出,8列 //
          for(i=0;i<8;i++)
          {
          cbyte = Ezk[x]; ///取點(diǎn)陣碼,rom數(shù)組 //
          Wrdata(cbyte); ///寫輸出一字節(jié) //
          x++;
          col++;
          } ///上半個(gè)字符輸出結(jié)束 //
          col = bakery; ///列對(duì)齊 //
          row = bakerx+1; ///指向下半個(gè)字符行 //
          ///下半個(gè)字符輸出,8列 //
          for(i=0;i<8;i++)
          {
          cbyte = Ezk[x]; ///取點(diǎn)陣碼 //
          Wrdata(cbyte); ///寫輸出一字節(jié) //
          x++;
          col++;
          } ///下半個(gè)字符輸出結(jié)束 //
          row=bakerx;
          } ///整個(gè)字符輸出結(jié)束 //
          /////////////////////////////////////////////////////
          /// 全角字符(漢字庫(kù))點(diǎn)陣碼數(shù)據(jù)輸出16/32 //
          /////////////////////////////////////////////////////
          void Putcdot(Uchar Order)
          {
          Uchar i,bakerx,bakery; ///共定義3個(gè)局部變量 //
          int x; ///偏移量,字符量少的可以定義為UCHAR //
          bakerx = row; / / //暫存x,y坐標(biāo),已備下半個(gè)字符使用 //
          bakery = col;
          x=Order / 0x20; ///每個(gè)字符32字節(jié) //
          ///上半個(gè)字符輸出,16列 //
          for(i=0;i<16;i++)
          {
          Wrdata(Hzk[x]); / //寫輸出一字節(jié) //
          x++;
          col++;
          } ///上半個(gè)字符輸出結(jié)束 //
          ///下半個(gè)字符輸出,16列 //
          col = bakery;
          row = bakerx+1;
          for(i=0;i<16;i++) / //下半部分//
          {
          Wrdata(Hzk[x]);
          x++;
          col++;
          } //下半個(gè)字符輸出結(jié)束 //
          row = bakerx;
          } //整個(gè)字符輸出結(jié)束 //
          /////////////////////////////////////////////////////////////////////////////
          /// 一個(gè)字串的輸出.第一個(gè)參數(shù)為一個(gè)字符串,第二個(gè)參數(shù)為此字符串的字節(jié)數(shù) //
          /////////////////////////////////////////////////////////////////////////////
          void Putstr(Uchar /puts,Uchar i)
          {
          Uchar j,X;
          for (j=0;j
          {
          X = puts[j];
          if (X&0x80)
          {
          Putcdot(X&0x7f); / //只保留低7位//
          }
          else Putedot(X-0x20); / //ascii碼表從0x20開(kāi)始//
          if (col==LCMLIMIT){col=0;row+=2;}; ///下一列,如果列越界換行//
          if (row>6) row=0; ///如果行越界,返回首行 //
          }
          }

          上一頁(yè) 1 2 下一頁(yè)

          評(píng)論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();