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

📄 main.lst

📁 一些简单的c51程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.09   MAIN                                                                  06/18/2004 09:19:30 PAGE 1   


C51 COMPILER V7.09, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.c OPTIMIZE(9,SPEED) BROWSE DEBUG OBJECTEXTEND CODE LISTINCLUDE SYMBOLS

line level    source

   1          /*-----------------------------------------------------------------------------
   2          -----------------------------------------------------------------------------*/
   3          #include <ADUC812.H>
   1      =1  /*REV.  2.0    11th February 2002
   2      =1    ADuC812  Apps, Analog Devices Inc.*/
   3      =1  
   4      =1  /*  BYTE Register  */
   5      =1  sfr   P0        = 0x80;
   6      =1  sfr   SP        = 0x81;
   7      =1  sfr   DPL       = 0x82;
   8      =1  sfr   DPH       = 0x83;
   9      =1  sfr   DPP       = 0x84;
  10      =1  sfr   PCON      = 0x87;
  11      =1  sfr   TCON      = 0x88;
  12      =1  sfr   TMOD      = 0x89;
  13      =1  sfr   TL0       = 0x8A;
  14      =1  sfr   TL1       = 0x8B;
  15      =1  sfr   TH0       = 0x8C;
  16      =1  sfr   TH1       = 0x8D;
  17      =1  sfr   P1        = 0x90;
  18      =1  sfr   SCON      = 0x98;
  19      =1  sfr   SBUF      = 0x99;
  20      =1  sfr   I2CDAT    = 0x9A;
  21      =1  sfr   I2CADD    = 0x9B;
  22      =1  sfr   P2        = 0xA0;
  23      =1  sfr   IE        = 0xA8;
  24      =1  sfr   IE2       = 0xA9;
  25      =1  sfr   P3        = 0xB0;
  26      =1  sfr   IP        = 0xB8;
  27      =1  sfr   ECON      = 0xB9;
  28      =1  sfr   ETIM1     = 0xBA; //AR
  29      =1  sfr   ETIM2     = 0xBB;
  30      =1  sfr   ETIM3     = 0xC4;
  31      =1  sfr   EDATA1    = 0xBC;
  32      =1  sfr   EDATA2    = 0xBD;
  33      =1  sfr   EDATA3    = 0xBE;
  34      =1  sfr   EDATA4    = 0xBF;
  35      =1  sfr   WDCON     = 0xC0;
  36      =1  sfr   EADRL     = 0xC6;
  37      =1  sfr   T2CON     = 0xC8;
  38      =1  sfr   RCAP2L    = 0xCA;
  39      =1  sfr   RCAP2H    = 0xCB;
  40      =1  sfr   TL2       = 0xCC;
  41      =1  sfr   TH2       = 0xCD;
  42      =1  sfr   PSW       = 0xD0;
  43      =1  sfr   DMAL      = 0xD2;
  44      =1  sfr   DMAH      = 0xD3;
  45      =1  sfr   DMAP      = 0xD4;
  46      =1  sfr   ADCCON2   = 0xD8;
  47      =1  sfr   ADCDATAL  = 0xD9;
  48      =1  sfr   ADCDATAH  = 0xDA;
  49      =1  sfr   PSMCON    = 0xDF;
  50      =1  sfr   ACC       = 0xE0;
  51      =1  sfr   I2CCON    = 0xE8;
  52      =1  sfr   DCON      = 0xE8;
C51 COMPILER V7.09   MAIN                                                                  06/18/2004 09:19:30 PAGE 2   

  53      =1  sfr   ADCCON1   = 0xEF;
  54      =1  sfr   B         = 0xF0;
  55      =1  sfr   ADCOFSL   = 0xF1;
  56      =1  sfr   ADCOFSH   = 0xF2;
  57      =1  sfr   ADCGAINL  = 0xF3;
  58      =1  sfr   ADCGAINH  = 0xF4;
  59      =1  sfr   ADCCON3   = 0xF5;
  60      =1  sfr   SPIDAT    = 0xF7;
  61      =1  sfr   SPICON    = 0xF8;
  62      =1  sfr   DAC0L     = 0xF9;
  63      =1  sfr   DAC0H     = 0xFA;
  64      =1  sfr   DAC1L     = 0xFB;
  65      =1  sfr   DAC1H     = 0xFC;
  66      =1  sfr   DACCON    = 0xFD;
  67      =1  
  68      =1  /* BIT Register..... */
  69      =1  /* TCON */
  70      =1  sbit  TF1       = 0x8F;
  71      =1  sbit  TR1       = 0x8E;
  72      =1  sbit  TF0       = 0x8D;
  73      =1  sbit  TR0       = 0x8C;
  74      =1  sbit  IE1       = 0x8B;
  75      =1  sbit  IT1       = 0x8A;
  76      =1  sbit  IE0       = 0x89;
  77      =1  sbit  IT0       = 0x88;
  78      =1  /* P1 */
  79      =1  sbit  T2EX      = 0x91;
  80      =1  sbit  T2        = 0x90;
  81      =1  /* SCON */
  82      =1  sbit  SM0       = 0x9F;
  83      =1  sbit  SM1       = 0x9E;
  84      =1  sbit  SM2       = 0x9D;
  85      =1  sbit  REN       = 0x9C;
  86      =1  sbit  TB8       = 0x9B;
  87      =1  sbit  RB8       = 0x9A;
  88      =1  sbit  TI        = 0x99;
  89      =1  sbit  RI        = 0x98;
  90      =1  /* IE */
  91      =1  sbit  EA        = 0xAF;
  92      =1  sbit  EADC      = 0xAE;
  93      =1  sbit  ET2       = 0xAD;
  94      =1  sbit  ES        = 0xAC;
  95      =1  sbit  ET1       = 0xAB;
  96      =1  sbit  EX1       = 0xAA;
  97      =1  sbit  ET0       = 0xA9;
  98      =1  sbit  EX0       = 0xA8;
  99      =1  /* P3 */
 100      =1  sbit  RD        = 0xB7;
 101      =1  sbit  WR        = 0xB6;
 102      =1  sbit  T1        = 0xB5;
 103      =1  sbit  T0        = 0xB4;
 104      =1  sbit  INT1      = 0xB3;
 105      =1  sbit  INT0      = 0xB2;
 106      =1  sbit  TXD       = 0xB1;
 107      =1  sbit  RXD       = 0xB0;
 108      =1  /* IP */
 109      =1  sbit  PSI       = 0xBF;
 110      =1  sbit  PADC      = 0xBE;
 111      =1  sbit  PT2       = 0xBD;
 112      =1  sbit  PS        = 0xBC;
 113      =1  sbit  PT1       = 0xBB;
 114      =1  sbit  PX1       = 0xBA;
C51 COMPILER V7.09   MAIN                                                                  06/18/2004 09:19:30 PAGE 3   

 115      =1  sbit  PT0       = 0xB9;
 116      =1  sbit  PX0       = 0xB8;
 117      =1  /* WDCON */
 118      =1  sbit  PRE2      = 0xC7;
 119      =1  sbit  PRE1      = 0xC6;
 120      =1  sbit  PRE0      = 0xC5;
 121      =1  sbit  WDR1      = 0xC3;
 122      =1  sbit  WDR2      = 0xC2;
 123      =1  sbit  WDS       = 0xC1;
 124      =1  sbit  WDE       = 0xC0;
 125      =1  /* T2CON */
 126      =1  sbit  TF2       = 0xCF;
 127      =1  sbit  EXF2      = 0xCE;
 128      =1  sbit  RCLK      = 0xCD;
 129      =1  sbit  TCLK      = 0xCC;
 130      =1  sbit  EXEN2     = 0xCB;
 131      =1  sbit  TR2       = 0xCA;
 132      =1  sbit  CNT2      = 0xC9;
 133      =1  sbit  CAP2      = 0xC8;
 134      =1  /* PSW */
 135      =1  sbit  CY        = 0xD7;
 136      =1  sbit  AC        = 0xD6;
 137      =1  sbit  F0        = 0xD5;
 138      =1  sbit  RS1       = 0xD4;
 139      =1  sbit  RS0       = 0xD3;
 140      =1  sbit  OV        = 0xD2;
 141      =1  sbit  F1        = 0xD1;
 142      =1  sbit  P         = 0xD0;
 143      =1  /* ADCCON2 */
 144      =1  sbit  ADCI      = 0xDF;
 145      =1  sbit  DMA       = 0xDE;
 146      =1  sbit  CCONV     = 0xDD;
 147      =1  sbit  SCONV     = 0xDC;
 148      =1  sbit  CS3       = 0xDB;
 149      =1  sbit  CS2       = 0xDA;
 150      =1  sbit  CS1       = 0xD9;
 151      =1  sbit  CS0       = 0xD8;
 152      =1  /*  I2CCON  */
 153      =1  sbit  MDO       = I2CCON^7;
 154      =1  sbit  MDE       = I2CCON^6;
 155      =1  sbit  MCO       = I2CCON^5;
 156      =1  sbit  MDI       = I2CCON^4;
 157      =1  sbit  I2CM      = I2CCON^3;
 158      =1  sbit  I2CRS     = I2CCON^2;
 159      =1  sbit  I2CTX     = I2CCON^1;
 160      =1  sbit  I2CI      = I2CCON^0;
 161      =1  /*  DCON  */
 162      =1  sbit  D1        = DCON^7;
 163      =1  sbit  D1EN      = DCON^6;
 164      =1  sbit  D0        = DCON^5;
 165      =1  sbit  D0EN      = DCON^3;
 166      =1  /* SPICON */
 167      =1  sbit  ISPI      = 0xFF;
 168      =1  sbit  WCOL      = 0xFE;
 169      =1  sbit  SPE       = 0xFD;
 170      =1  sbit  SPIM      = 0xFC;
 171      =1  sbit  CPOL      = 0xFB;
 172      =1  sbit  CPHA      = 0xFA;
 173      =1  sbit  SPR1      = 0xF9;
 174      =1  sbit  SPR0      = 0xF8;
   4          #include <stdio.h>
   1      =1  /*--------------------------------------------------------------------------
C51 COMPILER V7.09   MAIN                                                                  06/18/2004 09:19:30 PAGE 4   

   2      =1  STDIO.H
   3      =1  
   4      =1  Prototypes for standard I/O functions.
   5      =1  Copyright (c) 1988-2002 Keil Elektronik GmbH and Keil Software, Inc.
   6      =1  All rights reserved.
   7      =1  --------------------------------------------------------------------------*/
   8      =1  
   9      =1  #ifndef __STDIO_H__
  10      =1  #define __STDIO_H__
  11      =1  
  12      =1  #ifndef EOF
  13      =1   #define EOF -1
  14      =1  #endif
  15      =1  
  16      =1  #ifndef NULL
  17      =1   #define NULL ((void *) 0)
  18      =1  #endif
  19      =1  
  20      =1  #ifndef _SIZE_T
  21      =1   #define _SIZE_T
  22      =1   typedef unsigned int size_t;
  23      =1  #endif
  24      =1  
  25      =1  #pragma SAVE
  26      =1  #pragma REGPARMS
  27      =1  extern char _getkey (void);
  28      =1  extern char getchar (void);
  29      =1  extern char ungetchar (char);
  30      =1  extern char putchar (char);
  31      =1  extern int printf   (const char *, ...);
  32      =1  extern int sprintf  (char *, const char *, ...);
  33      =1  extern int vprintf  (const char *, char *);
  34      =1  extern int vsprintf (char *, const char *, char *);
  35      =1  extern char *gets (char *, int n);
  36      =1  extern int scanf (const char *, ...);
  37      =1  extern int sscanf (char *, const char *, ...);
  38      =1  extern int puts (const char *);
  39      =1  
  40      =1  #pragma RESTORE
  41      =1  
  42      =1  #endif
  43      =1  
   5          #include "flash.h"
   1      =1  /*---------------------------------------------------------
   2      =1  FLASH functions.
   3      =1  ---------------------------------------------------------*/
   4      =1  char flash_erase_all (void);
   5      =1  
   6      =1  unsigned long flash_size (void);
   7      =1  
   8      =1  unsigned long flash_read (
   9      =1    void *buffer,             /* Buffer to fill */
  10      =1    unsigned long len,        /* Bytes to read */
  11      =1    unsigned long address);   /* FLASH address to read from */
  12      =1  
  13      =1  unsigned long flash_write (
  14      =1    const void *buffer,       /* Buffer to save */
  15      =1    unsigned long len,        /* Buffer length */
  16      =1    unsigned long address);   /* FLASH address to write to */
  17      =1  
  18      =1  /*---------------------------------------------------------
  19      =1  ---------------------------------------------------------*/
C51 COMPILER V7.09   MAIN                                                                  06/18/2004 09:19:30 PAGE 5   

   6          
   7          char code msgbuf [] = "This is a test to see if this thing really works.";
   8          char xdata strbuf [101];
   9          
  10          /*-----------------------------------------------------------------------------
  11          -----------------------------------------------------------------------------*/
  12          long test_eeprom (void)
  13          {
  14   1      unsigned long i;
  15   1      unsigned char dbuf;
  16   1      unsigned char rbuf;
  17   1      
  18   1      /*-----------------------------------------------
  19   1      Erase the EEPROM
  20   1      -----------------------------------------------*/
  21   1      flash_erase_all ();
  22   1      
  23   1      /*-----------------------------------------------
  24   1      Write values into all of the EEPROM
  25   1      -----------------------------------------------*/
  26   1      for (dbuf=0, i=flash_size (); i>0; i--, dbuf++)
  27   1        {
  28   2        flash_write (&dbuf, sizeof (dbuf), i-1);
  29   2        }
  30   1      
  31   1      /*-----------------------------------------------
  32   1      Read values from EEPROM and compare them to the
  33   1      original value that was written.  If they don't
  34   1      match, return the failing address.
  35   1      -----------------------------------------------*/
  36   1      for (dbuf=0, i=flash_size (); i>0; i--, dbuf++)
  37   1        {
  38   2        flash_read (&rbuf, sizeof (dbuf), i-1);
  39   2        if (rbuf != dbuf)
  40   2          {
  41   3          return (i-1);
  42   3          }
  43   2        }
  44   1      
  45   1      /*-----------------------------------------------
  46   1      -1 indicates that everything matched
  47   1      -----------------------------------------------*/
  48   1      return (-1);
  49   1      }
  50          
  51          /*-----------------------------------------------------------------------------
  52          -----------------------------------------------------------------------------*/
  53          void main (void)
  54          {
  55   1      long addr;
  56   1      
  57   1      /*-----------------------------------------------
  58   1      If we not talking to the monitor, then program
  59   1      the on-chip UART.
  60   1      -----------------------------------------------*/
  61   1      #ifndef MON51
  62   1      SCON  = 0x50;   // SCON: mode 1, 8-bit UART, enable rcvr
  63   1      TMOD |= 0x20;   // TMOD: timer 1, mode 2, 8-bit reload
  64   1      TH1   = 0xF4;   // TH1:  reload value for 2400 baud @ 11.0592 MHz
  65   1      TR1   = 1;      // TR1:  timer 1 run
  66   1      TI    = 1;      // TI:   set TI to send first char of UART
  67   1      #endif
C51 COMPILER V7.09   MAIN                                                                  06/18/2004 09:19:30 PAGE 6   

  68   1      
  69   1      /*-----------------------------------------------
  70   1      Test the EEPROM and print the results.
  71   1      -----------------------------------------------*/
  72   1      printf ("Testing the ERPROM\n");
  73   1      addr = test_eeprom ();
  74   1      
  75   1      if (addr == -1)
  76   1        {
  77   2        printf ("ERPROM test passed!\n");
  78   2        }
  79   1      else
  80   1        {
  81   2        printf ("ERPROM test failed at %lu\n", addr);
  82   2        }
  83   1      
  84   1      /*-----------------------------------------------
  85   1      -----------------------------------------------*/
  86   1      printf ("Erasing the EEPROM\n");
  87   1      flash_erase_all ();
  88   1      

⌨️ 快捷键说明

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