Programa lcd pic16f877

Solo disponible en BuenasTareas
  • Páginas : 4 (797 palabras )
  • Descarga(s) : 0
  • Publicado : 27 de septiembre de 2010
Leer documento completo
Vista previa del texto
LIST P=16F877 ; Se indica el tipo de procesador
RADIX HEX ; Sistema de numeracion hexadecimal
INCLUDE <<P16F877.INC>> ; Se incluye la definicion de los registros internos en la libreriaT_MIN EQU 0*25 ; Temperatura minima
T_MAX EQU 0*35 ; Temperatura maxima
Led_var EQU 0*20 ; Variables para LCD
DUTY_H EQU 0*22 ; Anchura del pulso
DUTY_L EQU 0*23
DATOA_H EQU 0*24; Multiplicando por 16 bits
DATOA_L EQU 0*25
DATOB_H EQU 0*26 ; Multiplicando por 16 bits
DATOB_L EQU 0*27
DATOD_H EQU 0*28 ; Resultado de 32 bits
DATOD_L EQU 0*29
DATOC_H EQU 0*2A
DATOC_LEQU 0*2B
CONTADOR EQU 0*2C
BCD_2 EQU 0*2D ; Variables BCD
BCD_1 EQU 0*2E
BCD_0 EQU 0*2F
TEMPORAL EQU 0*30
DELAY EQU 0*31 ; Variable de temporizacion

ORG 0*00 ; Inicio en el Vector deReset
goto INICIO ; Va a la primera instruccion del programa
ORG 0*05 ; Salva vector de interrupcion
INCLUDE <<LCD_CXX.INC>> ; Incluye rutinas de LCD

; Multiplicacion de16*16 de dos numeros sin signo

MUL 16*16 movlw .16 ; Incializacion de contador
movwf CONTADOR
clrf DATOD_H ; Borra parte alta del resultado
clrf DATOD_L

MUL_LOOP rrf DATOB_H,Frrf DATOB_L,F
btfss STATUS,C
goto NO_SUMA
movf DATOA_L,W
addwf DATOB_D,F
btfsc STATUS,C
incf DATOD_H,F
movf DATOA_H,W
addwf DATOD_H,F
NO_SUMA rrf DATOD_H,F
rrf DATOD_L,Frrf DATOC_H,F
rrf DATOC_L,F
decfsz CONTADOR,F
goto MIL_LOOP
return

; Rutina de conversion de un numero binario de 16 bits a 5 digitos BCD para sacar por LCD

BITS16_BCD bcfSTATUS,C
clrf CONTADOR
bsf CONTADOR.4
clrf BCD_0
clrf BCD_1
clrf BCD_2
LOOP_16 rlf DATOC_L,F
rlf DATOC_H,F
rlf BCD_2,F
rlf BCD_1,F
rlf BCD_0,Fdecfsz CONTADOR,F
goto AJUSTE
return
AJUSTE movlw BCD_2
movwf FSR
call AJUSTE_BCD
incf FSR,F
call AJUSTE_BCD
goto LOOP_16
AJUSTE_BCD movf INDF,W
addlw 0*03...
tracking img