Red de conocimiento informático - Aprendizaje de programación - if10010com

if10010com

Hola compañero, déjame ayudarte, puedes usar el puerto serie, por ejemplo: 1: Te doy un código de referencia para enviar datos desde la PC al microcontrolador, y luego el microcontrolador los envía a la PC tal como está: 2: 51 El estado 0 y 1 de un determinado botón (PIN) se envía a la PC

1:::::::::::::: <; /p>

#include

bandera de bits;

unsigned int R_D,S_D;

unsigned char i;

void usart_init(void); ///Inicialización del puerto serie

void main (void) {

usart_init(void); ///Inicialización del puerto serie

mientras(1)

{

if (Flag==1)

{

SBUF = S_D; /Búfer de recepción/transmisión SUBF (también llamado registro de función especial de comunicación en serie)

while(!TI);//Transmisión de datos especiales (indicador de interrupción de transmisión TI)

TI = 0; //Borrar indicador de transmisión de datos

Flag=0;

}

}

}

}

void ser_int ( void) interrupción 4 usando 1

{

if(RI == 1) //RI acepta el indicador de interrupción

{

RI = 0; //Borrar indicador de interrupción de aceptación de RI

R_D = SBUF; //Búfer de aceptación/transmisión de SUBF

S_D=R_D;/ /////Regresar a la PC para transmisión

Flag=1

}

}

void usart_init(void)/ //Inicialización del puerto serie

{

SCON = 0x50; //REN=1 permite el estado de aceptación del puerto serie, modo de trabajo del puerto serie 1

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

PCON|= 0x80

TH1 = 0xF3;// //baudios*2 /* Velocidad de baudios 4800, bits de datos 8, bit de parada 1 .

Sin bit de validación (12M)

TL1 = 0xF3

TR1 = 1;

ES = 1 //Interrupción de puerto serie abierto

EA = 1; // Activar interrupción total

}

2::::::::::::::::::::::: ::::::::::::::::::::::::

#include

sbit p34=P3^4;/ ///////Definir un botón

bit Flag=1;

unsigned int S_D ;

unsigned char i;

void usart_init(void); /// Inicialización del puerto serie

void delay (unsigned int Z); //Retraso del programa Z veces MS

void key_p34(void); ///verificación de clave

void main (void) {

usart_init(void); // /Inicialización del puerto serie

key_p34(void); //Detectar el estado de una pulsación de tecla después del encendido

if (Flag==1)//Enviar el estado de una pulsación de tecla después del encendido Estado

{

SBUF =1; //Búfer de recepción/transmisión SUBF (también llamado registro de función especial de comunicación en serie)

while(!TI);//Transmisión de datos especiales (indicador de interrupción de transmisión TI)

TI = 0;//Borrar indicador de transmisión de datos

}

else

{

SBUF =0; //Búfer de recepción/transmisión SUBF (también llamado registro de función especial de comunicación en serie)

while(!TI);// etc. Transferencia de datos (indicador de interrupción de envío TI)

TI = 0; // Borrar indicador de transferencia de datos

}

while(1)

{

key_p34(void)

if (Flag==1)

{

SBUF =1; //SUBF Búfer de recepción/transmisión (también llamado registro de función especial de comunicación en serie)

while(!TI);//Transmisión de datos especial (indicador de interrupción de transmisión de TI)

TI = 0;//Borrar indicador de transmisión de datos

}

else

{

SBUF =0; //Búfer de recepción/transmisión SUBF (también llamado registro de función especial de comunicación en serie)

while(!TI) ;// Transmisión de datos especial (indicador de interrupción de transmisión TI)

TI = 0;//Borrar indicador de transmisión de datos

}

}

}

void usart_init(void) /// Inicialización del puerto serie

{

SCON = 0x50; //REN=1 permite el estado de aceptación del puerto serie, el puerto serie funciona modo 1

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

PCON|= 0x80

TH1 = 0xF3;// / /baud*2; /* Velocidad de transmisión 4800, bits de datos 8, bit de parada 1. Sin bit de validación (12M)

TL1 = 0xF3

TR1 = 1;

ES = 1 //Interrupción de puerto serie abierto

EA = 1; // Activa la interrupción total

}

retraso nulo (unsigned int Z)//Retrasa el programa Z veces MS

{

retraso nulo (unsigned int Z)//retraso del programa Z veces MS

{

p>

unsigned int x,y;

for(x=Z;x>0;x--)

for(y=110;y>0;y --) ;

}

void key_p34(void) /////Detección de clave

{

if(p34= =0)

{ delay(10);

if(p34==0)

{

while(!p34) ;/////Espera a que se suelte el botón

Flag=0;

}

}

}

No sé cómo recibir la comunicación