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

📄 f34x_msd_cf_basic_functions.lst

📁 USB读写SD卡例程
💻 LST
📖 第 1 页 / 共 5 页
字号:
           =2 sbit TR1     = 0x8E;                   // Timer1 on/off control
           =2 sbit TF0     = 0x8D;                   // Timer0 overflow flag
           =2 sbit TR0     = 0x8C;                   // Timer0 on/off control
           =2 sbit IE1     = 0x8B;                   // Ext interrupt 1 edge fla
             -g
           =2 sbit IT1     = 0x8A;                   // Ext interrupt 1 type
           =2 sbit IE0     = 0x89;                   // Ext interrupt 0 edge fla
             -g
           =2 sbit IT0     = 0x88;                   // Ext interrupt 0 type
           =2 
           =2 // SCON0 0x98
           =2 sbit S0MODE  = 0x9F;                   // Serial mode control bit 
             -0
           =2                                        // Bit6 UNUSED
           =2 sbit MCE0    = 0x9D;                   // Multiprocessor communica
             -tion enable
           =2 sbit REN0    = 0x9C;                   // Receive enable
           =2 sbit TB80    = 0x9B;                   // Transmit bit 8
           =2 sbit RB80    = 0x9A;                   // Receive bit 8
           =2 sbit TI0     = 0x99;                   // Transmit interrupt flag
           =2 sbit RI0     = 0x98;                   // Receive interrupt flag
           =2 
           =2 // IE 0xA8
           =2 sbit EA      = 0xAF;                   // Global interrupt enable
           =2 sbit ESPI0   = 0xAE;                   // SPI0 interrupt enable
           =2 sbit ET2     = 0xAD;                   // Timer2 interrupt enable
           =2 sbit ES0     = 0xAC;                   // UART0 interrupt enable
           =2 sbit ET1     = 0xAB;                   // Timer1 interrupt enable
           =2 sbit EX1     = 0xAA;                   // External interrupt 1 ena
             -ble
           =2 sbit ET0     = 0xA9;                   // Timer0 interrupt enable
           =2 sbit EX0     = 0xA8;                   // External interrupt 0 ena
             -ble
           =2 
C51 COMPILER V7.50   F34X_MSD_CF_BASIC_FUNCTIONS   11/28/2006 10:53:58 PAGE 14  

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

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

           =2 #endif                                 // #define C8051F340_H
 289      =2  
 290      =2  //----------------------------------------------------------------
             --------------
 291      =2  // End Of File
 292      =2  //----------------------------------------------------------------
             --------------
  36      =1  
  37      =1  #define         CF_NO_CARD              0x01
  38      =1  sbit CF_RST = P1^0;
  39      =1  sbit CF_OE = P1^1;
  40      =1  sbit CF_CE1 = P1^2;
  41      =1  sbit CF_CD1 = P1^3;
  42      =1  sbit CF_RDY = P1^4;
  43      =1  sbit CF_WE = P1^6;
  44      =1  
  45      =1  
  46      =1  //----------------------------------------------------------------
             --------------
  47      =1  // Macro Prototypes
  48      =1  //----------------------------------------------------------------
             --------------
  49      =1  
  50      =1  #define CF_SET_ADDR_LINE(value) {\
  51      =1          P3 &= ~0xe0;\
  52      =1          P3 |= (value << 5) & 0xe0;\
  53      =1  }
  54      =1  
  55      =1  #define CF_WR_DATA(value) {\
  56      =1          P4MDOUT = 0xFF;\
  57      =1          P4 = value;\
  58      =1  }
  59      =1  
  60      =1  #define CF_READ_DATA    P4
  61      =1  
  62      =1  #define CF_WAIT_STATE {\
  63      =1          _nop_ ();\
  64      =1          _nop_ ();\
  65      =1          _nop_ ();\
  66      =1  }
  67      =1  
  68      =1  #define CF_READWRITE_IDLE {\
  69      =1          P4MDOUT = 0x00;\
  70      =1          P4 =0xff;\
  71      =1          CF_OE = 1;\
  72      =1          CF_WE = 1;\
  73      =1  }
  74      =1  
  75      =1  #define CF_WRITE {\
  76      =1          CF_OE = 1;\
  77      =1          CF_WE = 0;\
  78      =1  }
  79      =1  
  80      =1  #define CF_READ {\
  81      =1          P4MDOUT = 0x00;\
  82      =1          P4 =0xff;\
  83      =1          CF_WE = 1;\
  84      =1          CF_OE = 0;\
  85      =1  }
  86      =1  
  87      =1  
  88      =1  //----------------------------------------------------------------
C51 COMPILER V7.50   F34X_MSD_CF_BASIC_FUNCTIONS   11/28/2006 10:53:58 PAGE 17  

             --------------
  89      =1  // Function Prototypes
  90      =1  //----------------------------------------------------------------
             --------------
  91      =1  
  92      =1  char Dtct_Card(void);
  93      =1  void Wait_Drq();
  94      =1  void Wait_Busy();
  95      =1  char Identify_Drive(char* buffer);
  96      =1  char Init_CF();
  97      =1  char Write_Sector(unsigned long address, char* buffer);
  98      =1  char Read_Sector(unsigned long address, char* buffer);
  99      =1  
 100      =1  //----------------------------------------------------------------
             --------------
 101      =1  // Macro Prototypes
 102      =1  //----------------------------------------------------------------
             --------------
 103      =1  
 104      =1  //#define MACRO_CF_VERSIONS
 105      =1  #ifndef MACRO_CF_VERSIONS
 106      =1  
 107      =1  //----------------------------------------------------------------
             --------------
 108      =1  // Function Prototypes
 109      =1  //----------------------------------------------------------------
             --------------
 110      =1  
 111      =1  char CF_GET_REGISTER_VALUE(char addr);
 112      =1  void CF_SET_REGISTER_VALUE(char addr, char value);
 113      =1  
 114      =1  #else
           =1 #define CF_GET_REGISTER_VALUE(addr,value) {\
           =1         CF_SET_ADDR_LINE(addr);\
           =1         CF_READ;\
           =1         CF_WAIT_STATE;\
           =1         value = CF_READ_DATA;\
           =1         CF_READWRITE_IDLE;\

⌨️ 快捷键说明

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