TODOPIC
Microcontroladores PIC => Almacén del Assembler => Mensaje iniciado por: Acumulador13 en 30 de Junio de 2009, 12:41:25
-
Hola a tod@s, hace poco resolvimos un tema con el conversor A/D que acabo en alegrias y abrazos, pues bien, una vez logrado la conversión y su posterior tratamiento con el consecuente entusiasmo que esto conlleva me dispuse a hacer una prueba con el LCD para que me sacara el dato en decimal proveniente del registro donde guardo la conversión A/D, para esto utilice las librerias LCD_4BIT.inc y BIN_BCD.inc que en el PIC16f84A me funcionan correctamente y sin mas desafios, pues no va, o sea que se me queda la linea de arriba con los clasicos " cuadraditos" y la de abajo en blanco. Para esta prueba utilice un programa ejemplo que en el PIC16F84 funciona bien, cambie la configuración de un PIC a otro. Bueno, mi pregunta es si estas librerias funcionan con el PIC16F88, de ser afirmativo posteare el ASM y nos reimos un rato( :mrgreen: ) del error que posiblemente haya yo cometido en mi corta pero intensa carrera en esto de los pic. De no ser afirmativo, intentare definir el LDC poco a poco hasta que consiga hacerlo funcionar ( Esto se traduce leyendo los horaculos oscuros de los dioses (lease DATA SHEET)).
Gracias a tod@s
NOTA: Alguien sabe como coj... se pone un avatar? :D :D :D
-
Si se puede, así que sube para reírnos un rato :D
-
Bueno, sed benevolos y consecuentes con el que suscribe, estaba en este momento mirando la configuración.
Este es el ejemplo:
; LIST P=16F84A
; INCLUDE <P16F84A.INC>
; __CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC
PROCESSOR 16F88
INCLUDE "p16f88.inc"
RADIX DEC
__CONFIG _CONFIG1, _CP_OFF & _CCP1_RB3 & _DEBUG_OFF & _WRT_PROTECT_OFF & _CPD_OFF & _LVP_OFF & _BODEN_OFF & _MCLR_ON & _PWRTE_OFF & _WDT_OFF & _XT_OSC
__CONFIG _CONFIG2, _IESO_OFF & _FCMEN_OFF
CBLOCK 0x0C
Contador ; El contador a visualizar.
ENDC
#DEFINE Pulsador PORTA,4 ; Línea donde se conecta el pulsador.
; ZONA DE CÓDIGOS ********************************************************************
ORG 0
Inicio
call LCD_Inicializa
bsf STATUS,RP0
bsf Pulsador ; Línea del pulsador se configura como entrada.
bcf STATUS,RP0
clrf Contador ; Inicializa contador y los visualiza por 1ª vez,
call Visualiza
Principal
btfss Pulsador ; Lee el pulsador.
call IncrementaVisualiza ; Si pulsa salta a incrementar y visualizar el
goto Principal ; contador
; Subrutina "IncrementaVisualiza" -------------------------------------------------------
;
IncrementaVisualiza
call Retardo_20ms ; Espera a que se estabilicen los niveles de tensión.
btfsc Pulsador ; Vuelve a leer el pulsador.
goto Fin_Incrementa
incf Contador,F ; Incrementa el contador y después lo visualiza.
Visualiza
movlw .7 ; Se sitúa en el centro de la línea 1.
call LCD_PosicionLinea1
movf Contador,W
call BIN_a_BCD ; Se debe visualizar en decimal.
call LCD_Byte
EsperaDejePulsar
btfss Pulsador
goto EsperaDejePulsar
Fin_Incrementa
return
INCLUDE <RETARDOS.INC>
INCLUDE <BIN_BCD.INC>
INCLUDE <LCD_4BIT.INC>
END
-
Y si, hay que leer el datasheet del 16F88. No se puede colocar:
CBLOCK 0x0C
Contador ; El contador a visualizar.
ENDC
-
:shock: , vale lo he quitado (de todas formas en los programas suelo ponerlo y me funcionan). Al registro contador lo he ubicado con EQU a 1Ch, he reconfigurado los puertos, sigue sin irme, estoy en ello, en el momento vea la luz me comprare unas gafas ( para leer el horaculo ). Gracias Suky, voy a repasarme la hoja técnica, haré unas pruebas que tengo en la cabeza y ya posteo algo....a ver...
-
:shock: Debe ser:
CBLOCK 0x20
Contador ; El contador a visualizar.
ENDC
Y fíjate en las librerías que deben estar igual y hay que modificarlos. El problema es que el 16F88 tiene los registros de propósito general a partir de 0x20 :-)
-
:shock: :? Jo..., de todas formas no me va, ahora estoy revisando haciendo pruebas, cada vez que no me funcione estaré mas cerca de que me vaya.
gracias Suky, estos fallos son bastantes normales en mi, estan ahí, agazapados, escondidos en las lineas, hasta que te das cuenta. Lo positivo de todo es que debo revisar paso a paso todo el programa y analizar esta cosas, me sorprendeis cuando lo detectais vosotros, a saber cuantas veces y cuantas cosas os han pasado para llegar a controlar el tema....y eso no es gratuito, eso lleva tiempo. :)
-
:shock: :? Jo..., de todas formas no me va, ahora estoy revisando haciendo pruebas, cada vez que no me funcione estaré mas cerca de que me vaya.
gracias Suky, estos fallos son bastantes normales en mi, estan ahí, agazapados, escondidos en las lineas, hasta que te das cuenta. Lo positivo de todo es que debo revisar paso a paso todo el programa y analizar esta cosas, me sorprendeis cuando lo detectais vosotros, a saber cuantas veces y cuantas cosas os han pasado para llegar a controlar el tema....y eso no es gratuito, eso lleva tiempo. :)
Mas que nada es haber trabajado con varios PIC, eso que lleva a conocerlos profundamente y ver las diferencias entre uno y otro. :wink: