Programación del chip controlador LCD
//Motor
sbit a = p2^0; //Definir pines
sbit b = p2^1; /p>
bit c = p2^2;
bit d = p2^3;
/////////////// / ///////////////////////////////Controlador de motor paso a paso
Carácter sin signo MotorStep = 0;
Temporizador de motor int sin signo = 0;
Retraso del motor int sin signo, velocidad = 1, TIM, CT;
#Definir velocidad 8 //No configurar el valor de velocidad demasiado bajo provocará vibraciones.
/****************************************** ***************
*Inicializar motor*
***************** ******* **********************************/
void InitMotor ()
{
a = 1;
b = 1
c = 1; d = 1;
}
void SetMotor()
{
// si (Velocidad == 0) regresa ;
Retraso del motor = velocidad; //Ajustar velocidad
Interruptor (paso del motor)
{
Caso 0:
if(TIM) // A
{
a = 0; //0xf1
b = 1; >c = 1;
d = 1;
paso del motor = 1;
TIM = 0; >
Descanso;
p>
Caso 1: //AB
Si (Tim)
{
a = 0; //0xf3
b = 0;
c = 1;
d = 1; 2;
TIM = 0;
}
Romper
Caso 2: //B
Si (Tim)
{
a = 1;
b = 0; //0xf2
c = 1; p>
d = 1;
paso del motor = 3;
TIM = 0;
}
Rotura
Caso 3: //BC
Si (Tim)
{
a = 1
b; = 0; //0xf6
c = 0;
d = 1;
paso del motor = 4; ;
}
Rotura;
Caso 4: //C
Si (Tim)
{
a = 1;
p>b = 1; //0xf4
c = 0; /p>
paso motor = 5;
TIM = 0;
}
Rotura;
Caso 5: / /CD
Si (Tim) p>
{
a = 1;
b = 1;
c = 0;
d = 0;
paso del motor = 6;
TIM = 0; /p>
Pausa;
Caso 6: //D
Si (Tim)
{
a = 1 ;
b = 1; //0xf8
c = 1;
d = 0
paso del motor = 7; /p>
TIM = 0;
}
Descanso;
Caso 7: //DA
Si (Tim )
{
a = 0;
b = 1; //0xf9
c = 1; >
paso del motor = 0;
TIM = 0;
}
Rotura
}
}
void system_Ini()
{
TMOD | = 0x 11;
TH0 = 0xDC//11.0592M
TL0 = 0x00
IE = 0x8A
TR0 = 1;
}
Principal() p>
{ sistema _ Ini();
iniciar motor();
mientras(1)
{
establecer motor();
}
}
/********************* *** ****************************
* *
*Retraso de interrupción temporizada * p>
****************************************** ****** ***/
Tzd no válida (no válida) interrupción 1
{
TH0 = 0xfe//11.0592
TL0 = 0x33
if(ct = =velocidad)
{ TIM = 1;
CT = 0;
}