📄 text7.lst
字号:
C51 COMPILER V7.50 TEXT7 04/10/2009 11:52:04 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE TEXT7
OBJECT MODULE PLACED IN Text7.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Text7.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include "send.h"
2
3 void main(void)
4 {
5 1 bit searchcard_f=0,key_f=0,check_f=0,read_f=0,write_f=0;
6 1 bee=0;
7 1 TMOD = 0x20;
8 1 SCON = 0xd0;
9 1 TH1 = 250;
10 1 TL1 = 250;
11 1 TR1 = 1;
12 1 PCON = 0x80; // SMOD=1
13 1 EA = 0;
14 1 DE=0; //禁止发送,禁止接收
15 1 RE=1;
16 1 LCD_Init ();
17 1 while(!searchcard_f) //寻卡
18 1 {
19 2 write_f=0;
20 2 searchcard_f=search();
21 2 Delay_ms(5);
22 2 }
23 1 while(!key_f) //发送密码
24 1 {
25 2 searchcard_f=0;
26 2 key_f=password();
27 2 Delay_ms(5);
28 2 }
29 1 while(!check_f) //密码验证
30 1 {
31 2 key_f=0;
32 2 check_f=check_password();
33 2 Delay_ms(5);
34 2 }
35 1 while(!read_f) //读数据
36 1 {
37 2 check_f=0;
38 2 read_f=read();
39 2 Delay_ms(5);
40 2 }
41 1 DE=1; //允许发送,允许接收
42 1 RE=0;
43 1 Delay_ms(50);
44 1 while(!Transmit_f) //主从机通信
45 1 {
46 2 Transmit();
47 2 }
48 1 dataprocess();
49 1 DE=0; //禁止发送,禁止接收
50 1 RE=1;
51 1 Delay_ms(2);
52 1 while(!write_f) //写数据
53 1 {
54 2 read_f=0;
55 2 write_f=write();
C51 COMPILER V7.50 TEXT7 04/10/2009 11:52:04 PAGE 2
56 2 bee=write_f;
57 2 Delay_ms(255);
58 2 Delay_ms(255);
59 2 bee=0;
60 2 }
61 1 Display();
62 1 Delay_ms(255);
63 1 while(1);
64 1 }
65 /********************寻卡过程*********************/
66 bit search()
67 {
68 1 uchar i;
69 1 TB8=1;
70 1 Send(SEARCHCARD[0]);
71 1 TB8=0;
72 1 Send(SEARCHCARD[1]);
73 1 Send(SEARCHCARD[2]);
74 1 Send(SEARCHCARD[3]);
75 1 TB8=1;
76 1 Send(SEARCHCARD[4]);
77 1 for(i=0;i<9;i++)
78 1 {
79 2 return_frame[i]=Receive();
80 2 if(return_frame[0]!=0x47)
81 2 return 0;
82 2 }
83 1 for(i=0;i<9;i++)
84 1 {
85 2 Send(return_frame[i]);
86 2 }
87 1 if(return_frame[2]!=0x00)
88 1 return 0;
89 1 else
90 1 {
91 2
92 2 return 1;
93 2 }
94 1
95 1 }
96 /***********************发送密码******************/
97 bit password()
98 {
99 1 uint i;
100 1 TB8=1;
101 1 Send(KEY[0]);
102 1 TB8=0;
103 1 Send(KEY[1]);
104 1 Send(KEY[2]);
105 1 Send(KEY[3]);
106 1 Send(KEY[4]);
107 1 TB8=1;
108 1 Send(KEY[5]);
109 1 Send(KEY[6]);
110 1 Send(KEY[7]);
111 1 Send(KEY[8]);
112 1 Send(KEY[9]);
113 1 Send(KEY[10]);
114 1 Send(KEY[11]);
115 1 for(i=0;i<5;i++)
116 1 {
117 2 return_frame[i]=Receive();
C51 COMPILER V7.50 TEXT7 04/10/2009 11:52:04 PAGE 3
118 2 if(return_frame[0]!=0x47)
119 2 return 0;
120 2 }
121 1 if(return_frame[2]!=0x00)
122 1 return 0;
123 1 for(i=0;i<5;i++)
124 1 {
125 2 Send(return_frame[i]);
126 2 }
127 1 return 1;
128 1 }
129
130 /********************密码验证*********************/
131 bit check_password()
132 {
133 1 uchar i;
134 1 TB8=1;
135 1 Send(CHECK[0]);
136 1 TB8=0;
137 1 Send(CHECK[1]);
138 1 Send(CHECK[2]);
139 1 Send(CHECK[3]);
140 1 Send(CHECK[4]);
141 1 TB8=1;
142 1 Send(CHECK[5]);
143 1
144 1 for(i=0;i<5;i++)
145 1 {
146 2 return_frame[i]=Receive();
147 2 if(return_frame[0]!=0x47)
148 2 return 0;
149 2 }
150 1 if(return_frame[2]!=0x00)
151 1 return 0;
152 1 for(i=0;i<5;i++)
153 1 {
154 2 Send(return_frame[i]);
155 2 }
156 1 return 1;
157 1 }
158
159 /********************读卡*********************/
160 bit read()
161 {
162 1 uchar i;
163 1 TB8=1;
164 1 Send(READDATA[0]);
165 1 TB8=0;
166 1 Send(READDATA[1]);
167 1 Send(READDATA[2]);
168 1 Send(READDATA[3]);
169 1 TB8=1;
170 1 Send(READDATA[4]);
171 1
172 1 for(i=0;i<21;i++)
173 1 {
174 2 return_frame[i]=Receive();
175 2 if(return_frame[0]!=0x47)
176 2 return 0;
177 2 }
178 1 if(return_frame[2]!=0x00)
179 1 return 0;
C51 COMPILER V7.50 TEXT7 04/10/2009 11:52:04 PAGE 4
180 1 for(i=0;i<21;i++)
181 1 {
182 2 Send(return_frame[i]);
183 2 }
184 1 DATA[0]=return_frame[4];
185 1 DATA[1]=return_frame[5];
186 1 DATA[2]=return_frame[6];
187 1 return 1;
188 1 }
189
190 /********************写卡*********************/
191 bit write()
192 {
193 1 uchar i;
194 1 TB8=1;
195 1 Send(WRITEDATA[0]);
196 1 TB8=0;
197 1 Send(WRITEDATA[1]);
198 1 Send(WRITEDATA[2]);
199 1 Send(WRITEDATA[3]);
200 1 TB8=1;
201 1 Send(WRITEDATA[4]);
202 1 TB8=0;
203 1 Send(WRITEDATA[5]);
204 1 Send(WRITEDATA[6]);
205 1 for(i=7;i<20;i++)
206 1 {
207 2 Send(WRITEDATA[i]);
208 2 }
209 1 TB8=0;
210 1 Send(WRITEDATA[20]);
211 1 for(i=0;i<5;i++)
212 1 {
213 2 return_frame[i]=Receive();
214 2 if(return_frame[0]!=0x47)
215 2 return 0;
216 2 }
217 1 for(i=0;i<5;i++)
218 1 {
219 2 Send(return_frame[i]);
220 2 }
221 1 if(return_frame[2]!=0x00)
222 1 return 0;
223 1 else
224 1 {
225 2
226 2 return 1;
227 2 }
228 1 }
229
230 /***************发送单字节数据********************/
231 void Send(uchar m)
232 {
233 1 TI = 0;
234 1 DE = 0;
235 1 RE = 0;
236 1 SBUF = m;
237 1 while(!TI);
238 1 TI = 0;
239 1 }
240
241 /***************接收单字节数据*******************/
C51 COMPILER V7.50 TEXT7 04/10/2009 11:52:04 PAGE 5
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -