智能机器人制 #include #define uchar unsigned char #define uint unsigned int /********************端口定义*****************************/ sbit IN1=P1^0; //电机控制端口// sbit IN2=P1^1; //电机控制端口// sbit IN3=P1^2; //电机控制端口// sbit IN4=P1^3; //电机控制端口// sbit LN=P2^0; //红外探测端口// sbit LW=P2^1; //红外探测端口// sbit RW=P2^2; //红外探测端口// sbit RN=P2^3; //红外探测端口// /*****************子函数声明****************************/ void ahead(void); //前进 void left(void); //左转 void right(void); //右转 void stop(void); //停止 main() { while(1) { if(RN==1&&LN==1&&RW==1&&LW==1) {ahead(); continue;} if((RN==0||LN==0)&&RW==1&&LW==1) {right(); continue;} if(RN==1&&LN==1&&(RW==0||LW==0)) {left(); continue;} if(RN==0&&LN==0&&RW==0&&LW==0) stop(); } } void ahead() { IN1=0; IN2=1; IN3=0; IN4=1; } void left() { IN1=0; IN2=0; IN3=0; IN4=1; } void right() { IN1=0; IN2=1; IN3=0; IN4=0; } void stop() { IN1=0; IN2=0; IN3=0; IN4=0; } 5.功能模块介绍 5.1 电源模块 供电系统的原理图如下 7805INPUTOUTPUTINPUTOUTPUT780612v单片机及模块供电电机供电 7805 的5V 输出给单片机以及各个功能模块供电,在实际应用过程中我 们可能需要好几块7805,但是我们要注意的是:各个7805 之间的输出绝对不能够并联。7806 的6V 输出给点击供电作为动力电源。7805 与 7806 要公地。 5.2 电机驱动模块的原理及驱动程序 5.2.1 电机驱动模块的原理 L298 内部的原理图如下 IN1IN2ENAOUT1OUT2OUT3OUT4IN3IN4ENB6V动力电源 OUT1 与OUT2 与小车的一个电机的正负极相连,OUT3 与OUT4 与小车的另一个电机的正负极相连,单片机通过控制IN1 与IN2,IN3 与IN4 分别控制电机的正反转。ENA 与ENB 分别控制两个电机的使能。 L298 控制表 IN1 IN2 ENA 电机状态 x x 0 停止 1 0 1 顺时针 0 1 1 逆时针 0 0 1 停止 1 1 1 停止 注意:X 表示状态不定 电机驱动模块原理图 L298 有两路电源分别为逻辑电源和动力电源,上图中6V 为逻辑电源, 12V 为动力电源。J4 接入逻辑电源,J6 接入动力电源,J1 与 J2 分别为单片机...