📄 zhts.lst
字号:
285 1
286 1 }
287
288
289 void dazhuanhuan()
290 {unsigned char a,k;
291 1 wela=0;
292 1 dula=0;
293 1 csda=0;
294 1 a=0;
295 1 dawr=0;
296 1 for(k=0;k<255;k++)
297 1 {
298 2 P0=a;
299 2 delay(50);
300 2 a++;
301 2 }
302 1 }
303
C51 COMPILER V6.12 ZHTS 11/28/2006 16:29:48 PAGE 6
304
305 void adzhuanhuan()
306 {uchar a,b,A1,A2,A2t,A3,adval;
307 1 b=0xf0;
308 1 while(b==0xf0)
309 1 {
310 2 wela=1;
311 2 P0=0; //选通ADCS
312 2 adwr=0; //AD写入(随便写个什么都行,主要是为了启动AD转换)
313 2 _nop_();
314 2 adwr=1;
315 2 P0=0xff; //关闭ADCS
316 2 delay(10);
317 2 wela=0; //关闭有AD片选信号锁存器的锁存端以防止在操作数码管时使AD的片选发生变化
318 2 for(a=20;a>0;a--) //需要注意的是ADC0804在写和读之间的时间间隔要足够长否则无法读出数据
319 2 { //这里把显示部分放这里的原因也是为了增加写读之间的时间间隔
-
-
320 3 display(A1,A2,A3);
321 3 } //送去显示各位。
322 2 wela=1; //重新打开有AD片选信号锁存器的锁存端
323 2 P1=0xff; //读取P1口之前先给其写全1
324 2 P0=0; //选通ADCS
325 2 adrd=0; //AD读使能
326 2 adval=P1; //AD数据读取赋给P1口
327 2 adrd=1;
328 2 P0=0xff; //关闭ADCS
329 2 adwr=0;
330 2 P1=adval; //同时把AD的值送八个发光二极显示
331 2 A1=adval/100; //分出百,十,和个位
332 2 A2t=adval%100;
333 2 A2=A2t/10;
334 2 A3=A2t%10;
335 2
336 2 P3=0xf0;//扫描键盘 看是否有见键按下
337 2 b=P3&0xf0;
338 2 }
339 1 }
340
341
342
343
344 //4*4键盘检测程序,按下键后相应的代码显示在数码管上
345 void display1(unsigned char num)
346 {
347 1 P0=table[num];
348 1 // P0=0xff;
349 1 dula=1;
350 1 dula=0;
351 1 P0=0xc7;
352 1 wela=1;
353 1 wela=0;
354 1
355 1
356 1
357 1 }
358 void jianpan()
359 {unsigned char temp,key;
360 1 dula=0;
361 1 wela=0;
362 1 while(1)
363 1 {
C51 COMPILER V6.12 ZHTS 11/28/2006 16:29:48 PAGE 7
364 2 P3=0xfe;
365 2 temp=P3;
366 2 temp=temp&0xf0;
367 2 if(temp!=0xf0)
368 2 {
369 3 delay(10);
370 3 if(temp!=0xf0)
371 3 {
372 4 temp=P3;
373 4 switch(temp)
374 4 {
375 5 case 0xee:
376 5 key=0;
377 5 break;
378 5
379 5 case 0xde:
380 5 key=1;
381 5 break;
382 5
383 5 case 0xbe:
384 5 key=2;
385 5 break;
386 5
387 5 case 0x7e:
388 5 key=3;
389 5 break;
390 5 }
391 4 while(temp!=0xf0)
392 4 {
393 5 temp=P3;
394 5 temp=temp&0xf0;
395 5 beep=0;
396 5 }
397 4 beep=1;
398 4 display1(key);
399 4 // P0=table[key];
400 4 /* P0=0xff;
401 4 dula=1;
402 4
403 4 while(i--);
404 4 dula=0;
405 4 P0=0xc0;
406 4 wela=1;
407 4 wela=0;
408 4 dula=0;
409 4 wela=0;
410 4 P0=0xff;
411 4 dula=1;
412 4 dula=0;
413 4 P0=0xc5;
414 4 wela=1;
415 4 wela=0; */
416 4 P1=0xfe;
417 4 }
418 3 }
419 2 P3=0xfd;
420 2 temp=P3;
421 2 temp=temp&0xf0;
422 2 if(temp!=0xf0)
423 2 {
424 3 delay(10);
425 3 if(temp!=0xf0)
C51 COMPILER V6.12 ZHTS 11/28/2006 16:29:48 PAGE 8
426 3 {
427 4 temp=P3;
428 4 switch(temp)
429 4 {
430 5 case 0xed:
431 5 key=4;
432 5 break;
433 5
434 5 case 0xdd:
435 5 key=5;
436 5 break;
437 5
438 5 case 0xbd:
439 5 key=6;
440 5 break;
441 5
442 5 case 0x7d:
443 5 key=7;
444 5 break;
445 5 }
446 4 while(temp!=0xf0)
447 4 {
448 5 temp=P3;
449 5 temp=temp&0xf0;
450 5 beep=0;
451 5 }
452 4 beep=1;
453 4 display1(key);
454 4 /* P0=table[key];
455 4 dula=1;
456 4 // while(100--);
457 4 dula=0;
458 4 P0=0xc0;
459 4 wela=1;
460 4 wela=0;
461 4 */ P1=0xfc;
462 4 }
463 3 }
464 2 P3=0xfb;
465 2 temp=P3;
466 2 temp=temp&0xf0;
467 2 if(temp!=0xf0)
468 2 {
469 3 delay(10);
470 3 if(temp!=0xf0)
471 3 {
472 4 temp=P3;
473 4 switch(temp)
474 4 {
475 5 case 0xeb:
476 5 key=8;
477 5 break;
478 5
479 5 case 0xdb:
480 5 key=9;
481 5 break;
482 5
483 5 case 0xbb:
484 5 key=10;
485 5 break;
486 5
487 5 case 0x7b:
C51 COMPILER V6.12 ZHTS 11/28/2006 16:29:48 PAGE 9
488 5 key=11;
489 5 break;
490 5 }
491 4 while(temp!=0xf0)
492 4 {
493 5 temp=P3;
494 5 temp=temp&0xf0;
495 5 beep=0;
496 5 }
497 4 beep=1;
498 4 display1(key);
499 4 /* P0=table[key];
500 4 dula=1;
501 4 // while(100--);
502 4 dula=0;
503 4 P0=0xc0;
504 4 wela=1;
505 4 wela=0;
506 4 */ P1=0xf8;
507 4 }
508 3 }
509 2 P3=0xf7;
510 2 temp=P3;
511 2 temp=temp&0xf0;
512 2 if(temp!=0xf0)
513 2 {
514 3 delay(10);
515 3 if(temp!=0xf0)
516 3 {
517 4 temp=P3;
518 4 switch(temp)
519 4 {
520 5 case 0xe7:
521 5 key=12;
522 5 break;
523 5
524 5 case 0xd7:
525 5 key=13;
526 5 break;
527 5
528 5 case 0xb7:
529 5 key=14;
530 5 break;
531 5
532 5 case 0x77:
533 5 key=15;
534 5 break;
535 5 }
536 4 while(temp!=0xf0)
537 4 {
538 5 temp=P3;
539 5 temp=temp&0xf0;
540 5 beep=0;
541 5 }
542 4 beep=1;
543 4 display1(key);
544 4 /* P0=table[key];
545 4 dula=1;
546 4 // while(100--);
547 4 dula=0;
548 4 P0=0xc0;
549 4 wela=1;
C51 COMPILER V6.12 ZHTS 11/28/2006 16:29:48 PAGE 10
550 4 wela=0;
551 4 */ P1=0xf0;
552 4 }
553 3 }
554 2 }
555 1 }
556
557
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1174 ----
CONSTANT SIZE = 26 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 7 14
IDATA SIZE = ---- ----
BIT SIZE = ---- 2
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -