Actualmente la electrónica está avanzando a pasos grandes cada día, de tal forma que es muy difícil mantenerse al tanto de todas las novedades que aparecen y que los fabricantes ponen a nuestra disposición, tal es el caso de los Microcontroladores PIC, de Microchip.
Cuando uno se inicia en el mundo de la programación de Microcontroladores, rápidamente se da cuenta de que disponer de una tarjeta entrenadora le ayudaría mucho en su aprendizaje.
Por varios motivos, no pudimos comprar una. Algunos modelos que eran realmente interesantes estaban fuera de nuestro presupuesto, o no podíamos comprarlo desde mi país.
Entonces decidimos hacer un entrenador con mis compañeros, la idea era poder realizar un entrenador básico, pues recién nos estábamos iniciando en la programación de Microcontroladores, y uno de ellos fue el 16F84A que es muy conocido y hay mucha información de este. Es así que uno de nuestros compañeros trajo el diseño pero no estaba completo, entonces decidimos terminarlo totalmente con los esquemas y los macros y hacerlo físicamente.
Me gustaria ver el diagrama para ver si lo puedo montar, soy un aficionadooo!!!
ResponderEliminarYa esta Oscar, cualquier duda has tu consulta.
ResponderEliminarque tal...tal vez mi duda sea algo tonta...pero para q me sirve el teclado y los Jumpers no los veo en el circuito
ResponderEliminarPara el teclado de 16 pulsadores un ejemplo, para hacer un circuito donde pida la clave de acceso y muchas aplicaciones más.
ResponderEliminarLos pulsadores RA0....RA4 son para darle la señal al Microcontrolador, tanto en lógica positiva o negativa, esto depende de la configuración de los Jumpers que estan designados en el circuito como J5,J2,J4.
hola...oye.. decidí armar el circuito,ya lo tengo físicamente...pero no funciona,no realiza ninguna función y lo conecte exactamente como lo indicas, le puse que el micro realizara un contador hexadecimal, dependiendo de la combinación que le meta por el porta a del micro...pero ni siquiera prende el display..no se si tenga algo mal o algo...lo alimento con 12V...ayudame porfa?
ResponderEliminarHola Joel recuerda que los display son de cátodo común, por lo tanto estos se deben de activar desde el programa para que encienda, esto los hace mediante los puertos RA1 Y RA3, y no es necesario jumpear nada.
ResponderEliminarAquí te dejo un ejemplo de un contador ascendente y descendente de 0 a 99.
; CONFIGURACION DEL DISPOSITIVO
;**********************************************************
LIST P=16f84a ;Seleccionamos el tipo de procesador
#include ;Incluimos el archivo p16f84a
__CONFIG _CP_OFF&_PWRTE_ON&_WDT_OFF&_XT_OSC
; ASIGNAMOS LAS VARIABLES DE LOS REGISTROS DE RAM
;**********************************************************
DECENAS EQU 0X0C ;REGISTRO PARA DISPLAY1
UNIDADES EQU 0X0D ;REGISTRO PARA DISPLAY2
PDel0 EQU 0X0E ;REGISTRO PARA DELAY
CONTADOR EQU 0X0F ;REGISTRO PARA CONTADOR
CONTADOR_U EQU 0X10 ;REGISTRO PARA UNIDADES
CONTADOR_D EQU 0X11 ;REGISTRO PARA DECENAS
; ESCRITURA DEL PROGRAMA DEL PIC
;**********************************************************
org 0x00 ;Vector de Reset
goto INICIO ;vamos a la etiqueta Main
; CONFIGURAMOS PUERTOS DEL PIC
;**********************************************************
INICIO
BSF STATUS,RP0 ;SELECCIONAMOS EL BANCO 1
CLRF TRISB ;LIMPIAMOS EL REGISTRO TRISB
MOVLW B'11110101' ;ENTRADAS RA, SALIDAS RA4-RA3
MOVWF TRISA ;PONEMOS EL VALOR DE W EN TRISA
BCF STATUS,RP0 ;SELECCIONAMOS EL BANCO 0
BCF PORTA,1 ;PONEMOS A 0 EL RA1
BCF PORTA,3 ;PONEMOS A 0 EL RA3
BUCLE
CALL UP ;LLAMAMOS A LA RUTINA DOWN 9-0
CALL DOWN
GOTO BUCLE ;GENERAMOS UN BUCLE INFINITO
; EMPEZAMOS CON EL PROGRAMA 7SEG
;**********************************************************
DOWN
MOVLW .10 ;NUMERO 10 A DECENAS
MOVWF DECENAS
RESETU
MOVLW .10 ;NUMERO 10 A UNIDADES
MOVWF UNIDADES
RESETC
MOVLW .250 ;NUMERO 250 A CONTADOR
MOVWF CONTADOR
REFRESCO
MOVF DECENAS,W ;MOVEMOS DECENAS A W
CALL DISPLAY7SEG ;LLAMAMOS AL NUMERO
MOVWF PORTB ;LO MOSTRAMOS POR EL DISPLAY
BSF PORTA,1 ;ENCENDEMOS DISPLAY_DECENAS
CALL DOS_MILISEGUNDOS ;2ms ENCENDIDO
BCF PORTA,1 ;APAGAMOS DISPLAY
MOVF UNIDADES,W ;MOVEMOS UNIDADES A W
CALL DISPLAY7SEG ;LLAMAMOS AL NUMERO
MOVWF PORTB ;LO MOSTRAMOS POR EL DISPLAY
BSF PORTA,3 ;ENCENDEMOS DISPLAY_UNIDADES
CALL DOS_MILISEGUNDOS ;2ms ENCENDIDO
BCF PORTA,3 ;APAGAMOS DISPLAY
DECFSZ CONTADOR,F ;DECREMENTAMOS CONTADOR DE REFRESCO
GOTO REFRESCO ;REFRESCAMOS LA IMAGEN TODO EL RATO DURANTE 1 SEG
DECFSZ UNIDADES,F ;DECREMENTAMOS UNIDADES
GOTO RESETC ;RESETEAMOS EL CONTADOR DE REFRESCO
DECFSZ DECENAS,F ;SI UNIDADES ES 0 DECREMENTAMOS DECENAS
GOTO RESETU ;UNA VEZ DECREMENTADA DECENAS, RESETEAMOS UNIDADES
RETURN ;VOLVEMOS A LA DONDE NOS HAN LLAMADO
UP
ResponderEliminarMOVLW .1 ;NUMERO 1 A DECENAS
MOVWF DECENAS
MOVLW .10 ;NUMERO 10 A CONTADOR DECENAS
MOVWF CONTADOR_D
RESETU1
MOVLW .1 ;NUMERO 1 A UNIDADES
MOVWF UNIDADES
MOVLW .10 ;NUMERO 10 A CONTADOR UNIDADES
MOVWF CONTADOR_U
RESETC1
MOVLW .250 ;NUMERO 250 A CONTADOR
MOVWF CONTADOR
REFRESCO1
MOVF DECENAS,W ;MOVEMOS DECENAS A W
CALL DISPLAY7SEG ;LLAMAMOS AL NUMERO
MOVWF PORTB ;LO MOSTRAMOS POR EL DISPLAY
BSF PORTA,1 ;ENCENDEMOS DISPLAY_DECENAS
CALL DOS_MILISEGUNDOS ;2ms ENCENDIDO
BCF PORTA,1 ;APAGAMOS DISPLAY
MOVF UNIDADES,W ;MOVEMOS UNIDADES A W
CALL DISPLAY7SEG ;LLAMAMOS AL NUMERO
MOVWF PORTB ;LO MOSTRAMOS POR EL DISPLAY
BSF PORTA,3 ;ENCENDEMOS DISPLAY_UNIDADES
CALL DOS_MILISEGUNDOS ;2ms ENCENDIDO
BCF PORTA,3 ;APAGAMOS DISPLAY
DECFSZ CONTADOR,F ;DECREMENTAMOS CONTADOR DE REFRESCO
GOTO REFRESCO1 ;REFRESCAMOS LA IMAGEN DURANTE 1 SEG
INCF UNIDADES,F ;INCREMENTAMOS UNIDADES
DECFSZ CONTADOR_U ;COMPROVAMOS QUE NO SE HA ECHO 9 VECES
GOTO RESETC1 ;RESETEAMOS CONTADOR DE REFRESCO
INCF DECENAS,F ;ECHO 9 VECES, INCREMENTAMOS DECENAS
DECFSZ CONTADOR_D ;COMPROVAMOS QUE NO SE HAYA ECHO 9 VECES
GOTO RESETU1 ;RESETEAMOS UNIDADES
RETURN ;VOLVEMOS A DONDE NOS HAN LLAMADO
DISPLAY7SEG
ADDWF PCL,F ;SUMAMOS EL DATO DE W AL REGISTRO PCL
;QUE SIRVE PARA EJECUTAR UNA DE LAS INSTRUCCIONES
;QUE SE SITUAN MÁS ABAJO
NOP
RETLW B'00111111' ;NUMERO 0
RETLW B'00000110' ;NUMERO 1
RETLW B'01011011' ;NUMERO 2
RETLW B'01001111' ;NUMERO 3
RETLW B'01100110' ;NUMERO 4
RETLW B'01101101' ;NUMERO 5
RETLW B'01111101' ;NUMERO 6
RETLW B'00000111' ;NUMERO 7
RETLW B'01111111' ;NUMERO 8
RETLW B'01100111' ;NUMERO 9
DOS_MILISEGUNDOS movlw .250 ; 1 set numero de repeticion
movwf PDel0 ; 1 |
PLoop0 clrwdt ; 1 clear watchdog
PDelL1 goto PDelL2 ; 2 ciclos delay
PDelL2 goto PDelL3 ; 2 ciclos delay
PDelL3
decfsz PDel0, 1 ; 1 + (1) es el tiempo 0 ?
goto PLoop0 ; 2 no, loop
PDelL4 goto PDelL5 ; 2 ciclos delay
PDelL5 clrwdt ; 1 ciclo delay
return ; 2+2 Fin.
END
COPIO TODO ESO Y LO PONGO EN EL PC COMPILER
Eliminarbuenas tardes quisiera saber si a esto le puedo colocar otro tipo de pic 16f877 gracias y cuales serian los pines a usar
ResponderEliminarHola Edwin, lamentamos decirte que no puedes usar el Pic 16f877, el entrenador es solo para 16f84A - 16f628A. Gracias por seguirnos.
ResponderEliminarbuenos días quisiera saber como le podía adaptar a 4 display, y si le puedo poner un zócalo zif para el pic?
ResponderEliminarHola Alejandro. Si podrías adaptarlo viendo el circuito que esta en la descarga. Las conexiones que salen de RB0 a RB6 pasando por las resistencias. El tercer display será igual al segundo y así también al cuarto. Recuerda que los display son de cátodo común, entonces para activarlas tendrías que ponerlas los transistores de la misma manera que los otros displays, pero ya de otras salidas del Pic, podría ser de de algún puerto RA.
ResponderEliminarCon respecto del zócalo zif. No se puede, ya que esos zócalos son mas grandes.
ResponderEliminarhola, yo pude instalar un zocalo zif de 18 pines y pude instalar tambien conectores auxiliares en cada puerto RA y RB para poder fabircar modulos externos e instalar en un futuro otras aplicaciones mas complejas, como por ejemplo conectar un motor paso a paso o una matriz de led de 5 x 7,tambien hice la modificacion de mi pantalla LCD 2x16 porque la que yo tengo los pines de 1 al 14 estan en paralelo en el siguiente orden del 1 al 7 en una fila y 8 al 14 en la otra fila y la alimentacion del LED pines 15 y 16 de la pantalla es por un conector distinto, tambien pude reducir el tamanio de la placa, ahore es de 4" x 7" , cambie los pulsadores del teclado a unos que son 3mm*6mm*4.3mm. tambien cambie los jumper de J2,J3 y J4 por switch de 3 pines 1 polo 2 posiciones. ahora solo falta empezar a realizar los firmware para mis pic, agradeceria si pudieran enviarme algun programa asi sea basico en HEX para poder probar mi entrenador.
ResponderEliminarmuchas gracias por la informacion y el entrenador que colocaron en su pagina WEB, es bastante sencillo pero a la vez bastante versatil!!!!
hola ,queria saber si pudieran enviarme algun programa sencillo para probar algunas de las funciones de su entrenador
ResponderEliminarmuchas gracias
Hola Rapapaz en el comentario marzo 19, 2012 10:54 a.m. esta, contador ascendente y descendente de 0 a 99.
ResponderEliminarHola Rapapaz, nos gustaría ver tu modelo modificado y si gustas lo podríamos publicar. Escríbenos a : contacto@weautomation.net , y también te enviaremos un HEX por esa dirección. Gracias.
ResponderEliminarHola, We Automation. Me alegra mucho que esten interesador en la modificacion que le hice a su circuito original, en estos momentos estoy trabajando en esa placa, para que puedan tenerla completa, es decir como modifique y añadi conectores y switches, necesito colocar a esta placa los nuevos puentes ( jumpers ).
ResponderEliminarPor otro lado, no tengo ningun problema en enviarles todo lo referente a este circuito entrenador y son libres de publicarlo, quizas pronto tambien les envie los modulos extras que mencione en mensajes anteriores.
Muchas Gracias
Ok Rapapaz , estaremos atentos a tu envió.
ResponderEliminarMuchas gracias por compartir.
Hola Sres. de WE AUTOMATION:
ResponderEliminarImplemente su tarjeta de entrenamiento, y después de voltear el regulador de tensión LM7805 (el PCB no coincide con la posición real), este encendió sin problemas, probé con un contador en el display 7SEG. y funciona sin problemas; mi pregunta es;¿ como implementar un sistema que lleve el LCD y teclado a la vez? puesto que, revisando en la web, la mayoría de los esquemas conectan los pines ENABLE y RS del LCD hacia las patillas del PORTA del PIC y si es posible , por favor publiquen un programa ejemplo; por mi parte hace una modificación al sistema colocando JUMPER a los pines antes mencionados del LCD asi como también a las pistas de la salidas RA1 y RA3 que llegan al transistor BC548 de los display's de modo que le coloque un puente y que estos sean los que activen y envíen la configuración al LCD, agradezco de antemano su pronta respuesta.
hola, quería hacer una pregunta yo e echo una programación para el LCD pero no me sale nada en la pantalla y e programado según las conexiones que están en la placa, aquí te dejo mi programación: ▼
ResponderEliminardefine osc 4
define lcd_bits 4 'tamaño del bus de datos:4 o 8
define lcd_dreg portb 'puerto de datos del LCD
define lcd_dbit 1 'inicio de datos del bit 0 o 4
define lcd_ereg portb 'puerto del pin de habilitación (enable)
define lcd_ebit 3 'pin de enable
define lcd_rsreg portb 'selección del puerto del registro
define lcd_rsbit 2 'selección del bit de registro
PAUSE 200
espera:
lcdout $fe,1
lcdout $fe,2
lcdout "ELECTRONICA"
lcdout $fe,$c0
lcdout "INDUSTRIAL"
pause 2000
goto espera
END
Amigo nos podrías ayudar con el código de tu proyecto y/o asesorarnos? es de suma urgencia porfavor
ResponderEliminarHola Alejando,
ResponderEliminarAl parecer te faltan los macros para LCD.
Hola Joshue,
ResponderEliminarLa pregunta de el código. ¿Para quien es ?
Hola Cristian,
ResponderEliminarGracias por la sugerencia, ¿serias tan amable te enviarnos tu esquema?.
Buenas noches.
Eliminareh encontrado en la web una pagina en donde eh visto la misma tarjeta con una ligera modificación, en la entrada de alimentación ahora figura los pines de programación directamente a la tarjeta, como es casi similar me reguntaba si alguien tiene el esquema para fabricarlo ya que es mas ventajoso por que ya no se necesita retirar el pic,
aqui dejo el enlace de dicha trajeta, si alguien sabe algo de ello por favor hagamelo saber, gracias.
http://3.bp.blogspot.com/-jccitOcLZiI/UavXFZCqFeI/AAAAAAAAAUc/lOxcdzgjEGE/s1600/pic-16f84.jpg
Hola Christian,
Eliminarla modificación esta bien, retiraron la fuente alterna para colocar los pines para la programación.
El esquema esta en el archivo adjunto para descargarlo. Seria genial si lo modificas y lo compartes con nosotros. Cualquier duda o ayuda has tu consulta.
Saludos.
We Automation ,buenas noches el diagrama con el ICSP seria bueno enves de la fuente ,no tendras el esquema con el ICSP amigo ,y si no me podrias brindar el circuito para abrirlo en proteus para yo mismo modificarlo de ante mano gracias mi correo es ventura_zion@hotmail.com
EliminarBuen dia; Me gustaria contar con el esquema de la tarjeta, donde incluya el programador integrado.
EliminarComo lo puedo conseguir. Pretendo hacer unos simuladores para usarlo con mis alumnos
HOLA señores de We Automation me prodrian ayudar con la programacion de marzo 19, 2012 10:54 a. m. por que no la entiendo y no
ResponderEliminarpuedo compilarla en PIC C Compiler o si me podrian ayudar en que programa puedo programarla bien ayudenme gracias
hola tengo una duda como van conectados los jumpers numero cinco de antemano muchas gracias
ResponderEliminarEste comentario ha sido eliminado por el autor.
ResponderEliminarBuen día.
ResponderEliminarComo puedo adquirir la tarjeta