informe comunicacion serial
TRANSCRIPT
UNIVERSIDAD POLITÉCNICA
SALESIANA
SISTEMAS MICROPROCESADOS 1
INFORME PRÁCTICA #09
TEMA: Comunicaciones seriales
asíncronas.
DAVID ESPÍN
ANDRÉS MOGRO
MARZO – JULIO 2010
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 rec ibido
received_byte = Usart_Read 'dato se guard a
usart_Write (received_byte) 'El dato es tr ansmitido
end if
wend
end.
DIAGRAMA DE FLUJO
INICIO
Configuro e inicio el
modulo Usart
Muestro el dato enviado y
recibido en el hiperterminal
Leo el dato del PC
en el pic
Guardo el dato
Envío dato hacia 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 b audios while true a= a + 1 'incrementa el codigo ASCII de uno en uno Usart_Write(a) 'envia los datos por el pin tra nsmisor delay_ms(100) 'retardo para observar los cara cteres 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
Visualizo los datos en el
hyperterminal
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
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 baudio s while true if Usart_Data_Ready = 1 then 'si el dato es recibid o 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
Visualizo los datos en el puerto B
mediante leds
Lectura del dato del
puerto serie
Envío datos desde el
PC hacia el pic
Guardo datos en una
variable y envío hacia el
puerto B
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:
ESQUEMÁTICO.
INICIO
Definir Variables
Puerto A como salida
Inicializar Puerto Serial
(9600)
Conversor Analógico/Digital
Enviar datos comunicación
serial al PC
End
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
End
Visualizo en software y en
hardware los datos que envío y
recibo
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.