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

📄 motor2.lis

📁 电机驱动
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 00A6 BCF4              brge L16
 00A8                   .dbline 105
 00A8           ;   {
 00A8                   .dbline 106
 00A8           ;     set_bit(PORTA,3);
 00A8 DB9A              sbi 0x1b,3
 00AA                   .dbline 107
 00AA           ;       clr_bit(PORTA,2);
 00AA DA98              cbi 0x1b,2
 00AC                   .dbline 108
 00AC           ;       OCR1A=(-1)*speed*255/100*speedrp/100;
 00AC 0FEF              ldi R16,-1
 00AE 1FEF              ldi R17,-1
 00B0 9A01              movw R18,R20
 00B2 00D0              rcall empy16s
 00B4 9801              movw R18,R16
 00B6 0FEF              ldi R16,255
 00B8 10E0              ldi R17,0
 00BA 00D0              rcall empy16s
 00BC 24E6              ldi R18,100
 00BE 30E0              ldi R19,0
 00C0 00D0              rcall div16s
 00C2 9801              movw R18,R16
 00C4 04E6              ldi R16,100
 00C6 10E0              ldi R17,0
 00C8 00D0              rcall empy16s
 00CA 24E6              ldi R18,100
 00CC 30E0              ldi R19,0
 00CE 00D0              rcall div16s
 00D0 1BBD              out 0x2b,R17
 00D2 0ABD              out 0x2a,R16
 00D4                   .dbline 109
 00D4           ;   }
 00D4 28C0              rjmp L17
 00D6           L16:
 00D6                   .dbline 110
 00D6           ;   else if(speed==0)
 00D6 4030              cpi R20,0
 00D8 4507              cpc R20,R21
 00DA 99F4              brne L18
 00DC           X2:
 00DC                   .dbline 111
 00DC           ;   {
 00DC                   .dbline 112
 00DC           ;       clr_bit(PORTA,2);
 00DC DA98              cbi 0x1b,2
 00DE                   .dbline 113
 00DE           ;       clr_bit(PORTA,3);
 00DE DB98              cbi 0x1b,3
 00E0                   .dbline 114
 00E0           ;     OCR1A=speed*255/100*speedrp/100;
 00E0 0FEF              ldi R16,255
 00E2 10E0              ldi R17,0
 00E4 9A01              movw R18,R20
 00E6 00D0              rcall empy16s
 00E8 24E6              ldi R18,100
 00EA 30E0              ldi R19,0
 00EC 00D0              rcall div16s
 00EE 9801              movw R18,R16
 00F0 04E6              ldi R16,100
 00F2 10E0              ldi R17,0
 00F4 00D0              rcall empy16s
 00F6 24E6              ldi R18,100
 00F8 30E0              ldi R19,0
 00FA 00D0              rcall div16s
 00FC 1BBD              out 0x2b,R17
 00FE 0ABD              out 0x2a,R16
 0100                   .dbline 115
 0100           ;   }
 0100 12C0              rjmp L19
 0102           L18:
 0102                   .dbline 117
 0102           ;   else
 0102           ;   {
 0102                   .dbline 118
 0102           ;     set_bit(PORTA,2);
 0102 DA9A              sbi 0x1b,2
 0104                   .dbline 119
 0104           ;       clr_bit(PORTA,3);
 0104 DB98              cbi 0x1b,3
 0106                   .dbline 120
 0106           ;       OCR1A=speed*255/100*speedrp/100;
 0106 0FEF              ldi R16,255
 0108 10E0              ldi R17,0
 010A 9A01              movw R18,R20
 010C 00D0              rcall empy16s
 010E 24E6              ldi R18,100
 0110 30E0              ldi R19,0
 0112 00D0              rcall div16s
 0114 9801              movw R18,R16
 0116 04E6              ldi R16,100
 0118 10E0              ldi R17,0
 011A 00D0              rcall empy16s
 011C 24E6              ldi R18,100
 011E 30E0              ldi R19,0
 0120 00D0              rcall div16s
 0122 1BBD              out 0x2b,R17
 0124 0ABD              out 0x2a,R16
 0126                   .dbline 121
 0126           ;   }
 0126           L19:
 0126           L17:
 0126                   .dbline -2
 0126           L15:
 0126 00D0              rcall pop_gset1
 0128                   .dbline 0 ; func end
 0128 0895              ret
 012A                   .dbsym r speed 20 I
 012A                   .dbend
 012A                   .dbfunc e motor_L _motor_L fV
 012A           ;          speed -> R20,R21
                        .even
 012A           _motor_L::
 012A 00D0              rcall push_gset1
 012C A801              movw R20,R16
 012E                   .dbline -1
 012E                   .dbline 125
 012E           ; }
 012E           ; //左电机驱动函数
 012E           ; void motor_L(int speed)
 012E           ; {
 012E                   .dbline 126
 012E           ;   if(speed<0)
 012E 4030              cpi R20,0
 0130 E0E0              ldi R30,0
 0132 5E07              cpc R21,R30
 0134 BCF4              brge L21
 0136                   .dbline 127
 0136           ;   {
 0136                   .dbline 128
 0136           ;     set_bit(PORTA,1);
 0136 D99A              sbi 0x1b,1
 0138                   .dbline 129
 0138           ;       clr_bit(PORTA,0);
 0138 D898              cbi 0x1b,0
 013A                   .dbline 130
 013A           ;       OCR1B=(-1)*speed*255/100*speedlp/100;
 013A 0FEF              ldi R16,-1
 013C 1FEF              ldi R17,-1
 013E 9A01              movw R18,R20
 0140 00D0              rcall empy16s
 0142 9801              movw R18,R16
 0144 0FEF              ldi R16,255
 0146 10E0              ldi R17,0
 0148 00D0              rcall empy16s
 014A 24E6              ldi R18,100
 014C 30E0              ldi R19,0
 014E 00D0              rcall div16s
 0150 9801              movw R18,R16
 0152 04E6              ldi R16,100
 0154 10E0              ldi R17,0
 0156 00D0              rcall empy16s
 0158 24E6              ldi R18,100
 015A 30E0              ldi R19,0
 015C 00D0              rcall div16s
 015E 19BD              out 0x29,R17
 0160 08BD              out 0x28,R16
 0162                   .dbline 131
 0162           ;   }
 0162 28C0              rjmp L22
 0164           L21:
 0164                   .dbline 132
 0164           ;   else if(speed==0)
 0164 4030              cpi R20,0
 0166 4507              cpc R20,R21
 0168 99F4              brne L23
 016A           X3:
 016A                   .dbline 133
 016A           ;   {
 016A                   .dbline 134
 016A           ;       clr_bit(PORTA,0);
 016A D898              cbi 0x1b,0
 016C                   .dbline 135
 016C           ;       clr_bit(PORTA,1);
 016C D998              cbi 0x1b,1
 016E                   .dbline 136
 016E           ;     OCR1B=speed*255/100*speedlp/100;
 016E 0FEF              ldi R16,255
 0170 10E0              ldi R17,0
 0172 9A01              movw R18,R20
 0174 00D0              rcall empy16s
 0176 24E6              ldi R18,100
 0178 30E0              ldi R19,0
 017A 00D0              rcall div16s
 017C 9801              movw R18,R16
 017E 04E6              ldi R16,100
 0180 10E0              ldi R17,0
 0182 00D0              rcall empy16s
 0184 24E6              ldi R18,100
 0186 30E0              ldi R19,0
 0188 00D0              rcall div16s
 018A 19BD              out 0x29,R17
 018C 08BD              out 0x28,R16
 018E                   .dbline 137
 018E           ;   }
 018E 12C0              rjmp L24
 0190           L23:
 0190                   .dbline 139
 0190           ;   else
 0190           ;   {
 0190                   .dbline 140
 0190           ;     set_bit(PORTA,0);
 0190 D89A              sbi 0x1b,0
 0192                   .dbline 141
 0192           ;       clr_bit(PORTA,1);
 0192 D998              cbi 0x1b,1
 0194                   .dbline 142
 0194           ;       OCR1B=speed*255/100*speedlp/100;
 0194 0FEF              ldi R16,255
 0196 10E0              ldi R17,0
 0198 9A01              movw R18,R20
 019A 00D0              rcall empy16s
 019C 24E6              ldi R18,100
 019E 30E0              ldi R19,0
 01A0 00D0              rcall div16s
 01A2 9801              movw R18,R16
 01A4 04E6              ldi R16,100
 01A6 10E0              ldi R17,0
 01A8 00D0              rcall empy16s
 01AA 24E6              ldi R18,100
 01AC 30E0              ldi R19,0
 01AE 00D0              rcall div16s
 01B0 19BD              out 0x29,R17
 01B2 08BD              out 0x28,R16
 01B4                   .dbline 143
 01B4           ;   }
 01B4           L24:
 01B4           L22:
 01B4                   .dbline -2
 01B4           L20:
 01B4 00D0              rcall pop_gset1
 01B6                   .dbline 0 ; func end
 01B6 0895              ret
 01B8                   .dbsym r speed 20 I
 01B8                   .dbend
 01B8                   .dbfunc e forward _forward fV
                        .even
 01B8           _forward::
 01B8                   .dbline -1
 01B8                   .dbline 145
 01B8           ; }
 01B8           ; void forward()    {motor_L(90);motor_R(90);} //0011 1010 车头向前
 01B8                   .dbline 145
 01B8 0AE5              ldi R16,90
 01BA 10E0              ldi R17,0
 01BC B6DF              rcall _motor_L
 01BE                   .dbline 145
 01BE 0AE5              ldi R16,90
 01C0 10E0              ldi R17,0
 01C2 6CDF              rcall _motor_R
 01C4                   .dbline -2
 01C4           L25:
 01C4                   .dbline 0 ; func end
 01C4 0895              ret
 01C6                   .dbend
 01C6                   .dbfunc e backward _backward fV
                        .even
 01C6           _backward::
 01C6                   .dbline -1
 01C6                   .dbline 146
 01C6           ; void backward()   {motor_L(-90);motor_R(-90);} //0011 0101 车尾向前
 01C6                   .dbline 146
 01C6 06EA              ldi R16,-90
 01C8 1FEF              ldi R17,-1
 01CA AFDF              rcall _motor_L
 01CC                   .dbline 146
 01CC 06EA              ldi R16,-90
 01CE 1FEF              ldi R17,-1
 01D0 65DF              rcall _motor_R
 01D2                   .dbline -2
 01D2           L26:
 01D2                   .dbline 0 ; func end
 01D2 0895              ret
 01D4                   .dbend
 01D4                   .dbfunc e stop _stop fV
                        .even
 01D4           _stop::
 01D4                   .dbline -1
 01D4                   .dbline 147
 01D4           ; void stop()      {motor_L(0);motor_R(0);} //0000 0000 停止
 01D4                   .dbline 147
 01D4 0027              clr R16
 01D6 1127              clr R17
 01D8 A8DF              rcall _motor_L
 01DA                   .dbline 147
 01DA 0027              clr R16
 01DC 1127              clr R17
 01DE 5EDF              rcall _motor_R
 01E0                   .dbline -2
 01E0           L27:

⌨️ 快捷键说明

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