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

📄 adc.lst

📁 C51开发板测试程序 C51开发板测试程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
 154   1              char fuha;
 155   1              buff = 0;
 156   1              if(disptimer>3000)                                              //disptimer放在定时中断中递减
 157   1              {
 158   2                      disptimer=0;                                            //3秒显示切换定时值
 159   2                      led_fleg=led_fleg^1;                            //每执行一次,标志改变一次
 160   2              }
 161   1              else if(led_fleg==1)    
 162   1              {
 163   2                      bai = l_bai;                                            //流量百位
 164   2                      shi = l_shi;                                            //流量十位
 165   2                      ge  = l_ge;                                                     //流量个位
 166   2                      fuha= 10;
 167   2              }
 168   1              else
 169   1                      {                                                                       //百位不显示,段码送全1
 170   2                      bai = t_bai;
 171   2                      shi = t_shi;                                            //温度十位
 172   2                      ge  = t_ge;                                                     //温度个位
 173   2                      fuha= 11;
 174   2                      }
 175   1      //*********显示位选择**********
 176   1              LED_S0                  =1;                                             //disable all bits
 177   1              LED_S1                  =1;                                             //关显示
 178   1              LED_S2                  =1;
 179   1              LED_S3                  =1;
C51 COMPILER V8.05a   ADC                                                                  06/28/2008 09:03:13 PAGE 4   

 180   1              LED_S4                  =1;
 181   1              switch (scan)                                                   //
 182   1              {
 183   2                      case 0:                                                         //s4显示设置脉冲计数
 184   2                              warter();                                               //led dynamic scan
 185   2                              LED_S0                  =0;     
 186   2                              break;
 187   2                      case 1:                                                         
 188   2                              buff=table[ge];                                 //
 189   2                              send_port();                                    //显示段送端口
 190   2                              LED_S1                  =0;
 191   2                              break;
 192   2                      case 2:                                                         
 193   2                              if(bai||shi>0)
 194   2                                      {
 195   3                                      buff=table[shi];                                //
 196   3                                      send_port();                                    //显示段送端口
 197   3              //                      LED_H = 1;                                              //小数点显示
 198   3                                      LED_S2          =0;
 199   3                                      }
 200   2                              else
 201   2                                      LED_S2          =1;     
 202   2                              break;
 203   2                      case 3:                                                         
 204   2                              if(bai>0)
 205   2                                      {
 206   3                                      buff=table[bai];                        //
 207   3                                      send_port();                            //显示段送端口
 208   3                                      LED_S3  =0;
 209   3                                      }
 210   2                              else 
 211   2                                      LED_S3  =1;
 212   2                              break;
 213   2                      case 4:                                                         
 214   2                              buff=table[fuha];                               //改A字码为L(x038),B为C符号
 215   2                              send_port();                                    //显示段送端口
 216   2                              LED_S4                  =0;
 217   2                              break;
 218   2              }
 219   1              scan++;
 220   1              if(scan==5)     scan=0;
 221   1      }
 222          /*************定时器1中断服务*********/
 223          void Timer0Srv() interrupt 1                    //定时器1ms定时中断
 224          {
 225   1              TH0             =(65536-1000)/256;
 226   1              TL0             =(65536-1000)%256;                      //定时器0初装值定时1ms
 227   1              TimeAdd++;                                                      //最大计数值:65535ms
 228   1              TimeSub--;                                                      //最大计数值:256ms
 229   1              disptimer++;                                            //显示计时
 230   1      //      warter();       
 231   1              Disp();                                                         //定时器中断时扫描显示一次
 232   1      }
 233          void AD_DATA()                                                  //InterruptSrv()interrupt 5 using 0
 234          {
 235   1              
 236   1      //      int adc=0;
 237   1      
 238   1      /*      ADC_CONTR       &=CLEAR_ADC_INTR;       //zhouhua
 239   1              ad                      =ADC_DATA;
 240   1              ad                      <<=2;
 241   1              ad                      |=(ADC_LOW2)&0x03;
C51 COMPILER V8.05a   ADC                                                                  06/28/2008 09:03:13 PAGE 5   

 242   1              gTemperature=LookupTemperatureTable(ad);        
 243   1      
 244   1      WORD readadc(void)                                      //shenkaiyou
 245   1      {   WORD adc_result;
 246   1          adc_result=0;
 247   1              ADC_DATA=0;
 248   1          ADC_LOW2=0x00;                                      //need further test
 249   1              ADC_CONTR|=ADC_START;
 250   1              while(!(ADC_CONTR&ADC_FLAG)) ;
 251   1              ADC_CONTR&=~ADC_FLAG;//ADC_START;
 252   1              adc_result|=ADC_DATA<<2;
 253   1              
 254   1              //adc_result|=ADC_DATA;
 255   1              //adc_result =adc_result<<2;
 256   1              adc_result|=ADC_LOW2;
 257   1              //adc_result&=0x3ff;//0615
 258   1          return(adc_result);
 259   1      }
 260   1      查表值I等于温度值
 261   1        for(i=0;i<102;i++) //108
 262   1      
 263   1      
 264   1      */
 265   1              int adc;
 266   1              char i;
 267   1              if(ADC_CONTR&&0x10>0)                   //查询AD转换标志是否建立
 268   1              {
 269   2              adc             =ADC_DATA;
 270   2              adc             <<=2;
 271   2              adc             |=(ADC_LOW2)&0x03;              //&运算是只保留后2位,前六位置0,10位AD值
 272   2              for(i=0;i<102;i++)
 273   2              {
 274   3              if(T_table[i]<adc)                              //AD值查表得到温度值 
*** ERROR C202 IN LINE 274 OF ADC.C: 'T_table': undefined identifier
 275   3                      {
 276   4                      temperaturn=i;
 277   4                      break;
 278   4                      }
 279   3              }
 280   2      
 281   2              t_bai   =adc/100;
 282   2              t_shi   =adc%100/10;                                            //温度十位
 283   2              t_ge    =adc%10;
 284   2              ADC_CONTR=0x88;                                 //加ADC电源,清ADC-FLAG,重新开始AD转换 
 285   2              
 286   2              }
 287   1      }
 288          void main()
 289          {
 290   1              Initialization();
 291   1              while(1)
 292   1                      {
 293   2                      J1              = 1;
 294   2                      J2              = 0;
 295   2                      l_bai   = 1;
 296   2                      l_shi   = 7;
 297   2                      l_ge    = 4;
 298   2                      if(TimeAdd==500)                        //流水灯流动触发,0.5秒滚动一次
 299   2                              {
 300   3                              warter_led++;
 301   3                              TimeAdd=0;
 302   3                              }
C51 COMPILER V8.05a   ADC                                                                  06/28/2008 09:03:13 PAGE 6   

 303   2                      if(warter_led==4) (warter_led=0);
 304   2                      AD_DATA();
 305   2      
 306   2                      }
 307   1      }
*** WARNING C316 IN LINE 307 OF adc.c: unterminated conditionals

C51 COMPILATION COMPLETE.  1 WARNING(S),  1 ERROR(S)

⌨️ 快捷键说明

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