📄 sed1335lcd.c
字号:
union CURSOR_ADR idata POSITION;
POSITION.Adr = ucStartRow*APL + ucStartColumn; //计算显示位置的内存地址
LCDCommand = CSRDIR_DOWN;
for(ucColumnCounter = 0;ucColumnCounter < ucLength;ucColumnCounter++) //点阵显示列控制
{
LCDCommand = CSRW;
LCDDataWrite = POSITION.AdrByte.AdrL;
LCDDataWrite = POSITION.AdrByte.AdrH;
LCDCommand=MWRITE;
for(ucRowCounter = 0;ucRowCounter < ucWidth;ucRowCounter++) //点阵显示行控制
LCDDataWrite = 0x00;
POSITION.Adr++; //显示内存地址加1,指向字符右半部显示内存地址
}
return;
}
/*-------------字符显示-----------------------------*/
/********************************************************************
* 函数名称: ChineseDisplay() *
* 函数用途: 显示16X16点阵的汉字 *
* 输入参数: *
* ucIndex : 汉字在字库的索引 *
* ucRow : 屏幕行号 *
* ucColumn : 屏幕列号(单位:字节) *
* ucAttribute: 字符显示属性(0:正常;1:反白)*
* 输出参数:无 *
* *
********************************************************************/
void ChineseDisplay(uchar ucIndex , uchar ucRow , uchar ucColumn , uchar ucAttribute)
{
uchar idata ucRowCounter;
uchar idata ucColumnCounter;
union CURSOR_ADR idata POSITION;
POSITION.Adr = ucRow*APL + ucColumn; //计算显示位置的内存地址
LCDCommand = CSRDIR_DOWN;
for(ucColumnCounter = 0;ucColumnCounter < 2;ucColumnCounter++) //点阵显示列控制(2字节,16点)
{
LCDCommand = CSRW;
LCDDataWrite = POSITION.AdrByte.AdrL;
LCDDataWrite = POSITION.AdrByte.AdrH;
LCDCommand=MWRITE;
for(ucRowCounter = 0;ucRowCounter < 16;ucRowCounter++) //点阵显示行控制(16点)
{
if(ucAttribute == 0)
{
LCDDataWrite = GB_16[ucIndex].DotMatrix[ucColumnCounter*16 + ucRowCounter];
}
else
{
LCDDataWrite = ~GB_16[ucIndex].DotMatrix[ucColumnCounter*16 + ucRowCounter];
}
}// for(ucRowCounter = 0;ucRowCounter < 16;ucRowCounter++)
POSITION.Adr++; //显示内存地址加1,指向汉字右半部显示内存地址
}//for(ucColumnCounter = 0;ucColumnCounter < 2;ucColumnCounter++)
}
/*********************************************************************
* 函数名称: Char24Display() *
* 函数用途: 显示24X24点阵的字符 *
* 输入参数: *
* ucIndex : 字符在字库的索引 *
* ucRow : 屏幕行号 *
* ucColumn : 屏幕列号(单位:字节) *
* ucAttribute: 字符显示属性(0:正常;1:反白) *
* 输出参数:无 *
* *
**********************************************************************/
void Char24Display(uchar ucIndex , uchar ucRow , uchar ucColumn , uchar ucAttribute)
{
uchar idata ucRowCounter;
uchar idata ucColumnCounter;
union CURSOR_ADR idata POSITION;
POSITION.Adr = ucRow*APL + ucColumn; //计算显示位置的内存地址
LCDCommand = CSRDIR_DOWN;
for(ucColumnCounter = 0;ucColumnCounter < 3;ucColumnCounter++) //点阵显示列控制(3字节,24点)
{
LCDCommand = CSRW;
LCDDataWrite = POSITION.AdrByte.AdrL;
LCDDataWrite = POSITION.AdrByte.AdrH;
LCDCommand=MWRITE;
for(ucRowCounter = 0;ucRowCounter < 24;ucRowCounter++) //点阵显示行控制(24点)
{
if(ucAttribute == 0)
{
LCDDataWrite = ASCII_24X24[ucIndex][ucColumnCounter*24 + ucRowCounter];
}
else
{
LCDDataWrite = ~ASCII_24X24[ucIndex][ucColumnCounter*24 + ucRowCounter];
}
}//for(ucRowCounter = 0;ucRowCounter < 24;ucRowCounter++)
POSITION.Adr++; //显示内存地址加1,指向字符右半部显示内存地址
}//for(ucColumnCounter = 0;ucColumnCounter < 3;ucColumnCounter++)
}
/********************************************************************
* 函数名称: Char16X24Display() *
* 函数用途: 显示16X24点阵的字符 *
* 输入参数: *
* ucIndex : 字符在字库的索引 *
* ucRow : 屏幕行号 *
* ucColumn : 屏幕列号(单位:字节) *
* ucAttribute: 字符显示属性(0:正常;1:反白)*
* 输出参数: 无 *
* *
*********************************************************************/
void Char16X24Display(uchar ucIndex , uchar ucRow , uchar ucColumn , uchar ucAttribute)
{
uchar idata ucRowCounter;
uchar idata ucColumnCounter;
union CURSOR_ADR idata POSITION;
POSITION.Adr = ucRow*APL + ucColumn; //计算显示位置的内存地址
LCDCommand = CSRDIR_DOWN;
for(ucColumnCounter = 0;ucColumnCounter < 2;ucColumnCounter++) //点阵显示列控制(2字节,16点)
{
LCDCommand = CSRW;
LCDDataWrite = POSITION.AdrByte.AdrL;
LCDDataWrite = POSITION.AdrByte.AdrH;
LCDCommand=MWRITE;
for(ucRowCounter = 0;ucRowCounter < 24;ucRowCounter++) //点阵显示行控制(24点)
{
if(ucAttribute == 0)
{
LCDDataWrite = ASCII_16X24[ucIndex][ucColumnCounter*24 + ucRowCounter];
}
else
{
LCDDataWrite = ~ASCII_16X24[ucIndex][ucColumnCounter*24 + ucRowCounter];
}
}//for(ucRowCounter = 0;ucRowCounter < 24;ucRowCounter++)
POSITION.Adr++; //显示内存地址加1,指向字符右半部显示内存地址
}//for(ucColumnCounter = 0;ucColumnCounter < 2;ucColumnCounter++)
}
/********************************************************************
* 函数名称: Char16Display() *
* 函数用途: 显示16X16点阵的字符 *
* 输入参数: *
* ucIndex : 字符在字库的索引 *
* ucRow : 屏幕行号 *
* ucColumn : 屏幕列号(单位:字节) *
* ucAttribute: 字符显示属性(0:正常;1:反白)*
* 输出参数: 无 *
* *
*********************************************************************/
void Char16Display(uchar ucIndex , uchar ucRow , uchar ucColumn , uchar ucAttribute)
{
uchar idata ucRowCounter;
uchar idata ucColumnCounter;
union CURSOR_ADR idata POSITION;
POSITION.Adr = ucRow*APL + ucColumn; //计算显示位置的内存地址
LCDCommand = CSRDIR_DOWN;
for(ucColumnCounter = 0;ucColumnCounter < 2;ucColumnCounter++) //点阵显示列控制(2字节,16点)
{
LCDCommand = CSRW;
LCDDataWrite = POSITION.AdrByte.AdrL;
LCDDataWrite = POSITION.AdrByte.AdrH;
LCDCommand=MWRITE;
for(ucRowCounter = 0;ucRowCounter < 16;ucRowCounter++) //点阵显示行控制(16点)
{
if(ucAttribute == 0)
{
LCDDataWrite = ASCII_16X16[ucIndex][ucColumnCounter*16+ucRowCounter];
}
else
{
LCDDataWrite = ~ASCII_16X16[ucIndex][ucColumnCounter*16+ucRowCounter];
}
}//for(ucRowCounter = 0;ucRowCounter < 16;ucRowCounter++)
POSITION.Adr++; //显示内存地址加1,指向字符右半部显示内存地址
}//for(ucColumnCounter = 0;ucColumnCounter < 2;ucColumnCounter++)
}
/********************************************************************
* 函数名称: CharDisplay() *
* 函数用途: 显示8X16点阵的字符 *
* 输入参数: *
* ucIndex : 字符在字库的索引 *
* ucRow : 屏幕行号 *
* ucColumn : 屏幕列号(单位:字节) *
* ucAttribute: 字符显示属性(0:正常;1:反白) *
* 输出参数:无 *
* *
*********************************************************************/
void CharDisplay(uchar ucIndex , uchar ucRow , uchar ucColumn , uchar ucAttribute)
{
uchar idata ucRowCounter;
union CURSOR_ADR idata POSITION;
POSITION.Adr = ucRow*APL + ucColumn; //计算显示位置的内存地址
LCDCommand = CSRDIR_DOWN;
LCDCommand = CSRW;
LCDDataWrite = POSITION.AdrByte.AdrL;
LCDDataWrite = POSITION.AdrByte.AdrH;
LCDCommand=MWRITE;
for(ucRowCounter = 0;ucRowCounter < 16;ucRowCounter++) //点阵显示行控制(16点)
{
if(ucAttribute == 0)
{
LCDDataWrite = ASCII_8X16[ucIndex][ucRowCounter];
}
else
{
LCDDataWrite = ~ASCII_8X16[ucIndex][ucRowCounter];
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -