新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > PIC16F946中如何使用LCD

        PIC16F946中如何使用LCD

        作者: 時間:2012-06-23 來源:網(wǎng)絡 收藏

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

        本文引用地址:http://www.104case.com/article/171242.htm

          1.直接將值寫入DATA1~DATA23

          2.利用斷開將值寫入LCDDATA1~LCDDATA23

          第一種方法有一個缺點需判斷LCDPS里的WA,若WA=1,才可以寫入LCDDATA1~LCDDATA23

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

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

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

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

          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是一個命令運行的時間,這個可忽略不計,因為值太小了,

          這約2ms的時間,表示你可以寫入LCDDATA的時間,以下是我的做法

          斷開副程序如下

          if(T0IE T0IF)

          {

          //30ms斷開一次

          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是自己定義的變量名稱,在主程序中需點亮某一段LCD,只需將lcddata1~lcddata23的bit設 為1即可,

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

          因為Timer0 30ms才斷開一次也就是30ms才enable LCD的斷開,這樣的好處是LCD不會很頻繁的斷開,當然30ms可以再延長,因為

          畢竟人的眼睛沒法反應那么快,這同時解決了LCDDATA不易寫入的問 題及LCD不會時常在斷開

        LCD顯示屏相關文章:lcd顯示屏原理


        lcd相關文章:lcd原理


        關鍵詞: LCD 使用 如何 PIC16F946

        評論


        相關推薦

        技術專區(qū)

        關閉
        主站蜘蛛池模板: 永春县| 皋兰县| 习水县| 澳门| 故城县| 隆回县| 古田县| 红原县| 逊克县| 临朐县| 紫金县| 英山县| 贡觉县| 哈巴河县| 油尖旺区| 桂林市| 湖南省| 灵山县| 大余县| 大丰市| 望奎县| 民和| 化德县| 沙湾县| 西宁市| 武陟县| 崇阳县| 读书| 西华县| 沧州市| 万源市| 平顺县| 北海市| 灵石县| 乐清市| 惠来县| 隆昌县| 和田县| 康平县| 望奎县| 沈阳市|