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

📄 keyprc.lst

📁 电磁流量计的源程序。将流体流量用电磁转换方式变换成弱电信号
💻 LST
📖 第 1 页 / 共 3 页
字号:
 566   2      			                    if(set_dp_F == 0)
 567   2      			                    {
 568   3      				                    Write1B(user_setdata.oneseg,0x18,0);
 569   3                                          Write1B(user_setdata.twoseg,0x19,0);
 570   3                                          Write1B(user_setdata.thrseg,0x1a,0);
 571   3                                          Write1B(user_setdata.fouseg,0x1b,0);
 572   3      								    lchen_data = Get_lchen_data(0x18,dp_point);
 573   3      								    set_dp_F = 1;
 574   3      								    set_pra_seg = dp_blink_potion[dp_point];
 575   3      						        }
 576   2      						      else
 577   2      						       {
 578   3                                          Write1B(dp_point,0x0e,0);
 579   3                                          lchen_data = Get_lchen_data(0x18,dp_point);
 580   3                                          set_dp_F = 0 ;
 581   3                                          set_pra_seg = 0 ;
 582   3                                          
 583   3                                          
 584   3                                     }
 585   2      								break;
 586   2      				case 0x03:       //dp baochen
 587   2      				                if(set_dp_F == 0)
 588   2      			                    {
 589   3      			                    
 590   3      			                    	
 591   3      				                   //     Write1B(user_setdata.oneseg,0x26,0);
 592   3                                         //     Write1B(user_setdata.twoseg,0x27,0);
 593   3                                         //     Write1B(user_setdata.thrseg,0x28,0);
 594   3                                         //     Write1B(user_setdata.fouseg,0x29,0);
 595   3      								          set_dp_F = 1;
 596   3      								          set_pra_seg = dp_blink_potion[pulse_dp];
 597   3      						           
 598   3      						            
 599   3      						         }
 600   2      						            	
 601   2      						      else
 602   2      						       {    
 603   3      						            if(Judge_setdanlan_range())
 604   3      						            {  
 605   4      						               Write1B(user_setdata.oneseg,0x26,0);
 606   4                                             Write1B(user_setdata.twoseg,0x27,0);
 607   4                                             Write1B(user_setdata.thrseg,0x28,0);
 608   4                                             Write1B(user_setdata.fouseg,0x29,0);
 609   4                                             Write1B(pulse_dp,0x2a,0);
 610   4                                             set_pra_seg = 0;
 611   4                                             set_dp_F = 0 ;
 612   4                                          }
 613   3                                          else 
C51 COMPILER V6.02  KEYPRC                                                                 09/10/2005 17:11:40 PAGE 11  

 614   3                                          {   
 615   4                                              press_r_key = 0 ;
 616   4                                          	set_pra_seg =  0x08 ;
 617   4                                          	set_dp_F = 0;
 618   4                                          }
 619   3                                    }
 620   2      								break;
 621   2      								 
 622   2      		        case 0x08:      if(set_dp_F == 0)               //sensor_k set option
 623   2      		                        {
 624   3                                          Write1B(user_setdata.oneseg,0x30,0);
 625   3                                          Write1B(user_setdata.twoseg,0x31,0);
 626   3                                          Write1B(user_setdata.thrseg,0x32,0);
 627   3                                          Write1B(user_setdata.fouseg,0x33,0);
 628   3                                          sensor_k = Get_lchen_data(0x30,sensor_dp); 
 629   3                                          system_k = sensor_k*lchen_data/0x7fff ;
 630   3                                          
 631   3                                          set_dp_F = 1;
 632   3                                          set_pra_seg =  dp_blink_potion[sensor_dp];
 633   3                                      }
 634   2                                      else 
 635   2                                      {
 636   3                                      	Write1B(sensor_dp,0x34,0);
 637   3                                      	sensor_k = Get_lchen_data(0x30,sensor_dp);
 638   3                                          system_k = sensor_k*lchen_data/0x7fff ;
 639   3                                           
 640   3                                      	set_dp_F = 0;
 641   3                                      	set_pra_seg = 0 ;
 642   3                                      }
 643   2                                      break;
 644   2      			    case 0x0a:
 645   2                                      if(set_dp_F == 0)
 646   2      		                        {
 647   3                                          Write1B(zero_symbol,0x38,0);
 648   3                                          Write1B(user_setdata.oneseg,0x39,0);
 649   3                                          Write1B(user_setdata.twoseg,0x3a,0);
 650   3                                          Write1B(user_setdata.thrseg,0x3b,0);
 651   3                                          Write1B(user_setdata.fouseg,0x3c,0);
 652   3                                      //    zero_offset = Get_lchen_data(0x39,zero_dp); 
 653   3                                          
 654   3                                          zero_code = (unsigned int)( Get_lchen_data(0x39,zero_dp)/10.0*32767); 
             -                       
 655   3                                          set_dp_F = 1;
 656   3                                          set_pra_seg =  dp_blink_potion[zero_dp];
 657   3                                      }
 658   2                                      else 
 659   2                                      {
 660   3                                      	Write1B(zero_dp,0x3d,0);
 661   3                                    //  	zero_offset = Get_lchen_data(0x39,zero_dp); 
 662   3                                          zero_code = (unsigned int)( Get_lchen_data(0x39,zero_dp)/10.0*32767); 
             -                                
 663   3                                      	set_dp_F = 0;
 664   3                                      	set_pra_seg = 0 ;
 665   3                                      }
 666   2                                      break;
 667   2      				case 0x04:      /* lubo zisu baochen */
 668   2      				                Write1B(user_setdata.oneseg,0x1c,0);
 669   2      				                filter_data = user_setdata.oneseg ;
 670   2      								break;
 671   2      				case 0x05:      /*xiaoliuliang xinhao qiecu bao chen */
 672   2      				                Write1B(user_setdata.oneseg,0x1d,0);
 673   2                                      
C51 COMPILER V6.02  KEYPRC                                                                 09/10/2005 17:11:40 PAGE 12  

 674   2      								cut_slope = user_setdata.oneseg ;
 675   2                                      cut_data =(cut_slope/100.0)*lchen_data;
 676   2                                      break;
 677   2      				case 0x06:      //baojin shangxian 
 678   2      				                if((user_setdata.thrseg*100+user_setdata.twoseg*10+user_setdata.oneseg) <=150)
 679   2      				                {
 680   3      				                	Write1B(user_setdata.oneseg,0x12,0);
 681   3                                          Write1B(user_setdata.twoseg,0x13,0);
 682   3                                          Write1B(user_setdata.thrseg,0x14,0);
 683   3      								    alarm_up_data = ((user_setdata.thrseg*100+user_setdata.twoseg*10+user_setdata.oneseg)/100.0)*l
             -chen_data;
 684   3      				                }                           // update:2003-09-20
 685   2      				                break;
 686   2      				case 0x07:      //baojin xiaxian
 687   2      				                Write1B(user_setdata.oneseg,0x15,0);
 688   2                                      Write1B(user_setdata.twoseg,0x16,0);
 689   2      								alarm_dm_data = ((user_setdata.twoseg*10+user_setdata.oneseg)/100.0)*lchen_data;
 690   2                                      break;
 691   2                      case 0x09:
 692   2                                      
 693   2                                      Write1B(user_setdata.oneseg,0x35,0);
 694   2                                      Write1B(user_setdata.twoseg,0x36,0);
 695   2                                      Write1B(user_setdata.thrseg,0x37,0);
 696   2                                      da_offset = user_setdata.thrseg*100+user_setdata.twoseg*10+user_setdata.on
             -eseg;
 697   2                                      break;
 698   2      				case 0x0b:      //chang mima
 699   2      				                Write1B(user_setdata.oneseg,0x0d,0);
 700   2                                      Write1B(user_setdata.twoseg,0x0c,0);
 701   2                                      Write1B(user_setdata.thrseg,0x0b,0);
 702   2                                      Write1B(user_setdata.fouseg,0x0a,0);
 703   2      								break;
 704   2      			   default:
 705   2      	                           break;    
 706   2      				              
 707   2            }
 708   1      }
 709          
 710          /***************************/
 711          /***************************/
 712          
 713          void Set_sys_data(void)
 714          {
 715   1        unsigned char addr;
 716   1      //set system mima
 717   1         if(biaodin_F == 1)       //SURE ONLY AT BIAODIN CAN PRECESS THIS SEGMENT
 718   1         {
 719   2            Set_sys_mima();
 720   2      //clear page0 from 0x0e to 0x25 eeprom ram
 721   2            for(addr=0x0e;addr<0x3d;addr++)
 722   2            {
 723   3      	       Write1B(0x00,addr,0);
 724   3      	  }
 725   2           Write1B(0x10,0x10,0);         //set page1 start address is 0x10
 726   2           Write1B(0x20,0x25,0);         //set system adc_gain = ADC_GIAN_16
 727   2        //set system sensor_k = 1.000   
 728   2           Write1B(0x03,0x34,0);         //sensor_dp = 3 ;
 729   2           Write1B(0x01,0x33,0);         //sensor_K = 1.000  
 730   2        /* 4 mA stander out set: da_offset = 203 */
 731   2           Write1B(0x03,0x35,0);  
 732   2           Write1B(0x00,0x36,0);  
 733   2           Write1B(0x02,0x37,0);   
C51 COMPILER V6.02  KEYPRC                                                                 09/10/2005 17:11:40 PAGE 13  

 734   2           da_offset = 203 ;    
 735   2        //clear page1 from 0x10 to 0x1c ram
 736   2            for(addr=0x10;addr<0x1c;addr++)
 737   2            {
 738   3      	       Write1B(0x00,addr,1);
 739   3      	  }
 740   2          }
 741   1       }
 742          
 743          
 744          /******************************/
 745             void Set_sys_mima(void)
 746             {
 747   1           Write1B(0x01,0x0a,0);
 748   1       //    Delay_2us();
 749   1           Write1B(0x02,0x0b,0);
 750   1       //    Delay_2us();
 751   1           Write1B(0x03,0x0c,0);
 752   1       //    Delay_2us();
 753   1           Write1B(0x04,0x0d,0);
 754   1      //     Delay_2us();
 755   1           return;
 756   1         }
 757          
 758          /*******************************/
 759          /*******************************/
 760          
 761          unsigned char Dp_set_precess(void)
 762          {    
 763   1          
 764   1      	if(set_pra_seg  == 0x08)
 765   1          	{
 766   2      			set_pra_seg = 0x04 ;
 767   2      		    return(2) ;
 768   2      		}
 769   1          else if(set_pra_seg == 0x04)
 770   1      	   {
 771   2      		    set_pra_seg = 0x02;
 772   2      		    return(1) ;
 773   2      	   }
 774   1      	else if(set_pra_seg == 0x02)
 775   1      	  {
 776   2      			set_pra_seg = 0x00;
 777   2      			return(0);
 778   2            }
 779   1         else
 780   1      	  {
 781   2      		   set_pra_seg = 0x08;
 782   2      		   return(3) ;
 783   2      	  }
 784   1      	 
 785   1      }
 786          
 787          
 788          /*************************/
 789          /*************************/
 790          bit Judge_setdanlan_range(void)
 791          {
 792   1      	 float  value;
 793   1      	unsigned int word ;
 794   1      	word = (user_setdata.fouseg*1000+user_setdata.thrseg*100+user_setdata.twoseg*10+user_setdata.oneseg);
 795   1      	if(pulse_dp == 3)
C51 COMPILER V6.02  KEYPRC                                                                 09/10/2005 17:11:40 PAGE 14  

 796   1      	    value = word /1000.0 ;
 797   1      	else if(pulse_dp == 2)
 798   1      	    value = word/100.0 ;
 799   1      	else if(pulse_dp == 1)
 800   1      	    value = word/10.0 ;
 801   1      	else
 802   1      	    value = word ;
 803   1      //	if((unsigned int)((lchen_data*1.5*1000/3600)/value) >= MAX_SEND_NUMBER)     //if set danlan over allow 
             -send max number
 804   1      	if((unsigned int)((lchen_data*1000/3600)/value) >= MAX_SEND_NUMBER)        
 805   1      	        return(SET_ERROR);
 806   1      	else 
 807   1      	    {
 808   2      	    	pulse_danlan = value ;
 809   2      	        return(SET_OK);
 810   2      	    }
 811   1      }
 812          
 813          
 814          /*************************************/
 815          /*************************************/
 816          unsigned char Sure_biaodin_dp(void)
 817          {
 818   1      	switch(set_pra_seg)
 819   1      	{
 820   2      		case 0x08:
 821   2      		     return(3);
 822   2      			 
 823   2      		case 0x04:
 824   2      			 return(2);
 825   2      			
 826   2      		case 0x02:
 827   2      			 return(1);
 828   2      			 
 829   2      	    default:
 830   2      		     return(0);
 831   2      			 
 832   2      	}
 833   1      }			       


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   3754    ----
   CONSTANT SIZE    =     18    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----       8
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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