//+++++++++++++++++++++++LCD写字符子程序
void lcd_wr_zf(unsigned int a, unsigned int b, unsigned int a1, unsigned int b1, unsigned int d,unsigned int e,unsigned char g,unsigned char *f)
// X, Y,结束X,y,尺寸,颜色,方向,数据
{
unsigned int temp=0,num,z,R_dis_mem=0,a2=0,b2=0,b3=0;
unsigned char temp5;
if(g==0) LCD_WR_CMD(0x0003,0x1030); //左上起
else if(g==1) LCD_WR_CMD(0x0003,0x1018); //左下起
else if(g==2) LCD_WR_CMD(0x0003,0x1010); //右下起
else if(g==3) LCD_WR_CMD(0x0003,0x1028); //右上起
//LCD_WR_CMD(0x01,0x07);
Delay(200);
for(temp=0;temp<d;temp++)
{
b2=(temp*8);
b3=b2/(a1-a+1); //计算纵坐标偏移
a2=b2%(a1-a+1); //计算横坐标偏移
temp5=*f;
z=temp5;
for(num=0; num<8; num++){
if((temp5&0x80)>0){
if(g==0){
LCD_WR_CMD(80,a+a2+num);
LCD_WR_CMD(82,b+b3);
LCD_WR_CMD(81,a+a2+num);
LCD_WR_CMD(83,b+b3);
LCD_WR_CMD(32, a+a2+num);
LCD_WR_CMD(33, b+b3);
//LCD_WR_CMD(0,0x04,239);
//LCD_WR_CMD(1,0x05,319);
}
else if(g==1){
LCD_WR_CMD(80,b+b3);
LCD_WR_CMD(82,a);
LCD_WR_CMD(81,b+b3);
LCD_WR_CMD(83,319-(a+a2+num));
//LCD_WR_CMD(83,a);
LCD_WR_CMD(32,b+b3);
LCD_WR_CMD(33,319-(a+a2+num));
}
else if(g==2){
LCD_WR_CMD(80,a);
LCD_WR_CMD(82,b);
LCD_WR_CMD(81,239-(a+a2+num));
LCD_WR_CMD(83,319-(b+b3));
LCD_WR_CMD(32,239-(a+a2+num));
LCD_WR_CMD(33,319-(b+b3));
}
else if(g==3){
LCD_WR_CMD(80,239-(b+b3));
LCD_WR_CMD(82,(a+a2+num));
LCD_WR_CMD(81,239-(b+b3));
LCD_WR_CMD(83,319);
LCD_WR_CMD(32,239-(b+b3));
LCD_WR_CMD(33,(a+a2+num));
}
LCD_WR_REG(34);
LCD_WR_Data(e);
}
else{
if(g==0){
LCD_WR_CMD(80,a+a2+num);
LCD_WR_CMD(82,b+b3);
LCD_WR_CMD(81,a+a2+num);
LCD_WR_CMD(83,b+b3);
LCD_WR_CMD(32, a+a2+num);
LCD_WR_CMD(33, b+b3);
LCD_WR_REG(34);
R_dis_mem=LCD_RD_data();
LCD_WR_CMD(32,a+a2+num);
LCD_WR_CMD(33,b+b3);
}
else if(g==1){
LCD_WR_CMD(80,b+b3);
LCD_WR_CMD(82,a);
LCD_WR_CMD(81,b+b3);
LCD_WR_CMD(83,319-(a+a2+num));
LCD_WR_CMD(32,b+b3);
LCD_WR_CMD(33,319-(a+a2+num));
LCD_WR_REG(34);
R_dis_mem=LCD_RD_data();
LCD_WR_CMD(32,b+b3);
LCD_WR_CMD(33,319-(a+a2+num));
//LCD_WR_CMD(0,0x04,b+b3);
//LCD_WR_CMD(1,0x05,319-(a+a2+num));
}
else if(g==2){
LCD_WR_CMD(80,a);
LCD_WR_CMD(82,b);
LCD_WR_CMD(81,239-(a+a2+num));
LCD_WR_CMD(83,319-(b+b3));
LCD_WR_CMD(32,239-(a+a2+num));
LCD_WR_CMD(33,319-(b+b3));
LCD_WR_REG(34);
R_dis_mem=LCD_RD_data();
LCD_WR_CMD(32,239-(a+a2+num));
LCD_WR_CMD(33,319-(b+b3));
//LCD_WR_CMD(0,0x04,239-(a+a2+num));
//LCD_WR_CMD(1,0x05,319-(b+b3));
}
else if(g==3){
LCD_WR_CMD(80,239-(b+b3));
LCD_WR_CMD(82,(a+a2+num));
LCD_WR_CMD(81,239-(b+b3));
LCD_WR_CMD(83,319);
LCD_WR_CMD(32,239-(b+b3));
LCD_WR_CMD(33,(a+a2+num));
LCD_WR_REG(34);
R_dis_mem=LCD_RD_data();
LCD_WR_CMD(80,239-(b+b3));
LCD_WR_CMD(82,(a+a2+num));
//LCD_WR_CMD(0,0x04,239-(b+b3));
//LCD_WR_CMD(1,0x05,319);
}
LCD_WR_REG(34);
LCD_WR_Data(R_dis_mem);
}
temp5=z;
temp5=temp5<<1;
z=temp5;
}
f++;
}
} |