main.c

来自「采用PICC18编写的单片机源代码」· C语言 代码 · 共 484 行 · 第 1/2 页

C
484
字号
   //显示本机地址
   displayFloat(0,3,selfAddr);
   dispBuf[2]=TableNum[Intpart[0]];
   dispBuf[1]=TableNum[Intpart[1]];
   dispBuf[0]=TableNum[Intpart[2]];
   //显示r
   dispBuf[4]=TableLetter[7];
   //显示A
   dispBuf[3]=TableLetter[0];
}
/**************************显示放大倍数***********************
**入口:无
**出口:无
**根据Amp更新显示缓冲区      
*全局变量:uint8 Intpart[3],Decm[2],dispBuf[con_Disp_Bit];    //整数部分数组,小数部分数组                  
**************************************************************/
void dispAmp(void)
{
   //显示本机地址
   displayFloat(0,2,Amp);
   dispBuf[2]=TableNum[Intpart[0]];
   dispBuf[1]=TableNum[Intpart[1]];
   //显示d
   dispBuf[0]=TableLetter[3];
   //显示n
   dispBuf[4]=TableLetter[6];
   //显示n
   dispBuf[3]=TableLetter[6];
}
/**************************主函数**********************
/*入口:无
/*出口:无
/*占用资源:
/*调用函数:main_initial,
/***********************************************************/
void main(void)
{
uint8 tmpCtr;    //循环控制
uint16 tmpInt16;   //临时存储变量
main_initial();
Timer2ON();
while(1)
  {
    CLRWDT();
    switch(taskNo) 
    {
       //显示任务
       case task_Display: 
       {
          display();
          break;
       }
       //读取按键任务       
       case task_ReadKey:
       {      
          display();    
          if(readkey0()==TRUE)     //按键0(开始)
          {
             if(FaceReg==conFaceEmerTime)       //显示应急时间界面
             {
                for(tmpCtr=0;tmpCtr<ConADChnNum;tmpCtr++)
                {
                   ADChnRe.isStartADSap[tmpCtr]=TRUE;    //开始采样标志=TRUE
                   Ctrl14013_Reset(tmpCtr);      //14013复位
                }
             }
             else if(FaceReg==conFaceEmerVolt)        //显示终止电压界面
             {
             }
             else if(FaceReg==conFaceSetBaseVolt)       //显示基准电压界面
             {
                 ChangeBaseVolt(POINT2);          //基准电压+0.01
             }
             else if(FaceReg==conFaceSetAddr)           //显示本机地址界面
             {
                 SetSelfAddr(conAddr100);     //本机地址+100
             }
             else if(FaceReg==conFaceSetAmp)            //显示放大倍数界面
             {
             }             
          }
          if(readkey1()==TRUE)     //按键1(功能)
          {
             //改变功能模式,即改变显示界面
             FaceReg++;
             if(FaceReg>=conFaceMaxNum)
             {
                FaceReg=0;
             }
          }
          if(readkey2()==TRUE)     //按键2(选择)
          {             
             if(FaceReg==conFaceEmerTime)       //显示应急时间界面
             {
                FaceChnNo++;    //改变通道
                if(FaceChnNo>=conChnNum)
                {
                   FaceChnNo=0;
                }
             }
             else if(FaceReg==conFaceEmerVolt)        //显示终止电压界面
             {
                FaceChnNo++;    //改变通道
                if(FaceChnNo>=conChnNum)
                {
                   FaceChnNo=0;
                }
             }
             else if(FaceReg==conFaceSetBaseVolt)       //显示基准电压界面
             {
                ChangeBaseVolt(POINT2);          //基准电压+0.01
             }
             else if(FaceReg==conFaceSetAddr)           //显示本机地址界面
             {
                SetSelfAddr(conAddr10);   //本机地址+10
             }
             else if(FaceReg==conFaceSetAmp)            //显示放大倍数界面
             {
                ChangeAmp();    //改变放大倍数
             }           
          }
          if(readkey3()==TRUE)     //按键3(停止)
          {
             if(FaceReg==conFaceEmerTime)       //显示应急时间界面
             {
                for(tmpCtr=0;tmpCtr<ConADChnNum;tmpCtr++)
                {
                   ADChnRe.isStartADSap[tmpCtr]=FALSE;
                }
             }
             else if(FaceReg==conFaceEmerVolt)        //显示终止电压界面
             {
             }
             else if(FaceReg==conFaceSetBaseVolt)       //显示基准电压界面
             {
                ChangeBaseVolt(POINT1);          //基准电压+0.1
             }
             else if(FaceReg==conFaceSetAddr)           //显示本机地址界面
             {
                SetSelfAddr(conAddr1);           //本机地址+1
             }
             else if(FaceReg==conFaceSetAmp)            //显示放大倍数界面
             {
             }                          
          }
          break;
       }
       //AD转换任务
       case task_ADConv: 
       {
          display();
          MainAdConv();
          break;
       }
       //时间达到1S任务
       case task_Interval_1s: 
       {
          display();
          if(flag_1Sec==1)
          {
             flag_1Sec=0;
             #ifdef DEBUG       //调试用
               OutPut=OutPut^(0xff);   //调试用
             #endif  //调试用
             for(tmpCtr=0;tmpCtr<ConChnNum;tmpCtr++)
             {
                if(Ctrl14013_ReadQ(tmpCtr)==0)   //应急时间未结束
                {
                   if(ADChnRe.isStartADSap[tmpCtr]==TRUE)  //若开始采样
                   {
                      EmerTimeInc1s(tmpCtr);    //指定通道应急时间加1s
                      clrFlagEndEmerTime(tmpCtr);  //设定应急时间标志为未结束
                      sendBuf[tmpCtr][0]=0;   //发送缓冲区,结束标志=0
                      sendBuf[tmpCtr][1]=lobyte(EmerTime[tmpCtr].minute);   //应急时间
                      sendBuf[tmpCtr][2]=hibyte(EmerTime[tmpCtr].minute);
                      sendBuf[tmpCtr][3]=lobyte(EmerVolt[tmpCtr][0]);   //终止电压
                      sendBuf[tmpCtr][4]=hibyte(EmerVolt[tmpCtr][0]);
                   }                   
                }
                else    //应急时间结束
                {
                   setFlagEndEmerTime(tmpCtr);  //设定应急时间标志为结束
                   SaveEmerVolt(tmpCtr,ADChnRe.ADMin[tmpCtr]); 
                   sendBuf[tmpCtr][1]=0;   //发送缓冲区,结束标志=0
                   sendBuf[tmpCtr][1]=lobyte(EmerTime[tmpCtr].minute);   //应急时间
                   sendBuf[tmpCtr][2]=hibyte(EmerTime[tmpCtr].minute);
                   sendBuf[tmpCtr][3]=lobyte(EmerVolt[tmpCtr][0]);   //终止电压
                   sendBuf[tmpCtr][4]=hibyte(EmerVolt[tmpCtr][0]);
                }
             }
          }
          break;
       }
       //处理指令任务
       case task_DoInstru: 
       {
          display();
          DoInstru();
          break;
       }
       //更新显示缓冲区任务
       case task_UpDispBuf:
       {
          display();
          if(FaceReg==conFaceEmerTime) 
          {
             dispEmerTime();     //显示应急时间界面
          }
          else if(FaceReg==conFaceEmerVolt) 
          {
             dispEmerVolt();     //显示终止电压界面
          }
          else if(FaceReg==conFaceSetBaseVolt) 
          {
             dispBaseVolt();     //显示基准电压界面
          }
          else if(FaceReg==conFaceSetAddr) 
          {
             dispSelfAddr();     //显示本机地址界面
          }
          else if(FaceReg==conFaceSetAmp) 
          {
             dispAmp();       //显示放大倍数界面
          }
          break;
       }
    }
    taskNo++;  //任务号加1
    if(taskNo==task_Num)
    {
       display();
       taskNo=task_Min;
    }
  }		
}






⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?