📄 work.lis
字号:
.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 + -