📄 main.lst
字号:
C51 COMPILER V7.00 MAIN 02/15/2008 12:45:57 PAGE 1
C51 COMPILER V7.00, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN Main.OBJ
COMPILER INVOKED BY: e:\Keil\C51\BIN\C51.EXE Main.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include "common.H"
2 #include "DEVICE.H"
3 #include "HAL.H"
4 #include "HPI.H"
5 #include "FAT.H"
6 #include "FAT32.H"
7 #include "HPI32.H"
8
9 FLAGS bdata bFlags;
10 extern unsigned char xdata DBUF[];//BUFFER_LENGTH];
11 /////////////////////////////////////////////////
12 extern unsigned long xdata DirStartCluster,DirStartCluster32;
13 extern unsigned char xdata UARTBUF[];//UARTBUF_LENGTH];
14 extern Command_Def xdata Command;
15 extern SYS_INFO_BLOCK xdata DeviceInfo;
16 extern FILE_INFO xdata ThisFile;
17 //////////////////////////////////////////
18
19
20 void Init_Port()
21 {
22 1 P0 = 0xFF;
23 1 P1 = 0xFF;
24 1 P2 = 0xFF;
25 1 P3 = 0xFF;
26 1 }
27
28 /*Serial Port */
29 /*Mode = 1 /8-bit UART
30 Serial Port Interrupt = Disabled */
31 /*Receive = Enabled */
32 /*Auto Addressing = Disabled */
33 void Init_COMM(void)
34 {
35 1 SCON = 0x53;
36 1 PCON = 0x80 | PCON;
37 1 T2CON=0x30;
38 1 RCAP2H=0xFF; // 57600 @ 21.1184MHz: 24000000/(32*(65536-(RCAP2H,RCAP2L)))
39 1 RCAP2L=0xF4;
40 1 TI=0;
41 1 RI=0;
42 1 TR2=1;
43 1 ES = 1;
44 1 }
45
46 //*******************************************
47 char code test_data[]={1,2,4,8,0x10,0x20,0x40,0x80,0x55,0xaa,0xa5,0x00,0xff};
48 //*******************************************
49 bit TestSRAM()
50 {
51 1 bit f=1;
52 1 char i;
53 1 unsigned char xdata *p;
54 1 i=0;
55 1 for(p=0;p<0x8000;p++)
C51 COMPILER V7.00 MAIN 02/15/2008 12:45:57 PAGE 2
56 1 {
57 2 *p=test_data[i];
58 2 if(++i >= sizeof(test_data)) i=0;
59 2 }
60 1 i=0;
61 1 for(p=0;p<0x8000;p++)
62 1 {
63 2 if(*p != test_data[i]) f=0;
64 2 if(++i >= sizeof(test_data)) i=0;
65 2 }
66 1 return f;
67 1 }
68 //*******************************************
69 void main(void)
70 {
71 1 unsigned char temp;
72 1 unsigned int i;
73 1 unsigned long xdata time_count;
74 1
75 1 Init_Port();
76 1 Init_COMM();
77 1
78 1 if(!TestSRAM()) //test
79 1 {
80 2 for(temp=0;temp<20;temp++)
81 2 {
82 3 MCU_LED1=!MCU_LED1;
83 3 for(i=0;i<0x8fff;i++) ;
84 3 }
85 2 }
86 1 MCU_LED1 = 1;
87 1
88 1 bFlags.bits.bUartInDone=0;
89 1 DirStartCluster=0;
90 1 DirStartCluster32=0;
91 1
92 1 for(temp=0;temp<64;temp++)
93 1 DBUF[temp]=0;
94 1
95 1
96 1 ENABLE_INTERRUPTS;
97 1
98 1 while(TRUE)
99 1 {
100 2 time_count++;
101 2 if (time_count>1000) // 过一段时间查询一下SD/MMC卡是否在线 www.mcusky.com
102 2 {
103 3 DISABLE_INTERRUPTS;
104 3 time_count = 0;
105 3 ENABLE_INTERRUPTS;
106 3
107 3 if(SdInit()) //初始化SD卡
108 3 {
109 4 if(bFlags.bits.SLAVE_ONLINE == FALSE)
110 4 {bFlags.bits.SLAVE_FOUND=TRUE;
111 5 bFlags.bits.SLAVE_ONLINE =TRUE;
112 5 }
113 4 }
114 3 else
115 3 {
116 4 if(bFlags.bits.SLAVE_ONLINE ==TRUE)
117 4 {bFlags.bits.SLAVE_REMOVED=TRUE;
C51 COMPILER V7.00 MAIN 02/15/2008 12:45:57 PAGE 3
118 5 bFlags.bits.SLAVE_ONLINE =FALSE;
119 5 }
120 4 }
121 3 }
122 2 if(bFlags.bits.SLAVE_FOUND){
123 3 DISABLE_INTERRUPTS;
124 3 bFlags.bits.SLAVE_FOUND=FALSE;
125 3
126 3 bFlags.bits.SLAVE_ENUMERATED = TRUE;
127 3 DirStartCluster=0;
128 3 DirStartCluster32=0;
129 3 ThisFile.FatSectorPointer=0;
130 3 DeviceInfo.LastFreeCluster=0;
131 3 MCU_LED1=0;
132 3 bFlags.bits.bMassDevice=TRUE;
133 3 ENABLE_INTERRUPTS;
134 3 }
135 2 if(bFlags.bits.SLAVE_REMOVED)
136 2 {
137 3 DISABLE_INTERRUPTS;
138 3 bFlags.bits.SLAVE_REMOVED=FALSE;
139 3 bFlags.bits.SLAVE_ENUMERATED = FALSE;
140 3 bFlags.bits.SLAVE_IS_ATTACHED = FALSE;
141 3 MCU_LED1=1;MCU_LED2=1;
142 3 ENABLE_INTERRUPTS;
143 3 }
144 2 if(bFlags.bits.bUartInDone){
145 3 DISABLE_INTERRUPTS;
146 3 bFlags.bits.bUartInDone=0;
147 3
148 3 if(DeviceInfo.FAT) //FAT32
149 3 UartHandler32();
150 3 else
151 3 UartHandler(); //FAT16
152 3
153 3 ENABLE_INTERRUPTS;
154 3 }
155 2 if(bFlags.bits.bMassDevice)
156 2 {
157 3 DISABLE_INTERRUPTS;
158 3 bFlags.bits.bMassDevice=FALSE;
159 3 if(InitFileSystem())
160 3 {
161 4 bFlags.bits.SLAVE_IS_ATTACHED = TRUE;
162 4 MCU_LED2=0;
163 4 }
164 3 else
165 3 {
166 4 bFlags.bits.SLAVE_IS_ATTACHED = FALSE;
167 4 }
168 3 ENABLE_INTERRUPTS;
169 3 }
170 2
171 2 }
172 1
173 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 474 ----
CONSTANT SIZE = 13 ----
XDATA SIZE = ---- 4
C51 COMPILER V7.00 MAIN 02/15/2008 12:45:57 PAGE 4
PDATA SIZE = ---- ----
DATA SIZE = 10 1
IDATA SIZE = ---- ----
BIT SIZE = ---- 1
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -