用下面的这些程序接收另外一个单片机发过来的数据(8个数字)然后用LCD显示,LCD有显示,但是显示的会移位,每次刷新就会循环左移1位的样子,这样是什么原因?要怎样解决?
uchar Get(void)
{
uchar dat;
while(!(UCA0IFG&UCRXIFG));
dat=UCA0RXBUF;
return dat;
}
主程序里
while(1)
{
dat1[0]=Get();
num++;
for(j=num;j>0;j--) dat1[j]=dat1[j-1];
if(num==9) {num=0;over=1;}
while(over)
{
Disp1Char(2,0,dat1[8]);
Disp1Char(3,0,dat1[7]);
Disp1Char(4,0,dat1[6]);
Disp1Char(5,0,dat1[5]);
Disp1Char(6,0,dat1[4]);
Disp1Char(7,0,dat1[3]);
Disp1Char(8,0,dat1[2]);
Disp1Char(9,0,dat1[1]);
over=0;
}
} |