?? main.lst
字號:
C51 COMPILER V7.06 MAIN 11/22/2004 22:08:32 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN MAIN.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE MAIN.C DEBUG OBJECTEXTEND CODE
stmt level source
1 #include "common.h"
2 #include <string.h>
3
4 unsigned char xdata DBUF[BUFFER_LENGTH];
5 XXGFLAGS bdata bXXGFlags;
6
7 extern unsigned char xdata CHBUF[CHBUF_LENGTH];
8 extern SYS_INFO_BLOCK xdata DeviceInfo;
9 extern CH_CMD_BLOCK xdata CHCmdBlock;
10 extern CH_RSP_BLOCK xdata CHRspBlock;
11 extern FILE_INFO xdata ThisFile;
12 extern FREE_FAT_INFO xdata FreeFat;
13 code unsigned char cmd_test_createfile[]=
14 {
15 0x54,0x45,0x53,0x54,0x20,0x20,0x20,0x20,
16 0x54,0x58,0x54,0x20,0x00,0x00,0x00,0x00,
17 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
18 0x21,0x30,0x00,0x00,0x20,0x20,0x20,0x20,
19 0x00,0x00,0x20,0x20,0x20,0x20,0x20,0x20,
20 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
21 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
22 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00
23 };
24 code unsigned char cmd_test_writefile[]=
25 {
26 0x09,
27 0x00,
28 0x00,0x70,
29 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
30 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
31 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
32 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
33 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
34 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
35 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00
36 };
37 /* 將程序空間的字符串復制到內部RAM中,返回字符串長度 */
38 void mCopyCodeStringToIRAM( unsigned char *iDestination, unsigned char code *iSource, unsigned char len)
39 {
40 1 //unsigned char i = 0;
41 1 while ( len ) {
42 2 *iDestination = *iSource;
43 2 iDestination ++;
44 2 iSource ++;
45 2 len --;
46 2 }
47 1 // return( i );
48 1 }
49 void Init_Port()
50 {
51 1 P0 = 0xFF;
52 1 P1 = 0xFF;
53 1 P2 = 0xFF;
54 1 P3 = 0xFF;
55 1 }
C51 COMPILER V7.06 MAIN 11/22/2004 22:08:32 PAGE 2
56 void mInitSTDIO( )
57 {
58 1 SCON = 0x50;
59 1 PCON = 0x80;
60 1 TMOD = 0x20;
61 1 TH1 = 0xf3; /* 24MHz晶振, 9600bps */
62 1 TR1 = 1;
63 1 TI = 0;
64 1 }
65
66
67 void main(void)
68 {
69 1 unsigned char temp;
70 1 unsigned char mIntStatus,retStatus;
71 1 unsigned int len,tempDataLength;
72 1
73 1 Init_Port();
74 1 // mInitSTDIO( ); /* 為了從串口輸出監控信息,調試完成后應該禁止 */
75 1
76 1 // printf( "star \n" );
77 1 mCH375Init( );
78 1 //mInitSTDIO( );
79 1 // printf( " wait usb connect \n" );
80 1 DelayMs(50);
81 1 for(temp=0;temp<64;temp++)DBUF[temp]=0;
82 1 mIntStatus = mWaitInterrupt( ); /* 等待中斷并獲取狀態 */
83 1 if( mIntStatus != USB_INT_CONNECT ); /* U盤連接 */
84 1
85 1 retStatus=EnumMassDev();
86 1 retStatus=GetCapacity();
87 1
88 1
89 1 strcpy( CHCmdBlock.CmdBlock.Cmd_OpenFile.filename, "CH375HFTC " ); /* 文件名,該文件在C51子目錄下 */
90 1
91 1 retStatus=OpenFile(CHCmdBlock.CmdBlock.Cmd_OpenFile.filename);
92 1 len=ThisFile.LengthInByte;
93 1 tempDataLength=ThisFile.LengthInByte;
94 1 retStatus=ReadFile(len,CHBUF);
95 1 //
96 1 //strcpy( CHCmdBlock.CmdBlock.Cmd_CreateFile.item, cmd_test_createfile );
97 1
98 1 mCopyCodeStringToIRAM( CHCmdBlock.CmdBlock.Cmd_CreateFile.item, cmd_test_createfile ,32);
99 1
100 1 retStatus=CreateFile(CHCmdBlock.CmdBlock.Cmd_CreateFile.item);
101 1
102 1 //
103 1 len=tempDataLength;
104 1 retStatus=WriteFile(len,CHBUF);
105 1
106 1 // strcpy( CHCmdBlock.CmdBlock.Cmd_RemoveFile.filename, "CH375HFTC " );
107 1 // retStatus=RemoveFile(CHCmdBlock.CmdBlock.Cmd_RemoveFile.filename);
108 1
109 1 while(1);
110 1
111 1 }
C51 COMPILER V7.06 MAIN 11/22/2004 22:08:32 PAGE 3
ASSEMBLY LISTING OF GENERATED OBJECT CODE
; FUNCTION _mCopyCodeStringToIRAM (BEGIN)
; SOURCE LINE # 38
;---- Variable 'iSource' assigned to Register 'R4/R5' ----
;---- Variable 'iDestination' assigned to Register 'R1/R2/R3' ----
; SOURCE LINE # 39
0000 ?C0001:
; SOURCE LINE # 41
0000 E500 R MOV A,len
0002 6019 JZ ?C0003
; SOURCE LINE # 42
0004 8D82 MOV DPL,R5
0006 8C83 MOV DPH,R4
0008 E4 CLR A
0009 93 MOVC A,@A+DPTR
000A 120000 E LCALL ?C?CSTPTR
; SOURCE LINE # 43
000D 7401 MOV A,#01H
000F 29 ADD A,R1
0010 F9 MOV R1,A
0011 E4 CLR A
0012 3A ADDC A,R2
0013 FA MOV R2,A
; SOURCE LINE # 44
0014 0D INC R5
0015 BD0001 CJNE R5,#00H,?C0013
0018 0C INC R4
0019 ?C0013:
; SOURCE LINE # 45
0019 1500 R DEC len
; SOURCE LINE # 46
001B 80E3 SJMP ?C0001
; SOURCE LINE # 48
001D ?C0003:
001D 22 RET
; FUNCTION _mCopyCodeStringToIRAM (END)
; FUNCTION Init_Port (BEGIN)
; SOURCE LINE # 49
; SOURCE LINE # 50
; SOURCE LINE # 51
0000 7580FF MOV P0,#0FFH
; SOURCE LINE # 52
0003 7590FF MOV P1,#0FFH
; SOURCE LINE # 53
0006 75A0FF MOV P2,#0FFH
; SOURCE LINE # 54
0009 75B0FF MOV P3,#0FFH
; SOURCE LINE # 55
000C 22 RET
; FUNCTION Init_Port (END)
; FUNCTION mInitSTDIO (BEGIN)
; SOURCE LINE # 56
; SOURCE LINE # 57
; SOURCE LINE # 58
0000 759850 MOV SCON,#050H
; SOURCE LINE # 59
0003 758780 MOV PCON,#080H
; SOURCE LINE # 60
C51 COMPILER V7.06 MAIN 11/22/2004 22:08:32 PAGE 4
0006 758920 MOV TMOD,#020H
; SOURCE LINE # 61
0009 758DF3 MOV TH1,#0F3H
; SOURCE LINE # 62
000C D28E SETB TR1
; SOURCE LINE # 63
000E C299 CLR TI
; SOURCE LINE # 64
0010 22 RET
; FUNCTION mInitSTDIO (END)
; FUNCTION main (BEGIN)
; SOURCE LINE # 67
; SOURCE LINE # 68
; SOURCE LINE # 73
0000 120000 R LCALL Init_Port
; SOURCE LINE # 77
0003 120000 E LCALL mCH375Init
; SOURCE LINE # 80
0006 7F32 MOV R7,#032H
0008 120000 E LCALL _DelayMs
; SOURCE LINE # 81
;---- Variable 'temp' assigned to Register 'R7' ----
000B ?C0006:
000B 7F40 MOV R7,#040H
000D 900000 R MOV DPTR,#DBUF
0010 E4 CLR A
0011 ?C0014:
0011 F0 MOVX @DPTR,A
0012 A3 INC DPTR
0013 DFFC DJNZ R7,?C0014
0015 7F40 MOV R7,#040H
0017 ?C0007:
; SOURCE LINE # 82
0017 120000 E LCALL mWaitInterrupt
001A 8F00 R MOV mIntStatus,R7
; SOURCE LINE # 83
001C ?C0009:
; SOURCE LINE # 85
001C 120000 E LCALL EnumMassDev
;---- Variable 'retStatus' assigned to Register 'R7' ----
; SOURCE LINE # 86
001F 120000 E LCALL GetCapacity
; SOURCE LINE # 89
0022 7800 E MOV R0,#LOW CHCmdBlock+01H
0024 7C00 E MOV R4,#HIGH CHCmdBlock+01H
0026 7D01 MOV R5,#01H
0028 7BFF MOV R3,#0FFH
002A 7A00 R MOV R2,#HIGH ?SC_0
002C 7900 R MOV R1,#LOW ?SC_0
002E 120000 E LCALL ?C?STRCPY
; SOURCE LINE # 91
0031 7B01 MOV R3,#01H
0033 7A00 E MOV R2,#HIGH CHCmdBlock+01H
0035 7900 E MOV R1,#LOW CHCmdBlock+01H
0037 120000 E LCALL _OpenFile
; SOURCE LINE # 92
003A 900000 E MOV DPTR,#ThisFile+05H
003D E0 MOVX A,@DPTR
003E FC MOV R4,A
003F A3 INC DPTR
0040 E0 MOVX A,@DPTR
C51 COMPILER V7.06 MAIN 11/22/2004 22:08:32 PAGE 5
;---- Variable 'len' assigned to Register 'R2/R3' ----
0041 AA04 MOV R2,AR4
; SOURCE LINE # 93
0043 8C00 R MOV tempDataLength,R4
0045 F500 R MOV tempDataLength+01H,A
; SOURCE LINE # 94
0047 FF MOV R7,A
0048 AE02 MOV R6,AR2
004A 7B01 MOV R3,#01H
004C 7A00 E MOV R2,#HIGH CHBUF
004E 7900 E MOV R1,#LOW CHBUF
0050 120000 E LCALL _ReadFile
; SOURCE LINE # 98
0053 7B01 MOV R3,#01H
0055 7A00 E MOV R2,#HIGH CHCmdBlock+01H
0057 7900 E MOV R1,#LOW CHCmdBlock+01H
0059 7C00 R MOV R4,#HIGH cmd_test_createfile
005B 7D00 R MOV R5,#LOW cmd_test_createfile
005D 750020 R MOV ?_mCopyCodeStringToIRAM?BYTE+05H,#020H
0060 120000 R LCALL _mCopyCodeStringToIRAM
; SOURCE LINE # 100
0063 7A00 E MOV R2,#HIGH CHCmdBlock+01H
0065 7900 E MOV R1,#LOW CHCmdBlock+01H
0067 120000 E LCALL _CreateFile
; SOURCE LINE # 103
; SOURCE LINE # 104
006A AF00 R MOV R7,tempDataLength+01H
006C AE00 R MOV R6,tempDataLength
006E 7B01 MOV R3,#01H
0070 7A00 E MOV R2,#HIGH CHBUF
0072 7900 E MOV R1,#LOW CHBUF
0074 120000 E LCALL _WriteFile
0077 ?C0010:
; SOURCE LINE # 109
0077 80FE SJMP ?C0010
; FUNCTION main (END)
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 181 ----
CONSTANT SIZE = 136 ----
XDATA SIZE = 512 ----
PDATA SIZE = ---- ----
DATA SIZE = 2 9
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -