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) p>
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); p>
if(p34==0)
{
while(!p34) ;/////Espera a que se suelte el botón
Flag=0;
}
}
}
No sé cómo recibir la comunicación