Problemas al controlar coches inteligentes con teléfonos móviles: El microcontrolador no responde a los datos transmitidos por Bluetooth
#define uchar definición de macro/char unsigned
#define uint definición de int/macro unsigned
sbit deng=P2^0;//define el pin de control para el pin de control de luces
sbit z=P2^1;//define el pin de control de la señal de giro izquierda
sbit y= P2^2;//Definir el pin de señal de giro derecho
sbit BEEP=P2^3;//Definir el pin del timbre
sbit zuo1=P0^0;// Definir el pin del microcontrolador que controla el motor izquierdo
sbit zuo2=P0^1;//define el pin del microcontrolador que controla el motor izquierdo
sbit you1=P0^2;// define el pin del microcontrolador que controla el motor derecho
sbit you2=P0^3;//definir el pin del microcontrolador que controla el motor derecho
uchar a= 0;//definir una variable a para leer datos del puerto serie
void delay(uint z)//un programa de retardo con parámetros
{
int i,j;/ /define dos variables
for(i=10;i>0;i--)
for(j=z;j& gt;0;j--);// asignar parámetro z a j
}
void init()//subrutina de inicialización
{
TMOD=0x20;//establecer temporizador T1 a modo de trabajo 2
TH1=0xfd;
TL1=0xfd;//T1 Valor inicial de carga del temporizador
TR1=1;//Inicia temporizador T1
REN=1; //Permitir que el puerto serie reciba
SM0=0;
SM1=1;//Configurar el puerto serie para que funcione en modo 1
EA=1;//Habilitar interrupción total
ES=1;//Habilitar interrupción del puerto serie
}
void go( )//subrutina de avance
{
zuo1=0;
zuo2=1;//retraso de avance del revólver
(25) ;//Valor útil de pwm, cuanto más grande sea la rueda izquierda, mayor será la velocidad
zuo1=1;//Cierra la rueda izquierda
you1=0;
you2=1;//La rueda derecha está girando
delay(24);//Pwm valor útil, cuanto mayor sea la dirección correcta, más rápida será la rueda
you1= 1;//Cerrar rueda derecha
retraso(1
00);//pwm no tiene ningún valor útil. Cuanto más grande es, más lento corre el auto
z=1;
y=1; //Apaga la señal de giro
} p>
void hui()//subrutina para que el carrito vaya hacia atrás
{
zuo1=1;
zuo2=0;// la rueda izquierda invierte
delay(25);//pwm valor inútil, cuanto más grande es la rueda de dirección izquierda, más rápida
zuo2=1;//apagar rueda izquierda
you1=1;
you2=0; //la rueda derecha está invertida
delay(24);//pwm valor útil, mayor la rueda derecha es la más rápida
you2=1;//apaga la rueda derecha
delay(100); //pwm valor no válido, cuanto mayor es, más lento corre el auto.
z=1;
y=1;//Apaga la señal de giro
}
void turnleft()// Subrutina para girar el coche hacia la izquierda
{
zuo1=1;
zuo2=1;//La rueda izquierda deja de girar
you1=0;
you2=1; //La rueda derecha gira
delay(24);//pwm valor útil, cuanto más grande es la rueda derecha, más rápido va
you1=1; //La rueda derecha se detiene
delay(100);//pwm es inútil, cuanto mayor sea el valor, más lento irá el coche
z=1;
y=1;// Apaga la señal de giro
z=~z;//Enciende la señal de giro a la izquierda
}
void turnright()//subrutina de giro del carrito a la derecha
{
zuo1=0;