📄 yue1112212.c
字号:
else
{
Clr_Scr();//清屏
Delaynms(1000);
LCD_Write_string(1,0,"Please insert ");//标题-磁通计-
LCD_Write_string(2,0,"the magnet");//标题-磁通计-
Write_char(0,0x0c); //显示打开,光标关,反白关
TR0=1;
}
break;
case 13: if (biao4==1) //单位选择按键
{ biao4=0;}
else
{ biao4=1;}
if(biao2==0&&biao4==1)
{LCD_Write_string(3,0,"200mT ");}
if(biao2==1&&biao4==1)
{ LCD_Write_string(3,0,"2T ");}
if(biao2==0&&biao4==0)
{LCD_Write_string(3,0,"2000Gs ");}
if(biao2==1&&biao4==0)
{LCD_Write_string(3,0,"20000Gs ");}
break;
case 14:if(biao2==0) //量程选择按键
{ biao2=1;
}
else
{biao2=0;
}
if(biao2==0&&biao4==1)
{LCD_Write_string(3,0,"200mT ");}
if(biao2==1&&biao4==1)
{ LCD_Write_string(3,0,"2T ");}
if(biao2==0&&biao4==0)
{LCD_Write_string(3,0,"2000Gs ");}
if(biao2==1&&biao4==0)
{LCD_Write_string(3,0,"20000Gs ");}
break;
case 15: LCD_set_xy(2,3);
Write_char(0,0x0e); //显示打开,光标开 ,反白关
break; //形状判断按键
case 16: LCD_set_xy(2,7);
Write_char(0,0x0e);
break; //极数输入按键
case 17: biao1=0; //测量范围输入按键 关AD
xueren=0; //测量范围从设时,确定标志位归零
makerang();
break;
case 18: xueren+=1; //按下确定键
if(xueren==2)
{ Clr_Scr();//清屏
Delaynms(1000);
Lcd_Mark1( );
}
if(xueren==1)
{
m=4;n=3;
LCD_set_xy(m,n);
srjs2=0;
biao5=1;//biao5为1表示输入下限
}
break;
case 19: //按下删除键
if(biao5==0)
{
LCD_Write_string(3,0,"Upper: ");
LCD_set_xy(m,n);
}
else
{
LCD_Write_string(4,0,"Lower: ");
LCD_set_xy(m,n);
}
break;
}
}
/**********************************************************/
void makerang(void)
{ EX1=0; //开外中断一
Clr_Scr();//清屏
Delaynms(1000);
LCD_Write_string(1,0," Please input ");
LCD_Write_string(2,0," rang ");
LCD_Write_string(3,0,"Upper:");
LCD_Write_string(4,0,"Lower:");
m=3;n=3;//输入上限的位置
LCD_set_xy(m,n);
Write_char(0,0x0e); //显示打开,光标开 ,反白关
srjs1=0; //输入计数mt
biao5=0; //biao5为零表示输入上限
EX1=1; //开外中断一
}
/**********************按下数字键************************/
void axszj(uchar js)
{
LCD_Write_number(js) ;
if (biao5==0)
{sz2[srjs1]=js;
srjs1++;
}
else
{
sz3[srjs2]=js ;
srjs2++;
}
}
/**************************判断合格与不合格********************************************/
void panluan(void)
{uchar i;
Write_char(0,0x0c); //显示打关,光标关,反白关
for(i=0;i<9;i++)
{
if(sz1[i]>sz2[i]||sz1[i]<sz3[i])
{
Delaynms(1000);
LCD_Write_string(4,0," unqualified");
break;
}
if(sz1[i]<sz2[i]&&sz1[i]>sz3[i])
{
Delaynms(1000);
LCD_Write_string(4,0," Qualified");
break;
}
if(i==8)
{
Delaynms(1000);
LCD_Write_string(4,0," Qualified");
}
}//for
}
/**********************************显示*************************/
void disp(void)
{ float u;long v,x,y,z,w,q,p,r;
uchar u1=0;
uchar i;
u=(((float)out-0x800)*10)/0x7ff;
if(u<0)
{u=u*(-1);
u1=1;} //求绝对值
if(biao2==0) //mt
{
r=(u/25)*10000000;
x=r/1000000; //点后最低位
y=(r/100000)%10; //最高位
z=(r/10000)%10; //次高位
q=(r/1000)%10; //最低位
p=(r%1000)/100;//点后最高位
v=(r/100)%10;
w=r%10;
}
else //t
{
r=(u/2.5)*100000;
x=r/100000; //点后最低位
y=(r/10000)%10; //最高位
z=(r/1000)%10; //次高位
q=(r/100)%10; //次高位
p=(r%100)/10; //次高位
v=r%10;
}
if(biao2==0&&biao4==1) //四位小数
{i=0;
LCD_Write_string(2,0,"B: ");
LCD_set_xy(2,1);
if(u1==1)
{LCD_Write_number(13) ;}
if(x)
{LCD_Write_number(x) ;
sz1[i]=x;i++;}
if(y)
{LCD_Write_number(y) ;
sz1[i]=y;i++;}
if(z)
{LCD_Write_number(z) ;
sz1[i]=z;i++;}
else
{LCD_Write_number(0) ;
sz1[i]=0;i++; }
LCD_Write_number(12) ;
sz1[i]=12;i++;
if(q)
{LCD_Write_number(q) ;
sz1[i]=q; i++;}
if(p)
{LCD_Write_number(p) ;
sz1[i]=p;i++;}
if(v)
{LCD_Write_number(v) ;
sz1[i]=v;i++;}
if(w)
{LCD_Write_number(w) ;
sz1[i]=w;i++;}
LCD_Write_string(2,6,"mT");
LCD_Write_string(3,0,"200mT ");//
Delaynms(1000);
Delaynms(1000);
Delaynms(1000);
}
if(biao2==1&&biao4==1) //三位小数
{i=0;
LCD_Write_string(2,0,"B: ");
LCD_set_xy(2,1);
if(u1==1)
{LCD_Write_number(13) ;}
if(x)
{LCD_Write_number(x) ;
sz1[i]=x;i++;}
else
{LCD_Write_number(0) ;
sz1[i]=0;i++;}
LCD_Write_number(12) ;
sz1[1]=12;i++;
if(y)
{LCD_Write_number(y) ;
sz1[i]=y;i++;}
if(z)
{LCD_Write_number(z) ;
sz1[i]=z;i++;}
if(q)
{LCD_Write_number(q) ;
sz1[i]=q;i++;}
sz1[i]=0;i++;
sz1[i]=0;i++;
sz1[i]=0;i++;
LCD_Write_string(2,4," T ");
LCD_Write_string(3,0,"2T ");//
Delaynms(1000);
Delaynms(1000);
Delaynms(1000);
}
if(biao2==0&&biao4==0)
{i=0;
LCD_set_xy(2,1);
if(u1==1)
{LCD_Write_number(13) ;}
if(x)
{LCD_Write_number(x) ;
sz1[i]=x;i++;}
if(y)
{LCD_Write_number(y) ;
sz1[i]=y;i++;}
if(z)
{LCD_Write_number(z) ;
sz1[i]=z;i++;}
if(q)
{LCD_Write_number(q) ;
sz1[i]=q;i++;}
else
{LCD_Write_number(0) ;
sz1[i]=0;i++;}
LCD_Write_number(12) ;
sz1[i]=12;i++;
if(p)
{LCD_Write_number(p) ;
sz1[i]=p;i++;}
if(v)
{LCD_Write_number(v) ;
sz1[i]=v;i++;}
if(w)
{LCD_Write_number(w) ;
sz1[i]=w;i++;}
LCD_Write_string(2,6,"Gs");
LCD_Write_string(3,0,"2000Gs ");//
Delaynms(1000);
Delaynms(1000);
Delaynms(1000);
}
if(biao2==1&&biao4==0)
{
LCD_set_xy(2,1);
if(u1==1)
{LCD_Write_number(13) ; }
if(x)
{LCD_Write_number(x) ;
sz1[i]=x;i++; }
if(y)
{LCD_Write_number(y) ;
sz1[i]=y;i++;}
if(z)
{LCD_Write_number(z) ;
sz1[i]=z;i++;}
if(q)
{LCD_Write_number(q) ;
sz1[i]=q;i++;}
if(p)
{LCD_Write_number(p) ;
sz1[i]=p;i++;}
else
{LCD_Write_number(0);
sz1[i]=0;i++;}
LCD_Write_number(12) ;
sz1[i]=12;i++;
if(v)
{LCD_Write_number(v) ;
sz1[i]=v;i++;}
LCD_Write_string(2,5,"Gs");
LCD_Write_string(3,0,"20000Gs ");//
Delaynms(1000);
Delaynms(1000);
Delaynms(1000);
}
panluan();
}
/*************************主函数*****************************************************/
void main(void)//
{
// lcdPSB=0;
lcdSID=0;
Clr_Scr();//清屏
Delaynms(1000);
Lcd_init();//设置液晶显示器
hd7279send_byte(0xa4);
EA=1; //开总中断
EX1=1; //开外中断一
IT1=1; //下降沿中断
TH0=-50000/256;
TL0=-50000%256;
ET0=1; //允许T0中断
TR0=0; //T0定时关闭
while(1)//主循环
{
if(biao2==0&&biao3==0)
{ P20=1;P22=0;} //0--2mt量程
if (biao2==1&&biao3==0)
{ P20=0;P22=0; } //0--2t量程
if(biao2==0&&biao3==1)
{ P21=0;P22=1; } //磁通计
if (biao2==1&&biao3==1)
{ P21=1;P22=1; }
/**********************************************************/
if(biao1==1)
{ EX1=0; //闭外中断一
qd1674();
disp();
EX1=1; //开外中断一
}
}//while
}//main
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -