?? 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 + -