y1=2/8;
y2=2%8;
P1=y2;
// temp[x][y1]=posnow[x][y1];
LCD_Set_Pos(5,y1);
if(y2==0x00) {tmp=0x80;LCD_WrDat(0x80);P1=0x80;}
else if(y2==0x01) {tmp=0x01; LCD_WrDat(0x01);P1=0x01; }
else if(y2==0x02) {tmp=0x02; LCD_WrDat(0x02);P1=0X02; }
else if(y2==0x03) {tmp=0x04; LCD_WrDat(0x04);P1=0X04; }
else if(y2==0x04) {tmp=0x08; LCD_WrDat(0x08);P1=0X08; }
else if(y2==0x05) {tmp=0x10; LCD_WrDat(0x10);P1=0X10; }
else if(y2==0x06) {tmp=0x20; LCD_WrDat(0x20);P1=0x20; }
else if(y2==0x07) {tmp=0x40; LCD_WrDat(0x40);P1=0x40; }
为什么执行不了if判断语句??P1=y2是接小灯,亮的结果表明y2有赋值!!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
这个函数能执行完么?
哥们,你问到点子上了。现在我把子函数重新写了。
void lcd_d(uchar x,uchar y)
{
unsigned char a1,a2,tmp;
a1=y/8;
a2=y%8;
if(a2==0) {tmp=0x80; }
else if(a2==1) {tmp=0x01;}
else if(a2==2) {tmp=0x02;}
else if(a2==3) {tmp=0x04;}
else if(a2==4) {tmp=0x08;}
else if(a2==5) {tmp=0x10;}
else if(a2==6) {tmp=0x20;}
else if(a2==7) {tmp=0x40;}
}
能正常判断if了,但是在主函数中它与LCD_Set_Pos()这个函数不能共存。不论我在主函数中先运行lcd_d()再运行LCD_Set_Pos(),还是把他们顺序换一下,LCD_Set_Pos()函数不能跑。但是我把lcd_d()注释掉,就能正常运行了。为什么???
我在之前的工程里调试好的子函数复制到这个工程就各种奇葩了。。。难不成是昨天晚上关机姿势不对???
在这个工程里面,如果在主函数里,之前不运行void lcd_d()函数,是可以跑完的。如果跑完void lcd_d()函数再跑LCD_Set_Pos()就不行了,很奇怪。我新建了工程,把.C和.H文件复制进去就完全正常了。
一周热门 更多>