单片机LCD显示!

来源:百度知道 编辑:UC知道 时间:2024/06/17 18:02:00
自学单片机,下了个LCD的例程,其中的一个设置LCD的位置的函数没太看懂!
----------------------------------------------------------------
void LcdPos(uchar xPos,uchar yPos)
{
uchar tmp;
xPos&=0x0f; //x位置范围是0~15
yPos&=0x01; //y位置范围是0~1
if(yPos==0) //显示第1行
tmp=xPos;
else
tmp=xPos+0x40; //显示第2行
tmp|=0x80;
Write_initialize(tmp);
}
----------------------------------------------------------------
为什么通过这个函数可以设置显示的位置。LCD是ISIS仿真里的LM016L!

能解释下就好了!

从代码可以看出..你这个lcd是1602类型的.
也就是一行16个字符,总共2行的那种,,

//这两行也就用说了..注释那边都写清楚了
xPos&=0x0f; //x位置范围是0~15
yPos&=0x01; //y位置范围是0~1

//下面几行,应该是lm016l的控制上有写吧 低6位设置为1表示显示第二行,
0为第一行说, 在现实第二行的实话 +0x40 ...相当于吧在xpos的第6位设置为1
if(yPos==0) //显示第1行
tmp=xPos;
else
tmp=xPos+0x40; //显示第2行

//下面吧第7位设置为1,应该是修改显示位置的命令
tmp |= 0x80;

//写入命令
Write_initialize(tmp);

楼上分析的差不多了,建议楼主一定多看下LCD说明书。