Electrónica Unicrom
Conceptos Componentes Digitales PIC, PLC, Osciladores, Filtros, Máquinas Diagramas Foros
Circuitos Computadoras Referencia Instrumentos Mediciones Telecom Fuentes UPS
Registro Ayuda
Usuario:
Contraseña:
Termometro digital de monografias.com

 
 Todos los Foros
 PICs
 Termometro digital de monografias.com
 Versión para impresora  
Autor Tópico Anterior Tópico Tópico siguiente  

Terry Logan
Principiante


3 Comentarios

Enviado el - 12/04/2006 :  12:35:14 AM  Mostrar Perfil Enviar un mensaje privado a Terry Logan

K tal gente.

Soy estudiante de ingenieria y hasta hace menos de un mes no sabia ni que era un pic....
y ahora es lo k me mantiene despierto (damm)

En fin, de proyecto de medio curso me pidieron que hiciera el siguiente Termometro digital:

http://www.monografias.com/trabajos15/termometro-digital/termometro-digital.shtml

Pero creo que trae errores.... ademas no trae la programacion del PIC y me he roto la cabeza haciendo esto:


LIST p=16F84A ;TERMOMETRO CON LCD ya tengo mucho sueño

#define LEER bsf PORTA,0 ;Pone LCD en Modo LECTURA
#define ESCRIBE bcf PORTA,0 ;Pone LCD en Modo ESCRITURA
#define OFFC bcf PORTA,1 ;Desactiva RS (modo comando)
#define ONC bsf PORTA,1 ;Activa RS (modo datos)

PCL EQU 0x02 ;bloque de etiquetas y
STATUS EQU 0x03 ;variables
PORTA EQU 0x05
PORTB EQU 0x06
CONTA2 EQU 0x0C
CONTA3 EQU 0x0D
decena EQU 0x0E
unidad EQU 0x0F
nueve EQU 0x10
AUX EQU 0x11
DIR EQU 0x12
RESUL EQU 0x13

ORG 0
goto INICIO ;salta a INICIO

ORG 5
INICIO bsf STATUS,5 ; Banco 1, CONFIGURACION PARA EL TERMOMETRO
movlw b'00011'
movwf PORTA ; PUERTO A SALIDA
movlw h'ff'
movwf PORTB ; PUERTO B ENTRADA
bcf STATUS,5 ; Banco 0

movlw d'09' ; nueve = 9
movwf nueve

clrf AUX ;limpiar variables (=0)
clrf decena

bcf PORTA,2 ; habilita ADC
nop ; lectura del ADC
nop
nop
bcf PORTA,2 ; habilita ADC
nop
nop
nop
bcf PORTA,4 ; habilita conversion
call time

bsf PORTA,4
nop
nop
nop

bcf PORTA,3 ; habilita buffers de salida
nop
nop
nop
call time ; espera

movf PORTB,w ; lectura del ADC
movwf AUX ; la varriable AUX guarda el valor
; de la conversión

bsf PORTA,2 ; deshabilita buffers de salida
nop
nop
nop
bsf STATUS,5 ;Banco 1 , CONFIGURA LCD
clrf PORTB ;PUERTOB salida
movlw b'10000' ;PA4 = entrada
movwf PORTA ;PA0-PA3= salida
bcf STATUS,5 ;Banco 0
OFFC ;RS=0
bcf PORTA,2 ;Desactiva LCD
movlw b'00111000' ;INICIA LCD
call INSTRUC ;Codigo de instrucci¢n
call time ;Temporiza

movlw b'00000001' ;Borra LCD y Home
call INSTRUC
movlw b'00001100' ;LCD activado, cursor desactivado
call INSTRUC
movf AUX,w ;w = AUX
movwf unidad ; unidad = w

;DIVISION DEL NUMERO EN UNIDADES
ini movf unidad,0 ; Y DECENAS
subwf nueve,0
btfss STATUS,0 ; ¨ unidad > 9 ?
goto divide ; Si, salta a restar 10
goto numero ; No, visualiza el dato

divide movlw d'10'
subwf unidad,f ; unidad - 10 = unidad
incf decena,f ; decena = decena + 1
goto ini ; salta a ini

numero movlw 0x84 ; se visualizan las unidades en la
; posicion 84 de la 1ra linea
call INSTRUC ; Comando para el LCD
movlw b'00000110' ; Establece la direccion del cursor
call INSTRUC
movf unidad,w ; w = unidad
call DATOS ; obtiene el equivalente ASCII
call DATO ; visualiza el dato

movlw 0x83 ; se visualizan las decenas en la
; posicion 83 de la 1ra linea
call INSTRUC ; Comando para el LCD
movlw b'00000110' ; Establece la direccion del cursor
call INSTRUC
movf decena,w ; w = decena
call DATOS ; obtiene el equivalente ASCII
call DATO ; visualiza el dato

movlw 0x86 ; MENSAJE
call INSTRUC ; Comando para el LCD
movlw b'00000110' ; Establece la direccion del cursor
call INSTRUC
clrf DIR ; Direcci¢n del mensaje
clrf RESUL ; Inicializa contador de caracteres
MENSAJE movf DIR,w ; toma el desplazamiento
addwf RESUL,w ; Calcula el caracter a tomar
call DATOS1 ; obtiene el equivalente ASCII
iorlw 0 ;
btfsc STATUS,2 ; Comprueba si es el ultimo
goto FIN ; Si, salta a FIN
call DATO ; No, Visualiza el caracter
incf RESUL,f ; Incrementa contador de caracteres
goto MENSAJE ; salta a MENSAJE

FIN call time ; espera
call time
call time

goto INICIO ; vuelve para hacer nuevamente todo
; el proceso

DATOS addwf PCL,1 ; TABLA DE DATOS
retlw '0'
retlw '1'
retlw '2'
retlw '3'
retlw '4'
retlw '5'
retlw '6'
retlw '7'
retlw '8'
retlw '9'

DATOS1 addwf PCL,1 ; TABLA DE DATOS A VISUALIZAR
retlw h'DF' ; equivalente ASCII de ø
retlw 'C'
retlw 0x00

BUSY LEER ; Pone el LCD en Modo LECTURA
bsf STATUS,5
movlw H'FF'
movwf PORTB ; Puerto B como entrada
bcf STATUS,5 ; Selecciona el banco 0
bsf PORTA,2 ; activa LCD
nop
BUSY1 btfsc PORTB,7 ; Checa bit de Busy
goto BUSY1
bcf PORTA,2 ; Desactiva LCD
bsf STATUS,5
clrf PORTB ; Puerto B salida
bcf STATUS,5
ESCRIBE ; Pone LCD en modo ESCRITURA
return

ACTIVA bsf PORTA,2 ; Activa LCD
nop
nop
nop
bcf PORTA,2 ; Desactiva LCD
nop
nop
nop
return

DATO OFFC ; Desactiva RS (modo comando)
movwf PORTB ; Valor ASCII a sacar por PUERTOB
call BUSY ; Espera a que se libere el LCD
ONC ; Activa RS (modo dato)
call ACTIVA ; Habilitacion del LCD
return

INSTRUC OFFC ; Desactiva RS (modo comando)
movwf PORTB ; Codigo de comando
call BUSY ; LCD libre?
call ACTIVA ; Si, Genera pulso de E.
return
time movlw 0x99
movwf CONTA3 ; CONTA3 = 0x99
movwf CONTA2 ; CONTA2 = 0x99
DEL1 decf CONTA2,f ; CONTA2 - 1
DEL2 decf CONTA3,f ; CONTA3 - 1
nop
nop
movf CONTA3,1 ; Se actualiza Z
btfss STATUS,2 ; Explora Z y si vale 1 se produce
goto DEL2 ; "brinco"
movf CONTA2,1 ; Se actualiza Z
btfss STATUS,2 ; Explora Z y si vale 1 se produce
goto DEL1 ; "brinco"
return
END

El caso es que segun la configuracion que aparece en el diagrama tiene conecciones que no he visto que sean usadas normalmente en otros trabajos con el 16f84

ya lo tengo armado EXACTAMENTE como aparece el diagrama, ahora necesito saber si hay algun error en la programacion para saber si esto funcionara.

GRACIAS


Nuevos foros de Electrónica Unicrom
Regístrate y participa


Terry Logan
Principiante


3 Comentarios

Incluido el - 12/04/2006 :  9:17:01 PM  Mostrar Perfil Enviar un mensaje privado a Terry Logan
mmmmm si saben programar pic's verdad?

Ir Arriba


rosarino762
Moderador



1638 Comentarios
Argentina
Incluido el - 12/04/2006 :  10:42:35 PM  Mostrar Perfil Enviar un mensaje privado a rosarino762
Mira no soy experto en esto de pic el problema que ponerse a revisar el esquema demanda muchisimo tiempo trata de puntualizar mas el problema...

"Si Hay Energia No Existen Limites"Ir Arriba


manny
Miembro regular


59 Comentarios
USA
Incluido el - 13/04/2006 :  3:02:58 PM  Mostrar Perfil  Visitar la Página Web de:manny Enviar un mensaje privado a manny
puedes leer el topico
EL ad0831 y el pic 16f84
este trabajo te resuelve el problema de tu
proyecto

MannyUSAIr Arriba


manny
Miembro regular


59 Comentarios
USA
Incluido el - 13/04/2006 :  3:17:06 PM  Mostrar Perfil  Visitar la Página Web de:manny Enviar un mensaje privado a manny
terry a su programa le falta la secuencia
para pader leer y hacer la conversion de A/D
en el ic ad804
si lo probo se dara cuenta que el display
solo da sifras en cero


MannyUSAIr Arriba


Terry Logan
Principiante


3 Comentarios

Incluido el - 17/04/2006 :  6:29:13 PM  Mostrar Perfil Enviar un mensaje privado a Terry Logan
no soy un gran programador que digamos ;_; pase programacion C++ en segunda oportunidad ¬¬

Ir Arriba



Ir a:

Poner Unicrom como página de inicio Poner Unicrom en Favoritos Privacidad   © 2002-12 Unicrom.com All Rights Reserved. MaxWebPortal Snitz Forums Ir arriba