Está en la página 1de 23

MICROCONTROLADORES

P.G.F.

COMUNICACIN SERIAL RS232 (ASINCRNICA)


UART: Transmisin/Recepcin Asncrona Universal

Niveles INTERFAZ RS232

Niveles PIC TTL

NIVELES RS232
25 v 15 v 0 Lgico 5v 0v -5 v 1 Lgico -15 v -25 v Indeterminado 3v 0v -3 v 1 Lgico Indeterminado 0 Lgico

Transmisor

Receptor

ESTRUCTURA DE UN CARCTER

INTERFAZ PC-PIC

LECTURA DE DATOS

T2 = 1 /Velocidad de transmisin T1 = 1.5 T2 Velocidad de transmisin = 1200 Bps T2 = 833 S T = 1.5 * 833 S = 1249.5 S

RECEPCIN DE UN BYTE
Verificar Rx Si esta en Rx = 1 significa que NO se estn transmitiendo datos

RECEPCIN DE UN BYTE
Si Rx cambia a 0 significa que el PIC esta recibiendo un dato (este cambio) ocurre puesto que esta leyendo el comienzo del bit de indicio

NBITS = 8

0
Bit de acarreo

0 0 0 0 0 0 0 0
RECEP

RECEPCIN DE UN BYTE
Se realiza un retardo equivalente a 1.5 bits, se limpia el carry, se rota el registro auxiliar RECEP, se pone en 1 el bit 7 del mismo en caso que Rx sea 1 de lo contrario se deja en 0 y se decrementa NBITS.

NBITS = 7

0
Bit de acarreo

0 0 0 0 0 0 0 0
RECEP

RECEPCIN DE UN BYTE
Se realiza un retardo equivalente a 1 bits, se limpia el carry, se rota el registro auxiliar RECEP y se pone en 1 el bit 7 del mismo en caso que Rx sea 1 de lo contrario se deja en 0 y se decrementa NBITS.

NBITS = 6

0
Bit de acarreo

1 0 0 0 0 0 0 0
RECEP

RECEPCIN DE UN BYTE
Se realiza un retardo equivalente a 1 bits, se limpia el carry, se rota el registro auxiliar RECEP y se pone en 1 el bit 7 del mismo en caso que Rx sea 1 de lo contrario se deja en 0 y se decrementa NBITS.

NBITS = 5

0
Bit de acarreo

1 1 0 0 0 0 0 0
RECEP

RECEPCIN DE UN BYTE
Se realiza un retardo equivalente a 1 bits, se limpia el carry, se rota el registro auxiliar RECEP y se pone en 1 el bit 7 del mismo en caso que Rx sea 1 de lo contrario se deja en 0 y se decrementa NBITS.

NBITS = 4

0
Bit de acarreo

0 1 1 0 0 0 0 0
RECEP

RECEPCIN DE UN BYTE
Se realiza un retardo equivalente a 1 bits, se limpia el carry, se rota el registro auxiliar RECEP y se pone en 1 el bit 7 del mismo en caso que Rx sea 1 de lo contrario se deja en 0 y se decrementa NBITS.

NBITS = 3

0
Bit de acarreo

1 0 1 1 0 0 0 0
RECEP

RECEPCIN DE UN BYTE
Se realiza un retardo equivalente a 1 bits, se limpia el carry, se rota el registro auxiliar RECEP y se pone en 1 el bit 7 del mismo en caso que Rx sea 1 de lo contrario se deja en 0 y se decrementa NBITS.

NBITS = 2

0
Bit de acarreo

1 1 0 1 1 0 0 0
RECEP

RECEPCIN DE UN BYTE
Se realiza un retardo equivalente a 1 bits, se limpia el carry, se rota el registro auxiliar RECEP y se pone en 1 el bit 7 del mismo en caso que Rx sea 1 de lo contrario se deja en 0 y se decrementa NBITS.

NBITS = 1

0
Bit de acarreo

0 1 1 0 1 1 0 0
RECEP

RECEPCIN DE UN BYTE
Se realiza un retardo equivalente a 1 bits, se limpia el carry, se rota el registro auxiliar RECEP y se pone en 1 el bit 7 del mismo en caso que Rx sea 1 de lo contrario se deja en 0 y se decrementa NBITS.

NBITS = 0

0
Bit de acarreo

1 0 1 1 0 1 1 0
RECEP

RECEPCIN DE UN BYTE
Al detectar que el registro NBITS es igual a cero el PIC reconoce que la transmisin del dato ha finalizado

NBITS = 0

0
Bit de acarreo

1 0 1 1 0 1 1 0
RECEP

PROGRAMA DE RECEPCIN DE DATOS


;AUTOR: P.G.F. ;PIC: 16F84A ;FUNCION: ;ESTE PROGRAMA RECIBE DATOS (BYTE DE 8 BITS) SERIALMENTE ENVIADOS ; POR LA COMPUTADORA A LA PATILLA DE RA0 Y POSTERIORMENTE MUESTRA LOS DATOS EN EL PUERTO B ;CARACTERISTICAS: ;OSCILLATOR: ;WATCHDOG TIMER: ;POWER UP TIMER: ;CODE PROTECT:

XT OFF ON OFF

INCLUDE "P16F84A.Inc" ;*******DEFINICION DE REGISTROS********************************** CBLOCK .12 REG1, REG2, REG3, RECEP, NBITS ENDC RX equ 0h ;PATILLA QUE RECIBE LOS DATOS ;*******DEFINICION DE DATOS************************************** VALOR1 EQU .7 ;para controlar numero de ciclos del retardo bymedio VALOR2 EQU .1 ;1246 CICLOS DE RETARDO VALOR3 EQU .56 VALOR4 EQU .5 ;para controlar numero de ciclos del retardo by VALOR5 EQU .1 ;830 CICLOS DE RETARDO VALOR6 EQU .52 ;*******PROGRAMA************************************************* ORG 00 goto INICIO

PROGRAMA DE RECEPCIN DE DATOS


INICIO org bsf movlw movwf clrf bcf clrf clrf movlw movwf RECIBIR nop btfsc goto call movlw movwf clrf bcf rrf btfsc bsf call decfsz goto movf movwf goto 05 STATUS,RP0 b'00000001' TRISA TRISB STATUS,RP0 PORTA PORTB ;PASA AL BANCO 1

;PASA AL BANCO 0

b'00000101' ;Carga un dato por defecto en el puerto B PORTB

RNEXT

PORTA,RX RECIBIR BYMEDIO 8 NBITS RECEP STATUS,C RECEP,1 PORTA,RX RECEP,7 BY NBITS RNEXT RECEP,w PORTB RECIBIR

;linea de recepcion esta en bajo? ;ciclo hasta recibir bit de comienzo ;llama rutina de bymedio ;carga contador con el numero de bits

;limpia carry ;pregunta por el estado de la linea ;si rx esta en alto pone el bit 7 de RECEP

;pasa el dato del registro RECEP al PORTB

PROGRAMA DE RECEPCIN DE DATOS


BYMEDIO TRES DOS UNO movlw movwf movlw movwf movlw movwf decfsz goto decfsz goto decfsz goto retlw movlw movwf movlw movwf movlw movwf decfsz goto decfsz goto decfsz goto retlw end VALOR1 REG1 VALOR2 REG2 VALOR3 REG3 REG3 UNO REG2 DOS REG1 TRES 0 VALOR4 REG1 VALOR5 REG2 VALOR6 REG3 REG3 UNO2 REG2 DOS2 REG1 TRES2 0 ;retardo de bit y medio

BY TRES2 DOS2 UNO2

;retardo de bit

PROGRAMA DE TRANSMISIN DE DATOS


;AUTOR: P.G.F. ;PIC: 16F84A ;FUNCION: ;ESTE PROGRAMA ENVIA DATOS (BYTE DE 8 BITS) SERIALMENTE HACIA LA COMPUTADORA ;POR LA PATILLA DE RA1 ;CARACTERISTICAS: ;OSCILLATOR: ;WATCHDOG TIMER: ;POWER UP TIMER: ;CODE PROTECT:

XT OFF ON OFF

INCLUDE "P16F84A.Inc" ;*******DEFINICION DE REGISTROS********************************** CBLOCK .12 REG1, REG2, REG3, TRANS, NBITS ENDC RX equ 0h ;PATILLA QUE RECIBE LOS DATOS TX equ 1h ;PATILLA QUE TRANSMITE DATOS ;*******DEFINICION DE DATOS************************************** VALOR4 EQU .5 ;para controlar numero de ciclos del retardo by VALOR5 EQU .1 ;830 CICLOS DE RETARDO VALOR6 EQU .52 ;*******PROGRAMA************************************************* ORG 00 goto INICIO

PROGRAMA DE TRANSMISIN DE DATOS


INICIO org bsf movlw movwf clrf bcf clrf clrf movlw movwf movlw addlw call nop goto movwf movlw movwf bcf call 05 STATUS,RP0 b'00000001' TRISA TRISB STATUS,RP0 PORTA PORTB ;PASA AL BANCO 1

;PASA AL BANCO 0

b'00000101' ;Carga un dato por defecto en el puerto B PORTB .7 30h ENVIAR NADA TRANS .8 NBITS PORTA,TX BY ;Carga dator en el registro a transmitir ;Carga el nmero de bits ;Carga el contador ;Pone la lnea en bajo ;Retardo que genera el bit de arranque ;Dato a transmitir ;convierte caracter PC

NADA

ENVIAR

PROGRAMA DE TRANSMISIN DE DATOS


OTROBIT bcf bcf rrf btfsc bsf call decfsz goto bsf call retlw goto movlw movwf movlw movwf movlw movwf decfsz goto decfsz goto decfsz goto retlw end PORTA,TX STATUS,C TRANS STATUS,C PORTA,TX BY NBITS OTROBIT PORTA,TX BY 0 INICIO VALOR4 REG1 VALOR5 REG2 VALOR6 REG3 REG3 UNO2 REG2 DOS2 REG1 TRES2 0 ;Pone la lnea en bajo ;Limpia el carry ;Rota el registro de transmision ;verifica el estado del bit de acarreo ;Pone la lnea en alto ;Retardo que genera el bit de datos ;Decrementa el contador ;Transmitir el siguiente bit ;Pone la lnea en alto ;Retardo que genera el bit de parada

BY TRES2 DOS2 UNO2

;retardo de bit

También podría gustarte