Download McMaster - Mosaico

Transcript
; * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
; *
INICIALIZAÇÃO DA RAM
*
; * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
; ESTA ROTINA IRÁ LIMPAR TODA A RAM DO BANCO 0, INDO DE 0X20 A 0X7F
MOVLW
MOVWF
LIMPA_RAM
CLRF
INCF
MOVF
XORLW
BTFSS
GOTO
;
;
;
;
;
0X20
FSR
INDF
FSR,F
FSR,W
0X80
STATUS,Z
LIMPA_RAM
; APONTA O ENDEREÇAMENTO INDIRETO PARA
; A PRIMEIRA POSIÇÃO DA RAM
; LIMPA A POSIÇÃO
; INCREMENTA O PONTEIRO P/ A PRÓX. POS.
;
;
;
;
COMPARA O PONTEIRO COM A ÚLT. POS. +1
JÁ LIMPOU TODAS AS POSIÇÕES?
NÃO - LIMPA A PRÓXIMA POSIÇÃO
SIM
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*
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
MOVLW
0X30
CALL
ESCREVE
; SELECIONA O DISPLAY P/ COMANDOS
; ESCREVE COMANDO 0X30 PARA
; INICIALIZAÇÃO
MOVLW
CALL
.3
DELAY_MS
; DELAY DE 3MS (EXIGIDO PELO DISPLAY)
MOVLW
CALL
0X30
ESCREVE
; ESCREVE COMANDO 0X30 PARA
; INICIALIZAÇÃO
MOVLW
CALL
0X30
ESCREVE
; ESCREVE COMANDO 0X30 PARA
; INICIALIZAÇÃO
MOVLW
CALL
B'00111000'
ESCREVE
; ESCREVE COMANDO PARA
; INTERFACE DE 8 VIAS DE DADOS
MOVLW
CALL
B'00000001'
ESCREVE
; ESCREVE COMANDO PARA
; LIMPAR TODO O DISPLAY
MOVLW
CALL
.1
DELAY_MS
; DELAY DE 1MS
MOVLW
CALL
B'00001100'
ESCREVE
; ESCREVE COMANDO PARA
; LIGAR O DISPLAY SEM CURSOR
MOVLW
CALL
B'00000110'
ESCREVE
; ESCREVE COMANDO PARA INCREM.
; AUTOMÁTICO À DIREITA
BSF
RS
; SELECIONA O DISPLAY P/ DADOS
; * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
; *
INICIALIZAÇÃO DA RAM
*
; * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
; ESTE TRECHO DO PROGRAMA LÊ O DADOS DA MEMÓRIAS E2PROM EXTERNA E
; ATUALIZA A RAM.
LE_MEMORIA_EEPROM
MOVLW
END_EEPROM_H
MOVWF
ENDERECO_H
MOVLW
END_EEPROM_L
MOVWF
ENDERECO_L
230
; CARREGA ENDEREÇO P/ LEITURA
CALL
I2C_EEPROM_READ
; CHAMA ROTINA P/ LER DADO
MOVF
MOVWF
BUFFER,W
VALOR_DADOS
; SALVA DADO LIDO EM VALOR_DADOS