⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 work.lis

📁 AVRkaifashili.rar
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 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 + -