📄 senorpe.src
字号:
; SOURCE LINE # 233
CLR SPOKER
; IN0=1;
; SOURCE LINE # 234
SETB IN0
; IN1=1;
; SOURCE LINE # 235
SETB IN1
; IN2=1;
; SOURCE LINE # 236
SETB IN2
; IN3=1;
; SOURCE LINE # 237
SETB IN3
; IN4=1;
; SOURCE LINE # 238
SETB IN4
; START=0;
; SOURCE LINE # 239
CLR START
; time1=1;
; SOURCE LINE # 240
MOV time1,#01H
; time2=1;
; SOURCE LINE # 241
MOV time2,#01H
; counter1=170;
; SOURCE LINE # 242
MOV counter1,#0AAH
; counter2=30;
; SOURCE LINE # 243
MOV counter2,#01EH
?C0042:
; //BACK=0;
; while(1)
; SOURCE LINE # 245
; {
; SOURCE LINE # 246
; LEDG=~LEDG;
; SOURCE LINE # 247
CPL LEDG
; EA=1;
; SOURCE LINE # 248
SETB EA
; avge=pingjun();
; SOURCE LINE # 249
LCALL pingjun
MOV avge+03H,R7
MOV avge+02H,R6
MOV avge+01H,R5
MOV avge,R4
; BCD_H_L(avge-200,0);
; SOURCE LINE # 250
MOV A,R7
ADD A,#038H
MOV R7,A
MOV A,R6
ADDC A,#0FFH
MOV R6,A
CLR A
MOV R5,A
LCALL _BCD_H_L
; a=IN0;
; SOURCE LINE # 251
MOV C,IN0
CLR A
RLC A
MOV a?,A
; bb=IN1;
; SOURCE LINE # 252
MOV C,IN1
CLR A
RLC A
MOV bb,A
; c=IN2;
; SOURCE LINE # 253
MOV C,IN2
CLR A
RLC A
MOV c?,A
; d=IN3;
; SOURCE LINE # 254
MOV C,IN3
CLR A
RLC A
MOV d,A
; e=IN4;
; SOURCE LINE # 255
MOV C,IN4
CLR A
RLC A
MOV e,A
; if(forward==1)
; SOURCE LINE # 256
MOV A,forward
CJNE A,#01H,?C0044
; {
; SOURCE LINE # 257
; START=1;
; SOURCE LINE # 258
SETB START
; BACK=1; //前进
; SOURCE LINE # 259
SETB BACK
; judgement(80,20,20);
; SOURCE LINE # 260
MOV R3,#014H
MOV R5,#014H
MOV R7,#050H
LCALL _judgement
;
; }
; SOURCE LINE # 262
?C0044:
; if(black==1)
; SOURCE LINE # 263
MOV A,black
CJNE A,#01H,?C0045
; {
; SOURCE LINE # 264
; START=1;
; SOURCE LINE # 265
SETB START
; TR1=1; //开定时器
; SOURCE LINE # 266
SETB TR1
; time2=0;
; SOURCE LINE # 267
CLR A
MOV time2,A
; judgement(80,20,20);
; SOURCE LINE # 268
MOV R3,#014H
MOV R5,#014H
MOV R7,#050H
LCALL _judgement
; }
; SOURCE LINE # 269
?C0045:
; if(keykey==1)
; SOURCE LINE # 270
MOV A,keykey
CJNE A,#01H,?C0042
;
; {
; SOURCE LINE # 272
; chazhi1=abs((int)(avge-avge0));
; SOURCE LINE # 273
CLR C
MOV A,avge+03H
SUBB A,avge0+03H
MOV R7,A
MOV A,avge+02H
SUBB A,avge0+02H
MOV R6,A
LCALL _abs
MOV chazhi1?853,R7
; if(chazhi1>=20)
; SOURCE LINE # 274
MOV A,chazhi1?853
CLR C
SUBB A,#014H
JC ?C0047
; {
; SOURCE LINE # 275
; START=1;
; SOURCE LINE # 276
SETB START
; counter2=30;
; SOURCE LINE # 277
MOV counter2,#01EH
; if(avge>(avge0+chazhi-3))
; SOURCE LINE # 278
MOV A,chazhi?852
ADD A,avge0+03H
MOV R7,A
CLR A
ADDC A,avge0+02H
MOV R6,A
CLR A
ADDC A,avge0+01H
MOV R5,A
CLR A
ADDC A,avge0
MOV R4,A
MOV A,R7
ADD A,#0FDH
MOV R7,A
MOV A,R6
ADDC A,#0FFH
MOV R6,A
MOV A,R5
ADDC A,#0FFH
MOV R5,A
MOV A,R4
ADDC A,#0FFH
MOV R4,A
MOV R3,avge+03H
MOV R2,avge+02H
MOV R1,avge+01H
MOV R0,avge
SETB C
LCALL ?C?ULCMP
JC ?C0048
; {
; SOURCE LINE # 279
; BACK=0;
; SOURCE LINE # 280
; judgement(50,0,10);
; SOURCE LINE # 281
LCALL L?0071
; }
; SOURCE LINE # 282
?C0048:
; if(avge<(avge0-chazhi))
; SOURCE LINE # 283
MOV R7,chazhi?852
XCH A,R3
MOV A,R7
XCH A,R3
CLR C
MOV A,avge0+03H
SUBB A,R3
MOV R7,A
MOV A,avge0+02H
SUBB A,#00H
MOV R6,A
MOV A,avge0+01H
SUBB A,#00H
MOV R5,A
MOV A,avge0
SUBB A,#00H
MOV R4,A
MOV R3,avge+03H
MOV R2,avge+02H
MOV R1,avge+01H
MOV R0,avge
CLR C
LCALL ?C?ULCMP
JC $ + 5H
LJMP ?C0042
; {
; SOURCE LINE # 284
;
; BACK=1;
; SOURCE LINE # 286
; judgement(50,0,10);
; SOURCE LINE # 287
;
; }
; SOURCE LINE # 289
; }
; SOURCE LINE # 290
SJMP ?C0070
?C0047:
; else if((chazhi1<20)&&(chazhi1>10))
; SOURCE LINE # 291
MOV A,chazhi1?853
CLR C
SUBB A,#014H
JNC ?C0051
MOV A,chazhi1?853
SUBB A,#0AH
JC ?C0051
; {
; SOURCE LINE # 292
; counter2=30;
; SOURCE LINE # 293
MOV counter2,#01EH
; if(avge>(avge0+chazhi-3))
; SOURCE LINE # 294
MOV A,chazhi?852
ADD A,avge0+03H
MOV R7,A
CLR A
ADDC A,avge0+02H
MOV R6,A
CLR A
ADDC A,avge0+01H
MOV R5,A
CLR A
ADDC A,avge0
MOV R4,A
MOV A,R7
ADD A,#0FDH
MOV R7,A
MOV A,R6
ADDC A,#0FFH
MOV R6,A
MOV A,R5
ADDC A,#0FFH
MOV R5,A
MOV A,R4
ADDC A,#0FFH
MOV R4,A
MOV R3,avge+03H
MOV R2,avge+02H
MOV R1,avge+01H
MOV R0,avge
SETB C
LCALL ?C?ULCMP
JC ?C0052
; {
; SOURCE LINE # 295
; START=1;
; SOURCE LINE # 296
SETB START
; BACK=0;
; SOURCE LINE # 297
; judgement(50,0,10);
; SOURCE LINE # 298
LCALL L?0071
; }
; SOURCE LINE # 299
?C0052:
; if(avge<(avge0-chazhi))
; SOURCE LINE # 300
MOV R7,chazhi?852
XCH A,R3
MOV A,R7
XCH A,R3
CLR C
MOV A,avge0+03H
SUBB A,R3
MOV R7,A
MOV A,avge0+02H
SUBB A,#00H
MOV R6,A
MOV A,avge0+01H
SUBB A,#00H
MOV R5,A
MOV A,avge0
SUBB A,#00H
MOV R4,A
MOV R3,avge+03H
MOV R2,avge+02H
MOV R1,avge+01H
MOV R0,avge
CLR C
LCALL ?C?ULCMP
JC $ + 5H
LJMP ?C0042
; {
; SOURCE LINE # 301
; START=1;
; SOURCE LINE # 302
SETB START
; BACK=1;
; SOURCE LINE # 303
?C0070:
SETB BACK
; judgement(50,0,10);
; SOURCE LINE # 304
LCALL L?0072
; }
; SOURCE LINE # 305
; }
; SOURCE LINE # 306
LJMP ?C0042
?C0051:
; else
; {
; SOURCE LINE # 308
; START=0;
; SOURCE LINE # 309
CLR START
; TR1=1; //开定时器
; SOURCE LINE # 310
SETB TR1
; time1=0;
; SOURCE LINE # 311
CLR A
MOV time1,A
; time2=1;
; SOURCE LINE # 312
MOV time2,#01H
;
; }
; SOURCE LINE # 314
; }
; SOURCE LINE # 315
;
; }
; SOURCE LINE # 317
LJMP ?C0042
; END OF main
CSEG AT 0004BH
LJMP PCA_ISR
; }
; /*PCA中断子程序*/
; void PCA_ISR (void) interrupt 9
RSEG ?PR?PCA_ISR?SENORPE
USING 0
PCA_ISR:
; SOURCE LINE # 320
; {
;
; CCF0 = 0; /*清匹配中断标志*/
; SOURCE LINE # 323
CLR CCF0
;
; }
; SOURCE LINE # 325
RETI
; END OF PCA_ISR
CSEG AT 0009BH
LJMP led
; /*键盘中断子程序*/
; void led(void) interrupt 19
RSEG ?PR?led?SENORPE
USING 0
led:
PUSH ACC
PUSH B
PUSH DPH
PUSH DPL
PUSH PSW
MOV A,R0
PUSH ACC
MOV A,R1
PUSH ACC
MOV A,R2
PUSH ACC
MOV A,R3
PUSH ACC
MOV A,R4
PUSH ACC
MOV A,R5
PUSH ACC
MOV A,R6
PUSH ACC
MOV A,R7
PUSH ACC
USING 0
; SOURCE LINE # 327
; {
; uchar key;
; EA=0;
; SOURCE LINE # 330
CLR EA
;
; key=CH452_Read();
; SOURCE LINE # 332
LCALL CH452_Read
MOV key?1054,R7
;
; if(0x62==key)
; SOURCE LINE # 334
MOV A,key?1054
CJNE A,#062H,?C0057
; {
; SOURCE LINE # 335
; delayms(2);
; SOURCE LINE # 336
MOV R7,#02H
MOV R6,#00H
LCALL _delayms
; avge0=avge;
; SOURCE LINE # 337
MOV avge0+03H,avge+03H
MOV avge0+02H,avge+02H
MOV avge0+01H,avge+01H
MOV avge0,avge
; black=0;
; SOURCE LINE # 338
MOV black,#00H
; BCD_H_L(avge0-200,1);
; SOURCE LINE # 339
MOV A,avge0+03H
ADD A,#038H
MOV R7,A
MOV A,avge0+02H
ADDC A,#0FFH
MOV R6,A
MOV R5,#01H
LCALL _BCD_H_L
; }
; SOURCE LINE # 340
?C0057:
; if(0x63==key)
; SOURCE LINE # 341
MOV A,key?1054
CJNE A,#063H,?C0058
; {
; SOURCE LINE # 342
; delayms(2);
; SOURCE LINE # 343
MOV R7,#02H
MOV R6,#00H
LCALL _delayms
; black=1;
; SOURCE LINE # 344
MOV black,#01H
; //START=1;
; }
; SOURCE LINE # 346
?C0058:
; EA=1;
; SOURCE LINE # 347
SETB EA
; }
; SOURCE LINE # 348
POP ACC
MOV R7,A
POP ACC
MOV R6,A
POP ACC
MOV R5,A
POP ACC
MOV R4,A
POP ACC
MOV R3,A
POP ACC
MOV R2,A
POP ACC
MOV R1,A
POP ACC
MOV R0,A
POP PSW
POP DPL
POP DPH
POP B
POP ACC
RETI
; END OF led
CSEG AT 0001BH
LJMP TIMER1_ISR
;
; /*定时器中断子程序*/
; void TIMER1_ISR (void) interrupt 3 using 1
RSEG ?PR?TIMER1_ISR?SENORPE
USING 1
TIMER1_ISR:
PUSH ACC
PUSH B
PUSH DPH
PUSH DPL
PUSH PSW
USING 1
MOV PSW,#08H
; SOURCE LINE # 351
; {
;
; TF1=0;
; SOURCE LINE # 354
CLR TF1
; TH1=0x7D;
; SOURCE LINE # 355
MOV TH1,#07DH
; TL1=0xFB;
; SOURCE LINE # 356
MOV TL1,#0FBH
; if(time1==1) //执行黑线判断程序17s
; SOURCE LINE # 357
MOV A,time1
CJNE A,#01H,?C0060
; {
; SOURCE LINE # 358
; if(--counter1==0)
; SOURCE LINE # 359
DJNZ counter1,?C0060
; {
; SOURCE LINE # 360
; TR1=0; //关定时器
; SOURCE LINE # 361
CLR TR1
; time1=0; //标志
; SOURCE LINE # 362
MOV time1,#00H
; keykey=1;//执行角度黑线判断程序
; SOURCE LINE # 363
MOV keykey,#01H
; black=0; //不执行黑线判断程序
; SOURCE LINE # 364
MOV black,#00H
; }
; SOURCE LINE # 365
;
; }
; SOURCE LINE # 367
?C0060:
; if(time2==1) //判断3s后5s显示
; SOURCE LINE # 368
MOV A,time2
CJNE A,#01H,?C0064
; { if(--counter2==0)
; SOURCE LINE # 369
DJNZ counter2,?C0064
; {
; SOURCE LINE # 370
; TR1=0; //关定时器
; SOURCE LINE # 371
CLR TR1
; time2=0;//标志
; SOURCE LINE # 372
MOV time2,#00H
; confirm();//计数显示
; SOURCE LINE # 373
LCALL confirm
; keykey=0;
; SOURCE LINE # 374
MOV keykey,#00H
; forward=1;//平衡后前进
; SOURCE LINE # 375
MOV forward,#01H
;
;
;
; }
; SOURCE LINE # 379
; }
; SOURCE LINE # 380
;
; } ; SOURCE LINE # 382
?C0064:
POP PSW
POP DPL
POP DPH
POP B
POP ACC
RETI
; END OF TIMER1_ISR
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -