f34x_msd_get_char.lst

来自「USB读写SD卡例程」· LST 代码 · 共 1,105 行 · 第 1/4 页

LST
1,105
字号
           =1 sbit ET0     = 0xA9;                   // Timer0 interrupt enable
C51 COMPILER V7.50   F34X_MSD_GET_CHAR             11/28/2006 10:54:14 PAGE 14  

           =1 sbit EX0     = 0xA8;                   // External interrupt 0 ena
             -ble
           =1 
           =1 // IP 0xB8
           =1                                        // Bit7 UNUSED
           =1 sbit PSPI0   = 0xBE;                   // SPI0 interrupt priority
           =1 sbit PT2     = 0xBD;                   // Timer2 priority
           =1 sbit PS0     = 0xBC;                   // UART0 priority
           =1 sbit PT1     = 0xBB;                   // Timer1 priority
           =1 sbit PX1     = 0xBA;                   // External interrupt 1 pri
             -ority
           =1 sbit PT0     = 0xB9;                   // Timer0 priority
           =1 sbit PX0     = 0xB8;                   // External interrupt 0 pri
             -ority
           =1 
           =1 // SMB0CN 0xC0
           =1 sbit MASTER  = 0xC7;                   // Master/slave indicator
           =1 sbit TXMODE  = 0xC6;                   // Transmit mode indicator
           =1 sbit STA     = 0xC5;                   // Start flag
           =1 sbit STO     = 0xC4;                   // Stop flag
           =1 sbit ACKRQ   = 0xC3;                   // Acknowledge request
           =1 sbit ARBLOST = 0xC2;                   // Arbitration lost indicat
             -or
           =1 sbit ACK     = 0xC1;                   // Acknowledge flag
           =1 sbit SI      = 0xC0;                   // SMBus interrupt flag
           =1 
           =1 // TMR2CN 0xC8
           =1 sbit TF2H    = 0xCF;                   // Timer2 high byte overflo
             -w flag
           =1 sbit TF2L    = 0xCE;                   // Timer2 low byte overflow
             - flag
           =1 sbit TF2LEN  = 0xCD;                   // Timer2 low byte interrup
             -t enable
           =1 sbit T2CE    = 0xCC;                   // Timer2 capture enable
           =1 sbit T2SPLIT = 0xCB;                   // Timer2 split mode enable
           =1 sbit TR2     = 0xCA;                   // Timer2 on/off control
           =1 sbit T2CSS   = 0xC9;                   // Timer 2 Capture Source s
             -elect
           =1 sbit T2XCLK  = 0xC8;                   // Timer2 external clock se
             -lect
           =1 
           =1 // PSW 0xD0
           =1 sbit CY      = 0xD7;                   // Carry flag
           =1 sbit AC      = 0xD6;                   // Auxiliary carry flag
           =1 sbit F0      = 0xD5;                   // User flag 0
           =1 sbit RS1     = 0xD4;                   // Register bank select 1
           =1 sbit RS0     = 0xD3;                   // Register bank select 0
           =1 sbit OV      = 0xD2;                   // Overflow flag
           =1 sbit F1      = 0xD1;                   // User flag 1
           =1 sbit P       = 0xD0;                   // Accumulator parity flag
           =1 
           =1 // PCA0CN 0xD8
           =1 sbit CF      = 0xDF;                   // PCA0 counter overflow fl
             -ag
           =1 sbit CR      = 0xDE;                   // PCA0 counter run control
           =1                                        // Bit5 UNUSED
           =1 sbit CCF4    = 0xDC;                   // PCA0 module4 capture/com
             -pare flag
           =1 sbit CCF3    = 0xDB;                   // PCA0 module3 capture/com
             -pare flag
           =1 sbit CCF2    = 0xDA;                   // PCA0 module2 capture/com
             -pare flag
C51 COMPILER V7.50   F34X_MSD_GET_CHAR             11/28/2006 10:54:14 PAGE 15  

           =1 sbit CCF1    = 0xD9;                   // PCA0 module1 capture/com
             -pare flag
           =1 sbit CCF0    = 0xD8;                   // PCA0 module0 capture/com
             -pare flag
           =1 
           =1 // ADC0CN 0xE8
           =1 sbit AD0EN   = 0xEF;                   // ADC0 enable
           =1 sbit AD0TM   = 0xEE;                   // ADC0 track mode
           =1 sbit AD0INT  = 0xED;                   // ADC0 conversion complete
             - interrupt flag
           =1 sbit AD0BUSY = 0xEC;                   // ADC0 busy flag
           =1 sbit AD0WINT = 0xEB;                   // ADC0 window compare inte
             -rrupt flag
           =1 sbit AD0CM2  = 0xEA;                   // ADC0 conversion mode sel
             -ect 2
           =1 sbit AD0CM1  = 0xE9;                   // ADC0 conversion mode sel
             -ect 1
           =1 sbit AD0CM0  = 0xE8;                   // ADC0 conversion mode sel
             -ect 0
           =1 
           =1 // SPI0CN 0xF8
           =1 sbit SPIF    = 0xFF;                   // SPI0 interrupt flag
           =1 sbit WCOL    = 0xFE;                   // SPI0 write collision fla
             -g
           =1 sbit MODF    = 0xFD;                   // SPI0 mode fault flag
           =1 sbit RXOVRN  = 0xFC;                   // SPI0 rx overrun flag
           =1 sbit NSSMD1  = 0xFB;                   // SPI0 slave select mode 1
           =1 sbit NSSMD0  = 0xFA;                   // SPI0 slave select mode 0
           =1 sbit TXBMT   = 0xF9;                   // SPI0 transmit buffer emp
             -ty
           =1 sbit SPIEN   = 0xF8;                   // SPI0 SPI enable
           =1 
           =1 
           =1 //----------------------------------------------------------------
             --------------
           =1 // Interrupt Priorities
           =1 //----------------------------------------------------------------
             --------------
           =1 
           =1 #define INTERRUPT_INT0             0   // External Interrupt 0
           =1 #define INTERRUPT_TIMER0           1   // Timer0 Overflow
           =1 #define INTERRUPT_INT1             2   // External Interrupt 1
           =1 #define INTERRUPT_TIMER1           3   // Timer1 Overflow
           =1 #define INTERRUPT_UART0            4   // Serial Port 0
           =1 #define INTERRUPT_TIMER2           5   // Timer2 Overflow
           =1 #define INTERRUPT_SPI0             6   // Serial Peripheral Interf
             -ace 0
           =1 #define INTERRUPT_SMBUS0           7   // SMBus0 Interface
           =1 #define INTERRUPT_USB0             8   // USB Interface
           =1 #define INTERRUPT_ADC0_WINDOW      9   // ADC0 Window Comparison
           =1 #define INTERRUPT_ADC0_EOC         10  // ADC0 End Of Conversion
           =1 #define INTERRUPT_PCA0             11  // PCA0 Peripheral
           =1 #define INTERRUPT_COMPARATOR0      12  // Comparator0
           =1 #define INTERRUPT_COMPARATOR1      13  // Comparator1
           =1 #define INTERRUPT_TIMER3           14  // Timer3 Overflow
           =1 #define INTERRUPT_VBUS_LEVEL       15  // VBUS level-triggered int
             -errupt
           =1 #define INTERRUPT_UART1            16  // Serial Port 1
           =1 
           =1 //----------------------------------------------------------------
             --------------
           =1 // Header File PreProcessor Directive
C51 COMPILER V7.50   F34X_MSD_GET_CHAR             11/28/2006 10:54:14 PAGE 16  

           =1 //----------------------------------------------------------------
             --------------
           =1 
           =1 #endif                                 // #define C8051F340_H
 289      =1  
 290      =1  //----------------------------------------------------------------
             --------------
 291      =1  // End Of File
 292      =1  //----------------------------------------------------------------
             --------------
  38          #include <stdio.h>
   1      =1  /*----------------------------------------------------------------
             -----------
   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, In
             -c.
   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  
  39          
  40          
  41          //----------------------------------------------------------------
             -------------
  42          // getchar
C51 COMPILER V7.50   F34X_MSD_GET_CHAR             11/28/2006 10:54:14 PAGE 17  

  43          //----------------------------------------------------------------
             -------------
  44          //
  45          // This function waits for input interrupt flag and receives the b
             -yte. In
  46          // addition it sends the received byte back.
  47          //
  48          // Parameters   :
  49          // Return Value : recieved byte
  50          //----------------------------------------------------------------
             -------------
  51          
  52          char getchar (void)
  53          {
  54   1        char r = _getkey();
  55   1        putchar(r);
  56   1        if(r == '\r')
  57   1        r = '\n';
  58   1        return r;
  59   1      }
C51 COMPILER V7.50   F34X_MSD_GET_CHAR             11/28/2006 10:54:14 PAGE 18  

ASSEMBLY LISTING OF GENERATED OBJECT CODE


             ; FUNCTION getchar (BEGIN)
                                           ; SOURCE LINE # 52
                                           ; SOURCE LINE # 53
                                           ; SOURCE LINE # 54
0000 120000      E     LCALL   _getkey
0003 900000      R     MOV     DPTR,#r
0006 EF                MOV     A,R7
0007 F0                MOVX    @DPTR,A
                                           ; SOURCE LINE # 55
0008 120000      E     LCALL   _putchar
                                           ; SOURCE LINE # 56
000B 900000      R     MOV     DPTR,#r
000E E0                MOVX    A,@DPTR
000F B40D03            CJNE    A,#0DH,?C0001
                                           ; SOURCE LINE # 57
0012 740A              MOV     A,#0AH
0014 F0                MOVX    @DPTR,A
0015         ?C0001:
                                           ; SOURCE LINE # 58
0015 900000      R     MOV     DPTR,#r
0018 E0                MOVX    A,@DPTR
0019 FF                MOV     R7,A
                                           ; SOURCE LINE # 59
001A         ?C0002:
001A 22                RET     
             ; FUNCTION getchar (END)

C51 COMPILER V7.50   F34X_MSD_GET_CHAR             11/28/2006 10:54:14 PAGE 19  

NAME                                    CLASS   MSPACE  TYPE    OFFSET  SIZE
====                                    =====   ======  ====    ======  ====


P3 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00B0H  1
size_t . . . . . . . . . . . . . . . .  TYPEDEF  -----  U_INT    -----  2
_putchar . . . . . . . . . . . . . . .  EXTERN   CODE   PROC     -----  -----
getchar. . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  r. . . . . . . . . . . . . . . . . .  AUTO     XDATA  CHAR     0000H  1
_getkey. . . . . . . . . . . . . . . .  EXTERN   CODE   PROC     -----  -----


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =     27    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----       1
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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