?? wwork.s
字號:
; {
; M_DIR0; //翻頁電機反轉
; PulseXingZou(); //翻頁電機驅動脈沖輸出
; }
; }
L40:
rcall pop_gset1
.dbline 0 ; func end
ret
.dbsym r i 20 i
.dbend
.dbfunc e Forward_Step _Forward_Step fV
.even
_Forward_Step::
.dbline -1
.dbline 168
; //***************翻頁電機行走上電后復位函數********************//
; void Forward_Step()
; {
rjmp L50
L49:
.dbline 170
.dbline 171
sbi 0x15,3
.dbline 172
rcall _PulseXingZou
.dbline 173
L50:
.dbline 169
; while(SONSOR_6==0) //檢測傳感器6
sbis 0x16,6
rjmp L49
.dbline 174
; {
; M_DIR1; //翻頁電機正轉
; PulseXingZou(); //翻頁電機驅動脈沖輸出
; }
; M_DIR0; //翻頁電機反轉
in R24,0x15
andi R24,247
out 0x15,R24
.dbline 175
; for(u=0;u<400;u++) //翻頁電機居中
clr R2
clr R3
sts _u+1,R3
sts _u,R2
rjmp L55
L52:
.dbline 176
.dbline 177
rcall _PulseXingZou
.dbline 178
L53:
.dbline 175
lds R24,_u
lds R25,_u+1
adiw R24,1
sts _u+1,R25
sts _u,R24
L55:
.dbline 175
lds R24,_u
lds R25,_u+1
cpi R24,144
ldi R30,1
cpc R25,R30
brlo L52
.dbline -2
.dbline 179
; {
; PulseXingZou(); //翻頁電機驅動脈沖輸出
; }
; }
L48:
.dbline 0 ; func end
ret
.dbend
.dbfunc e Judge1 _Judge1 fV
.even
_Judge1::
.dbline -1
.dbline 182
; //***************字輪電機轉動方向及步數判斷函數1****************//
; void Judge1() //判斷字輪正反轉
; {
.dbline 183
; if(b>10){R_Step=(20-b)*12; M_DIR1;}
ldi R24,10
ldi R25,0
lds R2,_b
lds R3,_b+1
cp R24,R2
cpc R25,R3
brsh L57
.dbline 183
.dbline 183
ldi R18,20
ldi R19,0
sub R18,R2
sbc R19,R3
ldi R16,12
ldi R17,0
rcall mpy16s
sts _R_Step,R16
.dbline 183
sbi 0x15,3
.dbline 183
rjmp L58
L57:
.dbline 184
.dbline 184
lds R18,_b
lds R19,_b+1
ldi R16,12
ldi R17,0
rcall mpy16s
sts _R_Step,R16
.dbline 184
in R24,0x15
andi R24,247
out 0x15,R24
.dbline 184
L58:
.dbline -2
.dbline 185
; else {R_Step=b*12; M_DIR0; }
; }
L56:
.dbline 0 ; func end
ret
.dbend
.dbfunc e Judge2 _Judge2 fV
.even
_Judge2::
.dbline -1
.dbline 188
; //***************字輪電機轉動方向及步數判斷函數2****************//
; void Judge2() //判斷字輪正反轉
; {
.dbline 189
; if(b>10){R_Step=(20-b)*12; M_DIR0;}
ldi R24,10
ldi R25,0
lds R2,_b
lds R3,_b+1
cp R24,R2
cpc R25,R3
brsh L60
.dbline 189
.dbline 189
ldi R18,20
ldi R19,0
sub R18,R2
sbc R19,R3
ldi R16,12
ldi R17,0
rcall mpy16s
sts _R_Step,R16
.dbline 189
in R24,0x15
andi R24,247
out 0x15,R24
.dbline 189
rjmp L61
L60:
.dbline 190
.dbline 190
lds R18,_b
lds R19,_b+1
ldi R16,12
ldi R17,0
rcall mpy16s
sts _R_Step,R16
.dbline 190
sbi 0x15,3
.dbline 190
L61:
.dbline -2
.dbline 191
; else {R_Step=b*12; M_DIR1; }
; }
L59:
.dbline 0 ; func end
ret
.dbend
.dbfunc e MotorZhua_fangZhi _MotorZhua_fangZhi fV
.even
_MotorZhua_fangZhi::
.dbline -1
.dbline 194
; //***************機械手配合翻頁電機翻頁過程函數*****************//
; void MotorZhua_fangZhi()
; {Reverse_Step();
.dbline 194
rcall _Reverse_Step
.dbline 195
; u=0;
clr R2
clr R3
sts _u+1,R3
sts _u,R2
.dbline 196
; DelayLong(5); //吸紙延時10*(1000)
ldi R16,5
ldi R17,0
rcall _DelayLong
rjmp L64
L63:
.dbline 198
; while(SONSOR_6==0) //檢測傳感器6
; {
.dbline 199
; M_DIR1; //翻頁電機正轉
sbi 0x15,3
.dbline 200
; u++;
lds R24,_u
lds R25,_u+1
adiw R24,1
sts _u+1,R25
sts _u,R24
.dbline 201
; PulseXingZou(); //翻頁電機驅動脈沖輸出
rcall _PulseXingZou
.dbline 202
; if(u==380){ GRASP_ACT0;} //抓紙機械手后翻頁電機往正轉380步放紙
lds R24,_u
lds R25,_u+1
cpi R24,124
ldi R30,1
cpc R25,R30
brne L66
.dbline 202
.dbline 202
in R24,0x15
andi R24,254
out 0x15,R24
.dbline 202
L66:
.dbline 203
L64:
.dbline 197
sbis 0x16,6
rjmp L63
.dbline -2
.dbline 204
; }
; }
L62:
.dbline 0 ; func end
ret
.dbend
.dbfunc e Motor3QianZou _Motor3QianZou fV
.even
_Motor3QianZou::
.dbline -1
.dbline 207
; //******************裝票步進電機出倉過程函數********************//
; void Motor3QianZou()
; {
.dbline 208
; M_DIR1; //裝票步進電機出倉方向
sbi 0x15,3
rjmp L70
L69:
.dbline 210
rcall _PulseZhuangPiao
L70:
.dbline 209
; while(SONSOR_0==0) //檢測前傳感器
sbis 0x16,0
rjmp L69
.dbline -2
.dbline 211
; PulseZhuangPiao(); //承票板往前走
; }
L68:
.dbline 0 ; func end
ret
.dbend
.dbfunc e Motor3HouZhong _Motor3HouZhong fV
; e -> R20
.even
_Motor3HouZhong::
rcall push_gset1
.dbline -1
.dbline 214
; //******************裝票步進電機入倉過程函數********************//
; void Motor3HouZhong()
; {
rjmp L74
L73:
.dbline 217
.dbline 218
in R24,0x15
andi R24,247
out 0x15,R24
.dbline 219
rcall _PulseZhuangPiao
.dbline 220
L74:
.dbline 216
; uchar e;
; while(SONSOR_1==0) //檢測中傳感器
sbis 0x16,1
rjmp L73
.dbline 221
; {
; M_DIR0; //裝票步進電機入倉方向
; PulseZhuangPiao(); //裝票步進電機驅動脈沖輸出
; }
; for(e=0;e<55;e++) //修正傳感器位置誤差55
clr R20
rjmp L79
L76:
.dbline 222
.dbline 223
in R24,0x15
andi R24,247
out 0x15,R24
.dbline 224
rcall _PulseZhuangPiao
.dbline 225
L77:
.dbline 221
inc R20
L79:
.dbline 221
cpi R20,55
brlo L76
.dbline -2
.dbline 226
; {
; M_DIR0; //裝票步進電機入倉方向
; PulseZhuangPiao(); //裝票步進電機驅動脈沖輸出
; }
; }
L72:
rcall pop_gset1
.dbline 0 ; func end
ret
.dbsym r e 20 c
.dbend
.dbfunc e Motor3HouZou _Motor3HouZou fV
.even
_Motor3HouZou::
.dbline -1
.dbline 229
; //*********裝票步進電機入倉后再進入蓋章位置的過程函數***********//
; void Motor3HouZou()
; {
.dbline 230
; M_DIR0; //裝票步進電機入倉方向
in R24,0x15
andi R24,247
out 0x15,R24
rjmp L82
L81:
.dbline 232
rcall _PulseZhuangPiao
L82:
.dbline 231
; while(SONSOR_2==0) //檢測后傳感器
sbis 0x16,2
rjmp L81
.dbline -2
.dbline 233
; PulseZhuangPiao(); //裝票步進電機驅動脈沖輸出
; }
L80:
.dbline 0 ; func end
ret
.dbend
.dbfunc e Motor3 _Motor3 fV
.even
_Motor3::
.dbline -1
.dbline 236
; //*********************裝票過程函數*****************************//
; void Motor3()
; {
.dbline 237
; Motor3QianZou(); //調用裝票步進電機出倉過程函數
rcall _Motor3QianZou
.dbline 238
; Motor3HouZhong(); //調用裝票步進電機入倉過程函數
.dbline -2
.dbline 239
; }
L84:
.dbline 0 ; func end
rjmp _Motor3HouZhong
.dbend
.dbfunc e Motor3QianZhong _Motor3QianZhong fV
; i -> R20,R21
.even
_Motor3QianZhong::
rcall push_gset1
.dbline -1
.dbline 242
; //*******裝票步進電機入倉后再進入蓋章位置的逆過程函數***********//
; void Motor3QianZhong()
; {uint i;
.dbline 243
; M_DIR1; //裝票步進電機出方向
sbi 0x15,3
rjmp L87
L86:
.dbline 245
.dbline 246
rcall _PulseZhuangPiao
.dbline 247
L87:
.dbline 244
; while(SONSOR_1==0) //檢測中傳感器
sbis 0x16,1
rjmp L86
.dbline 248
; {
; PulseZhuangPiao(); //裝票步進電機驅動脈沖輸出
; }
; for(i=0;i<20;i++) //修正傳感器位置誤差20
clr R20
clr R21
rjmp L92
L89:
.dbline 249
rcall _PulseZhuangPiao
L90:
.dbline 248
subi R20,255 ; offset = 1
sbci R21,255
L92:
.dbline 248
cpi R20,20
ldi R30,0
cpc R21,R30
brlo L89
.dbline -2
.dbline 250
; PulseZhuangPiao(); //裝票步進電機驅動脈沖輸出
; }
L85:
rcall pop_gset1
.dbline 0 ; func end
ret
.dbsym r i 20 i
.dbend
.dbfunc e Motor1_Fuwei _Motor1_Fuwei fV
.even
_Motor1_Fuwei::
.dbline -1
.dbline 253
; //***************翻頁電機打印頁碼過程中復位函數*****************//
; void Motor1_Fuwei()
; {
.dbline 254
; Reverse_Step(); //翻頁電機行走抓紙張函數
rcall _Reverse_Step
.dbline 255
; DelayLong(5);
ldi R16,5
ldi R17,0
rcall _DelayLong
rjmp L95
L94:
.dbline 257
.dbline 258
sbi 0x15,3
.dbline 259
rcall _PulseXingZou
.dbline 260
L95:
.dbline 256
; while(SONSOR_6==0) //檢測中傳感器5
sbis 0x16,6
rjmp L94
.dbline 261
; {
; M_DIR1; //翻頁電機正轉
; PulseXingZou(); //翻頁電機行驅動脈沖輸出
; }
; M_DIR0; //翻頁電機反轉
in R24,0x15
andi R24,247
out 0x15,R24
.dbline -2
.dbline 262
; }
L93:
.dbline 0 ; func end
ret
.dbend
.dbfunc e Motor2_Fuwei _Motor2_Fuwei fV
.even
_Motor2_Fuwei::
.dbline -1
.dbline 265
; //***************字輪電機打印頁碼過程中復位函數*****************//
; void Motor2_Fuwei()
; {
.dbline 266
; M_DIR0; //字輪電機反轉
in R24,0x15
andi R24,247
out 0x15,R24
rjmp L99
L98:
.dbline 268
.dbline 269
rcall _PulseZiLun
.dbline 270
L99:
.dbline 267
; while(SONSOR_4==0) //檢測字輪定位傳感器
sbis 0x16,4
rjmp L98
.dbline -2
.dbline 271
; {
; PulseZiLun(); //字輪電機行驅動脈沖輸出
; }
; }
L97:
.dbline 0 ; func end
ret
.dbend
.dbfunc e Motor12_Dama _Motor12_Dama fV
; p -> R22
; k -> R20
.even
_Motor12_Dama::
rcall push_gset2
.dbline -1
.dbline 274
; //***********字輪電機與翻頁電機配合打印頁碼過程函數*************//
; void Motor12_Dama()
; {
.dbline 275
; uchar k=0;
clr R20
rjmp L103
L102:
.dbline 278
; uchar p;
; while(SONSOR_3==0) //紙張傳感器為0(有票據)時執行循環
; {
.dbline 279
; for(u=0;u<150;u++) //字輪電機進入打印位置
clr R2
clr R3
sts _u+1,R3
sts _u,R2
rjmp L108
L105:
.dbline 280
.dbline 281
in R24,0x15
andi R24,247
out 0x15,R24
.dbline 282
rcall _PulseXingZou
.dbline 283
L106:
.dbline 279
lds R24,_u
lds R25,_u+1
adiw R24,1
sts _u+1,R25
sts _u,R24
L108:
.dbline 279
lds R24,_u
lds R25,_u+1
cpi R24,150
ldi R30,0
cpc R25,R30
brlo L105
.dbline 284
; {
; M_DIR0; //字輪電機反轉
; PulseXingZou(); //字輪電機行驅動脈沖輸出
; }
; Motor2_Fuwei(); //字輪電機復位
rcall _Motor2_Fuwei
.dbline 285
; p=0;
clr R22
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -