📄 c8051f340.lst
字号:
229 void Init_TTQH6(void) //初始化器件TTQH6
230 {
231 1 TTQH6_RST0 = 0;
232 1 Delay(1);
233 1 TTQH6_RST0 = 1;
234 1 Delay(20);
235 1 }
236 //----------------------------------------------------------------------------
237
238 byte Receive_RX0(void) //串口接收数据
239 {
C51 COMPILER V8.02 C8051F340 09/12/2007 10:54:10 PAGE 5
240 1 byte RX_data;
241 1 while(RI0==0);
242 1 RI0=0;
243 1 RX_data=SBUF0;
244 1 return (RX_data);
245 1 }
246
247 //----------------------------------------------------------------------------
248
249 /*void Tranfer_TX0(byte TX_data) //串口发送数据
250 {
251
252 if (TI0)
253 { TI0=0;
254 SBUF0=TX_data;
255 }
256
257 } */
258 //----------------------------------------------------------------------------
259 //----------------------------------------------------------------------------
260
261 uchar ASC_0(uchar x)
262 {
263 1 return(x == '0' ? 1 : 0);
264 1 }
265 //----------------------------------------------------------------------------
266 uchar ASC_0to9(uchar x)
267 {
268 1 return(((x < '0') || ('9' < x)) ? 0 : 1);
269 1 }
270 //----------------------------------------------------------------------------
271 uchar ASC_a_to_f(uchar x)
272 {
273 1 return(((x < 'a') || ('f' < x)) ? 0 : 1);
274 1 }
275 //----------------------------------------------------------------------------
276 uchar ASC_AtoF(uchar x)
277 {
278 1 return(((x < 'A') || ('F' < x)) ? 0 : 1);
279 1 }
280 //----------------------------------------------------------------------------
281 uchar ASC_0to9_A_a_to_F_f(uchar x)
282 {
283 1 return((ASC_0to9(x) || ASC_a_to_f(x) || ASC_AtoF(x)) ? 1 : 0);
284 1 }
285 //----------------------------------------------------------------------------
286 uchar EqualSign(uchar x)
287 {
288 1 return(x == '=' ? 1 : 0);
289 1 }
290 //----------------------------------------------------------------------------
291 uchar Semicolon(uchar x)
292 {
293 1 return(x == ';' ? 1 : 0);
294 1 }
295 //----------------------------------------------------------------------------
296 uchar ASC_R_r(uchar x)
297 {
298 1 return(((x == 'R') || (x == 'r')) ? 1 : 0);
299 1 }
300 //----------------------------------------------------------------------------
301 uchar ASC_L_l(uchar x)
C51 COMPILER V8.02 C8051F340 09/12/2007 10:54:10 PAGE 6
302 {
303 1 return(((x == 'L') || (x == 'l')) ? 1 : 0);
304 1 }
305 //----------------------------------------------------------------------------
306 uchar ASC_E_e(uchar x)
307 {
308 1 return(((x == 'E') || (x == 'e')) ? 1 : 0);
309 1 }
310 //----------------------------------------------------------------------------
311 uchar ASC_H_h(uchar x)
312 {
313 1 return(((x == 'H') || (x == 'h')) ? 1 : 0);
314 1 }
315 //----------------------------------------------------------------------------
316 uchar ASC_X_x(uchar x)
317 {
318 1 return(((x == 'X') || (x == 'x')) ? 1 : 0);
319 1 }
320 //----------------------------------------------------------------------------
321 uchar Question_mark(uchar x)
322 {
323 1 return((x == '?') ? 1 : 0);
324 1 }
325 //----------------------------------------------------------------------------
326 uchar ASC_P_p(uchar x)
327 {
328 1 return(((x == 'P') || (x == 'p')) ? 1 : 0);
329 1 }
330 //----------------------------------------------------------------------------
331 //----------------------------------------------------------------------------
332 void main(void)
333 {
334 1 uchar i;
335 1 uchar new_value;
336 1 uchar temp_addr;
337 1 uchar temp;
338 1 byte r_data;
339 1 bit flag=0;
340 1
341 1 Init_Device();
342 1 Init_TTQH6();
343 1 TI0=1; // TI: set TI to send first char of UART !!!!!!!!!!!
344 1 while(1)
345 1 {
346 2 //---------------------------------------------------------------------------
347 2
348 2
349 2 r_data=Receive_RX0();
350 2
351 2 if( ASC_H_h(r_data) ) //输入HELP,输出寄存器默认详单
352 2 {
353 3 r_data=Receive_RX0();
354 3 if(ASC_E_e(r_data))
355 3 {
356 4
357 4 if (ASC_L_l(r_data))
358 4 {
359 5 r_data=Receive_RX0();
360 5 if (ASC_P_p(r_data))
361 5
362 5 {
363 6 for (i=0; i<(sizeof(CmdListReg)/sizeof(TTQH6_PARAMETER)); i++)
C51 COMPILER V8.02 C8051F340 09/12/2007 10:54:10 PAGE 7
364 6 {
365 7 printf("R%03X,初始值%03X\n", CmdListReg[i].Parameter_ID,CmdListReg[i].
-Init_Value);
366 7 printf(CmdListReg[i].s);
367 7 printf("\n");
368 7 printf("\n");
369 7 }
370 6
371 6 printf("\n");
372 6 printf("更改:R___=0x______; 注意命令串后以分号结束\n");
373 6 printf("读出:R___=? \n");
374 6 printf("发送help,获得帮助\n");
375 6
376 6 }
377 5 else flag=1;
378 5
379 5 }
380 4 else flag=1;
381 4
382 4 }
383 3
384 3 else flag=1;
385 3 }
386 2 //---------------------------------------------------------------------
387 2 else if (ASC_R_r(r_data))
388 2
389 2 {
390 3 temp_addr=Receive_RX0();
391 3 if (ASC_0to9_A_a_to_F_f(temp_addr))
392 3 {
393 4 if (EqualSign(Receive_RX0()))
394 4 {
395 5 temp=Receive_RX0();
396 5 if (Question_mark(temp)) //寄存器查询,输入R___=?输出寄存器的值
397 5 {
398 6 printf("R%03X=%05X\n", temp_addr, Read_TTQH6(temp_addr));//读寄存器
399 6
400 6 }
401 5 //-------------------------------------------
402 5 else if (ASC_0(temp)) //更改寄存器的值
403 5 {
404 6 if (ASC_X_x(Receive_RX0()))
405 6 {
406 7 new_value=Receive_RX0();
407 7
408 7 if (ASC_0to9_A_a_to_F_f(new_value))
409 7 {
410 8 if (Semicolon(Receive_RX0()))
411 8 {
412 9 Write_TTQH6(temp_addr,new_value);//写寄存器
413 9 printf("修改成功");
414 9 }
415 8 else flag=1;
416 8 }
417 7 else flag=1;
418 7 }
419 6 else flag=1;
420 6 }
421 5 else flag=1;
422 5
423 5 //------------------------------------------
424 5 }
C51 COMPILER V8.02 C8051F340 09/12/2007 10:54:10 PAGE 8
425 4 else flag=1;
426 4 }
427 3 else flag=1;
428 3 }
429 2
430 2 //---------------------------------------------------------------------
431 2 else flag=1;
432 2
433 2 if (flag==1)
434 2 {
435 3 flag=0;
436 3 printf("输入格式错误,请重新输入,发送help,获得帮助\n");
437 3
438 3 }
439 2
440 2
441 2
442 2 }
443 1
444 1 }
445
446 //----------------------------------------------------------------------------
447 ///////////////////////////////// OVER ///////////////////////////////////////
448 //----------------------------------------------------------------------------
449 /*****************************************************************************/
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 867 ----
CONSTANT SIZE = 1036 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 4
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 + -