SISTEMAS MICROPROCESADOS 1 UPS
UNIVERSIDAD POLITECNICA
SALESIANA
INTEGRANTES:
OSCAR AYALA
ANDRES VALDIVIESO
CURSO:
SEXTO ELECTRONICA
1
SISTEMAS MICROPROCESADOS 1 UPS
TALLER Nº9 DE PIC
TEMA: Comunicaciones seriales asincrónicas.
OBJETIVO: Utilizar las comunicaciones seriales RS-232
DESARROLLO
En la práctica vamos a utilizar el micro controlador PIC 16F877A y su correspondiente
diagrama de pines y características.
Figura 1. Diagrama de pines del PIC 16F877A
Para trabajar con comunicación serial necesitaremos obligatoriamente que usar el
MAX 232.
Figura 2. Diagrama max 232
2
SISTEMAS MICROPROCESADOS 1 UPS
1.- TRANSMISION Y RECEPCION SERIAL CON PIC
PROBLEMA
Para facilitar la transmisión se utiliza el circuito integrado max 232. Se recomienda
utilizar un cristal de 11.52Mhz o lo más cercano a este valor.
ALGORITMO
Inicio: Utilizar Usart para
Proceso: Transmitir y recibir datos en 9600 baudios
Salida: Visualización en el hyper terminal de widows los datos recibidos.
DIAGRAMA DE FLUJOS
INICIO
Defino variables internas
Habilito USART INIT
Transmito los datos y
recibo los mismos
Visualizo en la hyper
terminal de Windows los
datos recibidos
3
SISTEMAS MICROPROCESADOS 1 UPS
CÓDIGO
program leer_dato
dim received_byte as byte
main:
Usart_Init(9600) 'Inicializa modulo Usart
while true
if Usart_Data_Ready = 1 then 'Si el dato es recibido
received_byte = Usart_Read 'dato se guarda
usart_Write (received_byte) 'El dato es transmitido
end if
wend
end.
Esquemático: Utilizamos el microcontrolador PIC 16F877A
4
SISTEMAS MICROPROCESADOS 1 UPS
GRAFICO ANEXO
Visualización de datos en la hyper terminal de mikroBasic
Grafico ejercicio 1.
5
SISTEMAS MICROPROCESADOS 1 UPS
2.- TRANSMISION DE DATOS DESDE EL PIC AL PC.
PROBLEMA
Para facilitar la transmisión se utiliza el circuito integrado max 232. Se recomienda
utilizar un cristal de 11.52Mhz o lo más cercano a este valor.
ALGORITMO
Inicio: Utilizar Usart para
Declaro la variable auxiliar A
Proceso: Transmitir y recibir datos en 9600 baudios
Incrementar la variable auxiliar A
Salida: Visualización en el hyper terminal de widows los datos recibidos.
DIAGRAMA DE FLUJOS
INICIO
Defino variables auxiliar A
tipo byte
Habilito USART INIT
Transmito los datos y
recibo los mismos con
USART write
Visualizo en la hyper
terminal de Windows los
datos recibidos
6
SISTEMAS MICROPROCESADOS 1 UPS
CÓDIGO
PROGRAM PIC_A_PC
DIM A AS BYTE 'VARIABLE A DEFINIDA COMO TIPO BYTE
A= 0
TRISB = 0
MAIN:
USART_INIT(9600) 'INICIALIZA EL PUERTO EN 9600 BAUDIOS
WHILE TRUE
A= A + 1 'INCREMENTA EL CODIGO ASCII DE UNO EN UNO
USART_WRITE(A) 'ENVIA LOS DATOS POR EL PIN TRANSMISOR
DELAY_MS(1000) 'RETARDO PARA OBSERVAR LOS CARACTERES EN EL
HYPERTERMINAL
USART_WRITE_TEXT(" HOLA MUNDO ")
DELAY_MS(1000)
USART_WRITE_TEXT("ANGEL VALDIVIESO")
DELAY_MS(1000)
USART_WRITE_TEXT("OSCAR AYALA")
DELAY_MS(1000)
WEND
END.
7
SISTEMAS MICROPROCESADOS 1 UPS
Esquemático: Utilizamos el microcontrolador PIC 16F877A
GRAFICO ANEXO
Visualización de datos en la hyper terminal de mikroBasic
8
SISTEMAS MICROPROCESADOS 1 UPS
Grafico ejercicio 2.
3.- ENVIO DE DATOS DESDE EL PC AL PIC.
PROBLEMA
Para facilitar la transmisión se utiliza el circuito integrado max 232. Se recomienda
utilizar un cristal de 11.52Mhz o lo más cercano a este valor.
ALGORITMO
Inicio: Utilizar Usart
Declaro la variable auxiliar A
Declaro el puerto b como salida.
Proceso: Transmitir y recibir datos en 9600 baudios
Incrementar la variable auxiliar A
Salida: Visualización de datos en código binario en los diodos LED.
9
SISTEMAS MICROPROCESADOS 1 UPS
DIAGRAMA DE FLUJOS
INICIO
Defino variable auxiliar A
tipo byte
Habilito puerto b como
salida
Transmito los datos y
recibo los mismos con
USART write
Visualizo los datos en la
salida del puerto en los
diodos LED.
CÓDIGO
PROGRAM PC_A_PIC
DIM A AS BYTE
A=0
TRISB = 0
MAIN:
USART_INIT(9600) 'INICIALIZA USART A 9600 BAUDIOS
WHILE TRUE
IF USART_DATA_READY = 1 THEN 'SI EL DATO ES RECIBIDO
A= USART_READ 'LECTURA DEL DATO RECIBIDO
PORTB =A
END IF
DELAY_MS(100)
WEND
END.
10
SISTEMAS MICROPROCESADOS 1 UPS
Esquemático: Utilizamos el microcontrolador PIC 16F877A
GRAFICO ANEXO
Visualización de datos en la hyper terminal de mikroBasic
11
SISTEMAS MICROPROCESADOS 1 UPS
Grafico ejercicio 3.
4.- ADQUISICIÓN DE DATOS DESDE EL PIC AL PC.
PROBLEMA
Realice la adquisición de datos de un potenciómetro y envíelos para que se observe en
el hyperterminal de windows.
ALGORITMO
Inicio: Declaro la variable voltaje
Declaro la variable valor
Declaro el puerto a como entrada.
Proceso: Transmitir y recibir datos en 9600 baudios
Guardo los datos en la variable valor
Salida: Visualización de en el hyperterminal de windows.
12
SISTEMAS MICROPROCESADOS 1 UPS
DIAGRAMA DE FLUJOS
INICIO
Defino variable voltaje
tipo float
Defino variable valor tipo
string
Habilito puerto a como
entrada
Transmito los datos y
recibo los mismos con
USART write
Visualizo los datos en la
hyperterminal de
windows
CÓDIGO
PROGRAM ANALOGODIGITAL1
DIM VOLTAJE AS FLOAT
DIM VALOR AS STRING[10]
SUB PROCEDURE INIT
OPTION_REG=$80
ADCON1=$80
TRISA=$FF
END SUB
MAIN:
USART_INIT(9600)
INIT
WHILE TRUE
VOLTAJE = ADC_READ(0)
WORDTOSTR(VOLTAJE, VALOR)
USART_WRITE_TEXT(VALOR)
DELAY_MS(300)
WEND
END.
13
SISTEMAS MICROPROCESADOS 1 UPS
Esquemático: Utilizamos el microcontrolador PIC 16F877A
GRAFICO ANEXO
Visualización de datos en la hyper terminal de windows
14
SISTEMAS MICROPROCESADOS 1 UPS
Grafico ejercicio 4.
5.- DESARROLLO COMUNICACIÓN SERIAL RS-232 PC-PIC-PC CON LABVIEW.
PROBLEMA
Realizando la programación para el PIC 16F877A, armamos el circuito siguiendo el
esquema que se muestra a continuación PIC-PC-PIC con la interfaz desarrollada en
LabView.
ALGORITMO
Inicio: Declaro el puerto b como salida.
Declaro el puerto d como entrada.
Defino las variables internas.
Proceso: Transmitir y recibir datos en 9600 baudios
Guardo los datos en la variable valor
Salida: Visualización de en el hyperterminal de windows.
15
SISTEMAS MICROPROCESADOS 1 UPS
DIAGRAMA DE FLUJOS
INICIO
Defino variable x; b como
byte
Habilito puerto d como
entrada
Habilito puerto b como
salida
Guardo los datos del
puerto b en la variable x
Transmito los datos y
recibo los mismos con
USART write
Visualizo los datos en la
hyperterminal de
windows
16
SISTEMAS MICROPROCESADOS 1 UPS
CÓDIGO
PROGRAM PUERTOSERIAL
DIM RECEIVED_BYTE AS BYTE
DIM X AS BYTE
DIM B AS BYTE
DIM A AS STRING[64]
X=0
TRISB=0
TRISD=$FF
MAIN:
USART_INIT(9600)
WHILE TRUE
IF USART_DATA_READY=1 THEN
X=USART_READ
PORTB=X
B=PORTD
BYTETOSTR(B,A)
USART_WRITE_TEXT(A)
END IF
DELAY_MS(100)
WEND
END.
17
SISTEMAS MICROPROCESADOS 1 UPS
Esquemático: Utilizamos el microcontrolador PIC 16F877A
GRAFICO ANEXO
Visualización de datos en la hyper terminal de mikroBasic.
18
SISTEMAS MICROPROCESADOS 1 UPS
Grafico ejercicio 5.
Panel central en labview
19
SISTEMAS MICROPROCESADOS 1 UPS
Panel central en labview
Panel central en labview
20
SISTEMAS MICROPROCESADOS 1 UPS
CONCLUSIONES
Es necesario utilizar un cristal de 11.52mhz para realizar óptimamente la
comunicación serial.
Es necesario conocer las secuencias en los programas de LabView.
Es preferible utilizar la velocidad de transmisión de datos de 9600 baudios ya
que es la más común en los dispositivos de comunicación serial.
BIBLIOGRAFÍA
Hoja de prácticas de microcontroladores PIC proporcionados por el Ing. Luis
Oñate.
Ayuda del Programa mikrobasic.
Manual del Microcontrolador PIC 16F877A.
Ayuda del programa LabView.
21