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

          新聞中心

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

          AMPIRE12864驅(qū)動程序

          作者: 時間:2016-11-30 來源:網(wǎng)絡(luò) 收藏
          寫數(shù)據(jù)驅(qū)動函數(shù)代碼如下:
          void write_data(uchar Data)
          {
          check_busy();
          RSRW=2; //R/W=0,RS=1,E=0寫控數(shù)據(jù)準(zhǔn)備
          DB=Data; //送出數(shù)據(jù)
          RSRW=6; //R/W=0,RS=1,E=1寫數(shù)據(jù)
          _nop_();
          _nop_();
          RSRW=2;
          }
          1)設(shè)定顯示字符行列地址
          在AMPIRE12864上顯示一個字符是必須先設(shè)定其行列地址,設(shè)定行列地址的操作指令見表2-11。
          設(shè)定顯示字符行列地址驅(qū)動函數(shù)代碼如下:
          void set_xy(uchar x,uchar y)//x為行,y為列
          {
          if(y>=64)//列地址大于等于64時右屏顯示
          {
          CS=1;
          y=y-64;
          }
          else//列地址小于64時左屏顯示
          {
          CS=2;
          }
          write_cm(0x40|y);寫列地址
          _nop_();
          write_cm(0xb8|x);寫行地址
          }
          2)AMPIRE12864的初始化
          在對AMPIRE12864操作前須初始化,對其做一些必要的設(shè)置。這些設(shè)置包括:基本指令操作設(shè)置;開顯示,關(guān)光標(biāo),不閃爍;清除顯示;光標(biāo)的移動方向,DDRAM的地址計數(shù)器加1。設(shè)置的操作指令詳見表2-11。
          AMPIRE12864初始化驅(qū)動函數(shù)代碼如下:
          void LCD_Init()
          {
          write_cm (0x30);//30H--基本指令操作delayus(4);write_cm (0x0c);//開顯示,關(guān)光標(biāo),不閃爍。delayus(10);write_cm (0x01);//清除顯示delayms(10);
          write_cm (0x06);//光標(biāo)的移動方向左,DDRAM的地址計數(shù)器(AC)加1。
          delayus(10);
          }
          3)AMPIRE12864顯示功能模塊
          AMPIRE12864顯示功能通過函數(shù)void disp(ucharindex[4][16])實(shí)現(xiàn)。入口參數(shù)uchar index[4][16]為字庫索引數(shù)組,給出在指定位置顯示的字符的圖形點(diǎn)陣在uchar code zk[][16]中的索引地址,本系統(tǒng)中所有字符的圖形點(diǎn)陣都由字模提取軟件提取并存儲在圖形點(diǎn)陣數(shù)組ucharcode zk[][16]中。
          在voiddisp(uchar index[4][16])調(diào)用了兩個函數(shù):void Disp_hz(uchar R,ucharL,uchar *p)用來顯示漢字,其程序代碼如下:
          void Disp_hz(uchar R,uchar L,uchar *p)
          {
          uchar i;
          for(i=0;i<16;i++)
          {
          set_xy(2*R,16*L+i);//設(shè)定顯示位置
          write_data(p[i]);//寫入DDRAM
          set_xy(2*R+1,16*L+i);
          write_data(p[i+16]);
          }
          }
          入口參數(shù)uchar R,uchar L分別指明字符或漢字的顯示位置的行號和列號,uchar *p為圖形點(diǎn)陣數(shù)組的首地址指針。
          voidDisp_zf(uchar R,uchar L,uchar *p)用來顯示ASCII字符,其程序代碼如下:
          voidDisp_zf(uchar R,uchar L,uchar *p)
          {
          uchari;
          for(i=0;i<8;i++)
          {
          set_xy(2*R,8*L+i);
          write_data(p[i]);
          set_xy(2*R+1,8*L+i);
          write_data(p[i+8]);
          }
          }
          入口參數(shù)uchar R,uchar L分別指明字符或漢字的顯示位置的行號和列號,uchar *p為圖形點(diǎn)陣數(shù)組的首地址指針。
          AMPIRE12864顯示功能模塊程序代碼如下:
          void disp(uchar index[4][16])
          {
          uchar i,j;
          for(i=0;i<4;i++)
          for(j=0;j<16;j++)
          if(index[i][j]>14)
          {
          Disp_hz(i,j/2,&zk[index[i][j]][0]);//顯示漢字
          j++;
          }
          else
          Disp_zf(i,j,&zk[index[i][j]][0]);//顯示ASCII字符
          }
          顯示以一整屏為單位,在顯示之前應(yīng)先給index[4][16]賦值以確定液晶顯示器的顯示內(nèi)容。如給index[4][16]以下賦值:
          index[0][2]=131;index[0][4]=133;
          index[0][6]=135;index[0][8]=137;
          index[0][10]=139;index[0][12]=139;
          顯示的內(nèi)容如圖3-6所示。

          圖3-6液晶顯示器顯示示例
          序各函數(shù)包含于頭文件12864.h中,在主函數(shù)中加入宏定義#include"12864.h"。
          上一頁 1 2 3 下一頁

          關(guān)鍵詞: AMPIRE12864驅(qū)動程

          評論


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