Sie sind auf Seite 1von 17

PROGRAMACIÓN DE

MICROCONTROLADORES
IV CICLO
INFORME
Laboratorio N° 8
“COMUNICACIÓN SERIAL”
Integrantes:
BASURTO BERNAL, Candy Massiel
GUERREROS GUTIERREZ, Jose Jefferson
HUAMAN CHIPANA, Elio
YOPAN CUIPAL, Juber Antony

Profesor:
Ciriaco Martínez, Cesar Augusto

Fecha de realización: 28 de Abril

Fecha de Entrega: 05 de Mayo

2017-1
Lab. N° 8 Comunicación serial

Índice general

1. Introducción…………………………………………………………………………….3
2. Objetivos generales…………………………………………………………………...4
3. Objetivos específicos.…………………………………………………………………4
4. Fundamento Teorico…………………………………………………………………..4
4.1 Comunicación Serial……………….……………………………………………..4
4.2 Comunicación Síncrono………..……………..…………….............................5
4.3 Comunicación Asíncrono ……………………………………………………......5
5. Procediminto…………………………………………………………………………...6
5.1 Copiar el siguiente programa, analiza.................................................................6
Cuestionario…………...………............................................................................................8
¿Qué sucede en el RS232_Dato?.......................……………………………….8
¿Qué hace el programa?.................................................................................8
¿Qué se visualiza en el PORTB?.................................................................................8
¿Para qué sirve la rutina RS232_LeeDato?...................................................8
Explicar el contenido de la librería RS232_16F877a ...………………………..8
5.2 Copiar el siguiente programa, analiza……………………………………………....9
Cuestionario………........................................................................................................8
¿En qué consiste el segundo programa?........................................................8
Explicar el contenido de la librería RS232_16F877a…………........................8
¿Qué función está cumpliendo el PORTB? ……………………………….…....8
¿De cuánto es la velocidad de transmisión serie? ……………………………...8
¿A cuántos bits de datos está transmitiendo?..................................................9
¿Cuántos bits de paridad se está utilizando?...................................................9
6. Aplicasion………………………………………………………………………….……11
7. Comcluiones…………………………………………………………………………….15
8. Observaciones…………………………………………………………………………15
9. Biblografias.………………………………………………………………………........15

pág. 2
Lab. N° 8 Comunicación serial

1. Introducción:

El presente informe está referido al puerto serial, el uso y sus ventajas de este puerto de comunicación
el cual consiste en enviar bits de datos de información de manera secuencial y recibirlo de un bit a la
vez.
En la comunicación en serial existen dos tipos de comunicación la paralela y el serial. Describiremos
cada una de las comunísimas. La paralela permite la transferencia de bits de manera rápida y
simultánea y complicaciones sin embargo dentro de esta comunicación hay complicaciones al
momento de utilizarlo es necesario que esta comunicación posee una gran cantidad de líneas. La
comunicación serial se divide en dos, los cuales son asíncronas y síncronas en cada una de las dos
posee que cada una tenga su propia conexión de dos líneas el cual en el asíncrono es necesario que un
de las líneas sea de transmisión y la otra sea de pulsos. La otra no necesaria que tenga pulsos cada,
uno de los bytes lo realizan por el tiempo de duración. El cual nos permita que los tipos de
comunicación ayuden bastante al momento de realizar una programación y escoger lo más adecuado
para realizarlo de acuerdo al tipo de uso que le demos.

pág. 3
Lab. N° 8 Comunicación serial

2. Objetivo General:

 La presente práctica se demostrara el uso correcto del puerto de comunicación serial.

3. Objetivos Específico:

 Programar los registros que determinan la comunicación serial.


 Comunicar la PC con un micro-controlador PIC 16F877A por medio de su módulo USART.
 Conocer los principios acerca de la comunicación serial de la norma RS-232.

4. Marco Teórico:

4.1. Comunicación Serial:

Uno de los protocolos de comunicación que podemos emplear con nuestros dispositivos electrónicos
embebidos, es la utilización de la comunicación serial para poder interactuar con diferentes
dispositivos.
La comunicación serial sólo utiliza tres líneas, una para recibir los datos Rx, otra para trasmitir los datos
Tx y la línea común GND. En nuestro caso específico para el PIC 16F887 las líneas TX y RX corresponden
a los pines 25 y 26 (Puerto RC6 y RC7 respectivamente) como puede ser observado en la siguiente
figura. Para cualquier otro PIC, solo basta con buscar donde están ubicados estos pines con ayuda del
datasheet.

Imagen 1. PIC pines a utilizar en la comunicación serial.

Cada dato se transmite bit a bit, un bit a la vez, por lo tanto se hace mucho más lenta, pero tiene la
ventaja de necesitar menos líneas y las distancias a las cuales se puede transferir la información son
mayores, además con el uso de los módem se puede trasmitir a cualquier parte del mundo.

pág. 4
Lab. N° 8 Comunicación serial
Imagen 2. Transmisión de bits de un seleccionador y un receptor de datos.

Existen dos formas de comunicación serial:

 Sincrónica
 Asincrónica

4.2. Comunicación Sincrónica:

En esta comunicación además de una línea sobre la que se transfieren los datos, se necesita otra que
contenga pulsos de reloj que indiquen que el dato es válido; la duración del bit está determinada por
la duración del pulso de sincronismo.

4.3. Comunicación Asincrónica:

En esta comunicación los pulsos de reloj no son necesarios y se utilizan otros mecanismos para realizar
la transferencia de datos. La duración de cada bit está determinada por la velocidad con la cual se
realiza la trasferencia de datos, por ejemplo si se transmite a 1200 bits por segundo (baudios), la
duración de cada bit es de 833 microsegundos. Las velocidades de transmisión más comunes son 300,
600,1200, 2400, 9600, 14400 y 28800 baudios.

En esta entrada solo se estudia la comunicación asincrónica

Imagen 3.

pág. 5
Lab. N° 8 Comunicación serial
5. Procedimiento:

5.1. Copiar el siguiente programa, analizar, comentar, simular e implementar:

;*****************************************************
;Ejemplo de comunicación serial
;*****************************************************
list p=16f877a
include<p16f877a.inc>
include<macro16f877.inc>
__config 0x3f32
cblock 0x20
endc
org 0000h
;---------------------------------
banco 1
clrf trisb ;comentar:
banco 0
clrf portb ;comentar:
call RS232_Inicializa ;comentar:

repite
call RS232_LeeDato ;comentar:
movf RS232_Dato,0 ;comentar:
movwf portb ;comentar:
goto repite
;---------------------------------
include<electronicpic16f877.asm>
include<rs232_16f877.asm> ;comentar:
end

Mostrar evidencia de ejecución de los programas

Pasos de realización de creación en el software MPLab.

pág. 6
Lab. N° 8 Comunicación serial

pág. 7
Lab. N° 8 Comunicación serial

Realizando la Solucion en la Programación creada:

Simulación en el software Proteus

pág. 8
Lab. N° 8 Comunicación serial

Cuestionario:

En el código ascii podemos observar los valores que cada caracter representa en decimal.

En este caso escribimos el número 2, ciendo asi el decimal 50 y en binario 010011 como se aprecia en
la simulación.

¿Qué sucede en el RS232_Dato?

Guarda el contenido del byte a transmitir, en este registro creado.

pág. 9
Lab. N° 8 Comunicación serial
¿Qué hace el programa?

Transmite al portb en código ascii los diferentes caracteres de un teclado.

¿Qué se visualiza en el PORTB?

En el portb se visualiza un código binario dependiendo al carácter seleccionado.

¿Para qué sirve la rutina RS232_LeeDato?

Aquí se almacenan la cantidad de bits recibidos y los almacenan en el registro


RS232_ContadorBits.

Explicar el contenido de la librería RS232_16F877a

Aquí podemos encontrar las diferentes subrutinas que necesitamos para la comunicación
serial.

5.2. Copiar el siguiente programa, analizar, comentar, simular e implementar:

;****************************************************
;Ejemplo de comunicación serial
;****************************************************
list p=16f877a
include<p16f877a.inc>
include<macro16f877.inc>
__config 0x3f32
cblock 0x20
endc
org 0000h
;---------------------------------
call RS232_Inicializa ;comentar:

repite
movf portb,0 ;comentar:
call RS232_EnviaDato ;comentar:
segundo .1
goto repite
;---------------------------------
include<electronicpic16f877.asm>
include<rs232_16f877.asm> ;comentar:
end

Programación realizada y comentada:

;****************************************************
;Ejemplo de comunicación serial
;****************************************************
list p=16f877a
include<p16f877a.inc>
include<macro16f877.inc>
__config 0x3f32
cblock 0x20

pág. 10
Lab. N° 8 Comunicación serial
endc
org 0000h
;---------------------------------
call RS232_Inicializa ;comentar:Llama a la
subrutina RS232_Inicializa
repite
movf portb,0 ;comentar:Vamos al registro
PORTB y guardamos sus datos en W
call RS232_EnviaDato ;comentar:Llama a la
subrutina RS232_EnviaDato
segundo .1
goto repite
;---------------------------------
include<electronicpic16f877.asm>
include<rs232_16f877.asm> ;comentar:Libreria del RS232
end

Realizado pantallazo en PLLAB:

Implementación de en Proteus la programacion del 5.1:

pág. 11
Lab. N° 8 Comunicación serial

¿En qué consiste el programa?

Este programa mueve los datos binarios del puerto B, transforma en valor ASCII y lo envía a la PC.

¿Qué función está cumpliendo el PORTB?

En este ejercicio cumple la función de entradas, aquí escribiremos en binario y al ser sumado 48 (por
el código ASCII) obtendremos el carácter en la pantalla.

¿De cuánto es la velocidad de transmisión serie?

La velocidad de transmisión es de 1 segundo.

¿A cuántos bits de datos está transmitiendo?

Se están transmitiendo 8 bits de datos por PORTB.

¿Cuántos bits de paridad se está utilizando?

Se está utilizando 2 bits de paridad.

pág. 12
Lab. N° 8 Comunicación serial

6. Aplicación de lo aprendido
6.1. Hacer un programa e implementar el hardware respectivo tal que se mande información de
la computadora hacia el microcontrolador PIC16F877A y éste a su vez debe mandar la
información en una pantalla LCD 16X2, cuando se presiona la tecla “supr” se borre la pantalla.

list p=16f877a
include<p16f877a.inc>
include<macro16f877.inc>
__config 0x3f32
cblock 0x20
endc
org 0000h
banco 1
clrf trisb
banco 0
clrf portb
call RS232_Inicializa
call Inicio_lcd
repite
call RS232_LeeDato
movf RS232_Dato,0
movwf portb
csi portb,.13,saltar;Se compara la tecla ENTER=13 y se va a saltar
putv portb
csi portb,.49,delete;Se compara la tecla 1=49 y se va a delete
goto repite
saltar
enter ;Baja a la segunda fila del LCD
goto repite
delete
borralcd ;Elimina todos los carácteres del LCD
goto repite
include<electronicpic16f877.asm>
include<rs232_16f877.asm>
include<lcd.asm>
end

pág. 13
Lab. N° 8 Comunicación serial

pág. 14
Lab. N° 8 Comunicación serial
6.2. Diseñar e implementar un programa en donde al presionar la tecla “D” gire un motor hacia
la derecha, si se presiona la tecla “I” gire hacia la izquierda, y otro motor que cuando se presiona
la tecla “A ” este avance y si se presiona la tecla “R” retroceda. Cuando se presiona la tecla
“Supr” se detengan.

;*****************************************************
; Ejemplo de comunicación serial
;*****************************************************
list p=16f877a
include<p16f877a.inc>
include<macro16f877.inc>
__config 0x3f32
cblock 0x20
endc
org 0000h
;---------------------------------
banco 1
clrf trisb
banco
clrf portb
call RS232_Inicializa
call Inicio_lcd
cursor off

repite
call RS232_LeeDato
movf RS232_Dato,0
movwf portb
csi RS232_Dato,.13,saltar
putv RS232_Dato

csi RS232_Dato,.8,delete

csi RS232_Dato,.68,derecha

csi RS232_Dato,.73,izquierda

csi RS232_Dato,.65,avanza

csi RS232_Dato,.82,retrocede

goto repite

delete
borralcd
clrf portb
goto repite

saltar
enter
goto repite

pág. 15
Lab. N° 8 Comunicación serial
derecha

bsf portb,0
bcf portb,1
csi RS232_Dato,.68,derecha
clrf portb
goto repite

izquierda

bcf portb,0
bsf portb,1
csi RS232_Dato,.73,izquierda
clrf portb
goto repite

avanza

bsf portb,2
bcf portb,3
csi RS232_Dato,.65,avanza
clrf portb
goto repite

retrocede

bcf portb,2
bsf portb,3
csi RS232_Dato,.82,retrocede
clrf portb
goto repite

;---------------------------------
include<electronicpic16f877.asm>
include<rs232_16f877.asm>
include<lcd.asm>
end

pág. 16
Lab. N° 8 Comunicación serial

7. Recomendaciones:

 Es necesario que tengas noción del tipo de PIC y las entradas que sede sea utilizar.
 Es conveniente tener en cuenta conocer el funcionamiento de la comunicación serial.
 Observar la programación de cada caso para así no caer en errores.

8. Conclusión

 Se utilizó las comunicaciones seriales RS-232


 En la comunicación serial el uso de un cristal adecuado optimiza la comunicación serial.
 la comunicación serial está siendo rezagada por la comunicación vía usb.
 Debemos conocer y practicar más para las próximas practicas ya que al ser extensas
requieren de mucho más tiempo
 Tener bien armado y programado cada uno de los laboratorios para poder seguir avanzando.
 Leer el Data Sheet y su correcto funcionamiento de Las conexiones a utilizar.
 Utilizar los comandos de programación adecuados para cada práctica.
 Seguir con la guía y probar cada uno de los elementos para su correcto funcionamiento
 Las comunicaciones seriales con PIC tanto como emisión y recepción son muy sencillas
realizarlos no existieron complicaciones pero al realizar la comunicación.

9. Bibliografía:

Recuperado de: http://controlautomaticoeducacion.com/16-comunicacion-serial/


Recuperado de: http://www.udb.edu.sv/udb/archivo/guia/electronica-ingenieria/interfaces-y-
perifericos/2015/ii/guia-3.pdf
Recuperado de: https://galaxi0.wordpress.com/el-puerto-serial/
Recuperado de:
http://catarina.udlap.mx/u_dl_a/tales/documentos/lem/morales_h_oe/capitulo3.pdf

pág. 17

Das könnte Ihnen auch gefallen