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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > AMPIRE12864驅(qū)動(dòng)程序

          AMPIRE12864驅(qū)動(dòng)程序

          作者: 時(shí)間:2016-11-30 來(lái)源:網(wǎng)絡(luò) 收藏
          ⑧ Y地址計(jì)數(shù)器
          Y地址計(jì)數(shù)器是一個(gè)6位循環(huán)加一計(jì)數(shù)器。它管理某一頁(yè)面上的64個(gè)單元。Y地址計(jì)數(shù)器可以由MPU以指令形式設(shè)置,它和頁(yè)地址指針結(jié)合唯一選通顯示存儲(chǔ)器的一個(gè)單元,Y地址計(jì)數(shù)器具有自動(dòng)加一功能。在顯示存儲(chǔ)器讀/寫操作后Y地址計(jì)數(shù)將自動(dòng)加一。當(dāng)計(jì)數(shù)器加至3FH后循環(huán)歸零再繼續(xù)加一。
          2) AMPIRE12864液晶顯示器控制接口信號(hào)說(shuō)明
          AMPIRE12864液晶顯示器共有5個(gè)控制引腳,對(duì)應(yīng)5個(gè)控制信號(hào)。它們分別是寄存器選擇信號(hào)RS,讀寫控制信號(hào)R/W,使能信號(hào)E,左屏片選信號(hào)CS1,右屏片選信號(hào)CS2。下面通過(guò)幾個(gè)表格來(lái)詳細(xì)說(shuō)明這些控制信號(hào)的作用。
          RS,R/W的配合選擇決定讀寫方式的4種模式,如表2-9。
          表2-9RS,R/W的配合選擇決定讀寫方式的4種模式

          本文引用地址:http://www.ex-cimer.com/article/201611/323960.htm
          RS信號(hào)
          R/W信號(hào)
          功能說(shuō)明
          L
          L
          MPU寫指令到指令暫存器(IR)
          L
          H
          讀出忙標(biāo)志(BF)及地址記數(shù)器(AC)的狀態(tài)
          H
          L
          MPU寫入數(shù)據(jù)到數(shù)據(jù)暫存器(DR)
          H
          H
          MPU從數(shù)據(jù)暫存器(DR)中讀出數(shù)據(jù)

          使能信號(hào)E控制方式見(jiàn)表2-10。
          表2-10 使能信號(hào)E控制方式

          E狀態(tài)
          執(zhí)行動(dòng)作
          功能
          高——>低
          I/O緩沖——> DDRAM
          配合R/W寫數(shù)據(jù)或指令
          DDRAM——>I/O緩沖
          配合RS進(jìn)行讀數(shù)據(jù)或指令
          低——>高
          無(wú)動(dòng)作

          3)AMPIRE12864液晶顯示器指令說(shuō)明
          AMPIRE12864液晶顯示器的寄存器選擇信號(hào)RS,讀寫控制信號(hào)R/W與8位三態(tài)數(shù)據(jù)口輸入輸出的控制代碼的不同組合就組成了不同的控制指令,這些指令控制液晶顯示器完成各種操作。下面就用一個(gè)表格對(duì)這些指令做出詳細(xì)的說(shuō)明,如表2-11所示。
          表2-11AMPIRE12864液晶顯示器指令說(shuō)明

          指令
          指令碼
          功能
          RS
          R/W
          D7
          D6
          D5
          D4
          D3
          D2
          D1
          D0
          清除
          顯示
          0
          0
          0
          0
          0
          0
          0
          0
          0
          1
          將DDRAM填滿"20H",并且設(shè)定DDRAM的地址計(jì)數(shù)器(AC)到"00H"
          地址
          歸位
          0
          0
          0
          0
          0
          0
          0
          0
          1
          X
          設(shè)定DDRAM的地址計(jì)數(shù)器(AC)到"00H",并且將游標(biāo)移到開(kāi)頭原點(diǎn)位置;這個(gè)指令不改變DDRAM 的內(nèi)容
          顯示狀態(tài)開(kāi)/關(guān)
          0
          0
          0
          0
          0
          0
          1
          D
          C
          B
          D=1: 整體顯示 ON
          C=1: 游標(biāo)ON
          B=1:游標(biāo)位置反白允許
          進(jìn)入點(diǎn)
          設(shè)定
          0
          0
          0
          0
          0
          0
          0
          1
          I/D
          S
          指定在數(shù)據(jù)的讀取與寫入時(shí),設(shè)定游標(biāo)的移動(dòng)方向及指定顯示的移位
          游標(biāo)或顯示移位控制
          0
          0
          0
          0
          0
          1
          S/C
          R/L
          X
          X
          設(shè)定游標(biāo)的移動(dòng)與顯示的移位控制位;這個(gè)指令不改變DDRAM 的內(nèi)容
          功能
          設(shè)定
          0
          0
          0
          0
          1
          DL
          X
          RE
          X
          X
          DL=0/1:4/8位數(shù)據(jù)
          RE=1: 擴(kuò)充指令操作
          RE=0: 基本指令操作
          設(shè)定DDRAM列地址
          0
          0
          1
          0
          AC5
          AC4
          AC3
          AC2
          AC1
          AC0
          設(shè)定DDRAM 列地址(Y地址)
          第一行:80H-87H
          第二行:90H-97H
          設(shè)定DDRAM行地址
          0
          0
          0
          1
          1
          1
          1
          P2
          P1
          P0
          設(shè)定DDRAM頁(yè)面地址(X地址)
          讀取忙標(biāo)志和地址
          0
          1
          BF
          AC6
          AC5
          AC4
          AC3
          AC2
          AC1
          AC0
          讀取忙標(biāo)志(BF)可以確認(rèn)內(nèi)部動(dòng)作是否完成,同時(shí)可以讀出地址計(jì)數(shù)器(AC)的值
          寫數(shù)據(jù)到RAM
          1
          0
          數(shù)據(jù)
          將數(shù)據(jù)D7——D0寫入到內(nèi)部的RAM
          讀出RAM值
          1
          1
          數(shù)據(jù)
          從內(nèi)部RAM讀取數(shù)據(jù)D7——D0

          二、驅(qū)動(dòng)程序源碼分析
          接口定義:ucharxdata DB _at_ 0x3fff;//定義地址為3fffh的擴(kuò)展口為AMPIRE12864的三態(tài)數(shù)據(jù)輸入口,當(dāng)然可根據(jù)自己具體情況定義;
          uchar xdata CS _at_0x5fff;//定義地址5fffh的擴(kuò)展口為AMPIRE12864的左右屏選擇控制信號(hào)輸入口;
          uchar xdata RSRWE _at_0x7fff;//定義地址為7fffh的擴(kuò)展口為AMPIRE12864的寄存器選擇信號(hào),讀/寫操作選擇信號(hào)和使能信號(hào)的輸入口。
          1)檢測(cè)忙信號(hào)標(biāo)志BF
          BF標(biāo)志提供內(nèi)部工作情況。BF=1表示模塊在進(jìn)行內(nèi)部操作,此時(shí)模塊不接受外部指令和數(shù)據(jù)。BF=0時(shí)模塊為準(zhǔn)備狀態(tài),隨時(shí)可接受外部指令和數(shù)據(jù)。利用表2-11中的“讀取忙標(biāo)志和地址”指令,可以將BF讀到DB7總線,從而檢驗(yàn)?zāi)K之工作狀態(tài)。檢測(cè)忙信號(hào)標(biāo)志BF驅(qū)動(dòng)函數(shù)代碼如下:
          void check_busy()
          {
          uchar a;
          RSRWE=1;//R/W=1,RS=0,E=0讀出忙標(biāo)志(BF)準(zhǔn)備
          while(1)
          {
          RSRWE=5; //R/W=1,RS=0,E=1讀出忙標(biāo)志(BF)就緒
          if(!(DB&0x80))//讀取忙信號(hào)
          break;//不忙跳出
          RSRWE=1;
          a++;
          if(a>10)//防止死循環(huán)
          break;
          }
          RSRWE=1; //R/W=1,RS=0,E=0讀出忙標(biāo)志(BF)準(zhǔn)備
          }
          2)寫控制命令
          在AMPIRE12864的初始化,DDRAM列地址的設(shè)定和行地址的設(shè)定都是由寫控制命令來(lái)完成的。當(dāng)R/W=0,RS=0時(shí)在使能信號(hào)的配合下就可以把控制命令寫入到指令暫存器(IR)。寫時(shí)序圖如圖3-5示。

          圖3-5 AMPIRE12864寫時(shí)序圖
          寫控制命令驅(qū)動(dòng)函數(shù)代碼如下:
          void write_cm(uchar command)
          {
          check_busy();//檢測(cè)忙信號(hào)
          RSRWE=0; //R/W=0,RS=0,E=0寫控制命令準(zhǔn)備
          DB=command;//送出控制命令
          RSRWE=4; //R/W=0,RS=0,E=1寫控制命令
          _nop_();
          _nop_();
          RSRWE=0;
          }
          3)寫數(shù)據(jù)
          當(dāng)寄存器控選擇控制信號(hào)RS=0寫指令寄存器(IR)即為寫控制命令,RS=1時(shí)寫數(shù)據(jù)寄存器即為寫數(shù)據(jù)。

          評(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); })();