📄 text1.c
字号:
void LCD_Write_word(uchar LCM_X,uchar LCM_Y,uchar *ptr)
{
uchar X,Y;
uchar i=0;
X=LCM_X;
Y=LCM_Y;
LCD_Write_Funtion(0x00,0xCD);//文本模式
while (*ptr != '%')////利用数组最后有空格作为信息结束的判断/////
{
if((X+i*2)>=30)
{
X=0;
Y=LCM_Y+16;
i=0;
}
LCD_Write_Funtion(0x60,X+2*(i++)) ;//地址定位
LCD_Write_Funtion(0x70,Y) ;//地址定位
LCD_Write_Dat(*ptr++);
LCD_Write_Dat(*ptr++);
}
}*/
/////////////////////////////////////////////////////
///////////////////////////////////////////////////
void LCD_Write_string(uchar LCM_X,uchar LCM_Y,uchar *ptr)
{
uchar X,Y;
uchar i=0;
X=LCM_X;
Y=LCM_Y;
LCD_Write_Funtion(0x00,0xCD);//文本模式
LCD_Write_Funtion(0xF0,0xA0);////
LCD_Write_Funtion(0x10,0x69);
LCD_Write_Funtion(0x60,X) ;//地址定位
LCD_Write_Funtion(0x70,Y) ;//地址定位
while (*ptr != '%')////利用数组最后有空格作为信息结束的判断/////
{
if((X+i)>=30)
{
X=0;
Y=Y+16;
i=0;
LCD_Write_Funtion(0x60,X) ;//地址定位
LCD_Write_Funtion(0x70,Y) ;//地址定位
}
LCD_Write_Dat(*ptr++);
i++;
}
}
////////////////////////////////////
void main(void)
{
RESET=0;
Delay(20);
RESET=1;
P1=0xff;//AT89C51的IO口初始化//
LCD_Init();
LCD_Clear_Graphics();//清除图形层显示数据//
LCD_Clear_Text();//////清除文本层显示数据///////////////////////
LCD_Write_word(2,16,"北京电通伟业电子设备有限公司%");
LCD_Write_string(0,0,"abcdefghigk%");
//LCD_Clear_Text();
while(1)
{
;
}
}
/*
//////////////LCD左半屏清屏///////可实现全部、上部分、左部分、右部分的清屏功能/////////////////////////////////
void LCD_L_Clear( uchar ZB_y,/////参数ZB_y是液晶屏的64X64的点坐标系的y轴向右横向坐标值//////
///////x轴向上纵向坐标值固定为64, 坐标(64,ZB_y)确定了清屏的起点////////////////////////////////
uchar yy,////清屏的列数由yy确定////////
uchar page)/////清屏到那页为止,由page值确定, page的范围是0-7///////
{
uchar i,j;
if((64-ZB_y)>=yy)
{
for(j=0;j<(page+1);j++)
{
LCD_WRTite_Com_L(0xc0|64);////从第64小行开始////
LCD_WRTite_Com_L(0xb8|j);////根据确定的小行位置开始,从第0页(即0大行)开始//////
LCD_WRTite_Com_L(0x40|ZB_y);/////从由ZB_y值确定的列开始////
for(i=0;i<yy;i++) LCD_WRTite_Dat_L(0x00); ////写入0x00清屏/////
}
}
}
///////////////////左半屏/////////显示8x16点(横向右8点X纵向下16点)字符////////////////////////////////////
/////坐标(ZB_x,ZB_y)是液晶屏的64X64的点坐标,坐标系的方向为:x轴纵(行)坐标向上 ,y轴横(列)坐标向右/////////
/////左下角为坐标原点,左上角为(64,0)右下角为(0,64),该坐标用于确定在液晶屏的何处开始位置。//////////////
/////根据上面确定的显示位置为坐标原点,坐标(x,y)位置按8x8=64个点为一个点坐标来定位的,这时///////////////
/////坐标系的方向变更为:x轴纵(行)坐标向下,y轴横(列)坐标向右,x的范围是0-7,y的范围是0-7,////////////
////////////////////////////chrx:显示字符的指定参数值/////////////////////////////////////////////////////
LCD_L_WRTite_Char_8x16(uchar ZB_x,uchar ZB_y,/////液晶屏的64X64的点坐标系////
uchar x,uchar y,/////显示坐标系////////////////
uchar chrx)/////显示内容的指定参数索引值///////
{
uchar i;
uint chr_m;
chr_m=chrx;
chr_m=chr_m*16;
LCD_WRTite_Com_L(0xc0|ZB_x);////////从第ZB_x小行开始////
LCD_WRTite_Com_L(0xb8|x); /////根据确定的小行位置开始,从第x页(即x大行)开始//////
LCD_WRTite_Com_L(0x40|ZB_y|y<<3);/////从由ZB_y值确定的列,由y值确定的点位置开始/////
for(i=0;i<8;i++) LCD_WRTite_Dat_L(Ezk[chr_m+i]); ////根据确定的具体点位置处写入8个数据//字符的上半部分///
LCD_WRTite_Com_L(0xb9|x); ////再从第x+1页(即x+1大行)开始////////
LCD_WRTite_Com_L(0x40|ZB_y|y<<3);/////从由ZB_y值确定的列,由y值确定的点位置开始/////
for(i=8;i<16;i++) LCD_WRTite_Dat_L(Ezk[chr_m+i]);////根据确定的具体点位置处写入8个数据//字符的下半部分///
}
////////左半屏/////////显示16x16点(横向右16点X纵向下16点)的汉字字符////////////////////////////////////
LCD_L_WRTite_Hanzi_16x16(uchar ZB_x,uchar ZB_y,
uchar x,uchar y,
uchar chrx)
{
uchar i;
uint chr_m;
chr_m=chrx;
chr_m=chr_m*32;
LCD_WRTite_Com_L(0xc0|ZB_x);////////////从第ZB_x小行开始////
LCD_WRTite_Com_L(0xb8|x); ////根据确定的小行位置开始,从第x页(即x大行)开始//////
LCD_WRTite_Com_L(0x40|ZB_y|y<<3);/////从由ZB_y值确定的列,由y值确定的点位置开始/////
for(i=0;i<16;i++) LCD_WRTite_Dat_L(Hzk1[chr_m+i]);////根据确定的具体点位置处写入16个数据//汉字的上半部分///
LCD_WRTite_Com_L(0xb9|x);////再从第x+1页(即x+1大行)开始////////
LCD_WRTite_Com_L(0x40|ZB_y|y<<3);/////从由ZB_y值确定的列,由y值确定的点位置开始/////
for(i=16;i<32;i++) LCD_WRTite_Dat_L(Hzk1[chr_m+i]);////根据确定的具体点位置处写入16个数据//汉字的下半部分///
}
////////////左半屏显示图片函数//////////////////////////////////////////////////////////////
LCD_L_Disp_Picture(uchar ZB_x,uchar ZB_y,
uchar *Pointer)/////指针指向图片数据的数组////
{
uchar x;
uchar i,j;
x=0;////页,即大行标记//从第0页开始//
LCD_WRTite_Com_L(0xc0|ZB_x);///////从第ZB_x小行开始////
LCD_WRTite_Com_L(0xb8|x); ////根据确定的小行位置开始,从第x页(即x大行)开始//////
LCD_WRTite_Com_L(0x40|ZB_y);////从由ZB_y值确定的列的位置开始/////
for(i=0;i<8;i++)/////共8页,要写8次//////
{
for(j=0;j<64;j++) LCD_WRTite_Dat_L(*Pointer++); ////每页连续写入64个数据/////
x++;//页增加1///
LCD_WRTite_Com_L(0xb8|x);/////从第x+1页(即x+1大行)开始//////
LCD_WRTite_Com_L(0x40|ZB_y);////从由ZB_y值确定的列的位置开始/////
}
}
////////////////////////// 左半屏驱动函数结束 //////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////
*/
////////////////////////////////////////////////////////////////////////////////////////////////////
/*
for(i=0;i<64;i++)
{
// LCD_L_Disp_Picture(i,0,PictureKu_1);
LCD_L_WRTite_Hanzi_16x16(0,i,0,0,4);
LCD_L_WRTite_Hanzi_16x16(0,i,0,2,1);
LCD_L_WRTite_Hanzi_16x16(0,i,0,4,2);
LCD_L_WRTite_Char_8x16(0,i,2,0,22);
LCD_L_WRTite_Char_8x16(0,i,2,1,23);
LCD_L_WRTite_Char_8x16(0,i,2,2,24);
}
// LCD_M_Disp_Picture(0,i,PictureKu_2);
// LCD_M_WRTite_Hanzi_16x16(0,i,2,6,1);
// LCD_M_WRTite_Char_8x16(i,0,4,5,23);
// LCD_R_Disp_Picture((64-i),0,PictureKu_3);
// LCD_R_WRTite_Hanzi_16x16((64-i),0,4,6,2);
// LCD_R_WRTite_Char_8x16((64-i),0,4,5,24);
// Delay(100);
// LCD_L_Clear(0);
// LCD_M_Clear(0);
// LCD_R_Clear(0);
//}
*/
/*
while(1)
{
while(j--)
{
for(i=0;i<64;i++)
{
LCD_L_WRTite_Hanzi_16x16(i,0,0,0,0);
LCD_L_WRTite_Char_8x16(i,1,2,3,4);
LCD_M_WRTite_Hanzi_16x16(i,0,2,2,1);
LCD_M_WRTite_Char_8x16(i,1,4,5,5);
LCD_R_WRTite_Hanzi_16x16(i,0,4,4,2);
LCD_R_WRTite_Char_8x16(i,1,6,6,6);
}
for(i=0;i<64;i++)
{
LCD_L_WRTite_Hanzi_16x16(i,0,0,0,3);
LCD_L_WRTite_Char_8x16(i,1,2,3,7);
LCD_M_WRTite_Hanzi_16x16(i,0,2,2,4);
LCD_M_WRTite_Char_8x16(i,1,4,5,8);
LCD_R_WRTite_Hanzi_16x16(i,0,4,4,5);
LCD_R_WRTite_Char_8x16(i,1,6,6,9);
}
for(i=0;i<64;i++)
{
LCD_L_WRTite_Hanzi_16x16(i,0,6,0,6);
LCD_L_WRTite_Char_8x16(i,1,6,3,22);
LCD_M_WRTite_Hanzi_16x16(i,0,6,2,7);
LCD_M_WRTite_Char_8x16(i,1,6,5,23);
LCD_R_WRTite_Hanzi_16x16(i,0,6,4,8);
LCD_R_WRTite_Char_8x16(i,1,6,6,24);
}
for(i=0;i<64;i++)
{
LCD_L_WRTite_Hanzi_16x16(i,0,4,0,9);
LCD_L_WRTite_Char_8x16(i,0,4,3,25);
LCD_M_WRTite_Hanzi_16x16(i,0,4,2,10);
LCD_M_WRTite_Char_8x16(i,0,4,5,26);
LCD_R_WRTite_Hanzi_16x16(i,0,4,4,11);
LCD_R_WRTite_Char_8x16(i,0,4,6,27);
}
k=8;
}
while(k--)
{
LCD_L_Disp_Picture(0,0,PictureKu_1);
LCD_L_Clear(0,0);
LCD_L_Disp_Picture(0,0,PictureKu_11);
LCD_M_Disp_Picture(0,0,PictureKu_2);
LCD_R_Disp_Picture(0,0,PictureKu_1);
//Delay(200);
LCD_M_Disp_Picture(0,0,PictureKu_3);
// LCD_R_Clear(0,0);
}
j=8;
}*/
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -