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

📄 work.lis

📁 AVRkaifashili.rar
💻 LIS
📖 第 1 页 / 共 5 页
字号:
                        .even
 00C0           _PulseZhuangPiao::
 00C0                   .dbline -1
 00C0                   .dbline 105
 00C0           ; //******************装票步进电机频率函数***********************//
 00C0           ; void PulseZhuangPiao()     
 00C0           ; {
 00C0                   .dbline 106
 00C0           ;    DelayShort(45);      //装票步进电机周期45us
 00C0 0DE2              ldi R16,45
 00C2 10E0              ldi R17,0
 00C4 B1DF              rcall _DelayShort
 00C6                   .dbline 107
 00C6           ;    M1_pulse1;           //Pc7=1
 00C6 AE9A              sbi 0x15,6
 00C8                   .dbline 108
 00C8           ;    DelayShort(45);      //装票步进电机周期45us
 00C8 0DE2              ldi R16,45
 00CA 10E0              ldi R17,0
 00CC ADDF              rcall _DelayShort
 00CE                   .dbline 109
 00CE           ;    M1_pulse0;           //Pc7=0
 00CE 85B3              in R24,0x15
 00D0 8F7B              andi R24,191
 00D2 85BB              out 0x15,R24
 00D4                   .dbline -2
 00D4                   .dbline 110
 00D4           ; }
 00D4           L30:
 00D4                   .dbline 0 ; func end
 00D4 0895              ret
 00D6                   .dbend
 00D6                   .dbfunc e PulseXingZou _PulseXingZou fV
                        .even
 00D6           _PulseXingZou::
 00D6                   .dbline -1
 00D6                   .dbline 113
 00D6           ; //******************翻页步进电机频率函数***********************//
 00D6           ; void PulseXingZou()
 00D6           ; {
 00D6                   .dbline 114
 00D6           ;    DelayShort(35);      //翻页步进电机周期35us
 00D6 03E2              ldi R16,35
 00D8 10E0              ldi R17,0
 00DA A6DF              rcall _DelayShort
 00DC                   .dbline 115
 00DC           ;    M2_pulse1;           //Pc6=1
 00DC AD9A              sbi 0x15,5
 00DE                   .dbline 116
 00DE           ;    DelayShort(35);      //翻页步进电机周期35us
 00DE 03E2              ldi R16,35
 00E0 10E0              ldi R17,0
 00E2 A2DF              rcall _DelayShort
 00E4                   .dbline 117
 00E4           ;    M2_pulse0;           //Pc6=0
 00E4 85B3              in R24,0x15
 00E6 8F7D              andi R24,223
 00E8 85BB              out 0x15,R24
 00EA                   .dbline -2
 00EA                   .dbline 118
 00EA           ; }
 00EA           L31:
 00EA                   .dbline 0 ; func end
 00EA 0895              ret
 00EC                   .dbend
 00EC                   .dbfunc e PulseZiLun _PulseZiLun fV
                        .even
 00EC           _PulseZiLun::
 00EC                   .dbline -1
 00EC                   .dbline 121
 00EC           ; //******************字轮步进电机频率函数***********************//
 00EC           ; void PulseZiLun()        
 00EC           ; {
 00EC                   .dbline 122
 00EC           ;    DelayShort(55);      //字轮电机周期55us
 00EC 07E3              ldi R16,55
 00EE 10E0              ldi R17,0
 00F0 9BDF              rcall _DelayShort
 00F2                   .dbline 123
 00F2           ;    M3_pulse0;           //Pc5=0
 00F2 85B3              in R24,0x15
 00F4 8F7E              andi R24,239
 00F6 85BB              out 0x15,R24
 00F8                   .dbline 124
 00F8           ;    DelayShort(55);      //字轮电机周期55us
 00F8 07E3              ldi R16,55
 00FA 10E0              ldi R17,0
 00FC 95DF              rcall _DelayShort
 00FE                   .dbline 125
 00FE           ;    M3_pulse1;           //Pc5=1
 00FE AC9A              sbi 0x15,4
 0100                   .dbline -2
 0100                   .dbline 126
 0100           ; }
 0100           L32:
 0100                   .dbline 0 ; func end
 0100 0895              ret
 0102                   .dbend
 0102                   .dbfunc e Print_Act _Print_Act fV
                        .even
 0102           _Print_Act::
 0102                   .dbline -1
 0102                   .dbline 129
 0102           ; //***************打印数码的电磁击打锤动作函数******************//
 0102           ; void Print_Act()
 0102           ; {
 0102                   .dbline 130
 0102           ;    PRINT_ACT1;           //打字电磁铁打下      
 0102 A99A              sbi 0x15,1
 0104                   .dbline 131
 0104           ;    DelayLong(5);         //打字电磁铁打下时间延时20(*1000)us
 0104 05E0              ldi R16,5
 0106 10E0              ldi R17,0
 0108 9ADF              rcall _DelayLong
 010A                   .dbline 132
 010A           ;    PRINT_ACT0;           //打字电磁铁上升     
 010A 85B3              in R24,0x15
 010C 8D7F              andi R24,253
 010E 85BB              out 0x15,R24
 0110                   .dbline 133
 0110           ;    DelayLong(20);        //打字电磁铁上升时间延时20(*1000)us
 0110 04E1              ldi R16,20
 0112 10E0              ldi R17,0
 0114                   .dbline -2
 0114                   .dbline 134
 0114           ; }
 0114           L33:
 0114                   .dbline 0 ; func end
 0114 94CF              rjmp _DelayLong
 0116                   .dbend
 0116                   .dbfunc e Sign_Act _Sign_Act fV
                        .even
 0116           _Sign_Act::
 0116                   .dbline -1
 0116                   .dbline 137
 0116           ; //***************盖章的电磁击打锤动作函数**********************//
 0116           ; void Sign_Act()
 0116           ; {
 0116                   .dbline 138
 0116           ;    SIGN_ACT1;            //盖章电磁铁打下     
 0116 AA9A              sbi 0x15,2
 0118                   .dbline 139
 0118           ;    DelayLong(20);        //盖章电磁铁打下时间延时20(*1000)us
 0118 04E1              ldi R16,20
 011A 10E0              ldi R17,0
 011C 90DF              rcall _DelayLong
 011E                   .dbline 140
 011E           ;    SIGN_ACT0;            //盖章电磁铁打下   
 011E 85B3              in R24,0x15
 0120 8B7F              andi R24,251
 0122 85BB              out 0x15,R24
 0124                   .dbline 141
 0124           ;    DelayLong(20);        //盖章电磁铁上升时间延时20(*1000)us
 0124 04E1              ldi R16,20
 0126 10E0              ldi R17,0
 0128                   .dbline -2
 0128                   .dbline 142
 0128           ; }
 0128           L34:
 0128                   .dbline 0 ; func end
 0128 8ACF              rjmp _DelayLong
 012A                   .dbend
 012A                   .dbfunc e Num_Step _Num_Step fV
                        .even
 012A           _Num_Step::
 012A                   .dbline -1
 012A                   .dbline 145
 012A           ; //***************翻页电机行走字间距函数************************//
 012A           ; void  Num_Step()
 012A           ; {
 012A                   .dbline 146
 012A           ;    M_DIR0;                //翻页电机反转
 012A 85B3              in R24,0x15
 012C 877F              andi R24,247
 012E 85BB              out 0x15,R24
 0130                   .dbline 147
 0130           ;    for(u=0;u<40;u++)      //翻页电机行走的字间距即步进电机的40步
 0130 2224              clr R2
 0132 3324              clr R3
 0134 30920500          sts _u+1,R3
 0138 20920400          sts _u,R2
 013C 0AC0              rjmp L39
 013E           L36:
 013E                   .dbline 148
 013E CBDF              rcall _PulseXingZou
 0140           L37:
 0140                   .dbline 147
 0140 80910400          lds R24,_u
 0144 90910500          lds R25,_u+1
 0148 0196              adiw R24,1
 014A 90930500          sts _u+1,R25
 014E 80930400          sts _u,R24
 0152           L39:
 0152                   .dbline 147
 0152 80910400          lds R24,_u
 0156 90910500          lds R25,_u+1
 015A 8832              cpi R24,40
 015C E0E0              ldi R30,0
 015E 9E07              cpc R25,R30
 0160 70F3              brlo L36
 0162                   .dbline -2
 0162                   .dbline 149
 0162           ;     PulseXingZou();       
 0162           ; }
 0162           L35:
 0162                   .dbline 0 ; func end
 0162 0895              ret
 0164                   .dbend
 0164                   .dbfunc e Reverse_Step _Reverse_Step fV
 0164           ;              i -> R20,R21
                        .even
 0164           _Reverse_Step::
 0164 00D0              rcall push_gset1
 0166                   .dbline -1
 0166                   .dbline 152
 0166           ; //***************翻页电机行走抓纸张函数************************//
 0166           ; void Reverse_Step()
 0166           ; {
 0166                   .dbline 154
 0166           ;   unsigned int i;
 0166           ;   for(i=0;i<350;i++)      //居中以后再走100吸纸
 0166 4427              clr R20
 0168 5527              clr R21
 016A 06C0              rjmp L44
 016C           L41:
 016C                   .dbline 155
 016C                   .dbline 156
 016C 85B3              in R24,0x15
 016E 877F              andi R24,247
 0170 85BB              out 0x15,R24
 0172                   .dbline 157
 0172 B1DF              rcall _PulseXingZou
 0174                   .dbline 158
 0174           L42:
 0174                   .dbline 154
 0174 4F5F              subi R20,255  ; offset = 1
 0176 5F4F              sbci R21,255
 0178           L44:
 0178                   .dbline 154
 0178 4E35              cpi R20,94
 017A E1E0              ldi R30,1
 017C 5E07              cpc R21,R30
 017E B0F3              brlo L41
 0180                   .dbline 159
 0180           ;    { 
 0180           ;     M_DIR0;               //翻页电机反转
 0180           ;     PulseXingZou();       //翻页电机驱动脉冲输出
 0180           ;    }
 0180           ;     GRASP_ACT1;           //机械手抓纸
 0180 A89A              sbi 0x15,0
 0182 04C0              rjmp L46
 0184           L45:
 0184                   .dbline 161
 0184                   .dbline 162
 0184 85B3              in R24,0x15
 0186 877F              andi R24,247
 0188 85BB              out 0x15,R24
 018A                   .dbline 163
 018A A5DF              rcall _PulseXingZou
 018C                   .dbline 164
 018C           L46:
 018C                   .dbline 160
 018C           ;    while(SONSOR_5==0)     //检测传感器5
 018C B59B              sbis 0x16,5
 018E FACF              rjmp L45
 0190                   .dbline -2
 0190                   .dbline 165
 0190           ;    { 
 0190           ;     M_DIR0;               //翻页电机反转
 0190           ;     PulseXingZou();       //翻页电机驱动脉冲输出
 0190           ;    }
 0190           ; }
 0190           L40:
 0190 00D0              rcall pop_gset1
 0192                   .dbline 0 ; func end
 0192 0895              ret
 0194                   .dbsym r i 20 i
 0194                   .dbend
 0194                   .dbfunc e Forward_Step _Forward_Step fV
                        .even
 0194           _Forward_Step::
 0194                   .dbline -1
 0194                   .dbline 168
 0194           ; //***************翻页电机行走上电后复位函数********************//
 0194           ; void Forward_Step()
 0194           ; {
 0194 02C0              rjmp L50
 0196           L49:
 0196                   .dbline 170
 0196                   .dbline 171
 0196 AB9A              sbi 0x15,3
 0198                   .dbline 172
 0198 9EDF              rcall _PulseXingZou
 019A                   .dbline 173
 019A           L50:
 019A                   .dbline 169
 019A           ;    while(SONSOR_6==0)     //检测传感器6
 019A B69B              sbis 0x16,6
 019C FCCF              rjmp L49
 019E                   .dbline 174
 019E           ;    { 
 019E           ;     M_DIR1;               //翻页电机正转
 019E           ;     PulseXingZou();       //翻页电机驱动脉冲输出
 019E           ;    }
 019E           ;     M_DIR0;               //翻页电机反转
 019E 85B3              in R24,0x15
 01A0 877F              andi R24,247
 01A2 85BB              out 0x15,R24
 01A4                   .dbline 175
 01A4           ;     for(u=0;u<400;u++)    //翻页电机居中
 01A4 2224              clr R2
 01A6 3324              clr R3
 01A8 30920500          sts _u+1,R3
 01AC 20920400          sts _u,R2
 01B0 0AC0              rjmp L55
 01B2           L52:
 01B2                   .dbline 176
 01B2                   .dbline 177
 01B2 91DF              rcall _PulseXingZou
 01B4                   .dbline 178
 01B4           L53:
 01B4                   .dbline 175

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -