Ver las NORMAS de estos Foros Web ZackYFileS Chat ZackYFileS Agregar a Favoritos Contactar con Administrador
 
 

TU PUBLICIDAD AQUÍ!!
Navegación
Retroceder   Foros ZackYFileS >
OTROS TEMAS DE INTERES - INTERNET:
> PROGRAMACIÓN Microcontroladores: PICs , AVRs.
Nombre de usuario
Contraseña
Configuración de UsuarioAyuda (FAQs)Nuevos PostsBuscar


Respuesta
 
Herramientas
Antiguo 05/02/2009, 00:57   #1
wolwaiar
Usuario Registrado
 
Fecha de ingreso: 04/feb/2009
Mensajes: 1
wolwaiar está en el buen camino
pic 16f84 problema

Hola, estoy progranando en emsamblador y necesito pasar de una señal anañogica a una digital para visualizarla por rs232, pero me salen rombos y cosas raras y donde la tendion de la bateria una d, si alguien puede echarle un vistazo a ver si tengo algo mal lo agradeceria, gracias.


LIST P=16F84A
INCLUDE
__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC

CBLOCK 0x0C
ENDC

PCF8591_DIR_ESCRITURA EQU b'10011110'
PCF8591_DIR_LECTURA EQU b'10011111'
ENTER EQU .13
;
; ZONA DE CÓDIGOS ********************************************************************

ORG 0
Inicio
call RS232_Inicializa
Principal
call I2C_EnviaStart ; Va a configurar el PCF8591.
movlw PCF8591_DIR_ESCRITURA ; Apunta al dispositivo.
call I2C_EnviaByte
movlw b'00000000' ; Carga la palabra de control utilizando la
call I2C_EnviaByte ; entrada AIN0 en modo simple.
call I2C_EnviaStop ; Termina la configuración
;
call I2C_EnviaStart ; Comienza a leer.
movlw PCF8591_DIR_LECTURA ; Apunta al dispositivo.
call I2C_EnviaByte
call I2C_LeeByte

call I2C_LeeByte ; Lee la entrada analógica.
call Visualiza ; La visualiza.
call Retardo_10s
call RS232_LineasBlanco ; La primera lectura es incorrecta y por lo tanto

Principal1 ; la desecha.
call I2C_EnviaStart
movlw PCF8591_DIR_ESCRITURA
call I2C_EnviaByte
movlw b'00000001'
call I2C_EnviaByte
call I2C_EnviaStop
;
call I2C_EnviaStart
movlw PCF8591_DIR_LECTURA
call I2C_EnviaByte
call I2C_LeeByte

call I2C_LeeByte
call Visualiza1
call Retardo_10s
call RS232_LineasBlanco
goto Principal0

; Subrutinas "Visualiza" ----------------------------------------------------------------
;
; Visualiza el valor que se le introduce por el registro de trabajo W en formato de tensión.
; Hay que tener en cuenta que el PCF8591 del esquema trabaja con una resolución de
; LSB=10mV, el valor de entrada será 10 veces menor que la tensión real expresada en
; milivoltios. Así por ejemplo, si (W)=147 el valor de la tensión será igual a:
; VAIN = LSB x Digital = 10 x 147 = 1470 mV = 1,47 V, que es lo que se debe visualizar
; en la pantalla.
;
; En conclusión:
; - Las centenas del valor digital corresponden a las unidades de voltio.
; - Las decenas del valor digital corresponden a las décimas de voltio.
; - Las unidades del valor digital corresponden a las centésimas de voltios.

CBLOCK
Auxiliar
ENDC

Visualiza
call RS232_LineasBlanco
movwf Auxiliar ; Lo guarda.
movlw MensajeTension ; Visualiza la tensión deseada.
call RS232_Mensaje
movf Auxiliar,W ; Recupera el dato a visualizar y lo
call BIN_a_BCD
; call RS232_EnviaDato ; pasa a BCD.
movf BCD_Centenas,W ; Visualiza las centenas que corresponden a las unidades de voltios.
call RS232_EnviaDato
movf BCD_Decenas,W ; Visualiza las decenas que corresponden a las
call RS232_EnviaDato ; décimas de voltios.
movf BCD_Unidades,W ; Visualiza las unidades que corresponden a las
call RS232_EnviaDato ; centésimas de voltios.
retfie
;------------------------------
;Subrutina "Visualiza1"
;

CBLOCK
Auxiliar1
ENDC

Visualiza1
call RS232_LineasBlanco
movwf Auxiliar1
movlw MensajeTemperatura
call RS232_Mensaje
movf Auxiliar1,W
call BIN_a_BCD
movf BCD_Centenas,W
call RS232_EnviaDato
movf BCD_Decenas,W
call RS232_EnviaDato
movf BCD_Unidades,W
call RS232_EnviaDato
retfie

Mensajes
addwf PCL,F
MensajeTension
DT "Tension Bateria(V): ", 0x00
MensajeTemperatura
DT "Temperatura(Centigrados):",0x00

INCLUDE
INCLUDE
INCLUDE
INCLUDE
INCLUDE
END
wolwaiar está desconectado
Respuesta rápida a este mensaje
Responder Citando Subir
Publicidad: Conoce las ofertas de ANUNCIATE
Antiguo 28/03/2013, 18:33   #2
rina
Usuario Registrado
 
Fecha de ingreso: 21/may/2006
Mensajes: 11
rina está en el buen camino
ostia... pero el problema que el 16f84 no dispone de ningun terminal A/D
lo mas que puedes acer es comprovar el tiempo que tarda en cargar un condensador a partir de una resistencia.
tendrias que currarte unn circuito aparte oscilador calibrado al voltage de carga de bateria.

bamos su una bateria de 12v cargada tenria que dar una tension de 12.2V y bacia unos 10,6V. pongmos que te tienes que curar un circuito que mande un pulso mas corto cuando tiene menos voltage y mas largo al tener algo mas, espues tandsolo es medir el largo del pulso con el pic.
para calibrarlo y que sea vastante preciso tansolo es eliminar por ejemplo 10v de la lectura de la bateria y si tal amplificarla x2 el restante para tener una referencia mas amplia del estado de la bateria. y reflejarsela al pic en un largo de unn pulso que mandaras cada x milisegundos
rina está desconectado
Respuesta rápida a este mensaje
Responder Citando Subir
Antiguo 16/05/2013, 02:09   #3
ma_chavez
Usuario Registrado
 
Fecha de ingreso: 14/may/2013
Mensajes: 2
ma_chavez está en el buen camino
[QUOTE=wolwaiar;3683030]Hola, estoy progranando en emsamblador y necesito pasar de una señal anañogica a una digital para visualizarla por rs232, pero me salen rombos y cosas raras y donde la tendion de la bateria una d, si alguien puede echarle un vistazo a ver si tengo algo mal lo agradeceria, gracias.


LIST P=16F84A
INCLUDE
__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC

CBLOCK 0x0C
ENDC

PCF8591_DIR_ESCRITURA EQU b'10011110'
PCF8591_DIR_LECTURA EQU b'10011111'
ENTER EQU .13
;
; ZONA DE CÓDIGOS ********************************************************************

ORG 0
Inicio
call RS232_Inicializa
Principal
call I2C_EnviaStart ; Va a configurar el PCF8591.
movlw PCF8591_DIR_ESCRITURA ; Apunta al dispositivo.
call I2C_EnviaByte
movlw b'00000000' ; Carga la palabra de control utilizando la
call I2C_EnviaByte ; entrada AIN0 en modo simple.
call I2C_EnviaStop ; Termina la configuración
;
call I2C_EnviaStart ; Comienza a leer.
movlw PCF8591_DIR_LECTURA ; Apunta al dispositivo.
call I2C_EnviaByte
call I2C_LeeByte

call I2C_LeeByte ; Lee la entrada analógica.
call Visualiza ; La visualiza.
call Retardo_10s
call RS232_LineasBlanco ; La primera lectura es incorrecta y por lo tanto

Principal1 ; la desecha.
call I2C_EnviaStart
movlw PCF8591_DIR_ESCRITURA
call I2C_EnviaByte
movlw b'00000001'
call I2C_EnviaByte
call I2C_EnviaStop
;
call I2C_EnviaStart
movlw PCF8591_DIR_LECTURA
call I2C_EnviaByte
call I2C_LeeByte

call I2C_LeeByte
call Visualiza1
call Retardo_10s
call RS232_LineasBlanco
goto Principal0

; Subrutinas "Visualiza" ----------------------------------------------------------------
;
; Visualiza el valor que se le introduce por el registro de trabajo W en formato de tensión.
; Hay que tener en cuenta que el PCF8591 del esquema trabaja con una resolución de
; LSB=10mV, el valor de entrada será 10 veces menor que la tensión real expresada en
; milivoltios. Así por ejemplo, si (W)=147 el valor de la tensión será igual a:
; VAIN = LSB x Digital = 10 x 147 = 1470 mV = 1,47 V, que es lo que se debe visualizar
; en la pantalla.
;
; En conclusión:
; - Las centenas del valor digital corresponden a las unidades de voltio.
; - Las decenas del valor digital corresponden a las décimas de voltio.
; - Las unidades del valor digital corresponden a las centésimas de voltios.

CBLOCK
Auxiliar
ENDC

Visualiza
call RS232_LineasBlanco
movwf Auxiliar ; Lo guarda.
movlw MensajeTension ; Visualiza la tensión deseada.
call RS232_Mensaje
movf Auxiliar,W ; Recupera el dato a visualizar y lo
call BIN_a_BCD
; call RS232_EnviaDato ; pasa a BCD.
movf BCD_Centenas,W ; Visualiza las centenas que corresponden a las unidades de voltios.
call RS232_EnviaDato
movf BCD_Decenas,W ; Visualiza las decenas que corresponden a las
call RS232_EnviaDato ; décimas de voltios.
movf BCD_Unidades,W ; Visualiza las unidades que corresponden a las
call RS232_EnviaDato ; centésimas de voltios.
retfie
;------------------------------
;Subrutina "Visualiza1"
;

CBLOCK
Auxiliar1
ENDC

Visualiza1
call RS232_LineasBlanco
movwf Auxiliar1
movlw MensajeTemperatura
call RS232_Mensaje
movf Auxiliar1,W
call BIN_a_BCD
movf BCD_Centenas,W
call RS232_EnviaDato
movf BCD_Decenas,W
call RS232_EnviaDato
movf BCD_Unidades,W
call RS232_EnviaDato
retfie

Mensajes
addwf PCL,F
MensajeTension
DT "Tension Bateria(V): ", 0x00
MensajeTemperatura
DT "Temperatura(Centigrados):",0x00

INCLUDE
INCLUDE
INCLUDE
INCLUDE
INCLUDE
END[/QUOTE]

Estas queriendo programar un PIC16F84 ???

No parece

el programa esta escrito para otro dispositivo eso de pasar una señal analogica a digital requiere el uso de convertidor A/D o utilizar referencia con comparadores
ma_chavez está desconectado
Respuesta rápida a este mensaje
Responder Citando Subir
Antiguo 16/08/2013, 22:36   #4
covrita
Usuario Registrado
 
Avatar de covrita
 
Fecha de ingreso: 12/abr/2009
Mensajes: 29
covrita está en el buen camino
El F84A no contiene hardware para usar con el protocolo I2C, quizas vaya por ahi el problema (puede ser que este codigo que pones sea para un 877? )
covrita está desconectado
Respuesta rápida a este mensaje
Responder Citando Subir
Publicidad: Conoce las ofertas de ANUNCIATE
Respuesta


Usuarios viendo actualmente este tema: 1 (0 usuarios registrados y 1 visitantes)
 
Herramientas

Permisos para publicar mensajes
No puedes crear nuevos temas
No puedes responder mensajes
No puedes subir archivos adjuntos
No puedes editar tus mensajes

Los BB code están Activado
Los Emoticones están Activado
El código [IMG] está Activado
El Código HTML está Activado

Ir al foro


!! ADVERTENCIAS !!: Las informaciones aquí publicadas NO CONTIENEN KEYS para la decodificación de ningún sistema: NO SON OPERATIVOS en sistemas SAT que precisen de su correspondiente suscripción.

ESTA TOTALMENTE PROHIBIDO EL USO DE ESTAS INFORMACIONES PARA LA MODIFICACIÓN O  DEFRAUDACIÓN DE SISTEMAS DE ACCESO CONDICIONAL.

ESTOS FOROS SON MODERADOS Y NO SE PERMITE LA PUBLICACIÓN DE INFORMACIONES ILEGALES POR PARTE DE LOS USUARIOS. EN CASO DE DETECTARSE ESTE TIPO DE INFORMACIONES, LOS USUARIOS SERÁN EXCLUIDOS DE ESTAS PÁGINAS.

USO DE COOKIES: Utilizamos COOKIES y de terceros para mejorar nuestros servicios y navegación por la web. Si continua navegando, consideramos que acepta su uso.  


La franja horaria es GMT +2. Ahora son las 10:26.


-------------------------------------------------------------------- --------------------------------------------------------------------

Powered por vBulletin™ Version 3.8.10
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.
Traducido por vBsoporte - vBulletin en español
Hispaservicios - J.G.C - 29112549T - Rio Cinca, 2, 30 (50180) SPAIN.
Todos los derechos reservados. Prohibida cualquier reproducion total o parcial.


Foros Patrocinados por anunciantes.