新闻中心

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驱动程

评论


技术专区

关闭