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

📄 ad7705 sensor.lst

📁 P89LPC931操作AD7705的程序。
💻 LST
📖 第 1 页 / 共 2 页
字号:
 142          //---------------------------------------------------------------------------
 143          //功能:AD7705通信端口复位
 144          //---------------------------------------------------------------------------
 145          void Reset7705(void) 
 146          {
 147   1          uchar i; 
 148   1          for(i=0;i<35;i++)    //多于连续32个 DIN=1 使串口复位 
 149   1          { 
 150   2              AdClk=0; 
 151   2                      Wait7705(AD_CLK_WIDTH);
 152   2              AdDin =1; 
 153   2                      Wait7705(AD_CLK_WIDTH);
 154   2              AdClk=1; 
 155   2                      Wait7705(AD_CLK_WIDTH);
 156   2          }
 157   1      } 
 158          //---------------------------------------------------------------------------
 159          //功能:AD7705初始化 通道channel 1=IN1,2=IN2; 输入极性polarity -0=双极性,1=单极性; PGA 增益gai 非缓冲模式
 160          //---------------------------------------------------------------------------
 161          void Init7705(uchar channel, bit polarity , uchar gain) 
 162          {
 163   1          uchar x; 
 164   1          Reset7705();         /* 防止串口失步 */ 
 165   1              if(channel == 1)
 166   1              {
 167   2          WriteByte7705(0x20); /* 写ch0 clock register */ 
 168   2          WriteByte7705(0x05); /* 2.4576MHz时钟,50Hz数据更新速率 */ 
 169   2              }
 170   1              else
 171   1              {
 172   2          WriteByte7705(0x21); /* 写CH1 clock register */ 
 173   2          WriteByte7705(0x05); /* 2.4576MHz时钟,50Hz数据更新速率 */ 
 174   2              }
 175   1          if(channel==1)       /* com register ,选择下步操作 setup register */ 
 176   1              WriteByte7705(0x10); 
 177   1          else 
 178   1              WriteByte7705(0x11); 
 179   1          if(polarity)         /* setup register */ 
C51 COMPILER V7.50   AD7705_SENSOR                                                         03/13/2007 14:59:24 PAGE 4   

 180   1              x=0x04; 
 181   1          else 
 182   1              x=0x00; 
 183   1          switch(gain)
 184   1          {
 185   2              case 1 : x|=0x40;break; 
 186   2              case 2 : x|=0x48;break; 
 187   2              case 4 : x|=0x50;break; 
 188   2              case 8 : x|=0x58;break; 
 189   2              case 16 : x|=0x60;break; 
 190   2              case 32 : x|=0x68;break; 
 191   2              case 64 : x|=0x70;break; 
 192   2              case 128 : x|=0x78;break; 
 193   2              default : x|=0x40;break; 
 194   2          } 
 195   1          WriteByte7705(x); 
 196   1      } 
 197          //---------------------------------------------------------------------------
 198          //功能:读AD7705转换数据 输入通道channel ----1=IN1,2=IN2;
 199          //---------------------------------------------------------------------------
 200          uint GetData7705(uchar channel) 
 201          {
 202   1          if(channel==1) 
 203   1              WriteByte7705(0x38); 
 204   1          else 
 205   1              WriteByte7705(0x39); 
 206   1          return ( ReadWord7705() ); 
 207   1      }
 208          //---------------------------------------------------------------------------
 209          //功能:处理串口收到的数据
 210          //---------------------------------------------------------------------------
 211          void ArrangeData(void)
 212          {
 213   1       if(CommandData[6] == 'C'|CommandData[6] == 'c')  /*终止数据更新命令*/ 
 214   1           {
 215   2                Update_temp = 0;
 216   2               }
 217   1        if(CommandData[6] == '$'&(CommandData[5] == 'I'|CommandData[5] == 'i')&CommandData[4] == ','&CommandData
             -[1] == 0x0d)  /*终止数据更新命令*/ 
 218   1           {
 219   2                ID1_temp = CommandData[3];
 220   2                ID0_temp = CommandData[2];
 221   2                EA = 0;
 222   2                FLASH_WriteByte(&ID1,ID1_temp);
*** WARNING C214 IN LINE 222 OF AD7705 SENSOR.C: 'Argument': conversion: pointer to non-pointer
 223   2                FLASH_WriteByte(&ID0,ID0_temp);
*** WARNING C214 IN LINE 223 OF AD7705 SENSOR.C: 'Argument': conversion: pointer to non-pointer
 224   2                EA = 1;
 225   2                if(ID0==ID0_temp&ID1==ID1_temp)
 226   2                     printf("ID SET OK.\n");
 227   2                else
 228   2                     printf("ID SET FAILURE.\n");
 229   2                printf("Currently ID=%c%c\n",ID1,ID0);
 230   2               }
 231   1       if((CommandData[6] == 'T'|CommandData[6] == 't')&CommandData[5] == 0x0d)
 232   1           {
 233   2                printf("\nID=%c%c\n",ID1_temp,ID0_temp);
 234   2            printf("ZeroPoint_X=%2.3f\n",ZeroPoint_X*LSB);
 235   2                printf("ZeroPoint_Y=%2.3f\n",ZeroPoint_Y*LSB);
 236   2            printf("ALARM_X+:%2.3f,ALARM_X-:-%2.3f\n",(ALARM_X_P*LSB-15),(15-ALARM_X_N*LSB));
 237   2                printf("ALARM_Y+:%2.3f,ALARM_Y-:-%2.3f\n",(ALARM_Y_P*LSB-15),(15-ALARM_Y_N*LSB));
 238   2           }
C51 COMPILER V7.50   AD7705_SENSOR                                                         03/13/2007 14:59:24 PAGE 5   

 239   1       if(CommandData[6] == '$'&(CommandData[5] == 'R'|CommandData[5] == 'r')&CommandData[4] == 0x0d)/*复位命令*
             -/ 
 240   1           {
 241   2                EA = 0;
 242   2                FLASH_WriteByte(&ALARM[7],0xff);
*** WARNING C214 IN LINE 242 OF AD7705 SENSOR.C: 'Argument': conversion: pointer to non-pointer
 243   2                FLASH_WriteByte(&ALARM[6],0xff);
*** WARNING C214 IN LINE 243 OF AD7705 SENSOR.C: 'Argument': conversion: pointer to non-pointer
 244   2                FLASH_WriteByte(&ALARM[5],0x00);
*** WARNING C214 IN LINE 244 OF AD7705 SENSOR.C: 'Argument': conversion: pointer to non-pointer
 245   2                FLASH_WriteByte(&ALARM[4],0x00);
*** WARNING C214 IN LINE 245 OF AD7705 SENSOR.C: 'Argument': conversion: pointer to non-pointer
 246   2                FLASH_WriteByte(&ALARM[3],0xff);
*** WARNING C214 IN LINE 246 OF AD7705 SENSOR.C: 'Argument': conversion: pointer to non-pointer
 247   2                FLASH_WriteByte(&ALARM[2],0xff);
*** WARNING C214 IN LINE 247 OF AD7705 SENSOR.C: 'Argument': conversion: pointer to non-pointer
 248   2                FLASH_WriteByte(&ALARM[1],0x00);
*** WARNING C214 IN LINE 248 OF AD7705 SENSOR.C: 'Argument': conversion: pointer to non-pointer
 249   2                FLASH_WriteByte(&ALARM[0],0x00);
*** WARNING C214 IN LINE 249 OF AD7705 SENSOR.C: 'Argument': conversion: pointer to non-pointer
 250   2                FLASH_WriteByte(&ZERO[3],0x00);
*** WARNING C214 IN LINE 250 OF AD7705 SENSOR.C: 'Argument': conversion: pointer to non-pointer
 251   2                FLASH_WriteByte(&ZERO[2],0x00);
*** WARNING C214 IN LINE 251 OF AD7705 SENSOR.C: 'Argument': conversion: pointer to non-pointer
 252   2                FLASH_WriteByte(&ZERO[1],0x00);
*** WARNING C214 IN LINE 252 OF AD7705 SENSOR.C: 'Argument': conversion: pointer to non-pointer
 253   2                FLASH_WriteByte(&ZERO[0],0x00);
*** WARNING C214 IN LINE 253 OF AD7705 SENSOR.C: 'Argument': conversion: pointer to non-pointer
 254   2                EA = 1;
 255   2                ALARM_X_P = ALARM[7];
 256   2            ALARM_X_P<<=8;
 257   2            ALARM_X_P |=ALARM[6];
 258   2            ALARM_X_N = ALARM[5];
 259   2            ALARM_X_N<<=8;
 260   2            ALARM_X_N |=ALARM[4];
 261   2            ALARM_Y_P = ALARM[3];
 262   2            ALARM_Y_P<<=8;
 263   2            ALARM_Y_P |=ALARM[2];
 264   2            ALARM_Y_N = ALARM[1];
 265   2            ALARM_Y_N<<=8;
 266   2            ALARM_Y_N |=ALARM[0];
 267   2                ZeroPoint_X = 0;
 268   2                ZeroPoint_Y = 0;
 269   2               }
 270   1       if((CommandData[6] == 'G'|CommandData[6] == 'g')&(CommandData[5] == 'O'|CommandData[5] == 'o')&CommandDat
             -a[4] == 0x0d)
 271   1           {
 272   2                Update_temp = 1;//Update;  /*继续输出数据*/ 
 273   2               }
 274   1       if(CommandData[6] == '$'&(CommandData[5] == 'Z'|CommandData[5] == 'z')&CommandData[4] == 0x0d)/*将当前位

⌨️ 快捷键说明

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