📄 temp_adc.lst
字号:
038C 1202AF 460 lcall division_16
038F 8E42 461 mov out5,r6
TEMP_ADC PAGE 9
0391 1202AF 462 lcall division_16
0394 8E41 463 mov out6,r6
0396 853B40 464 mov out7,t00
0399 434030 465 over56: orl out7,#30h ;converting all decimal values to ASCII
039C 434130 466 orl out6,#30h
039F 434230 467 orl out5,#30h
03A2 434330 468 orl out4,#30h
03A5 434430 469 orl out3,#30h
03A8 434530 470 orl out2,#30h
03AB 434630 471 orl out1,#30h
03AE 434730 472 orl out0,#30h
03B1 22 473 ret
03B2 474 dec_to_hex: ;Routine convert the 4 digit decimal into 2 byte hex
03B2 7800 475 mov r0,#00h ;Input in t3 t2 t1 t0 and output in hex1 hex0
03B4 7900 476 mov r1,#00h
03B6 7A00 477 mov r2,#00h
03B8 7B00 478 mov r3,#00h
03BA 7C00 479 mov r4,#00h
03BC 7D00 480 mov r5,#00h
03BE 7E00 481 mov r6,#00h
03C0 7F00 482 mov r7,#00h
03C2 753C00 483 mov hex1,#00h
03C5 753D00 484 mov hex0,#00h
03C8 A838 485 mov r0,t3
03CA B80003 486 cjne r0,#00h,load0
03CD 0203DA 487 ljmp load1
03D0 E8 488 load0: mov a,r0
03D1 75F00A 489 mov b,#0ah
03D4 A4 490 mul ab
03D5 F8 491 mov r0,a
03D6 FF 492 mov r7,a
03D7 753E64 493 mov m641,#64h
03DA AA39 494 load1: mov r2,t2
03DC BA0003 495 cjne r2,#00h,load2
03DF 0203E5 496 ljmp load3
03E2 753F64 497 load2: mov m640,#64h
03E5 AC3A 498 load3: mov r4,t11
03E7 BC0003 499 cjne r4,#00h,load5
03EA 0203F4 500 ljmp load6
03ED EC 501 load5: mov a,r4
03EE 75F00A 502 mov b,#0ah
03F1 A4 503 mul ab
03F2 FC 504 mov r4,a
03F3 FE 505 mov r6,a
03F4 AD3B 506 load6: mov r5,t00
03F6 BD0001 507 cjne r5,#00h,starting
03F9 00 508 nop
03FA AD3B 509 starting:mov r5,t00
03FC BD0003 510 cjne r5,#00h,here5
03FF 020406 511 ljmp now2
0402 053D 512 here5: inc hex0
0404 DDFC 513 djnz r5,here5
0406 EE 514 now2: mov a,r6
0407 FC 515 mov r4,a
0408 BC0003 516 cjne r4,#00h,here4
040B 020412 517 ljmp now3
040E 053D 518 here4: inc hex0
0410 DCFC 519 djnz r4,here4
TEMP_ADC PAGE 10
0412 AA39 520 now3: mov r2,t2
0414 BA0003 521 cjne r2,#00h,here3
0417 02042D 522 ljmp now4
041A AB3F 523 here3: mov r3,m640
041C C3 524 here2: clr c
041D E53D 525 mov a,hex0
041F 2401 526 add a,#01h
0421 F53D 527 mov hex0,a
0423 E53C 528 mov a,hex1
0425 3400 529 addc a,#00h
0427 F53C 530 mov hex1,a
0429 DBF1 531 cont: djnz r3,here2
042B DAED 532 djnz r2,here3
042D EF 533 now4: mov a,r7
042E F8 534 mov r0,a
042F B80003 535 cjne r0,#00h,here1
0432 020448 536 ljmp home
0435 A93E 537 here1: mov r1,m641
0437 C3 538 here0: clr c
0438 E53D 539 mov a,hex0
043A 2401 540 add a,#01h
043C F53D 541 mov hex0,a
043E E53C 542 mov a,hex1
0440 3400 543 addc a,#00h
0442 F53C 544 mov hex1,a
0444 D9F1 545 cont1: djnz r1,here0
0446 D8ED 546 djnz r0,here1
0448 22 547 home: ret
0449 548 thfound: ;routine provide threshold value range from 20 to 49 degree celcius for user
0449 FE 549 mov r6,a
044A BE011B 550 cjne r6,#01h,dec_th
044D 0524 551 inc threshold0
044F E524 552 mov a,threshold0
0451 B43A30 553 cjne a,#3ah,ter_return
0454 E523 554 mov a,threshold1
0456 B43408 555 cjne a,#34h,notninerth
0459 752332 556 mov threshold1,#32h
045C 752430 557 mov threshold0,#30h
045F 8023 558 sjmp ter_return
0461 559 notninerth:
0461 0523 560 inc threshold1
0463 752430 561 mov threshold0,#30h
0466 801C 562 sjmp ter_return
0468 BE0219 563 dec_th: cjne r6,#02h,ter_return
046B 1524 564 dec threshold0
046D E524 565 mov a,threshold0
046F B42F12 566 cjne a,#2fh,ter_return
0472 E523 567 mov a,threshold1
0474 B43208 568 cjne a,#32h,notzerorth
0477 752334 569 mov threshold1,#34h
047A 752439 570 mov threshold0,#39h
047D 8005 571 sjmp ter_return
047F 572 notzerorth:
047F 1523 573 dec threshold1
0481 752439 574 mov threshold0,#39h
0484 575 ter_return:
0484 7512C5 576 mov lcdcom,#0c5h
0487 120552 577 lcall command
TEMP_ADC PAGE 11
048A 852311 578 mov disp_data,threshold1
048D 12056F 579 lcall data_routine
0490 852411 580 mov disp_data,threshold0
0493 12056F 581 lcall data_routine
0496 12059B 582 lcall delay140m ;debouncing delay
0499 12059B 583 lcall delay140m
049C 12059B 584 lcall delay140m
049F 22 585 ret
04A0 586 intfound: ;routine provide recording interval range from 01 to 99 secs for user
04A0 FE 587 mov r6,a
04A1 BE011B 588 cjne r6,#01h,dec_int
04A4 0522 589 inc interval0
04A6 E522 590 mov a,interval0
04A8 B43A30 591 cjne a,#3ah,int_return
04AB E521 592 mov a,interval1
04AD B43908 593 cjne a,#39h,notniner
04B0 752231 594 mov interval0,#31h
04B3 752130 595 mov interval1,#30h
04B6 8023 596 sjmp int_return
04B8 0521 597 notniner:inc interval1
04BA 752230 598 mov interval0,#30h
04BD 801C 599 sjmp int_return
04BF BE0219 600 dec_int:cjne r6,#02h,int_return
04C2 1522 601 dec interval0
04C4 E522 602 mov a,interval0
04C6 B43012 603 cjne a,#30h,int_return
04C9 E521 604 mov a,interval1
04CB B43008 605 cjne a,#30h,notzeror
04CE 752239 606 mov interval0,#39h
04D1 752139 607 mov interval1,#39h
04D4 8005 608 sjmp int_return
04D6 1521 609 notzeror:dec interval1
04D8 752239 610 mov interval0,#39h
04DB 7512C5 611 int_return: mov lcdcom,#0c5h
04DE 120552 612 lcall command
04E1 852111 613 mov disp_data,interval1
04E4 12056F 614 lcall data_routine
04E7 852211 615 mov disp_data,interval0
04EA 12056F 616 lcall data_routine
04ED 12059B 617 lcall delay140m ;debouncing delay
04F0 12059B 618 lcall delay140m
04F3 12059B 619 lcall delay140m
04F6 22 620 ret
04F7 621 display_text: ;display a 16 byte in ASCII string on lcd
04F7 75100F 622 mov count,#0fh
04FA 7400 623 nextchar:mov a,#00h
04FC 93 624 movc a,@a+dptr
04FD F511 625 mov disp_data,a
04FF 12056F 626 lcall data_routine
0502 A3 627 inc dptr
0503 E510 628 mov a,count
0505 B40002 629 cjne a,#00h,next1
0508 8004 630 sjmp here11
050A 1510 631 next1: dec count
050C 80EC 632 sjmp nextchar
050E 22 633 here11: ret
050F 634 lcd_initialize: ;initialize lcd
050F 751238 635 mov lcdcom,#38h ;5*7 matrix 16*2 char lcd
TEMP_ADC PAGE 12
0512 120552 636 lcall command
0515 120589 637 lcall delay40u
0518 751201 638 mov lcdcom,#01h ;clear lcd
051B 120552 639 lcall command
051E 120592 640 lcall delay14m
0521 75120E 641 mov lcdcom,#0Eh ;blink off, cursor ON, display ON
0524 120552 642 lcall command
0527 120589 643 lcall delay40u
052A 751206 644 mov lcdcom,#06h ;shift cursor right
052D 120552 645 lcall command
0530 120589 646 lcall delay40u
0533 22 647 ret
0534 751201 648 clear_lcd:mov lcdcom,#01h ;clear LCD screen
0537 120552 649 lcall command
053A 120592 650 lcall delay14m
053D 751280 651 mov lcdcom,#80h
0540 120552 652 lcall command
0543 22 653 ret
0544 654 cursoroff: ;lcd cursor off
0544 75120C 655 mov lcdcom,#0ch
0547 120552 656 lcall command
054A 22 657 ret
054B 658 cursoron: ;lcd cursor on
054B 75120E 659 mov lcdcom,#0eh
054E 120552 660 lcall command
0551 22 661 ret
0552 662 command: ;routine to send the command to LCD
0552 C2B2 663 clr p3.2 ;rs=0
0554 C2B3 664 clr p3.3 ;rw=0
0556 120584 665 lcall delay10u ;delay of 10usec
0559 D2B4 666 setb p3.4 ;E=1;
055B 120584 667 lcall delay10u ;delay of 10usec
055E 851290 668 mov p1,lcdcom ;mov data
0561 120584 669 lcall delay10u ;delay of 10usec
0564 C2B4 670 clr p3.4 ;E=0
0566 120584 671 lcall delay10u
0569 D2B3 672 setb p3.3 ;rw=1
056B 120589 673 lcall delay40u
056E 22 674 ret
056F 675 data_routine: ;routine to send ASCII data to LCD
056F D2B2 676 setb p3.2 ;rs=1
0571 C2B3 677 clr p3.3 ;rw=0
0573 120584 678 lcall delay10u
0576 D2B4 679 setb p3.4 ;E=1;
0578 120584 680 lcall delay10u
057B 851190 681 mov p1,disp_data
057E C2B4 682 clr p3.4 ;E=0
0580 120589 683 lcall delay40u
0583 22 684 ret
0584 685 delay10u: ;delay of 10 usec
0584 7C04 686 mov r4,#04h
0586 DCFE 687 here10u:djnz r4,here10u
0588 22 688 ret
0589 689 delay40u: ;delay of 40 usec
0589 7B09 690 mov r3,#09h
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -