📄 work.lis
字号:
02E6 .dbline -1
02E6 .dbline 236
02E6 ; //*********************装票过程函数*****************************//
02E6 ; void Motor3()
02E6 ; {
02E6 .dbline 237
02E6 ; Motor3QianZou(); //调用装票步进电机出仓过程函数
02E6 DEDF rcall _Motor3QianZou
02E8 .dbline 238
02E8 ; Motor3HouZhong(); //调用装票步进电机入仓过程函数
02E8 .dbline -2
02E8 .dbline 239
02E8 ; }
02E8 L84:
02E8 .dbline 0 ; func end
02E8 E3CF rjmp _Motor3HouZhong
02EA .dbend
02EA .dbfunc e Motor3QianZhong _Motor3QianZhong fV
02EA ; i -> R20,R21
.even
02EA _Motor3QianZhong::
02EA 00D0 rcall push_gset1
02EC .dbline -1
02EC .dbline 242
02EC ; //*******装票步进电机入仓后再进入盖章位置的逆过程函数***********//
02EC ; void Motor3QianZhong()
02EC ; {uint i;
02EC .dbline 243
02EC ; M_DIR1; //装票步进电机出方向
02EC AB9A sbi 0x15,3
02EE 01C0 rjmp L87
02F0 L86:
02F0 .dbline 245
02F0 .dbline 246
02F0 E7DE rcall _PulseZhuangPiao
02F2 .dbline 247
02F2 L87:
02F2 .dbline 244
02F2 ; while(SONSOR_1==0) //检测中传感器
02F2 B19B sbis 0x16,1
02F4 FDCF rjmp L86
02F6 .dbline 248
02F6 ; {
02F6 ; PulseZhuangPiao(); //装票步进电机驱动脉冲输出
02F6 ; }
02F6 ; for(i=0;i<20;i++) //修正传感器位置误差20
02F6 4427 clr R20
02F8 5527 clr R21
02FA 03C0 rjmp L92
02FC L89:
02FC .dbline 249
02FC E1DE rcall _PulseZhuangPiao
02FE L90:
02FE .dbline 248
02FE 4F5F subi R20,255 ; offset = 1
0300 5F4F sbci R21,255
0302 L92:
0302 .dbline 248
0302 4431 cpi R20,20
0304 E0E0 ldi R30,0
0306 5E07 cpc R21,R30
0308 C8F3 brlo L89
030A .dbline -2
030A .dbline 250
030A ; PulseZhuangPiao(); //装票步进电机驱动脉冲输出
030A ; }
030A L85:
030A 00D0 rcall pop_gset1
030C .dbline 0 ; func end
030C 0895 ret
030E .dbsym r i 20 i
030E .dbend
030E .dbfunc e Motor1_Fuwei _Motor1_Fuwei fV
.even
030E _Motor1_Fuwei::
030E .dbline -1
030E .dbline 253
030E ; //***************翻页电机打印页码过程中复位函数*****************//
030E ; void Motor1_Fuwei()
030E ; {
030E .dbline 254
030E ; Reverse_Step(); //翻页电机行走抓纸张函数
030E 2ADF rcall _Reverse_Step
0310 .dbline 255
0310 ; DelayLong(5);
0310 05E0 ldi R16,5
0312 10E0 ldi R17,0
0314 94DE rcall _DelayLong
0316 02C0 rjmp L95
0318 L94:
0318 .dbline 257
0318 .dbline 258
0318 AB9A sbi 0x15,3
031A .dbline 259
031A DDDE rcall _PulseXingZou
031C .dbline 260
031C L95:
031C .dbline 256
031C ; while(SONSOR_6==0) //检测中传感器5
031C B69B sbis 0x16,6
031E FCCF rjmp L94
0320 .dbline 261
0320 ; {
0320 ; M_DIR1; //翻页电机正转
0320 ; PulseXingZou(); //翻页电机行驱动脉冲输出
0320 ; }
0320 ; M_DIR0; //翻页电机反转
0320 85B3 in R24,0x15
0322 877F andi R24,247
0324 85BB out 0x15,R24
0326 .dbline -2
0326 .dbline 262
0326 ; }
0326 L93:
0326 .dbline 0 ; func end
0326 0895 ret
0328 .dbend
0328 .dbfunc e Motor2_Fuwei _Motor2_Fuwei fV
.even
0328 _Motor2_Fuwei::
0328 .dbline -1
0328 .dbline 265
0328 ; //***************字轮电机打印页码过程中复位函数*****************//
0328 ; void Motor2_Fuwei()
0328 ; {
0328 .dbline 266
0328 ; M_DIR0; //字轮电机反转
0328 85B3 in R24,0x15
032A 877F andi R24,247
032C 85BB out 0x15,R24
032E 01C0 rjmp L99
0330 L98:
0330 .dbline 268
0330 .dbline 269
0330 DDDE rcall _PulseZiLun
0332 .dbline 270
0332 L99:
0332 .dbline 267
0332 ; while(SONSOR_4==0) //检测字轮定位传感器
0332 B49B sbis 0x16,4
0334 FDCF rjmp L98
0336 .dbline -2
0336 .dbline 271
0336 ; {
0336 ; PulseZiLun(); //字轮电机行驱动脉冲输出
0336 ; }
0336 ; }
0336 L97:
0336 .dbline 0 ; func end
0336 0895 ret
0338 .dbend
0338 .dbfunc e Motor12_Dama _Motor12_Dama fV
0338 ; p -> R22
0338 ; k -> R20
.even
0338 _Motor12_Dama::
0338 00D0 rcall push_gset2
033A .dbline -1
033A .dbline 274
033A ; //***********字轮电机与翻页电机配合打印页码过程函数*************//
033A ; void Motor12_Dama()
033A ; {
033A .dbline 275
033A ; uchar k=0;
033A 4427 clr R20
033C B9C0 rjmp L103
033E L102:
033E .dbline 278
033E ; uchar p;
033E ; while(SONSOR_3==0) //纸张传感器为0(有票据)时执行循环
033E ; {
033E .dbline 279
033E ; for(u=0;u<150;u++) //字轮电机进入打印位置
033E 2224 clr R2
0340 3324 clr R3
0342 30920500 sts _u+1,R3
0346 20920400 sts _u,R2
034A 0DC0 rjmp L108
034C L105:
034C .dbline 280
034C .dbline 281
034C 85B3 in R24,0x15
034E 877F andi R24,247
0350 85BB out 0x15,R24
0352 .dbline 282
0352 C1DE rcall _PulseXingZou
0354 .dbline 283
0354 L106:
0354 .dbline 279
0354 80910400 lds R24,_u
0358 90910500 lds R25,_u+1
035C 0196 adiw R24,1
035E 90930500 sts _u+1,R25
0362 80930400 sts _u,R24
0366 L108:
0366 .dbline 279
0366 80910400 lds R24,_u
036A 90910500 lds R25,_u+1
036E 8639 cpi R24,150
0370 E0E0 ldi R30,0
0372 9E07 cpc R25,R30
0374 58F3 brlo L105
0376 .dbline 284
0376 ; {
0376 ; M_DIR0; //字轮电机反转
0376 ; PulseXingZou(); //字轮电机行驱动脉冲输出
0376 ; }
0376 ; Motor2_Fuwei(); //字轮电机复位
0376 D8DF rcall _Motor2_Fuwei
0378 .dbline 285
0378 ; p=0;
0378 6627 clr R22
037A .dbline 286
037A ; if(k<10)
037A 4A30 cpi R20,10
037C 40F5 brsh L109
037E .dbline 287
037E ; {
037E .dbline 288
037E ; b=k+k;
037E 242E mov R2,R20
0380 3324 clr R3
0382 422C mov R4,R2
0384 5524 clr R5
0386 420C add R4,R2
0388 531C adc R5,R3
038A 50920300 sts _b+1,R5
038E 40920200 sts _b,R4
0392 .dbline 289
0392 ; Judge1();
0392 22DF rcall _Judge1
0394 .dbline 290
0394 ; for(u=0;u<R_Step;u++) //字轮电机转到打印位置
0394 2224 clr R2
0396 3324 clr R3
0398 30920500 sts _u+1,R3
039C 20920400 sts _u,R2
03A0 0AC0 rjmp L114
03A2 L111:
03A2 .dbline 291
03A2 .dbline 291
03A2 A4DE rcall _PulseZiLun
03A4 .dbline 291
03A4 L112:
03A4 .dbline 290
03A4 80910400 lds R24,_u
03A8 90910500 lds R25,_u+1
03AC 0196 adiw R24,1
03AE 90930500 sts _u+1,R25
03B2 80930400 sts _u,R24
03B6 L114:
03B6 .dbline 290
03B6 20900000 lds R2,_R_Step
03BA 3324 clr R3
03BC 40900400 lds R4,_u
03C0 50900500 lds R5,_u+1
03C4 4214 cp R4,R2
03C6 5304 cpc R5,R3
03C8 60F3 brlo L111
03CA .dbline 292
03CA ; {PulseZiLun(); }
03CA ; Print_Act();
03CA 9BDE rcall _Print_Act
03CC .dbline 293
03CC ; }
03CC 6AC0 rjmp L110
03CE L109:
03CE .dbline 296
03CE ;
03CE ; else
03CE ; {
03CE .dbline 297
03CE ; b=k/10+k/10; //取整的余数(个位数的值)
03CE 2AE0 ldi R18,10
03D0 30E0 ldi R19,0
03D2 042F mov R16,R20
03D4 1127 clr R17
03D6 00D0 rcall div16s
03D8 202E mov R2,R16
03DA 312E mov R3,R17
03DC 200E add R2,R16
03DE 311E adc R3,R17
03E0 30920300 sts _b+1,R3
03E4 20920200 sts _b,R2
03E8 .dbline 298
03E8 ; Judge1();
03E8 F7DE rcall _Judge1
03EA .dbline 299
03EA ; for(u=0;u<R_Step;u++) //字轮电机转到打印位置
03EA 2224 clr R2
03EC 3324 clr R3
03EE 30920500 sts _u+1,R3
03F2 20920400 sts _u,R2
03F6 0AC0 rjmp L118
03F8 L115:
03F8 .dbline 300
03F8 .dbline 300
03F8 79DE rcall _PulseZiLun
03FA .dbline 300
03FA L116:
03FA .dbline 299
03FA 80910400 lds R24,_u
03FE 90910500 lds R25,_u+1
0402 0196 adiw R24,1
0404 90930500 sts _u+1,R25
0408 80930400 sts _u,R24
040C L118:
040C .dbline 299
040C 20900000 lds R2,_R_Step
0410 3324 clr R3
0412 40900400 lds R4,_u
0416 50900500 lds R5,_u+1
041A 4214 cp R4,R2
041C 5304 cpc R5,R3
041E 60F3 brlo L115
0420 .dbline 301
0420 ; {PulseZiLun(); }
0420 ; Print_Act(); //打印个位数
0420 70DE rcall _Print_Act
0422 .dbline 302
0422 ; p=2*(k%10); //取整的值(十位数的值)
0422 1AE0 ldi R17,10
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -