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

📄 main.lis

📁 一个正在应用的步进电机控制程序,包括电机的调速,正反,细分,通讯控制
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 014C                   .dbline 234
 014C           ;    {da_counter++;}
 014C                   .dbline 234
 014C 80911700          lds R24,_da_counter
 0150 8F5F              subi R24,255    ; addi 1
 0152 80931700          sts _da_counter,R24
 0156                   .dbline 234
 0156 31C0              xjmp L31
 0158           L30:
 0158                   .dbline 236
 0158           ; else
 0158           ;    {
 0158                   .dbline 237
 0158           ;    if (micros_nu0==16)
 0158 80911500          lds R24,_micros_nu0
 015C 8031              cpi R24,16
 015E 31F4              brne L32
 0160                   .dbline 238
 0160           ;       {da_counter=da_counter+2;}
 0160                   .dbline 238
 0160 80911700          lds R24,_da_counter
 0164 8E5F              subi R24,254    ; addi 2
 0166 80931700          sts _da_counter,R24
 016A                   .dbline 238
 016A 27C0              xjmp L33
 016C           L32:
 016C                   .dbline 240
 016C           ;    else 
 016C           ;         {
 016C                   .dbline 241
 016C           ;         if (micros_nu0==8)
 016C 80911500          lds R24,_micros_nu0
 0170 8830              cpi R24,8
 0172 31F4              brne L34
 0174                   .dbline 242
 0174           ;            {da_counter=da_counter+4;}
 0174                   .dbline 242
 0174 80911700          lds R24,_da_counter
 0178 8C5F              subi R24,252    ; addi 4
 017A 80931700          sts _da_counter,R24
 017E                   .dbline 242
 017E 1DC0              xjmp L35
 0180           L34:
 0180                   .dbline 244
 0180           ;         else
 0180           ;            {
 0180                   .dbline 245
 0180           ;                if (micros_nu0==4)
 0180 80911500          lds R24,_micros_nu0
 0184 8430              cpi R24,4
 0186 31F4              brne L36
 0188                   .dbline 246
 0188           ;                       {da_counter=da_counter+8;}
 0188                   .dbline 246
 0188 80911700          lds R24,_da_counter
 018C 885F              subi R24,248    ; addi 8
 018E 80931700          sts _da_counter,R24
 0192                   .dbline 246
 0192 13C0              xjmp L37
 0194           L36:
 0194                   .dbline 248
 0194           ;            else
 0194           ;                   {
 0194                   .dbline 249
 0194           ;                       if (micros_nu0==2)
 0194 80911500          lds R24,_micros_nu0
 0198 8230              cpi R24,2
 019A 31F4              brne L38
 019C                   .dbline 250
 019C           ;                          {da_counter=da_counter+16;}
 019C                   .dbline 250
 019C 80911700          lds R24,_da_counter
 01A0 805F              subi R24,240    ; addi 16
 01A2 80931700          sts _da_counter,R24
 01A6                   .dbline 250
 01A6 09C0              xjmp L39
 01A8           L38:
 01A8                   .dbline 252
 01A8           ;                       else
 01A8           ;                          {
 01A8                   .dbline 253
 01A8           ;                          if (micros_nu0==1)
 01A8 80911500          lds R24,_micros_nu0
 01AC 8130              cpi R24,1
 01AE 29F4              brne L40
 01B0                   .dbline 254
 01B0           ;                             {da_counter=da_counter+32;}
 01B0                   .dbline 254
 01B0 80911700          lds R24,_da_counter
 01B4 805E              subi R24,224    ; addi 32
 01B6 80931700          sts _da_counter,R24
 01BA                   .dbline 254
 01BA           L40:
 01BA                   .dbline 255
 01BA           ;                          }
 01BA           L39:
 01BA                   .dbline 256
 01BA           ;                       }
 01BA           L37:
 01BA                   .dbline 257
 01BA           ;                }
 01BA           L35:
 01BA                   .dbline 258
 01BA           ;         }
 01BA           L33:
 01BA                   .dbline 259
 01BA           L31:
 01BA                   .dbline -2
 01BA           L1:
 01BA 2990              ld R2,y+
 01BC 2FBE              out 0x3f,R2
 01BE F991              ld R31,y+
 01C0 E991              ld R30,y+
 01C2 9991              ld R25,y+
 01C4 8991              ld R24,y+
 01C6 2991              ld R18,y+
 01C8 0991              ld R16,y+
 01CA 3990              ld R3,y+
 01CC 2990              ld R2,y+
 01CE                   .dbline 0 ; func end
 01CE 1895              reti
 01D0                   .dbsym r j 16 c
 01D0                   .dbsym r i 18 c
 01D0                   .dbend
 01D0                   .dbfunc e time2_int _time2_int fV
                        .even
 01D0           _time2_int::
 01D0 2A92              st -y,R2
 01D2 3A92              st -y,R3
 01D4 8A93              st -y,R24
 01D6 9A93              st -y,R25
 01D8 2FB6              in R2,0x3f
 01DA 2A92              st -y,R2
 01DC                   .dbline -1
 01DC                   .dbline 266
 01DC           ;    }
 01DC           ; }
 01DC           ; 
 01DC           ; /******************************************************
 01DC           ; 测量脉冲闸门时间波形中断函数(定时器2比较匹配中断)20-12KHZ  1-600RPM
 01DC           ; ******************************************************/
 01DC           ; void time2_int(void)
 01DC           ; {
 01DC                   .dbline 268
 01DC           ; //200MS闸门
 01DC           ; counter++;
 01DC 80910200          lds R24,_counter
 01E0 8F5F              subi R24,255    ; addi 1
 01E2 80930200          sts _counter,R24
 01E6                   .dbline 269
 01E6           ; if (counter==6)
 01E6 8630              cpi R24,6
 01E8 11F4              brne L43
 01EA                   .dbline 270
 01EA           ;   {OCR2=32;}
 01EA                   .dbline 270
 01EA 80E2              ldi R24,32
 01EC 83BD              out 0x23,R24
 01EE                   .dbline 270
 01EE           L43:
 01EE                   .dbline 271
 01EE 80910200          lds R24,_counter
 01F2 8730              cpi R24,7
 01F4 91F4              brne L45
 01F6                   .dbline 272
 01F6                   .dbline 273
 01F6 20901D00          lds R2,_pull_number
 01FA 30901E00          lds R3,_pull_number+1
 01FE 30920100          sts _speed_pull+1,R3
 0202 20920000          sts _speed_pull,R2
 0206                   .dbline 274
 0206 2224              clr R2
 0208 3324              clr R3
 020A 30921E00          sts _pull_number+1,R3
 020E 20921D00          sts _pull_number,R2
 0212                   .dbline 275
 0212 20920200          sts _counter,R2
 0216                   .dbline 276
 0216 8FEF              ldi R24,255
 0218 83BD              out 0x23,R24
 021A                   .dbline 277
 021A           L45:
 021A                   .dbline -2
 021A           L42:
 021A 2990              ld R2,y+
 021C 2FBE              out 0x3f,R2
 021E 9991              ld R25,y+
 0220 8991              ld R24,y+
 0222 3990              ld R3,y+
 0224 2990              ld R2,y+
 0226                   .dbline 0 ; func end
 0226 1895              reti
 0228                   .dbend
 0228                   .dbfunc e pull_int _pull_int fV
                        .even
 0228           _pull_int::
 0228 2A92              st -y,R2
 022A 3A92              st -y,R3
 022C 8A93              st -y,R24
 022E 9A93              st -y,R25
 0230 2FB6              in R2,0x3f
 0232 2A92              st -y,R2
 0234                   .dbline -1
 0234                   .dbline 283
 0234                   .dbline 284
 0234 80911D00          lds R24,_pull_number
 0238 90911E00          lds R25,_pull_number+1
 023C 0196              adiw R24,1
 023E 90931E00          sts _pull_number+1,R25
 0242 80931D00          sts _pull_number,R24
 0246                   .dbline 285
 0246 80E6              ldi R24,2400
 0248 99E0              ldi R25,9
 024A 20901D00          lds R2,_pull_number
 024E 30901E00          lds R3,_pull_number+1
 0252 8215              cp R24,R2
 0254 9305              cpc R25,R3
 0256 20F4              brsh L48
 0258                   .dbline 286
 0258                   .dbline 286
 0258 90931E00          sts _pull_number+1,R25
 025C 80931D00          sts _pull_number,R24
 0260                   .dbline 286
 0260           L48:
 0260                   .dbline -2
 0260           L47:
 0260 2990              ld R2,y+
 0262 2FBE              out 0x3f,R2
 0264 9991              ld R25,y+
 0266 8991              ld R24,y+
 0268 3990              ld R3,y+
 026A 2990              ld R2,y+
 026C                   .dbline 0 ; func end
 026C 1895              reti
 026E                   .dbend
 026E                   .dbfunc e timer1_init _timer1_init fV
                        .even
 026E           _timer1_init::
 026E                   .dbline -1
 026E                   .dbline 292
 026E           ; if (counter==7)
 026E           ;   {
 026E           ;   speed_pull=pull_number;
 026E           ;   pull_number=0;
 026E           ;   counter=0;
 026E           ;   OCR2=0XFF;
 026E           ;   }
 026E           ; }
 026E           ; /******************************************************
 026E           ; 测量脉冲数中断函数(外部INT0中断)
 026E           ; ******************************************************/
 026E           ; void pull_int(void)
 026E           ; {
 026E           ; pull_number++;
 026E           ; if (pull_number>2400)
 026E           ;   {pull_number=2400;}
 026E           ; }
 026E           ; /****************************************************************
 026E           ;                              定时器1初始化函数
 026E           ; ****************************************************************/
 026E           ; void timer1_init(void)
 026E           ; {
 026E                   .dbline 293
 026E           ;  TCCR1B = (1<<CS10)|(1<<WGM12);                         //time1的控制寄存器B,CTC模式,clk=系统时钟
 026E 89E0              ldi R24,9
 0270 8EBD              out 0x2e,R24
 0272                   .dbline 294
 0272           ;  TIMSK &=~(1<<OCIE1A);                        //定时中断屏蔽寄存器
 0272 89B7              in R24,0x39
 0274 8F7E              andi R24,239
 0276 89BF              out 0x39,R24
 0278                   .dbline -2
 0278           L50:
 0278                   .dbline 0 ; func end
 0278 0895              ret
 027A                   .dbend
 027A                   .dbfunc e timer2_init _timer2_init fV
                        .even
 027A           _timer2_init::
 027A                   .dbline -1
 027A                   .dbline 301
 027A           ; }
 027A           ; 
 027A           ; /****************************************************************
 027A           ;                              定时器2初始化函数
 027A           ; ****************************************************************/
 027A           ; void timer2_init(void)
 027A           ; {
 027A                   .dbline 302
 027A           ; TCCR2=(1<<CS20)|(1<<CS21)|(1<<CS22)|(1<<WGM21);
 027A 8FE0              ldi R24,15
 027C 85BD              out 0x25,R24
 027E                   .dbline 303
 027E           ; OCR2=0XFF;
 027E 8FEF              ldi R24,255
 0280 83BD              out 0x23,R24
 0282                   .dbline -2
 0282           L51:
 0282                   .dbline 0 ; func end
 0282 0895              ret
 0284                   .dbend
 0284                   .dbfunc e int0_init _int0_init fV
                        .even
 0284           _int0_init::
 0284                   .dbline -1
 0284                   .dbline 309
 0284           ; }
 0284           ; /****************************************************************
 0284           ;                              INT0初始化函数
 0284           ; ****************************************************************/
 0284           ; void int0_init(void)
 0284           ; {
 0284                   .dbline 310
 0284           ; DDRD&=~(1<PULL_IN);
 0284 8898              cbi 0x11,0
 0286                   .dbline 311
 0286           ; MCUCR=(1<<ISC01)|(1<<ISC00);
 0286 83E0              ldi R24,3
 0288 85BF              out 0x35,R24
 028A                   .dbline -2
 028A           L52:
 028A                   .dbline 0 ; func end
 028A 0895              ret
 028C                   .dbend
 028C                   .dbfunc e port_init _port_init fV
                        .even
 028C           _port_init::
 028C                   .dbline -1

⌨️ 快捷键说明

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