在51單片機動態數碼管學習程序中,我想做一個掃描顯示05201314但是最終結果卻沒達到預期,求大佬指導下





uj5u.com熱心網友回復:
原始碼#include<reg52.h>
typedef unsigned int u16;
typedef unsigned char u8;
void delay(u16 i)
{
while(i--);
}
sbit A=P2^2;
sbit lB=P2^3;
sbit C=P2^4;
u8 code led[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
void digdisplay(){
u8 i;
for(i=0;i<8;i++){
switch(i)
{
case(0):
A=0;lB=0;C=0;break;
case(1):
A=1;lB=0;C=0;break;
case(2):
A=0;lB=1;C=0;break;
case(3):
A=1;lB=1;C=0;break;
case(4):
A=0;lB=0;C=1;break;
case(5):
A=1;lB=0;C=1;break;
case(6):
A=0;lB=1;C=1;break;
case(7):
A=1;lB=1;C=1;break;
}
if(i=0){P0=led[5];
delay(100);
P0=0x00;
}
else if(i=1){P0=led[2];
delay(100);
P0=0x00;
}
else if(i=2){P0=led[4];
delay(100);
P0=0x00;
}
else if(i=3){P0=led[2];
delay(100);
P0=0x00;
}
else if(i=4){P0=led[1];
delay(100);
P0=0x00;
}
else if(i=5){P0=led[3];
delay(100);
P0=0x00;
}
else if(i=6){P0=led[6];
delay(100);
P0=0x00;
}
else if(i=7){P0=led[1];
delay(100);
P0=0x00;
}
}
}
void main()
{
while(1)
{
digdisplay();
}
}
uj5u.com熱心網友回復:
試一下把else 都刪了uj5u.com熱心網友回復:
可以,你的程式里switch和if陳述句是獨立的。不過你怎么不將兩者要實作的功能結合到一起呢?uj5u.com熱心網友回復:
你的if有問題 是== 不是= 。==是判斷,=是賦值uj5u.com熱心網友回復:
你編譯器應該有提醒的uj5u.com熱心網友回復:
#include<reg52.h>typedef unsigned int u16;typedef unsigned char u8;void delay(u16 i){ while(i--);}sbit A=P2^2;sbit lB=P2^3;sbit C=P2^4;u8 code led[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};void digdisplay(){ u8 i; for(i=8;i>0;i--) { switch(i) { case(1): A=1;lB=0;C=0;break; case(2): A=0;lB=1;C=0;break; case(3): A=1;lB=1;C=0;break; case(4): A=0;lB=0;C=1;break; case(5): A=1;lB=0;C=1;break; case(6): A=0;lB=1;C=1;break; case(7): A=1;lB=1;C=1;break; } if(i==1) { P0=led[4]; delay(100000); P0=0x00; } if(i==2) { P0=led[1]; delay(100000); P0=0x00; } if(i==3) { P0=led[3]; delay(100000); P0=0x00; } if(i==4) { P0=led[1]; delay(100000); P0=0x00; } if(i==5) { P0=led[0]; delay(100000); P0=0x00; } if(i==6) { P0=led[2]; delay(100000); P0=0x00; } if(i==7) { P0=led[5]; delay(100000); } }}void main(){ while(1) { digdisplay(); }}轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/78621.html
標籤:單片機/工控
