色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > AMPIRE12864驅動程序

          AMPIRE12864驅動程序

          作者: 時間:2016-11-30 來源:網(wǎng)絡 收藏
          寫數(shù)據(jù)驅動函數(shù)代碼如下:
          void write_data(uchar Data)
          {
          check_busy();
          RSRW=2; //R/W=0,RS=1,E=0寫控數(shù)據(jù)準備
          DB=Data; //送出數(shù)據(jù)
          RSRW=6; //R/W=0,RS=1,E=1寫數(shù)據(jù)
          _nop_();
          _nop_();
          RSRW=2;
          }
          1)設定顯示字符行列地址
          在AMPIRE12864上顯示一個字符是必須先設定其行列地址,設定行列地址的操作指令見表2-11。
          設定顯示字符行列地址驅動函數(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操作前須初始化,對其做一些必要的設置。這些設置包括:基本指令操作設置;開顯示,關光標,不閃爍;清除顯示;光標的移動方向,DDRAM的地址計數(shù)器加1。設置的操作指令詳見表2-11。
          AMPIRE12864初始化驅動函數(shù)代碼如下:
          void LCD_Init()
          {
          write_cm (0x30);//30H--基本指令操作delayus(4);write_cm (0x0c);//開顯示,關光標,不閃爍。delayus(10);write_cm (0x01);//清除顯示delayms(10);
          write_cm (0x06);//光標的移動方向左,DDRAM的地址計數(shù)器(AC)加1。
          delayus(10);
          }
          3)AMPIRE12864顯示功能模塊
          AMPIRE12864顯示功能通過函數(shù)void disp(ucharindex[4][16])實現(xiàn)。入口參數(shù)uchar index[4][16]為字庫索引數(shù)組,給出在指定位置顯示的字符的圖形點陣在uchar code zk[][16]中的索引地址,本系統(tǒng)中所有字符的圖形點陣都由字模提取軟件提取并存儲在圖形點陣數(shù)組ucharcode zk[][16]中。
          在voiddisp(uchar index[4][16])調用了兩個函數(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);//設定顯示位置
          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為圖形點陣數(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為圖形點陣數(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字符
          }
          顯示以一整屏為單位,在顯示之前應先給index[4][16]賦值以確定液晶顯示器的顯示內容。如給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;
          顯示的內容如圖3-6所示。

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

          關鍵詞: AMPIRE12864驅動程

          評論


          技術專區(qū)

          關閉