📄 myproj.src
字号:
ADD A,R5
MOV R0,A
MOV A,@R0
ADD A,R7
MOV R7,A
CLR A
ADDC A,R6
MOV R6,A
INC R5
CJNE R5,#00H,?C0076
INC R4
?C0076:
SJMP ?C0027
?C0028:
; if(j==RECVBUF[RECVBUF[1]])
; SOURCE LINE # 107
MOV A,#LOW (RECVBUF)
ADD A,RECVBUF+01H
MOV R0,A
MOV A,@R0
XRL A,R7
JNZ ?C0077
MOV A,R6
?C0077:
JNZ ?C0079
; {
; SOURCE LINE # 108
; iCMD=RECVBUF[3];
; SOURCE LINE # 109
MOV iCMD,RECVBUF+03H
; iDATA0=RECVBUF[4];
; SOURCE LINE # 110
MOV iDATA0,RECVBUF+04H
; iDATA1=RECVBUF[5];
; SOURCE LINE # 111
MOV iDATA1,RECVBUF+05H
; DoCMD();
; SOURCE LINE # 112
LCALL DoCMD
; k=iRECVNUM-RECVBUF[1]-2;//剩下的个数
; SOURCE LINE # 113
CLR C
MOV A,iRECVNUM
SUBB A,RECVBUF+01H
MOV R7,A
CLR A
SUBB A,#00H
XCH A,R7
ADD A,#0FEH
MOV k?449+01H,A
MOV A,R7
ADDC A,#0FFH
MOV k?449,A
; CopyM(RECVBUF,RECVBUF+RECVBUF[1]+2,k);
; SOURCE LINE # 114
MOV A,#LOW (RECVBUF+02H)
ADD A,RECVBUF+01H
MOV R1,A
CLR A
MOV ?_CopyM?BYTE+03H,A
MOV ?_CopyM?BYTE+04H,A
MOV ?_CopyM?BYTE+05H,R1
MOV ?_CopyM?BYTE+06H,k?449
MOV ?_CopyM?BYTE+07H,k?449+01H
MOV R3,A
MOV R2,#HIGH (RECVBUF)
MOV R1,#LOW (RECVBUF)
LCALL _CopyM
; ClearM(RECVBUF+k,iRECVNUM-k);
; SOURCE LINE # 115
MOV A,#LOW (RECVBUF)
ADD A,k?449+01H
MOV R1,A
CLR A
MOV R2,A
MOV R3,A
CLR C
MOV A,iRECVNUM
SUBB A,k?449+01H
MOV R5,A
CLR A
SUBB A,k?449
MOV R4,A
LCALL _ClearM
; iRECVNUM=k;
; SOURCE LINE # 116
MOV iRECVNUM,k?449+01H
; }
; SOURCE LINE # 117
RET
?C0026:
; else
; {
; CopyM(RECVBUF,RECVBUF+1,--iRECVNUM);
; ClearM(RECVBUF+iRECVNUM,1);
; }
; }
; else
; {
; SOURCE LINE # 125
; CopyM(RECVBUF,RECVBUF+1,--iRECVNUM);
; SOURCE LINE # 126
?C0079:
MOV ?_CopyM?BYTE+03H,#00H
MOV ?_CopyM?BYTE+04H,#HIGH (RECVBUF+01H)
MOV ?_CopyM?BYTE+05H,#LOW (RECVBUF+01H)
DEC iRECVNUM
MOV ?_CopyM?BYTE+06H,#00H
MOV ?_CopyM?BYTE+07H,iRECVNUM
MOV R3,#00H
MOV R2,#HIGH (RECVBUF)
MOV R1,#LOW (RECVBUF)
LCALL _CopyM
; ClearM(RECVBUF+iRECVNUM,1);
; SOURCE LINE # 127
MOV A,#LOW (RECVBUF)
ADD A,iRECVNUM
MOV R1,A
CLR A
MOV R2,A
MOV R3,A
MOV R5,#01H
MOV R4,A
LCALL _ClearM
; }
; SOURCE LINE # 128
; }
; SOURCE LINE # 129
?C0033:
RET
; END OF ExcuteCMD
CSEG AT 00023H
LJMP serial
; void serial(void) interrupt 4//定义串行口中断处理子程序
RSEG ?PR?serial?MYPROJ
USING 0
serial:
PUSH ACC
PUSH PSW
MOV PSW,#00H
PUSH AR0
USING 0
; SOURCE LINE # 130
; {
; ES=0;
; SOURCE LINE # 132
CLR ES
; if(TI)
; SOURCE LINE # 133
JNB TI,?C0035
; TI=0;
; SOURCE LINE # 134
CLR TI
?C0035:
; while(RI)
; SOURCE LINE # 135
JNB RI,?C0036
; {
; SOURCE LINE # 136
; RECVBUF[iRECVNUM]=SBUF;
; SOURCE LINE # 137
MOV A,#LOW (RECVBUF)
ADD A,iRECVNUM
MOV R0,A
MOV @R0,SBUF
; iRECVNUM++;
; SOURCE LINE # 138
INC iRECVNUM
; RI=0;
; SOURCE LINE # 139
CLR RI
; }
; SOURCE LINE # 140
SJMP ?C0035
?C0036:
; ES=1;
; SOURCE LINE # 141
SETB ES
; }
; SOURCE LINE # 142
POP AR0
POP PSW
POP ACC
RETI
; END OF serial
CSEG AT 0000BH
LJMP TimeSec
; void TimeSec(void) interrupt 1//定义定时器0中断处理子程序
RSEG ?PR?TimeSec?MYPROJ
USING 0
TimeSec:
PUSH ACC
PUSH PSW
; SOURCE LINE # 143
; {
; TR0=0x0;
; SOURCE LINE # 145
CLR TR0
; TL0=0x00;
; SOURCE LINE # 146
MOV TL0,#00H
; TH0=0x00;
; SOURCE LINE # 147
MOV TH0,#00H
; if(--iTimes<=0)
; SOURCE LINE # 148
DEC iTimes
MOV A,iTimes
SETB C
SUBB A,#00H
JNC ?C0038
; {
; SOURCE LINE # 149
; iTimes=0x10;
; SOURCE LINE # 150
MOV iTimes,#010H
; switch(iMode)
; SOURCE LINE # 151
MOV A,iMode
DEC A
JZ ?C0042
INC A
JNZ ?C0038
; {
; SOURCE LINE # 152
; case 0:
; SOURCE LINE # 153
?C0040:
; iNum+=0x1;
; SOURCE LINE # 154
INC iNum
; if(iNum>=60)
; SOURCE LINE # 155
MOV A,iNum
CLR C
SUBB A,#03CH
JC ?C0038
; iNum=0;
; SOURCE LINE # 156
MOV iNum,#00H
; break;
; SOURCE LINE # 157
SJMP ?C0038
; case 1:
; SOURCE LINE # 158
?C0042:
; iNum-=0x1;
; SOURCE LINE # 159
DEC iNum
; if(iNum<0)
; SOURCE LINE # 160
MOV A,iNum
CLR C
SUBB A,#00H
JNC ?C0038
; iNum=iInit;
; SOURCE LINE # 161
MOV iNum,iInit
; break;
; SOURCE LINE # 162
; default:
; SOURCE LINE # 163
; break;
; SOURCE LINE # 164
; }
; SOURCE LINE # 165
; }
; SOURCE LINE # 166
?C0038:
; TR0=0x1;
; SOURCE LINE # 167
SETB TR0
; }
; SOURCE LINE # 168
POP PSW
POP ACC
RETI
; END OF TimeSec
CSEG AT 00003H
LJMP Int0Add
; void Int0Add(void) interrupt 0//定义中断0处理子程序
RSEG ?PR?Int0Add?MYPROJ
USING 0
Int0Add:
PUSH ACC
PUSH PSW
; SOURCE LINE # 169
; {
; EX0=0;
; SOURCE LINE # 171
CLR EX0
; if(bState)
; SOURCE LINE # 172
JNB bState,?C0046
; {
; SOURCE LINE # 173
; switch(iFunc)
; SOURCE LINE # 174
MOV A,iFunc
ADD A,#0FBH
JZ ?C0050
INC A
JNZ ?C0053
; {
; SOURCE LINE # 175
; case 4:
; SOURCE LINE # 176
?C0048:
; if(++iMode>1)
; SOURCE LINE # 177
INC iMode
MOV A,iMode
SETB C
SUBB A,#01H
JC ?C0053
; iMode=0;
; SOURCE LINE # 178
MOV iMode,#00H
; break;
; SOURCE LINE # 179
SJMP ?C0053
; case 5:
; SOURCE LINE # 180
?C0050:
; if(++iInit>99)
; SOURCE LINE # 181
INC iInit
MOV A,iInit
SETB C
SUBB A,#063H
JC ?C0053
; iInit=0;
; SOURCE LINE # 182
MOV iInit,#00H
; break;
; SOURCE LINE # 183
SJMP ?C0053
; default:
; SOURCE LINE # 184
; break;
; SOURCE LINE # 185
; }
; SOURCE LINE # 186
; }
; SOURCE LINE # 187
?C0046:
; else
; if(++iFunc>5)
; SOURCE LINE # 189
INC iFunc
MOV A,iFunc
SETB C
SUBB A,#05H
JC ?C0053
; iFunc=0;
; SOURCE LINE # 190
MOV iFunc,#00H
?C0053:
; EX0=1;
; SOURCE LINE # 191
SETB EX0
; }
; SOURCE LINE # 192
POP PSW
POP ACC
RETI
; END OF Int0Add
CSEG AT 00013H
LJMP Int1Ent
; void Int1Ent(void) interrupt 2//定义中断1处理子程序
RSEG ?PR?Int1Ent?MYPROJ
USING 0
Int1Ent:
PUSH ACC
PUSH PSW
; SOURCE LINE # 193
; {
; EX1=0;
; SOURCE LINE # 195
CLR EX1
; switch(iFunc)
; SOURCE LINE # 196
MOV A,iFunc
DEC A
JZ ?C0058
DEC A
JZ ?C0059
DEC A
JZ ?C0060
ADD A,#03H
JNZ ?C0063
; {
; SOURCE LINE # 197
; case 0:
; SOURCE LINE # 198
?C0057:
; TR0=1;
; SOURCE LINE # 199
SETB TR0
; break;
; SOURCE LINE # 200
SJMP ?C0056
; case 1:
; SOURCE LINE # 201
?C0058:
; TR0=0;
; SOURCE LINE # 202
CLR TR0
; break;
; SOURCE LINE # 203
SJMP ?C0056
; case 2:
; SOURCE LINE # 204
?C0059:
; iNum=0;
; SOURCE LINE # 205
MOV iNum,#00H
; break;
; SOURCE LINE # 206
SJMP ?C0056
; case 3:
; SOURCE LINE # 207
?C0060:
; if(iMode==0)
; SOURCE LINE # 208
MOV A,iMode
JNZ ?C0061
; iNum=00;
; SOURCE LINE # 209
MOV iNum,A
SJMP ?C0062
?C0061:
; else
; iNum=iInit;
; SOURCE LINE # 211
MOV iNum,iInit
?C0062:
; TR0=1;
; SOURCE LINE # 212
SETB TR0
; break;
; SOURCE LINE # 213
SJMP ?C0056
; default:
; SOURCE LINE # 214
?C0063:
; bState^=1;
; SOURCE LINE # 215
MOV C,bState
CPL C
MOV bState,C
; break;
; SOURCE LINE # 216
; }
; SOURCE LINE # 217
?C0056:
; EX1=1;
; SOURCE LINE # 218
SETB EX1
; }
; SOURCE LINE # 219
POP PSW
POP ACC
RETI
; END OF Int1Ent
; void DispNum(void)
RSEG ?PR?DispNum?MYPROJ
DispNum:
USING 0
; SOURCE LINE # 220
; {
; SOURCE LINE # 221
; BYTE i,j;
; i=iNum/10;
; SOURCE LINE # 223
MOV A,iNum
MOV B,#0AH
DIV AB
MOV R7,A
;---- Variable 'i?950' assigned to Register 'R7' ----
; j=iNum%10;
; SOURCE LINE # 224
MOV A,iNum
MOV B,#0AH
DIV AB
MOV j?951,B
; P0=TAB[i];
; SOURCE LINE # 225
MOV A,#LOW (TAB)
ADD A,R7
MOV R0,A
MOV A,@R0
MOV P0,A
; P2=0x40;
; SOURCE LINE # 226
MOV P2,#040H
; Delay(500);
; SOURCE LINE # 227
MOV R7,#0F4H
MOV R6,#01H
LCALL _Delay
; P0=TAB[j];
; SOURCE LINE # 228
MOV A,#LOW (TAB)
ADD A,j?951
MOV R0,A
MOV A,@R0
MOV P0,A
; P2=0x20;
; SOURCE LINE # 229
MOV P2,#020H
; Delay(500);
; SOURCE LINE # 230
MOV R7,#0F4H
MOV R6,#01H
LJMP _Delay
; END OF DispNum
; }
; void DispLed(void)
RSEG ?PR?DispLed?MYPROJ
DispLed:
USING 0
; SOURCE LINE # 232
; {
; SOURCE LINE # 233
; P2=0x80;
; SOURCE LINE # 234
MOV P2,#080H
; if(bState)
; SOURCE LINE # 235
JNB bState,?C0066
; {
; SOURCE LINE # 236
; if(iFunc==4)
; SOURCE LINE # 237
MOV A,iFunc
CJNE A,#04H,?C0067
; P0=iMode;
; SOURCE LINE # 238
MOV P0,iMode
SJMP ?C0069
?C0067:
; else
; P0=iInit;
; SOURCE LINE # 240
MOV P0,iInit
; }
; SOURCE LINE # 241
SJMP ?C0069
?C0066:
; else
; P0=iFunc;
; SOURCE LINE # 243
MOV P0,iFunc
?C0069:
; Delay(500);
; SOURCE LINE # 244
MOV R7,#0F4H
MOV R6,#01H
LJMP _Delay
; END OF DispLed
; }
; void Delay(int i)
RSEG ?PR?_Delay?MYPROJ
_Delay:
USING 0
; SOURCE LINE # 246
;---- Variable 'i?1152' assigned to Register 'R6/R7' ----
; {
; SOURCE LINE # 247
?C0071:
; while(--i);
; SOURCE LINE # 248
MOV A,R7
DEC R7
JNZ ?C0078
DEC R6
?C0078:
DEC A
ORL A,R6
JNZ ?C0071
; } ; SOURCE LINE # 249
?C0073:
RET
; END OF _Delay
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -