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 + -
显示快捷键?