用51控制四驱循迹小车,用的是四路红外线传感器,求中断的PWM控制的程序。
答案:2 悬赏:40 手机版
解决时间 2021-03-21 12:53
- 提问者网友:斑駁影
- 2021-03-20 20:20
用51控制四驱循迹小车,用的是四路红外线传感器,求中断的PWM控制的程序。
最佳答案
- 五星知识达人网友:鸠书
- 2021-03-20 21:55
调节占空比就是调节下面的ZKB1的值,此处是1~1000的范围,要调节此值可以在while里面加点语句。
#include
typedef unsigned char unchar;
typedef unsigned char unint;
#define V_TH0 0xFF //调节 V_TH0 和V_TL0的值即调节周期
#define V_TL0 0x81
#define V_TMOD 0x01
sbit P1_0 = P1^0;
unchar ZKB1; //调节
main()
{
//ZKB1=11;
//ZKB2=18;
init_sys();
while(1)
{ }
}
void init_sys(void)
{
TMOD=V_TMOD;
TH0=V_TH0;
TL0=V_TL0;
ZKB1=20;
// TR0=0;
// ET0=0;
// EA=0;
TR0=1;
ET0=1;
EA=1;
}
void timer0(void) interrupt 1 using 2
{
static unchar click=0;
TH0=V_TH0;
TL0=V_TL0;
++click;
if (click>=1000) click=0;
if (click<=ZKB1)
P1_0=1;
else
P1_0=0;
}
#include
typedef unsigned char unchar;
typedef unsigned char unint;
#define V_TH0 0xFF //调节 V_TH0 和V_TL0的值即调节周期
#define V_TL0 0x81
#define V_TMOD 0x01
sbit P1_0 = P1^0;
unchar ZKB1; //调节
main()
{
//ZKB1=11;
//ZKB2=18;
init_sys();
while(1)
{ }
}
void init_sys(void)
{
TMOD=V_TMOD;
TH0=V_TH0;
TL0=V_TL0;
ZKB1=20;
// TR0=0;
// ET0=0;
// EA=0;
TR0=1;
ET0=1;
EA=1;
}
void timer0(void) interrupt 1 using 2
{
static unchar click=0;
TH0=V_TH0;
TL0=V_TL0;
++click;
if (click>=1000) click=0;
if (click<=ZKB1)
P1_0=1;
else
P1_0=0;
}
全部回答
- 1楼网友:醉吻情书
- 2021-03-20 23:14
搜一下:用51控制四驱循迹小车,用的是四路红外线传感器,求中断的PWM控制的程序。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯