Que es lo que puede y no puede hacer un pic?

el siguiente semestre llevare microcontroladores y por eso se me ocurrio pedirles a todo aquel que tenga experiencia con microcontroladores y pics que me platique lo que ha aprendido de manera empirica sobre estos amiguitos tanutiles; por ejemplo: que durante una practica hayan tenido la idea de hacer algo con un pic pero segun avanzaban descubrieron que eso no se podia. no se si me explico pero yo espero que si ya que esto ayudaria a todo el mundo
 
basicamente un uC es una computadora , asi que puedes hacer lo que hace una computadora, pero con las limitaciones que c/uC tiene.

las preguntas deberian ser : que es lo que quiero hacer ? me servira un uC?
 
En teoria no deberia existir limitantes para un microcontrolador cualquiera, siempre y cuando puedas expresar algo en pasos discretos o formulas matematicas, pero la realidad es otra, usualmente los retos son lograr que se ejecuten los calculos matematicos en tiempos cada vez mas pequeños, y si existen aplicaciones donde el procesamiento es tan intensivo que un PIC estandar no sirve (a bajas velocidades), como generacion de señal de video a color, o procesamiento de imagenes, ethernet, o USB

Sin embargo siempre saldra alguien con una nueva idea que permitira la implementacion de cosas avanzadas en micros simples, por ejemplo hace poco vi que unos tipos pudieron desarrollar una interface USB funcional de baja velocidad en un AVR que corre a 12MHz

http://www.obdev.at/products/avrusb/
 
a eso me referia; que muchas veces alguien puede pensar que un pic o microcontrolador es todo poderoso y lo es pero se ve limitado por el lenguaje y por ende por la habilidad del programador; otra cosa: se puden reprogramar los microcontroladores o asi se quedan despues de usarlos?
 
En realidad la respuesta más exacta seria...

no todos los PIC's se reprograman solos los xxFxxxx.

por otra parte un pic esta limitado por la cantidad de lineas de programación, esta limitado por la capacidad de su memoria, y por la velocidad de operación.


más allá de eso un pic o microcontrolador para generalizar es un dispositivo muy poderoso ya que en un PCB pequeño y funcional tenes lo mismo y más que en una PCB gigante llena de integrados de circuitos combinacionales, compuertas logicas, contadores, relojes, etc.

chaus.
 
shadow_x dijo:
a eso me referia; que muchas veces alguien puede pensar que un pic o microcontrolador es todo poderoso y lo es pero se ve limitado por el lenguaje y por ende por la habilidad del programador; otra cosa: se puden reprogramar los microcontroladores o asi se quedan despues de usarlos?
En realidad, el lenguaje no es una limitante. Solamente, necesitarás usar mas instrucciones (con lo que podrás hacer menos cosas en la misma cantidad de ciclos de reloj). Los verdaderos limitantes son la velocidad, la memoria, y tu imaginación.
En cuanto a si es posible reprogramarlo, depende de si la memoria donde guarda las instrucciones es EPROM (no regrabable), o EEPROM (regrabable). Es decir, depende de que microcontrolador uses.
 
los pic son muy versatiles y puedes realizar una infinidad de proyectos con ellos, dependiendo de la familia que quieras utilizar, los puedes progrmar en varios lenguajes como C, basic y ensamblador pero de preferencia aprende un poco de ensamblador antes de programar con los otros lenguajes, es mas tediosos pero se te facilitara mas el entender como funciona el pic internamente ya que trabajas directamente sobre los registros internos del micro. Te recomiendo el libro "Microcontrolador PIC16F84 desarrollo de proyectos", para empezar esta muy bien.
 
curioso :D justo ese libro es el unico sobre pics que tiene mi unversidad; este saemestre realice un circuito con 18 puertas logicas que enrealidad eran dos entredas en binario de 4 bits y 3 salidas de las cuales una controlaba un servo y las otras dos el sentido de giro de un motor; al final sirvio pero con el detalle de que no aguantaba con una unica fuente de poder. es hay donde me atrageron los pics porque tengo entendido de que se les puede alimentar con 5v y con eso basta y sobra para remplasar las 18 puertas logicas que use
 
buenas yo he andado con 16f84. normalmente lo he utilizado para ahorrarme circuiteria digital, cableado, espacio etc... desde q conoci esta marabilla no he buelto a utilizar CIS de peuertas logicas ni contadores para nada. me gustaria aprender algo mas. Se que en la forma de utilidad q le he lo desaprobechado bastante, pero aun asi ami me a resultado muy rentable sobre todo en tiempo.
Lo q quiero decir es q unicamente e programado utilizando sus 2 puertos como entradas y salidas, nunca e utilizado sus interrupcines ni el modo estambi. Unicamente he programado sus sus registros PortA, PortB, susregistros libres e Intcom para controlar las instrucciones de salto condicional.
Me gustaria ver programas. yo utilizo directamente su propio ASM (mas sencillo) .No He utilizado C para esto pero no me importaria. Eso si del BASIC paso olimpicamente .
Saludos para todos por cierto soy nuevo en este foro.
 
eso que dices es muy interesante porque en mi proyecto la idea era que un usuario ingresara un numero N y un numero M que indicavan la cantidad de articulos para distribuirlos con ayuda de un servo; despues de completarse N o M la secuencia del servo cambiaba para omitir el ya completo; completandose ambos se deberia poder en stanby hasta ingresar nuevas ordenes.
 
retomando lo ultimo que postee me puse a investigar y a practicar con el pic 16f84A (por ser el unico libro que tengo a la mano) y lei que se pueden configurar los puertos de manera independiente asi que estoy ahora retomando mi proyecto de este ultimo semestre para obtener esto:

p01_843.jpg


que no se ve bien peo la idea seria asi:

el pic debe leer los datos en rb0 a rb3 y en rb4 a rb7 y convertir cada grupo al equivalente decimal. depues realizar una serie de operaciones debe de salir datos por RA 1 y 2 para controlar el giro de un motor; en RA3 controlar un relevador y con RA4 controlar un servo. completado todo reiniciar y esperar a que alguien pulse el boton en RA0. hasta ahora solo he visto ejemplos donde configuran el puerto A como entrada y el puerto B como salida por lo que no se como lograr esto ademas de que todos los ejemplos que he visto hasta ahora comfiguran igual todas las lineas del puesrto (o todoas entradas o todas salida). alguien sabe como configurar indibidualmente cada linea? estoy usando mplab (talvez luego use C) de antemano agradesco su ayuda.
 

Adjuntos

  • p01_843.jpg
    p01_843.jpg
    102.8 KB · Visitas: 140
EL registro 05h y 06h son los correspondientes a puerto A y puerto B desde el el "banco 0" :puedes leer o escribir segun su configuracion entr o sali.
Los mismos registros desde el "banco 1" 05h y 06h son los registros de configuracion .si un bit de este registro se pone 0 correspondera a una salida si se pone 1 correspondera a una entrada.
ejm:
movlw ffh (pongo todos los bits del acumulador a 1)
movwf 06h (muevo el valor del acumulador al registro de configuracion del puerto B) asi el puerto b se configura como entrada.

bcf 06h,0 (el bit nº 0 aora es una salida)
bcf 06h,7 (el bit nº 7 aora es una salida)
.....

no se si me explico muy bien. de todas formas tengo un documento q lo explica de una forma bastante clara .
 
parece ser q no puedo colgar aqui el documento. Es un pdf ocupa 15 Megas .programacion pic16f84.pdf
si al guien me puede decir donde colgarlo lo pondre. Es un documento muy util.
 
En realidad, el lenguaje no es una limitante. Solamente, necesitarás usar mas instrucciones (con lo que podrás hacer menos cosas en la misma cantidad de ciclos de reloj). Los verdaderos limitantes son la velocidad, la memoria, y tu imaginación.
En cuanto a si es posible reprogramarlo, depende de si la memoria donde guarda las instrucciones es EPROM (no regrabable), o EEPROM (regrabable). Es decir, depende de que microcontrolador uses.
Rectifico, con EPROM me refería a PROM. Las memorias EPROM contienen una ventana transparente que permite borrarlas con luz ultravioletas, aunque ya están obsoletas.
 
Atrás
Arriba