红外循迹小车程序
#include 《reg52.h》
#include 《intrins.h》
#define uchar unsigned char
#define uint unsigned int
#define SIGNAL P2
//L298带动两个电机M1、M2
sbit IN1 = P1^0; //M1_L
sbit IN2 = P1^1; //M1_R
sbit IN3 = P1^2; //M2_L
sbit IN4 = P1^3; //M2_R
sbit ENA = P1^6; //M1_E
sbit ENB = P1^7; //M2_E
sbit chuan1=P2^0;
EA = 1;
M1_n = 2; //0~8, 代表0/8~8/8
M2_n = 2; //0~8, 代表0/8~8/8
M1_PWM = PWM[M1_n];
M2_PWM = PWM[M2_n];
P0 = 0;
P1 = M1_PWM;
P2 = M2_PWM;
}
uchar check(void)
{
uchar temp;
temp=SIGNAL&0x0f;
return temp;
}
void main()
{ uchar keep;
initiate();
while(1)
{
keep=check();
if(keep==0x00)
{
M1_R=0;//代表左右转的控制的标志位写法
M2_R=0;
}
if(keep==0x01)
{
M1_R=0;
M2_L=0;
}
if(keep==0x10)
{
M1_R=0;
M2_R=0;
}
if(keep==0x11)
{
M1_R=0;
M2_L=1;
}
}
}
void T0_INT(void) interrupt 1
{
TL0 = (65536 - 500) % 256; //重新赋值
TH0 = (65536 - 500) / 256; //1ms@12MHz
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !