📄 main.ls1
字号:
431 ; LCD_RS = 0;
432 ; SOURCE LINE # 90
0000 C2A6 433 CLR P2_6
434 ; WriteLCD(command);
435 ; SOURCE LINE # 91
0002 020000 F 436 LJMP _WriteLCD
437 ; END OF _WriteCommand
438
439 ; }
440 ; void WriteCharacter(unsigned char character)
441
---- 442 RSEG ?PR?_WriteCharacter?MAIN
0000 443 _WriteCharacter:
444 USING 0
445 ; SOURCE LINE # 93
446 ;---- Variable 'character?745' assigned to Register 'R7' ----
447 ; {
448 ; SOURCE LINE # 94
449 ; LCD_RS = 1;
A51 MACRO ASSEMBLER MAIN 11/27/2006 23:50:26 PAGE 8
450 ; SOURCE LINE # 95
0000 D2A6 451 SETB P2_6
452 ; WriteLCD(character);
453 ; SOURCE LINE # 96
0002 020000 F 454 LJMP _WriteLCD
455 ; END OF _WriteCharacter
456
457 ; }
458 ; void SendString2LCD(unsigned char code *p)
459
---- 460 RSEG ?PR?_SendString2LCD?MAIN
0000 461 _SendString2LCD:
462 USING 0
463 ; SOURCE LINE # 98
0000 8E00 F 464 MOV p?846,R6
0002 8F00 F 465 MOV p?846+01H,R7
466 ; {
467 ; SOURCE LINE # 99
468 ; unsigned char i=0;
469 ; SOURCE LINE # 100
470 ;---- Variable 'i?847' assigned to Register 'R1' ----
0004 E4 471 CLR A
0005 F9 472 MOV R1,A
0006 473 ?C0015:
474 ; while(p[i]!=0)
475 ; SOURCE LINE # 101
0006 E500 F 476 MOV A,p?846+01H
0008 29 477 ADD A,R1
0009 F582 478 MOV DPL,A
000B E4 479 CLR A
000C 3500 F 480 ADDC A,p?846
000E F583 481 MOV DPH,A
0010 E4 482 CLR A
0011 93 483 MOVC A,@A+DPTR
0012 FF 484 MOV R7,A
0013 600D 485 JZ ?C0017
486 ; {
487 ; SOURCE LINE # 102
488 ; WriteCharacter(p[i]);
489 ; SOURCE LINE # 103
0015 120000 F 490 LCALL _WriteCharacter
491 ; i++;
492 ; SOURCE LINE # 104
0018 09 493 INC R1
494 ; Delay(200);
495 ; SOURCE LINE # 105
0019 7FC8 496 MOV R7,#0C8H
001B 7E00 497 MOV R6,#00H
001D 120000 F 498 LCALL _Delay
499 ; }
500 ; SOURCE LINE # 106
0020 80E4 501 SJMP ?C0015
502 ; }
503 ; SOURCE LINE # 107
0022 504 ?C0017:
0022 22 505 RET
506 ; END OF _SendString2LCD
507
508 ; void Convert(void)
509
---- 510 RSEG ?PR?Convert?MAIN
0000 511 Convert:
512 USING 0
513 ; SOURCE LINE # 108
514 ; {
515 ; SOURCE LINE # 109
A51 MACRO ASSEMBLER MAIN 11/27/2006 23:50:26 PAGE 9
516 ; ADC_CS = 0;
517 ; SOURCE LINE # 110
0000 C2B7 518 CLR P3_7
519 ; DelayShort();
520 ; SOURCE LINE # 111
0002 120000 F 521 LCALL DelayShort
522 ; ADC_WR = 0;
523 ; SOURCE LINE # 112
0005 C2A7 524 CLR P2_7
525 ; DelayShort();
526 ; SOURCE LINE # 113
0007 120000 F 527 LCALL DelayShort
528 ; ADC_WR = 1;
529 ; SOURCE LINE # 114
000A D2A7 530 SETB P2_7
531 ; DelayShort();
532 ; SOURCE LINE # 115
000C 120000 F 533 LCALL DelayShort
534 ; ADC_CS = 1;
535 ; SOURCE LINE # 116
000F D2B7 536 SETB P3_7
537 ;
538 ; // Tre cho chuyen doi xong
539 ; Delay(10);
540 ; SOURCE LINE # 119
0011 7F0A 541 MOV R7,#0AH
0013 7E00 542 MOV R6,#00H
0015 120000 F 543 LCALL _Delay
544 ; // Chuyen Port thanh cong vao de chuan bi doc du lieu
545 ; ADC_DATA = 0xFF;
546 ; SOURCE LINE # 121
0018 7580FF 547 MOV P0,#0FFH
548 ; ADC_CS = 0;
549 ; SOURCE LINE # 122
001B C2B7 550 CLR P3_7
551 ; DelayShort();
552 ; SOURCE LINE # 123
001D 120000 F 553 LCALL DelayShort
554 ; ADC_RD = 0;
555 ; SOURCE LINE # 124
0020 C2A6 556 CLR P2_6
557 ; DelayShort();
558 ; SOURCE LINE # 125
0022 120000 F 559 LCALL DelayShort
560 ; // Doc du lieu vao
561 ; voltage = ADC_DATA;
562 ; SOURCE LINE # 127
0025 858000 F 563 MOV voltage,P0
564 ; ADC_RD = 1;
565 ; SOURCE LINE # 128
0028 D2A6 566 SETB P2_6
567 ; DelayShort();
568 ; SOURCE LINE # 129
002A 120000 F 569 LCALL DelayShort
570 ; ADC_CS = 1;
571 ; SOURCE LINE # 130
002D D2B7 572 SETB P3_7
573 ; }
574 ; SOURCE LINE # 131
002F 22 575 RET
576 ; END OF Convert
577
578 ; void Calculate(void)
579
---- 580 RSEG ?PR?Calculate?MAIN
0000 581 Calculate:
A51 MACRO ASSEMBLER MAIN 11/27/2006 23:50:26 PAGE 10
582 USING 0
583 ; SOURCE LINE # 132
584 ; {
585 ; SOURCE LINE # 133
586 ; unsigned int temp;
587 ; // tach lay phan nguyen va phan thap phan
588 ; temp = voltage*10/51;
589 ; SOURCE LINE # 136
0000 E500 F 590 MOV A,voltage
0002 75F00A 591 MOV B,#0AH
0005 A4 592 MUL AB
0006 75F033 593 MOV B,#033H
0009 84 594 DIV AB
595 ;---- Variable 'temp?1048' assigned to Register 'R2/R3' ----
000A FB 596 MOV R3,A
597 ; digit1 = (unsigned char)(temp/10);
598 ; SOURCE LINE # 137
000B 7C00 599 MOV R4,#00H
000D 7D0A 600 MOV R5,#0AH
000F FF 601 MOV R7,A
0010 7E00 602 MOV R6,#00H
0012 120000 F 603 LCALL ?C?UIDIV
0015 8F00 F 604 MOV digit1,R7
605 ; digit2 = (unsigned char)(temp%10);
606 ; SOURCE LINE # 138
0017 7E00 607 MOV R6,#00H
0019 AF03 608 MOV R7,AR3
001B 7C00 609 MOV R4,#00H
001D 7D0A 610 MOV R5,#0AH
001F 120000 F 611 LCALL ?C?UIDIV
0022 8D00 F 612 MOV digit2,R5
613 ; // chuyen sang ma ASCII
614 ; digit1 = digit1 + 0x30;
615 ; SOURCE LINE # 140
0024 7430 616 MOV A,#030H
0026 2500 F 617 ADD A,digit1
0028 F500 F 618 MOV digit1,A
619 ; digit2 = digit2 + 0x30;
620 ; SOURCE LINE # 141
002A 7430 621 MOV A,#030H
002C 2500 F 622 ADD A,digit2
002E F500 F 623 MOV digit2,A
624 ; }
625 ; SOURCE LINE # 142
0030 22 626 RET
627 ; END OF Calculate
628
629 ; void DisplayVoltage(void)
630
---- 631 RSEG ?PR?DisplayVoltage?MAIN
0000 632 DisplayVoltage:
633 USING 0
634 ; SOURCE LINE # 143
635 ; {
636 ; SOURCE LINE # 144
637 ; // Dua con tro den vi tri can hien thi
638 ; WriteCommand(0xCD);
639 ; SOURCE LINE # 146
0000 7FCD 640 MOV R7,#0CDH
0002 120000 F 641 LCALL _WriteCommand
642 ; WriteCharacter(digit1);
643 ; SOURCE LINE # 147
0005 AF00 F 644 MOV R7,digit1
0007 120000 F 645 LCALL _WriteCharacter
646 ; WriteCharacter('.');
647 ; SOURCE LINE # 148
A51 MACRO ASSEMBLER MAIN 11/27/2006 23:50:26 PAGE 11
000A 7F2E 648 MOV R7,#02EH
000C 120000 F 649 LCALL _WriteCharacter
650 ; WriteCharacter(digit2);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -