//------------------------------------------------------------
//显示字符
//------------------------------------------------------------
void display_char(uint x_point,uint y_point,uchar asic_num)
{
uint i;
i=(x_point/8)+y_point*PARA;
LCD_W_CMD=0x4c; // CSRDIR 代码
LCD_W_CMD=0x46; // CSRW 代码
LCD_W_DATA=i;//0x30; // 设置参数光标指针低8位
LCD_W_DATA=i>>8;//0x2a; // 设置参数光标指针高8位
LCD_W_CMD=0x42;
LCD_W_DATA=asic_num;
}
//
// 画位图函数
//
// 输入: xstart 横轴起始坐标
// ystart 纵轴起始坐标
// width 位图宽度(占多少个字节的宽度)
// hight 位图高度(以象素为单位的)
// pbmp 位图数据头指针
//在屏上画一个矩形图片
//
void DrawBitmap( uint xstart, uint ystart,uint width,uint hight, uchar const *pbmp)
{
uint i; //数据开始的内存单元
uint a; //送的行数据个数
uint b; //送的列数据
uchar temp2;
uint temp0;
uint temp1;
a="width/8";
LCD_W_CMD=0x4c; // CSRDIR 代码
//清除矩形框内的数据----------------------------
temp1=ystart;
for(b=0;b<hight;b++)
{
i=(xstart/8)+temp1*PARA+page2;
LCD_W_CMD=0x46; // CSRW 代码
LCD_W_DATA=i;//0x30; // 设置参数光标指针低8位
LCD_W_DATA=i>>8;//0x2a; // 设置参数光标指针高8位
LCD_W_CMD=0x42;
for(temp0=a;temp0>0;temp0--)
{
LCD_W_DATA = 0x00;
};
temp1++;
};
//----------------------------------------------
temp1=ystart;
for(b=0;b<hight;b++)
{
i=(xstart/8)+temp1*PARA+page2;
LCD_W_CMD=0x46; // CSRW 代码
LCD_W_DATA=i;//0x30; // 设置参数光标指针低8位
LCD_W_DATA=i>>8;//0x2a; // 设置参数光标指针高8位
LCD_W_CMD=0x42;
for(temp0=0;temp0<a;temp0++)
{
temp2=*pbmp;
LCD_W_DATA =temp2;
pbmp++;
}
temp1++;
};
}
void W_DOT(uint O_X,uchar O_Y)//(0~319)*(0~239) 画点
{
uchar a,b,c,d;
uint x,y;
y=O_Y*PARA;
c=O_X/8;
a=O_X%8;
b=0x80;
b>>=a;
// b^=0xff;
x=page2;
x=x+y+c;
a=x;
c=x>>8;
LCD_W_CMD=0x4c; // CSRDIR 代码
LCD_W_CMD=0x46; // CSRW 代码
LCD_W_DATA=a;//0x30; // 设置参数光标指针低8位
LCD_W_DATA=c;//0x2a; // 设置参数光标指针高8位
LCD_W_CMD=0x43; // mread代码
d="LCD"_R_DATA;
d|=b;
LCD_W_CMD=0x4c; // CSRDIR 代码
LCD_W_CMD=0x46; // CSRW 代码
LCD_W_DATA=a;//0x30; // 设置参数光标指针低8位
LCD_W_DATA=c;//0x2a; // 设置参数光标指针高8位
LCD_W_CMD=0x42;
LCD_W_DATA=d;
}
void W_horizontal_line(uchar O_Y)//0~239 画水平线
{
uchar a;
uint i;
i=O_Y*PARA;
i+=page2;
LCD_W_CMD=0x4c; // CSRDIR 代码
LCD_W_CMD=0x46; // CSRW 代码
LCD_W_DATA=i;//0x30; // 设置参数光标指针低8位
LCD_W_DATA=i>>8;//0x2a; // 设置参数光标指针高8位
LCD_W_CMD=0x42;
for(a=40;a!=0;a--) LCD_W_DATA=0xff;
}
void W_vertical_line(uint O_X)//0~319 画垂直线
{
uchar a,b;
uint i;
i=page2;
a=O_X/8;
b=O_X%8;
i+=a;
a=0x80;
a>>=b;
// a^=0xff;
LCD_W_CMD=0x4f; // CSRDIR 代码
LCD_W_CMD=0x46; // CSRW 代码
LCD_W_DATA=i;//0x30; // 设置参数光标指针低8位
LCD_W_DATA=i>>8;//0x2a; // 设置参数光标指针高8位
LCD_W_CMD=0x42;
for(b=0x00;b<240;b++)
{
LCD_W_DATA=a;
};
}
用户549784 2009-5-16 12:35
burkett2011_327610014 2008-6-8 10:43