采用的是L298n电机驱动,通电后红外传感器灯是正常的,可以识别黑白线,黑线不亮其他亮,但是电机一动不动,求大佬帮看下程序有什么问题
单片机源程序如下:
- #include<reg52.h>
- #define uchar unsigned char
- #define uint unsigned int
- uint PWM_R=0,PWM_L=0,t=0;
- sbit inputL=P2^7;
- sbit inputR=P2^6;
- sbit LB=P2^3;
- sbit LF=P2^2;
- sbit RB=P2^1;
- sbit RF=P2^0;
- void stop(void);
- void Timer0Init(void);
- void scan(void);
- void Timer0(void);
- void main()
- {
- Timer0Init();
- EA=1;
- while(1)
- {
- scan();
- Timer0();
- }
- }
- void stop(void)
- {
- LF=0;
- LB=0;
- RF=0;
- RB=0;
- }
- void Timer0Init()
- {
- TMOD|=0X01;
- TH0=(65536-100)/256;
- TL0=(65536-100)%256;
- ET0=1;
- TR0=1;
- }
- void Timer0() interrupt 1
- {
- TH0=(65536-100)/256;
- TL0=(65536-100)%256;
- if(t<PWM_L)
- LF=1;
- else
- LF=0;
- if(t<PWM_R)
- RF=1;
- else
- RF=0;
- t++;
- if(t>=100)
- t=0;
- }
- void scan()
- {
- if(inputL==1&&inputR==1)
- {
- PWM_R=0;
- PWM_L=0;
- stop();
- }
- if(inputL==0&&inputR==1)
- {
- PWM_R=0;
- PWM_L=70;
- }
- if(inputL==1&&inputR==0)
- {
- PWM_R=70;
- PWM_L=0;
- }
- if(inputL==0&&inputR==1)
- {
- PWM_R=40;
- PWM_L=40;
- }
- }
复制代码 |