📄 prg.lst
字号:
556 RST_FLASH:
0320 C262 557 CLR CALL_RET
0322 20B70A 558 JB IC_READY,RST_F0 ;33333333333333333333#############????/
0325 120085 559 LCALL CLR_INTERFACE
0328 D230 560 SETB ERR_IC_READY
032A D287 561 SETB _FLASH_PWR
032C D262 562 SETB CALL_RET
032E 22 563 RET
032F C230 564 RST_F0: CLR ERR_IC_READY
0331 D2B3 565 SETB _DX_EN
0333 C287 566 CLR _FLASH_PWR ;POWER THE FLASH
0335 7F32 567 MOV R7,#50 ;DELAY 50ms AFTER POWER
0337 1204CC 568 LCALL DELAY
033A D2B4 569 SETB _DX_RD
033C D281 570 SETB _FLASH_OE
033E D284 571 SETB _FLASH_WE
0340 C283 572 CLR _FLASH_RST
0342 7F01 573 MOV R7,#1 ;DELAY 1ms
0344 D283 574 SETB _FLASH_RST
0346 1204CC 575 LCALL DELAY
0349 22 576 RET
577
578 ;P>F,84N;(HARDWARE)!"6AH!ID!"P>F,TY84N;(HARDWARE)
579 RST_RDID_RST:
MCS-51 MACRO ASSEMBLER PRG 11/06/:1 PAGE 12
LOC OBJ LINE SOURCE
034A C26F 580 CLR IN_READ ;V4PP84N;V8An:s#,M#V9U}TZ=xPP5D2YWw
034C C26E 581 CLR IN_PROG ;V4PP84N;V8An:s#,M#V9U}TZ=xPP5D2YWw
582 ; CLR CALL_RET
034E 120320 583 LCALL RST_FLASH
0351 306201 584 JNB CALL_RET,R_R_R1
0354 22 585 RET
586 R_R_R1:
0355 120614 587 LCALL RD_ID
0358 306201 588 JNB CALL_RET,R_R_R2
035B 22 589 RET
590 R_R_R2:
035C 120320 591 LCALL RST_FLASH
035F 22 592 RET
593
594
595 ;P>F,2A3}/IHGx2A3}V8An5D92M,2?7V
596 ERASE_CMDX:
0360 C26F 597 CLR IN_READ ;V4PP2A3}V8An:s#,M#V9U}TZ=xPP5D2YWw
0362 C26E 598 CLR IN_PROG ;V4PP2A3}V8An:s#,M#V9U}TZ=xPP5D2YWw
0364 120677 599 LCALL WRITE_CMD_HEAD
0367 D2B4 600 SETB _DX_RD ;J}>]O_7=Or#:FLASH <-- HOST
0369 C2B3 601 CLR _DX_EN ;J}>]O_J9D\
036B 759080 602 MOV DXL,#80H ;ERASE CMD
036E 75A000 603 MOV DXH,#0 ;SET THE DATA: 80
0371 C284 604 CLR _FLASH_WE
0373 C282 605 CLR _FLASH_CE ;LATCH THE ADDR
0375 D282 606 SETB _FLASH_CE ;LATCH THE DATA
0377 D284 607 SETB _FLASH_WE ;
0379 120677 608 LCALL WRITE_CMD_HEAD
037C 22 609 RET
610
611 ;P>F,2A3}
612 CHIP_ERASE:
037D 12034A 613 LCALL RST_RDID_RST
0380 306201 614 JNB CALL_RET,C_E1
0383 22 615 RET
0384 1202EA 616 C_E1: LCALL RET_ID
0387 C237 617 CLR ERR_TIMEOUT
0389 C238 618 CLR ERR_ERASE
038B 120360 619 LCALL ERASE_CMDX
038E D2B4 620 SETB _DX_RD ;J}>]O_7=Or#:FLASH <-- HOST
0390 C2B3 621 CLR _DX_EN ;J}>]O_J9D\
622 ; MOV CB2,#0 ;H}WV=Z5XV7#(20BITS#)
623 ; MOV CB1,#5H
624 ; MOV CB0,#55H
625 ; LCALL SETADDR
0392 75A000 626 MOV DXH,#0
0395 759010 627 MOV DXL,#10H ;CHIP ERASE CMD
0398 C282 628 CLR _FLASH_CE
039A C284 629 CLR _FLASH_WE
039C D282 630 SETB _FLASH_CE
039E D284 631 SETB _FLASH_WE
03A0 D2B3 632 SETB _DX_EN ;9X1UJ}>]O_
633 ;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
634 ;www: jb TX_FLAG,www
MCS-51 MACRO ASSEMBLER PRG 11/06/:1 PAGE 13
LOC OBJ LINE SOURCE
635 ; LCALL RETOK
636 ;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
03A2 7D96 637 MOV R5,#150 ;DELAY 14s: WAIT TO FINISH ERASING
638 C_E_DLY:
03A4 7F00 639 MOV R7,#0
03A6 20850A 640 JB _FLASH_BUSY,C_E2
03A9 1204CC 641 LCALL DELAY ;200ms
03AC DDF6 642 DJNZ R5,C_E_DLY
03AE D237 643 SETB ERR_TIMEOUT
03B0 D262 644 SETB CALL_RET
03B2 22 645 RET
03B3 1203B7 646 C_E2: LCALL VERIFY_ERASE
647 ; JNB CALL_RET,C_E3 ;;X84PC
648 ; LCALL RETERR
649 ; RET
650 ;C_E3: MOV A,#CMD_CHIP_ERASE
651 ;C_EE: LCALL RETX1
03B6 22 652 RET
653
654 ;<l2i2A3}=a9{
655 VERIFY_ERASE:
03B7 7590FF 656 MOV DXL,#0FFH
03BA 75A0FF 657 MOV DXH,#0FFH
03BD C2B4 658 CLR _DX_RD ;J}>]O_7=Or#:FLASH --> HOST
03BF C2B3 659 CLR _DX_EN ;J}>]O_J9D\
03C1 C282 660 CLR _FLASH_CE
03C3 C281 661 CLR _FLASH_OE
03C5 859082 662 MOV DPL,DXL
03C8 85A083 663 MOV DPH,DXH
03CB D2B3 664 SETB _DX_EN ;9X1UJ}>]O_
03CD D282 665 SETB _FLASH_CE
03CF D281 666 SETB _FLASH_OE
03D1 74FF 667 MOV A,#0FFH
03D3 B59004 668 CJNE A,DXL,V_E3
03D6 B5A001 669 CJNE A,DXH,V_E3
03D9 22 670 RET
671 V_E3:
03DA D238 672 SETB ERR_ERASE
03DC D262 673 SETB CALL_RET
03DE 22 674 RET
675
676 ;IHGx2A3}
677 SECT_ERASE:
03DF 860A 678 MOV ADDR2,@R0 ;SAVE THE ADDR
03E1 08 679 INC R0
03E2 860B 680 MOV ADDR1,@R0 ;SAVE THE ADDR
03E4 08 681 INC R0
03E5 860C 682 MOV ADDR0,@R0 ;SAVE THE ADDR
683
03E7 12034A 684 LCALL RST_RDID_RST
03EA 306201 685 JNB CALL_RET,S_E1
03ED 22 686 RET
03EE 1202EA 687 S_E1: LCALL RET_ID
03F1 C237 688 CLR ERR_TIMEOUT
03F3 C238 689 CLR ERR_ERASE
MCS-51 MACRO ASSEMBLER PRG 11/06/:1 PAGE 14
LOC OBJ LINE SOURCE
03F5 120360 690 LCALL ERASE_CMDX
03F8 D2B4 691 SETB _DX_RD ;J}>]O_7=Or#:FLASH <-- HOST
03FA C2B3 692 CLR _DX_EN ;J}>]O_J9D\
03FC 850C12 693 MOV CB0,ADDR0 ;H}WV=ZIHGx5XV7#(20BITS#)
03FF 850B11 694 MOV CB1,ADDR1
0402 850A10 695 MOV CB2,ADDR2
0405 1205F8 696 LCALL SETADDR
0408 75A000 697 MOV DXH,#0
040B 759030 698 MOV DXL,#30H ;IHGx ERASE CMD
040E C282 699 CLR _FLASH_CE
0410 C284 700 CLR _FLASH_WE
0412 D282 701 SETB _FLASH_CE
0414 D284 702 SETB _FLASH_WE
0416 D2B3 703 SETB _DX_EN ;9X1UJ}>]O_
0418 7590FF 704 MOV DXL,#0FFH
041B 75A0FF 705 MOV DXH,#0FFH
041E 7D32 706 MOV R5,#50 ;DELAY 6s: WAIT TO FINISH ERASING
707 S_E_DLY:
0420 7F00 708 MOV R7,#0
0422 20850A 709 JB _FLASH_BUSY,S_E2
0425 1204CC 710 LCALL DELAY ;200ms
0428 DDF6 711 DJNZ R5,S_E_DLY
042A D237 712 SETB ERR_TIMEOUT
042C D262 713 SETB CALL_RET
042E 22 714 RET
042F 1203B7 715 S_E2: LCALL VERIFY_ERASE
716 ; JNB CALL_RET,S_E3 ;;X84PC
717 ; LCALL RETERR
718 ; RET
719 ;S_E3: MOV A,#CMD_SECT_ERASE;
720 ;S_EE: LCALL RETX1
0432 22 721 RET
722
723
724 ;=SJU/7"KM: 5XV7(8_4N;=5M4N;=1~6), J}>]3$6H(8_4N;=5M4N;=1~15), J}>]((3$6H-1)WV=Z), @[<S:M(1
WV=Z)(J}>]WV=ZJ}+@[<S:MWV=ZJ}=J}>]3$6H)
0433 F51C 725 TX_RX: MOV ABAK,A ;SAVE A
0435 9269 726 MOV CBAK,C ;SAVE C
0437 D2D3 727 SETB RS0 ;SELECT WORK REGS 1
0439 209964 728 TX_RX0: JB TI,TX ;7"KM/=SJU? 7"KM->TX
043C C298 729 RX: CLR RI ;=SJU
043E 206A79 730 JB RX_END,TRXEND ;
0441 E599 731 MOV A,SBUF ;FfE<P#Qi
0443 20D005 732 JB P,RX_P
0446 309A0E 733 JNB RB8,RX_0 ;OK
0449 814E 734 AJMP RX_PE
044B 209A09 735 RX_P: JB RB8,RX_0 ;OK
044E 306C45 736 RX_PE: JNB IN_RX,RX12 ;JG7qTZ=SJU9}3LVP#?
0451 D233 737 SETB ERR_PERITY
0453 D260 738 SETB RET_ERR ;JG: VC;X4p4mNs1jV>
0455 8196 739 AJMP RX12
740
0457 206B11 741 RX_0: JB RX_FLAG,RX1 ;JG7qRQ>-JU5=M(Q6FpJ<1jJ6#?
045A B4885D 742 CJNE A,#COMM_START,TRXEND ;JG7qN*M(Q6FpJ<1jJ6,7q->END
045D D26B 743 SETB RX_FLAG ;JG: W<18=SJUJ}>]3$6H
MCS-51 MACRO ASSEMBLER PRG 11/06/:1 PAGE 15
LOC OBJ LINE SOURCE
045F 758A00 744 RX0: MOV TL0,#0H ;T0VC3uV5(12M,8.191ms): IhVC=SJU3,J1--3,J1:sM#V9=SJ
U,Ge3}=SJU1jV>
0462 758C00 745 MOV TH0,#0H ;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -