📄 ym_160128.txt
字号:
//*******************************************
void LCD_YM_160128A_AutoWriteData(uchar ucDat)
{
LCD_YM_160128A_AutoWcheck();
LCD_YM_160128A_CE = 0; //片选有效
LCD_YM_160128A_CD = 0; //**********LcdDMF5001自动写数据**********
LCD_YM_160128A_DATA = ucDat;
LCD_YM_160128A_WR = 0;
LCD_YM_160128A_WR = 1;
LCD_YM_160128A_CD = 1;
LCD_YM_160128A_CE = 1;
}
//*******************************************
//函数名称:void LCD_YM_160128A_ClearRAM(uint uiNumRam)
//函数功能:清除整块RAM
//形式参数:uint uiNumRam
//行参说明:需要清零的单元数
//返回参数:无
//使用说明:使用该函数将把RAM全部清除,即图形区和文本区都将被清除
//*******************************************
void LCD_YM_160128A_ClearRAM(uint uiNumRam)
{
uint i;
// 清缓冲RAM 0000h--2000h (8k)
LCD_YM_160128A_WriteMode2(0x00,0x00,AddrSet); // 设置地址指针0000H
LCD_YM_160128A_WriteCommand(DataAutoWrite); // 设置自动写状态
for( i=0; i<uiNumRam; i++) //**********清除整块RAM**********
{
LCD_YM_160128A_AutoWriteData(0x00); // data=0x00
}
LCD_YM_160128A_WriteCommand(ExitAutoRW); // 自动写结束
}
//*******************************************
//*******************************************
//函数名称:void LCD_YM_160128A_Clearpart(uint RAMstar,uint RAMend)
//函数功能:清除一部分RAM
//形式参数:uint RAMstar,uint RAMend
//行参说明:无
//返回参数:无
//使用说明:使用该函数将把RAM部分清除
//*******************************************
void LCD_YM_160128A_Clearpart(uint RAMstar,uint RAMend)
{
uchar data1,data2;
data1 = RAMstar&0x00ff;
data2 = RAMstar>>8;
LCD_YM_160128A_WriteMode2(data1,data2,AddrSet); // 设置地址指针0000H
LCD_YM_160128A_WriteCommand(DataAutoWrite); // 设置自动写状态
while(RAMend--)
{
LCD_YM_160128A_AutoWriteData(0x00); // data=0x00
}
LCD_YM_160128A_WriteCommand(ExitAutoRW); // 自动写结束
}
//*******************************************
//函数名称:void LCD_YM_160128A_CursorPosSet(uchar x,uchar y)
//函数功能:光标位置设置
//形式参数:uchar x,uchar y
//行参说明:光标位置x,y
//返回参数:无
//使用说明:
// X的取值范围0-20
// Y的取值范围0-15
//******************************************* // 光标位置设置**********
void LCD_YM_160128A_CursorPosSet(uchar x,uchar y)
{
LCD_YM_160128A_WriteMode2(x,y,CursorPointer); // X的取值范围0-20 ; Y的取值范围0-15
}
//*******************************************************************************************************************************
//*******************************************
//函数名称: Set_LCD_YM_160128A_CGRAM()
//函数功能: 建立用户自定义字库CGRAM
//形式参数:
//行参说明:
//返回参数:
//使用说明:
//*******************************************
void Set_LCD_YM_160128A_CGRAM(uchar *P)
{
uint StartAddr,i;
uchar data1,data2;
StartAddr = 0x0400; //定位起始行0x0400
data1 = StartAddr&0x00ff;
data2 = StartAddr>>8;
for(i=0;i<96;i++)
{
LCD_YM_160128A_WriteMode2(data1,data2,AddrSet);
LCD_YM_160128A_WriteMode1(*P,DataWAddrI);
P++;
StartAddr = 0x0400+i+1; //定位起始行
data1 = StartAddr&0x00ff;
data2 = StartAddr>>8;
}
}
//*******************************************
//函数名称: display_LCD_YM_160128A_0808data(uchar x ,uchar y ,uchar *P)
//函数功能: 在显示屏上面显示一个CGROM里面的字符
// 即显示一个ASICC码字符
//形式参数:
//行参说明:
//返回参数:
//使用说明: 在文本区显示
//*******************************************
void display_LCD_YM_160128A_0808data(uchar page ,uchar y ,uchar P)
{
uchar data1,data2;
uint ucdata ;
ucdata = (page*20+y);
data1 = ucdata & 0x00ff;
data2 = (ucdata >>=8);
LCD_YM_160128A_WriteMode2(data1,data2,AddrSet);
LCD_YM_160128A_WriteMode1(P-32,0xc0);
}
//*******************************************
//函数名称: display_LCD_YM_160128A_0808data(uchar x ,uchar y ,uchar ucode)
//函数功能: 在显示屏上面显示一个CGRAM里面的字符
//
//形式参数:
//行参说明:
//返回参数:
//使用说明: 在文本区显示
//*******************************************
void display_LCD_YM_160128A_0808RAMdata(uchar page ,uchar y ,uchar ucode)
{
uchar data1,data2;
uint ucdata ;
ucdata = (page*0x14+y);
data1 = ucdata & 0x00ff;
data2 = (ucdata >>=8);
LCD_YM_160128A_WriteMode2(data1,data2,AddrSet);
LCD_YM_160128A_WriteMode1(ucode,0xc0);
}
//*******************************************
//函数名称: void display_LCD_YM_160128A_CGROM_0808string(uchar page ,uchar y ,uchar *P)
//函数功能: 在显示屏上面显示一串CGROM里面的字符
// 即显示一串ASICC码字符
//形式参数:
//行参说明:
//返回参数:
//使用说明: 在文本区显示
//*******************************************
void display_LCD_YM_160128A_CGROM_0808string(uchar page ,uchar y ,uchar *P)
{
uchar data1,data2;
uint ucdata ;
ucdata = (page*20+y);
data1 = ucdata & 0x00ff;
data2 = (ucdata >>=8);
LCD_YM_160128A_WriteMode2(data1,data2,AddrSet);
LCD_YM_160128A_WriteCommand(DataAutoWrite); // 设置自动写状态
for(;*P!=0;P++)
{
LCD_YM_160128A_AutoWriteData(*P-32); //
}
LCD_YM_160128A_WriteCommand(ExitAutoRW); // 自动写结束
}
//*******************************************
//函数名称:void display_LCD_YM_160128A_0808number(uchar page,uchar y,uchar Num)
//函数功能:显示0~255之间的整数(8*8点阵)
//形式参数:
//行参说明:
//返回参数:
//使用说明: 在文本区显示
//*******************************************
void display_LCD_YM_160128A_0808number(uchar page,uchar y,uchar Num)
{
uchar data1,data2,count,temp[3],Flag=1;
uint ucdata ;
ucdata = (page*0x14+y);
data1 = ucdata & 0x00ff;
data2 = (ucdata >>=8);
for(count=3;count;) //将Num的高(低)位放在数组temp的低(高)位中
{
temp[--count]=Num%10;
temp[count]+=0x10;
Num/=10;
}
LCD_YM_160128A_WriteMode2(data1,data2,AddrSet);
LCD_YM_160128A_WriteCommand(DataAutoWrite); // 设置自动写状态
for(count=0;count<3;count++)
{
LCD_YM_160128A_AutoWriteData(0x00); //在显示数据前把这几个位置清零
}
LCD_YM_160128A_WriteCommand(ExitAutoRW); // 自动写结束
LCD_YM_160128A_WriteMode2(data1,data2,AddrSet);
LCD_YM_160128A_WriteCommand(DataAutoWrite); // 设置自动写状态
for(count=0;count<3;count++)
{
if (temp[count] != 0x10||Flag==0)
{
LCD_YM_160128A_AutoWriteData(temp[count]);
Flag=0;
}
}
LCD_YM_160128A_WriteCommand(ExitAutoRW); // 自动写结束
}
//*******************************************
//函数名称:void display_LCD_YM_160128A_0808number_long(uchar page,uchar y,ulong Num)
//函数功能:显示0~4294967296之间的整数(8*8点阵)
//形式参数:
//行参说明:
//返回参数:
//使用说明: 在文本区显示
//*******************************************
void display_LCD_YM_160128A_0808number_long(uchar page,uchar y,ulong Num)
{
uchar data1,data2,count,temp[10],Flag=1;
uint ucdata ;
ucdata = (page*0x14+y);
data1 = ucdata & 0x00ff;
data2 = (ucdata >>=8);
for(count=10;count;) //将Num的高(低)位放在数组temp的低(高)位中
{
temp[--count]=Num%10;
temp[count]+=0x10;
Num/=10;
}
LCD_YM_160128A_WriteMode2(data1,data2,AddrSet);
LCD_YM_160128A_WriteCommand(DataAutoWrite); // 设置自动写状态
for(count=0;count<10;count++)
{
LCD_YM_160128A_AutoWriteData(0x00); //在显示数据前把这几个位置清零
}
LCD_YM_160128A_WriteCommand(ExitAutoRW); // 自动写结束
LCD_YM_160128A_WriteMode2(data1,data2,AddrSet);
LCD_YM_160128A_WriteCommand(DataAutoWrite); // 设置自动写状态
for(count=0;count<10;count++)
{
if (temp[count] != 0x10||Flag==0)
{
LCD_YM_160128A_AutoWriteData(temp[count]);
Flag=0;
}
}
LCD_YM_160128A_WriteCommand(ExitAutoRW); // 自动写结束
}
//*******************************************
//函数名称:void display_LCD_YM_160128A_1616chinese(uchar page,uchar y,uchar *P)
//函数功能:显示一个汉字(16*16点阵)
//形式参数:
//行参说明:
//
//
//返回参数:
//使用说明: 在图形区显示
//*******************************************
void display_LCD_YM_160128A_1616chinese(uchar page,uchar y,uchar *P)
{
uint StartAddr;
uchar temp,i,data1,data2;
StartAddr = page*20 + y*2+ 0x1000; //定位起始行
data1 = StartAddr&0x00ff;
data2 = StartAddr>>8;
for(i=0;i<16;i++)
{
LCD_YM_160128A_WriteMode2( data1,data2,AddrSet );
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -