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

📄 eeprom.lst

📁 一个基于C51开发的计价秤
💻 LST
📖 第 1 页 / 共 4 页
字号:
  82      =1  #define Input_code_mode 1
  83      =1  #define Calibration_mode 2
  84      =1  #define Initialization_mode 3
  85      =1  #define Sales_mode 4
  86      =1  #define Total_mode 5
  87      =1  #define Payback_mode 6
  88      =1  #define PLU_Setup_mode 7
  89      =1  #define Time_Setup_mode 8
  90      =1  #define Beep_and_Light_Setup_mode 9
  91      =1  #define Calculator_mode 10
  92      =1  #define Reports_mode 11
  93      =1  #define Download_mode 12
  94      =1  #define Power_down_mode 13
  95      =1  #define Print_Cancel_mode 14
  96      =1  /**********state**********/
  97      =1  #define WEIGHING 1
  98      =1  #define NON_WEIGHING 2
  99      =1  #define PAYBACK 3
 100      =1  
 101      =1  #define PLU_EDIT 1
 102      =1  #define PLU_SAVE 2
 103      =1  
 104      =1  #define SET_BEEP 1
 105      =1  #define SET_LIGHT 2
 106      =1  
 107      =1  #define MENU_1 1
 108      =1  #define MENU_1_1 11
 109      =1  #define MENU_1_2 12
 110      =1  #define MENU_1_2_1 121
 111      =1  #define MENU_1_2_2 122
 112      =1  #define MENU_1_2_2_0 1221
 113      =1  #define MENU_1_3 13
 114      =1  #define MENU_1_4 14
 115      =1  
 116      =1  #define MENU_2 2
 117      =1  #define MENU_2_1 21
 118      =1  #define MENU_2_2 22
 119      =1  #define MENU_2_2_1 221
 120      =1  #define MENU_2_2_2 222
 121      =1  #define MENU_2_2_2_0 2221
 122      =1  #define MENU_2_3 23
 123      =1  
 124      =1  #define MENU_3 3
 125      =1  #define MENU_3_1 31
 126      =1  #define MENU_3_2 32
 127      =1  #define MENU_3_2_1 321
 128      =1  #define MENU_3_2_2 322
 129      =1  #define MENU_3_2_2_0 3221
 130      =1  #define MENU_3_3 33
 131      =1  
 132      =1  #define EDIT_YEAR 1
 133      =1  #define EDIT_MONTH 2
 134      =1  #define EDIT_DAY 3
 135      =1  #define EDIT_HOUR 4
 136      =1  #define EDIT_MINUTE 5
 137      =1  #define EDIT_SECOND 6
 138      =1  
C51 COMPILER V7.50   EEPROM                                                                05/27/2006 14:01:08 PAGE 7   

 139      =1  /**********sales type**********/
 140      =1  #define PW 1
 141      =1  #define PN 2
 142      =1  #define MW 3
 143      =1  #define MN 4
 144      =1  #define DELE 0xaa
 145      =1  
 146      =1  /**********print type***********/
 147      =1  #define PW 1
 148      =1  #define PN 2
 149      =1  #define MW 3
 150      =1  #define MN 4
 151      =1  #define TOTAL 5
 152      =1  
 153      =1  /**********report type**********/
 154      =1  #define TOTAL_ALL_MONEY 1
 155      =1  #define TOTAL_ALL_PLU_MONEY 2
 156      =1  #define TOTAL_SEL_PLU_MONEY 3
 157      =1  #define TOTAL_ALL_MANUL_MONEY 4
 158      =1  #define TOTAL_ALL_NUMBER_MONEY 5
 159      =1  #define TOTAL_ALL_WEIGHT 6
 160      =1  #define TOTAL_ALL_PLU_WEIGHT 7
 161      =1  #define TOTAL_SEL_PLU_WEIGHT 8
 162      =1  #define TOTAL_ALL_MANUL_WEIGHT 9
 163      =1  #define TOTAL_ALL_NUMBER 10
 164      =1  #define TOTAL_ALL_PLU_NUMBER 11
 165      =1  #define TOTAL_SEL_PLU_NUMBER 12
 166      =1  #define TOTAL_ALL_MANUL_NUMBER 13
 167      =1  
 168      =1  /********operate status********/
 169      =1  #define ADD 1
 170      =1  #define SUM 2
 171      =1  #define PAY 3
 172      =1  
 173      =1  /********eeprom address********/
 174      =1  #define EEPROM_ID 0
 175      =1  #define Option_Param_address 2
 176      =1  #define Graduation_Grade_address 3
 177      =1  #define Graduation1_address 5
 178      =1  #define Graduation2_address 6
 179      =1  #define Max_Capacity_address 7
 180      =1  #define Initial_Zero_Setting_limit_address 9
 181      =1  #define Zero_Setting_and_Zero_Tracking_limit_address 10
 182      =1  #define Zero_Stable_count_address 11
 183      =1  #define Zero_Stable_times_address 13
 184      =1  #define Weight_Stable_count_address 14
 185      =1  #define Weight_Stable_times_address 16
 186      =1  #define Err1_Timeout_address 17
 187      =1  #define Local_Height_address 18
 188      =1  #define Local_Latitude_address 20
 189      =1  #define Destination_Height_address 21
 190      =1  #define Destination_Latitude_address 23
 191      =1  #define Soft_Ver_address 24
 192      =1  #define Cal_counts_address 26
 193      =1  #define Password_address 27
 194      =1  #define Cal_Zero_limit_count_address 30
 195      =1  #define Cal_One_count_address 36 
 196      =1  #define Cal_Zero_count_address 40
 197      =1  #define Cal_Weight_count_address 44 
 198      =1  #define Logo_address 48            
 199      =1  #define PLU_DATA_ADR 0x40
 200      =1  #define RECORD_DATA_ADR 0x2600
C51 COMPILER V7.50   EEPROM                                                                05/27/2006 14:01:08 PAGE 8   

 201      =1  
 202      =1  /********report save address********/
 203      =1  #define PLU_no_Save_address 1
 204      =1  #define Unit_Price_Save_address 3
 205      =1  #define Weight_Save_address 6
 206      =1  #define Quantity_Save_address 6
 207      =1  #define Total_Price_Save_address 9
   8          #include "IIC.h"
   1      =1  //IIC.h
   2      =1  extern BOOL ISendByte(BYTE sla,BYTE c);
   3      =1  extern BOOL ISendStr(BYTE sla,BYTE suba,BYTE *s,BYTE no);
   4      =1  extern BOOL IRcvByte(BYTE sla,BYTE *c);
   5      =1  extern BOOL IRcvStr(BYTE sla,BYTE suba,BYTE *s,BYTE no);
   6      =1  extern BOOL Write_eeprom(BYTE sla,WORD adr,BYTE *s,BYTE no);
   7      =1  extern BOOL Read_eeprom(BYTE sla,WORD adr,BYTE *s,BYTE no);
   9          #define AT24C512 0xa0
  10          #define EXTREN_AT24C512 0xa6
  11          extern BYTE sales_type;
  12          extern BYTE lcd1_buf[5];
  13          extern BYTE lcd2_buf[7];
  14          extern BYTE PLU_buf[PLU_LEN];
  15          extern BYTE Record_buf[RECORD_LEN];
  16          extern UNION_FLOAT temp_FLOAT;
  17          
  18          BOOL Read_Option_Table(BYTE *pt)
  19          {
  20   1              if(Read_eeprom(AT24C512,0,pt,TABLE_LEN))
  21   1                      return TRUE;
  22   1              else
  23   1                      return FALSE;   
  24   1      }
  25          
  26          BOOL Read_extern_eeprom(BYTE *pt)
  27          {
  28   1              if(Read_eeprom(EXTREN_AT24C512,0,pt,TABLE_LEN))
  29   1                      return TRUE;
  30   1              else
  31   1                      return FALSE;   
  32   1      }
  33          
  34          BOOL Save_Option_Table(BYTE *pt)
  35          {
  36   1              if(Write_eeprom(AT24C512,0,pt,TABLE_LEN))
  37   1                      return TRUE;
  38   1              else
  39   1                      return FALSE;   
  40   1      }
  41          
  42          BOOL Read_Cal_Password(BYTE *pt)
  43          {
  44   1              if(Read_eeprom(AT24C512,Password_address,pt,3))
  45   1                      return TRUE;
  46   1              else
  47   1                      return FALSE;
  48   1      }
  49          
  50          VOID Read_Option_Param(BYTE *pt)
  51          {
  52   1              Read_eeprom(AT24C512,Option_Param_address,pt,1);
  53   1      }
  54          
  55          VOID Read_Cal_counts(BYTE *pt)
C51 COMPILER V7.50   EEPROM                                                                05/27/2006 14:01:08 PAGE 9   

  56          {
  57   1              Read_eeprom(AT24C512,Cal_counts_address,pt,1);  
  58   1      }
  59          
  60          VOID Read_Cal_Zero_limit(BYTE *pt)
  61          {
  62   1              Read_eeprom(AT24C512,Cal_Zero_limit_count_address,pt,6);
  63   1      }
  64          
  65          VOID Save_Option_Param(BYTE *pt)
  66          {
  67   1              Write_eeprom(AT24C512,Option_Param_address,pt,1);
  68   1      }
  69          
  70          VOID Save_Cal_counts(BYTE *pt)
  71          {
  72   1              Write_eeprom(AT24C512,Cal_counts_address,pt,1); 
  73   1      }
  74          
  75          VOID Save_Cal_One_count(FLOAT temp)
  76          {
  77   1              BYTE Option_Table[4]; 
  78   1              temp_FLOAT.F=temp;
  79   1              Option_Table[0]=temp_FLOAT.B[0];
  80   1              Option_Table[1]=temp_FLOAT.B[1];
  81   1              Option_Table[2]=temp_FLOAT.B[2];
  82   1              Option_Table[3]=temp_FLOAT.B[3];
  83   1              Write_eeprom(AT24C512,Cal_One_count_address,Option_Table,4);    
  84   1      }
  85          
  86          VOID Save_Cal_Zero_count(FLOAT temp)
  87          {
  88   1              BYTE Option_Table[4];
  89   1              temp_FLOAT.F=temp;
  90   1              Option_Table[0]=temp_FLOAT.B[0];
  91   1              Option_Table[1]=temp_FLOAT.B[1];
  92   1              Option_Table[2]=temp_FLOAT.B[2];
  93   1              Option_Table[3]=temp_FLOAT.B[3];
  94   1              Write_eeprom(AT24C512,Cal_Zero_count_address,Option_Table,4);   
  95   1      }
  96           
  97          VOID PLU_Load(WORD temp)
  98          {
  99   1              WORD adr;
 100   1              adr=(temp-1)*32+PLU_DATA_ADR;
 101   1              Read_eeprom(AT24C512,adr+18,PLU_buf,3); 
 102   1      }
 103          
 104          VOID PLU_Save(WORD temp)
 105          {
 106   1              WORD adr;
 107   1              adr=(temp-1)*32+PLU_DATA_ADR;
 108   1              Write_eeprom(AT24C512,adr,PLU_buf,PLU_LEN-1);   
 109   1      }
 110          
 111          VOID Save_PLU_Setup_form_Disp_Buf(WORD temp)
 112          {
 113   1              INT8 data i;
 114   1              WORD adr;
 115   1              adr=(temp-1)*32+PLU_DATA_ADR;
 116   1              PLU_buf[0]=lcd1_buf[2]-'0';
 117   1              PLU_buf[1]=lcd1_buf[1]-'0';
C51 COMPILER V7.50   EEPROM                                                                05/27/2006 14:01:08 PAGE 10  

 118   1              PLU_buf[1]=PLU_buf[1]<<4;
 119   1              PLU_buf[1]+=lcd1_buf[0]-'0';
 120   1              for(i=2;i<18;i++)
 121   1                      PLU_buf[i]=0xff;        
 122   1              if(lcd2_buf[5]!=0)
 123   1                      PLU_buf[18]=lcd2_buf[5]-'0';
 124   1              else
 125   1                      PLU_buf[18]=lcd2_buf[5];
 126   1              PLU_buf[18]=PLU_buf[18]<<4;
 127   1              if(lcd2_buf[4]!=0)
 128   1                      PLU_buf[18]+=lcd2_buf[4]-'0';
 129   1              else
 130   1                      PLU_buf[18]+=lcd2_buf[4];
 131   1              if(lcd2_buf[3]!=0)
 132   1                      PLU_buf[19]=lcd2_buf[3]-'0';
 133   1              else
 134   1                      PLU_buf[19]=lcd2_buf[3];
 135   1              PLU_buf[19]=PLU_buf[19]<<4;
 136   1              PLU_buf[19]+=lcd2_buf[2]-'0';
 137   1              PLU_buf[20]=lcd2_buf[1]-'0';
 138   1              PLU_buf[20]=PLU_buf[20]<<4;
 139   1              PLU_buf[20]+=lcd2_buf[0]-'0';
 140   1              Write_eeprom(AT24C512,adr,PLU_buf,PLU_LEN-1);           
 141   1      }
 142          
 143          VOID Record_Save(WORD temp)
 144          {
 145   1              WORD adr;
 146   1              adr=(temp-1)*16+RECORD_DATA_ADR;
 147   1              Record_buf[0]=sales_type;
 148   1              Write_eeprom(AT24C512,adr,Record_buf,RECORD_LEN-1);
 149   1      }
 150          
 151          VOID Record_Load(WORD temp)
 152          {
 153   1              WORD adr;
 154   1              adr=(temp-1)*16+RECORD_DATA_ADR;
 155   1              Read_eeprom(AT24C512,adr,Record_buf,RECORD_LEN-1);
 156   1      }
C51 COMPILER V7.50   EEPROM                                                                05/27/2006 14:01:08 PAGE 11  

ASSEMBLY LISTING OF GENERATED OBJECT CODE


             ; FUNCTION Com0028 (BEGIN)
0000         L?0041:
0000 900000      E     MOV     DPTR,#?_Write_eeprom?BYTE+06H
0003 7415              MOV     A,#015H
0005         L?0042:
0005 7B01              MOV     R3,#01H
0007 7A00        E     MOV     R2,#HIGH PLU_buf
0009 7900        E     MOV     R1,#LOW PLU_buf
000B F0                MOVX    @DPTR,A
000C 22                RET     
000D         L?0043:
000D EF                MOV     A,R7
000E C4                SWAP    A
000F F8                MOV     R0,A
0010 540F              ANL     A,#0FH
0012 C8                XCH     A,R0
0013 68                XRL     A,R0
0014 FF                MOV     R7,A
0015 EE                MOV     A,R6
0016 C4                SWAP    A
0017 54F0              ANL     A,#0F0H
0019 48                ORL     A,R0
001A FE                MOV     R6,A
001B EF                MOV     A,R7
001C 24F0              ADD     A,#0F0H
001E FF                MOV     R7,A
001F EE                MOV     A,R6
0020 3425              ADDC    A,#025H
0022 FE                MOV     R6,A
0023 22                RET     
0024         L?0044:
0024 AD07              MOV     R5,AR7

⌨️ 快捷键说明

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