Foros de Electrónica

Comunidad de discusión sobre Automatización, Electrónica industrial, Microcontroladores y electrónica digital, Robótica, Domótica, Telemática, Tecnologías móviles, y muchos temas más.




Falla mi pic16f84a, falla su programa o el programador, nose


       



#1  Falla mi pic16f84a, falla su programa o el programador, nose
Zettaextremo
Ubicación: Rio Bravo, Mexico
Registrado: 01 Nov 2007
Mensajes: 34
citar
Disculpen pero tengo un pequeño problema al programar un pic 16f84a, no se si me faltaran algunas instrucciones que van al inicio, lo del resto del programa esta bien, algun detalle que se me haya escapado, con eso prendere unos leds, simulando que enciendo un motor, pero ni siquiera en la subrutina de descanso se prenden los leds que se deberian prender por eso digo que el problema es yo creo en la asignacion de puertos de salida y entrada... si necesitan alguna informacion extra se las respondo enseguida, tambien no se si puedan pasarme un pequeño programa de prender solo un led, uno que ya sirva, para vr si el problema es el programador.

Código: Seleccionar todo
List   p=16f84a

   INCLUDE      <P16F84A.INC>


__CONFIG _CP_OFF & _PWRTE_ON & _WDT_OFF & _XT_OSC

timer1      equ   0c
timer2      equ   0d
timer3      equ   0e
motoraa1   equ   porta, 3         ;leds
motoraa2   equ   porta, 2
motorab1   equ   porta, 0
motorab2   equ   porta, 1
motorba1   equ   portb, 3
motorba2   equ   portb, 2
motorbb1   equ   portb, 4
motorbb2   equ   portb, 5
motorc1      equ   portb, 6
motorc2      equ   portb, 7
entrada1   equ   portb, 0         ;entrada de dos interruptores que
entrada2   equ   portb, 1         ;que estan conectados desde +5v
                     ;y de unas resistencias de 10kohms

org      0x0000
      goto   encendido
org      0x0004
      nop

encendido   
      clrwdt               ;limpia el perro guardian
      movlw   b'00000000'
      movwf   intcon
      bcf   STATUS, rp1
      bsf   status, rp0
      movlw   b'00000000'
      movwf   option_reg
      movlw   b'00000000'         ;todas son salidas en porta
      movwf   trisa
      movlw   b'00000011'         ;solo porta 0 y porta 1 son entradas las demas
      movwf   trisb            ;salidas
      bcf   status, rp0
      clrf   porta            ;limpia los puertos
      clrf   portb

Principal

menu      call   descansar         ;hace una demora
      btfsc   entrada1
      call   marcar_paso
      btfsc   entrada2
      call   girar
      goto   menu

marcar_paso   clrf   entrada1
      clrf   entrada2
      bsf   motoraa1
      bsf   motorab1
      bsf   motorba1
      bsf   motorbb1
      call   tempo
      call   tempo
      call   tempo
      bcf   motoraa1
      bcf   motorab1
      bcf   motorba1
      bcf   motorbb1
ciclo1      bsf   motoraa2
      bsf   motorba2
      call   tempo
      call   tempo
      bcf   motoraa2
      bcf   motorba2
      bsf   motoraa1
      bsf   motorba1
      call   tempo
      call   tempo
      bcf   motoraa1
      bcf   motorba1
      btfsc   entrada2
      goto   continuar1
      bsf   motorab2
      bsf   motorbb2
      call   tempo
      call   tempo
      bcf   motorab2
      bcf   motorbb2
      bsf   motorab1
      bsf   motorbb1
      call   tempo
      call   tempo
      bcf   motorab1
      bcf   motorbb1
      goto   ciclo1
continuar1   clrf    entrada1
      clrf   entrada2
      call   tempo
      return

girar      clrf   entrada1
      clrf   entrada2
      bsf   motoraa1
      bsf   motorab1
      bsf   motorba1
      bsf   motorbb1
      call   tempo
      call   tempo
      call   tempo
      bcf   motoraa1
      bcf   motorab1
      bcf   motorba1
      bcf   motorbb1
      bsf   motoraa2
      bsf   motorba2
      call   tempo
      call   tempo
      bcf   motoraa2
      bcf   motorba2
      bsf   motorc1
      call   tempo
      bcf   motorc1
ciclo2      bsf   motoraa1
      bsf   motorba1
      call   tempo
      call   tempo
      bcf   motoraa1
      bcf   motorba1
      bsf   motorab2
      bsf   motorbb2
      call   tempo
      call   tempo
      bcf   motorab2
      bcf   motorbb2
      bsf   motorc2
      call   tempo
      call   tempo
      bcf   motorc2
      nop
      nop
      bsf   motorab1
      bsf   motorbb1
      call   tempo
      call   tempo
      bcf   motorab1
      bcf   motorbb1
      btfsc   entrada1
      goto   continuar2
      bsf   motoraa2
      bsf   motorba2
      call   tempo
      call   tempo
      bcf   motoraa2
      bcf   motorba2
      bsf   motorc1
      call   tempo
      call   tempo
      bcf   motorc1
      goto   ciclo2
continuar2   clrf    entrada1
      clrf   entrada2
      bsf   motorc1
      call   tempo
      bcf   motorc1
      return

descansar   bsf   motoraa2
      bsf   motorab2
      bsf   motorba2
      bsf   motorbb2
      call   tempo
      call   tempo
      call   tempo
      bcf   motoraa2
      bcf   motorab2
      bcf   motorba2
      bcf   motorbb2
      return

tempo      movlw   15
      movwf   timer3
temp1      movlw   20
      movwf   timer2
temp2      movlw   25
      movwf   timer1
temp3      decfsz   timer1
      goto   temp3
      decfsz   timer2
      goto   temp2
      decfsz   timer3
      goto   temp1
      return

END


Ultima edición por Zettaextremo el Sab Mar 01, 2008 3:53 pm, editado 2 veces

#2  
Meta
Ubicación: 16F84A
Registrado: 20 Ene 2008
Mensajes: 1117
citar
Ya que utilizas CALL, sería que metieras algunos código repetitivos con un archivo a parte.

Deberías poner información a cada línea de códigos y lo mejor un diagrama de flujo.



PD: Bueno, lo de prender un led en España entenderíamos como encender un led, en España es como si entendemos, prender fuego a un led.

#3  
Meta
Ubicación: 16F84A
Registrado: 20 Ene 2008
Mensajes: 1117
citar
Que yo sepa el www.pic16f84a.com , el RP1 del 16F84A no se usa.

Ejemplo:

Código: Seleccionar todo
; ZONA DE CÓDIGOS ********************************************************************

   ORG    0            ; El programa comienza en la dirección 0.
Inicio
   bsf      STATUS,RP0      ; Acceso al Banco 1.
   clrf   TRISB         ; Las líneas del Puerto B se configuran como salida.
   movlw   b'00011111'      ; Las 5 líneas del Puerto A se configuran como entrada.
   movwf   TRISA
   bcf      STATUS,RP0      ; Acceso al Banco 0.

#4  
Leon Elec
Ubicación: Argentina
Registrado: 07 Nov 2007
Mensajes: 236
citar
Hola

¿Con qué programa lo simulaste?

#5  
Zettaextremo
Ubicación: Rio Bravo, Mexico
Registrado: 01 Nov 2007
Mensajes: 34
citar
hola, bueno disculpen, por no poner mas explicaiones en el programa, lo que me interesa es concocer el error del pic, no dispongo de ningun simulador, asi que lo estoy programando ya fisicamente, con el programa ic-prog, y que ya incluye su tabla para programar, en el programa lo que pienso que esta mal es el principio, aqui les dejo el simple diagrama, los leds van a tierra, el cuarzo que utilizo es de 4mhertz, conectado a dos capacitores de 22pf, el reset lo tengo conectado a una resistencia de 1 kohm, agradeceria algun pequeño consejo, me encargare de colocar mas informacion en cada linea de codigo del pic.

enlace:

http://metroflog.com/artur0oo0xxtreme/20080229/diagrama?pos=20080229

las unicas entradas son la de los microswitches todas las demas son salidas, pero lo curioso es que segun yo el programa deberia empezar prendiendo todos los leds rojos, pero no pasa nada, cuando copio mi programa en el programador me pregunta si deseo intercambiar bits, le pogno si, y cuando reviso el programa no concuerda con el que habia hecho yo al principio, a lo mejor ese es el error pero pues tambien a lo mejor asi deberia pasar.
Como saber si mi pic funciona? se puede probar con algo? tambien me intereso eso de los simuladores, no conosco, no se si se pueda poner el link para bajar alguno.
gracias

#6  
El nombre
Ubicación: Alicante
Registrado: 28 Jun 2006
Mensajes: 1440
citar
que son gratis!

Los habemos tan agarraos que no bajamos no los productos gratuitos.

no había termiado de de leer tu post. y añado este comentario:
Si leyeras un poco más verias que se llama MPLAB. pones eso en un buacador junto a descarga y vas a flipar

un ejemplo;
http://www.microchip.com/stell.....t=SW007002

Suerte

PD ni pienses por un momento en hacer la pregunta del manual en castellano que ...

#7  
Zettaextremo
Ubicación: Rio Bravo, Mexico
Registrado: 01 Nov 2007
Mensajes: 34
citar
jeje ok no sabia que eran gratis pero ahora ya se, es que me aviente en un proyecto de hacer un hexapodo que camine por todo terreno, y sin tener conocimiento de nada, como apenas voy en segundo semestre de la universidad no hemos visto nada de electronica puras matematicas, mi meta es hacer este robot, para cuando ya entre a lo que realmente es robotica decir "aaa asi es como se hubiera hecho, o asi es mas facil o es mejor como yo lo hice" gracias por ayudarme, y el nombre no te preocupes vivio en la frontera con EUA y se leer el ingles perfectamente, voy a checar mi programa en el mplab, si funciona bien es el pic que no funciona normal, bueno gracias.

#8  
Meta
Ubicación: 16F84A
Registrado: 20 Ene 2008
Mensajes: 1117
citar
Campras libros de robótica y de pic.

#9  
anthony123
Ubicación: En algun lugar de Venezuela
Registrado: 22 Ago 2007
Mensajes: 2249
citar
Deberias cambiar el titulo: pareciera que es el pic el que no esta funcionando! 8)

#10  
mabauti
Ubicación: México
Registrado: 22 Oct 2006
Mensajes: 1100
citar
te recomiendo el libro:
http://www.pic16f84a.com/

 Responder





 Otros temas de interés 
No hay mensajes nuevos Como separar señales, si son entrada y salida de datos
No hay mensajes nuevos Circuito acondicionador de entrada 4-40mA y salida 0-10 V
No hay mensajes nuevos Entrada/Salida de audio a traves de USB
No hay mensajes nuevos Conectar salida video de camara a monitor video
No hay mensajes nuevos Circuito con reles para puerto paralelo con salida de 3.3v

Foros de Electronica
|| Cuestiones Elementales de Electrónica || Fuentes de alimentacion || Circuitos de radio || Diseño de circuitos en general ||
|| Sistemas de Audio: Preamplificadores, Ecualizadores || Amplificadores || Reparación || Discusión ||
|| Microcontroladores y sistemas embebidos || Circuitos logicos combinacionales y secuenciales || Interfaces y Programacion || Dudas en general || Sistemas de Video || PC Hardware || Telematica y comunicaciones || Tecnologias moviles || Software Electronico || Robotica, Domotica y Mecatronica || Autotrónica || Automatizacion, Electronica industrial y de Potencia || Documentacion, circuitos y esquemas || Donde Las Ideas Convergen... || Tutoriales y Manuales || Proyectos Prácticos ||