Red de conocimiento informático - Problemas con los teléfonos móviles - Programación de comunicación serie Rs485

Programación de comunicación serie Rs485

Esto es muy simple, déjame enseñarte cómo jugar:

En primer lugar, hablemos de la conexión del hardware, bloque de circuito de señal USB a 485 (solo 20 yuanes, el más caro es tuyo), MAX485 chip, oscilador de cristal 11.0592M (el error de velocidad en baudios producido por este cristal de frecuencia es bajo).

Idea: utilizar la interrupción del puerto serie para controlar el LED del puerto P0 (solo estoy dando un ejemplo y escribiendo el programa yo mismo).

El proceso es el siguiente:

# include ltreg 51. h gt; //Selecciona oscilador de cristal 11.0592MHz.

#define AddressID 0x31 //Dirección local 1

sbit rs485e=p3^7 //Definir 485 // El pin de habilitación de RS5485E=0 está en estado de recepción, RS5485E = 1 es el estado de envío.

sbit max485_dir=p3^7;

main()

{

//* * * * * * * * * *Configuración de comunicación

SCON = 0xf 0; //REN=1 permite que el puerto serie acepte el estado, modo de funcionamiento del puerto serie 3, =1.

TMOD | = 0x 20; // Modo de trabajo del temporizador 2

PCON | = 0x 80 //Duplica la velocidad en baudios

IP = 0x 10; //El puerto serie tiene alta prioridad.

th 1 = 0x F4; //FA///Baudios * 2/*Velocidad de baudios 4800, bits de datos 8, bit de parada 1. No válido (11.0592M)

TL 1 = 0x F4;

tr 1 = 1; //Iniciar temporizador 1

EA = 1; interrupción

ES = 1; //Abrir puerto serie interrupción

RS 485 e = 0; // RS5485E=0 es el estado de recepción, RS5485E=1 es el estado de envío.

while(1);

}

Contador no válido 4 (no válido) la interrupción 4 usa 2 // interrupción del puerto serie

{

while(RI = = 0);

RI = 0;

if(SBUF==0x2a) //El código ASCII de 2a es *

{

mientras(RI = = 0);

RI = 0;

If(SBUF==AddressID) //Enviar El código ASCII para la dirección local 31 es 1.

{

mientras(RI = = 0);

RI = 0;

if(SBUF==0x23) // El código ASCII de 23 es #

{

P0 = 254//P0 = 11111110. Escriba aquí el programa que desea controlar el LED.

}

}

}

}

Así de simple. Se completó la depuración y se completaron los comentarios.

PD: Suplemento después de cinco días de responder preguntas: Si resuelves el problema, no hagas preguntas y no des puntos. Este cartel no es amable, ¡se acabó la tasación!