Mis pequeñas prácticas con microcontroladores

Iniciado por Tokes, 25 Agosto 2010, 01:48 AM

0 Miembros y 2 Visitantes están viendo este tema.

Tokes

Hola a todos:

Debido a la enorme falta de actividad en este subforo con respecto a los microcontroladores, he decidido abrir un nuevo tema en el cual mostraré prácticas sencillas realizadas por mí, para que las personas que no saben o apenas se están introduciendo al mundo de los microcontroladores tengan un apoyo en esta página. Espero, sinceramente, que se unan, si no para compartir, por lo menos para preguntar. Porque, lamentablemente, este foro de electrónica se está perdiendo en la oscuridad.

Como todo, debemos empezar por lo más sencillo; pero como por el momento no tengo nada sencillo que mostrar, me dedicaré a hacer un pequeño programa ilustrativo. Cuando lo acabe lo posteo.

              Por su atención, muchas gracias.

P.D.1: Si no les agrada la idea, por favor absténganse de poner comentarios ofensivos.

P.D.2: La programación de microcontroladores es bellísima... ¡¿QUÉ SUCEDE AQUÍIIIIIIIIIIII?!

Debci

Hombre, pues esta muy pero que muy bien la iniciativa, yo tambien voy a cojerle actividad a esta secion, es algo que me gusta y quiero que haya aqui un mundillo :)

Saludos

andres_5

a mi tambien me interesa, actualmente estoy buscando info respecto a este tema...
saludos =D
Algunos de mis proyectos sobre electronica -->
En Mi Canal de Youtube



Mr.Blue

Estoy creando un pequeño tuto introductorio al tema cuando lo termino lo subo, esta buena la iniciativa y si esta teniendo poca actividad este subforo. Saludos.

Tokes

Hola a todos:

Como dije anteriormente, empezaré por algo muy, pero muy sencillo: explicar la diferencia entre microprocesador y microcontrolador (aunque para algunos, es muy obvia). Trataré de ser lo más breve y menos aburrido posible.

Un microprocesador es el cerebro de cualquier sistema electrónico. Tiene la capacidad para realizar operaciones lógicas y aritméticas, y también puede comunicarse con otros dispositivos electrónicos.

Un microcontrolador es todo un sistema electrónico dentro de un solo chip, capaz de llevar a cabo el control de una tarea específica.

Claro está que para controlar un proceso se requiere inteligencia, entonces, un microcontrolador contiene un microprocesador dentro de su arquitectura.



Figura 1. Diagrama de bloques resumido de un microcontrolador.

Es decir, un microprocesador por sí solo no puede hacer absolutamente nada. Pensemos por un momento: Si algún demente le hubiera sacado el cerebro a Einstein y lo hubiera puesto en un frasco con conservadores, ¿Qué habría hecho o producido ese cerebro?

A pesar de ser un cerebro potentísimo, no tendría los medios para comunicarse con el exterior, y por lo tanto, es completamente inútil.

Podemos considerar a un ser humano como un controlador. Un controlador que cambia, y a veces, destruye su entorno. Pero esto lo logra gracias a que dispone de un poderoso "procesador", el cual puede interactuar con el exterior debido a sus "sensores" (la vista, el oído, el tacto, etc.) y a sus "actuadores" (los nervios, los músculos, etc.) que están conectados al "procesador" (el cerebro).

Como se puede observar en la figura 1, el microprocesador está conectado a una memoria de programa, porque sí, es cierto, el procesador puede realizar muchas operaciones; la pregunta es ¿Qué operaciones va a realizar?

Las operaciones que el microprocesador va a realizar dependen del proceso que debe controlarse. Esas instrucciones están guardadas todas en la memoria de programa, cada una en una dirección específica de dicha memoria. El microprocesador debe extraer las instrucciones una a una e irlas ejecutando. Para ello, primero pone en el bus de direcciones la dirección de la instrucción que se quiere extraer y mediante el bus de control le indica a la memoria de programa que se va efectuar una operación de lectura sobre ella. Acto seguido, la memoria de programa pone en el bus de datos la instrucción solicitada por el procesador, el cual, procede a ejecutarla.

Ahora, supongamos que la instrucción extraída por el procesador es: Sumar A + B. Surge ahora otra pregunta, ¿Qué son A y B? ¿En dónde se encuentran esos valores? La respuesta es: en la memoria de datos. Esta memoria cumple la función de contener datos temporalmente para auxiliar en el procesado de la información. Si a cualquiera de nosotros nos dijeran: multiplica 549823 x 468254, pero sin usar lápiz ni papel, ¡¿Qué hacemos?! Necesitamos lápiz y papel para ir escribiendo los datos hasta llegar al resultado final. Es más, aunque usáramos calculadora, voltearíamos y le diríamos a nuestro sinodal: ¿Me puedes repetir los números, por favor?

Pues bien, el procesador debe extraer los datos necesarios contenidos en la memoria de datos para llevar a cabo el control de un proceso.

Pero, un momento... ¿Cómo puedo controlar un proceso si yo mismo no soy parte del proceso? ¡Debo estar en contacto con el proceso!

Los puertos de Entrada/Salida cumplen la función de comunicar al sistema con el exterior. Mediante los puertos de E/S el procesador puede adquirir y enviar información a los dispositivos involucrados en una tarea determinada.

En fin, un microcontrolador es todo un sistema de control dentro de un solo paquetito; o como dijeran muchos, es un computador completo. Es verdad, un microcontrolador puede realizar las 4 operaciones básicas de una computadora:

-   Recibir información
-   Almacenar información
-   Procesar información
-   Enviar información

Bueno, por el momento es todo. Espero no haberles aburrido el día.

Saludos.


andres_5

Muy interesante, ahora mismo estoy intentando conseguir un microcontrolador pic para programarlo y demas, me podrias aconsejar uno tipico y barato para empezar? no me gustaria gastarme una pasta por un componente que valla a poder quemar, :S
para programar un componente tengo que conseguir la "base", es decir el circuito que une el PIC con el PC, ¿Que me aconsejais por USB, Puerto Paralelo...?
saludos y sigue asi ;). ...
Algunos de mis proyectos sobre electronica -->
En Mi Canal de Youtube



Tokes

Mira, yo te recomiendo el microcontrolador PIC12F510. Tiene memoria de programa Flash, para que lo puedas grabar cuantas veces quieras, trae su oscilador interno, es de 8 patitas y cuesta $35 en Steren.

Con respecto al grabador para PIC te recomiendo que sea por USB, esos programadores son más rápidos y confiables. Te dejo el link de la página de Steren:

http://www.steren.com.mx/catalogo/interior2.asp?NumeroDePaginaActual=2&PaginaAnterior=True&texto_busqueda=microcontrolador&CuantosXPagina=5&OrdenarX=

Cuidado con los micros de memoria OTP, esos sólo los puedes grabar una vez.

Aquí el link de la página de Pictrónico:

http://www.pictronico.com/shop/osc/index.php?cPath=33

             Eso es todo por el momento. Saludos.

Mr.Blue

#7
Aca en este link podes encontrar el quemador pic por puerto DB-45

http://www.megaupload.com/?d=NRBHEVYM

Funciona esta probado.

algunos ejemplos simples.

Código (asm) [Seleccionar]
;ejercico 1
;encender un led en rb0
;pic 16f84
;oscilador 4MHz (Xtal)
;TTP Montaje
;10/09/2007
;Autor: Sr.blanco

status equ 03
porta equ 05
portb equ 06
trisa equ 85
trisb equ 86

list p= pic 16f84

reset org 0 ;saltar vector de ingreso
goto inicio
org 5

inicio bsf status,5 ;pasar a banco de memoria 1
movlw b'00000' ;caragr en w palabra de configuracion trisa
movwf trisa ;cargar en w palabra de configuracion tris
movlw b'00000000' ;cargar en w palabra de configuracion trisb
movwf trisb ;cargar en w pqalabra de configuracion trisb
bcf status,5 ;pasar a banco de memoria

limpio clrf porta ;limpio puerto a
clrf portb ;limpio puerto b

comenzar movlw b'00000001'
movwf portb
end



Código (asm) [Seleccionar]
;ejercico 8
;control de sentido de giro de motor de cc
;pic 16f84
;oscilador 4MHz (Xtal)
;TTP Montaje
;09/10/2007
;Autor: Sr.Blanco

status equ 03
porta equ 05
portb equ 06
trisa equ 85
trisb equ 86
dato equ 0d

list p= pic 16f84

reset org 0
goto inicio
org 5

inicio bsf status,5
movlw b'00001'
movwf trisa
movlw b'00000000'
movwf trisb
bcf status,5

limpio clrf porta
clrf portb


leo movf porta,w
movwf dato
btfss dato,0
goto leo


prendo1 movlw b'00001100'
movwf portb
movlw b'00000110'
movwf portb
movlw b'00000011'
movwf portb
movlw b'00001011'
movwf portb
movlw b'00001001'

prendo2 movlw b'00001001'
movwf portb
movlw b'00001011'
movwf portb
movlw b'00000011'
movwf portb
movlw b'00000110'
movwf portb
movlw b'00001100'
goto prendo1|

end




Código (asm) [Seleccionar]
;ejercico 12
;Efecto de luces
;pic 16f84
;oscilador 4MHz (Xtal)
;TTP Montaje
;Autor: Sr.Blanco
[hr]
lee movf porta,w
movwf dato
btfss dato,0
goto lee1
goto lee2

lee1 btfss dato,0
goto lee3
goto lee4

lee2 btfss dato,1
goto lee5
goto lee6

lee3 btfss dato,1
goto luces1
goto luces2

lee4 btfss dato,2
goto luces3
goto luces4

lee5 btfss dato,2
goto luces5
goto luces6

lee6 btfss dato,2
goto luces7
goto luces8








luces1 movlw b'10000001'
movwf portb
call tiempo
movlw b'11000011'
movwf portb
call tiempo
movlw b'11100111'
movwf portb
call tiempo
movlw b'11111111'
movwf portb
call tiempo
movlw b'11100111'
movwf portb
call tiempo
movlw b'11000011'
movwf portb
call tiempo
goto lee





luces2 movlw b'10000001'
movwf portb
call tiempo
movlw b'01000010'
movwf portb
call tiempo
movlw b'00100100'
movwf portb
call tiempo
movlw b'00011000'
movwf portb
call tiempo
movlw b'00100100'
movwf portb
call tiempo
movlw b'01000010'
movwf portb
call tiempo
goto lee


luces3 movlw b'00000001'
movwf portb
call tiempo
movlw b'00000010'
movwf portb
call tiempo
movlw b'00000100'
movwf portb
call tiempo
movlw b'00001000'
movwf portb
call tiempo
movlw b'00010000'
movwf portb
call tiempo
movlw b'00100000'
movwf portb
call tiempo
movlw b'01000000'
movwf portb
call tiempo
movlw b'10000000'
movwf portb
call tiempo
movlw b'01000000'
movwf portb
call tiempo
movlw b'00100000'
movwf portb
call tiempo
movlw b'00010000'
movwf portb
call tiempo
movlw b'00001000'
movwf portb
call tiempo
movlw b'00000100'
movwf portb
call tiempo
movlw b'00000010'
movwf portb
call tiempo
goto lee



luces4 movlw b'11111111'
movwf portb
call tiempo
clrf portb
call tiempo
goto lee


luces5 movlw b'00000001'
movwf portb
call tiempo
movlw b'00000010'
movwf portb
call tiempo
movlw b'00000100'
movwf portb
call tiempo
movlw b'00001000'
movwf portb
call tiempo
movlw b'00010000'
movwf portb
call tiempo
movlw b'00100000'
movwf portb
call tiempo
movlw b'01000000'
movwf portb
call tiempo
movlw b'10000000'
movwf portb
call tiempo
goto lee



luces6 movlw b'10101010'
movwf portb
call tiempo
movlw b'01010101'
movwf portb
call tiempo
goto lee



luces7 movlw b'11000011'
movwf portb
call tiempo
movlw b'00111100'
movwf portb
call tiempo
goto lee




luces8 movlw b'11110000'
movwf portb
call tiempo
movlw b'00001111'
movwf portb
call tiempo
goto lee



luces9 movlw b'11001100'
movwf portb
call tiempo
movlw b'00110011'
movwf portb
call tiempo
goto lee



luces10 movlw b'10101010'
movwf portb
call tiempo
movlw b'00000000'
movwf portb
call tiempo
movlw b'01010101'
movwf portb
call tiempo
goto lee



luces11 movlw b'11100000'
movwf portb
call tiempo
movlw b'01110000'
movwf portb
call tiempo
movlw b'00111000'
movwf portb
call tiempo
movlw b'00011100'
movwf portb
call tiempo
movlw b'00010000'
movwf portb
call tiempo
movlw b'00100000'
movwf portb
call tiempo
movlw b'01000000'
movwf portb
call tiempo
movlw b'10000000'
movwf portb
call tiempo
goto lee

andres_5

Cita de: Tokes en 26 Agosto 2010, 16:54 PM
Mira, yo te recomiendo el microcontrolador PIC12F510. Tiene memoria de programa Flash, para que lo puedas grabar cuantas veces quieras, trae su oscilador interno, es de 8 patitas y cuesta $35 en Steren.

Con respecto al grabador para PIC te recomiendo que sea por USB, esos programadores son más rápidos y confiables. Te dejo el link de la página de Steren:

http://www.steren.com.mx/catalogo/interior2.asp?NumeroDePaginaActual=2&PaginaAnterior=True&texto_busqueda=microcontrolador&CuantosXPagina=5&OrdenarX=

Cuidado con los micros de memoria OTP, esos sólo los puedes grabar una vez.

Aquí el link de la página de Pictrónico:

http://www.pictronico.com/shop/osc/index.php?cPath=33

             Eso es todo por el momento. Saludos.
Dios, no hay microcontroladores que sea mas barato, porque en ese caso prefiero hacerme con un arduino que mas o menos me sale unos 10€, ya que para empezar prefiero con lo mas barato, seria muy frustrante que quemase ese microcontrolador con mi inexperiencia...
saludos .
Algunos de mis proyectos sobre electronica -->
En Mi Canal de Youtube



Mr.Blue

@andres_5
Dependiendo que quieras hacer vas a comprar uno y otro pic si queres hacer practicas simples, como los codigos que puse te recomiendo el 16f84 no son caros, y podes hacer varias cosas con ellos.