📄 sed1335.c
字号:
{
uchar j,m,temp;
uchar uRow,uCol;
uint count;
uRow=x;
uCol=y;
WriteCommand( CsrDirD );
Locatexy(uRow,uCol,flag);
while(*pstr)
{
if(*pstr>0xa0)//汉字
{
count=0;
while((HZ16_16[count]!=*pstr)||(HZ16_16[count+1]!=*(pstr+1)))
{
//根据区码位码查找汉字库
count=count+0x22;
if(HZ16_16[count]==0)
{
//没有找到退出
count=0xffff;
break;
}
}
pstr+=2;
count+=2;
for(m=0;m<2;m++)
{
Locatexy(uRow+m,uCol,flag);
WriteCommand( mWrite ); // 写数据(命令)
for(temp=0;temp<16;temp++)
{
if(inverse)
WriteData(~HZ16_16[2*temp+count+m]);
else
WriteData(HZ16_16[2*temp+count+m]);
}
}
uRow+=2;
}//ASC码
else
{
Locatexy(uRow,uCol,flag);
WriteCommand( mWrite ); // 写数据(命令)
for(j=0;j<16;j++)
{
if(inverse)
WriteData(~ASC_MSK[(*pstr-0x20)*16 +j ]);
else
WriteData(ASC_MSK[(*pstr-0x20)*16 +j ]);
}
pstr++;
uRow++;
}//光标控制
if(uRow >= 40) // 光标后移
{
uCol += 16; // Y坐标
uRow = 0; // X坐标
if( uCol >= 240 ) uCol = 0;
}
Locatexy(uRow,uCol,flag);
}
}
void PutBigNumber(uchar x,uchar y,uchar *pstr,uchar flag)
{
uchar m,temp;
uchar uRow,uCol;
uRow=x;
uCol=y;
WriteCommand( CsrDirD );
Locatexy(uRow,uCol,flag);
for(m=0;m<4;m++)
{
Locatexy(uRow+m,uCol,flag);
WriteCommand( mWrite ); // 写数据(命令)
for(temp=0;temp<32;temp++)
WriteData(Logo[4*temp+m]);
}
}
void PutLogo(uchar x,uchar y,uchar flag)
{
uchar m,temp;
uchar uRow,uCol;
uRow=x;
uCol=y;
WriteCommand( CsrDirD );
Locatexy(uRow,uCol,flag);
for(m=0;m<4;m++)
{
Locatexy(uRow+m,uCol,flag);
WriteCommand( mWrite ); // 写数据(命令)
for(temp=0;temp<32;temp++)
WriteData(Logo[4*temp+m]);
}
}
void PutHz_32(uchar x,uchar y,uchar *pstr,uchar flag)
{
uchar j,m,temp;
uchar uRow,uCol;
uint count;
uRow=x;
uCol=y;
WriteCommand( CsrDirD );
Locatexy(uRow,uCol,flag);
while(*pstr)
{
if(*pstr>0xa0)//汉字
{
count=0;
while((HZ32_32[count]!=*pstr)||(HZ32_32[count+1]!=*(pstr+1)))
{ //根据区码位码查找汉字库
count=count+0x82;
if(HZ32_32[count]==0)
{ //没有找到退出
count=0xffff;
break;
}
}
pstr+=2;
count+=2;
for(m=0;m<4;m++)
{
Locatexy(uRow+m,uCol,flag);
WriteCommand( mWrite ); // 写数据(命令)
for(temp=0;temp<32;temp++)
{WriteData(HZ32_32[4*temp+count+m]);}
}
uRow+=4;
}//ASC码
else
{
Locatexy(uRow,uCol,flag);
WriteCommand( mWrite ); // 写数据(命令)
for(j=0;j<16;j++)
{
WriteData(ASC_MSK[(*pstr-0x20)*16 +j ]);
}
pstr++;
uRow++;
}//光标控制
if(uRow >= 40) // 光标后移
{
uCol += 32; // Y坐标
uRow = 0; // X坐标
if( uCol >= 240 ) uCol = 0;
}
Locatexy(uRow,uCol,flag);
}
}
void PutHz_24(uchar x,uchar y,uchar *pstr,uchar flag)
{
uchar j,m,temp;
uchar uRow,uCol;
uint count;
uRow=x;
uCol=y;
WriteCommand( CsrDirD );
Locatexy(uRow,uCol,flag);
while(*pstr)
{
if(*pstr>0xa0)//汉字
{
count=0;
while((HZ24_24[count]!=*pstr)||(HZ24_24[count+1]!=*(pstr+1)))
{ //根据区码位码查找汉字库
count=count+0x4a;
if(HZ24_24[count]==0)
{ //没有找到退出
count=0xffff;
break;
}
}
pstr+=2;
count+=2;
for(m=0;m<3;m++)
{
Locatexy(uRow+m,uCol,flag);
WriteCommand( mWrite ); // 写数据(命令)
for(temp=0;temp<24;temp++)
{WriteData(HZ24_24[3*temp+count+m]);}
}
uRow+=3;
}//ASC码
else
{
Locatexy(uRow,uCol,flag);
WriteCommand( mWrite ); // 写数据(命令)
for(j=0;j<16;j++)
{
WriteData(ASC_MSK[(*pstr-0x20)*16 +j ]);
}
pstr++;
uRow++;
}//光标控制
if(uRow >= 40) // 光标后移
{
uCol += 24; // Y坐标
uRow = 0; // X坐标
if( uCol >= 240 ) uCol = 0;
}
Locatexy(uRow,uCol,flag);
}
}
/*void PutHz_12(uchar x,uchar y,uchar *pstr,uchar flag)
{
uchar j,m,temp;
uchar uRow,uCol;
uint count;
uRow=x;
uCol=y;
WriteCommand( CsrDirD );
Locatexy(uRow,uCol,flag);
while(*pstr)
{
if(*pstr>0xa0)//汉字
{
count=0;
while((HZ12_12[count]!=*pstr)||(HZ12_12[count+1]!=*(pstr+1)))
{ //根据区码位码查找汉字库
count=count+0x1a;
if(HZ12_12[count]==0)
{ //没有找到退出
count=0xffff;
break;
}
}
pstr+=2;
count+=2;
for(m=0;m<2;m++)
{
Locatexy(uRow+m,uCol,flag);
WriteCommand( mWrite ); // 写数据(命令)
for(temp=0;temp<12;temp++)
{WriteData(HZ12_12[2*temp+count+m]);}
}
uRow+=2;
}//ASC码
else
{
Locatexy(uRow,uCol,flag);
WriteCommand( mWrite ); // 写数据(命令)
for(j=0;j<16;j++)
{
WriteData(ASC_MSK[(*pstr-0x20)*16 +j ]);
}
pstr++;
uRow++;
}//光标控制
if(uRow >= 40) // 光标后移
{
uCol += 12; // Y坐标
uRow = 0; // X坐标
if( uCol >= 240 ) uCol = 0;
}
Locatexy(uRow,uCol,flag);
}
} */
/******************************************
整数输出到字符串函数
入口: 位数:wei; 字符串:*str 变量:ivar
*******************************************/
void Send_int(uchar wei,uchar *str,uint shu)
{
data uchar i,num;
uint intbuf; // 整型数缓冲
intbuf = (uint)shu;// 变整形
str[wei] = 0; // 字符串结束
num = wei;
for(i=0;i<wei;i++){
num --;
str[num] = intbuf % 10 + 0x30;// 送一个字符
intbuf = intbuf / 10; // 上一位
}// for
}
/**********************************************************
函数功能:输出整数
x:字节位置,y:点位置
attribte:0:一区显示;1:二区显示
**********************************************************/
void Put_uint(uchar x,uchar y,uchar wei,uint shu,uchar attribte,bit inverse)
{
uchar cbuf[20]; // 字符串缓冲区
Send_int(wei,cbuf,shu);
Putstr( x, y, cbuf,attribte,inverse);; // 送显示
}
/************************************************
显示浮点数函数
入口:format +62 显示6位数,2位小数,显示+/-号
fbuf 浮点数
x:字节位置,y:点位置
attribte:0:一区显示;1:二区显示
*P:指向显示位数
*************************************************/
void Putf(uchar x,uchar y,uchar *p,float fbuf,uchar attribte)
{
uchar cbuf[16]; // 字符串缓冲区
SPutf(p,cbuf,fbuf);
Putstr( x, y, cbuf,attribte,0); // 送显示
}
//*********************************************
// 浮点数输出到字符串
// 入口: 说明 *format, 字符串:*str 变量:fvar
//***********************************************
void SPutf(uchar *format,uchar *str,float fvar)
{
data uchar a,b,i,num=0;
data unsigned long longbuf; // 整型数缓冲
if (*format =='+')
{
if (fvar<0)
{
fvar = -fvar; // 负变量转换绝对值
str[num]='-'; // 加负号
}
else
{
str[num]='+'; // 加正号
}
num ++;
format ++;
}//
a = *format - 0x30; // 取总长度a
format ++;
b = *format - 0x30; // 取小数点位数b
for (i=0;i<b;i++)
{
fvar = fvar * 10; // 消除小数
}//
fvar = fvar + 0.5; // 四舍五入
num = num + a;
if (b>0)
{
num ++; // 有小数点
}//
longbuf = (unsigned long)fvar;// 变整形
str[num] = 0; // 字符串结束
for(i=1;i<=a;i++)
{
num --;
str[num] = longbuf % 10 + 0x30; // 送一个字符
longbuf = longbuf / 10; // 上一位
if (i==b)
{
num --;
str[num] = '.'; // 加小数点
}
}
}
void EnableCursor(uchar flag)
{
WriteCommand( DispOn );
if(flag == 0)
WriteData( 0x54 );
else
WriteData( 0x57 );
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -