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

📄 adc.lst

📁 一个基于C51开发的计价秤
💻 LST
📖 第 1 页 / 共 3 页
字号:
  42      =1  } UNION_LONG;
  43      =1  
  44      =1  typedef union UNION_FLOAT {     // byte-addressable LONG
  45      =1    FLOAT F;
  46      =1    BYTE B[4];
  47      =1  } UNION_FLOAT;
  48      =1  
  49      =1  typedef union UNION_INT {               // byte-addressable INT
  50      =1    WORD I;
C51 COMPILER V7.50   ADC                                                                   05/27/2006 14:00:57 PAGE 6   

  51      =1    BYTE B[2];
  52      =1  } UNION_INT;
  53      =1  
  54      =1  /*****11.0592MHZ*****/
  55      =1  #define V_TMOD 0x11
  56      =1  #define V_TH0 0x4c      //50ms
  57      =1  #define V_TL0 0x0f
  58      =1  //#define V_TH1 0xb8//20ms
  59      =1  //#define V_TL1 0x00
  60      =1  #define V_TH1 0xdc      //10ms
  61      =1  #define V_TL1 0x00
  62      =1  #define V_TH2 0xff  //9600 bps 
  63      =1  #define V_TL2 0xdb 
  64      =1  //#define SEC 50
  65      =1  #define SEC 100
  66      =1  #define N 1 
  67      =1  
  68      =1  #define LIGHT P3_7
  69      =1  #define AC_DECT P1_2
  70      =1  #define BAT_DECT P3_3
  71      =1  #define FALSE 0
  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
  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
C51 COMPILER V7.50   ADC                                                                   05/27/2006 14:00:57 PAGE 7   

 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  
 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
C51 COMPILER V7.50   ADC                                                                   05/27/2006 14:00:57 PAGE 8   

 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
 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
   9          
  10          #define RDYB P1_6
  11          #define CS5532_CS P3_4
  12          
  13          extern UNION_LONG temp_LONG;
  14          
  15          VOID SPI_Init()
  16          {
  17   1              P1=0xf0;
  18   1              SPCR=0x50;
  19   1      }
  20          
  21          BYTE SPI_RW(BYTE Data)
  22          {
  23   1              BYTE temp;
  24   1              SPDR=Data;
  25   1              do
  26   1              {
  27   2                      temp=SPSR&0x80;
  28   2              }while(temp!=0x80);
  29   1              SPSR&=0x7f;
  30   1              return SPDR;
  31   1      }
  32          /*
  33          VOID Read_Register(BYTE command)
  34          {
  35                  BYTE data j;
  36                  CS5532_CS=0;
  37                  _nop_();
C51 COMPILER V7.50   ADC                                                                   05/27/2006 14:00:57 PAGE 9   

  38                  _nop_();
  39                  SPI_RW(command);
  40                  for(j=0;j<4;j++)
  41                          RxdByte[j]=SPI_RW(0xfe);
  42                  _nop_();
  43                  _nop_();
  44                  CS5532_CS=1;
  45                  _nop_();
  46                  _nop_();                
  47          }
  48          */
  49          VOID Write_Register(BYTE command,BYTE top,BYTE high,BYTE mid,BYTE low)
  50          {
  51   1              CS5532_CS=0;
  52   1              _nop_();
  53   1              _nop_();
  54   1              SPI_RW(command);
  55   1              SPI_RW(top);
  56   1              SPI_RW(high);
  57   1              SPI_RW(mid);
  58   1              SPI_RW(low);
  59   1              _nop_();
  60   1              _nop_();
  61   1              CS5532_CS=1;
  62   1              _nop_();
  63   1              _nop_();
  64   1      }
  65          
  66          VOID Start_Continuous_Convert()
  67          {
  68   1              CS5532_CS=0;
  69   1              _nop_();
  70   1              _nop_();
  71   1              SPI_RW(0xc0);
  72   1      }
  73          /*
  74          VOID Single_Convert()
  75          {
  76                  BYTE data j;
  77                  CS5532_CS=0;            
  78                  _nop_();
  79                  _nop_();
  80                  SPI_RW(0x80);
  81                  while(RDYB);
  82                  SPI_RW(0x00);
  83                  for(j=0;j<3;j++)
  84                          RxdByte[j]=SPI_RW(0xfe);
  85                   SPI_RW(0xfe);
  86                  _nop_();
  87                  _nop_();
  88                  CS5532_CS=1;
  89                  _nop_();
  90                  _nop_();        
  91          }
  92          */
  93          VOID CS5532_Init()
  94          {
  95   1              SPI_Init();
  96   1              Write_Register(0xff,0xff,0xff,0xff,0xff);
  97   1              Write_Register(0xff,0xff,0xff,0xff,0xff);
  98   1              Write_Register(0xff,0xff,0xff,0xff,0xff);
  99   1              Write_Register(0xff,0xff,0xff,0xff,0xfe);
C51 COMPILER V7.50   ADC                                                                   05/27/2006 14:00:57 PAGE 10  

 100   1              Write_Register(0x03,0x20,0x00,0x00,0x00);
 101   1              Write_Register(0x03,0x00,0x00,0x00,0x00);
 102   1              Write_Register(0x05,0x32,0x40,0x32,0x40);
 103   1              Write_Register(0x02,2,105,0,0);
 104   1              Start_Continuous_Convert();
 105   1      }
 106          
 107          DWORD Get_AD_Convert_Data()
 108          {
 109   1              while(RDYB);
 110   1              SPI_RW(0x00);
 111   1              temp_LONG.B[0]=0x00;
 112   1              temp_LONG.B[1]=SPI_RW(0x00);
 113   1              temp_LONG.B[2]=SPI_RW(0x00);
 114   1              temp_LONG.B[3]=SPI_RW(0x00);
 115   1              SPI_RW(0x00);
 116   1              return(temp_LONG.L);            
 117   1      }
C51 COMPILER V7.50   ADC                                                                   05/27/2006 14:00:57 PAGE 11  

ASSEMBLY LISTING OF GENERATED OBJECT CODE


             ; FUNCTION SPI_Init (BEGIN)
                                           ; SOURCE LINE # 15
                                           ; SOURCE LINE # 16
                                           ; SOURCE LINE # 17
0000 7590F0            MOV     P1,#0F0H
                                           ; SOURCE LINE # 18
0003 75D550            MOV     SPCR,#050H
                                           ; SOURCE LINE # 19
0006 22                RET     
             ; FUNCTION SPI_Init (END)

             ; FUNCTION L?0014 (BEGIN)
0000 FF                MOV     R7,A
0001 120000      R     LCALL   _SPI_RW
0004 A3                INC     DPTR
0005 EF                MOV     A,R7
0006 F0                MOVX    @DPTR,A
0007 E4                CLR     A
0008 FF                MOV     R7,A
             ; FUNCTION _SPI_RW (BEGIN)
                                           ; SOURCE LINE # 21

⌨️ 快捷键说明

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