TODOPIC
Microcontroladores PIC => Almacén del Assembler => Mensaje iniciado por: knozis en 19 de Julio de 2013, 11:41:28
-
Buenos días compañeros, disculpen la necesidad de apertura un nuevo tema por esto, pero he buscado dentro del foro y paginas alternas probando cada uno de los códigos y no he logrado dar con el problema.
Mi proyecto consta de la conexión entre una pantalla lcd de 16x2 y un teclado matricial de 4x4, aparte de la interconexion entre pics por medio del puerto de transmisión, pero no he logrado siquiera que la pantalla refleje el mensaje o se inicialize, por consiguiente el uso del teclado y la interconexion no existe :D :D
La pantalla esta funcionando porque anteriormente yo estaba trabajando con el pic 16f84a y funciona de maravilla, pero al llegar al temido 16f877a nada que funciona, el pic esta funcionando y la pantalla también funciona perfecta. El ultimo código que utilice fue extraído de la pagina web www.openboxer.260mb.com el cual anexo a continuación, pensando que mi código seria el que estuviera defectuoso.
Anexo una foto del esquema de conexión. En la simulación de este y cualquier código va de 10
(http://img199.imageshack.us/img199/3453/sfd3.png)
Agradecería si pudieran darme una mano.
-
Creo que el problema esta en la configuracion del registro ADCON1, hace tiempo que no programo este PIC porque me he pasdo al 16f887 que es una serie mejorada y bastante mas barata, pero creo recordar que habia que hacer esto en la configuracion, para que los puertos A y B sean digitales:
banksel ADCON1
movlw 0X06
mowf ADCON1
Te dejo aqui una pagina con un curso en castellano de 16f877, donde viene bien explicado:
http://www.alos.5u.com/pic16f877/Modulo3.html
-
Gracias por responder tan rapido tapi8, ya volvi a compilar el codigo, quemarlo y probarlo. nada que quiere funcionar aun :? sigo investigando a ver que me falta o en que banco de memoria no defini algo.
-
Mirate la configuracion de los fuses, son diferentes que en el 16f84A, aqui hay mas.
Ese DELAY de 39.22mS ¿No es demasiado grande?.
-
No pareciera amigo, aunque bueno he estado revisando. He realizado un montaje sencillo basado en CCS con el compilador PCW y el pic funciona perfecto junto con la pantalla y hace lo que deseo, paso a assembler y nada funciona. Ha sido tanto asi que con una simple rutina de enceder y apagar leds no ha funcionado.
No se ya que intentar, algo tan sencillo como eso y me esta fallando, solo obtengo 2,5 volts de salida de los 5 respectivos que deberia estar utilizando. :(
Modificacion :
Bueno amigos, luego de darme golpes por un rato y luego comenzar a razonar me di cuenta de mi error. Era en la linea de configuracion donde la estaba agregando incompleta, la cual anexo
__CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_ON & _XT_OSC & _WRT_OFF & _LVP_OFF & _CPD_OF
Me estaba faltando _LVP_OFF lo cual no permitia el correcto funcionamiento..
Muchisimas gracias por todo y por el apoyo.
-
Me alegro que hayas dado con el error.
Vaya eran los FUSES, es muy tipico cuando se cambia de microcontrolador.
Te aconsejaria que te pasaras a la serie 16f88x es una version mejorada de la 16f87x, entre las mejoras estan:clock interno a 4 y 8MHz, mas pines I/O, mas canales ADC y todo esto a mitad de precio.
Para configurar en el MPLAB te vas a "Configure-Configure Bits" y ahi te vienen todos los fuses, te pregunta si se van a incluir en el codigo, le das a aceptar y ya esta.
-
Es mi próxima adquisición para mi próximo proyecto, pero de verdad estaba estancado con este, tenías razón con respecto a los fuses y vaya que me dieron que pensar.
Ahora me dispongo a continuar con el proyecto, ya funciona correctamente mi Lcd de 16x2 y mi función de escaneo de teclado 4x4, ahora mi mayor problema es poder lograr la comunicación en ambas vías entre 2 pics 16f877 por sus puertos de transmisión, pudiendo activar con un teclado el funcionamiento del otro pic conectado en serie.
Muchísimas gracias por todo.