📄 iqc.c
字号:
p1=aryb1;p2=aryb2;p3=aryb3;
sjcl();
buzz_b=cjne(0x05,0x25);}
if(INC==1){
p1=aryc1;counts();
p1=aryc2;counts();
p1=aryc3;counts();
p1=aryc1;p2=aryc2;p3=aryc3;
sjcl();
buzz_c=cjne(0x0a,0x2a);}
if(IND==1){
p1=aryd1;counts();
p1=aryd2;counts();
p1=aryd3;counts();
p1=aryd1;p2=aryd2;p3=aryd3;
sjcl();
buzz_d=cjne(0x0f,0x2f);
}
}
if((buzz_a||buzz_b||buzz_c||buzz_d)==1){
buzzer=0;arye[6]=0x17;arye[5]=0x0e;arye[4]=arye[3]=0x12;arye[2]=arye[1]=arye[0]=0x1a;}//err
else {buzzer=1;arye[7]=0x0a;arye[6]=0x1d;arye[5]=0x0c;arye[4]=0x0d;arye[3]=0x17;arye[2]=0x16;arye[1]=0x0f;arye[0]=0x0f;}//aucd-off
if((tim_d>=80)&&((INA||INB||INC||IND)==1)){tim_d=0;
switch(tim_k){
case 0:tim_k=1;if(INA==1){
if(buzz_a==1){arye[7]=0x0a;d=arye;}
else d=&arya1;break;}
case 1:tim_k=2;if(INB==1){
if(buzz_b==1){arye[7]=0x1d;d=arye;}
else d=&aryb1;break;}
case 2:tim_k=3;if(INC==1){
if(buzz_c==1){arye[7]=0x0c;d=arye;}
else d=&aryc1;break;}
case 3:tim_k=0;if(IND==1){
if(buzz_d==1){arye[7]=0x0d;d=arye;}
else d=&aryd1;break;}
default:tim_k=0;
break;
}
}
}
}
}//结束
void counts(){
if(++(*(p1+8))>=60){
*(p1+8)=0;
if(++(*(p1+0))>=10){
*(p1+0)=0;
if(++(*(p1+1))>=6){
*(p1+1)=0;
if(++(*(p1+2))>=10){
*(p1+2)=0;
if(++(*(p1+3))>=10){
*(p1+3)=0;
if(++(*(p1+4))>=10){
*(p1+4)=0;
if(++(*(p1+5))>=10){
*(p1+5)=0;
if(++(*(p1+6))>=10){
*(p1+0)=*(p1+6)=*(p1+5)=*(p1+4)=*(p1+3)=*(p1+2)=*(p1+1)=9;
}
}
}
}
}
}
}
}
}
void sjcl(){
if((p1[0]==p2[0])&&(p1[1]==p2[1])&&(p1[2]==p2[2])&&(p1[3]==p2[3])&&(p1[4]==p2[4])&&(p1[5]==p2[5])&&(p1[6]==p2[6])&&(p1[8]==p2[8]))err=0;
else if((p1[0]==p3[0])&&(p1[1]==p3[1])&&(p1[2]==p3[2])&&(p1[3]==p3[3])&&(p1[4]==p3[4])&&(p1[5]==p3[5])&&(p1[6]==p3[6])&&(p1[8]==p3[8]))err=0;
else if((p3[0]==p2[0])&&(p3[1]==p2[1])&&(p3[2]==p2[2])&&(p3[3]==p2[3])&&(p3[4]==p2[4])&&(p3[5]==p2[5])&&(p3[6]==p2[6])&&(p3[8]==p2[8])){
p1[0]=p2[0];p1[1]=p2[1];p1[2]=p2[2];p1[3]=p2[3];p1[4]=p2[4];p1[5]=p2[5];p1[6]=p2[6];p1[8]=p2[8];err=0;}
else err=1;}
bit cjne(uchar add1,uchar add2){
if(err==0){at93c46(0,5,add2,&aryf);
if(p1[6]>aryf[6])return(1);
else if((p1[6]>=aryf[6])&&(p1[5]>aryf[5]))return(1);
else if((p1[6]>=aryf[6])&&(p1[5]>=aryf[5])&&(p1[4]>aryf[4]))return(1);
else if((p1[6]>=aryf[6])&&(p1[5]>=aryf[5])&&(p1[4]>=aryf[4])&&(p1[3]>aryf[3]))return(1);
else if((p1[6]>=aryf[6])&&(p1[5]>=aryf[5])&&(p1[4]>=aryf[4])&&(p1[3]>=aryf[3])&&(p1[2]>=aryf[2]))return(1);
else return(0);}
else {at93c46(0,5,add1,*p1);
p3[8]=p2[8]=p1[8];p3[6]=p2[6]=p1[6]; p3[5]=p2[5]=p1[5]; p3[4]=p2[4]=p1[4]; p3[3]=p2[3]=p1[3]; p3[2]=p2[2]=p1[2];p3[1]=p2[1]=p1[1];p3[0]=p2[0]=p1[0];return(0);}
}
void at93c46(bit com,uchar byte,uchar address,uchar idata *p){
if(com==0){//读命令
for(;byte>0;byte--){
SK=DI=CS=1;
msude(2);
SK=0;msude(2);
sdt46(0x80+address);
*p++=rdt46();
*p++=rdt46();
address++;
CS=0;_nop_();_nop_();
}
}
else {//写命令
for(;byte>0;byte--){
SK=DI=CS=1;
msude(2);
SK=0;msude(2);
sdt46(0x30);
CS=0;
SK=DI=CS=1;
msude(3);
SK=0;msude(2);
sdt46(0x40+address);
sdt46(*p++);
sdt46(*p++);
CS=0;
_nop_();_nop_();
SK=DI=CS=1;
msude(2);
SK=0;msude(2);
sdt46(0x00);
CS=0;_nop_();_nop_();
address++;
_nop_();_nop_();}
}
}
void sdt46(uchar k){//写操作
uchar i;
w=k;
for(i=0;i<8;i++){
DI=w7;w<<=1;
SK=1;msude(2);
SK=0;msude(2);
}
}
uchar rdt46(){ //读操作
uchar i;
for(i=0;i<7;i++){
SK=1;msude(2);
SK=0;msude(2);
w0=DO;w<<=1;
}
SK=1;msude(2);
SK=0;msude(2);
w0=DO;
return(w);
}
void key(){
uchar v=0;disp=0x04;*(d+0)=*(d+1)=0;
do{
S1=S2=S3=S4=1;
msde(30);
if(S2==0){
if(++v>=5)v=0;
else v=v;
do{S2=1;}while(S2==0);}
switch(v){
case 0:{
disp=0x04;
if(S3==0){
if(++(*(d+2))>=10){
*(d+2)=0;
if(++(*(d+3))>=10){
*(d+3)=0;
if(++(*(d+4))>=10){
*(d+4)=0;
if(++(*(d+5))>=10){
*(d+5)=0;
if(++(*(d+6))>=10){
*(d+6)=*(d+5)=*(d+4)=*(d+3)=*(d+2)=9;
}
}
}
}
}
}
else if(S4==0){
if(*(d+2)==0){
if(*(d+3)==0){
if(*(d+4)==0){
if(*(d+5)==0){
if(*(d+6)==0)*(d+6)=*(d+5)=*(d+4)=*(d+3)=*(d+2)=0;
else {(*(d+6))--;*(d+5)=*(d+4)=*(d+3)=*(d+2)=9;}
}
else {(*(d+5))--;*(d+4)=*(d+3)=*(d+2)=9;}
}
else {(*(d+4))--;*(d+3)=*(d+2)=9;}
}
else {(*(d+3))--;*(d+2)=9;}
}
else (*(d+2))--;}
}break;
case 1:{
disp=0x08;
if(S3==0){
if(++(*(d+3))>=10){
*(d+3)=0;
if(++(*(d+4))>=10){
*(d+4)=0;
if(++(*(d+5))>=10){
*(d+5)=0;
if(++(*(d+6))>=10){
*(d+5)=*(d+4)=*(d+3)=*(d+6)=9;
}
}
}
}
}
else if(S4==0){
if(*(d+3)==0){
if(*(d+4)==0){
if(*(d+5)==0){
if(*(d+6)==0)*(d+5)=*(d+4)=*(d+3)=*(d+6)=0;
else {(*(d+6))--;*(d+3)=*(d+4)=*(d+5)=9;}
}
else {(*(d+5))--;*(d+4)=*(d+3)=9;}
}
else {(*(d+4))--;*(d+3)=9;}
}
else {(*(d+3))--;}
}
}break;
case 2:{
disp=0x10;
if(S3==0){
if(++(*(d+4))>=10){
*(d+4)=0;
if(++(*(d+5))>=10){
*(d+5)=0;
if(++(*(d+6))>=10){
*(d+4)=*(d+5)=*(d+6)=9;
}
}
}
}
else if(S4==0){
if(*(d+4)==0){
if(*(d+5)==0){
if(*(d+6)==0)*(d+6)=*(d+5)=*(d+4)=0;
else {(*(d+6))--;*(d+5)=*(d+4)=9;}
}
else {(*(d+5))--;*(d+4)=9;}
}
else {(*(d+4))--;}
}
}break;
case 3:{
disp=0x20;
if(S3==0){
if(++(*(d+5))>=10){
*(d+5)=0;
if(++(*(d+6))>=10){
*(d+6)=*(d+5)=9;
}
}
}
else if(S4==0){
if(*(d+5)==0){
if(*(d+6)==0)*(d+5)=*(d+6)=0;
else {(*(d+6))--;*(d+5)=9;}
}
else {(*(d+5))--;}
}
}break;
case 4:{
disp=0x40;
if(S3==0){
if(++(*(d+6))>=10)
*(d+6)=9;
}
else if(S4==0){
if(*(d+6)==0);
else (*(d+6))--;}
}break;
default:
break;
}
}while(S1==1);
do{S1=1;}while(S1==0);
disp=0;
}
void msde(uchar ds)
{
while(ds--)msude(0xff);
}
void msude(uchar dms){
uchar i;
while(dms--)
{
for(i=0;i<=0x05;i++)
i=i ;
}
}
void tino() interrupt 0 using 0 {
P3=P2=P0=0xff;TR0=0;
at93c46(1,5,0x3a,&arya1);//读长度
at93c46(1,5,0x05,&aryb1);//读长度
at93c46(1,5,0x0a,&aryc1);//读长度
at93c46(1,5,0x0f,&aryd1);//读长度
LED=0;msde(0x80);}
void timer0()interrupt 1 {
TH0=0x3c;TL0=0xbc;//TH0=0x3c;TL0=0xaf
TR0=1;tim_ms++;}
void timer2()interrupt 5 {
TH2=0x3c;TL2=0xa9;TF2=0;
TR2=1;tim_d++;}
void timer1()interrupt 3 using 2 {
P0=P2=0xff;
if(vdd>=8){
sd=0x7f;vdd=0;
ad=disp;}
fd=*(d+vdd++);P2=sd;
P0=tab[fd];sd=_cror_(sd,1);
if(ad0==1){TH1=0xea;TL1=0x55;}
else {TH1=0xf9;TL1=0x55;}
ad>>=1;TR1=1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -