⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 yue1112212.c

📁 本系统的控制部分是以89C51为核心
💻 C
📖 第 1 页 / 共 2 页
字号:
                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 + -