programacion de microcontroladores pic en basic y simulacion

Saludos a todo el mundo este es mi primer post en taringa espero que sea de su agrado.
PROGAMACAION DE MICROCONTROLADORES PIC EN BASIC Y SIMULACION.

Dedicado a todas las personas que desean a programar pic rápidamente y muy fácil.
Las herramientas a utilizar son:
Microsoft Word. Que todos lo tienen
Picsimulatoride v6.73 lo pueden descargar de este post
http://www.taringa.net/posts/downloads/5427060/Pic-simulator-ide-6_83-y--pic18-simulator-ide-2_73+-manual.html#
programacion de microcontroladores pic en basic y simulacion
Es mejor que descarga esta versión ya que con otras mas antiguas tuve muchos problemas, las filas eran limitadas y no reconocían todas las instrucciones,
ISIS 7 Professional
electronica
Si no lo tiene busque de donde pueden descargarlo y comente para compartir.
Empezamos con un poco de teoría pero solo un poquito.
Un micro controlador es un integrado que tiene toda lo que una computadora con entradas y salidas programables para nuestra necesidad.
control
Fin de la teoría jejeje.
Definición de entradas y salidas.
Empezamos con la programación lo primero que veremos es como programar los pines para que sean entradas y salidas. Las entradas y salidas se dividen en dos partes lo que indica la imagen de arriba RA0, RA1, ………,RB0,RB1,……. Lo que diremos TRISA Y TRISB RESPECTIVAMENTE TENEMOS 8 pines por tris nombrados individualmente como PORTA.0 que viene a ser el primer pin de TRISA, PORTA.1 segundo pin de TRISA y así hasta el 7 (de 0 a 7, 8 en total) para TRISB lo mismo solo con PORTB.0 y demás. Entonces decimos que:
TRISA.0 = 0 'el pin ra0 como salida
TRISA.1 = 1 'el pin ra1 como entrada
Pero para no realizar tantas instrucciones aremos esto
TRISA = %00000000 'todos los pines como salida
TRISB = %00000000 'todos los pines como salida
Esto es mejor porque de esta manera podemos combinar entradas y salidas él % significa que sigue un numero binario entonces podemos TRISA=%11110000.
Lo que viene a ser ra7, ra6, ra5,……………..ra0.
La pequeña comilla es para que nosotros entendamos nuestro programa el compilador obviara todo lo que se encuentra después de esta.
PRENDE Y APAGAR UNA SALIDA
Es muy sencillo
PORTA.0 = 0 'pin ra0 apagado
PORTA.0 = 1 'pin ra0 prendido

ETIQUETAS y GOTO
Para empezar nuestro programa o subrutinas (las vernos luego) debemos darle un nombre que después de esto le sigan dos puntos(
PROGRAMA:
.
.
.
GOTO PROGRAMA
Nuestra etiqueta indica que empiezan un conjunto de instrucciones el micro controlador las realiza una por una y cuando llega a goto programa significa ir a programa entonces el micro controlador vuelve a repetir las instrucciones volviéndose un siclo sin fin en el ejemplo de arriba
TIEMPOS
Nuestro micro controlador maneja dos tiempos
WAITMS 500'espera 500 milisegundos
WAITUS 500 'espera 500 microsegundos
El tiempo puede ser variable
SYMBOL
Sirve para dar un sobrenombre a un pin
SYMBOL LED = PORTA.0
Para no escribir
PORTA.0 = 0 o 1
Decimos
LED = 0 o 1
LED PARPADEANDO
Ya estamos listo para realizar nuestro primer programa que viene a ser el siguiente:
TRISA = %00000000 'todos los pines como salida
TRISB = %00000000 'todos los pines como salida
SYMBOL LED = PORTA.0 'nombramos ra0 o porta.0 como led
PROGRAMA: 'empieza nuestro programa
LED = 0 'apagamos el led
WAITMS 500 'esperamos medio segundo
LED = 1 'prendemos el led
WAITMS 500 'esperamos medio segundo
GOTO PROGRAMA 'vovemos a donde dice programa
COMPILACION
Una vez instalado el picsimulator ide procedemos a verificar si nuestro programa está bien entonces abrimos picsimulator ide
pic
Seleccionamos el pic a utilizar en options sellec microcontroler
microcontroladors
Entonces nos aparece
programacion de microcontroladores pic en basic y simulacion
Doble clic en 16gf628 luego a tolos y BASIC compiler
electronica
Copiamos nuestro listado
control
Guardamos en file save as en la carpeta que nos agrade y con el nombre que nos agrade se dieron cuenta de la falla?
pic
microcontroladors
Si nuestro listado está guardado recién podemos compilar en tool compile assemble y load
programacion de microcontroladores pic en basic y simulacion
Hecho clic nos aparece un mensaje por un momento diciendo cuanto ocupamos en la memoria del pic o si existe algún error no marcara la línea de color rojo
electronica
Nos falto la letra t en ambas las aumentamos y volvemos a guardar y entonces compilamos nuevamente
control
Compilación correcta y utilizamos 64 palabras de 2048 y ahora a proteus doble clic en el icono
pic
Seleccionamos el micro
microcontroladors
En el tres dice 16f628
programacion de microcontroladores pic en basic y simulacion
En el tres dice led animated si escogen un led que no es animated no lo simula y armamos el circuito
electronica
Para tierra
Doble clic en el micro para cargar el programa nos dirigimos a porgram filey a la carpeta donde guardamos el listado y abrimos el .hex, colocamos un cristal de 4Mhz
control
pic
Le damos play y ya esta
microcontroladors
Verdad que es fácil. Solo falta una resistencia de 330 ohms en un circuito real ya que nuestro pic bota 5 voltios. Ahora veremos otras instrucciones
DIM
Esta instrucción es para nombrar una variable que nos servirá para realizar conteos, el picsimulator ide nos da 4 tipos de variables:
Bit 0 o 1
Byte de 0 a 255
Word de 0 a 65535
Long de 0 a 4294967295
DIM A AS BYTE
DIM B AS WORD

COMO CONTAMOS
DIM A AS BYTE
A = 0
FOR A = 1 TO 10 STEP 1
…….
….
….
….
….
NEXT A
……….
……..
………..

Nombramos la variable a como byte y la ponemos en 0 con A=0 con la palabra for a = 1 to 10 indicamos que a ira de uno a 10, step dice que contara de uno en uno, entonces se repetirán las instrucciones que están entre for a…. y next A 10 veces. Next A significa el fin de ese bucle una vez realizadas las 10 repeticiones pasara a la instrucción que se encuentra bajo next A.
GOSUB, END Y RETURN
Lo tomaremos como ir a. esto nos sirve para saltar a bucles de repetición se entenderá claramente en los siguientes dos ejemplos junto con end y return.
5 PARPADEO DE DOS LEDS INDIVIDUALES.
Nuestro programa sería el siguiente
TRISA = %00000000 'todos los pines como salida
TRISB = %00000000 'todos los pines como salida
SYMBOL LED1 = PORTA.0 'nombramos ra0 o porta.0 como led1
SYMBOL LED2 = PORTA.1 'nombramos ra1 o porta.1 como led2
DIM A AS BYTE
PROGRAMA: 'empieza nuestro programa
FOR A = 1 TO 5 STEP 1
LED1 = 1 'apagamos el led
WAITMS 500 'esperamos medio segundo
LED1 = 0 'prendemos el led
WAITMS 500 'esperamos medio segundo
NEXT A
FOR A = 1 TO 5 STEP 1
LED2 = 1 'apagamos el led
WAITMS 500 'esperamos medio segundo
LED2 = 0 'prendemos el led
WAITMS 500 'esperamos medio segundo
NEXT A
GOTO PROGRAMA 'vovemos a donde dice programa
Si compilamos nuestro programa ocupa 101 palabras y si realizamos esto
TRISA = %00000000 'todos los pines como salida
TRISB = %00000000 'todos los pines como salida
SYMBOL LED1 = PORTA.0 'nombramos ra0 o porta.0 como led1
SYMBOL LED2 = PORTA.1 'nombramos ra1 o porta.1 como led2
DIM A AS BYTE
PROGRAMA: 'empieza nuestro programa
FOR A = 1 TO 5 STEP 1
LED1 = 1 'apagamos el led
GOSUB TEM 'saltamos a tem
LED1 = 0 'prendemos el led
GOSUB TEM 'saltamos a tem
NEXT A
FOR A = 1 TO 5 STEP 1
LED2 = 1 'apagamos el led
GOSUB TEM 'saltamos a tem
LED2 = 0 'prendemos el led
GOSUB TEM 'saltamos a tem
NEXT A
GOTO PROGRAMA 'vovemos a donde dice programa
END 'fin de nuestro porgrama
TEM: 'iniciamos nuestro bucle de repeticion
WAITMS 500 'esperamos medio segundo
RETURN 'RETORNAMOS A LA SIGUIENTE INSTRUCION DE DONDE NOS MANDARON
Nos toma solo 92 palabras la diferencia es más notable cuando se realizan programas más grandes.
programacion de microcontroladores pic en basic y simulacion
Y simulamos
electronica
Ya no me olvide las resistencias y para sacarlas están bajo el buscador donde poníamos las piezas, en resistors y buscamos el valor deseado. Ahora les toca a ustedes realizar su propios ejercicios denle un toque de imaginación para realizar otros ejercicios como simular el 4017 que parpadeen de las puntas al medio etc. véanlo ustedes.
ENTRADAS.
Led parpadeando aumentando un interruptor.
IF, THEN, ELSE, ENDIF
Ya son capaces de descifrar el proceso con solo leer el listado de instrucciones
TRISA = %11111111 'todos los pines como entradas
TRISB = %00000000 'todos los pines como salida
SYMBOL INT = PORTA.0 'nombramos ra0 o porta.0 como int para el interruptor
SYMBOL LED1 = PORTB.0 'nombramos rb0 o portb.0 como led1
PROGRAMA: 'empieza nuestro programa
IF INT = 1 THEN
LED1 = 1 'encendemos el led
WAITMS 500 'esperamos medio segundo
LED1 = 0 'apagamos el led
WAITMS 500 'esperamos medio segundo
GOTO PROGRAMA
ELSE
GOTO PROGRAMA
ENDIF

Tomamos a if como una pregunta, si es verdad? Y le damos nuestra condición en el ejemplo si la entrada tiene un uno lógico (o si le llega 5 voltios) si es verdad se realizan las instrucciones que estén dentro de then y else, pero si esta es falsa se realizan las instrucciones que se encuentren dentro de else y endif. Y lo simulamos:
control
pic
Para el pulsador colocamos en el buscador como button, doble clic en la fuente de corriente continua para poner que alimente con 5 volios
microcontroladors
RECOMENDACIONES.
Hacer comentarios en las instrucciones es de mucha ayuda cuando nuestro proceso no funciona como lo deseamos y verificar la falla rápidamente.
También las salidas se pueden escribir de la siguiente manera PORTB=%01010101 ustedes ya pueden reconocer cuales se encuentran encendido y apagados.
Realicen sus propios procesos no esperan a buscar ejercicios propuestos o algo por el estilo
Si quieren más información visiten http://www.ucontrol.com.ar/wiki/index.php?title=PIC_BASIC_(PSI)
O descarguen el libro de
http://www.taringa.net/posts/ebooks-tutoriales/2216363/programacion-en-basic-de-microcontroladores-pic.html
Con este tutorial que realice se encuentran capacitados para realizar matriz led de todos tamaños solo necesitan saber el funcionamiento de estas y visiten
http://www.ucontrol.com.ar/wiki/index.php?title=Matriz_de_LEDS_de_8x8
http://www.ucontrol.com.ar/wiki/index.php?title=Matriz_de_LEDS_de_7x32
Y la simulación se las dejo para ustedes ya que en el proteus trabaja de otra forma.
Si realizan algún ejercicio o pónganlo en los comentarios ya que puede ayudar a muchas personas y si tienen alguna duda lo mismo y entre todos la solucionamos.
Para mí este lenguaje me parase el más fácil de aprender pero no le di la oportunidad a los otros.
Espero que les sirva mucho comenten, den puntos y lo más importante no me roben el post bueno hasta la próxima
Siguientes post
Matriz de led 8x8
Programación de PLC easy de moller y logo de la siemens.
Y si quieren algo solo díganlo.

21 comentarios - programacion de microcontroladores pic en basic y simulacion

@hermaster -2
GOTO un poco bajo y desestructurado! pero esta bueno lo de poder simular en controlador
@Mustank81
Muchas GRacias por el post me sirvio....
@Valvulin
Muy buen post, bien explicado, vamos a probar.. Gracias y puntines
@faldow
gracias por el aporte


@troyanoivan
EXCELENTE¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
@yager555
gracias por el aporte, te daria +10 pero soy novato
@peep387
no esta mal ese manual.. pero los videos de youtuve son algo biejos.. o porlomenos ya los tengo visto de ace un tiempo casi algunas practicas que echo ultimamente bienen de ver cosas asi.... aunque normalmente solo e echo algun proyecto pactico ya ace años..
os dejo unos videos de alguna practica y trabajos

http://www.youtube.com/v/http://www.youtube.com/watch?v=BidHdEKL8-o
link: http://www.youtube.com/watch?v=http://www.youtube.com/watch?v=BidHdEKL8-o
http://www.youtube.com/v/http://www.youtube.com/watch?v=L-2xk3-DzVI
link: http://www.youtube.com/watch?v=http://www.youtube.com/watch?v=L-2xk3-DzVI
http://www.youtube.com/watch?v=saAV4sHH8g0
http://www.youtube.com/v/http://www.youtube.com/watch?v=C69-2pMYNNw
link: http://www.youtube.com/watch?v=http://www.youtube.com/watch?v=C69-2pMYNNw



un saludo
@peep387
peep387 dijo:no esta mal ese manual.. pero los videos de youtuve son algo biejos.. o porlomenos ya los tengo visto de ace un tiempo casi algunas practicas que echo ultimamente bienen de ver cosas asi.... aunque normalmente solo e echo algun proyecto pactico ya ace años..
os dejo unos videos de alguna practica y trabajos

http://www.youtube.com/v/http://www.youtube.com/watch?v=BidHdEKL8-o
link: http://www.youtube.com/watch?v=http://www.youtube.com/watch?v=BidHdEKL8-o

http://www.youtube.com/v/http://www.youtube.com/watch?v=L-2xk3-DzVI
link: http://www.youtube.com/watch?v=http://www.youtube.com/watch?v=L-2xk3-DzVI

http://www.youtube.com/watch?v=saAV4sHH8g0

http://www.youtube.com/v/http://www.youtube.com/watch?v=C69-2pMYNNw
link: http://www.youtube.com/watch?v=http://www.youtube.com/watch?v=C69-2pMYNNw



un saludo
@ingente20
buena la info pero me dio sueño descargando las imagenes resubelas menos pesadas,saludos de venezuela +3
@devoured
Muy chido post, chido carnal
@mamers81
hola que tal amigo esta bueno tu post... me podrias ayudar a saber cuales son los comandos que devo de utilizar para hacer una temporizacion interna??? echame la mano amigo ya que no encuentro inforcion en la red.... se todo lo que pusiste solo que no se hacer una temporizacion.. gracias
@kyo_12
por fin encontre algo como esto lo necesitava
gracias taringueros ya que estoy empezando a aprender esto gracias de nuevo
@DSTeam
No pueden pasar los links del programa estaban en megaupload =(
@yeimen
no creo que con hece tuto cualquiera aprenda prero si puedo decir que a los que tienen periesa si
@meuviolino
Parabéns por sua bondade e iniciativa de compartilhar seus conhecimentos sobre esse assunto tão fantástico que é a eletrônica - ainda mais, a respeito aos microcontroladores.
Gostaria de aproveitar e lhe fazer uma pergunta: posso abrir um arquivo .hex no Pic Simulator IDE feito por outro compilador em C ?
Obrigado e Deus lhe abençoe,
Daniel Fernandes