单片机LCD显示的问题
为什么1不显示在第一行第一个,前面多了个字符,voidDispTime(){string[0]='1';string[1]='2';LCD_disp(0);}voidLC...
为什么1不显示在第一行第一个,前面多了个字符,
void DispTime(){ string[0]='1'; string[1]='2'; LCD_disp(0); }
void LCD_disp(uchar address){ uchar i; if(address==0) LCD_writer_com(0x80); else LCD_writer_com(0xc0);
for(i=0;i<16;i++) {// if(string[i]==0)break; LCD_writer_dat(string[i]); } }
如果初始化的时候 uchar string[16]={'1','2','3'}; 再把 // if(string[i]==0)break; 加上
就可以正常显示 展开
void DispTime(){ string[0]='1'; string[1]='2'; LCD_disp(0); }
void LCD_disp(uchar address){ uchar i; if(address==0) LCD_writer_com(0x80); else LCD_writer_com(0xc0);
for(i=0;i<16;i++) {// if(string[i]==0)break; LCD_writer_dat(string[i]); } }
如果初始化的时候 uchar string[16]={'1','2','3'}; 再把 // if(string[i]==0)break; 加上
就可以正常显示 展开
3个回答
展开全部
将列地址减1.如下
void LCD_disp(uchar address)
{
uchar i;
if(address==0)
LCD_writer_com(0x80-1);
else
LCD_writer_com(0xc0-1);
for(i=0;i<16;i++)
{
// if(string[i]==0)break;
LCD_writer_dat(string[i]);
}
}
void LCD_disp(uchar address)
{
uchar i;
if(address==0)
LCD_writer_com(0x80-1);
else
LCD_writer_com(0xc0-1);
for(i=0;i<16;i++)
{
// if(string[i]==0)break;
LCD_writer_dat(string[i]);
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个是吴鉴鹰的单片机学习板吧。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你先发送一个清屏指令试一下吧
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询