qq_56458723 2022-04-21 18:24 采纳率: 66.7%
浏览 41
已结题

这段代码的意思不太理解,具体问题在代码后面标注了

void ShowChar(unsigned char pos,unsigned char c)
{
unsigned char p;
if (pos>=0x10)
p=pos+0xb0; //为什么不是POS+0XC0呢?
else
p=pos+0x80;
WriteCommand (p);//write command
WriteData (c); //write data
}

void ShowString (unsigned char line,char ptr)
{
unsigned char l,i;
l=line<<4; //不明白为什么左移四位就能实现16个字符的循环显示?
for (i=0;i<16;i++)
ShowChar (l++,
(ptr+i));
}

  • 写回答

2条回答 默认 最新

  • 北斗猿 新星创作者: 人工智能技术领域 2022-04-21 19:21
    关注

    这个函数是这样的,你调用的时候要.要输入是在第一行显示数据还是第二行显示(pos值),
    第一行则pos值为0x00,
    第二行则为0x10.
    所以如果是 第一行显示则 P=0x00+0x80;//p值为0x80
    第二行显示则 P=0x10+0xb0; //p值为0xc0 液晶的命令中

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 4月29日
  • 已采纳回答 4月21日
  • 创建了问题 4月21日