电路原理图如下:
/* 关闭开发板电源
开发板上不要接插任何模块,如液晶点阵这些都不能接上,
把P10用杜邦线链接到电机驱动模块 J4的4IN上,然后把小电机
端子插到 J2的 + 和D 上,不分线序接上即可。
选择好程序,打开电源点下载,接着打开单片机电源。
按S2减速,按S3加速。
*/
#include <reg52.h>
unsigned char pwm_motor_val = 130;//左右电机占空比值 取值范围0-170,0最快
unsigned char pwm_t;//周期
sbit _4IN = P1^0;//
sbit key_s2 = P3^0;
sbit key_s3 = P3^1;
void delay(unsigned int z)//毫秒级延时
{
unsigned int x,y;
for(x = z; x > 0; x--)
for(y = 114; y > 0 ; y--);
}
//定时器0中断
void timer0() interrupt 1
{
pwm_t++;
if(pwm_t == 255)
_4IN = 0;
if(pwm_motor_val == pwm_t)
_4IN = 1;
}
void main()
{
TMOD |= 0x02;//8位自动重装模块
TH0 = 220;
TL0 = 220;//11.0592M晶振下占空比最大比值是256,输出100HZ
TR0 = 1;//启动定时器0
ET0 = 1;//允许定时器0中断
EA = 1;//总中断允许
while(1)
{
if(key_s2 == 0) //S2按下LED变暗
{
delay(5);
if(key_s2 == 0)
{
if(pwm_motor_val < 170)
{
pwm_motor_val++;
}
}
}
if(key_s3 == 0) //S3按键LED变亮
{
delay(5);
if(key_s3 == 0)
{
if(pwm_motor_val > 0)
{
pwm_motor_val--;
}
}
}
}
}
|