SlideShare une entreprise Scribd logo
1  sur  42
Télécharger pour lire hors ligne
MICROCONTROLADORES II
MÓDULO USARTMÓDULO USART
(Comunicación Serial Asíncrona)
TEMA 5
PROF. LUIS ZURITA
INTRODUCCIÓN
• En los sistemas con microcontroladores puede existir
la necesidad de conectarse con el mundo exterior, y
esto se logra mediante las comunicaciones seriales y
paralelas.
• En este tema se tratará la comunicación serial• En este tema se tratará la comunicación serial
asíncrona mediante el módulo USART. Dicha
comunicación permite establecer un enlace de
comunicación tipo Full Duplex.
Dispositivo
Externo
TX
TX
RX
RX
GND
RC6/TX
RC7/RX
µC
Prof. Luis Zurita Microcontroladores II
PROTOCOLO RS-232
• Este protocolo es el utilizado por los
microcontroladores y su módulo USART.
• Cada dato se envía independientemente de los
demás.
• Consta de 8 ó 9 bits de datos• Consta de 8 ó 9 bits de datos
• Consta de 1 bit de Inicio (START)
• Consta de 1 bit de Parada (STOP)
BIT INICIO BIT PARADA
DATOLSB MSB
Prof. Luis Zurita Microcontroladores II
MÓDULO USART
1. Circuito de Muestreo (RC7/RX)
2. Generador de Baudios
La frecuencia en baudios (bits por segundos) es la
velocidad a la que se realiza la transferencia de
datos. Valores normalizados: 330, 600, 1200, 2400,datos. Valores normalizados: 330, 600, 1200, 2400,
4800, 9600, 19200, 38400, otros.
• El USART tiene un generador de Frecuencia en
baudios, BRG. Su valor es controlado por el
Registro SPBRG.
• La frecuencia en baudios del generador depende
del bit BRGH del registro TXSTA (2).
Prof. Luis Zurita Microcontroladores II
TRANSMISOR ASÍNCRONO
• El dato a transmitirse se coloca en TXREG. De
inmediato pasa al registro de desplazamiento TSR,
que empieza a sacar los bits secuencialmente, según
la frecuencia establecida. Se incluye antes de los
datos el bit de Inicio. Y después de los bits de datos,
se agrega el bit de parada.se agrega el bit de parada.
• Como podemos ver, el corazón del transmisor lo
constituye el TSR, cuyo contenido es cargado con el
Dato a transmitir desde el TXREG.
• Lo va sacando bit a bit desde el LSB hasta el MSB.
Prof. Luis Zurita Microcontroladores II
TRANSMISOR ASÍNCRONO
Prof. Luis Zurita Microcontroladores II
TX9D
TX9=1 1 bit
TXREG
REGISTRO DE DESPLAZAMIENTO DE SALIDA
8 bits
RC6/TX
TX9D: 9 bits de datos transmitidos. Puede ser el bit de paridad
D0 D1 D2 D3 D4 D5 D6 D7
1 10
Bit start Bit stop
D0 D1 D2 D3 D4 D5 D6 D7
1 10
Bit start Bit stopTX9D
Tramas a enviarProf. Luis Zurita Microcontroladores II
RECEPTOR ASÍNCRONO
• Los datos se reciben en serie, bit a bit, por el pin RC7/RX, y se
van introduciendo secuencialmente en el registro de
desplazamiento RSR, que opera a una frecuencia 16 veces
más rápida que la de trabajo.
• Después de recibir el bit de Stop los datos acumulados en este
registro se cargan en el de datos RCREG (si está vacío).
Cuando la transferencia se ha completado, el bit RCIF (PIR1,5)
registro se cargan en el de datos RCREG (si está vacío).
Cuando la transferencia se ha completado, el bit RCIF (PIR1,5)
se pone a uno. La interrupción puede habilitarse o
deshabilitarse colocando a uno o borrando, respectivamente,
el bit RCIE (PIE1,5). El bit RCIF se borra cuando el registro
RCREG se ha leído (se "vacía" el registro).
Prof. Luis Zurita Microcontroladores II
RECEPTOR ASÍNCRONO
Prof. Luis Zurita Microcontroladores II
REGISTRO DE DESPLAZAMIENTO DE SALIDA
8 bits
RC7/RX
1 bit
Recepción de datos
RX9=1
Buffer
RX9D RCREG
FIFO
Prof. Luis Zurita Microcontroladores II
Módulo USART en C
• Las siguientes directivas permiten una configuración genérica
del módulo USART:
#USE RS232 (opciones)
Esta directiva permite configurar varios parámetros del módulo
USART, tales como la velocidad de transmisión, pines
utilizados, entre otros. Se puede modificar en cualquier parte
del programa, pero siempre después de haber definido la
directiva #USE DELAY.directiva #USE DELAY.
Esta directiva habilita el uso de funciones tales como GETCH,
PUTCHAR y PRINTF. Permite su uso en dispositivos que no
poseen módulo USART mediante software USART.
Cuando se utilizan dispositivos con USART, si no se puede
alcanzar una tasa de baudios dentro del 3 % del valor deseado
utilizando la frecuencia de reloj actual, se generará un error.
Prof. Luis Zurita Microcontroladores II
Módulo USART en C
BAUD=X Velocidad en Baudios
XMIT=pin Pin de transmisión
RCV= pin Pin de recepción
FORCE_SW Usa un software UART en lugar del hardware,
aún cuando se especifican los pines del
hardware.hardware.
RESTART_WDT Hace que la función GETC ( ) ponga a cero el
WDT mientras espera un carácter.
BRGH1OK Permite velocidades de transmisión bajas en
chips que tienen problemas de transmisión.
Prof. Luis Zurita Microcontroladores II
Módulo USART en C
ENABLE= pin El pin especificado estará a nivel alto durante la
transmisión. Utilizado en transmisión 485.
DEBUGGER Permite depuración a través del ICD. El pin por
defecto es el B3;
INVERT Invierte la polaridad de los pines serie
(normalmente no es necesario con el(normalmente no es necesario con el
convertidor de nivel, como el MAX232). No
puede usarse con el USART interno.
PARITY= X Donde X es N,E u O
BITS= X Donde X es 5-9 (no puede usarse 5-7 con el
USART interno).
FLOAT_HIGH Se utiliza para las salidas de colector abierto.
Prof. Luis Zurita Microcontroladores II
Módulo USART en C
ERRORS Indica al compilador que guarde los errores recibidos en la
variable RS232_ERRORS para restablecerlos cuando se
producen.
SAMPLE_EARLY No se puede utilizar con el USART interno. Provoca que el
muestreo del dato a través de la función GETC ( ) se realice al
principio de un bit de tiempo.
RETURN= pin Para FLOAT_HIGH y MULTI_MASTER, este pin se usa para leer
la señal de retorno. Por defecto, para FLOAT_HIGH es XMIT y
para MULTIMASTER es RCV.para MULTIMASTER es RCV.
MULTI_MASTER Usa el pin de RETURN para determinar si otro master en el bus
está transmitiendo al mismo tiempo. Si se detecta una colisión,
el bit 6 se pone a 1 en RS232_ERRORS y todos los posibles
PUTC ( ) son ignorados hasta que el bit 6 esté a 0. La señal es
comprobada al final y al principio de cada bit de tiempo. No se
puede utilizar con USART interno.
LONG_DATA Permite manejar INT16 a las funciones GETC ( ) y PUTC ( ). En
formatos de datos de 9 bits.
DISABLE_INTS Provoca la deshabilitación de interrupciones cuando se ejecuta
GETC ( ) y PUTC ( ) evitando distorsiones en los datos.
Prof. Luis Zurita Microcontroladores II
Módulo USART en C
STOP= x Número de bits de stop (por defecto 1)
TIMEOUT= x Para establecer el tiempo que GETC ( ) espera
un carácter (en ms). Si no se recibe carácter en
este tiempo, el RS232_ERRORS se pone a 0.
SYNC_SLAVE Provoca una línea RS232 en modo esclavo
síncrono, haciendo el pin de recepción como
entrada de reloj y la de transmisión comoentrada de reloj y la de transmisión como
entrada/salida de datos.
SYNC_MASTER Provoca una línea RS232 en modo maestro
síncrono, haciendo el pin de recepción como
salida de reloj y la de transmisión como
entrada/salida de datos.
UART1 Configura el XMIT y RCV para el USART1
UART2 Configura el XMIT y RCV para el USART2
Prof. Luis Zurita Microcontroladores II
Ejemplos:
#use delay (clock=20000000);
#use rs232 (BAUD=9600 , XMIT=PIN_C6 , RCV=PIN_C7 , BITS=8)
#use rs232 (BAUD=9600 , XMIT=PIN_A2 , RCV=PIN_A3)
Setup_uart(baud)
baud es una constante que define la velocidad. Un 1 enciende el
USART y un 0 lo apaga. Con cualquier valor de velocidad, el USART
se enciende.
Módulo USART en C
se enciende.
set_uart_speed (baud)
Idéntica a la función anterior. Ejemplo:
// Se establece la velocidad mediante la combinación de los pines B0
y B1:
switch (input_b ( ) & 3){
case 0: set_uart_speed(2400); break;
case 1: set_uart_speed(4800); break;
case 2: set_uart_speed(9600); break;
case 3: set_uart_speed(19200); break;
Prof. Luis Zurita Microcontroladores II
Transmisión de datos:
putc (cdata)
putchar (cdata)
cdata es un carácter de 8 bits. Esta función envía un
carácter mediante el pin XMIT. La directiva #USE RS232
debe situarse siempre antes de utilizar esta función.
Módulo USART en C
debe situarse siempre antes de utilizar esta función.
puts (string)
string: cadena de caracteres constante o matriz de
caracteres terminada con un 0. La función puts ( ) manda
los caracteres de la cadena, uno a uno, a través del bus
RS232 utilizando la función PUTC ( ); detrás de la cadena
envía un RETURN (13) y un retorno de carro (10)
Prof. Luis Zurita Microcontroladores II
printf (fname, cstring, values…)
cstring: es una cadena de caracteres (constante) o matriz
de caracteres terminada con un cero.
fname: las funciones a utilizar para escribir la cadena
indicada; por defecto se utiliza la función PUTC ( ), que
permite escribir en el bus RS232.
values: valores a incluir en la cadena separados por comas;
Módulo USART en C
values: valores a incluir en la cadena separados por comas;
se debe indicar %nt. El formato es %nt, donde n es
opcional y puede ser:
1-9 para especificar cuantos caracteres deben ser
especificados;
01-09 para indicar la cantidad de ceros a la izquierda.
1.1-9.9 para coma flotante.
Prof. Luis Zurita Microcontroladores II
Módulo USART en C
t puede indicar:
c Carácter
s Cadena o carácter
u Entero sin signo
d Entero con signo
Lu Entero sin signo
Ld Entero largo con signoLd Entero largo con signo
x Entero hexadecimal (minúscula)
X Entero hexadecimal (mayúscula)
Lx Entero largo hexadecimal (minúscula)
LX Entero largo hexadecimal (mayúscula)
f Flotante con truncado
g Flotante con redondeo
e Flotante en formato exponencial
w Entero sin signo con decimales insertados. La 1ra cifra
indica el total, la 2da el número de decimales.
Prof. Luis Zurita Microcontroladores II
Recepción de datos:
value= getc ( );
value= getch ( );
value= getchar ( );
value (valor) es un carácter de 8 bits. Espera recibir un
carácter por la línea RS232 y devuelve su valor. En los
dispositivos con USART interno, se pueden almacenar
Módulo USART en C
dispositivos con USART interno, se pueden almacenar
hasta tres caracteres; para evitar esperas se puede
utilizar la función KBHIT ( ).
valor= kbhit ( );
valor es 0 (FALSE) si GETC ( ) debe esperar a que llegue un
carácter; 1 (TRUE) si ya hay un carácter listo para ser
leído por la función GETC ( ).
Prof. Luis Zurita Microcontroladores II
Ejemplo 1. Enviar los datos del 0 al 10, en modo asíncrono, entre dos
PICS. Visualizar con un LCD, los datos enviados y los datos recibidos;
la recepción del dato deberá ser por interrupción del USART.
// PIC MAESTRO
#include <16F877.h>
#FUSES XT,NOWDT
#use delay(clock=4000000)
#use rs232(baud=9600, xmit=pin_c6, rcv=pin_c7)
#include <LCD.C>
void main() {
int valor;int valor;
lcd_init();
while(1){
for (valor=0;valor<=10;valor++) {
PUTC(valor); // Envia valor
printf(lcd_putc,"fENVIANDOn");
printf(lcd_putc,"%1D",valor);
delay_ms(2000);
}
}
}
Prof. Luis Zurita Microcontroladores IIProf. Luis Zurita Microcontroladores II
// PIC ESCLAVO
#include <16F877.h>
#FUSES XT,NOWDT
#use delay(clock=4000000)
#use rs232(baud=9600, xmit=pin_c6, rcv=pin_c7, bits=8)
#include <LCD.C>
#BYTE TRISA=0X85
#BYTE PORTA=0X05
int valor;
#int_RDA
RDA_isr() {
valor=GETC();} //Recibe valorvalor=GETC();} //Recibe valor
void main() {
bit_clear(TRISA,0);
lcd_init();
enable_interrupts(INT_RDA);
enable_interrupts(GLOBAL);
for (;;) {
lcd_gotoxy(1,1);
printf(lcd_putc,"recibiendo=%1D",valor);
}
}
Prof. Luis Zurita Microcontroladores II
Con el “Virtual Terminal”, presionando el
botón derecho del mouse y seleccionando
Hex display mode, podemos visualizar los
datos que se están recibiendo.
Prof. Luis Zurita Microcontroladores II
La norma RS232
• Es la más básica de las comunicaciones serie. Comunica un
equipo terminal de datos (DTE) con el equipo de
comunicación de datos (DCE).
• Las características eléctricas de la señal en esta norma
establecen que la longitud máxima entre dos equipos no
debe ser superior a 15 metros, sin embargo, el autor hadebe ser superior a 15 metros, sin embargo, el autor ha
realizado pruebas de campo que permiten alcanzar los 30
metros. La velocidad máxima de transmisión es de 20 kbps.
Los niveles lógicos no son compatibles con los niveles TTL,
ya que se situan dentro de los siguientes rangos: 1 lógico
entre -3 v a -15 v y 0 lógico entre +3 v a +15 v.
• Se utilizan conectores DB9 y DB25.
Prof. Luis Zurita Microcontroladores II
• Para una comunicación full duplex desde el USART
del PIC, se debe conectar un mínimo número de
señales, a saber: TXD, RXD y tierra (GND). Los PICS
utilizan señal TTL en el módulo USART, por lo que
debe utilizarse un convertidor de niveles a RS232,
como el circuito integrado MAX232
La norma RS232
como el circuito integrado MAX232
MAX232
RX
RX
TX
TX
GND GND
NIVELES TTL NIVELES RS232
Prof. Luis Zurita Microcontroladores II
Circuito integrado MAX232
Prof. Luis Zurita Microcontroladores II
• En la actualidad, las computadoras desde el año 1996 han ido
erradicando el puerto serie con el conector DB9 y DB25, por el
puerto USB (Universal Serial Port).
• Una solución ha sido la implementación de cables de
conversión USB-232.
• Sin embargo, los microcontroladores de la familia PIC18,
integran un módulo USB para comunicaciones como protocolo
de comunicación.
PIC
Módulo
USART
PIC
Módulo
USB
Convertidor
USB-232
Familia PIC18Familia PIC16F87X
Prof. Luis Zurita Microcontroladores II
• La selección de las órdenes se realiza mediante un
teclado y se visualizan en una pantalla LCD en el
Maestro.
• Si se presiona 1, el Maestro envía el dato: 17H, el
esclavo activa el led Rojo y muestra en una pantalla
LCD: ORDEN1.
• Si se presiona 4, el Maestro envía el dato: 2DH, el
esclavo activa el led amarillo y muestra en una
Ejemplo 2. Realizar un sistema Maestro-Esclavo multi-
selector.
• Si se presiona 4, el Maestro envía el dato: 2DH, el
esclavo activa el led amarillo y muestra en una
pantalla LCD: ORDEN2.
• Si se presiona 7 el Maestro envía el dato: 64H, el
esclavo activa el led verde y muestra en una pantalla
LCD: ORDEN3.
• Si se presiona cualquier otra tecla, el Maestro envía
el dato: C2H, el esclavo desactiva todos los leds y
muestra en una pantalla LCD: TODOS OFF.
Prof. Luis Zurita Microcontroladores II
#include <16f877.h>
#fuses XT,NOWDT,NOPROTECT,NOLVP
#use delay (CLOCK = 4000000)
#use rs232(baud=9600, xmit=pin_c6,
rcv=pin_c7)
#define use_portb_kbd TRUE
#define use_portd_lcd TRUE
#include <lcd.c>
#include <kbd.c>
if (k!=0) {
if (x==1)
{valor=0x17;
PUTC(valor);
printf(lcd_putc,"fORDEN 1");}
else if (x==4)
{valor=0x2D;
PUTC(valor);
printf(lcd_putc,"fORDEN 2");}
else if (x==7)
Ejemplo 2. Sistema Maestro-Esclavo multi- selector.
Programa del Maestro:
void main() {
char k;
int x;
int valor;
lcd_init();
kbd_init();
port_b_pullups(TRUE);
printf(lcd_putc,"fPRESIONE FUNCION");
OUTPUT_C(0x00);
while (TRUE) {
k=kbd_getc();
x=k-48;
else if (x==7)
{valor=0x64;
PUTC(valor);
printf(lcd_putc,"fORDEN 3");}
else
{valor=0xC2;
PUTC(valor);
printf(lcd_putc,"fTODOS OFF");
delay_ms(1000);}
}
}
}
Prof. Luis Zurita Microcontroladores II
#include <16f877.h>
#fuses XT,NOWDT
#use delay(CLOCK=4000000)
#use rs232(baud=9600, xmit=pin_c6, rcv=pin_c7,
bits=8)
#define use_portd_lcd TRUE
#include <lcd.c>
int valor;
#int_RDA
RDA_isr(void){
delay_ms(50);}
else if (valor==0x2D)
{printf(lcd_putc,"fORDEN 2");
output_low (PIN_C0);
output_high (PIN_C1);
output_low (PIN_C2);
delay_ms(50);}
else if (valor==0X64)
{printf(lcd_putc,"fORDEN 3");
output_low (PIN_C0);
output_low (PIN_C1);
Ejemplo 2. Sistema Maestro-Esclavo multi- selector.
Programa del Esclavo:
RDA_isr(void){
valor=GETC();}
void main() {
set_tris_c(0x80);
lcd_init();
enable_interrupts(INT_RDA);
enable_interrupts(GLOBAL);
while (TRUE) {
if (valor==0x17)
{printf(lcd_putc,"fORDEN 1");
output_high (PIN_C0);
output_low (PIN_C1);
output_low (PIN_C2);
output_low (PIN_C1);
output_high (PIN_C2);
delay_ms(50);}
else if (valor==0XC2)
{printf(lcd_putc,"fTODOS OFF");
output_low (PIN_C0);
output_low (PIN_C1);
output_low (PIN_C2);
delay_ms(50);}
else{
}
}
}
Prof. Luis Zurita Microcontroladores II
Ejemplo 2. Sistema Maestro-Esclavo multi- selector.
Simulación del Programa:
Prof. Luis Zurita Microcontroladores II
Ejemplo 2. Sistema Maestro-Esclavo multi- selector.
Simulación del Programa:
Prof. Luis Zurita Microcontroladores II
PROGRAMA DEL PIC MAESTRO:
#include <16F877A.h>
#device ADC=10
#FUSES XT,NOWDT,NOPROTECT,NOLVP
#use standard_io(c)
#use delay(clock=4000000)
#use rs232(baud=9600, xmit=pin_c6,
for (;;) {
set_adc_channel(0); // Conversión
//de la señal del potenciómetro
delay_ms(10); // Espera el TADQ
valor = read_adc(); // Lee el valor
de //la conversión
p=valor*0.098; // Factor escalar
Ejemplo 3. Realizar una conversión A/D de una señal proveniente de
un potenciómetro en un PIC16F877, y enviarlo al puerto serie de una
computadora. Visualizar los datos en LABVIEW (Opcional), además de
poder controlar el puerto B de un PIC16F873 desde la computadora.
#use rs232(baud=9600, xmit=pin_c6,
rcv=pin_c7, bits=8, parity=N)
#BYTE TRISA=0X85
#BYTE PORTA=0X05
void main() {
int16 valor;
int p;
setup_adc_ports(AN0);
setup_adc(ADC_CLOCK_INTERNAL);
p=valor*0.098; // Factor escalar
//para pasar de 0-1023 a 0-100
putc(p);
delay_ms(200); //Tiempo de
//muestreo
}
}
Prof. Luis Zurita Microcontroladores II
PROGRAMA DEL PIC ESCLAVO:
#include <16F873A.h>
#FUSES XT,NOWDT,NOPROTECT,NOLVP
#use standard_io(c)
#use fast_io(b)
#use delay(clock=4000000)
void main() {
set_tris_b(0x00);
enable_interrupts(INT_RDA);
enable_interrupts(GLOBAL);
while (1){
Ejemplo 3. Realizar una conversión A/D de una señal proveniente de
un potenciómetro en un PIC16F877, y enviarlo al puerto serie de una
computadora. Visualizar los datos en LABVIEW (Opcional), además de
poder controlar el puerto B de un PIC16F873 desde la computadora.
#use delay(clock=4000000)
#use rs232(baud=9600, xmit=pin_c6,
rcv=pin_c7, bits=8, parity=N)
int valor;
#int_RDA //Interrupción por RX de datos
RDA_isr(void){
valor=GETC();}
while (1){
output_b(valor);}
}
Prof. Luis Zurita Microcontroladores II
Información obtenida en LABVIEW
Prof. Luis Zurita Microcontroladores II
Información obtenida en LABVIEW
Prof. Luis Zurita Microcontroladores II
Puerto Serie en PROTEUS
• El ISIS del PROTEUS proporciona un componente que
permite la simulación a través del puerto serie:
COMPIM.
• Utilizando este componente no se necesita colocar un
MAX232 para la simulación, debido a que el propio
componente gestiona la comunicación con el puerto decomponente gestiona la comunicación con el puerto de
la computadora.
• Podemos entonces comunicarnos con nuestra propia
computadora. Si se tiene 2 puertos serie o 1 serie y
varios USB, con su respectivo cable convertidor, y así
manejar los datos que provienen del PIC con diferentes
programas de aplicación como Visual C, LABVIEW, entre
otros.
Prof. Luis Zurita Microcontroladores II
ERROR
TXD
3
RXD
2
CTS
8
RTS
7
DSR
6
DTR
4
DCD
1
RI
9
P1
Puerto Serie en PROTEUS
ERROR
COMPIM
La configuración del puerto se realiza como cualquier otro componente
y se pueden cambiar virtualmente todas las propiedades de un puerto
serie: número de puerto, velocidad, paridad, número de bits, entre
otros.
Prof. Luis Zurita Microcontroladores II
Para este ejercicio, se envían los datos del PIC al COMPIM 1. Para simular que los
datos se reciben en otro puerto (la computadora), se utiliza otro simulador
de puerto (COMPIM 2):
#include <16F877.h>
#device ADC=10
#FUSES XT,NOWDT,NOPROTECT,NOLVP
#use delay(clock=4000000)
#use rs232(baud=9600, xmit=pin_c6, rcv=pin_c7, bits=8, parity=N)
Ejemplo 4. Realizar una conversión A/D de una señal proveniente de
un potenciómetro y enviarlo al puerto serie de una computadora.
#use rs232(baud=9600, xmit=pin_c6, rcv=pin_c7, bits=8, parity=N)
#include <LCD.C>
void main() {
int16 valor=0;
float p=0.0;
setup_adc_ports(AN0);
setup_adc(ADC_CLOCK_INTERNAL);
lcd_init();
Prof. Luis Zurita Microcontroladores II
Continuación del ejercicio:
for (;;) {
set_adc_channel(0); // Conversión de la señal del potenciómetro
delay_us(10); // Espera el TADQ
valor = read_adc(); // Lee el valor de la conversión
p =5.0 * valor / 1024.0;// Convierte el valor decimal a voltaje
//Es lo mismo que utilizar p=0.004883*valor;
Ejemplo 4. Realizar una conversión A/D de una señal proveniente de
un potenciómetro y enviarlo al puerto serie de una computadora.
//Es lo mismo que utilizar p=0.004883*valor;
printf(lcd_putc, "fADC =%LUn",valor);
printf(lcd_putc,"VOLTAJE = %01.2fV",p);
printf("ADC = %4ld ",valor); //Envío de información a la computadora
printf("VOLTAJE = %01.2fVr", p); // El r permite cambiar de línea.
delay_ms(100);
}
}
Prof. Luis Zurita Microcontroladores II
Configuración del COMPIM
Prof. Luis Zurita Microcontroladores II
Recibe
Transmite
Recibe
En este ejemplo no se recibe nada,
puesto que no se pudo conectar un
cable USB entre dos puertos de la
misma computadora.
Prof. Luis Zurita Microcontroladores II

Contenu connexe

Tendances

CAPACIDAD DE CANAL DE COMUNICACIÓN DE DATOS
CAPACIDAD DE CANAL DE COMUNICACIÓN DE DATOSCAPACIDAD DE CANAL DE COMUNICACIÓN DE DATOS
CAPACIDAD DE CANAL DE COMUNICACIÓN DE DATOS
Student A
 
Practica#1 sensores opticos
Practica#1 sensores opticosPractica#1 sensores opticos
Practica#1 sensores opticos
Enrique Ovalle
 
Deteccion y Correccion de errores
Deteccion y Correccion de erroresDeteccion y Correccion de errores
Deteccion y Correccion de errores
Mishell Carrera
 

Tendances (20)

CAPACIDAD DE CANAL DE COMUNICACIÓN DE DATOS
CAPACIDAD DE CANAL DE COMUNICACIÓN DE DATOSCAPACIDAD DE CANAL DE COMUNICACIÓN DE DATOS
CAPACIDAD DE CANAL DE COMUNICACIÓN DE DATOS
 
Final1 tomasi
Final1 tomasiFinal1 tomasi
Final1 tomasi
 
Practica 7 Flip Flop
Practica 7 Flip FlopPractica 7 Flip Flop
Practica 7 Flip Flop
 
Diseño, simulación y control de la dinámica de un robot planar de dos grados ...
Diseño, simulación y control de la dinámica de un robot planar de dos grados ...Diseño, simulación y control de la dinámica de un robot planar de dos grados ...
Diseño, simulación y control de la dinámica de un robot planar de dos grados ...
 
Practica#1 sensores opticos
Practica#1 sensores opticosPractica#1 sensores opticos
Practica#1 sensores opticos
 
Transistores
TransistoresTransistores
Transistores
 
Exposicion hdb3.pptx
Exposicion hdb3.pptxExposicion hdb3.pptx
Exposicion hdb3.pptx
 
Introducción a la Robótica Móvil
Introducción a la Robótica MóvilIntroducción a la Robótica Móvil
Introducción a la Robótica Móvil
 
Sistema de sujecion
Sistema de sujecionSistema de sujecion
Sistema de sujecion
 
08 protocolos-hart
08 protocolos-hart08 protocolos-hart
08 protocolos-hart
 
Practica Filtro pasa bajos
Practica Filtro pasa bajosPractica Filtro pasa bajos
Practica Filtro pasa bajos
 
Medicion de tasa de error binaria (ber)
Medicion de tasa de error binaria (ber)Medicion de tasa de error binaria (ber)
Medicion de tasa de error binaria (ber)
 
Deteccion y Correccion de errores
Deteccion y Correccion de erroresDeteccion y Correccion de errores
Deteccion y Correccion de errores
 
Comunicaciòn satelital
Comunicaciòn satelitalComunicaciòn satelital
Comunicaciòn satelital
 
Memorias semiconductoras
Memorias semiconductorasMemorias semiconductoras
Memorias semiconductoras
 
Modulación AM - PM - FM
Modulación AM - PM - FMModulación AM - PM - FM
Modulación AM - PM - FM
 
Serial Communication Interfaces
Serial Communication InterfacesSerial Communication Interfaces
Serial Communication Interfaces
 
Cmos
CmosCmos
Cmos
 
Cuadro comparativo de familias logicas
Cuadro comparativo de familias logicasCuadro comparativo de familias logicas
Cuadro comparativo de familias logicas
 
Trabajo sobre Flip Flop
Trabajo sobre Flip FlopTrabajo sobre Flip Flop
Trabajo sobre Flip Flop
 

En vedette

Manejo de perifericos para microcontroladore
Manejo de perifericos para microcontroladoreManejo de perifericos para microcontroladore
Manejo de perifericos para microcontroladore
Luis Zurita
 
Guía rápidalcd y teclado
Guía rápidalcd y tecladoGuía rápidalcd y teclado
Guía rápidalcd y teclado
Luis Zurita
 
MANEJO DE PERIFERICOS PARA MICROCONTROLADORES EN C
MANEJO DE PERIFERICOS PARA MICROCONTROLADORES EN CMANEJO DE PERIFERICOS PARA MICROCONTROLADORES EN C
MANEJO DE PERIFERICOS PARA MICROCONTROLADORES EN C
Luis Zurita
 
Curso de lenguaje c para microcontroladores pic dia 1(2)(2)(2)(2)(2)(2)
Curso de lenguaje c para microcontroladores pic dia 1(2)(2)(2)(2)(2)(2)Curso de lenguaje c para microcontroladores pic dia 1(2)(2)(2)(2)(2)(2)
Curso de lenguaje c para microcontroladores pic dia 1(2)(2)(2)(2)(2)(2)
Franz Amaya
 
MICROCONTROLADORES II EN C. TEMA 2
MICROCONTROLADORES II EN C. TEMA 2MICROCONTROLADORES II EN C. TEMA 2
MICROCONTROLADORES II EN C. TEMA 2
Luis Zurita
 
Microcontroladores ii en c. tema 4
Microcontroladores ii en c. tema 4Microcontroladores ii en c. tema 4
Microcontroladores ii en c. tema 4
Luis Zurita
 
MICROCONTROLADORES II EN C. TEMA 3
MICROCONTROLADORES II EN C. TEMA 3MICROCONTROLADORES II EN C. TEMA 3
MICROCONTROLADORES II EN C. TEMA 3
Luis Zurita
 
Guía de ejercicios resueltos tema 2
Guía de ejercicios resueltos tema 2Guía de ejercicios resueltos tema 2
Guía de ejercicios resueltos tema 2
Luis Zurita
 
TALLER NORMAS APA
TALLER NORMAS APATALLER NORMAS APA
TALLER NORMAS APA
Luis Zurita
 
Contador ascendente con interruptor pic16f877a
Contador ascendente con interruptor pic16f877aContador ascendente con interruptor pic16f877a
Contador ascendente con interruptor pic16f877a
bus3
 
26176947 tutorial-v-escritura-en-lcd-usando-teclado-matricial
26176947 tutorial-v-escritura-en-lcd-usando-teclado-matricial26176947 tutorial-v-escritura-en-lcd-usando-teclado-matricial
26176947 tutorial-v-escritura-en-lcd-usando-teclado-matricial
Gabriel Bravo Rojas
 
Manejo de teclado 4x4 con pic 16 f84a
Manejo de teclado 4x4 con pic 16 f84aManejo de teclado 4x4 con pic 16 f84a
Manejo de teclado 4x4 con pic 16 f84a
xeleta
 

En vedette (20)

Micro2 tema 4
Micro2 tema 4Micro2 tema 4
Micro2 tema 4
 
Micro2 tema 1
Micro2 tema 1Micro2 tema 1
Micro2 tema 1
 
Micro2 tema 3
Micro2 tema 3Micro2 tema 3
Micro2 tema 3
 
Manejo de perifericos para microcontroladore
Manejo de perifericos para microcontroladoreManejo de perifericos para microcontroladore
Manejo de perifericos para microcontroladore
 
Guía rápidalcd y teclado
Guía rápidalcd y tecladoGuía rápidalcd y teclado
Guía rápidalcd y teclado
 
MANEJO DE PERIFERICOS PARA MICROCONTROLADORES EN C
MANEJO DE PERIFERICOS PARA MICROCONTROLADORES EN CMANEJO DE PERIFERICOS PARA MICROCONTROLADORES EN C
MANEJO DE PERIFERICOS PARA MICROCONTROLADORES EN C
 
Micro2 tema 2
Micro2 tema 2Micro2 tema 2
Micro2 tema 2
 
Curso Micro Tema 3 2
Curso Micro Tema 3 2Curso Micro Tema 3 2
Curso Micro Tema 3 2
 
Curso de lenguaje c para microcontroladores pic dia 1(2)(2)(2)(2)(2)(2)
Curso de lenguaje c para microcontroladores pic dia 1(2)(2)(2)(2)(2)(2)Curso de lenguaje c para microcontroladores pic dia 1(2)(2)(2)(2)(2)(2)
Curso de lenguaje c para microcontroladores pic dia 1(2)(2)(2)(2)(2)(2)
 
Curso Micro Tema 3
Curso Micro Tema 3Curso Micro Tema 3
Curso Micro Tema 3
 
MICROCONTROLADORES II EN C. TEMA 2
MICROCONTROLADORES II EN C. TEMA 2MICROCONTROLADORES II EN C. TEMA 2
MICROCONTROLADORES II EN C. TEMA 2
 
Microcontroladores ii en c. tema 4
Microcontroladores ii en c. tema 4Microcontroladores ii en c. tema 4
Microcontroladores ii en c. tema 4
 
MICROCONTROLADORES II EN C. TEMA 3
MICROCONTROLADORES II EN C. TEMA 3MICROCONTROLADORES II EN C. TEMA 3
MICROCONTROLADORES II EN C. TEMA 3
 
Guía de ejercicios resueltos tema 2
Guía de ejercicios resueltos tema 2Guía de ejercicios resueltos tema 2
Guía de ejercicios resueltos tema 2
 
Microcontroladores
MicrocontroladoresMicrocontroladores
Microcontroladores
 
TALLER NORMAS APA
TALLER NORMAS APATALLER NORMAS APA
TALLER NORMAS APA
 
Contador ascendente con interruptor pic16f877a
Contador ascendente con interruptor pic16f877aContador ascendente con interruptor pic16f877a
Contador ascendente con interruptor pic16f877a
 
26176947 tutorial-v-escritura-en-lcd-usando-teclado-matricial
26176947 tutorial-v-escritura-en-lcd-usando-teclado-matricial26176947 tutorial-v-escritura-en-lcd-usando-teclado-matricial
26176947 tutorial-v-escritura-en-lcd-usando-teclado-matricial
 
Manejo de teclado 4x4 con pic 16 f84a
Manejo de teclado 4x4 con pic 16 f84aManejo de teclado 4x4 con pic 16 f84a
Manejo de teclado 4x4 con pic 16 f84a
 
Microcontroladores 5 – comunicación (SPI & I2C)
Microcontroladores 5 – comunicación (SPI & I2C)Microcontroladores 5 – comunicación (SPI & I2C)
Microcontroladores 5 – comunicación (SPI & I2C)
 

Similaire à Micro2 tema 5

Comunicación RS-232
Comunicación RS-232Comunicación RS-232
Comunicación RS-232
Rubén Loredo
 

Similaire à Micro2 tema 5 (20)

Usart 3
Usart 3Usart 3
Usart 3
 
Comunicación RS-232
Comunicación RS-232Comunicación RS-232
Comunicación RS-232
 
Adc y usart pic16 f887
Adc y usart pic16 f887Adc y usart pic16 f887
Adc y usart pic16 f887
 
Puertoserial[1]
Puertoserial[1]Puertoserial[1]
Puertoserial[1]
 
Hoja de datos USB2TTL
Hoja de datos USB2TTLHoja de datos USB2TTL
Hoja de datos USB2TTL
 
Curso de microcontroladores capitulo 12
Curso de microcontroladores capitulo 12Curso de microcontroladores capitulo 12
Curso de microcontroladores capitulo 12
 
DIAGRAMAS DE UNA ALARMA
DIAGRAMAS DE UNA ALARMADIAGRAMAS DE UNA ALARMA
DIAGRAMAS DE UNA ALARMA
 
Comunicación Serial
Comunicación SerialComunicación Serial
Comunicación Serial
 
Unidad V
Unidad VUnidad V
Unidad V
 
Txusart
TxusartTxusart
Txusart
 
Módulo EUSART del PIC16F887
Módulo EUSART del PIC16F887Módulo EUSART del PIC16F887
Módulo EUSART del PIC16F887
 
Rs232
Rs232Rs232
Rs232
 
EL_RS232.pptx
EL_RS232.pptxEL_RS232.pptx
EL_RS232.pptx
 
Lab2 bluetooth.docx
Lab2 bluetooth.docxLab2 bluetooth.docx
Lab2 bluetooth.docx
 
Pic16 f877
Pic16 f877Pic16 f877
Pic16 f877
 
Protocolo comunicación serial
Protocolo comunicación serialProtocolo comunicación serial
Protocolo comunicación serial
 
Reporte practica 4
Reporte practica 4Reporte practica 4
Reporte practica 4
 
Curso de microcontroladores capitulo 03
Curso de microcontroladores capitulo 03Curso de microcontroladores capitulo 03
Curso de microcontroladores capitulo 03
 
pre4_2.2.docx
pre4_2.2.docxpre4_2.2.docx
pre4_2.2.docx
 
motor paso a paso
 motor paso a paso motor paso a paso
motor paso a paso
 

Plus de Luis Zurita

PROTOCOLO MODBUS
PROTOCOLO MODBUSPROTOCOLO MODBUS
PROTOCOLO MODBUS
Luis Zurita
 
Grupos micro2 13
Grupos micro2 13Grupos micro2 13
Grupos micro2 13
Luis Zurita
 
Notas def electronica
Notas def electronicaNotas def electronica
Notas def electronica
Luis Zurita
 
Notas proyecto3 iyc
Notas proyecto3 iycNotas proyecto3 iyc
Notas proyecto3 iyc
Luis Zurita
 
Notas definitivas iyc2013
Notas definitivas iyc2013Notas definitivas iyc2013
Notas definitivas iyc2013
Luis Zurita
 
Proyecto 2 electronica
Proyecto 2 electronicaProyecto 2 electronica
Proyecto 2 electronica
Luis Zurita
 
Acumuladas electronica
Acumuladas electronicaAcumuladas electronica
Acumuladas electronica
Luis Zurita
 
Proyecto2 notas iyc2013
Proyecto2 notas iyc2013Proyecto2 notas iyc2013
Proyecto2 notas iyc2013
Luis Zurita
 
Acumuladas iyc2013
Acumuladas iyc2013Acumuladas iyc2013
Acumuladas iyc2013
Luis Zurita
 
Guía de ejercicios resueltos y propuestos tema 4
Guía de ejercicios resueltos y propuestos tema 4Guía de ejercicios resueltos y propuestos tema 4
Guía de ejercicios resueltos y propuestos tema 4
Luis Zurita
 
Guía rápida tmr0 e interrupciones
Guía rápida tmr0 e interrupcionesGuía rápida tmr0 e interrupciones
Guía rápida tmr0 e interrupciones
Luis Zurita
 

Plus de Luis Zurita (20)

PROTOCOLO MODBUS
PROTOCOLO MODBUSPROTOCOLO MODBUS
PROTOCOLO MODBUS
 
Pevmicroi ieo
Pevmicroi ieoPevmicroi ieo
Pevmicroi ieo
 
Pevmicroii13 2
Pevmicroii13 2Pevmicroii13 2
Pevmicroii13 2
 
Pevmicro1 t2 13
Pevmicro1 t2 13Pevmicro1 t2 13
Pevmicro1 t2 13
 
Pev electronica
Pev electronicaPev electronica
Pev electronica
 
Grupos micro2 13
Grupos micro2 13Grupos micro2 13
Grupos micro2 13
 
Pevmicro1 t2 13
Pevmicro1 t2 13Pevmicro1 t2 13
Pevmicro1 t2 13
 
Pevmicroii13 2
Pevmicroii13 2Pevmicroii13 2
Pevmicroii13 2
 
Notas def electronica
Notas def electronicaNotas def electronica
Notas def electronica
 
Notas proyecto3 iyc
Notas proyecto3 iycNotas proyecto3 iyc
Notas proyecto3 iyc
 
Notas definitivas iyc2013
Notas definitivas iyc2013Notas definitivas iyc2013
Notas definitivas iyc2013
 
Proyecto 2 electronica
Proyecto 2 electronicaProyecto 2 electronica
Proyecto 2 electronica
 
Acumuladas electronica
Acumuladas electronicaAcumuladas electronica
Acumuladas electronica
 
Pevmicro2013
Pevmicro2013Pevmicro2013
Pevmicro2013
 
Proyecto2 notas iyc2013
Proyecto2 notas iyc2013Proyecto2 notas iyc2013
Proyecto2 notas iyc2013
 
Acumuladas iyc2013
Acumuladas iyc2013Acumuladas iyc2013
Acumuladas iyc2013
 
TMR0 Y RB0_INT
TMR0 Y RB0_INTTMR0 Y RB0_INT
TMR0 Y RB0_INT
 
Guía de ejercicios resueltos y propuestos tema 4
Guía de ejercicios resueltos y propuestos tema 4Guía de ejercicios resueltos y propuestos tema 4
Guía de ejercicios resueltos y propuestos tema 4
 
Guía rápida tmr0 e interrupciones
Guía rápida tmr0 e interrupcionesGuía rápida tmr0 e interrupciones
Guía rápida tmr0 e interrupciones
 
Eomicro2013
Eomicro2013Eomicro2013
Eomicro2013
 

Dernier

6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria
Wilian24
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
EliaHernndez7
 
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docxTALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
NadiaMartnez11
 

Dernier (20)

Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
 
Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024
 
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLAACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
 
6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria
 
Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024
 
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
 
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptxCONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
 
Power Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptxPower Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptx
 
SESION DE PERSONAL SOCIAL. La convivencia en familia 22-04-24 -.doc
SESION DE PERSONAL SOCIAL.  La convivencia en familia 22-04-24  -.docSESION DE PERSONAL SOCIAL.  La convivencia en familia 22-04-24  -.doc
SESION DE PERSONAL SOCIAL. La convivencia en familia 22-04-24 -.doc
 
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfFeliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
 
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docxTALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
 
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPC
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPCTRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPC
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPC
 
Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024
 
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).pptPINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
 
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdfPlan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
 
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docxPLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
 
La Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración AmbientalLa Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración Ambiental
 
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxLA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
 

Micro2 tema 5

  • 1. MICROCONTROLADORES II MÓDULO USARTMÓDULO USART (Comunicación Serial Asíncrona) TEMA 5 PROF. LUIS ZURITA
  • 2. INTRODUCCIÓN • En los sistemas con microcontroladores puede existir la necesidad de conectarse con el mundo exterior, y esto se logra mediante las comunicaciones seriales y paralelas. • En este tema se tratará la comunicación serial• En este tema se tratará la comunicación serial asíncrona mediante el módulo USART. Dicha comunicación permite establecer un enlace de comunicación tipo Full Duplex. Dispositivo Externo TX TX RX RX GND RC6/TX RC7/RX µC Prof. Luis Zurita Microcontroladores II
  • 3. PROTOCOLO RS-232 • Este protocolo es el utilizado por los microcontroladores y su módulo USART. • Cada dato se envía independientemente de los demás. • Consta de 8 ó 9 bits de datos• Consta de 8 ó 9 bits de datos • Consta de 1 bit de Inicio (START) • Consta de 1 bit de Parada (STOP) BIT INICIO BIT PARADA DATOLSB MSB Prof. Luis Zurita Microcontroladores II
  • 4. MÓDULO USART 1. Circuito de Muestreo (RC7/RX) 2. Generador de Baudios La frecuencia en baudios (bits por segundos) es la velocidad a la que se realiza la transferencia de datos. Valores normalizados: 330, 600, 1200, 2400,datos. Valores normalizados: 330, 600, 1200, 2400, 4800, 9600, 19200, 38400, otros. • El USART tiene un generador de Frecuencia en baudios, BRG. Su valor es controlado por el Registro SPBRG. • La frecuencia en baudios del generador depende del bit BRGH del registro TXSTA (2). Prof. Luis Zurita Microcontroladores II
  • 5. TRANSMISOR ASÍNCRONO • El dato a transmitirse se coloca en TXREG. De inmediato pasa al registro de desplazamiento TSR, que empieza a sacar los bits secuencialmente, según la frecuencia establecida. Se incluye antes de los datos el bit de Inicio. Y después de los bits de datos, se agrega el bit de parada.se agrega el bit de parada. • Como podemos ver, el corazón del transmisor lo constituye el TSR, cuyo contenido es cargado con el Dato a transmitir desde el TXREG. • Lo va sacando bit a bit desde el LSB hasta el MSB. Prof. Luis Zurita Microcontroladores II
  • 6. TRANSMISOR ASÍNCRONO Prof. Luis Zurita Microcontroladores II
  • 7. TX9D TX9=1 1 bit TXREG REGISTRO DE DESPLAZAMIENTO DE SALIDA 8 bits RC6/TX TX9D: 9 bits de datos transmitidos. Puede ser el bit de paridad D0 D1 D2 D3 D4 D5 D6 D7 1 10 Bit start Bit stop D0 D1 D2 D3 D4 D5 D6 D7 1 10 Bit start Bit stopTX9D Tramas a enviarProf. Luis Zurita Microcontroladores II
  • 8. RECEPTOR ASÍNCRONO • Los datos se reciben en serie, bit a bit, por el pin RC7/RX, y se van introduciendo secuencialmente en el registro de desplazamiento RSR, que opera a una frecuencia 16 veces más rápida que la de trabajo. • Después de recibir el bit de Stop los datos acumulados en este registro se cargan en el de datos RCREG (si está vacío). Cuando la transferencia se ha completado, el bit RCIF (PIR1,5) registro se cargan en el de datos RCREG (si está vacío). Cuando la transferencia se ha completado, el bit RCIF (PIR1,5) se pone a uno. La interrupción puede habilitarse o deshabilitarse colocando a uno o borrando, respectivamente, el bit RCIE (PIE1,5). El bit RCIF se borra cuando el registro RCREG se ha leído (se "vacía" el registro). Prof. Luis Zurita Microcontroladores II
  • 9. RECEPTOR ASÍNCRONO Prof. Luis Zurita Microcontroladores II
  • 10. REGISTRO DE DESPLAZAMIENTO DE SALIDA 8 bits RC7/RX 1 bit Recepción de datos RX9=1 Buffer RX9D RCREG FIFO Prof. Luis Zurita Microcontroladores II
  • 11. Módulo USART en C • Las siguientes directivas permiten una configuración genérica del módulo USART: #USE RS232 (opciones) Esta directiva permite configurar varios parámetros del módulo USART, tales como la velocidad de transmisión, pines utilizados, entre otros. Se puede modificar en cualquier parte del programa, pero siempre después de haber definido la directiva #USE DELAY.directiva #USE DELAY. Esta directiva habilita el uso de funciones tales como GETCH, PUTCHAR y PRINTF. Permite su uso en dispositivos que no poseen módulo USART mediante software USART. Cuando se utilizan dispositivos con USART, si no se puede alcanzar una tasa de baudios dentro del 3 % del valor deseado utilizando la frecuencia de reloj actual, se generará un error. Prof. Luis Zurita Microcontroladores II
  • 12. Módulo USART en C BAUD=X Velocidad en Baudios XMIT=pin Pin de transmisión RCV= pin Pin de recepción FORCE_SW Usa un software UART en lugar del hardware, aún cuando se especifican los pines del hardware.hardware. RESTART_WDT Hace que la función GETC ( ) ponga a cero el WDT mientras espera un carácter. BRGH1OK Permite velocidades de transmisión bajas en chips que tienen problemas de transmisión. Prof. Luis Zurita Microcontroladores II
  • 13. Módulo USART en C ENABLE= pin El pin especificado estará a nivel alto durante la transmisión. Utilizado en transmisión 485. DEBUGGER Permite depuración a través del ICD. El pin por defecto es el B3; INVERT Invierte la polaridad de los pines serie (normalmente no es necesario con el(normalmente no es necesario con el convertidor de nivel, como el MAX232). No puede usarse con el USART interno. PARITY= X Donde X es N,E u O BITS= X Donde X es 5-9 (no puede usarse 5-7 con el USART interno). FLOAT_HIGH Se utiliza para las salidas de colector abierto. Prof. Luis Zurita Microcontroladores II
  • 14. Módulo USART en C ERRORS Indica al compilador que guarde los errores recibidos en la variable RS232_ERRORS para restablecerlos cuando se producen. SAMPLE_EARLY No se puede utilizar con el USART interno. Provoca que el muestreo del dato a través de la función GETC ( ) se realice al principio de un bit de tiempo. RETURN= pin Para FLOAT_HIGH y MULTI_MASTER, este pin se usa para leer la señal de retorno. Por defecto, para FLOAT_HIGH es XMIT y para MULTIMASTER es RCV.para MULTIMASTER es RCV. MULTI_MASTER Usa el pin de RETURN para determinar si otro master en el bus está transmitiendo al mismo tiempo. Si se detecta una colisión, el bit 6 se pone a 1 en RS232_ERRORS y todos los posibles PUTC ( ) son ignorados hasta que el bit 6 esté a 0. La señal es comprobada al final y al principio de cada bit de tiempo. No se puede utilizar con USART interno. LONG_DATA Permite manejar INT16 a las funciones GETC ( ) y PUTC ( ). En formatos de datos de 9 bits. DISABLE_INTS Provoca la deshabilitación de interrupciones cuando se ejecuta GETC ( ) y PUTC ( ) evitando distorsiones en los datos. Prof. Luis Zurita Microcontroladores II
  • 15. Módulo USART en C STOP= x Número de bits de stop (por defecto 1) TIMEOUT= x Para establecer el tiempo que GETC ( ) espera un carácter (en ms). Si no se recibe carácter en este tiempo, el RS232_ERRORS se pone a 0. SYNC_SLAVE Provoca una línea RS232 en modo esclavo síncrono, haciendo el pin de recepción como entrada de reloj y la de transmisión comoentrada de reloj y la de transmisión como entrada/salida de datos. SYNC_MASTER Provoca una línea RS232 en modo maestro síncrono, haciendo el pin de recepción como salida de reloj y la de transmisión como entrada/salida de datos. UART1 Configura el XMIT y RCV para el USART1 UART2 Configura el XMIT y RCV para el USART2 Prof. Luis Zurita Microcontroladores II
  • 16. Ejemplos: #use delay (clock=20000000); #use rs232 (BAUD=9600 , XMIT=PIN_C6 , RCV=PIN_C7 , BITS=8) #use rs232 (BAUD=9600 , XMIT=PIN_A2 , RCV=PIN_A3) Setup_uart(baud) baud es una constante que define la velocidad. Un 1 enciende el USART y un 0 lo apaga. Con cualquier valor de velocidad, el USART se enciende. Módulo USART en C se enciende. set_uart_speed (baud) Idéntica a la función anterior. Ejemplo: // Se establece la velocidad mediante la combinación de los pines B0 y B1: switch (input_b ( ) & 3){ case 0: set_uart_speed(2400); break; case 1: set_uart_speed(4800); break; case 2: set_uart_speed(9600); break; case 3: set_uart_speed(19200); break; Prof. Luis Zurita Microcontroladores II
  • 17. Transmisión de datos: putc (cdata) putchar (cdata) cdata es un carácter de 8 bits. Esta función envía un carácter mediante el pin XMIT. La directiva #USE RS232 debe situarse siempre antes de utilizar esta función. Módulo USART en C debe situarse siempre antes de utilizar esta función. puts (string) string: cadena de caracteres constante o matriz de caracteres terminada con un 0. La función puts ( ) manda los caracteres de la cadena, uno a uno, a través del bus RS232 utilizando la función PUTC ( ); detrás de la cadena envía un RETURN (13) y un retorno de carro (10) Prof. Luis Zurita Microcontroladores II
  • 18. printf (fname, cstring, values…) cstring: es una cadena de caracteres (constante) o matriz de caracteres terminada con un cero. fname: las funciones a utilizar para escribir la cadena indicada; por defecto se utiliza la función PUTC ( ), que permite escribir en el bus RS232. values: valores a incluir en la cadena separados por comas; Módulo USART en C values: valores a incluir en la cadena separados por comas; se debe indicar %nt. El formato es %nt, donde n es opcional y puede ser: 1-9 para especificar cuantos caracteres deben ser especificados; 01-09 para indicar la cantidad de ceros a la izquierda. 1.1-9.9 para coma flotante. Prof. Luis Zurita Microcontroladores II
  • 19. Módulo USART en C t puede indicar: c Carácter s Cadena o carácter u Entero sin signo d Entero con signo Lu Entero sin signo Ld Entero largo con signoLd Entero largo con signo x Entero hexadecimal (minúscula) X Entero hexadecimal (mayúscula) Lx Entero largo hexadecimal (minúscula) LX Entero largo hexadecimal (mayúscula) f Flotante con truncado g Flotante con redondeo e Flotante en formato exponencial w Entero sin signo con decimales insertados. La 1ra cifra indica el total, la 2da el número de decimales. Prof. Luis Zurita Microcontroladores II
  • 20. Recepción de datos: value= getc ( ); value= getch ( ); value= getchar ( ); value (valor) es un carácter de 8 bits. Espera recibir un carácter por la línea RS232 y devuelve su valor. En los dispositivos con USART interno, se pueden almacenar Módulo USART en C dispositivos con USART interno, se pueden almacenar hasta tres caracteres; para evitar esperas se puede utilizar la función KBHIT ( ). valor= kbhit ( ); valor es 0 (FALSE) si GETC ( ) debe esperar a que llegue un carácter; 1 (TRUE) si ya hay un carácter listo para ser leído por la función GETC ( ). Prof. Luis Zurita Microcontroladores II
  • 21. Ejemplo 1. Enviar los datos del 0 al 10, en modo asíncrono, entre dos PICS. Visualizar con un LCD, los datos enviados y los datos recibidos; la recepción del dato deberá ser por interrupción del USART. // PIC MAESTRO #include <16F877.h> #FUSES XT,NOWDT #use delay(clock=4000000) #use rs232(baud=9600, xmit=pin_c6, rcv=pin_c7) #include <LCD.C> void main() { int valor;int valor; lcd_init(); while(1){ for (valor=0;valor<=10;valor++) { PUTC(valor); // Envia valor printf(lcd_putc,"fENVIANDOn"); printf(lcd_putc,"%1D",valor); delay_ms(2000); } } } Prof. Luis Zurita Microcontroladores IIProf. Luis Zurita Microcontroladores II
  • 22. // PIC ESCLAVO #include <16F877.h> #FUSES XT,NOWDT #use delay(clock=4000000) #use rs232(baud=9600, xmit=pin_c6, rcv=pin_c7, bits=8) #include <LCD.C> #BYTE TRISA=0X85 #BYTE PORTA=0X05 int valor; #int_RDA RDA_isr() { valor=GETC();} //Recibe valorvalor=GETC();} //Recibe valor void main() { bit_clear(TRISA,0); lcd_init(); enable_interrupts(INT_RDA); enable_interrupts(GLOBAL); for (;;) { lcd_gotoxy(1,1); printf(lcd_putc,"recibiendo=%1D",valor); } } Prof. Luis Zurita Microcontroladores II
  • 23. Con el “Virtual Terminal”, presionando el botón derecho del mouse y seleccionando Hex display mode, podemos visualizar los datos que se están recibiendo. Prof. Luis Zurita Microcontroladores II
  • 24. La norma RS232 • Es la más básica de las comunicaciones serie. Comunica un equipo terminal de datos (DTE) con el equipo de comunicación de datos (DCE). • Las características eléctricas de la señal en esta norma establecen que la longitud máxima entre dos equipos no debe ser superior a 15 metros, sin embargo, el autor hadebe ser superior a 15 metros, sin embargo, el autor ha realizado pruebas de campo que permiten alcanzar los 30 metros. La velocidad máxima de transmisión es de 20 kbps. Los niveles lógicos no son compatibles con los niveles TTL, ya que se situan dentro de los siguientes rangos: 1 lógico entre -3 v a -15 v y 0 lógico entre +3 v a +15 v. • Se utilizan conectores DB9 y DB25. Prof. Luis Zurita Microcontroladores II
  • 25. • Para una comunicación full duplex desde el USART del PIC, se debe conectar un mínimo número de señales, a saber: TXD, RXD y tierra (GND). Los PICS utilizan señal TTL en el módulo USART, por lo que debe utilizarse un convertidor de niveles a RS232, como el circuito integrado MAX232 La norma RS232 como el circuito integrado MAX232 MAX232 RX RX TX TX GND GND NIVELES TTL NIVELES RS232 Prof. Luis Zurita Microcontroladores II
  • 26. Circuito integrado MAX232 Prof. Luis Zurita Microcontroladores II
  • 27. • En la actualidad, las computadoras desde el año 1996 han ido erradicando el puerto serie con el conector DB9 y DB25, por el puerto USB (Universal Serial Port). • Una solución ha sido la implementación de cables de conversión USB-232. • Sin embargo, los microcontroladores de la familia PIC18, integran un módulo USB para comunicaciones como protocolo de comunicación. PIC Módulo USART PIC Módulo USB Convertidor USB-232 Familia PIC18Familia PIC16F87X Prof. Luis Zurita Microcontroladores II
  • 28. • La selección de las órdenes se realiza mediante un teclado y se visualizan en una pantalla LCD en el Maestro. • Si se presiona 1, el Maestro envía el dato: 17H, el esclavo activa el led Rojo y muestra en una pantalla LCD: ORDEN1. • Si se presiona 4, el Maestro envía el dato: 2DH, el esclavo activa el led amarillo y muestra en una Ejemplo 2. Realizar un sistema Maestro-Esclavo multi- selector. • Si se presiona 4, el Maestro envía el dato: 2DH, el esclavo activa el led amarillo y muestra en una pantalla LCD: ORDEN2. • Si se presiona 7 el Maestro envía el dato: 64H, el esclavo activa el led verde y muestra en una pantalla LCD: ORDEN3. • Si se presiona cualquier otra tecla, el Maestro envía el dato: C2H, el esclavo desactiva todos los leds y muestra en una pantalla LCD: TODOS OFF. Prof. Luis Zurita Microcontroladores II
  • 29. #include <16f877.h> #fuses XT,NOWDT,NOPROTECT,NOLVP #use delay (CLOCK = 4000000) #use rs232(baud=9600, xmit=pin_c6, rcv=pin_c7) #define use_portb_kbd TRUE #define use_portd_lcd TRUE #include <lcd.c> #include <kbd.c> if (k!=0) { if (x==1) {valor=0x17; PUTC(valor); printf(lcd_putc,"fORDEN 1");} else if (x==4) {valor=0x2D; PUTC(valor); printf(lcd_putc,"fORDEN 2");} else if (x==7) Ejemplo 2. Sistema Maestro-Esclavo multi- selector. Programa del Maestro: void main() { char k; int x; int valor; lcd_init(); kbd_init(); port_b_pullups(TRUE); printf(lcd_putc,"fPRESIONE FUNCION"); OUTPUT_C(0x00); while (TRUE) { k=kbd_getc(); x=k-48; else if (x==7) {valor=0x64; PUTC(valor); printf(lcd_putc,"fORDEN 3");} else {valor=0xC2; PUTC(valor); printf(lcd_putc,"fTODOS OFF"); delay_ms(1000);} } } } Prof. Luis Zurita Microcontroladores II
  • 30. #include <16f877.h> #fuses XT,NOWDT #use delay(CLOCK=4000000) #use rs232(baud=9600, xmit=pin_c6, rcv=pin_c7, bits=8) #define use_portd_lcd TRUE #include <lcd.c> int valor; #int_RDA RDA_isr(void){ delay_ms(50);} else if (valor==0x2D) {printf(lcd_putc,"fORDEN 2"); output_low (PIN_C0); output_high (PIN_C1); output_low (PIN_C2); delay_ms(50);} else if (valor==0X64) {printf(lcd_putc,"fORDEN 3"); output_low (PIN_C0); output_low (PIN_C1); Ejemplo 2. Sistema Maestro-Esclavo multi- selector. Programa del Esclavo: RDA_isr(void){ valor=GETC();} void main() { set_tris_c(0x80); lcd_init(); enable_interrupts(INT_RDA); enable_interrupts(GLOBAL); while (TRUE) { if (valor==0x17) {printf(lcd_putc,"fORDEN 1"); output_high (PIN_C0); output_low (PIN_C1); output_low (PIN_C2); output_low (PIN_C1); output_high (PIN_C2); delay_ms(50);} else if (valor==0XC2) {printf(lcd_putc,"fTODOS OFF"); output_low (PIN_C0); output_low (PIN_C1); output_low (PIN_C2); delay_ms(50);} else{ } } } Prof. Luis Zurita Microcontroladores II
  • 31. Ejemplo 2. Sistema Maestro-Esclavo multi- selector. Simulación del Programa: Prof. Luis Zurita Microcontroladores II
  • 32. Ejemplo 2. Sistema Maestro-Esclavo multi- selector. Simulación del Programa: Prof. Luis Zurita Microcontroladores II
  • 33. PROGRAMA DEL PIC MAESTRO: #include <16F877A.h> #device ADC=10 #FUSES XT,NOWDT,NOPROTECT,NOLVP #use standard_io(c) #use delay(clock=4000000) #use rs232(baud=9600, xmit=pin_c6, for (;;) { set_adc_channel(0); // Conversión //de la señal del potenciómetro delay_ms(10); // Espera el TADQ valor = read_adc(); // Lee el valor de //la conversión p=valor*0.098; // Factor escalar Ejemplo 3. Realizar una conversión A/D de una señal proveniente de un potenciómetro en un PIC16F877, y enviarlo al puerto serie de una computadora. Visualizar los datos en LABVIEW (Opcional), además de poder controlar el puerto B de un PIC16F873 desde la computadora. #use rs232(baud=9600, xmit=pin_c6, rcv=pin_c7, bits=8, parity=N) #BYTE TRISA=0X85 #BYTE PORTA=0X05 void main() { int16 valor; int p; setup_adc_ports(AN0); setup_adc(ADC_CLOCK_INTERNAL); p=valor*0.098; // Factor escalar //para pasar de 0-1023 a 0-100 putc(p); delay_ms(200); //Tiempo de //muestreo } } Prof. Luis Zurita Microcontroladores II
  • 34. PROGRAMA DEL PIC ESCLAVO: #include <16F873A.h> #FUSES XT,NOWDT,NOPROTECT,NOLVP #use standard_io(c) #use fast_io(b) #use delay(clock=4000000) void main() { set_tris_b(0x00); enable_interrupts(INT_RDA); enable_interrupts(GLOBAL); while (1){ Ejemplo 3. Realizar una conversión A/D de una señal proveniente de un potenciómetro en un PIC16F877, y enviarlo al puerto serie de una computadora. Visualizar los datos en LABVIEW (Opcional), además de poder controlar el puerto B de un PIC16F873 desde la computadora. #use delay(clock=4000000) #use rs232(baud=9600, xmit=pin_c6, rcv=pin_c7, bits=8, parity=N) int valor; #int_RDA //Interrupción por RX de datos RDA_isr(void){ valor=GETC();} while (1){ output_b(valor);} } Prof. Luis Zurita Microcontroladores II
  • 35. Información obtenida en LABVIEW Prof. Luis Zurita Microcontroladores II
  • 36. Información obtenida en LABVIEW Prof. Luis Zurita Microcontroladores II
  • 37. Puerto Serie en PROTEUS • El ISIS del PROTEUS proporciona un componente que permite la simulación a través del puerto serie: COMPIM. • Utilizando este componente no se necesita colocar un MAX232 para la simulación, debido a que el propio componente gestiona la comunicación con el puerto decomponente gestiona la comunicación con el puerto de la computadora. • Podemos entonces comunicarnos con nuestra propia computadora. Si se tiene 2 puertos serie o 1 serie y varios USB, con su respectivo cable convertidor, y así manejar los datos que provienen del PIC con diferentes programas de aplicación como Visual C, LABVIEW, entre otros. Prof. Luis Zurita Microcontroladores II
  • 38. ERROR TXD 3 RXD 2 CTS 8 RTS 7 DSR 6 DTR 4 DCD 1 RI 9 P1 Puerto Serie en PROTEUS ERROR COMPIM La configuración del puerto se realiza como cualquier otro componente y se pueden cambiar virtualmente todas las propiedades de un puerto serie: número de puerto, velocidad, paridad, número de bits, entre otros. Prof. Luis Zurita Microcontroladores II
  • 39. Para este ejercicio, se envían los datos del PIC al COMPIM 1. Para simular que los datos se reciben en otro puerto (la computadora), se utiliza otro simulador de puerto (COMPIM 2): #include <16F877.h> #device ADC=10 #FUSES XT,NOWDT,NOPROTECT,NOLVP #use delay(clock=4000000) #use rs232(baud=9600, xmit=pin_c6, rcv=pin_c7, bits=8, parity=N) Ejemplo 4. Realizar una conversión A/D de una señal proveniente de un potenciómetro y enviarlo al puerto serie de una computadora. #use rs232(baud=9600, xmit=pin_c6, rcv=pin_c7, bits=8, parity=N) #include <LCD.C> void main() { int16 valor=0; float p=0.0; setup_adc_ports(AN0); setup_adc(ADC_CLOCK_INTERNAL); lcd_init(); Prof. Luis Zurita Microcontroladores II
  • 40. Continuación del ejercicio: for (;;) { set_adc_channel(0); // Conversión de la señal del potenciómetro delay_us(10); // Espera el TADQ valor = read_adc(); // Lee el valor de la conversión p =5.0 * valor / 1024.0;// Convierte el valor decimal a voltaje //Es lo mismo que utilizar p=0.004883*valor; Ejemplo 4. Realizar una conversión A/D de una señal proveniente de un potenciómetro y enviarlo al puerto serie de una computadora. //Es lo mismo que utilizar p=0.004883*valor; printf(lcd_putc, "fADC =%LUn",valor); printf(lcd_putc,"VOLTAJE = %01.2fV",p); printf("ADC = %4ld ",valor); //Envío de información a la computadora printf("VOLTAJE = %01.2fVr", p); // El r permite cambiar de línea. delay_ms(100); } } Prof. Luis Zurita Microcontroladores II
  • 41. Configuración del COMPIM Prof. Luis Zurita Microcontroladores II
  • 42. Recibe Transmite Recibe En este ejemplo no se recibe nada, puesto que no se pudo conectar un cable USB entre dos puertos de la misma computadora. Prof. Luis Zurita Microcontroladores II