📄 motor2.s
字号:
rcall empy16s
ldi R18,100
ldi R19,0
rcall div16s
movw R18,R16
ldi R16,100
ldi R17,0
rcall empy16s
ldi R18,100
ldi R19,0
rcall div16s
out 0x29,R17
out 0x28,R16
.dbline 131
; }
rjmp L22
L21:
.dbline 132
; else if(speed==0)
cpi R20,0
cpc R20,R21
brne L23
X3:
.dbline 133
; {
.dbline 134
; clr_bit(PORTA,0);
cbi 0x1b,0
.dbline 135
; clr_bit(PORTA,1);
cbi 0x1b,1
.dbline 136
; OCR1B=speed*255/100*speedlp/100;
ldi R16,255
ldi R17,0
movw R18,R20
rcall empy16s
ldi R18,100
ldi R19,0
rcall div16s
movw R18,R16
ldi R16,100
ldi R17,0
rcall empy16s
ldi R18,100
ldi R19,0
rcall div16s
out 0x29,R17
out 0x28,R16
.dbline 137
; }
rjmp L24
L23:
.dbline 139
; else
; {
.dbline 140
; set_bit(PORTA,0);
sbi 0x1b,0
.dbline 141
; clr_bit(PORTA,1);
cbi 0x1b,1
.dbline 142
; OCR1B=speed*255/100*speedlp/100;
ldi R16,255
ldi R17,0
movw R18,R20
rcall empy16s
ldi R18,100
ldi R19,0
rcall div16s
movw R18,R16
ldi R16,100
ldi R17,0
rcall empy16s
ldi R18,100
ldi R19,0
rcall div16s
out 0x29,R17
out 0x28,R16
.dbline 143
; }
L24:
L22:
.dbline -2
L20:
rcall pop_gset1
.dbline 0 ; func end
ret
.dbsym r speed 20 I
.dbend
.dbfunc e forward _forward fV
.even
_forward::
.dbline -1
.dbline 145
; }
; void forward() {motor_L(90);motor_R(90);} //0011 1010 车头向前
.dbline 145
ldi R16,90
ldi R17,0
rcall _motor_L
.dbline 145
ldi R16,90
ldi R17,0
rcall _motor_R
.dbline -2
L25:
.dbline 0 ; func end
ret
.dbend
.dbfunc e backward _backward fV
.even
_backward::
.dbline -1
.dbline 146
; void backward() {motor_L(-90);motor_R(-90);} //0011 0101 车尾向前
.dbline 146
ldi R16,-90
ldi R17,-1
rcall _motor_L
.dbline 146
ldi R16,-90
ldi R17,-1
rcall _motor_R
.dbline -2
L26:
.dbline 0 ; func end
ret
.dbend
.dbfunc e stop _stop fV
.even
_stop::
.dbline -1
.dbline 147
; void stop() {motor_L(0);motor_R(0);} //0000 0000 停止
.dbline 147
clr R16
clr R17
rcall _motor_L
.dbline 147
clr R16
clr R17
rcall _motor_R
.dbline -2
L27:
.dbline 0 ; func end
ret
.dbend
.dbfunc e pause _pause fV
.even
_pause::
.dbline -1
.dbline 148
; void pause() {set_bit(PORTA,0);set_bit(PORTA,1);
.dbline 148
sbi 0x1b,0
.dbline 148
sbi 0x1b,1
.dbline 149
; set_bit(PORTA,2);set_bit(PORTA,3);} //0011 1111 制动
sbi 0x1b,2
.dbline 149
sbi 0x1b,3
.dbline -2
L28:
.dbline 0 ; func end
ret
.dbend
.dbfunc e forleft _forleft fV
.even
_forleft::
.dbline -1
.dbline 150
; void forleft() {motor_L(1);motor_R(70);} //0011 1000 车头向前左拐
.dbline 150
ldi R16,1
ldi R17,0
rcall _motor_L
.dbline 150
ldi R16,70
ldi R17,0
rcall _motor_R
.dbline -2
L29:
.dbline 0 ; func end
ret
.dbend
.dbfunc e foright _foright fV
.even
_foright::
.dbline -1
.dbline 151
; void foright() {motor_L(70);motor_R(1);} //0011 0010 车头向前右拐
.dbline 151
ldi R16,70
ldi R17,0
rcall _motor_L
.dbline 151
ldi R16,1
ldi R17,0
rcall _motor_R
.dbline -2
L30:
.dbline 0 ; func end
ret
.dbend
.dbfunc e backleft _backleft fV
.even
_backleft::
.dbline -1
.dbline 152
; void backleft() {motor_L(-70);motor_R(-1);} //0011 0001 车尾向前左拐
.dbline 152
ldi R16,-70
ldi R17,-1
rcall _motor_L
.dbline 152
ldi R16,-1
ldi R17,-1
rcall _motor_R
.dbline -2
L31:
.dbline 0 ; func end
ret
.dbend
.dbfunc e backright _backright fV
.even
_backright::
.dbline -1
.dbline 153
; void backright() {motor_L(-1);motor_R(-70);} //0011 0100 车尾向前右拐
.dbline 153
ldi R16,-1
ldi R17,-1
rcall _motor_L
.dbline 153
ldi R16,-70
ldi R17,-1
rcall _motor_R
.dbline -2
L32:
.dbline 0 ; func end
ret
.dbend
.dbfunc e cycleft _cycleft fV
.even
_cycleft::
.dbline -1
.dbline 154
; void cycleft() {motor_L(-40);motor_R(50);} //0011 1001 逆时针旋转
.dbline 154
ldi R16,-40
ldi R17,-1
rcall _motor_L
.dbline 154
ldi R16,50
ldi R17,0
rcall _motor_R
.dbline -2
L33:
.dbline 0 ; func end
ret
.dbend
.dbfunc e cycright _cycright fV
.even
_cycright::
.dbline -1
.dbline 155
; void cycright() {motor_L(50);motor_R(-40);} //0011 0110 顺时针旋转
.dbline 155
ldi R16,50
ldi R17,0
rcall _motor_L
.dbline 155
ldi R16,-40
ldi R17,-1
rcall _motor_R
.dbline -2
L34:
.dbline 0 ; func end
ret
.dbend
.dbfunc e getpacket _getpacket fV
.even
_getpacket::
.dbline -1
.dbline 159
;
; //收集包裹函数
; void getpacket()
; {set_bit(PORTD,0);
.dbline 159
sbi 0x12,0
.dbline 160
; clr_bit(PORTD,1);}//10,启动收集装置
cbi 0x12,1
.dbline -2
L35:
.dbline 0 ; func end
ret
.dbend
.dbfunc e stopget _stopget fV
.even
_stopget::
rcall push_gset1
.dbline -1
.dbline 162
; void stopget()
; {
rjmp L38
L37:
.dbline 163
rcall _getpacket
L38:
.dbline 163
; while(SJ==1) getpacket();
sbis 0x10,4
rjmp L40
ldi R20,1
ldi R21,0
rjmp L41
L40:
clr R20
clr R21
L41:
cpi R20,1
ldi R30,0
cpc R21,R30
breq L37
.dbline 164
; set_bit(PORTD,1);
sbi 0x12,1
.dbline 165
; clr_bit(PORTD,0);
cbi 0x12,0
.dbline 166
; delay_ms(50);
ldi R16,50
ldi R17,0
rcall _delay_ms
.dbline 167
; set_bit(PORTD,1);
sbi 0x12,1
.dbline 168
; set_bit(PORTD,0);
sbi 0x12,0
.dbline -2
L36:
rcall pop_gset1
.dbline 0 ; func end
ret
.dbend
.dbfunc e main _main fV
.even
_main::
.dbline -1
.dbline 172
; }
;
; void main()
; {
.dbline 173
; CLI();
cli
.dbline 174
; InitPorts();
rcall _InitPorts
.dbline 175
; pwm_init();
rcall _pwm_init
.dbline 176
; SEI();
sei
.dbline 177
; delay_ms(200);
ldi R16,200
ldi R17,0
rcall _delay_ms
.dbline 203
;
; /*forward();//同时正转
; delay_s(3);
; pause();
; delay_s(3);
; backward();//同时反转
; delay_s(3);
; pause();
; delay_s(3);
; forleft();//左停右正
; delay_s(3);
; pause();
; delay_s(3);
; foright();//左正右停
; delay_s(3);
; pause();
; delay_s(3);
; backleft();//左反右停
; delay_s(3);
; pause();
; delay_s(3);
; backright();//左停右反
; delay_s(3);
; pause();
; delay_s(3);*/
; cycleft();//左反右正
rcall _cycleft
.dbline 204
; delay_s(3);
ldi R16,3
ldi R17,0
rcall _delay_s
.dbline 205
; pause();
rcall _pause
.dbline 206
; delay_s(3);
ldi R16,3
ldi R17,0
rcall _delay_s
.dbline 207
; cycright();//左正右反
rcall _cycright
.dbline 208
; delay_s(3);
ldi R16,3
ldi R17,0
rcall _delay_s
.dbline -2
L42:
.dbline 0 ; func end
ret
.dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -