📄 backward.src
字号:
ADDC A,avgad?444+02H
MOV avgad?444+02H,A
MOV A,R5
ADDC A,avgad?444+01H
MOV avgad?444+01H,A
MOV A,R4
ADDC A,avgad?444
MOV avgad?444,A
; //delayms(10);
; }
; SOURCE LINE # 83
INC R3
CJNE R3,#0FH,?C0007
?C0008:
; avgad=avgad/15;
; SOURCE LINE # 84
MOV R7,avgad?444+03H
MOV R6,avgad?444+02H
MOV R5,avgad?444+01H
MOV R4,avgad?444
CLR A
MOV R3,#0FH
MOV R2,A
MOV R1,A
MOV R0,A
LCALL ?C?ULDIV
MOV avgad?444+03H,R7
MOV avgad?444+02H,R6
MOV avgad?444+01H,R5
MOV avgad?444,R4
; for(i=0;i<15;i++)
; SOURCE LINE # 85
CLR A
MOV R3,A
?C0010:
; {
; SOURCE LINE # 86
;
; data0[i]=state;
; SOURCE LINE # 88
MOV R7,state?445+03H
MOV R6,state?445+02H
MOV R5,state?445+01H
MOV R4,state?445
MOV A,R3
ADD A,ACC
ADD A,ACC
ADD A,#LOW (data0)
MOV DPL,A
CLR A
ADDC A,#HIGH (data0)
MOV DPH,A
LCALL ?C?LSTXDATA
; avgad1+=data0[i];
; SOURCE LINE # 89
MOV A,R3
ADD A,ACC
ADD A,ACC
ADD A,#LOW (data0)
MOV DPL,A
CLR A
ADDC A,#HIGH (data0)
MOV DPH,A
MOVX A,@DPTR
MOV R4,A
INC DPTR
MOVX A,@DPTR
MOV R5,A
INC DPTR
MOVX A,@DPTR
MOV R6,A
INC DPTR
MOVX A,@DPTR
ADD A,avgad1?443+03H
MOV avgad1?443+03H,A
MOV A,R6
ADDC A,avgad1?443+02H
MOV avgad1?443+02H,A
MOV A,R5
ADDC A,avgad1?443+01H
MOV avgad1?443+01H,A
MOV A,R4
ADDC A,avgad1?443
MOV avgad1?443,A
; //delayms(10);
; }
; SOURCE LINE # 91
INC R3
CJNE R3,#0FH,?C0010
?C0011:
; avgad1=avgad1/15;
; SOURCE LINE # 92
MOV R7,avgad1?443+03H
MOV R6,avgad1?443+02H
MOV R5,avgad1?443+01H
MOV R4,avgad1?443
CLR A
MOV R3,#0FH
MOV R2,A
MOV R1,A
MOV R0,A
LCALL ?C?ULDIV
MOV avgad1?443+03H,R7
MOV avgad1?443+02H,R6
MOV avgad1?443+01H,R5
MOV avgad1?443,R4
; avge=(avgad+avgad1)/4;
; SOURCE LINE # 93
MOV A,avgad?444+03H
ADD A,avgad1?443+03H
MOV R7,A
MOV A,avgad?444+02H
ADDC A,avgad1?443+02H
MOV R6,A
MOV A,avgad?444+01H
ADDC A,avgad1?443+01H
MOV R5,A
MOV A,avgad?444
ADDC A,avgad1?443
MOV R4,A
CLR A
MOV R3,#04H
MOV R2,A
MOV R1,A
MOV R0,A
LCALL ?C?ULDIV
MOV avge+03H,R7
MOV avge+02H,R6
MOV avge+01H,R5
MOV avge,R4
;
; //CH452_Write(CH452_DIG1|bb);
; //CH452_Write(CH452_DIG0|c);
; return(avge);
; SOURCE LINE # 97
; }
; SOURCE LINE # 98
?C0013:
RET
; END OF pingjun
;
;
;
; /****精确秒延时****/
;
; void delay_s(uchar n)
RSEG ?PR?_delay_s?BACKWARD
_delay_s:
; SOURCE LINE # 104
MOV n?546,R7
; {
; SOURCE LINE # 105
; #pragma asm
; //USING 0
; n_:
n_:
; MOV R2,#50 //系统时钟如果分别是2M,4M,8M,16M
MOV R2,#50
; //则R2值分别为 25,50,100,200
; R2_:
R2_:
; MOV R1,#40
MOV R1,#40
; R1_:
R1_:
; MOV R0,#50
MOV R0,#50
; R0_:
R0_:
; NOP
NOP
; NOP
NOP
; NOP
NOP
; NOP
NOP
;
; NOP
NOP
; NOP
NOP
; NOP
NOP
; NOP
NOP
;
; NOP
NOP
; NOP
NOP
; NOP
NOP
; NOP
NOP
;
; NOP
NOP
; NOP
NOP
; NOP
NOP
; NOP
NOP
;
; NOP
NOP
; NOP
NOP
; //NOP
; //NOP
; DJNZ R0,R0_
DJNZ R0,R0_
; DJNZ R1,R1_
DJNZ R1,R1_
; DJNZ R2,R2_
DJNZ R2,R2_
; DJNZ n?546,n_
DJNZ n?546,n_
; #pragma endasm
; }
; SOURCE LINE # 145
RET
; END OF _delay_s
; void confirm(void)
RSEG ?PR?confirm?BACKWARD
confirm:
USING 0
; SOURCE LINE # 146
; {
; SOURCE LINE # 147
; uchar i,t;
; for(t=0;t<7;t++)
; SOURCE LINE # 149
CLR A
MOV t?648,A
?C0015:
; CH452_Write((CH452_DIG0+ (t<<8))|16);
; SOURCE LINE # 150
MOV A,t?648
MOV R6,A
CLR A
ADD A,#00H
MOV R7,A
MOV A,R6
ADDC A,#08H
MOV R6,A
MOV A,R7
ORL A,#010H
MOV R7,A
LCALL _CH452_Write
INC t?648
MOV A,t?648
CLR C
SUBB A,#07H
JC ?C0015
?C0016:
; for(i=5;i>0;i--)
; SOURCE LINE # 151
MOV i?647,#05H
?C0018:
; {
; SOURCE LINE # 152
; CH452_Write(CH452_DIG7 | i);
; SOURCE LINE # 153
MOV R7,i?647
MOV A,#0FH
MOV R6,A
LCALL _CH452_Write
; SPOKER=1;
; SOURCE LINE # 154
SETB SPOKER
; delay_s(1);
; SOURCE LINE # 155
MOV R7,#01H
LCALL _delay_s
; SPOKER=0;
; SOURCE LINE # 156
CLR SPOKER
; delay_s(1);
; SOURCE LINE # 157
LCALL _delay_s
; }
; SOURCE LINE # 158
DEC i?647
MOV A,i?647
SETB C
SUBB A,#00H
JNC ?C0018
?C0019:
; CH452_Write(CH452_DIG7);
; SOURCE LINE # 159
MOV R7,#00H
MOV R6,#0FH
LJMP _CH452_Write
; END OF confirm
;
; }
; void judgement (uchar modi,uchar modi1,uchar dem)
RSEG ?PR?_judgement?BACKWARD
L?0076:
USING 0
L?0077:
MOV R3,#0AH
CLR A
MOV R5,A
MOV R7,#02DH
_judgement:
USING 0
; SOURCE LINE # 162
MOV modi?749,R7
MOV modi1?750,R5
MOV dem?751,R3
; { //if(d==0&&e==0)
; SOURCE LINE # 163
; //{
; if((a==1&&bb==0&&c==0)||(a==1&&bb==1&&c==0))
; SOURCE LINE # 165
MOV A,a?
CJNE A,#01H,?C0024
MOV A,bb
JNZ ?C0024
MOV A,c?
JZ ?C0023
?C0024:
MOV A,a?
XRL A,#01H
JNZ ?C0022
MOV A,bb
XRL A,#01H
JNZ ?C0022
MOV A,c?
JNZ ?C0022
?C0023:
; { left=1;
; SOURCE LINE # 166
MOV left,#01H
; right=0;
; SOURCE LINE # 167
CLR A
MOV right,A
; speedchange(modi1,1);
; SOURCE LINE # 168
MOV R5,#01H
MOV R7,modi1?750
LCALL _speedchange
; speedchange(modi,0);
; SOURCE LINE # 169
CLR A
MOV R5,A
; delayms(dem);
; SOURCE LINE # 170
; }
; SOURCE LINE # 171
SJMP ?C0069
?C0022:
; else if((a==0&&bb==0&&c==1)||(a==0&&bb==1&&c==1))
; SOURCE LINE # 172
MOV A,a?
JNZ ?C0028
MOV A,bb
JNZ ?C0028
MOV A,c?
XRL A,#01H
JZ ?C0027
?C0028:
MOV A,a?
JNZ ?C0026
MOV A,bb
XRL A,#01H
JNZ ?C0026
MOV A,c?
CJNE A,#01H,?C0026
?C0027:
; {
; SOURCE LINE # 173
; left=0;
; SOURCE LINE # 174
CLR A
MOV left,A
; right=1;
; SOURCE LINE # 175
MOV right,#01H
; speedchange(modi1,0);
; SOURCE LINE # 176
MOV R5,A
MOV R7,modi1?750
LCALL _speedchange
; speedchange(modi,1);
; SOURCE LINE # 177
MOV R5,#01H
?C0068:
; delayms(dem);
; SOURCE LINE # 178
; }
; SOURCE LINE # 179
SJMP ?C0069
?C0026:
; else if((a==0&&bb==1&&c==0))
; SOURCE LINE # 180
MOV A,a?
JNZ ?C0030
MOV A,bb
XRL A,#01H
JNZ ?C0030
MOV A,c?
JNZ ?C0030
; {
; SOURCE LINE # 181
; left=0;
; SOURCE LINE # 182
MOV left,A
; right=0;
; SOURCE LINE # 183
MOV right,A
; speedchange(modi,0);
; SOURCE LINE # 184
MOV R5,A
MOV R7,modi?749
LCALL _speedchange
; speedchange(modi,1);
; SOURCE LINE # 185
MOV R5,#01H
?C0069:
MOV R7,modi?749
LCALL _speedchange
; delayms(dem);
; SOURCE LINE # 186
; }
; SOURCE LINE # 187
SJMP ?C0070
?C0030:
; else if(a&&bb&&c) //停止&&(d||e)
; SOURCE LINE # 188
MOV A,a?
JZ ?C0032
MOV A,bb
JZ ?C0032
MOV A,c?
JZ ?C0032
; {
; SOURCE LINE # 189
;
; START=0;
; SOURCE LINE # 191
CLR START
; forward=0;
; SOURCE LINE # 192
CLR A
MOV forward,A
; confirm();
; SOURCE LINE # 193
LCALL confirm
; backward=1;
; SOURCE LINE # 194
MOV backward,#01H
; }
; SOURCE LINE # 195
RET
?C0032:
; else //if (a==0&&bb==0&&c==0)
; {
; SOURCE LINE # 197
; if(left==1)
; SOURCE LINE # 198
MOV A,left
CJNE A,#01H,?C0034
; {
; SOURCE LINE # 199
; speedchange(modi1,0);
; SOURCE LINE # 200
CLR A
MOV R5,A
MOV R7,modi1?750
; speedchange(modi,1); }
; SOURCE LINE # 201
SJMP ?C0071
?C0034:
; else if(right==1)
; SOURCE LINE # 202
MOV A,right
CJNE A,#01H,?C0036
; {
; SOURCE LINE # 203
; speedchange(modi,0);
; SOURCE LINE # 204
CLR A
MOV R5,A
MOV R7,modi?749
LCALL _speedchange
; speedchange(modi1,1);}
; SOURCE LINE # 205
MOV R5,#01H
MOV R7,modi1?750
SJMP ?C0072
?C0036:
; else
; {
; SOURCE LINE # 207
; speedchange(modi,0);
; SOURCE LINE # 208
CLR A
MOV R5,A
MOV R7,modi?749
?C0071:
LCALL _speedchange
; speedchange(modi,1);}
; SOURCE LINE # 209
MOV R5,#01H
MOV R7,modi?749
?C0072:
LCALL _speedchange
?C0035:
; delayms(dem);
; SOURCE LINE # 210
?C0070:
MOV R7,dem?751
MOV R6,#00H
LCALL _delayms
; }
; SOURCE LINE # 211
; //}
; // if((d==1)&&(e==0)) //左拐
; // {
; // PCA0CPH1=0xff;
; // PCA0CPH0=0x33;
; // delayms(40);
; // }
; // if(d==0&&e==1) //右拐
; // {
; // PCA0CPH0=0xff;
; // PCA0CPH1=0x33;
; // delayms(40);
; // }
;
;
; }
; SOURCE LINE # 227
?C0038:
RET
; END OF _judgement
; void judgementback (uchar modi,uchar modi1,uchar dem)
RSEG ?PR?_judgementback?BACKWARD
_judgementback:
USING 0
; SOURCE LINE # 228
MOV modi?852,R7
MOV modi1?853,R5
MOV dem?854,R3
; {
; SOURCE LINE # 229
; if(f==1&&g==0)
; SOURCE LINE # 230
MOV A,f
CJNE A,#01H,?C0039
MOV A,g
JNZ ?C0039
; {
; SOURCE LINE # 231
; speedchange(modi1,1);
; SOURCE LINE # 232
MOV R5,#01H
MOV R7,modi1?853
; speedchange(modi,0);
; SOURCE LINE # 233
;
; }
; SOURCE LINE # 235
SJMP ?C0073
?C0039:
; else if(f==0&&g==1)
; SOURCE LINE # 236
MOV A,f
JNZ ?C0041
MOV A,g
CJNE A,#01H,?C0041
; {
; SOURCE LINE # 237
; speedchange(modi,1);
; SOURCE LINE # 238
MOV R5,#01H
MOV R7,modi?852
LCALL _speedchange
; speedchange(modi1,0);
; SOURCE LINE # 239
CLR A
MOV R5,A
MOV R7,modi1?853
;
; }
; SOURCE LINE # 241
SJMP ?C0074
?C0041:
; else
; {
; SOURCE LINE # 243
; speedchange(modi,1);
; SOURCE LINE # 244
MOV R5,#01H
MOV R7,modi?852
?C0073:
LCALL _speedchange
; speedchange(modi,0);
; SOURCE LINE # 245
CLR A
MOV R5,A
MOV R7,modi?852
?C0074:
LCALL _speedchange
; }
; SOURCE LINE # 246
?C0040:
; delayms(dem);
; SOURCE LINE # 247
MOV R7,dem?854
MOV R6,#00H
LJMP _delayms
; END OF _judgementback
; }
; void main(void)
RSEG ?PR?main?BACKWARD
main:
USING 0
; SOURCE LINE # 249
; {
; SOURCE LINE # 250
; uchar chazhi=4;
; SOURCE LINE # 251
MOV chazhi?955,#04H
; uchar chazhi1;
; Init_Device();
; SOURCE LINE # 253
LCALL Init_Device
; CH452_Init(); /* CH452初始化 */
; SOURCE LINE # 254
LCALL CH452_Init
; LEDG=0;
; SOURCE LINE # 255
CLR LEDG
; SPOKER=0;
; SOURCE LINE # 256
CLR SPOKER
; IN0=1;
; SOURCE LINE # 257
SETB IN0
; IN1=1;
; SOURCE LINE # 258
SETB IN1
; IN2=1;
; SOURCE LINE # 259
SETB IN2
; //IN3=1;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -