📄 work.lis
字号:
0424 042F mov R16,R20
0426 00D0 rcall mod8u
0428 602F mov R22,R16
042A 660F lsl R22
042C .dbline 303
042C ; if(p>b)
042C 20900200 lds R2,_b
0430 30900300 lds R3,_b+1
0434 462E mov R4,R22
0436 5524 clr R5
0438 2414 cp R2,R4
043A 3504 cpc R3,R5
043C 48F4 brsh L119
043E .dbline 304
043E ; {
043E .dbline 305
043E ; b=p-b;
043E 5524 clr R5
0440 4218 sub R4,R2
0442 5308 sbc R5,R3
0444 50920300 sts _b+1,R5
0448 40920200 sts _b,R4
044C .dbline 306
044C ; Judge1();
044C C5DE rcall _Judge1
044E .dbline 307
044E ; }
044E 0DC0 rjmp L120
0450 L119:
0450 .dbline 309
0450 ; else
0450 ; {
0450 .dbline 310
0450 ; b=b-p;
0450 262E mov R2,R22
0452 3324 clr R3
0454 40900200 lds R4,_b
0458 50900300 lds R5,_b+1
045C 4218 sub R4,R2
045E 5308 sbc R5,R3
0460 50920300 sts _b+1,R5
0464 40920200 sts _b,R4
0468 .dbline 311
0468 ; Judge2();
0468 D8DE rcall _Judge2
046A .dbline 312
046A ; }
046A L120:
046A .dbline 313
046A ; for(u=0;u<R_Step;u++) //字轮电机转到打印位置
046A 2224 clr R2
046C 3324 clr R3
046E 30920500 sts _u+1,R3
0472 20920400 sts _u,R2
0476 0AC0 rjmp L124
0478 L121:
0478 .dbline 314
0478 .dbline 314
0478 39DE rcall _PulseZiLun
047A .dbline 314
047A L122:
047A .dbline 313
047A 80910400 lds R24,_u
047E 90910500 lds R25,_u+1
0482 0196 adiw R24,1
0484 90930500 sts _u+1,R25
0488 80930400 sts _u,R24
048C L124:
048C .dbline 313
048C 20900000 lds R2,_R_Step
0490 3324 clr R3
0492 40900400 lds R4,_u
0496 50900500 lds R5,_u+1
049A 4214 cp R4,R2
049C 5304 cpc R5,R3
049E 60F3 brlo L121
04A0 .dbline 315
04A0 ; {PulseZiLun(); }
04A0 ; Print_Act(); //打印十位数
04A0 30DE rcall _Print_Act
04A2 .dbline 316
04A2 ; }
04A2 L110:
04A2 .dbline 318
04A2 ;
04A2 ; k++;
04A2 4395 inc R20
04A4 .dbline 319
04A4 ; MotorZhua_fangZhi(); //翻页
04A4 DBDE rcall _MotorZhua_fangZhi
04A6 .dbline 320
04A6 ; if(Cancell==1)
04A6 80910600 lds R24,_Cancell
04AA 8130 cpi R24,1
04AC 09F4 brne L125
04AE .dbline 321
04AE ; goto OUT2;
04AE 02C0 rjmp L127
04B0 L125:
04B0 .dbline 322
04B0 L103:
04B0 .dbline 277
04B0 B39B sbis 0x16,3
04B2 45CF rjmp L102
04B4 L127:
04B4 .dbline 324
04B4 ; }
04B4 ; OUT2:
04B4 ; Cancell=0; //取消动作并进行翻页复位
04B4 2224 clr R2
04B6 20920600 sts _Cancell,R2
04BA .dbline 325
04BA ; for(u=0;u<450;u++)
04BA 3324 clr R3
04BC 30920500 sts _u+1,R3
04C0 20920400 sts _u,R2
04C4 0DC0 rjmp L131
04C6 L128:
04C6 .dbline 326
04C6 .dbline 327
04C6 85B3 in R24,0x15
04C8 877F andi R24,247
04CA 85BB out 0x15,R24
04CC .dbline 328
04CC 04DE rcall _PulseXingZou
04CE .dbline 329
04CE L129:
04CE .dbline 325
04CE 80910400 lds R24,_u
04D2 90910500 lds R25,_u+1
04D6 0196 adiw R24,1
04D8 90930500 sts _u+1,R25
04DC 80930400 sts _u,R24
04E0 L131:
04E0 .dbline 325
04E0 80910400 lds R24,_u
04E4 90910500 lds R25,_u+1
04E8 823C cpi R24,194
04EA E1E0 ldi R30,1
04EC 9E07 cpc R25,R30
04EE 58F3 brlo L128
04F0 .dbline -2
04F0 .dbline 330
04F0 ; {
04F0 ; M_DIR0;
04F0 ; PulseXingZou();
04F0 ; }
04F0 ; }
04F0 L101:
04F0 00D0 rcall pop_gset2
04F2 .dbline 0 ; func end
04F2 0895 ret
04F4 .dbsym r p 22 c
04F4 .dbsym r k 20 c
04F4 .dbend
04F4 .dbfunc e MotorGaiZhang _MotorGaiZhang fV
.even
04F4 _MotorGaiZhang::
04F4 .dbline -1
04F4 .dbline 333
04F4 ; //**************装票电机与翻页电机配合的盖章过程函数*************//
04F4 ; void MotorGaiZhang()
04F4 ; {
04F4 09C0 rjmp L134
04F6 L133:
04F6 .dbline 335
04F6 ; while(SONSOR_3==0) //纸张传感器位为0时执行循环
04F6 ; {
04F6 .dbline 336
04F6 ; Motor3HouZou(); //进入盖章位置
04F6 EFDE rcall _Motor3HouZou
04F8 .dbline 337
04F8 ; Sign_Act(); //盖章动作
04F8 0EDE rcall _Sign_Act
04FA .dbline 338
04FA ; Motor3QianZhong(); //进入翻页位置
04FA F7DE rcall _Motor3QianZhong
04FC .dbline 339
04FC ; MotorZhua_fangZhi(); //翻页
04FC AFDE rcall _MotorZhua_fangZhi
04FE .dbline 340
04FE ; if(Cancell==1) //检测取消标志
04FE 80910600 lds R24,_Cancell
0502 8130 cpi R24,1
0504 09F4 brne L136
0506 .dbline 341
0506 ; goto OUT3;
0506 02C0 rjmp L138
0508 L136:
0508 .dbline 342
0508 L134:
0508 .dbline 334
0508 B39B sbis 0x16,3
050A F5CF rjmp L133
050C L138:
050C .dbline 344
050C ; }
050C ; OUT3:
050C ; Cancell=0; //取消动作
050C 2224 clr R2
050E 20920600 sts _Cancell,R2
0512 .dbline -2
0512 .dbline 345
0512 ; }
0512 L132:
0512 .dbline 0 ; func end
0512 0895 ret
0514 .dbend
0514 .dbfunc e main _main fV
.even
0514 _main::
0514 .dbline -1
0514 .dbline 348
0514 ; //*********************************主程序***********************************//
0514 ; void main(void)
0514 ; { INT_Init(); //初始化中断
0514 .dbline 348
0514 81DD rcall _INT_Init
0516 L140:
0516 .dbline 350
0516 ; begin:
0516 ; Cancell=0;
0516 2224 clr R2
0518 20920600 sts _Cancell,R2
051C .dbline 351
051C ; SIGN_ACT0; //盖章击打电磁铁1吸起
051C 85B3 in R24,0x15
051E 8B7F andi R24,251
0520 85BB out 0x15,R24
0522 .dbline 352
0522 ; PRINT_ACT0; //打印页码击打电磁铁2吸起
0522 85B3 in R24,0x15
0524 8D7F andi R24,253
0526 85BB out 0x15,R24
0528 .dbline 353
0528 ; GRASP_ACT0; //抓纸机械手不动作
0528 85B3 in R24,0x15
052A 8E7F andi R24,254
052C 85BB out 0x15,R24
052E .dbline 354
052E ; Forward_Step(); //翻页步进电机复位
052E 32DE rcall _Forward_Step
0530 .dbline 355
0530 ; Motor3HouZou(); //承票板往后走
0530 D2DE rcall _Motor3HouZou
0532 .dbline 356
0532 ; Motor3QianZhong(); //承票板往中间走进行复位
0532 DBDE rcall _Motor3QianZhong
0534 L141:
0534 .dbline 357
0534 L144:
0534 .dbline 357
0534 .dbline 357
0534 98DD rcall _FunkeyScan
0536 .dbline 357
0536 L145:
0536 .dbline 357
0536 ; do{do {FunkeyScan();} while(KeyDown==0);
0536 20900700 lds R2,_KeyDown
053A 2220 tst R2
053C D9F3 breq L144
053E .dbline 358
053E ; switch(FunkeyNum)
053E 40910100 lds R20,_FunkeyNum
0542 5527 clr R21
0544 4030 cpi R20,0
0546 4507 cpc R20,R21
0548 49F0 breq L150
054A X0:
054A 4130 cpi R20,1
054C E0E0 ldi R30,0
054E 5E07 cpc R21,R30
0550 39F0 breq L151
0552 4230 cpi R20,2
0554 E0E0 ldi R30,0
0556 5E07 cpc R21,R30
0558 D9F0 breq L161
055A 2DC0 rjmp L148
055C X1:
055C .dbline 359
055C ; {case 0: //装票操作
055C L150:
055C .dbline 360
055C ; Motor3();
055C C4DE rcall _Motor3
055E .dbline 361
055E ; break;
055E 2BC0 rjmp L148
0560 L151:
0560 .dbline 363
0560 ; case 1 : //盖章操作
0560 ; Motor3QianZou(); //出仓
0560 A1DE rcall _Motor3QianZou
0562 L153:
0562 .dbline 365
0562 L154:
0562 .dbline 365
0562 ; wait1:
0562 ; while(KEY_1!=0);
0562 C999 sbic 0x19,1
0564 FECF rjmp L153
0566 06C0 rjmp L157
0568 L156:
0568 .dbline 367
0568 ; while(KEY_1==0)
0568 ; {DelayLong(50);
0568 .dbline 367
0568 02E3 ldi R16,50
056A 10E0 ldi R17,0
056C 68DD rcall _DelayLong
056E .dbline 368
056E ; if(KEY_1==0)
056E C999 sbic 0x19,1
0570 F8CF rjmp L154
0572 .dbline 369
0572 ; Motor3HouZhong(); //入仓
0572 9EDE rcall _Motor3HouZhong
0574 .dbline 370
0574 L160:
0574 .dbline 370
0574 L157:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -