?? timerauto.src
字號:
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 # 98
INC R3
CJNE R3,#0FH,?C0010
?C0011:
; avgad1=avgad1/15;
; SOURCE LINE # 99
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 # 100
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 # 104
; }
; SOURCE LINE # 105
?C0013:
RET
; END OF pingjun
;
;
;
; void stage_clk_start()
RSEG ?PR?stage_clk_start?TIMERAUTO
stage_clk_start:
USING 0
; SOURCE LINE # 109
; {
; SOURCE LINE # 110
;
; //CH452_Write(CH452_TWINKLE);
; DELAY_1US;DELAY_1US;DELAY_1US;DELAY_1US;DELAY_1US;
; SOURCE LINE # 113
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
; stage_clk_flag=1;
; SOURCE LINE # 114
MOV stage_clk_flag,#01H
; stage_sec=0;
; SOURCE LINE # 115
CLR A
MOV stage_sec,A
; CH452_Write(CH452_DIG4);
; SOURCE LINE # 116
MOV R7,A
MOV R6,#0CH
LCALL _CH452_Write
; CH452_Write(CH452_DIG5 | 16);
; SOURCE LINE # 117
MOV R7,#010H
MOV R6,#0DH
LJMP _CH452_Write
; END OF stage_clk_start
; }
; void stage_clk_stop()
RSEG ?PR?stage_clk_stop?TIMERAUTO
stage_clk_stop:
; SOURCE LINE # 119
; {
; SOURCE LINE # 120
; stage_clk_flag=0;
; SOURCE LINE # 121
CLR A
MOV stage_clk_flag,A
; //stage_sec_record[ t_n ]=stage_sec;
; //CH452_Write(CH452_TWINKLE | 0x30);
; //t_n ++;
; }
; SOURCE LINE # 125
RET
; END OF stage_clk_stop
; /****精確秒延時****/
;
; void delay_s(uchar n)
RSEG ?PR?_delay_s?TIMERAUTO
_delay_s:
; SOURCE LINE # 128
MOV n?746,R7
; {
; SOURCE LINE # 129
; #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?746,n_
DJNZ n?746,n_
; #pragma endasm
; }
; SOURCE LINE # 169
RET
; END OF _delay_s
; /*void confirm(void)
; //{
; // uchar i;
; for(i=5;i>0;i--)
; {
; CH452_Write(CH452_DIG7 | i);
; SPOKER=1;
; delay_s(1);
; SPOKER=0;
; delay_s(1);
; }
; CH452_Write(CH452_DIG7);
;
; //}*/
; void judgement (uchar modi,uchar modi1,uchar dem)
RSEG ?PR?_judgement?TIMERAUTO
L?0093:
USING 0
MOV R3,#014H
MOV R5,#014H
MOV R7,#05AH
_judgement:
USING 0
; SOURCE LINE # 184
MOV modi?847,R7
MOV modi1?848,R5
MOV dem?849,R3
; { uchar i;
; SOURCE LINE # 185
; if((a&&bb==0&&c==0)||(a&&bb&&c==0))
; SOURCE LINE # 186
MOV A,a?
JZ ?C0019
MOV A,bb
JNZ ?C0019
MOV A,c?
JZ ?C0018
?C0019:
MOV A,a?
JZ ?C0017
MOV A,bb
JZ ?C0017
MOV A,c?
JNZ ?C0017
?C0018:
; { left=1;
; SOURCE LINE # 187
MOV left,#01H
; right=0;
; SOURCE LINE # 188
CLR A
MOV right,A
; speedchange(modi1,1);
; SOURCE LINE # 189
MOV R5,#01H
MOV R7,modi1?848
LCALL _speedchange
; speedchange(modi,0);
; SOURCE LINE # 190
CLR A
MOV R5,A
; delayms(dem);
; SOURCE LINE # 191
; }
; SOURCE LINE # 192
SJMP ?C0085
?C0017:
; else if((a==0&&bb==0&&c)||(a==0&&bb&&c))
; SOURCE LINE # 193
MOV A,a?
JNZ ?C0023
MOV A,bb
JNZ ?C0023
MOV A,c?
JNZ ?C0022
?C0023:
MOV A,a?
JNZ ?C0021
MOV A,bb
JZ ?C0021
MOV A,c?
JZ ?C0021
?C0022:
; {
; SOURCE LINE # 194
; left=0;
; SOURCE LINE # 195
CLR A
MOV left,A
; right=1;
; SOURCE LINE # 196
MOV right,#01H
; speedchange(modi1,0);
; SOURCE LINE # 197
MOV R5,A
MOV R7,modi1?848
LCALL _speedchange
; speedchange(modi,1);
; SOURCE LINE # 198
MOV R5,#01H
?C0084:
; delayms(dem);
; SOURCE LINE # 199
; }
; SOURCE LINE # 200
SJMP ?C0085
?C0021:
; else if(a==0&&bb&&c==0)
; SOURCE LINE # 201
MOV A,a?
JNZ ?C0025
MOV A,bb
JZ ?C0025
MOV A,c?
JNZ ?C0025
; {
; SOURCE LINE # 202
; left=0;
; SOURCE LINE # 203
MOV left,A
; right=0;
; SOURCE LINE # 204
MOV right,A
; speedchange(modi,0);
; SOURCE LINE # 205
MOV R5,A
MOV R7,modi?847
LCALL _speedchange
; speedchange(modi,1);
; SOURCE LINE # 206
MOV R5,#01H
?C0085:
MOV R7,modi?847
LCALL _speedchange
; delayms(dem);
; SOURCE LINE # 207
; }
; SOURCE LINE # 208
SJMP ?C0086
?C0025:
; else if(a&&bb&&c) //停止&&(d||e)
; SOURCE LINE # 209
MOV A,a?
JZ ?C0027
MOV A,bb
JZ ?C0027
MOV A,c?
JZ ?C0027
; {
; SOURCE LINE # 210
;
; START=0;
; SOURCE LINE # 212
CLR START
; forward=0;
; SOURCE LINE # 213
CLR A
MOV forward,A
; stage_clk_stop();//顯示平衡后前進的時間
; SOURCE LINE # 214
LCALL stage_clk_stop
; for(i=5;i>0;i--)
; SOURCE LINE # 215
MOV i?850,#05H
?C0028:
; {
; SOURCE LINE # 216
; CH452_Write(CH452_DIG7 | i);
; SOURCE LINE # 217
MOV R7,i?850
MOV A,#0FH
MOV R6,A
LCALL _CH452_Write
; SPOKER=1;
; SOURCE LINE # 218
SETB SPOKER
; delay_s(1);
; SOURCE LINE # 219
MOV R7,#01H
LCALL _delay_s
; SPOKER=0;
; SOURCE LINE # 220
CLR SPOKER
; delay_s(1);
; SOURCE LINE # 221
LCALL _delay_s
; }
; SOURCE LINE # 222
DEC i?850
MOV A,i?850
SETB C
SUBB A,#00H
JNC ?C0028
?C0029:
; CH452_Write(CH452_DIG7);
; SOURCE LINE # 223
MOV R7,#00H
MOV R6,#0FH
LCALL _CH452_Write
; stage_clk_start();
; SOURCE LINE # 224
LCALL stage_clk_start
; backward=1;
; SOURCE LINE # 225
MOV backward,#01H
; }
; SOURCE LINE # 226
RET
?C0027:
; else //if (a==0&&bb==0&&c==0)
; {
; SOURCE LINE # 228
; if(left==1)
; SOURCE LINE # 229
MOV A,left
CJNE A,#01H,?C0032
; {
; SOURCE LINE # 230
; speedchange(modi1,0);
; SOURCE LINE # 231
CLR A
MOV R5,A
MOV R7,modi1?848
; speedchange(modi,1); }
; SOURCE LINE # 232
SJMP ?C0087
?C0032:
; else if(right==1)
; SOURCE LINE # 233
MOV A,right
CJNE A,#01H,?C0034
; {
; SOURCE LINE # 234
; speedchange(modi,0);
; SOURCE LINE # 235
CLR A
MOV R5,A
MOV R7,modi?847
LCALL _speedchange
; speedchange(modi1,1);}
; SOURCE LINE # 236
MOV R5,#01H
MOV R7,modi1?848
SJMP ?C0088
?C0034:
; else
; {
; SOURCE LINE # 238
; speedchange(modi,0);
; SOURCE LINE # 239
CLR A
MOV R5,A
MOV R7,modi?847
?C0087:
LCALL _speedchange
; speedchange(modi,1);}
; SOURCE LINE # 240
MOV R5,#01H
MOV R7,modi?847
?C0088:
LCALL _speedchange
?C0033:
; delayms(dem);
; SOURCE LINE # 241
?C0086:
MOV R7,dem?849
MOV R6,#00H
LCALL _delayms
; }
; SOURCE LINE # 242
;
; }
; SOURCE LINE # 244
?C0036:
RET
; END OF _judgement
; void judgementback (uchar modi,uchar modi1,uchar dem)
RSEG ?PR?_judgementback?TIMERAUTO
L?0092:
USING 0
CLR BACK
MOV R3,#0FH
MOV R5,#032H
CLR A
MOV R7,A
_judgementback:
USING 0
; SOURCE LINE # 245
MOV modi?951,R7
MOV modi1?952,R5
MOV dem?953,R3
; {
; SOURCE LINE # 246
; if(f==1&&g==0)
; SOURCE LINE # 247
MOV A,f
CJNE A,#01H,?C0037
MOV A,g
JNZ ?C0037
; {
; SOURCE LINE # 248
; speedchange(modi1,1);
; SOURCE LINE # 249
MOV R5,#01H
MOV R7,modi1?952
; speedchange(modi,0);
; SOURCE LINE # 250
;
; }
; SOURCE LINE # 252
SJMP ?C0089
?C0037:
; else if(f==0&&g==1)
; SOURCE LINE # 253
MOV A,f
JNZ ?C0039
MOV A,g
CJNE A,#01H,?C0039
; {
; SOURCE LINE # 254
; speedchange(modi,1);
; SOURCE LINE # 255
MOV R5,#01H
MOV R7,modi?951
LCALL _speedchange
; speedchange(modi1,0);
; SOURCE LINE # 256
CLR A
MOV R5,A
MOV R7,modi1?952
;
; }
; SOURCE LINE # 258
SJMP ?C0090
?C0039:
; else if(f==0&&g==0)
; SOURCE LINE # 259
MOV A,f
JNZ ?C0041
MOV A,g
JNZ ?C0041
; {
; SOURCE LINE # 260
; speedchange(modi,1);
; SOURCE LINE # 261
MOV R5,#01H
MOV R7,modi?951
?C0089:
LCALL _speedchange
; speedchange(modi,0);
; SOURCE LINE # 262
CLR A
MOV R5,A
MOV R7,modi?951
?C0090:
LCALL _speedchange
; }
; SOURCE LINE # 263
SJMP ?C0038
?C0041:
; else
; {
; SOURCE LINE # 265
; START=0;
; SOURCE LINE # 266
CLR START
; stage_clk_stop();
; SOURCE LINE # 267
LCALL stage_clk_stop
; TR0=0;
; SOURCE LINE # 268
CLR TR0
;
; }
; SOURCE LINE # 270
?C0038:
; delayms(dem);
; SOURCE LINE # 271
MOV R7,dem?953
MOV R6,#00H
LJMP _delayms
; END OF _judgementback
; }
;
;
; void main(void)
RSEG ?PR?main?TIMERAUTO
main:
USING 0
; SOURCE LINE # 275
; {
; SOURCE LINE # 276
; uchar chazhi=4;
; SOURCE LINE # 277
MOV chazhi?1054,#04H
; uchar chazhi1;
; Init_Device();
; SOURCE LINE # 279
LCALL Init_Device
; CH452_Init(); /* CH452初始化 */
; SOURCE LINE # 280
LCALL CH452_Init
; LEDG=0;
; SOURCE LINE # 281
CLR LEDG
; SPOKER=0;
; SOURCE LINE # 282
CLR SPOKER
; IN0=1;
; SOURCE LINE # 283
SETB IN0
; IN1=1;
; SOURCE LINE # 284
SETB IN1
; IN2=1;
; SOURCE LINE # 285
SETB IN2
; //IN3=1;
; //IN4=1;
; IN5=1;
; SOURCE LINE # 288
SETB IN5
; IN6=1;
; SOURCE LINE # 289
SETB IN6
; START=0;
; SOURCE LINE # 290
CLR START
; time1=1;
; SOURCE LINE # 291
MOV time1,#01H
; time2=1;
; SOURCE LINE # 292
MOV time2,#01H
; counter1=170;
; SOURCE LINE # 293
MOV counter1,#0AAH
; counter2=30;
; SOURCE LINE # 294
MOV counter2,#01EH
; EA=1;
; SOURCE LINE # 295
SETB EA
?C0044:
;
; //BACK=0;
; while(1)
; SOURCE LINE # 298
; {
; SOURCE LINE # 299
; LEDG=~LEDG;
; SOURCE LINE # 300
CPL LEDG
; avge=pingjun();
; SOURCE LINE # 301
LCALL pingjun
MOV avge+03H,R7
MOV avge+02H,R6
MOV avge+01H,R5
MOV avge,R4
; if(xianshi==1)
; SOURCE LINE # 302
MOV A,xianshi
CJNE A,#01H,?C0046
; {BCD_H_L(avge-200,0); }
; SOURCE LINE # 303
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
?C0046:
; a=IN0;
; SOURCE LINE # 304
MOV C,IN0
CLR A
RLC A
MOV a?,A
; bb=IN1;
; SOURCE LINE # 305
MOV C,IN1
CLR A
RLC A
MOV bb,A
; c=IN2;
; SOURCE LINE # 306
MOV C,IN2
CLR A
RLC A
MOV c?,A
; //d=IN3;
; //e=IN4;
; f=IN5;
; SOURCE LINE # 309
MOV C,IN5
CLR A
RLC A
MOV f,A
; g=IN6;
; SOURCE LINE # 310
MOV C,IN6
CLR A
RLC A
MOV g,A
; if(backward==1)
; SOURCE LINE # 311
MOV A,backward
CJNE A,#01H,?C0047
; {
; SOURCE LINE # 312
; START=1;
; SOURCE LINE # 313
SETB START
; BACK=0;
; SOURCE LINE # 314
CLR BACK
; judgementback(90,20,20);
; SOURCE LINE # 315
MOV R3,#014H
MOV R5,#014H
MOV R7,#05AH
LCALL _judgementback
; }
; SOURCE LINE # 316
?C0047:
;
; if(forward==1)
; SOURCE LINE # 318
MOV A,forward
CJNE A,#01H,?C0048
; {
; SOURCE LINE # 319
; START=1;
; SOURCE LINE # 320
SETB START
; BACK=1; //前進
; SOURCE LINE # 321
SETB BACK
; judgement(90,20,20);
; SOURCE LINE # 322
LCALL L?0093
;
; }
; SOURCE LINE # 324
?C0048:
; if(black==1)
; SOURCE LINE # 325
MOV A,black
CJNE A,#01H,?C0049
; {
; SOURCE LINE # 326
; START=1;
; SOURCE LINE # 327
SETB START
; TR1=1; //開定時器
; SOURCE LINE # 328
SETB TR1
; time2=0;
; SOURCE LINE # 329
CLR A
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -