Está en la página 1de 21

MARZO – JULIO 2010

UNIVERSIDAD POLITÉCNICA
SALESIANA
SISTEMAS MICROPROCESADOS 1

INFORME PRÁCTICA #09


TEMA: Comunicaciones seriales
asíncronas.

DAVID ESPÍN
ANDRÉS MOGRO

QUITO - ECUADOR
PRÁCTICA 09

OBJETIVO: Utilizar las comunicaciones seriales RS-232.

1. Transmisión y recepción serial con pic.

Entradas:

Datos enviados desde el PC.

Procesos:

• Inicializo el modulo Usart.


• Leo el dato enviado por el PC.
• Si el dato es recibido, guardo el dato.
• Transmito el dato guardado.

Salidas:

Los datos que se muestran en el hiperterminal.

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.
DIAGRAMA DE FLUJO

INICIO

Configuro e inicio el
modulo Usart

Leo el dato del PC


en el pic

Guardo el dato

Envío dato hacia el


hiperterminal

Muestro el dato enviado y


recibido en el hiperterminal
ESQUEMÁTICO.

FOTOS.
2. Transmisión de datos del pic al PC.

Entradas:

Código ASCII y texto enviado por el pin transmisor del pic.

Procesos:

• Inicializo el módulo Usart en 9600 baudios.


• Envío código ASCII incrementando de uno en uno por el pin
transmisor del pic.
• Envío texto hacia el PC.

Salidas:

Los datos que se visualizan en el Hiperterminal de PC.

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(100) 'retardo para observar los caracteres en el
hyperterminal
usart_write_text(" Hola Mundo")
usart_write_text(" David Espin")
usart_write_text(" Andres Mogro")
wend
end.
DIAGRAMA DE FLUJO

INICIO

Inicio el puerto serie en


9600 baudios

Realizo el lazo para el


código ASCII

Retardo 100ms para


observar los caracteres
en el hiperterminal

Envío texto por el pin


transmisor del pic

Visualizo los datos en el


hyperterminal
ESQUEMÁTICO.

FOTOS.
3. Envío de datos desde el PC al pic.

Entradas:

Datos enviados por el PC mediante el puerto serie hacia el pic.

Procesos:

• Inicializo el módulo Usart en 9600 baudios.


• Envío datos desde el PC por el puerto serie.
• Leo datos y muestro en el puerto B.

Salidas:

Los datos que se visualizan en el puerto B mediante leds.

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(10)

wend
end.
DIAGRAMA DE FLUJO

INICIO

Inicio el puerto serie en


9600 baudios

Envío datos desde el


PC hacia el pic

Lectura del dato del


puerto serie

Guardo datos en una


variable y envío hacia el
puerto B

Visualizo los datos en el puerto B


mediante leds
ESQUEMÁTICO.

FOTOS.
4. Realice la adquisición de datos de un potenciómetro y envíelos
para que observe en el hyperterminal de Windows.

Entradas:

• Adquirir la señal del potenciómetro del puerto A

Procesos:

• Defino variables
• Inicializo el módulo Usart en 9600 baudios.
• Realizar la conversión Analogo/Digital
• Enviar el valor de la conversión vía puerto Serial a la PC

Salidas:

Los datos que se visualizan en el hyperterminal.

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.
DIAGRAMA DE FLUJOS:

INICIO

Definir Variables

Puerto A como salida

Inicializar Puerto Serial


(9600)

Conversor Analógico/Digital

Enviar datos comunicación


serial al PC

End

ESQUEMÁTICO.
FOTOS.
5. Desarrollar en programa en Labview, permitir la transmicion y
recepción entre el PIC y el programa Labview.

Entradas:

• Recibir la señal que envía Labview para encender los leds.


• Configuro puerto B como entrada.

Procesos:

• Configuro la comunicación serial.


• Recibo el dato que envía Labview a través del puerto D
• Envío los datos del puerto B al PC

Salidas:

• Visualizo como se encienden los leds.


• Visualizo en Labview el valor que ingresa por el puerto B

CÓDIGO.
program conlabview

'dim received_byte as byte

dim x as byte

dim b as byte

dim a as string[64]

trisb = $ff 'entrada

trisd = 0 'salida

portd=0

x=0

main:
Usart_Init(9600)

While true

if Usart_Data_Ready =1 then

x= Usart_Read

portd= x

end if

b =Portb

bytetostr(b,a)

Usart_Write_text(a)

delay_ms(100)

wend

end.
DIAGRAMA DE FLUJOS:

INICIO

Puerto D como entrada

Puerto B como salida

Defino variable x,b como


byte

Transmito y envío datos a


través de USART WRITE

Visualizo en software y en
hardware los datos que envío y
recibo

End
ESQUEMÁTICO.

FOTOS.
CONCLUSIONES.

• Utilizar 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.

BIBLIOGRAFÍA

• Hoja de prácticas de microcontroladores PIC proporcionados por


el Ing. Luis Oñate.
• Ayuda del Programa mikrobasic.
• Ayuda del programa LabView.