📄 u_func_a.lst
字号:
C51 COMPILER V8.02 U_FUNC_A 07/21/2008 09:40:01 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE U_FUNC_A
OBJECT MODULE PLACED IN U_func_a.OBJ
COMPILER INVOKED BY: C:\keil c51\C51\BIN\C51.EXE U_func_a.c LARGE BROWSE DEBUG OBJECTEXTEND
line level source
1 #include<c8051f020.h>
2 #include<intrins.h>
3 #include"lcd.h"
4 #include"read_U.h"
5 #include"read_U_a.h"
6 #include"read_U_b.h"
7 //#include"infrared_receive.h"
8
9
10
11 /*******************************************************************************
12 ------读键值程序---------------------------------------------------
13 ********************************************************************************
14 说明:入口参数:无
15 出口参数:键值
16 *******************************************************************************/
17 unsigned char Wait_Infrared()
18 {
19 1 unsigned char KeyValue;
20 1 unsigned int i;
21 1 while(1)
22 1 {
23 2 P4=0xff;
24 2 while(P4<=0x0f);
25 2
26 2 for(i=0;i<30000;i++) _nop_;
*** WARNING C275 IN LINE 26 OF U_FUNC_A.C: expression with possibly no effect
27 2 if(P4>0x0f)
28 2 {
29 3 KeyValue=P4;
30 3 for(i=0;i<9000;i++) Delay();
31 3 return KeyValue;
32 3 }
33 2 }
34 1 }
35
36 /*******************************************************************************
37 ------延时程序---------------------------------------------------
38 ********************************************************************************
39 说明:入口参数:无
40 出口参数:无
41 *******************************************************************************/
42 void Delay()
43 {
44 1 unsigned char i;
45 1 for(i=0;i<60;i++)
46 1 _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
47 1 }
48
49 /*******************************************************************************
50 ------设置单片机晶振为外部晶振--------------------------------------------------
51 ********************************************************************************
52 说明:入口参数:无
53 出口参数:无
54 *******************************************************************************/
C51 COMPILER V8.02 U_FUNC_A 07/21/2008 09:40:01 PAGE 2
55 void Oscillator_Init()
56 {
57 1 int i = 0;
58 1 /* OSCXCN = 0x77;
59 1 for (i = 0; i < 3000; i++); // Wait 1ms for initialization
60 1 while ((OSCXCN & 0x80) == 0);
61 1 OSCICN = 0x08;
62 1 */
63 1 OSCXCN = 0x67;
64 1 for (i = 0; i < 3000; i++); // Wait 1ms for initialization
65 1 while ((OSCXCN & 0x80) == 0);
66 1 OSCICN = 0x08;
67 1 }
68
69 /*******************************************************************************
70 ------单片机系统初始化---------------------------------------------------
71 ********************************************************************************
72 说明:入口参数:无
73 出口参数:无
74 *******************************************************************************/
75 void Mcu_Init()
76 {
77 1 WDTCN = 0xDE;
78 1 WDTCN = 0xAD;
79 1 XBR2 = 0x40;
80 1 Oscillator_Init();
81 1 LCD_Init();
82 1 // Infrared_Init();
83 1 Currt_File=0;
84 1 // IE=0x80; //开总中断
85 1 // EIE2|=0x20;//开中断7
86 1 }
87
88 /*******************************************************************************
89 ------文件显示程序---------------------------------------------------
90 ********************************************************************************
91 说明:入口参数:x坐标,y坐标,文件号
92 出口参数:无
93 *******************************************************************************/
94 void PrintfFat(unsigned char x,unsigned char y,char file_num) //用于显示文件名和扩展名
95 {unsigned char i,*pt;
96 1 pt=Fat[file_num].name;
97 1 LCD_Goto(x,y);
98 1 _nop_();
99 1 for(i=0;*(pt+i)!=0;i++)
100 1 LCD_WriteData(*(pt+i));
101 1 pt=Fat[file_num].ext;
102 1 if(*(pt)!=0x20)
103 1 {
104 2 LCD_WriteData(0x2e);
105 2 for(i=0;i<3;i++)
106 2 LCD_WriteData(*(pt+i));
107 2 }
108 1 else
109 1 {
110 2 for(i=0;i<3;i++)
111 2 LCD_WriteData(*(pt+i));
112 2 LCD_WriteData(*(pt));
113 2 }
114 1 }
115
116 /*******************************************************************************
C51 COMPILER V8.02 U_FUNC_A 07/21/2008 09:40:01 PAGE 3
117 ------选择要读出数据的u盘---------------------------------------------------
118 ********************************************************************************
119 说明:入口参数:无
120 出口参数:0:所显示的第一个U盘(U盘A),0xFF:所显示的第二个U盘(U盘B)
121 *******************************************************************************/
122 unsigned char SelectDisk()
123 {
124 1 unsigned char Key,WhchDisk=0;
125 1 LCD_Printf(1,1,">>");
126 1 while(1)
127 1 {
128 2 Key=Wait_Infrared();
129 2 if(Key==DOWN||Key==UP)
130 2 {
131 3 WhchDisk=~WhchDisk;
132 3 LCD_Printf((WhchDisk/0xff)+1,1,">>");
133 3 LCD_Printf((~WhchDisk/0xff)+1,1," ");
134 3 }
135 2 else return WhchDisk;
136 2 }
137 1 }
138
139
140
141
142
143
144 /*******************************************************************************
145 ------CH375写命令---------------------------------------------------
146 ********************************************************************************
147 说明:入口参数:命令字
148 出口参数:无
149 *******************************************************************************/
150 void CH375HM_INDEX_WR_a(index)
151 {
152 1
153 1 P2=index;
154 1 USB_A0a=1;
155 1 //P2MDOUT=0xff;
156 1 USB_RDa=1;
157 1
158 1 USB_CSa=0;
159 1 USB_WRa=0;
160 1 Delay();
161 1 USB_WRa=1;
162 1 USB_CSa=1;
163 1 USB_A0a=1;
164 1 P2=0xff;
165 1 }
166
167 /*******************************************************************************
168 ------CH375写数据---------------------------------------------------
169 ********************************************************************************
170 说明:入口参数:数据
171 出口参数:无
172 *******************************************************************************/
173 void CH375HM_DATA_WR_a(Data)
174 {
175 1 P2=Data;
176 1 //P2MDOUT=0xff;
177 1 USB_A0a=0;
178 1 USB_CSa=0;
C51 COMPILER V8.02 U_FUNC_A 07/21/2008 09:40:01 PAGE 4
179 1 USB_WRa=0;
180 1 Delay();
181 1 USB_WRa=1;
182 1 USB_CSa=1;
183 1 USB_A0a=1;
184 1 P2=0xff;
185 1 }
186
187 /*******************************************************************************
188 ------CH375读数据---------------------------------------------------
189 ********************************************************************************
190 说明:入口参数:无
191 出口参数:数据
192 *******************************************************************************/
193 unsigned char CH375HM_DATA_RD_a(void)
194 {
195 1 unsigned char m;
196 1 P2MDOUT=0x00;
197 1 USB_A0a=0;
198 1 USB_CSa=0;
199 1 USB_RDa=0;
200 1 Delay();
201 1 m=P2;
202 1 USB_RDa=1;
203 1 USB_CSa=1;
204 1 USB_A0a=1;
205 1 return (m);
206 1 }
207
208 /*******************************************************************************
209 ------初始化U盘A---------------------------------------------------
210 ********************************************************************************
211 说明:入口参数:无
212 出口参数:0x14:初始化成功,0x1f:初始化失败
213 *******************************************************************************/
214 unsigned char Init_Disk_a()
215 {
216 1 unsigned char sta;
217 1 CH375HM_INDEX_WR_a(DISK_INIT);
218 1 Delay();
219 1 sta=Wait_Int_a();
220 1 while(sta!=0x14);
221 1 sta=USB_INT_DISK_ERR;
222 1 CH375HM_INDEX_WR_a(DISK_READY);
223 1 Delay();
224 1 sta=Wait_Int_a();
225 1 CH375HM_INDEX_WR_a( DISK_R_SENSE ); /* 检查USB 存储设备的错误 */
226 1 sta = Wait_Int_a( ); /* 等待中断并获取状态 */
227 1 CH375HM_INDEX_WR_a(DISK_READY);
228 1 sta=Wait_Int_a();
229 1 return sta;
230 1 }
231
232 /*******************************************************************************
233 ------CH375设置A盘工作模式---------------------------------------------------
234 ********************************************************************************
235 说明:入口参数:数据
236 出口参数:0x51:操作成功,0x5f:操作失败
237 *******************************************************************************/
238 unsigned char Set_Mode_a(unsigned char mode)
239 {
240 1 unsigned char temp;
C51 COMPILER V8.02 U_FUNC_A 07/21/2008 09:40:01 PAGE 5
241 1 CH375HM_INDEX_WR_a(SET_USB_MODE);
242 1 CH375HM_DATA_WR_a(mode);
243 1 temp=CH375HM_DATA_RD_a();
244 1 return (temp);
245 1 }
246
247
248
249 /*******************************************************************************
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -