📄 carport.lst
字号:
175 2 while(1)
176 2 {
177 3 if(GET_ok) break; //数据获得成功
178 3 GET_ok=GET_position(Send_data,Data_complit);
179 3 }
C51 COMPILER V8.05a CARPORT 12/22/2008 17:43:36 PAGE 4
180 2
181 2 /**/ KEY_data_2=KEY_scan(); //等待确认键按下
182 2 while(1)
183 2 {
184 3
185 3 // if(KEY_data_2=10) side=1;
186 3 if (KEY_data_2==10) //确认键/返回键按下处理
187 3 {
188 4 KEY_OK=1;
189 4 KEY_ESC=0;
190 4 Clear_12864(1);
191 4 Clear_12864(2);
192 4 goto RET4;// 进入下一界面显示
193 4 break;
194 4 }
195 3 else if (KEY_data_2==11) //返回键按下
196 3 {
197 4 KEY_OK=0;
198 4 KEY_ESC=1;
199 4 BlackInput(6,16,2,0);
200 4 delay(1000);
201 4 goto RET3;//返回上一个界面
202 4 break;
203 4 }
204 3
205 3 KEY_data_2=KEY_scan();
206 3 }
207 2
208 2 /**************************************
209 2 显示执行画面
210 2 ***************************************/
211 2 RET4:
212 2 Clear_12864(1);
213 2 Clear_12864(2);
214 2 Work_Piture(0,0,1); //下位机执行画面
215 2 //RET5:
216 2
217 2
218 2 /**************************************
219 2 向下位机送数据
220 2 ***************************************/
221 2 //判断SENDEDATE 返回错误则延时一段实际后继续传送;
222 2
223 2 int_string_com();
224 2 while(1)
225 2 {
226 3 if(senddate())
227 3 break; //传输正确
228 3 else
229 3 delay(50);//如果出错则继续传送
230 3 }
231 2 delay(100);
232 2
233 2 int_string_com();
234 2 while(!RI); //等待下位机返回执行完数据
235 2 RI=0;
236 2 ch=SBUF;
237 2 if(ch=='E')//操作成功 进行下次输入
238 2 {
239 3
240 3 Over_Piture(0,0,1); //调用LCD显示执行完成画面函数
241 3 for(delay_i=0;delay_i<40;delay_i++)
C51 COMPILER V8.05a CARPORT 12/22/2008 17:43:36 PAGE 5
242 3 {
243 4 delay(65500);
244 4 }
245 3 }
246 2 else if(ch=='F') //则严重出错 严重出错处理;
247 2 {
248 3 Eorr_Piture(0,0,1);
249 3 for(delay_i=0;delay_i<40;delay_i++)
250 3 {
251 4 delay(65500);
252 4 }
253 3 }
254 2 else //数据传输错误,请检查数据传输;
255 2 {
256 3
257 3 }
258 2 }
259 1
260 1
261 1 // delay(65000);
262 1 }
263 uchar senddate()
264 {
265 1 uchar ch;
266 1 while(1)
267 1 {
268 2 SBUF='A';
269 2 while(!TI);
270 2 TI=0;
271 2
272 2 while(!RI);
273 2 ch = SBUF;
274 2 RI=0;
275 2 if(ch=='B')
276 2 break;
277 2 else
278 2 delay(256);
279 2 }
280 1 Data_sent();//发送数据
281 1
282 1 while(!RI);
283 1 ch = SBUF;
284 1 RI=0;
285 1 if(ch=='C') //传输出错
286 1 return 0;
287 1 else //传输正确;
288 1 return 1;
289 1
290 1 }
291 uchar Data_sent(void)
292 {
293 1 uchar i;
294 1 uchar total=0;
295 1 for (i=0;i<7;i++)
296 1 {
297 2 SBUF=car_tab[i];
298 2 total=total+car_tab[i]; //求校验和
299 2 while(!TI);
300 2 TI=0;
301 2 }
302 1 SBUF=total; //传输校验和
303 1 while(!TI);
C51 COMPILER V8.05a CARPORT 12/22/2008 17:43:36 PAGE 6
304 1 TI=0;
305 1
306 1 return 1;
307 1 }
308
309 void int_string_com(void)
310 {
311 1 TMOD=0x20;
312 1 TL1=0xfd;
313 1 TH1=0xfd;
314 1 SCON=0x50; //设置串行口方式,工作于方式2
315 1 PCON=0x00;
316 1 ES=0; //允许串口中断
317 1 EA=1;//开总中断
318 1 TR1=1;
319 1 }
320
321 /*//串口中断程序
322 void String(void) interrupt 4 using 2
323 {
324 // uchar x,y;
325 if(RI)
326 {
327 Reci=SBUF; //单片机接收数据
328 // for (i=0;i<8;i++)
329 // { }
330 // p=p-8;
331 }
332 RI=0;
333 } */
334 void delay(uint y)
335 {
336 1 uchar x;
337 1 for(;y;y--)
338 1 for(x=0;x<100;x++);
339 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 3473 ----
CONSTANT SIZE = 7072 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 3 90
IDATA SIZE = 7 ----
BIT SIZE = 4 7
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -