威望0
积分7946
贡献0
在线时间763 小时
UID1
注册时间2021-4-14
最后登录2024-11-21
管理员
- UID
- 1
- 威望
- 0
- 积分
- 7946
- 贡献
- 0
- 注册时间
- 2021-4-14
- 最后登录
- 2024-11-21
- 在线时间
- 763 小时
|
[mw_shl_code=cpp,true]void setup() {
// put your setup code here, to run once:
pinMode(2,OUTPUT); //触发上升沿的时钟信号引脚
pinMode(3,OUTPUT); // 移位/载入数据 引脚
pinMode(4,INPUT); //串行输入1
pinMode(5,INPUT); //串行输入2
pinMode(6,INPUT); //串行输入3
pinMode(7,INPUT); //串行输入4
pinMode(8,INPUT); //串行输入5
pinMode(9,INPUT); //串行输入6
pinMode(10,INPUT); //串行输入7
Serial.begin(9600);
}
void loop() {
// put your main code here, to run repeatedly:
int i,j,l=0;
int a,b,c,d,e,f,g=0;
long ta,tb,tc,td,te,tf,tg= 0; //每次循环从高到低读出的数据位
int DA[10]; //最后读出的外部数据A
int DB[10]; //最后读出的外部数据B
int DC[10]; //最后读出的外部数据C
int DD[10]; //最后读出的外部数据D
int DE[10]; //最后读出的外部数据E
int DF[10]; //最后读出的外部数据F
int DG[10]; //最后读出的外部数据G
int A10,A11,A12,A13,A14,A15,A16,A17= 0; //A组逐位取数
int A20,A21,A22,A23,A24,A25,A26,A27= 0; //B组逐位取数
int A30,A31,A32,A33,A34,A35,A36,A37= 0; //C组逐位取数
int A40,A41,A42,A43,A44,A45,A46,A47= 0; //D组逐位取数
int A50,A51,A52,A53,A54,A55,A56,A57= 0; //E组逐位取数
int A60,A61,A62,A63,A64,A65,A66,A67= 0; //F组逐位取数
int A70,A71,A72,A73,A74,A75,A76,A77= 0; //G组逐位取数
//初始化数组
for(l=0;l<5;l++)
{
DA[l]=0;
DB[l]=0;
DC[l]=0;
DD[l]=0;
DE[l]=0;
DF[l]=0;
DG[l]=0;
}
for(j=0;j<5;j++) //循环5次采集数据
{
digitalWrite(3,LOW); //载入数据
delay(1);
digitalWrite(3,HIGH); //移位使能
for(i=0;i<8;i++) //获取8位数据
{
ta=digitalRead(4); //A组取数
tb=digitalRead(5); //B组取数
tc=digitalRead(6); //C组取数
td=digitalRead(7); //D组取数
te=digitalRead(8); //E组取数
tf=digitalRead(9); //F组取数
tg=digitalRead(10); //G组取数
//判断为第几位数
if(i==0){A17=ta;A27=tb;A37=tc;A47=td;A57=te;A67=tf;A77=tg;}
if(i==1){A16=ta;A26=tb;A36=tc;A46=td;A56=te;A66=tf;A76=tg;}
if(i==2){A15=ta;A25=tb;A35=tc;A45=td;A55=te;A65=tf;A75=tg;}
if(i==3){A14=ta;A24=tb;A34=tc;A44=td;A54=te;A64=tf;A74=tg;}
if(i==4){A13=ta;A23=tb;A33=tc;A43=td;A53=te;A63=tf;A73=tg;}
if(i==5){A12=ta;A22=tb;A32=tc;A42=td;A52=te;A62=tf;A72=tg;}
if(i==6){A11=ta;A21=tb;A31=tc;A41=td;A51=te;A61=tf;A71=tg;}
if(i==7){A10=ta;A20=tb;A30=tc;A40=td;A50=te;A60=tf;A70=tg;}
//取完整数
DA[j] |= (ta<<(7-i));
DB[j] |= (tb<<(7-i));
DC[j] |= (tc<<(7-i));
DD[j] |= (td<<(7-i));
DE[j] |= (te<<(7-i));
DF[j] |= (tf<<(7-i));
DG[j] |= (tg<<(7-i));
digitalWrite(2,LOW);
delay(10);
digitalWrite(2,HIGH);
}
delay(2000);
}
//数据比较,防误报
for(a=0;a<5;a++) //A组采集5次数据循环比较
{
if(DA[a]!=DA[4])
break;
}
for(b=0;b<5;b++) //B组采集5次数据循环比较
{
if(DB!=DB[4])
break;
}
for(c=0;c<5;c++) //C组采集5次数据循环比较
{
if(DC[c]!=DC[4])
break;
}
for(d=0;d<5;d++) //D组采集5次数据循环比较
{
if(DD[d]!=DD[4])
break;
}
for(e=0;e<5;e++) //E组采集5次数据循环比较
{
if(DE[e]!=DE[4])
break;
}
for(f=0;f<5;f++) //F组采集5次数据循环比较
{
if(DF[f]!=DF[4])
break;
}
for(g=0;g<5;g++) //G组采集5次数据循环比较
{
if(DG[g]!=DG[4])
break;
}
//数据输出
if(a==5) //A组5次数据均相等
{
Serial.print("#A10=");
Serial.print(A10,BIN);
Serial.print("#A11=");
Serial.print(A11,BIN);
Serial.print("#A12=");
Serial.print(A12,BIN);
Serial.print("#A13=");
Serial.print(A13,BIN);
Serial.print("#A14=");
Serial.print(A14,BIN);
Serial.print("#A15=");
Serial.print(A15,BIN);
Serial.println();
}
if(b==5) //B组5次数据均相等
{
Serial.print("#A20=");
Serial.print(A20,BIN);
Serial.print("#A21=");
Serial.print(A21,BIN);
Serial.print("#A22=");
Serial.print(A22,BIN);
Serial.print("#A23=");
Serial.print(A23,BIN);
Serial.print("#A24=");
Serial.print(A24,BIN);
Serial.print("#A25=");
Serial.print(A25,BIN);
Serial.println();
}
if(c==5) //C组5次数据均相等
{
Serial.print("#A30=");
Serial.print(A30,BIN);
Serial.print("#A31=");
Serial.print(A31,BIN);
Serial.print("#A32=");
Serial.print(A32,BIN);
Serial.print("#A33=");
Serial.print(A33,BIN);
Serial.print("#A34=");
Serial.print(A34,BIN);
Serial.print("#A35=");
Serial.print(A35,BIN);
Serial.println();
}
if(d==5) //D组5次数据均相等
{
Serial.print("#A40=");
Serial.print(A40,BIN);
Serial.print("#A41=");
Serial.print(A41,BIN);
Serial.print("#A42=");
Serial.print(A42,BIN);
Serial.print("#A43=");
Serial.print(A43,BIN);
Serial.print("#A44=");
Serial.print(A44,BIN);
Serial.print("#A45=");
Serial.print(A45,BIN);
Serial.println();
}
if(e==5) //E组5次数据均相等
{
Serial.print("#A50=");
Serial.print(A50,BIN);
Serial.print("#A51=");
Serial.print(A51,BIN);
Serial.print("#A52=");
Serial.print(A52,BIN);
Serial.print("#A53=");
Serial.print(A53,BIN);
Serial.print("#A54=");
Serial.print(A54,BIN);
Serial.print("#A55=");
Serial.print(A55,BIN);
Serial.println();
}
if(f==5) //F组5次数据均相等
{
Serial.print("#A60=");
Serial.print(A60,BIN);
Serial.print("#A61=");
Serial.print(A61,BIN);
Serial.print("#A62=");
Serial.print(A62,BIN);
Serial.print("#A63=");
Serial.print(A63,BIN);
Serial.print("#A64=");
Serial.print(A64,BIN);
Serial.print("#A65=");
Serial.print(A65,BIN);
Serial.println();
}
if(g==5) //G组5次数据均相等
{
Serial.print("#A70=");
Serial.print(A70,BIN);
Serial.print("#A71=");
Serial.print(A71,BIN);
Serial.print("#A72=");
Serial.print(A72,BIN);
Serial.print("#A73=");
Serial.print(A73,BIN);
Serial.print("#A74=");
Serial.print(A74,BIN);
Serial.print("#A75=");
Serial.print(A75,BIN);
Serial.println();
}
Serial.println();
Serial.println();
Serial.println();
delay(3000);
}
[/mw_shl_code] |
|