sub.lst

来自「一个基于C51开发的计价秤」· LST 代码 · 共 1,575 行 · 第 1/5 页

LST
1,575
字号
  72      =1  #define TRUE 1
  73      =1  #define PAND 0
  74      =1  #define FOOKTIN 1
  75      =1  #define LCD_MODE 0x08           //display(1:4,1/3)
  76      =1  #define LCD_GLITTER 0x00        //off
C51 COMPILER V7.50   SUB                                                                   05/27/2006 14:00:58 PAGE 6   

  77      =1  #define MAX_RECORD 0xbb8        //3000
  78      =1  #define PLU_LEN 22
  79      =1  #define TABLE_LEN 64
  80      =1  #define RECORD_LEN 15
  81      =1  /**********mode**********/
  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   SUB                                                                   05/27/2006 14:00:58 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   SUB                                                                   05/27/2006 14:00:58 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 "KeyBoard.h"
   1      =1  //Function key define
   2      =1  #define PLU1 0x01
   3      =1  #define PLU2 0x08
   4      =1  #define PLU3 0x0f
   5      =1  #define PLU4 0x16
   6      =1  #define PLU5 0x1d
   7      =1  #define PLU6 0x24
   8      =1  #define PLU7 0x2b
   9      =1  #define PLU8 0x32 
  10      =1  #define PLU9 0x02
  11      =1  #define PLU10 0x09
  12      =1  #define PLU11 0x10
  13      =1  #define PLU12 0x17
  14      =1  #define PLU13 0x1e
  15      =1  #define PLU14 0x25
  16      =1  #define PLU15 0x2c
  17      =1  #define PLU16 0x33
  18      =1  #define PLU17 0x03
  19      =1  #define PLU18 0x0a
  20      =1  #define PLU19 0x11
  21      =1  #define PLU20 0x18
  22      =1  #define PLU21 0x1f
  23      =1  #define PLU22 0x26
  24      =1  #define PLU23 0x2d
  25      =1  #define PLU24 0x34
  26      =1  #define PLU25 0x04
  27      =1  #define PLU26 0x0b
  28      =1  #define PLU27 0x12
  29      =1  #define PLU28 0x19
  30      =1  #define PLU29 0x20
  31      =1  #define PLU30 0x27
  32      =1  #define K_ADD 0x2e 
  33      =1  #define K_SUB 0x35  
  34      =1  #define K_MUL 0x05 
  35      =1  #define K_DIV 0x0c
  36      =1  #define K_00 0x13 
  37      =1  #define K_0 0x1a
  38      =1  #define K_1 0x21
  39      =1  #define K_2 0x28
  40      =1  #define K_3 0x2f
  41      =1  #define K_4 0x36
  42      =1  #define K_5 0x06
  43      =1  #define K_6 0x0d
  44      =1  #define K_7 0x14
  45      =1  #define K_8 0x1b
  46      =1  #define K_9 0x22
  47      =1  #define K_ENTER 0x29
  48      =1  #define K_ZERO 0x30
  49      =1  #define K_TARE 0x37
  50      =1  #define K_CLEAR 0x07
  51      =1  #define K_PRINT 0x0e
  52      =1  #define K_TOTAL 0x15
  53      =1  #define K_PAYBACK 0x1c
  54      =1  #define K_CLOCK 0x41
C51 COMPILER V7.50   SUB                                                                   05/27/2006 14:00:58 PAGE 9   

  55      =1  #define K_MEMORY 0x42 
  56      =1  #define K_ON_OFF 0x43 
  57      =1  //Shift key define
  58      =1  #define K_SHIFT 1
  59      =1  #define K_MEM 2
  60      =1  #define K_MODE 3 
   9          
  10          extern BYTE timer1_count;
  11          extern INT8 Timeout1,Timeout2;
  12          extern BOOL Timeout1_enable,Timeout2_enable;
  13          extern BYTE report_type;
  14          extern WORD Record_Counts;
  15          extern WORD PLU_no;
  16          extern WORD Weight;
  17          extern WORD Quantity;
  18          extern DWORD Unit_Price;
  19          extern DWORD Total_Price;
  20          extern BYTE lastop;
  21          extern FLOAT Last_value;
  22          extern FLOAT Current_value;
  23          extern UNION_LONG temp_LONG;
  24          extern BYTE PLU_buf[PLU_LEN];
  25          extern BYTE Record_buf[RECORD_LEN];
  26          
  27          extern VOID PLU_Load(WORD temp);
  28          extern VOID Record_Load(WORD temp);
  29          extern VOID Set_Weight_Display(WORD temp);
  30          extern VOID Set_Quantity_Display(WORD temp);
  31          extern VOID Set_Unit_Price_Display(DWORD temp);
  32          extern VOID Set_Total_Price_Display(DWORD temp);
  33          extern VOID Set_Calcul_Result_Display(BYTE *p);
  34          extern VOID Set_Lcd3_Buf(CHAR c,BYTE pos,BYTE cnt);
  35          
  36          VOID Wait_n_ms(BYTE n)
  37          {
  38   1              Timeout1=n;
  39   1              Timeout1_enable=TRUE;
  40   1              timer1_count=0;
  41   1              while(Timeout1>0);
  42   1              Timeout1_enable=FALSE;
  43   1                      
  44   1      }
  45          
  46          VOID Wait_n_s(BYTE n)
  47          {
  48   1              Timeout2=n;
  49   1              Timeout2_enable=TRUE;
  50   1              timer1_count=0;
  51   1              while(Timeout2>0);
  52   1              Timeout2_enable=FALSE;
  53   1                      
  54   1      }
  55          
  56          VOID Float_Format(FLOAT f)
  57          {
  58   1              INT8 data p=0;
  59   1              BYTE dbuf[9];
  60   1              BYTE digit;
  61   1              FLOAT divisor=1000000; 
  62   1              BOOL pad=FALSE;
  63   1              if(f>=0)
  64   1                      dbuf[p++]=' ';
C51 COMPILER V7.50   SUB                                                                   05/27/2006 14:00:58 PAGE 10  

  65   1              else
  66   1              {
  67   2                      dbuf[p++]='-';
  68   2                      f=-f;
  69   2              }
  70   1              if(f>=divisor)
  71   1                      dbuf[p++]='E';
  72   1              else
  73   1                      while(p<9&&(divisor>1||f>=0.000001))
  74   1                      {
  75   2                              divisor=divisor/10;
  76   2                              digit=(int)(f/divisor);
  77   2                              if(divisor<1&&divisor>0.01)
  78   2                                      dbuf[p++]='.';
  79   2                              if(digit!=0||divisor<10)
  80   2                              {
  81   3                                      dbuf[p++]=digit+'0';
  82   3                                      pad=TRUE;
  83   3                              }
  84   2                              else if(pad)
  85   2                                      dbuf[p++]='0';
  86   2                              f-=digit*divisor;
  87   2                      }
  88   1              dbuf[p]=0;
  89   1              Set_Calcul_Result_Display(dbuf);
  90   1      }
  91          
  92          VOID Calculator_Operate(BYTE token)
  93          {
  94   1              BOOL result=TRUE;
  95   1              switch(token)
  96   1              {
  97   2              case K_ADD:Last_value+=Current_value;break;
  98   2              case K_SUB:Last_value-=Current_value;break;
  99   2              case K_MUL:Last_value*=Current_value;break;
 100   2              case K_DIV:
 101   2                      if(Current_value!=0)
 102   2                      {
 103   3                              Last_value/=Current_value;
 104   3                              result=TRUE;
 105   3                      }
 106   2                      else
 107   2                              result=FALSE;
 108   2                      break;
 109   2              }
 110   1              if(result)
 111   1              {
 112   2                      Last_value=Last_value+0.000001;
 113   2                      Float_Format(Last_value);
 114   2              }
 115   1              else
 116   1              {

⌨️ 快捷键说明

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