Microcontroladores PIC => Primeros pasos - Iniciación a los microcontroladores => Mensaje iniciado por: eliotronic en 22 de Junio de 2009, 00:57:59
Título: Encender un led por el puerto RA0 de un pic 16F84A
Publicado por: eliotronic en 22 de Junio de 2009, 00:57:59
Hola amantes de los pic. Soy nuevo en el foro y espero aprender a hacer proyectos grosos con pic, ¡¡¡¡algun dia¡¡¡¡ aja jaaj. Mi problema es que no puedo hacer encender un led por el puerto RA0 de un microcontrolador 16F84A, al programa lo hice en assembler en MPLAB v8.3 y lo simulé con el ISIS Proteus V7.4 SP3, y no pasa nada. (El programa .HEX si lo cargué en el pic antes de simularlo). De ser posible necesitaria que me corrijan los archivos que adjunto aqui, la verdad no se que es lo que hice mal. Disculpen mi ignorancia. Gracias
Título: Re: Encender un led por el puerto RA0 de un pic 16F84A
Publicado por: BLACKPIC en 22 de Junio de 2009, 01:15:20
amigo bienbenido a esta comunidad de pic-maniacos y te voy a dejar un linc que pertenece al mismo foro para que le des una miradita... http://www.todopic.com.ar/foros/index.php?topic=24720.0 aqui en contraras vastante inf para soluccionar tu error y descuida que estamos para ayudar....
Título: Re: Encender un led por el puerto RA0 de un pic 16F84A
Publicado por: eliotronic en 22 de Junio de 2009, 01:23:36
Agradezco bastante tu ayuda, y voy a entrar al link que me diste para ver si me saco la duda. Gracias :lol:
Título: Re: Encender un led por el puerto RA0 de un pic 16F84A
Publicado por: jhozate en 22 de Junio de 2009, 01:28:05
bueno no simule tu programa, pero como yo siempre empezaria la cabezera de programa es
LIST P=16F84A #INCLUDE "P16F84A.INC"
cuando escribes esto no es necesario declarar los registros como el puerto, el trisx, el status los puertos quedan como entrada digital cuando le cargas "1" y salida cuando le cargas "0", en tu programa el unico bit de salida es el RA4 y tu quieres encender un led por RA0. Asi que como esta tu programa estarias sacando un "1" por un pin configurado como entrada hasta donde tengo entendido los programa nunca deben llegar al END.
seria algo asi el programa
Código: ASM
BSF STATUS,5;BANCO1
CLRF TRISA ;PUERTOA COMO SALIDA
BCF STATUS,5;BANCO0
CLRF PORTA ;LIMPIO EL PORTA
PRENDE BSF PORTA,0;PRENDO LED
GOTO PRENDE ;CICLO INFINITO
END
Título: Re: Encender un led por el puerto RA0 de un pic 16F84A
Publicado por: eliotronic en 22 de Junio de 2009, 15:13:29
Ok gracias jhozate, lo estaré probando asi como tu dices y te cuento. Gracias por responder y tomarte el trabajo de revisarlo.
Título: Re: Encender un led por el puerto RA0 de un pic 16F84A
Publicado por: eliotronic en 22 de Junio de 2009, 21:55:34
Haber si entendi como tiene que quedar mi programa.
Lo cargué en el pic en proteus y no pasa nada, no se que es lo que estoy haciendo mal.
Aca te lo adjunto para que lo revises. Te agradecere tu ayuda.
Título: Re: Encender un led por el puerto RA0 de un pic 16F84A
Publicado por: jhozate en 22 de Junio de 2009, 22:33:22
a mi si me funciona. como configuras mplab? tenes q asegurarte de que tenes seleccionado el pic16f84a, eso lo haces en configure/select devices si trabajas con cristal de 4mhz, en el menu configure/configuration bit desmarca una casilla q dice "configuration bits set in code" y en donde dice oscilator escoges XT y en watchdog timer lo pones en off. tambien en el menu debugger/settings en la pestaña "osc/trace" escribes 4 y eliges Mhz..con eso deberia funcionar.
Título: Re: Encender un led por el puerto RA0 de un pic 16F84A
Publicado por: eliotronic en 22 de Junio de 2009, 23:15:12
HOLA Ya Configure, como me indicaste. Como me doy cuenta que esta bien en la simulacion. Talvez tendre mal configurado el Proteus por que no lo se usar bien. Te paso un comprimido con el archivo en proteus para que los simules. Quiero ver si te da bien a vos. Gracias
Título: Re: Encender un led por el puerto RA0 de un pic 16F84A
Publicado por: jhozate en 23 de Junio de 2009, 00:18:08
psss si debe pasar algo extraño con tu compilacion porque yo copié y pegué el asm, compile, armé en proteus y funciona.
la verdad no se me ocurre q puede estar pasando, otra cosa la resistencia para los led suelen ser de 220 a 330ohm, para simular en proteus no es necesario ponerle el cristal y los condensadores solo es necesario especificarle al pic la frecuencia de trabajo en la misma ventanan donde le cargas el .hex
ahi te adjunto mi compilacion..pruebalo y me cuentas
Título: Re: Encender un led por el puerto RA0 de un pic 16F84A
Publicado por: eliotronic en 23 de Junio de 2009, 14:23:19
Hola jhozate Ya "resolví" el problema de la simulacion. Te cuento: "Lo que estaba mal era el *.HEX, yo lo exportaba desde maplab, pero tenia que ejecutar en projet/build o algo asi para obtener el *.HEX". Gracias por todo, fuiste de gran ayuda. Te estare agradecido siempre. :lol: :)
No es que lo descubri yo he. Entré al subforo de ISIS y el colaborador "suky" me dio una mano.
Título: Re: Encender un led por el puerto RA0 de un pic 16F84A
Publicado por: jhozate en 23 de Junio de 2009, 14:32:53
ya, q bueno... :-/ ...seria bueno q te leyeras el post "ASM desde cero" esta en el Almacen del assembler..y el del link que te paso BLACKPIC...son muy buenos post para empezar en este cuento.