2270|0

85

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

LCD320240如何显示一个数组变量 [复制链接]

Uchar PutStr(Uchar x,Uchar y, char code *ptr)
{
Uchar c1,c2;
Uchar i,j,uLen,uRow,uCol,temp;
Uint k;
uCol = x;
uRow = y;
uLen=0;
LcmWrCmd( CsrDirD ); // 光标移动方向定义:自动下移
LcmLocateXY(uCol,uRow); //起点定位
while ( (Uchar)ptr[uLen] >= 0x10 ){uLen++;}; //探测字串长度
i=0;
while(i {
c1 = ptr[i];
c2 = ptr[i+1];
//ASCII 字符与汉字内码的区别在于128 做分界,大于界线的为汉字码
if(c1 <=128) //ASCII
{
if (c1 >= 0x10)
{
                LcmWrCmd( mWrite );
for(j=0;j<16;j++)//16
LcmWrDat( ASCII_Lib[(c1-0x20)*16+j]);
}
uCol++; //列数加1
}
else //中文
{
if(uCol==(LcmXPixel/8-1)) //中文占2 个字节位置,所以如果在最后一个字节
{ //位置显示中文不能显示完整的,干脆切换到下一行
uRow += 16;//16
uCol = 0;
if( (uRow+16) >= LcmYPixel ) uRow = 0;
}
for(j=0;j {
if((c1 == GB_16[j].Index[0]) && (c2 == GB_16[j].Index[1]))
break;
}
for(k=0;k<2;k++) //分16 行输出
{
LcmLocateXY(uCol+k,uRow);
LcmWrCmd( mWrite ); //写数据(命令)
for(temp=0;temp<16;temp++)
LcmWrDat( GB_16[j].Msk[temp*2+k]); //汉字横向取模
}
uCol +=2; //光标右移一大格
i++;
}
if(uCol >= (LcmXPixel/8)) // 光标后移
{
uRow += 16;//16
uCol = 0;
if( (uRow+16) >= LcmYPixel ) uRow = 0;
}
LcmLocateXY(uCol,uRow);
i++;
}
return uLen; //返回字串长度,汉字按2 字节计算
}
此函数只能像putchar(0,0,“电子工程世界”)这样显示,但实际我想使用让第三个为一个变量t,通过其他函数t的变化来显示相应的文字(现在只需显示数字就行)比如:
void DemoHZ1( Uchar sum,char code *ptr )
{
        Uchar tm[1];
        tm2[0]=sum;(sum是个求和的量)
          PutStr(11,180,tm2);第三个变量无论我用tm2[0],tm2.或者*tm2什么的都不行啊,指针掌握的不是很好,求指教啊谢谢

}
此帖出自51单片机论坛
点赞 关注
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表