Escolar Documentos
Profissional Documentos
Cultura Documentos
Niveles Niveles
INTERFAZ PIC
RS232 TTL
NIVELES RS232
25 v
15 v
0 Lógico
0 Lógico
5v 3v
0v Indeterminado 0v Indeterminado
-5 v -3 v
1 Lógico 1 Lógico
-15 v
-25 v
Transmisor Receptor
ESTRUCTURA DE UN
CARÁCTER
INTERFAZ PC-PIC
LECTURA DE DATOS
T2 = 1 /Velocidad de transmisión
T1 = 1.5 T2
Verificar Rx
NBITS = 8
0 0 0 0 0 0 0 0 0
Bit de acarreo RECEP
RECEPCIÓN 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 0 0 0 0 0 0 0 0
Bit de acarreo RECEP
RECEPCIÓN 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 1 0 0 0 0 0 0 0
Bit de acarreo RECEP
RECEPCIÓN 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 1 1 0 0 0 0 0 0
Bit de acarreo RECEP
RECEPCIÓN 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 0 1 1 0 0 0 0 0
Bit de acarreo RECEP
RECEPCIÓN 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 1 0 1 1 0 0 0 0
Bit de acarreo RECEP
RECEPCIÓN 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 1 1 0 1 1 0 0 0
Bit de acarreo RECEP
RECEPCIÓN 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 0 1 1 0 1 1 0 0
Bit de acarreo RECEP
RECEPCIÓN 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 1 0 1 1 0 1 1 0
Bit de acarreo RECEP
RECEPCIÓN DE UN BYTE
Al detectar que el registro NBITS es igual a cero el PIC reconoce que
la transmisión del dato ha finalizado
NBITS = 0
0 1 0 1 1 0 1 1 0
Bit de acarreo RECEP
PROGRAMA DE RECEPCIÓN DE DATOS
;AUTOR: CÉSAR AUGUSTO PEÑA c
;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: XT
;WATCHDOG TIMER: OFF
;POWER UP TIMER: ON
;CODE PROTECT: 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 RECEPCIÓN DE DATOS
org 05
INICIO bsf STATUS,RP0 ;PASA AL BANCO 1
movlw b'00000001'
movwf TRISA
clrf TRISB
bcf STATUS,RP0 ;PASA AL BANCO 0
clrf PORTA
clrf PORTB
RECIBIR nop
btfsc PORTA,RX ;linea de recepcion esta en bajo?
goto RECIBIR ;ciclo hasta recibir bit de comienzo
call BYMEDIO ;llama rutina de bymedio
movlw 8 ;carga contador con el numero de bits
movwf NBITS
clrf RECEP
RNEXT bcf STATUS,C ;limpia carry
rrf RECEP,1
btfsc PORTA,RX ;pregunta por el estado de la linea
bsf RECEP,7 ;si rx esta en alto pone el bit 7 de RECEP
call BY
decfsz NBITS
goto RNEXT
movf RECEP,w ;pasa el dato del registro RECEP al PORTB
movwf PORTB
goto RECIBIR
PROGRAMA DE RECEPCIÓN DE DATOS
BYMEDIO movlw VALOR1 ;retardo de bit y medio
movwf REG1
TRES movlw VALOR2
movwf REG2
DOS movlw VALOR3
movwf REG3
UNO decfsz REG3
goto UNO
decfsz REG2
goto DOS
decfsz REG1
goto TRES
retlw 0
;CARACTERISTICAS:
;OSCILLATOR: XT
;WATCHDOG TIMER: OFF
;POWER UP TIMER: ON
;CODE PROTECT: 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 TRANSMISIÓN DE DATOS
org 05
INICIO bsf STATUS,RP0 ;PASA AL BANCO 1
movlw b'00000001'
movwf TRISA
clrf TRISB
bcf STATUS,RP0 ;PASA AL BANCO 0
clrf PORTA
clrf PORTB
end
PROGRAMA DE TRASMISIÓN Y
RECEPCIÓN DE DATOS DEL PC
PROGRAMA DE TRASMISIÓN Y
RECEPCIÓN DE DATOS DEL PC
PROGRAMA DE TRASMISIÓN Y
RECEPCIÓN DE DATOS DEL PC