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

          新聞中心

          PIC16F946中如何使用LCD

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

          的Datasheet中得知,將值寫(xiě)到做顯示有兩種方法

          本文引用地址:http://www.ex-cimer.com/article/171242.htm

            1.直接將值寫(xiě)入DATA1~DATA23

            2.利用斷開(kāi)將值寫(xiě)入LCDDATA1~LCDDATA23

            第一種方法有一個(gè)缺點(diǎn)需判斷LCDPS里的WA,若WA=1,才可以寫(xiě)入LCDDATA1~LCDDATA23

            這在程序中是非常不好寫(xiě),也容易造成錯(cuò)誤,若WA=0時(shí)將值寫(xiě)入LCDDATA1~LCDDATA23,會(huì)造成錯(cuò)誤(LCDCON的WERR會(huì)變成1),

            若在程序中用回圈一直判斷WA是否為1然后再將值寫(xiě)入LCDDATA,對(duì)系統(tǒng)而言這個(gè)等待時(shí)間太長(zhǎng)了(幾個(gè)ms),且寫(xiě)入錯(cuò)誤時(shí)

            (WERR=1),不只值 沒(méi)有寫(xiě)入成功,還需用軟件將WERR清為零,非常的不好用.

            第二種方法只是比第一種麻煩一點(diǎn),它是在LCD允許你寫(xiě)入時(shí)產(chǎn)生斷開(kāi),斷開(kāi)可以寫(xiě)入的時(shí)間為

            TFRAME/(2*(LMUX1:0>+1))+TCY/2

            若是FRAME FREQUENCY=64Hz,TFRAME=1/64=15.625ms

            我是用1/4 multiplex及1/3 LCD Bias,所以LMUX1:0>=11

            所以15.625/(2*(3+1))+TCY/2=15.625/8+TCY/2=1.953125+TCY/2,TCY是一個(gè)命令運(yùn)行的時(shí)間,這個(gè)可忽略不計(jì),因?yàn)橹堤×?

            這約2ms的時(shí)間,表示你可以寫(xiě)入LCDDATA的時(shí)間,以下是我的做法

            斷開(kāi)副程序如下

            if(T0IE T0IF)

            {

            //30ms斷開(kāi)一次

            LCDIE=1;

            }

            if(LCDIF LCDIE)

            {

            LCDDATA0=lcddata0;

            LCDDATA1=lcddata1;

            LCDDATA2=lcddata2;

            LCDDATA3=lcddata3;

            LCDDATA4=lcddata4;

            LCDDATA5=lcddata5;

            LCDDATA6=lcddata6;

            LCDDATA7=lcddata7;

            LCDDATA8=lcddata8;

            LCDDATA9=lcddata9;

            LCDDATA10=lcddata10;

            LCDDATA11=lcddata11;

            LCDDATA12=lcddata12;

            LCDDATA13=lcddata13;

            LCDDATA14=lcddata14;

            LCDDATA15=lcddata15;

            LCDDATA16=lcddata16;

            LCDDATA17=lcddata17;

            LCDDATA18=lcddata18;

            LCDDATA19=lcddata19;

            LCDDATA20=lcddata20;

            LCDDATA21=lcddata21;

            LCDDATA22=lcddata22;

            LCDDATA23=lcddata23;

            LCDIE=0;

            }

            其中l(wèi)cddata1~lcddata23是自己定義的變量名稱(chēng),在主程序中需點(diǎn)亮某一段LCD,只需將lcddata1~lcddata23的bit設(shè) 為1即可,

            當(dāng)然主程序中還需設(shè)置LCDPS,LCDCON,LCDSE0~LCDSE5及LCDIE,這樣的做法保證一定能將數(shù)據(jù)寫(xiě)入LCDDATA且不會(huì)發(fā)生錯(cuò)誤,

            因?yàn)門(mén)imer0 30ms才斷開(kāi)一次也就是30ms才enable LCD的斷開(kāi),這樣的好處是LCD不會(huì)很頻繁的斷開(kāi),當(dāng)然30ms可以再延長(zhǎng),因?yàn)?/span>

            畢竟人的眼睛沒(méi)法反應(yīng)那么快,這同時(shí)解決了LCDDATA不易寫(xiě)入的問(wèn) 題及LCD不會(huì)時(shí)常在斷開(kāi)

          LCD顯示屏相關(guān)文章:lcd顯示屏原理


          lcd相關(guān)文章:lcd原理


          關(guān)鍵詞: LCD 使用 如何 PIC16F946

          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(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); })();