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

📄 lcd_eem.lst

📁 外部接传感器完成数据采集
💻 LST
📖 第 1 页 / 共 5 页
字号:
  64      =1  #define	 KEY1_VAL	  0x7e            
  65      =1  #define	 KEY2_VAL	  0xbe
  66      =1  #define	 KEY3_VAL	  0xde
  67      =1  #define	 KEY4_VAL	  0xee
  68      =1  #define	 KEY5_VAL	  0x7d
  69      =1  #define  KEY6_VAL	  0xbd
  70      =1  #define	 KEY7_VAL	  0xdd
  71      =1  #define	 KEY8_VAL	  0xed
  72      =1  #define	 KEY9_VAL	  0x7b
  73      =1  #define	 KEY10_VAL	  0xbb
  74      =1  #define	 KEY11_VAL	  0xdb
  75      =1  #define	 KEY12_VAL	  0xeb
C51 COMPILER V5.10,  SN-  LCD_EEM                                                          01/07/08  08:57:41  PAGE 18  

  76      =1  #define	 KEY13_VAL	  0x77
  77      =1  #define	 KEY14_VAL	  0xb7
  78      =1  #define	 KEY15_VAL	  0xd7
  79      =1  #define	 KEY16_VAL	  0xe7
  80      =1  
  81      =1  
  82      =1  #define UA                1     
  83      =1  #define DM                2     
  84      =1  #define UI                3    
  85      =1  #define I                 4   
  86      =1  #define RR                5     
  87      =1  #define RNR               6   
  88      =1  #define REJ               7     
  89      =1  #define FRMR              8    
  90      =1  #define CNET              9     
  91      =1  #define DISC              10
  92      =1  
  93      =1  
  94      =1  #define OK                0
  95      =1  #define SUCCESS           1     
  96      =1  #define	XMIT_INT_ON	  (TI=1)             
  97      =1  #define PPPINITFCS16      0xffff
  98      =1  #define MAX_CONTENT       10028
  99      =1  #define	SECS_PER_MINUTE   60
 100      =1  #define	SECS_PER_HOUR	  3600
 101      =1  #define	SECS_PER_DAY	  86400
 102      =1  
 103      =1  
 104      =1  
 105      =1       
 106      =1  
  12          #include <lcd_ext.h>
   1      =1  extern unsigned char xdata xmit_numC;
   2      =1  extern unsigned char timer_cnt_b,timer_cnt_h;
   3      =1  extern unsigned int  xdata sadrS,dadrS; //源地址 目的地址
   4      =1  
   5      =1  extern struct{	
   6      =1  	unsigned char xmit_cntC;
   7      =1  	unsigned char rec_cntC;
   8      =1  	unsigned char rec_numC;
   9      =1  	unsigned char frm_headC;
  10      =1  	unsigned char rec_overC;
  11      =1  	unsigned char * xmit_bufCP;
  12      =1  	unsigned char * rec_bufCP;
  13      =1  	unsigned char rec_bufCA[256];
  14      =1  	unsigned char xmit_bufCA[256];	
  15      =1  }xdata comS; //串口数据
  16      =1  
  17      =1  extern struct{
  18      =1  	unsigned char cmd;
  19      =1  	unsigned char cmd_mode; 
  20      =1  	unsigned char cmd_flg;
  21      =1  	unsigned int  lenC;
  22      =1  	unsigned char val_cnt; 
  23      =1  	unsigned char sub_flg[5];
  24      =1  	unsigned char sub_cmd[5];
  25      =1  	unsigned char para_num[5];       
  26      =1  }xdata frmS; //实时数据
  27      =1  
  28      =1  /*extern struct{
  29      =1  	unsigned long int lenC;
  30      =1  	unsigned long int cntC;       
C51 COMPILER V5.10,  SN-  LCD_EEM                                                          01/07/08  08:57:41  PAGE 19  

  31      =1  	unsigned long int numC;  
  32      =1  	unsigned char *bufCP;
  33      =1  	unsigned char bufCA[MAX_CONTENT]; 
  34      =1  }xdata note; //10K自记数据*/
  35      =1  
  36      =1  /*extern struct{
  37      =1  	unsigned char cmd;
  38      =1  	unsigned char cmd_flg;
  39      =1  	unsigned char data_type;
  40      =1  	unsigned int  cntC;
  41      =1  	unsigned long int time_seC;
  42      =1  	unsigned long int begin_timeC;
  43      =1  	unsigned long int end_timeC;
  44      =1  	unsigned char *valCP;
  45      =1  	unsigned char valCA[4];
  46      =1  	unsigned char begin_timeCA[12];
  47      =1  	unsigned char end_timeCA[12];
  48      =1  }xdata colg; //综合数据*/ 
  49      =1  
  50      =1  extern struct{
  51      =1  	char numC;             
  52      =1  	unsigned char clmnC;
  53      =1  	unsigned char pageC;   
  54      =1  	unsigned long int totl_seC;
  55      =1  	unsigned char *valCP;
  56      =1  	unsigned char valCA[13];
  57      =1  	unsigned long int currCA[7];
  58      =1  }xdata sys_timeS; //系统时间
  59      =1  
  60      =1  extern struct{	        
  61      =1  	unsigned char clmnC;
  62      =1  	unsigned char cntC;
  63      =1  	unsigned char numC;
  64      =1  	unsigned int  adrC;
  65      =1  	unsigned char *adrCP; 
  66      =1  	unsigned char adrCA[5];
  67      =1  }xdata stat; //站号
  68      =1  
  69      =1  extern struct{
  70      =1  	unsigned char  set_cnt; 
  71      =1  	char  numC;
  72      =1  	unsigned char  clmnC;
  73      =1  	unsigned char  pageC;
  74      =1  	unsigned char  distinction; 
  75      =1  	unsigned char  isonerain; 
  76      =1  	unsigned int   rainCA_cnt;
  77      =1  	unsigned char  set_buf[14];
  78      =1  	unsigned int   parameter[3][4]; 
  79      =1  	float          max_rain[3];
  80      =1  	float          rainCA[289]; 
  81      =1  }xdata alarm; //报警                
  13          
  14          //将站号写入EEPROM
  15          void wri_stat_eem(void)
  16          {
  17   1      	unsigned char xdata loopC;
  18   1      	unsigned char xdata *vCP;
  19   1      	unsigned char xdata * eem_adrCP;
  20   1      
  21   1      	if(chk_event_flagI(SET_SADR_LIVE)){
  22   2      		eem_adrCP=(unsigned char xdata *)0x00;
  23   2      		vCP=(unsigned char xdata *)(&stat.adrC);
C51 COMPILER V5.10,  SN-  LCD_EEM                                                          01/07/08  08:57:41  PAGE 20  

  24   2      	}
  25   1      	else if(chk_event_flagI(SET_DADR_LIVE)){
  26   2      		eem_adrCP=(unsigned char xdata *)0x02;
  27   2      		vCP=(unsigned char xdata *)(&stat.adrC);
  28   2      	}	
  29   1      	for(loopC=0;loopC<2;loopC++){
  30   2      		wri_eem(*vCP++,eem_adrCP++);
  31   2      	}   		
  32   1      }
  33          
  34          //从EEPROM中读出站号
  35          void read_stat_eem(void)
  36          {
  37   1      	unsigned char xdata * eem_adrCP;
  38   1      
  39   1      	eem_adrCP=(unsigned char xdata *)0x00;
  40   1      	sadrS=(unsigned int)(read_eemC(eem_adrCP)<<8)
  41   1      		+(unsigned int)(read_eemC(eem_adrCP+1));
  42   1      	eem_adrCP=(unsigned char xdata *)0x02;
  43   1      	dadrS=(unsigned int)(read_eemC(eem_adrCP)<<8)
  44   1      		+(unsigned int)(read_eemC(eem_adrCP+1));       
  45   1      }
  46          
  47          //将报警参数写入EEPROM 
  48          void wri_alarm_eem(void)
  49          	{
  50   1      	unsigned char xdata loopC;
  51   1      	unsigned char xdata * vCP;
  52   1      	unsigned char xdata * eem_adrCP;
  53   1      
  54   1      
  55   1      	if(alarm.set_cnt==1)      eem_adrCP=(unsigned char xdata *)0x04;
  56   1      	else if(alarm.set_cnt==2) eem_adrCP=(unsigned char xdata *)0x0C;
  57   1      	else if(alarm.set_cnt==3) eem_adrCP=(unsigned char xdata *)0x14;
  58   1      	vCP=(unsigned char xdata *)(&alarm.parameter[alarm.set_cnt-1][0]); 
  59   1      	for(loopC=0;loopC<8;loopC++){
  60   2      		wri_eem(*vCP++,eem_adrCP++); 
  61   2      	}    
  62   1      }
  63          
  64          //从EEPROM中读出报警参数 
  65          void read_alarm_eem(void)
  66          {
  67   1      	unsigned char xdata lenC;
  68   1      	unsigned char xdata loopC;
  69   1      	unsigned char xdata * eem_adrCP;
  70   1              
  71   1      	eem_adrCP=(unsigned char xdata *)0x04;
  72   1      	for(lenC=0;lenC<3;lenC++){
  73   2      		for(loopC=0;loopC<4;loopC++){
  74   3      			alarm.parameter[lenC][loopC]=(unsigned int)(read_eemC(eem_adrCP++)<<8)
  75   3      				+(unsigned int)(read_eemC(eem_adrCP++));
  76   3      		}
  77   2      	}
  78   1      }
  79          unsigned char read_eemC(unsigned char xdata *eem_adrCP)
  80          {
  81   1      	unsigned char back_eaC;
  82   1      
  83   1      	back_eaC=(unsigned char)EA;
  84   1      	EA = 0;
  85   1      	WMCON|=EEMEN_;		//enable eeprom access
C51 COMPILER V5.10,  SN-  LCD_EEM                                                          01/07/08  08:57:41  PAGE 21  

  86   1      	ACC=*eem_adrCP;
  87   1      	WMCON&=(~EEMEN_);	//disable eeprom access
  88   1      	return(ACC);
  89   1      	EA=(bit)back_eaC;
  90   1      }
  91          void wri_eem(unsigned char datC,unsigned char xdata *eem_adrCP)
  92          {
  93   1      	unsigned char back_eaC;
  94   1      
  95   1      	back_eaC=(unsigned char)EA;
  96   1      	EA = 0;
  97   1      	WMCON |= EEMEN_;		//enable eeprom access
  98   1      	WMCON |= EEMWE_;
  99   1      	*eem_adrCP = datC;
 100   1      	while((WMCON&WDTRST_)){}
 101   1      	while(!(WMCON&WDTRST_)){}
 102   1      	WMCON &= (~EEMWE_);
 103   1      	WMCON &= (~EEMEN_);		//disable eeprom access
 104   1      	eem_adrCP++;
 105   1      	EA=(bit)back_eaC;
 106   1      }
C51 COMPILER V5.10,  SN-  LCD_EEM                                                          01/07/08  08:57:41  PAGE 22  

ASSEMBLY LISTING OF GENERATED OBJECT CODE


             ; FUNCTION wri_stat_eem (BEGIN)
                                           ; SOURCE LINE # 15
                                           ; SOURCE LINE # 16
                                           ; SOURCE LINE # 21
0000 7F15          MOV     R7,#015H
0002 7E00          MOV     R6,#00H
0004 120000  E     LCALL   _chk_event_flagI
0007 EC            MOV     A,R4
0008 4D            ORL     A,R5
0009 4E            ORL     A,R6
000A 4F            ORL     A,R7
000B 6013          JZ      ?C0001
                                           ; SOURCE LINE # 22
000D E4            CLR     A
000E 900000  R     MOV     DPTR,#eem_adrCP
0011 F0            MOVX    @DPTR,A
0012 A3            INC     DPTR
0013 F0            MOVX    @DPTR,A
                                           ; SOURCE LINE # 23
0014 900000  R     MOV     DPTR,#vCP
0017 7400    E     MOV     A,#HIGH stat+03H
0019 F0            MOVX    @DPTR,A
001A A3            INC     DPTR
001B 7400    E     MOV     A,#LOW stat+03H
001D F0            MOVX    @DPTR,A
                                           ; SOURCE LINE # 24
001E 8020          SJMP    ?C0002
0020         ?C0001:
                                           ; SOURCE LINE # 25
0020 7F16          MOV     R7,#016H
0022 7E00          MOV     R6,#00H
0024 120000  E     LCALL   _chk_event_flagI
0027 EC            MOV     A,R4
0028 4D            ORL     A,R5
0029 4E            ORL     A,R6
002A 4F            

⌨️ 快捷键说明

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