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

📄 de.lst

📁 本工程是PC透過RS232傳資料進開發版
💻 LST
📖 第 1 页 / 共 2 页
字号:
 293          
 294          void timer0() interrupt 1
 295          { 
 296   1      
 297   1        TH0=0xfa;
 298   1        TL0=0x00;                             //1ms的初始值
 299   1        time_1ms_flag=1;
 300   1        time_10ms++;
 301   1       if(time_10ms == 10)
 302   1        {
 303   2           time_50ms++;
C51 COMPILER V8.04   DE                                                                    01/18/2008 13:01:19 PAGE 6   

 304   2               time_10ms=0;
 305   2               time_10ms_flag=1;
 306   2        }
 307   1       if(time_50ms == 5)                         //设置50ms扫描一次键盘
 308   1        {
 309   2           time_100ms++;
 310   2           time_50ms = 0;
 311   2           time_50ms_flag = 1;          
 312   2           key=keyup();                           //按键扫描
 313   2         if( key!= 0 )                        //判断是否有按键按下      
 314   2          {
 315   3            send_flag = 1;
 316   3          }
 317   2        }       
 318   1       if(time_100ms == 2)
 319   1         {time_500ms++;time_100ms=0;time_100ms_flag=1;}
 320   1       if(time_500ms == 5)
 321   1         {time_1s++;time_500ms=0;time_500ms_flag=1;}
 322   1       if(time_1s == 2)
 323   1         {time_60s++;time_1s=0;time_1s_flag=1;}
 324   1       if(time_60s == 60)
 325   1         {time_60s=0;time_60s_flag=1;}                 
 326   1      }
 327          
 328          /*******************************************************************
 329          * 函数名称:value_change
 330          *
 331          * 函数功能描述:ADC转换后的电压变换处理。
 332          *              
 333          * 输入参数:none;
 334          *
 335          * 返回数据:none;
 336          *
 337          * 注意:none;
 338          ********************************************************************/
 339          
 340          uchar value_change()
 341          {       
 342   1             int i;
 343   1        if(channel0_flag==1)
 344   1          {    
 345   2                 DAC0_Init();                  
 346   2             DAC1_Init(); 
 347   2                 delay(300);  
 348   2                 {    
 349   3                   ADC0_Conver(); 
 350   3                   i=0;
 351   3                  {     
 352   4                         EA=0;
 353   4                         voltage=result[0];  //读取值。
 354   4                         EA=1;
 355   4                     voltage=2450*voltage;
 356   4                     voltage=voltage>>12;
 357   4                     voltage=voltage/100;
 358   4                         mopt[0]=voltage;
 359   4                         EA=0;
 360   4                      }
 361   3                 ADC0_Conver(); 
 362   3                   i=0;
 363   3                  {     
 364   4                         EA=0;
 365   4                         voltage=result[0];  //读取值。
C51 COMPILER V8.04   DE                                                                    01/18/2008 13:01:19 PAGE 7   

 366   4                         EA=1;
 367   4                     voltage=2450*voltage;
 368   4                     voltage=voltage>>12;
 369   4                     voltage=voltage/100;
 370   4                         mopt[0]=voltage; 
 371   4                         EA=0;
 372   4                      }
 373   3              ADC0_Conver(); 
 374   3                   i=0;
 375   3                  {     
 376   4                         EA=0;
 377   4                         voltage=result[0];  //读取值。
 378   4                         EA=1;
 379   4                     voltage=2450*voltage;
 380   4                     voltage=voltage>>12;
 381   4                     voltage=voltage/100;
 382   4                         mopt[0]=voltage;  
 383   4                         EA=0;
 384   4                      }
 385   3             }
 386   2                 delay(300);
 387   2                 channel0_flag=0;
 388   2              }
 389   1               if(channel1_flag==1)
 390   1                {       DAC0_Init();           
 391   2               DAC1_Init(); 
 392   2                       delay(300);    
 393   2                 ADC0_Conver(); 
 394   2                 i=1;
 395   2                  {     
 396   3                         EA=0;
 397   3                         voltage=result[i];  //读取值。
 398   3                         EA=1;
 399   3                     voltage=2450*voltage;
 400   3                     voltage=voltage>>12;
 401   3                     voltage=voltage/100;
 402   3                         mopt[i]=voltage;
 403   3                         EA=0;
 404   3                      }
 405   2                 ADC0_Conver(); 
 406   2                 i=1;
 407   2                  {     
 408   3                         EA=0;
 409   3                         voltage=result[i];  //读取值。
 410   3                         EA=1;
 411   3                     voltage=2450*voltage;
 412   3                     voltage=voltage>>12;
 413   3                     voltage=voltage/100;
 414   3                         mopt[i]=voltage;
 415   3                         EA=0;
 416   3                      }
 417   2                      ADC0_Conver(); 
 418   2                 i=1;
 419   2                  {     
 420   3                         EA=0;
 421   3                         voltage=result[i];  //读取值。
 422   3                         EA=1;
 423   3                     voltage=2450*voltage;
 424   3                     voltage=voltage>>12;
 425   3                     voltage=voltage/100;
 426   3                         mopt[i]=voltage;
 427   3                         EA=0;
C51 COMPILER V8.04   DE                                                                    01/18/2008 13:01:19 PAGE 8   

 428   3                      }
 429   2             
 430   2                 channel1_flag=0;
 431   2                }
 432   1                 strcpy(dat,"AIN1="); 
 433   1             dat[5]=(uchar)(mopt[0]/10)+0x30;
 434   1                 dat[6]='.';
 435   1                 dat[7]=(uchar)(mopt[0] % 10)+0x30;
 436   1                 dat[8]='V'; 
 437   1                 dat[9]=',';                            //AIN1=x.xV, AIN2=x.xV
 438   1             dat[10]='A'; 
 439   1                 dat[11]='I'; 
 440   1                 dat[12]='N'; 
 441   1                 dat[13]='2'; 
 442   1                 dat[14]='=';  
 443   1                 dat[15]=(uchar)(mopt[1]/10)+0x30;
 444   1                 dat[16]='.';
 445   1             dat[17]=(uchar)(mopt[1] % 10)+0x30;
 446   1                 dat[18]='V';
 447   1                 delay(500);
 448   1                 return 1;                                            
 449   1      }
 450          
 451          /*******************************************************************
 452          * 函数名称:send_232;
 453          *
 454          * 函数功能描述:向232发送字符到SBUF0;
 455          ********************************************************************/
 456          
 457          void send_232(send_232_end,uchar send_232_code[])  
 458          {       
 459   1        if(rs232_send_size<send_232_end)
 460   1              {
 461   2                SBUF0=send_232_code[rs232_send_size];
 462   2                rs232_send_size++;
 463   2          }
 464   1      }
 465          
 466          /*******************************************************************
 467          * 函数名称:serial_0();
 468          *
 469          * 函数功能描述:UART0采用定时中断的方式通过串0口发送字符,
 470          *              
 471          * 输入参数:none
 472          *
 473          * 返回数据:none;
 474          ********************************************************************/
 475          
 476          void serial_0(void) interrupt 4
 477          {                        
 478   1        if ( TI0 )                
 479   1          {                                                                           
 480   2                send_232(sizeof(dat),&dat);  
 481   2                TI0=0;
 482   2              }
 483   1        if ( RI0 )                   
 484   1         {
 485   2                RI0=0;
 486   2         }              
 487   1      }
 488            
 489          /*******************************************************************
C51 COMPILER V8.04   DE                                                                    01/18/2008 13:01:19 PAGE 9   

 490          *主循环程序
 491          *
 492          ********************************************************************/
 493          
 494          main()
 495          { 
 496   1        uchar i=0;
 497   1        uchar dat[20]; 
 498   1        DAC0L=0;
 499   1        DAC0H=0;
 500   1        DAC1L=0;
 501   1        DAC1H=0;
 502   1        memset(dat,0,sizeof(dat));
 503   1        Init_Device(); 
 504   1        Uart0_Enable(1); 
 505   1        ADC0_Init();
 506   1        ADC0_enable(1);
 507   1        while(1)
 508   1         { 
 509   2           if(send_flag== 1)          
 510   2            { 
 511   3               switch(key)
 512   3                 {
 513   4                      case 0x11:              
 514   4                      dac_value[0]=0xaa;
 515   4                      dac_value[1]=0x06;
 516   4                      dac_value[2]=0;
 517   4                      dac_value[3]=0; 
 518   4                      channel0_flag=1;
 519   4                      break;
 520   4                      case 0x21:              
 521   4                      dac_value[0]=0x54;
 522   4                      dac_value[1]=0x0b;
 523   4                      dac_value[2]=0;
 524   4                      dac_value[3]=0;
 525   4                      channel0_flag=1;
 526   4                      break;          
 527   4                      case 0x41:                      
 528   4                      dac_value[0]=0;
 529   4                      dac_value[1]=0;
 530   4                      dac_value[2]=0xaa;
 531   4                      dac_value[3]=0x06;
 532   4                      channel1_flag=1;
 533   4                      break;
 534   4                      case 0x81:               
 535   4                      dac_value[0]=0;
 536   4                      dac_value[1]=0;
 537   4                      dac_value[2]=0x54;
 538   4                      dac_value[3]=0x0b;
 539   4                      channel1_flag=1;
 540   4                      break;
 541   4                      default:                
 542   4                      DAC0L=0;
 543   4                      DAC0H=0;
 544   4                      DAC1L=0;
 545   4                      DAC1H=0;
 546   4                      break;
 547   4                 }                     
 548   3                       send_flag= 0;           
 549   3                } 
 550   2                         EA=1;
 551   2                     value_change(); 
C51 COMPILER V8.04   DE                                                                    01/18/2008 13:01:19 PAGE 10  

 552   2                         delay(500); 
 553   2               if(time_1s_flag==1)
 554   2                 {
 555   3                         rs232_send_size=0;
 556   3                         SFRPAGE=UART0_PAGE;
 557   3                         delay(100);
 558   3                         TI0=1;
 559   3                         time_1s_flag=0;
 560   3                 }       
 561   2          if(time_1ms_flag==1)
 562   2                {      
 563   3                    P3_5=~P3_5;
 564   3                P2_4=~P2_4;
 565   3                P2_5=~P2_5;
 566   3                P2_6=~P2_6;
 567   3                       time_1ms_flag=0;
 568   3                }
 569   2         
 570   2              }            
 571   1      }
 572          
 573          /*******************************************************************/
 574          // 文件结束
 575          /*******************************************************************/


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1582    ----
   CONSTANT SIZE    =      6    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     62      25
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      7    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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