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

📄 k1_diag.lst

📁 CPU.H CPU相关定义 Main.C 主函数 Ks0108.C LCD驱动 ASCII.c 8x8 8x16 英文字模 KeyScan.C 键盘扫描 MenuPara.C 菜单
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.20   K1_DIAG                                                               08/04/2007 17:20:18 PAGE 1   


C51 COMPILER V7.20, COMPILATION OF MODULE K1_DIAG
OBJECT MODULE PLACED IN .\Obj\K1_Diag.obj
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE Src\K1_Diag.C LARGE BROWSE DEBUG OBJECTEXTEND PRINT(.\Lst\K1_Diag.lst) OBJE
                    -CT(.\Obj\K1_Diag.obj)

line level    source

   1          /*
   2           *****************************************************************************
   3           * K1_Diag.C - K1诊断代码
   4           *
   5           * Copyright 2007-2010 BEIJING KND CNC TECHIQUE Co.,Ltd.
   6           * Copyright 2007-2010 北京凯恩帝数控技术有限公司
   7           *
   8           * DESCRIPTION: -
   9           * K1
  10           * modification history
  11           * --------------------
  12           * 01a, 30/jul/2007, 梁炎昌 written
  13           * --------------------
  14           *****************************************************************************
  15          */
  16          
  17          #include "CPU.H"
  18          #include "Serial.H"
  19          #include "Ks0108.H"
  20          #include "K1_Adapter.H"
  21          #include "K1_Diag.H"
  22          #include "Menu.H"
  23          #include "KeyScan.H"
  24          
  25          //extern unsigned char code Sound[];
  26          extern unsigned char code Warning[];
  27          //extern unsigned char code Question[];
  28          
  29          
  30          //位功能 位置提示
  31          code U8 *SysErrDispStr[] = {
  32          //24Bit Input Port string   ByteL-->ByteM -->ByteH
  33          {"XDALM  XS51.5 "},//0  InputErrDiffByteL
  34          {"ZDALM  XS52.5 "},//1
  35          {"#OV1   XS54.11"},//2
  36          {"#OV2   XS54.3 "},//3
  37          {"#OV4   XS54.12"},//4
  38          {"#OV8   XS54.4 "},//5
  39          {"#ESP1  XS50.7 "},//6
  40          {"#QPI   XS50.8 "},//7
  41          {"T05    XS54.9 "},//0  InputErrDiffByteM
  42          {"T06    XS54.1 "},//1
  43          {"T07    XS54.10"},//2
  44          {"T08    XS54.2 "},//3
  45          {"T01    XS50.5 "},//4
  46          {"T02    XS50.18"},//5
  47          {"T03    XS54.6 "},//6
  48          {"T04    XS54.19"},//7
  49          {"#DECZ  XS50.20"},//0  InputErrDiffByteH
  50          {"#DECX  XS50.21"},//1
  51          {"XPC+"},          //2
  52          {"ZPC+"},          //3
  53          {""},              //4
  54          {""},              //5
C51 COMPILER V7.20   K1_DIAG                                                               08/04/2007 17:20:18 PAGE 2   

  55          {""},              //6
  56          {""},              //7
  57          //-OutputErrDiffByteL OutputErrDiffByteH
  58          {"S01   XS57.1  "},//0  OutputErrDiffByteL    Z00
  59          {"S02   XS57.2  "},//1
  60          {"QPJ   XS57.3  "},//2
  61          {"S03   XS57.4  "},//3
  62          {"QPS   XS57.5  "},//4
  63          {"Y25   XS57.6  "},//5
  64          {"S04   XS57.7  "},//6
  65          {"ESPO  XS57.8  "},//7                        Z07
  66          {"M03   XS50.17 "},//0  OutputErrDiffByteH    Z08
  67          {"M04   XS50.4  "},//1
  68          {"Y12   XS50.16 "},//2
  69          {"M08   XS50.3  "},//3
  70          {"Y14   XS50.15 "},//4
  71          {"TL+   XS50.2  "},//5
  72          {"TL-   XS50.14 "},//6
  73          {"SPZD  XS50.1  "},//7                        Z15
  74          //-MiscErrDiffByteL
  75          {"XMRDY1        "},
  76          {"ZMRDY1        "},
  77          {"Rs232 DCD     "},
  78          {"Rs232 DSR     "},
  79          {"SVC           "},
  80          {"手轮 HAHB     "},
  81          {"编码器PASPBS  "},
  82          {"编码器PCS     "},
  83          //-AxisErrDiff
  84          {"X轴信号 XCP   "},
  85          {"X轴信号 XDIR  "},
  86          {"Z轴信号 ZCP   "},
  87          {"Z轴信号 ZDIR  "},
  88          };
  89          
  90          
  91          
  92          
  93          
  94          
  95          /*
  96          IN2_Port
  97          0---Bit0
  98          1---Bit1
  99          2---Bit7
 100          3---Bit2
 101          4---Bit6
 102          5---Bit5
 103          6---Bit3
 104          7---Bit4
 105          
 106          */
 107          
 108          extern U8 code InPutDataBitSwap[];
 109          extern data struct RxdData RxdData;
 110          extern data struct TxdData TxdData;
 111          extern U8 ReadAdc(void); //读出TLC0831转换数据函数
 112          extern void InitPortData(void);
 113          extern void CutOffAllPort(void);
 114          extern void Delayms(U16 Ms);
 115          extern void Delay_50us(U16 t);
 116          //extern U8 WaitKey(void);
C51 COMPILER V7.20   K1_DIAG                                                               08/04/2007 17:20:18 PAGE 3   

 117          extern void SetPortData(U32 Port_Data,Bool Force);
 118          
 119          
 120          #if 0
              /******************************************************************************
               * DispActiveFlag - 显示动态符号
               * DESCRIPTION: -
               * 用于表示程序运行中
               * Input:
               * Output:
               * Returns:
               *
               * modification history
               * --------------------
               * 01a, 30/jul/2007, 梁炎昌 written
               * --------------------
               ******************************************************************************/
              void DispActiveFlag(U8Count)
              {
                  GUI_SetEnFont(En_5x8);
              
                  switch(U8Count%4){
                      case 0:
                          GUI_DispCharAt('-',LCD_XSIZE-Char_XSIZE,0);
                          break;
                      case 1:
                          GUI_DispCharAt('\\',LCD_XSIZE-Char_XSIZE,0);
                          break;
                      case 2:
                          GUI_DispCharAt('|',LCD_XSIZE-Char_XSIZE,0);
                          break;
                      case 3:
                          GUI_DispCharAt('/',LCD_XSIZE-Char_XSIZE,0);
                          break;
                      default:
                          break;
                  }
                  GUI_SetEnFont(En_8x16);
              }
              #endif
 157          /******************************************************************************
 158           * ProgBar - 水平进度条
 159           * DESCRIPTION: -
 160           * 带有xx%进度提示
 161           * Input:
 162           * Output:
 163           * Returns:
 164           *
 165           * modification history
 166           * --------------------
 167           * 01a, 30/jul/2007, 梁炎昌 written
 168           * --------------------
 169           ******************************************************************************/
 170          void ProgBar(U8 y, U8 x0, U8 x1,U8 Precent,U8 MaxPrecentSize)
 171          {
 172   1          float FTemp;
 173   1      
 174   1          FTemp = Precent;
 175   1          FTemp /= MaxPrecentSize;
 176   1          FTemp *= 100;
 177   1          GUI_SetEnFont(En_5x8);
 178   1          GUI_DispDecAt((U8)FTemp,x1+1,y,2);
C51 COMPILER V7.20   K1_DIAG                                                               08/04/2007 17:20:18 PAGE 4   

 179   1          GUI_DispCharAt('%',x1+1+16,y);
 180   1          GUI_SetEnFont(En_8x16);
 181   1          HBar(y, x0, x1,(U8)(FTemp));
 182   1      
 183   1      }
 184          
 185          /*
 186          *****************************************************************************
 187          * SendCMDPackage - 发送命令包给K1
 188          * DESCRIPTION: -
 189          * 该函数被调用前要填充好TxdData.DataBuf   DataLen CMD TxdData.CheckByte
 190          * Input: ACK  检查的ACK
 191                   TimeoutDiv  超时的分频值 TimeoutInitData/TimeoutDiv是实际超时计数值
 192                   Retry 重试次数
 193          * Output:
 194          * Returns: true false
 195          *
 196          *****************************************************************************
 197          */
 198          Bool SendCMDPackage(U8 TimeoutDiv,U8 ACK,U8 Retry)
 199          {
 200   1          U16 Timeout;
 201   1          do{
 202   2              if(TxdData.State == Txd_Empty){
 203   3                  //数据包填充由外部程序完成,这里只是启动发送
 204   3                  StartTXD();
 205   3              }
 206   2              Timeout = TimeoutInitData;
 207   2              do{
 208   3                  if(TxdData.State == Txd_Empty){//发送完毕
 209   4                      break;
 210   4                  }
 211   3                  Timeout--;
 212   3              }while(Timeout);
 213   2              LED1 = 0x00;
 214   2              Timeout = TimeoutInitData/TimeoutDiv;
 215   2              do{
 216   3                  if((RxdData.State == Rxd_CheckByteOk)&&(RxdData.ACK == ACK)){
 217   4                      RxdData.State = Rxd_Empty;
 218   4                      //Retry = 1;//Retry 设置为1 通知退出循环
 219   4                      //break;
 220   4                      return true;
 221   4                  }
 222   3                  Timeout --;
 223   3              }while(Timeout);
 224   2              Retry--;
 225   2              if(Retry == 0){
 226   3                  break;
 227   3              }
 228   2              LED1 = 0x01;
 229   2          }while(Retry);
 230   1      
 231   1      //    if(Timeout){
 232   1      //        return true;
 233   1      //    }else{
 234   1              return false;
 235   1      //    }
 236   1      }
 237          
 238          
 239          //--------------------------------
 240          //显示电压值
C51 COMPILER V7.20   K1_DIAG                                                               08/04/2007 17:20:18 PAGE 5   

 241          //x0 y0 起点位置
 242          void DispVolt(U8 VoltData,U8 x0,U8 y0)
 243          {
 244   1          U16 U16Temp;
 245   1          U8 U8Temp;
 246   1          float vol;
 247   1      
 248   1      
 249   1      
 250   1          vol = VoltData;
 251   1      
 252   1          vol *= 10000;//10V   --  8Bit AD
 253   1          vol /= 256;
 254   1      
 255   1      
 256   1          U16Temp = (U16)vol/10;
 257   1          GUI_DispCharAt('V',x0+5*Char_XSIZE,y0);
 258   1          U8Temp = U16Temp%10;
 259   1      
 260   1          GUI_DispCharAt(U8Temp+'0',x0+4*Char_XSIZE,y0);
 261   1      
 262   1          U16Temp = U16Temp/10;
 263   1          U8Temp = U16Temp%10;
 264   1          GUI_DispCharAt(U8Temp+'0',x0+3*Char_XSIZE,y0);
 265   1      
 266   1          GUI_DispCharAt('.',x0+2*Char_XSIZE,y0);
 267   1      
 268   1          U16Temp = U16Temp/10;
 269   1          U8Temp = U16Temp%10;
 270   1          GUI_DispCharAt(U8Temp+'0',x0+Char_XSIZE,y0);
 271   1      
 272   1          U16Temp = U16Temp/10;
 273   1          U8Temp = U16Temp%10;
 274   1          if(U8Temp){
 275   2              GUI_DispCharAt(U8Temp+'0',x0,y0);
 276   2          }else{
 277   2              GUI_DispCharAt(' ',x0,y0);
 278   2          }
 279   1      }
 280          
 281          /*
 282          *****************************************************************************
 283          * CheckSVCOutput -  以指定值测试模拟电压输出
 284          * DESCRIPTION: -
 285          *
 286          * Input: SVCSetData 指定的电压值
 287          * Output:
 288          * Returns: Err_Pass Err_unPass Err_Timeout  测试通过/未通过/超时
 289          *
 290          *****************************************************************************
 291          */
 292          U8 CheckSVCOutput(U8 SVCSetData)
 293          {
 294   1          U8 InData;
 295   1          Bool FailFlag;
 296   1          U8 SVCReadData;
 297   1      
 298   1          FailFlag = false;
 299   1      
 300   1      
 301   1          TxdData.CMD = CMD_SetOutput;

⌨️ 快捷键说明

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