Jump to content
Sign in to follow this  
mkbg12

Duvida - Transferir palavra OLA do Uc para um LCD (Hitashi HD44780)

Recommended Posts

mkbg12

Boas ppl. Tenho um trabalho de faculdade para fazer que usará um LCD e desde já estou a testa-lo. O que estou a tentar fazer é transferir uma palavra do microcontrolador (PIC 16F690) para ser mostrada no LCD (HD44780). Tudo me parece normal, mas a entrada  RS que está ligada ao bit RA1/AN1 do portoA do micro nao fica activa e penso ser má configuração dos registos CM1CON0 e CM2CON0 ( Comparadores analógicos que na minha opinião deverão ser desactivados).

Aqui vos deixo o código para melhor compreensão e desde já obrigado!

CÓDIGO:

List p=16f690

#include <p16f690.inc>

errorlevel -302

__config(_INTRC_OSC_NOCLKOUT & _WDT_OFF & _PWRTE_ON & _MCLRE_OFF & _CP_OFF & _BOR_OFF)

bus_lcd EQU PORTC

#DEFINE ENABLE  PORTA,0

#DEFINE RS PORTA,1

ORG 0x000

goto p_principal

ORG 0x004

RETFIE

;

cod_inst

movwf bus_lcd

bcf   RS

call  EN_dly

return

trx_data

movwf bus_lcd

bsf   RS

call  EN_dly

return

EN_dly

bsf  ENABLE

clrf  TMR2

bcf   PIR1,TMR2IF

bcf  ENABLE

btfss PIR1,TMR2IF

goto $-1

return

;

p_principal

clrf  bus_lcd

banksel PORTA

clrf  PORTA

banksel CM1CON0

movlw b'00000000'

movwf CM1CON0

movlw b'00000000'

movwf CM2CON0

banksel TRISA

clrf  TRISC

clrf  TRISA

banksel INTCON

clrf INTCON

banksel T2CON

movlw 0x1F

movwf T2CON

btfss PIR1,TMR2IF

goto $-1

movlw 0x38

call cod_inst

call cod_inst

call cod_inst

call cod_inst

movlw 0x08

call cod_inst

movlw 0x0C

call cod_inst

movlw 0x06

call  cod_inst

movlw 0x01

call  cod_inst

;ENVIAR PALAVRA

movlw 'O'

call  trx_data

movlw 'L'

call  trx_data

movlw 'A'

call  trx_data

goto  $

END

  -----------------------------------

Cumprimentos

Miguel Castanho @ I.S.E.P.

Share this post


Link to post
Share on other sites
asena

Assim de repente, pelo menos duas coisas ::

# falta a configuração dos ANSEL

# tem que haver mais delay na configuração do LCD, precisa de respirar na configuração.

Os CMxCON nem são precisos mexer, já estão desabilitados qd de PowerUp. Basta ver no registo o estado inicial.

Share this post


Link to post
Share on other sites
bubulindo

Não revi o código (PICs não é comigo)... mas o HD44780 normalmente tem um bit bidireccional que indica se está ocupado ou não. Agora não me lembro exactamente de qual é. Claro que, podes simplificar um bom bocado se apenas fizeres um delay como referiu o asena.


include <ai se te avio>

Mãe () {

}

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.