新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > AMPIRE12864驅動程序

        AMPIRE12864驅動程序

        作者: 時間:2016-11-30 來源:網絡 收藏
        寫數據驅動函數代碼如下:
        void write_data(uchar Data)
        {
        check_busy();
        RSRW=2; //R/W=0,RS=1,E=0寫控數據準備
        DB=Data; //送出數據
        RSRW=6; //R/W=0,RS=1,E=1寫數據
        _nop_();
        _nop_();
        RSRW=2;
        }
        1)設定顯示字符行列地址
        在AMPIRE12864上顯示一個字符是必須先設定其行列地址,設定行列地址的操作指令見表2-11。
        設定顯示字符行列地址驅動函數代碼如下:
        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的地址計數器加1。設置的操作指令詳見表2-11。
        AMPIRE12864初始化驅動函數代碼如下:
        void LCD_Init()
        {
        write_cm (0x30);//30H--基本指令操作delayus(4);write_cm (0x0c);//開顯示,關光標,不閃爍。delayus(10);write_cm (0x01);//清除顯示delayms(10);
        write_cm (0x06);//光標的移動方向左,DDRAM的地址計數器(AC)加1。
        delayus(10);
        }
        3)AMPIRE12864顯示功能模塊
        AMPIRE12864顯示功能通過函數void disp(ucharindex[4][16])實現。入口參數uchar index[4][16]為字庫索引數組,給出在指定位置顯示的字符的圖形點陣在uchar code zk[][16]中的索引地址,本系統中所有字符的圖形點陣都由字模提取軟件提取并存儲在圖形點陣數組ucharcode zk[][16]中。
        在voiddisp(uchar index[4][16])調用了兩個函數: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]);
        }
        }
        入口參數uchar R,uchar L分別指明字符或漢字的顯示位置的行號和列號,uchar *p為圖形點陣數組的首地址指針。
        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]);
        }
        }
        入口參數uchar R,uchar L分別指明字符或漢字的顯示位置的行號和列號,uchar *p為圖形點陣數組的首地址指針。
        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液晶顯示器顯示示例
        序各函數包含于頭文件12864.h中,在主函數中加入宏定義#include"12864.h"。
        上一頁 1 2 3 下一頁

        關鍵詞: AMPIRE12864驅動程

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 望谟县| 广平县| 唐海县| 漳州市| 石城县| 酒泉市| 克东县| 自治县| 团风县| 弥勒县| 日喀则市| 通河县| 泰和县| 高青县| 含山县| 延吉市| 隆化县| 新巴尔虎右旗| 吉木乃县| 广南县| 衡南县| 卓资县| 隆化县| 陆丰市| 通山县| 手机| 米脂县| 衢州市| 赤城县| 东平县| 北辰区| 福鼎市| 冕宁县| 达尔| 海口市| 安塞县| 文水县| 临泉县| 双峰县| 蕉岭县| 韶关市|