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