Configuração ASM LCD PIC18F4550

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

Configuração ASM LCD PIC18F4550

Mensagempor roquetti » 15 Abr 2010 09:20

Pessoall,
Bom dia
Não estou conseguindo escrever no display LCD 16x2 alfanumérico em ASM com o PIC 18F4550, segue partes do programa que se refere ao LCD, tem alguma coisa erra?, tá faltando alguma configuração?

; * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
; * DEFINIÇÃO DAS VARIÁVEIS *
; * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
CBLOCK 0X00 ; BANK 0 --> 0X00..0X5F --> ACCESS BANK

TEMPO1
TEMPO0 ; CONTADORES P/ DELAY
DISP_LCD_TEMP
AUX ; REGISTRADOR AUXILIAR DE USO GERAL

UNIDADE ; ARMAZENA VALOR DA UNIDADE
DEZENA ; ARMAZENA VALOR DA DEZENA
CENTENA ; ARMAZENA VALOR DA CENTENA

ENDC

........................................................................................................................


* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
; * SAÍDAS *
; * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
; AS SAÍDAS DEVEM SER ASSOCIADAS A NOMES PARA FACILITAR A PROGRAMAÇÃO E
; FUTURAS ALTERAÇÕES DO HARDWARE.

#DEFINE DISP_LCD LATD ; BARRAMENTO DE DADOS DO DISPLAY

#DEFINE RS LATD,0 ; INDICA P/ O DISPLAY UM DADO OU COMANDO
; 1 -> DADO
; 0 -> COMANDO

#DEFINE ENABLE LATD,1 ; SINAL DE ENABLE P/ DISPLAY
; ATIVO NA BORDA DE DESCIDA

............................................................................................................................................................


; * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
; * ROTINA DE DELAY (DE 1MS ATÉ 256MS) *
; * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
; ESTA É UMA ROTINA DE DELAY VARIÁVEL, COM DURAÇÃO DE 1MS X O VALOR PASSADO
; EM WORK (W).

DELAY_MS
MOVWF TEMPO1 ; CARREGA TEMPO1 (UNIDADES DE MS)
MOVLW .250
MOVWF TEMPO0 ; CARREGA TEMPO0 (P/ CONTAR 1MS)

CLRWDT ; LIMPA WDT (PERDE TEMPO)
DECFSZ TEMPO0,F ; FIM DE TEMPO0 ?
BRA $-.4 ; NÃO - VOLTA 2 INSTRUÇÕES
; SIM - PASSOU-SE 1ms
DECFSZ TEMPO1,F ; FIM DE TEMPO1 ?
BRA $-.12 ; NÃO - VOLTA 6 INSTRUÇÕES
RETURN ; SIM - RETORNA

.................................................................................................................................................

; * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
; * ROTINA DE ESCRITA DE UM CARACTER NO DISPLAY *
; * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
; ESTA ROTINA ENVIA UM CARACTER PARA O MÓDULO DE LCD. O CARACTER A SER
; ESCRITO DEVE SER COLOCADO EM WORK (W) ANTES DE CHAMAR A ROTINA.

ESCREVE
BSF ENABLE ;habilita LCD para pegar informação no barramento
MOVWF DISP_LCD_TEMP ;guarda informação atual no temporário

MOVLW 0X0F ;zera o barramento de 4 vias (DB4 à DB7)
ANDWF DISP_LCD,F ;atualiza LCD: zera o barramento
MOVLW 0XF0 ;máscara para informação de DB4 à DB7
ANDWF DISP_LCD_TEMP,W ;envia parte alta primeiro
IORWF DISP_LCD,F ;atualiza LCD
BCF ENABLE ;desabilita LCD
NOP ;atraso
BSF ENABLE ;habilita LCD para pegar informação no barramento
SWAPF DISP_LCD_TEMP,F ;inverte para alta com parte baixa no temporário
MOVLW 0X0F ;zera o barramento de 4 vias (DB4 à DB7)
ANDWF DISP_LCD,F ;atualiza LCD: zera o barramento
MOVLW 0XF0 ;máscara para informação de DB4 à DB7
ANDWF DISP_LCD_TEMP,W ;envia parte baixa da informação original
IORWF DISP_LCD,F ;atualiza LCD
BCF ENABLE ;desabilita LCD
MOVLW .1
RCALL DELAY_MS ; DELAY DE 1MS
RETURN ; RETORNA


.....................................................................................................................................

MOVLW B'00000000'
MOVWF TRISD ; CONFIGURA I/O DO PORTD

............................................................................................................................................

; * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
; * CONFIGURAÇÕES INICIAIS DO DISPLAY *
; * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
; ESTA ROTINA INICIALIZA O DISPLAY P/ COMUNICAÇÃO DE 8 VIAS, DISPLAY PARA 2
; LINHAS, CURSOR APAGADO E DESLOCAMENTO DO CURSOR À DIREITA.

INICIALIZACAO_DISPLAY
BCF RS ; SELECIONA O DISPLAY P/ COMANDOS

MOVLW 0X30 ; ESCREVE COMANDO 0X30 PARA
RCALL ESCREVE ; INICIALIZAÇÃO

MOVLW .3
RCALL DELAY_MS ; DELAY DE 3MS (EXIGIDO PELO DISPLAY)

MOVLW 0X30 ; ESCREVE COMANDO 0X30 PARA
RCALL ESCREVE ; INICIALIZAÇÃO

MOVLW 0X30 ; ESCREVE COMANDO 0X30 PARA
RCALL ESCREVE ; INICIALIZAÇÃO

MOVLW B'00101000' ; ESCREVE COMANDO PARA
RCALL ESCREVE ; INTERFACE DE 4 VIAS DE DADOS

MOVLW B'00000001' ; ESCREVE COMANDO PARA
RCALL ESCREVE ; LIMPAR TODO O DISPLAY

MOVLW .1
RCALL DELAY_MS ; DELAY DE 1MS

MOVLW B'00001100' ; ESCREVE COMANDO PARA
RCALL ESCREVE ; LIGAR O DISPLAY SEM CURSOR

MOVLW B'00000110' ; ESCREVE COMANDO PARA INCREM.
RCALL ESCREVE ; AUTOMÁTICO À DIREITA


; * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
; * ROTINA DE ESCRITA DA TELA PRINCIPAL *
; * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
; ESTA ROTINA ESCREVE A TELA PRINCIPAL DO PROGRAMA, COM AS FRASES:
; LINHA 1 - "USART:9600,8,n,1"
; LINHA 2 - "TX: d h RX: "

MOVLW 0X80 ; COMANDO PARA POSICIONAR O CURSOR
RCALL ESCREVE ; LINHA 0 / COLUNA 0
BSF RS ; CONFIGURA CONVERSOR A/D; SELECIONA O DISPLAY P/ DADOS

....................................................................................................................................................................
Abraços,

Paulo Roquetti
Jaguariúna - SP


" Quando a gente vê uma moeda no chão, a gente só saberá o real valor dela se olhar as duas faces"


Meus projetos no youtube
http://www.youtube.com/results?search_q ... type=&aq=f
roquetti
Byte
 
Mensagens: 183
Registrado em: 27 Dez 2008 23:07
Localização: Jaguariúna - SP

Re: Configuração ASM LCD PIC18F4550

Mensagempor roquetti » 15 Abr 2010 12:10

Consegui, desabilitei a porta paralela:

MOVLW B'00000000' ; Desabilita Porta paralela
MOVWF SSPCON1

Abraços,

Paulo Roquetti
Jaguariúna - SP


" Quando a gente vê uma moeda no chão, a gente só saberá o real valor dela se olhar as duas faces"


Meus projetos no youtube
http://www.youtube.com/results?search_q ... type=&aq=f[/quote]
roquetti
Byte
 
Mensagens: 183
Registrado em: 27 Dez 2008 23:07
Localização: Jaguariúna - SP


Voltar para PIC

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

x