?? xspmain.src
字號:
LCALL IicReadByte
MOV Temp?1471,R7
; AddrData++;
; SOURCE LINE # 620
INC AddrData?1472+01H
MOV A,AddrData?1472+01H
JNZ ?C0146
INC AddrData?1472
?C0146:
; Temp[1] = IicReadByte();
; SOURCE LINE # 621
LCALL IicReadByte
MOV Temp?1471+01H,R7
; AddrData++;
; SOURCE LINE # 622
INC AddrData?1472+01H
MOV A,AddrData?1472+01H
JNZ ?C0147
INC AddrData?1472
?C0147:
; /* while(i!=20) {
; str[i++] = IicReadByte();
; }
; str[i++]=0;
; p5045CS=1;
; return SUCCESS;*/
; if(!strcmp(Temp,"WR")) {
; SOURCE LINE # 629
MOV R0,#LOW (Temp?1471)
MOV R4,#HIGH (Temp?1471)
MOV R5,#00H
MOV R3,#0FFH
MOV R2,#HIGH (?SC_0)
MOV R1,#LOW (?SC_0)
LCALL ?C?STRCMP
MOV A,R7
JNZ ?C0099
?C0100:
; while ((ByteData = IicReadByte()) != '\0'){
; SOURCE LINE # 630
LCALL IicReadByte
MOV ByteData?1470,R7
MOV A,R7
JZ ?C0101
; str[i++]=ByteData;
; SOURCE LINE # 631
MOV DPTR,#str?1467
MOVX A,@DPTR
MOV R3,A
INC DPTR
MOVX A,@DPTR
MOV R2,A
INC DPTR
MOVX A,@DPTR
MOV R1,A
INC i?1468+01H
MOV A,i?1468+01H
MOV R6,i?1468
JNZ ?C0148
INC i?1468
?C0148:
DEC A
MOV DPL,A
MOV DPH,R6
MOV A,ByteData?1470
LCALL ?C?CSTOPTR
; AddrData++;
; SOURCE LINE # 632
INC AddrData?1472+01H
MOV A,AddrData?1472+01H
JNZ ?C0149
INC AddrData?1472
?C0149:
; if(AddrData==0x100){
; SOURCE LINE # 633
JNZ ?C0150
MOV A,AddrData?1472
XRL A,#01H
?C0150:
JNZ ?C0100
; p5045CS=1;
; SOURCE LINE # 634
SETB p5045CS
; p5045CS=0;
; SOURCE LINE # 635
CLR p5045CS
; IicSendByte(READ|0x08);
; SOURCE LINE # 636
MOV R7,#0BH
LCALL _IicSendByte
; IicSendByte(0x00);
; SOURCE LINE # 637
CLR A
MOV R7,A
LCALL _IicSendByte
; }
; SOURCE LINE # 638
; }
; SOURCE LINE # 639
SJMP ?C0100
?C0101:
; str[i++]=ByteData;
; SOURCE LINE # 640
MOV DPTR,#str?1467
MOVX A,@DPTR
MOV R3,A
INC DPTR
MOVX A,@DPTR
MOV R2,A
INC DPTR
MOVX A,@DPTR
MOV R1,A
INC i?1468+01H
MOV A,i?1468+01H
MOV R6,i?1468
JNZ ?C0151
INC i?1468
?C0151:
DEC A
MOV DPL,A
MOV DPH,R6
MOV A,ByteData?1470
LCALL ?C?CSTOPTR
; p5045CS=1;
; SOURCE LINE # 641
SETB p5045CS
; P3=P3Bak|0xc3;
; SOURCE LINE # 642
MOV A,P3Bak
ORL A,#0C3H
MOV P3,A
; pOE=0;
; SOURCE LINE # 643
CLR pOE
; EA=1;
; SOURCE LINE # 644
SETB EA
; return SUCCESS;
; SOURCE LINE # 645
SETB C
RET
; }
; SOURCE LINE # 646
?C0099:
; else{
; SOURCE LINE # 647
; p5045CS=1;
; SOURCE LINE # 648
SETB p5045CS
; EA=1;
; SOURCE LINE # 649
SETB EA
; P3=P3Bak|0xc3;
; SOURCE LINE # 650
MOV A,P3Bak
ORL A,#0C3H
MOV P3,A
; pOE=0;
; SOURCE LINE # 651
CLR pOE
; return ERROR;
; SOURCE LINE # 652
CLR C
; }
; SOURCE LINE # 653
; }
; SOURCE LINE # 654
?C0103:
RET
; END OF _IicReadData
;
; unsigned char IicStatusData()
RSEG ?PR?IicStatusData?XSPMAIN
IicStatusData:
USING 0
; SOURCE LINE # 656
; {
; SOURCE LINE # 657
; data unsigned char ByteData;
; p5045CS=0;
; SOURCE LINE # 659
CLR p5045CS
; IicSendByte(RSDR);
; SOURCE LINE # 660
MOV R7,#05H
LCALL _IicSendByte
; ByteData=IicReadByte();
; SOURCE LINE # 661
LCALL IicReadByte
MOV ByteData?1573,R7
; p5045CS=1;
; SOURCE LINE # 662
SETB p5045CS
; return ByteData;
; SOURCE LINE # 663
; }
; SOURCE LINE # 664
?C0105:
RET
; END OF IicStatusData
;
; void IicWriteData(unsigned char *str)
RSEG ?PR?_IicWriteData?XSPMAIN
_IicWriteData:
USING 0
; SOURCE LINE # 666
MOV DPTR,#str?1674
MOV A,R3
MOVX @DPTR,A
INC DPTR
MOV A,R2
MOVX @DPTR,A
INC DPTR
MOV A,R1
MOVX @DPTR,A
; {
; SOURCE LINE # 667
; data unsigned int i=0;
; SOURCE LINE # 668
CLR A
MOV i?1675,A
MOV i?1675+01H,A
; data unsigned int j=0;
; SOURCE LINE # 669
MOV j?1676,A
MOV j?1676+01H,A
; data unsigned char ByteData;
; data unsigned char Temp;
; data unsigned int AddrData;
; data unsigned int LenStr;
; // ByteData=IicStatusData();
; InitX5045();
; SOURCE LINE # 675
LCALL InitX5045
; for (j=0;j<1000;j++);
; SOURCE LINE # 676
MOV j?1676,A
MOV j?1676+01H,A
?C0106:
INC j?1676+01H
MOV A,j?1676+01H
JNZ ?C0152
INC j?1676
?C0152:
XRL A,#0E8H
JNZ ?C0153
MOV A,j?1676
XRL A,#03H
?C0153:
JNZ ?C0106
?C0107:
; p5045CS=0;
; SOURCE LINE # 677
CLR p5045CS
; IicSendByte(WREN);
; SOURCE LINE # 678
MOV R7,#06H
LCALL _IicSendByte
; p5045CS=1;
; SOURCE LINE # 679
SETB p5045CS
; for (j=0;j<1000;j++);
; SOURCE LINE # 680
CLR A
MOV j?1676,A
MOV j?1676+01H,A
?C0109:
INC j?1676+01H
MOV A,j?1676+01H
JNZ ?C0154
INC j?1676
?C0154:
XRL A,#0E8H
JNZ ?C0155
MOV A,j?1676
XRL A,#03H
?C0155:
JNZ ?C0109
?C0110:
; ByteData=IicStatusData();
; SOURCE LINE # 681
LCALL IicStatusData
MOV ByteData?1677,R7
; p5045CS=0;
; SOURCE LINE # 682
CLR p5045CS
; IicSendByte(WRSR);
; SOURCE LINE # 683
MOV R7,#01H
LCALL _IicSendByte
; IicSendByte(0x02);
; SOURCE LINE # 684
MOV R7,#02H
LCALL _IicSendByte
; p5045CS=1;
; SOURCE LINE # 685
SETB p5045CS
; for (j=0;j<1000;j++);
; SOURCE LINE # 686
CLR A
MOV j?1676,A
MOV j?1676+01H,A
?C0112:
INC j?1676+01H
MOV A,j?1676+01H
JNZ ?C0156
INC j?1676
?C0156:
XRL A,#0E8H
JNZ ?C0157
MOV A,j?1676
XRL A,#03H
?C0157:
JNZ ?C0112
?C0113:
; p5045CS=0;
; SOURCE LINE # 687
CLR p5045CS
; IicSendByte(WREN);
; SOURCE LINE # 688
MOV R7,#06H
LCALL _IicSendByte
; p5045CS=1;
; SOURCE LINE # 689
SETB p5045CS
; for (j=0;j<1000;j++);
; SOURCE LINE # 690
CLR A
MOV j?1676,A
MOV j?1676+01H,A
?C0115:
INC j?1676+01H
MOV A,j?1676+01H
JNZ ?C0158
INC j?1676
?C0158:
XRL A,#0E8H
JNZ ?C0159
MOV A,j?1676
XRL A,#03H
?C0159:
JNZ ?C0115
?C0116:
; ByteData=IicStatusData();
; SOURCE LINE # 691
LCALL IicStatusData
MOV ByteData?1677,R7
; AddrData=IICADDR;
; SOURCE LINE # 692
CLR A
MOV AddrData?1679,A
MOV AddrData?1679+01H,A
; p5045CS=0;
; SOURCE LINE # 693
CLR p5045CS
; IicSendByte(WRITE);
; SOURCE LINE # 694
MOV R7,#02H
LCALL _IicSendByte
; IicSendByte((unsigned char)AddrData);
; SOURCE LINE # 695
MOV R7,AddrData?1679+01H
LCALL _IicSendByte
; IicSendByte('W');
; SOURCE LINE # 696
MOV R7,#057H
LCALL _IicSendByte
; AddrData++;
; SOURCE LINE # 697
INC AddrData?1679+01H
MOV A,AddrData?1679+01H
JNZ ?C0160
INC AddrData?1679
?C0160:
; IicSendByte('R');
; SOURCE LINE # 698
MOV R7,#052H
LCALL _IicSendByte
; AddrData++;
; SOURCE LINE # 699
INC AddrData?1679+01H
MOV A,AddrData?1679+01H
JNZ ?C0161
INC AddrData?1679
?C0161:
; LenStr=strlen(str);
; SOURCE LINE # 700
MOV DPTR,#str?1674
MOVX A,@DPTR
MOV R3,A
INC DPTR
MOVX A,@DPTR
MOV R2,A
INC DPTR
MOVX A,@DPTR
MOV R1,A
LCALL _strlen
MOV LenStr?1680,R6
MOV LenStr?1680+01H,R7
; for(i=0;i<=LenStr;i++){
; SOURCE LINE # 701
CLR A
MOV i?1675,A
MOV i?1675+01H,A
?C0118:
SETB C
MOV A,i?1675+01H
SUBB A,LenStr?1680+01H
MOV A,i?1675
SUBB A,LenStr?1680
JC $ + 5H
LJMP ?C0119
; if ((AddrData%16)==0){
; SOURCE LINE # 702
MOV A,AddrData?1679+01H
ANL A,#0FH
; if (AddrData>0xff){
; SOURCE LINE # 703
MOV A,AddrData?1679+01H
SUBB A,#0FFH
MOV A,AddrData?1679
SUBB A,#00H
JC ?C0122
; Temp=WRITE|0x08;
; SOURCE LINE # 704
MOV Temp?1678,#0AH
; }
; SOURCE LINE # 705
SJMP ?C0123
?C0122:
; else
; Temp=WRITE;
; SOURCE LINE # 707
MOV Temp?1678,#02H
?C0123:
; p5045CS=1;
; SOURCE LINE # 708
SETB p5045CS
; for (j=0;j<1000;j++);
CLR A
MOV j?1676,A
MOV j?1676+01H,A
?C0124:
INC j?1676+01H
MOV A,j?1676+01H
JNZ ?C0162
INC j?1676
?C0162:
XRL A,#0E8H
JNZ ?C0163
MOV A,j?1676
XRL A,#03H
?C0163:
JNZ ?C0124
?C0127:
; while(IicStatusData()&0x01);
; SOURCE LINE # 710
LCALL IicStatusData
MOV A,R7
JB ACC.0,?C0127
?C0128:
; p5045CS=0;
; SOURCE LINE # 711
CLR p5045CS
; IicSendByte(WREN);
; SOURCE LINE # 712
MOV R7,#06H
LCALL _IicSendByte
; p5045CS=1;
; SOURCE LINE # 713
SETB p5045CS
; #if DUBEG
; ByteData=IicStatusData();
; #endif
; p5045CS=0;
; SOURCE LINE # 717
CLR p5045CS
; IicSendByte(Temp);
; SOURCE LINE # 718
MOV R7,Temp?1678
LCALL _IicSendByte
; IicSendByte((unsigned char)(AddrData&0xff));
; SOURCE LINE # 719
MOV R7,AddrData?1679+01H
MOV A,AddrData?1679+01H
LCALL _IicSendByte
; }
; SOURCE LINE # 720
?C0121:
; ByteData = str[i];
; SOURCE LINE # 721
MOV DPTR,#str?1674
MOVX A,@DPTR
MOV R3,A
INC DPTR
MOVX A,@DPTR
MOV R2,A
INC DPTR
MOVX A,@DPTR
MOV R1,A
MOV DPL,i?1675+01H
MOV DPH,i?1675
LCALL ?C?CLDOPTR
MOV ByteData?1677,A
; IicSendByte(ByteData);
; SOURCE LINE # 722
MOV R7,A
LCALL _IicSendByte
; AddrData++;
; SOURCE LINE # 723
INC AddrData?1679+01H
MOV A,AddrData?1679+01H
JNZ ?C0164
INC AddrData?1679
?C0164:
; for (j=0;j<100;j++);
; SOURCE LINE # 724
CLR A
MOV j?1676,A
MOV j?1676+01H,A
?C0129:
INC j?1676+01H
MOV A,j?1676+01H
JNZ ?C0165
INC j?1676
?C0165:
XRL A,#064H
ORL A,j?1676
JNZ ?C0129
; }
; SOURCE LINE # 725
?C0120:
INC i?1675+01H
MOV A,i?1675+01H
JNZ ?C0166
INC i?1675
?C0166:
LJMP ?C0118
?C0119:
; p5045CS=1;
; SOURCE LINE # 726
SETB p5045CS
; for (j=0;j<1000;j++);
; SOURCE LINE # 727
CLR A
MOV j?1676,A
MOV j?1676+01H,A
?C0132:
INC j?1676+01H
MOV A,j?1676+01H
JNZ ?C0167
INC j?1676
?C0167:
XRL A,#0E8H
JNZ ?C0168
MOV A,j?1676
XRL A,#03H
?C0168:
JNZ ?C0132
?C0133:
; #if DUBEG
; ByteData=IicStatusData();
; #endif
; p5045CS=0;
; SOURCE LINE # 731
CLR p5045CS
; IicSendByte(WREN);
; SOURCE LINE # 732
MOV R7,#06H
LCALL _IicSendByte
; p5045CS=1;
; SOURCE LINE # 733
SETB p5045CS
; _nop_();
; SOURCE LINE # 734
NOP
; p5045CS=0;
; SOURCE LINE # 735
CLR p5045CS
; IicSendByte(WRSR);
; SOURCE LINE # 736
MOV R7,#01H
LCALL _IicSendByte
; IicSendByte(0x0c);
; SOURCE LINE # 737
MOV R7,#0CH
LCALL _IicSendByte
; p5045CS=1;
; SOURCE LINE # 738
SETB p5045CS
; for (j=0;j<1000;j++);
; SOURCE LINE # 739
CLR A
MOV j?1676,A
MOV j?1676+01H,A
?C0135:
INC j?1676+01H
MOV A,j
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -