📄 usb118_c51.lst
字号:
C51 COMPILER V7.50 USB118_C51 08/08/2007 09:14:41 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE USB118_C51
OBJECT MODULE PLACED IN USB118_c51.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE USB118_c51.c DEBUG OBJECTEXTEND
line level source
1 /************************************************************************************************
2 *
3 * USB118 C51测试程序
4 * Version 1.0
5 * 西安达泰电子有限责任公司(Xi'an DATA Electronic Co,Ltd)
6 * 网址: http://www.dataie.com
7 * 电话: 029-85272421 , 88022900
8 *
9 * 西安达泰电子有限责任公司 2005.08.06
10 *************************************************************************************************/
11
12
13 /************************************************************************************************
14 *
15 * U盘文件读写模块 以字节为单位进行U盘文件读写。10条精简命令完成所有读写过程
16 * MCS-51单片机C语言示例程序
17 * 硬件连接方式: 4线制串口(电源,地,输入,输出)
18 *
19 *************************************************************************************************/
20
21 #include <REG52.h>
22 #include <stdio.h>
23
24
25 #define uchar unsigned char
26 #define uint unsigned int
27
28 sbit P3_3=P3^3;
29 sbit P3_5=P3^5;
30 /************************************************************************************************
31 *
32 * USB118命令
33 *
34 *************************************************************************************************/
35 //检测u盘命令
36 uchar code Detect[66]={0xaa,0xbb,
37 0x01,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
38 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
39 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
40 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20};
41 //建立TEST.TXT文件命令
42 uchar code Create[66]={0xaa,0xbb,
43 0x07,0x54,0x45,0x53,0x54,0x39,0x20,0x20,0x20,0x54,0x58,0x54,0x20,0x00,0x00,0x00,
44 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x63,0x4F,0xFD,0x32,0x00,0x00,0x00,0x00,0x00,
45 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
46 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
47 //打开文件命令
48 uchar code Open[66] ={0xaa,0xbb,
49 0x06,0x54,0x45,0x53,0x54,0x20,0x20,0x20,0x20,0x54,0x58,0x54,0x00,0x00,0x00,0x00,
50 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
51 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
52 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
53 //写文件命令
54 uchar code Write[66]={0xaa,0xbb,
55 0x09,0x00,74,0x01,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
C51 COMPILER V7.50 USB118_C51 08/08/2007 09:14:41 PAGE 2
56 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
57 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
58 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20};
59 //读文件命令
60 uchar code Read[66]={0xaa,0xbb,
61 0x08,0x08,0x00,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
62 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
63 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
64 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20};
65 //删除文件命令
66 uchar code Remove[66]={0xaa,0xbb,
67 0x11,0x00,0x54,0x45,0x53,0x54,0x20,0x20,0x20,0x20,0x54,0x58,0x54,0x00,0x00,0x00,
68 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
69 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
70 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
71 //设置文件指针命令
72 uchar code SetFilePointer[66]=
73 {0xaa,0xbb,
74 0x15,0x00,74,0x01,0x00,0x00,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
75 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
76 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
77 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20};
78 //获得软件版本
79 uchar code GetVersion[66]=
80 {0xaa,0xbb,
81 0x30,0x00,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
82 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
83 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
84 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20};
85 //获得磁盘空间
86 uchar code GetCapacity[66]=
87 {0xaa,0xbb,
88 0x12,0x00,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
89 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
90 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
91 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20};
92 //获得文件列表
93 uchar code List[66]= {0xaa,0xbb,
94 0x10,0x00,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
95 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
96 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
97 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20};
98 //数据1
99 uchar code Date1[66]={0x30,0x31,
100 0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x61,0x62,0x63,0x64,0x65,0x30,0x31,0x32,
101 0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x61,0x62,0x63,0x64,0x65,0x30,0x31,0x32,0x33,
102 0x34,0x35,0x36,0x37,0x38,0x39,0x61,0x62,0x63,0x64,0x65,0x30,0x31,0x32,0x33,0x34,
103 0x35,0x36,0x37,0x38,0x39,0x61,0x62,0x63,0x64,0x65,0x30,0x31,0x32,0x33,0x0d,0x0a};
104 //数据2
105 uchar code Date2[66]={0x30,0x31,
106 0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x61,0x62,0x63,0x64,0x65,0x30,0x31,0x32,
107 0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x61,0x62,0x63,0x64,0x65,0x30,0x31,0x32,0x33,
108 0x34,0x35,0x36,0x37,0x38,0x39,0x61,0x62,0x63,0x64,0x65,0x30,0x31,0x32,0x33,0x34,
109 0x35,0x36,0x37,0x38,0x39,0x61,0x62,0x63,0x64,0x65,0x30,0x31,0x32,0x33,0x34,0x35};
110
111
112 uchar data num;
113
114 void delay_xms(unsigned int); //延时函数
115 void init_com(void); //初始化串口函数
116 void test(void); //系统测试函数
117 void Send_Data(uchar Serial_data); //发送一个字节函数
C51 COMPILER V7.50 USB118_C51 08/08/2007 09:14:41 PAGE 3
118 void TXD_Int(uchar *s); //发送数据函数
119 bit Receive_Data(uchar,uint ); //接收数据函数
120 uchar Receive_One(void); //接收一个字节函数
121
122 /************************************************************************************************
123 主程序
124 *************************************************************************************************/
125 void main()
126 {
127 1 int i;
128 1 SP = 0x60; //设置堆栈指针
129 1 init_com(); //初始化串口
130 1 test(); //系统测试并延时
131 1
132 1 det: //检测U盘
133 1 TXD_Int(Detect);
134 1
135 1 if(Receive_Data(0x04,0)==0) //命令是否成功执行,是则继续执行
136 1 { //否则重新执行
137 2 delay_xms(1000);
138 2 goto det;
139 2 }
140 1
141 1 // num=0x41;
142 1 //for(j=0;j<10;j++)
143 1 //{
144 1 delay_xms(1000);
145 1 crt: //建立文件
146 1 TXD_Int(Create);
147 1 if(Receive_Data(0x0a,0)==0) //命令是否成功执行,是则继续执行
148 1 { //否则重新执行
149 2 delay_xms(1000);
150 2 goto crt;
151 2 }
152 1
153 1 // num++;
154 1 //}
155 1
156 1
157 1
158 1 delay_xms(500);
159 1 wrt: //写文件
160 1 TXD_Int(Write);
161 1 for(i=0;i<5;i++)
162 1 TXD_Int(Date1);
163 1
164 1 if(Receive_Data(0x0c,0)==0) //命令是否成功执行,是则继续执行
165 1 { //否则重新执行
166 2 delay_xms(1000);
167 2 goto wrt;
168 2 }
169 1
170 1
171 1 delay_xms(500);
172 1 op: //打开文件
173 1 TXD_Int(Open);
174 1 if(Receive_Data(0x0d,0)==0) //命令是否成功执行,是则继续执行
175 1 { //否则重新执行
176 2 delay_xms(1000);
177 2 goto op;
178 2 }
179 1 /*
C51 COMPILER V7.50 USB118_C51 08/08/2007 09:14:41 PAGE 4
180 1 delay_xms(500);
181 1 //读文件
182 1 TXD_Int(Read);
183 1
184 1 if(Receive_Data(0x0b,8)==0) //命令是否成功执行,是则继续执行
185 1 { //否则重新执行
186 1 delay_xms(1000);
187 1 goto op;
188 1 }
189 1 */
190 1 /*
191 1 delay_xms(500);
192 1 //删除文件
193 1 del:TXD_Int(Remove);
194 1
195 1 if(Receive_Data(0x21,0)==0) //命令是否成功执行,是则继续执行
196 1 { //否则重新执行
197 1 delay_xms(1000);
198 1 goto del;
199 1 }
200 1 */
201 1
202 1 sfp:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -