四个位都显示8,闪烁十几下之后又同时显示一下0,然后3、4位偶尔显示0,一直无法显示正确数字
检查线路连接没有问题,每个位可单独从9显示到0,但是一起显示就老是8或者0
代码:
//a~h 2~9
//com1~4 10~13
char f[10][8]={
{1,1,1,1,1,1,0,0},
{0,0,0,0,1,1,0,0},
{1,1,0,1,1,0,1,0},
{1,1,1,1,0,0,1,0},
{0,1,1,0,0,1,1,0},
{1,0,1,1,0,1,1,0},
{1,0,1,1,1,1,1,0},
{1,1,1,0,0,1,0,0},
{1,1,1,1,1,1,1,0},
{1,1,1,1,0,1,1,0}
};
char fcom[4][4]={
{0,1,1,1},
{1,0,1,1},
{1,1,0,1},
{1,1,1,0}
};
void setup() {
int i;
for(i=2;i<=9;i++){
pinMode(i,OUTPUT);
digitalWrite(i,LOW);
}
for(i=10;i<=13;i++){
pinMode(i,OUTPUT);
digitalWrite(i,LOW);
}
}
void loop() {
void num(int t);
int i,j,k,l,p,c[4]={0};
for(i=9876;i>=0;i--){
c[0]=i/1000;
c[1]=(i/100)%10;
c[2]=(i%100)/10;
c[3]=i%10;
//视觉暂留
for(l=1;l<=125;l++){
for(j=0;j<=3;j++){
for(p=0;p<=3;p++){ //设定阴极;
pinMode(p+10,fcom[j][p]);
}
num(c[j]);
}
}
//归零
for(k=2;k<=9;k++){
digitalWrite(k,LOW);
}
for(k=10;k<=13;k++){
digitalWrite(k,LOW);
}
delay(300);
}
}
void num(int t){
int x;
for(x=0;x<=7;x++){
digitalWrite(x+2,f[t][x]);
}
delay(2);
}
检查了很多遍代码也没发现是哪里的问题,请求帮助!!
int sp1=8;//定义舵机接口数字接口8
int pulsewidth;//定义脉宽变量
int v;
int val1;
int myangle1;
const int IN_A1=4;
const int IN_A2=5;
const int IN_B1=6;