Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

18/07/2016 #1


Interferencia entre LCD y puerto serie (PIC Simulator IDE "BASIC")
Saludos. Mi problema es el siguiente:
Estoy realizando un medidor de energía utilizando los ADC del PIC16F88 y quiero mostrar los valores medidos, tanto por una LCD, como enviarlo a la PC a través del puerto serial, pero cuando uso la instrucción HSEROPEN, la LCD deja de mostrar caracteres, si la elimino del programa, la LCD funciona perfectamente.

Tengo que usar esa instrucción obligatoriamente porque quiero capturar lo que haya en el buffer y para eso uso el HSERGET, porque la comunicación serial por software no tiene una instrucción para eso. (Por lo menos, no la conozco)

Aquí el código que uso:
Código PHP:
Define LCD_BITS 4
Define LCD_DREG 
PORTB
Define LCD_DBIT 
4
Define LCD_RSREG 
PORTA
Define LCD_RSBIT 
0
Define LCD_EREG 
PORTA
Define LCD_EBIT 
2

OSCCON 
01110110b

ANSEL 
00001010b

Dim x 
As Byte  'variable para saludar
Dim corriente As Byte  '
Corriente
Dim voltaje 
As Byte  'voltaje
Dim potencia As Single  '
potencia
Dim orden 
As Byte  'comando desde pc

INTCON.7 = 1
INTCON.4 = 1
Hseropen 9600
Lcdinit LcdCurOff

Enable
x = 1
'
MAIN
main
:

'Saludos
If x = 1 Then
Gosub saludos
Endif

Hserget orden
Select Case orden
Case "b"
Hserout #potencia

EndSelect
Goto main
End 

'
Rutina de saludos inicial
saludos
:
2
Lcdcmdout LcdLine1Pos
(2)
Lcdout "Red Electrica"
WaitMs 1000
Lcdcmdout LcdLine2Pos
(5)
Lcdout "Virtual"
WaitMs 1000
Lcdcmdout LcdClear
Lcdcmdout LcdLine1Pos
(3)
Lcdout "Ing. Adames"
WaitMs 1000
Lcdcmdout LcdLine2Pos
(2)
Lcdout "Ing. Hernandez"

WaitMs 1000
Lcdcmdout LcdClear

Return       

On Interrupt
Save System

INTCON.7 
0
INTCON.4 
0

Adcin 1
corriente
Adcin 3
voltaje
potencia 
corriente voltaje

Lcdcmdout LcdHome
Lcdout 
"Potencia:"
Lcdcmdout LcdLine2Home
Lcdout 
#potencia
INTCON.INT0IF 0
INTCON.7 
1
INTCON.4 
1
            
Resume 
19/07/2016 #2

Avatar de Scooter

HSEROPEN ¿Usa la uart hardware o genera una por software?
Los Waits esos tampoco me gustan un pelo
19/07/2016 #3
Moderador

Avatar de D@rkbytes

Kenlly dijo: Ver Mensaje
quiero mostrar los valores medidos, tanto por una LCD, como enviarlo a la PC a través del puerto serial, pero cuando uso la instrucción HSEROPEN, la LCD deja de mostrar caracteres, si la elimino del programa, la LCD funciona perfectamente.
Se me hace muy lógico, porque el bus de datos de la pantalla lo tienes en el puerto B ocupando el pin Tx.
Entonces cuando activas el módulo AUSART, la pantalla deja de funcionar correctamente.

Tienes esta definición:
Define LCD_DREG = PORTB
Eso define los bits <RB7:RB4> como el bus de datos para la pantalla.
Y dentro de esos bits está RB5/SS/TX/CK

Scooter dijo: Ver Mensaje
HSEROPEN ¿Usa la uart hardware o genera una por software?
HSEROPEN usa el módulo AUSART, o sea que es por hardware.
H = Hardware
SER = Serial
19/07/2016 #4


Gracias por sus respuestas.
D@rkbytes, es lo que he estado pensando, ya que ambos comparten el RB5, pero también se supone que la LCD no detecte cambios en el la linea de datos si la linea de control no da la orden, o sea que debería poder compartir ese pin sin problema alguno.
19/07/2016 #5
Moderador

Avatar de D@rkbytes

Posiblemente ese compilador no tiene un buen manejo sobre la pantalla.
De hecho eso es lo más probable, ya que en proteus no se puede simular la pantalla a 4 bits.

Tienes dos opciones.
1.- Haz una prueba con otro PIC que tenga más puertos para que cambies de lugar la pantalla.
2.- Usa RS-232 por software y Tx en otro pin. (Más recomendable)
19/07/2016 #6


Gracias, ya pude resolverlo. Cambié la la linea de datos de la lcd al puerto A, empezando desde el bit 0, porque si empiezo en el 4, como RA5 es entrada no funcionaría. Cambié las lineas de control RB1 y RB3, todo listo. Muchas gracias!
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.