COMUNICACIÓN SERIAL
Los microcontroladores PIC usan dos formas para poder comunicarse de forma serial. los cuales son:USART
LA función del USART es la de transmitir y recibir datos en serie
TRANSMISIÓN SINCRONA: Los datos se transfiere de forma continua, no existe límite de tamaño
Características:
- Modo semi-duplex
- La comunicación serie se transmite en una sola línea, en ambos sentidos.
- No se pueden enviar información en ambos sentidos de forma simultánea
- La transmisión puede ser maestro o esclavo
TRANSMISIÓN ASÍNCRONA: En este modo se emplean relojes tanto en el emisor como el receptor
Características:
- La frecuencia del reloj se acuerda antes de la transmisión
- La sincronización se realiza durante la transmisión
- Transmisión es full-duplex (se utilizan dos lineas, una de transmisión (Tx) y otra de recepción(Rx))
- Cada trama de datos tiene un tamaño fijo y posee un bit de arranque(inicio) y un bit de parada(final).
FUNCIÓN PARA CONFIGURAR EL MODULO USART EN C
#USE RS232(opciones)
Nos permite configurar las características del modulo USART
ejemplo:
#use rs232(baud=9600,xmit=pin_c6,rcv=pin_c7,parity=N,bits=8)
FUNCIONES DE TRANSMISION DE DATOS
FUNCIONES DE RECEPCION DE DATOS
#use rs232(baud=9600,xmit=pin_c6,rcv=pin_c7,parity=N,bits=8)
FUNCIONES DE TRANSMISION DE DATOS
- putc(data)
- putchar(data)
data es un caracter de 8 bits
- puts(string)
string es una cadena de caracteres constante o una matriz de caracteres terminada con un cero
- printf(fname,cstring,values)
fname: funcion a utilizar para escribir la cadena indicada, por defecto se utiliza putc()
cstring: cadena de caracteres o matriz de caracteres terminada en 0.
values: valores a indicar en la cadena, se debe indicar %nt (revisar el post de uso del LCD)
FUNCIONES DE RECEPCION DE DATOS
- value=getc()
- value=getch()
- value=getchar()
value es un carácter de 8 bits. Espera recibir un carácter por la línea RS232 y devuelve su valor.
- valor=kbhit()
valor=0 (false) si getc() debe esperar a que llegue un carácter
valor=1 (true) si ya hay un carácter para ser leído por getc()
buenas amigo, como esta todo. hermano estoy tratando de leer un caracter que me envía el arduino y no me muestra nada en la lcd, mi código es el siguiente:
ResponderEliminar#include
#define use_portb_lcd TRUE //definir portb lcd
#include
#include
#use delay (clock=2000000)
#use rs232(baud=9600,parity=N,xmit=pin_c6,rcv=pin_c7,bits=8)
#use standard_io(c)
#int_RDA
void main(void)
{
char caracter;
set_tris_b(0b0);
while(1)
{
caracter=getc();
lcd_init();
printf(lcd_putc,"\f");
lcd_gotoxy(1,0);
printf(lcd_putc,"la variable es: %C",caracter);
if (caracter=='a')
{
output_high(PIN_A0);
delay_ms(1000);
}
else
{
output_low(PIN_A0);
delay_ms(1000);
}
//TODO: User Code
}
}
Ccs Compiler (Pic C Compiler) - Comunicación Serial
Eliminar~
Aprendiendoelectrónica >>>>> Download Now
>>>>> Download Full
Ccs Compiler (Pic C Compiler) - Comunicación Serial
~
Aprendiendoelectrónica >>>>> Download LINK
>>>>> Download Now
Ccs Compiler (Pic C Compiler) - Comunicación Serial
~
Aprendiendoelectrónica >>>>> Download Full
>>>>> Download LINK dv
no has dado de alta tu interrupcion, solo la declaraste en #rda,
ResponderEliminardebes inicializarla empezando tu loop
Buenas tardes a todos los de este foro tengo un problema estoy haciendo un programa con un pic16f628 Y un modulo bluetooth hc-05 y me funciona muy bien pero quiero cambiar el pic16f628 por un pic16f684 que es de 14 pines pero este no trae UART entonces no se como lo puedo conectar o como puedo hacer una comunicación entre el hc-05 y el pic16f684 si alguien me puede ayudar les agradezco este es mi correo.julroj07@gmail.com
ResponderEliminarhola, alguien me podrá ayudar. estoy comenzando desde cero con pic16f84a y necesito un código para habilitar el puerto serie y enviar un mensaje en código ASCII hacia COMPIM.
ResponderEliminarespero sus comentarios.
todos lo que quieren implementarlo en pic16f84 estan locos, el código para hacerlo es complicado y ocuparía mucha memoria.
ResponderEliminarEste comentario ha sido eliminado por el autor.
ResponderEliminarhola amigos estoy realizando un proyecto de hacer un contador con un button y mostrarlo en dos display de 7 segmentos, luego eso debo enviarlo a labview para mostrarlo en una interfaz grafica
ResponderEliminarmi codigo es este
#include <18F4550.h>
#use delay(clock=20Mhz)
const byte U[]={0x00,0x3F,0x06,0x5b,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x67,};
const byte D[]={0x00,0x3F,0x06,0x5b,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x67,};
int X=2;
int Y=1;
int A=0;
void main()
{
set_tris_A(0x3F);
set_tris_B(0x00);
set_tris_D(0x00);
output_B(0x3f);
output_D(0x3f);
delay_ms(10);
do
{
if(input(pin_A0)==0)
{
output_B(U[X]);
output_D(D[Y]);
delay_ms(100);
X++;
if(X==11)
{
Y++;
X=1;
}
}
}while (true);
}
Que me haria falta para poder hacer la comunicacion serial y pdoer recibir los datos en labview por favor
Disculpa tendrás algún ejemplo con dos pic16f877a de suma y resta
ResponderEliminarHago ejemplos básicos para que puedan aprender a programar un PIC y usar los módulos. La lógica de programación es la misma, ya depende mucho del estudiante. Saludos
EliminarMe urge. Si me puedes responder por correo lacio.ramosangel12@gmail.com
ResponderEliminarMayores consultas a tutorialesdeelectronica10@gmail.com
EliminarCcs Compiler (Pic C Compiler) - Comunicación Serial
ResponderEliminar~
Aprendiendoelectrónica >>>>> Download Now
>>>>> Download Full
Ccs Compiler (Pic C Compiler) - Comunicación Serial
~
Aprendiendoelectrónica >>>>> Download LINK
>>>>> Download Now
Ccs Compiler (Pic C Compiler) - Comunicación Serial
~
Aprendiendoelectrónica >>>>> Download Full
>>>>> Download LINK