直流电机调速r
r
i
cludereg52hr
i
cludei
tri
shr
r
defi
eucharu
sig
edcharr
defi
eui
tu
sig
edi
tr
defi
eSIGNALP2r
L298带动两个电机M1、M2r
r
sbitIN1P10M1_Lr
sbitIN2P11M1_Rr
sbitIN3P12M2_Lr
sbitIN4P13M2_Rr
sbitENAP16M1_Er
sbitENBP17M2_Er
r
sbitchua
1P20r
sbitchua
2P21r
r
r
bitM1_LM1_RM2_LM2_R标志位L代表左转R右转;M1_L代表电机1左转,就是我们说的正反转;r
ucharPWM0x000x010x110x150x550x570x770x7f0xffr
ucharM1_PWMM2_PWM将来取上面数组中数字实现PWM0888r
ucharM1_
2M2_
208代表0888r
r
延时t毫秒r
voiddelayui
ttr
r
ui
tir
whiletfori0i125ir
r
r
voidi
itiater
r
TMOD0x01r
TH0655365002561ms12MHzr
TL065536500256r
TR01r
ET01r
EA1r
M1_
208代表0888r
M2_
208代表0888r
M1_PWMPWMM1_
r
M2_PWMPWMM2_
r
r
P00r
P1M1_PWMr
P2M2_PWMr
r
r
ucharcheckvoidr
r
uchartempr
tempSIGNAL0x0fr
retur
tempr
r
voidmai
r
ucharkeepr
i
itiater
while1r
r
keepcheckr
ifkeep0x00r
r
M1_R0代表左右转的控制的标志位写法r
M2_R0r
r
ifkeep0x01r
r
M1_R0r
M2_L0r
r
ifkeep0x10r
r
M1_R0r
M2_R0r
r
ifkeep0x11r
r
M1_R0r
M2_L1r
r
r
r
r
voidT0_INTvoidi
terrupt1r
r
TL065536500256重新赋值r
TH0655365002561ms12MHzr
r
ifM1_L0M1_R0如果电机一左转或右转,启动电机控制驱动芯片e
a为一驱动芯片才工作,才驱动芯片r
ENA1r
ifM1_L0r
IN10r
ifM1_PWM0x01IN21这句话的意思是:电机1的速度的占空比和0x01(这是十六进制)按位进行与操做,如果为真就给IN2付一;r
elseIN20r
r
elseifM1_R0r
IN20r
ifM1_PWM0x01IN11r
elseIN10r
r
elseENA0r
M1_PWM_cror_M1_PWM1r
r
elseENA0r
r
ifM2_L0M2_R0r
ENB1r
ifM2_L0r
IN40r
ifM2_PWM0x01IN31r
elseIN30r
r
elseifM2_R0r
IN30r
ifM2_PWM0x01IN41r
elseIN40r
r
elseENB0r
M2_PWM_cror_M2_PWM1r
r
elseENB0r
r
r
r
r
r
r
r
r