Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Los datos se envan bit a bit por una misma lnea y durante un tiempo fijo
Sincronizaciones:
TRANSFERENCIA SNCRONA
MDULO SCI
Los niveles lgicos de las seales se corresponden con los niveles elctricos de
alimentacin del microcontrolador
Hay varias normas de transmisin serie asncrona: RS232, RS485, RS422,... que
emplean niveles de tensin ms inmunes al ruido (RS232) o que emplean tensiones
diferenciales (RS485, RS422) y que son ms apropiadas para distancias largas entre
dispositivos
Circuito de Muestreo
- Deteccin de 1 0 en pin RX
- Sincronizacin de reloj
Transmisor Asncrono
Receptor Asncrono
Al ser SPBRG un registro de 8 bits, puede que no sea posible alcanzar de manera exacta
la velocidad de transmisin deseada
Ejemplo:
Codificacin de los bits de los datos NRZ (Non Return to Zero) con un bit de start,
8 9 bits de datos y un bit de stop
El transmisor saca sus bits por TX (empezando por B0) con los flancos que marca su
generador de relacin de baudios (reloj), pero no lo enva
Por tal motivo se necesita un circuito de muestreo de la lnea de datos que trata de
leer si hay un uno o un cero en la mitad del periodo de cada bit (seal estabilizada
tras posible cambio)
COMUNICACIN SERIE
Transmisor Asncrono
COMUNICACIN SERIE
Si TSR vaco y se escribe en TXREG, el dato pasa a TSR y se inicia transmisin
COMUNICACIN SERIE
COMUNICACIN SERIE
COMUNICACIN SERIE
COMUNICACIN SERIE
1.- Cargar SPBRG para una velocidad de transmisin dada (baudios) y configurar
velocidad alta o baja (BRGH)
1.- Inicializar el registro SPBRG para una velocidad dada (baudios) de recepcin y
configurar velocidad alta o baja (BRGH)
EJEMPLO:
Transmitir muestras analgicas provenientes del canal AN0 del ADC del PIC hasta la
computadora y visualizar el dato por el hyper terminal de Windows.
Definiciones previas
- Este programa lee un dato del canal AN0 del A/D y lo transmite a la PC a (2400 baudios:8
bits de datos: ninguna paridad:1 bit de parada y ningn control de flujo). El manejo del A/D
es similar a los programas anteriores con la diferencia que no usamos el timer 0 para
generar el retardo (mnimo 19,2 us) para el tiempo de adquisicin sino que las instrucciones
que empleamos en el programa nos permiten asegurar el tiempo apropiado.
COMUNICACIN SERIE
Diseo del programa
Algoritmo
1. Ir banco 0.
2. ADCON0: ADCS1 ADCS0 CH2 CH1 CH0 GO/-DONE ----- ADON
0 1 0 0 0 0 --- 1
Seleccionamos el canal 0 del A/D (CH2-0), encendemos el modulo (ADCON=1) y elegimos el
TAD Fosc/8 (ADS1:0)
3. Ir banco 1.
4. TRISA=TRISB=TRISC==Salidas
5. ADCON1: ADMF ADCS2 ------ ------ PCFG3 PCFG2 PCFG1 PCFG0
0 0 0 0 1 1 1 0
Justificamos el resultado de los registros ADRES a la izquierda (ADMF=0). Solo el pin RA0
ser canal analgico y las tensiones de referencia para el ADC sern VREF+=VDD y VREF-= VSS
6. TRISA<0>=0, configurar el pin RA0 como entrada.
7. TRISC<6>=1, configurar el pin RC6 como salida para la Tx serial.
8. SPBRG =25 (si y solo si el Cristal es de 4MHz )para lograr una frecuencia de 2400 baudios
(referirse a la tabla).
COMUNICACIN SERIE
Diseo del programa
Algoritmo
Diagrama de Flujo
COMUNICACIN SERIE
list p=16F877 ;Procesador PIC16F877
include <p16F877.inc>
org 0
nop
nop
bcf STATUS,RP0 ;Ir banco 0
bcf STATUS,RP1
movlw b'00000111'
movwf OPTION_REG ;TMR0 preescaler, 1:256
END
COMUNICACIN SERIE
Ejemplo 2:
Recibir datos provenientes de la computadora de forma serial y mostrarlos
en el PORTD
list p=16F877 ;Procesador PIC16F877
include <p16F877.inc>
org 0
nop
nop
bsf STATUS,RP0 ;Ir banco 1
bcf STATUS,RP1