Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Qu es un Microcontrolador?
Es un dispositivo electrnico de alta escala de integracin, que nos permite controlar puertos de entrada y salida. Es utilizado para el diseo de sistemas digitales avanzados. La analoga mas comn es que un microcontrolador es como una PC.
Microcontrolador vs. PC
CPU (Central procesor Unit) Memoria de programacin Memoria de Datos (localidades de memoria) Puertos de entrada Puertos de salida Microprocesador (pentium) Memoria ROM (BIOS) Memoria RAM Teclado, mouse, puerto infrarrojo, USB, etc. Monitor, bocinas, unidades de disco, USB, etc.
Arquitectura Harvard
Qu es un PIC?
PIC (Peripheral Interface Controller) Los PICs son microcontroladores con arquitectura Harvard. Los PICs utilizan un conjunto de instrucciones de tipo RISC (Reduced Instruction Set Computer)
Generalidades de un PIC
Se programan en lenguaje ensamblador (lenguaje de mquina). Se utiliza un software editor donde se escriben los comandos a programar en el PIC. (MPLAB) Un software que permita traducir a lenguaje ensamblador los comandos escritos en el editor. (MPASM) Un software que permita programar o enviar el codigo en ensamblador al PIC. (NOPP) Tambin es necesario contar con un circuito programador de PICs
PICAXE
EL PICAXE es un PIC al cual se le grab un pequeo software (firmware) para poder programarlo en el mismo circuito donde ser utilizado por medio de un software gratuito desarrollado en ambiente muy amigable donde los programas pueden ser escritos en lenguaje basic o como diagrama de flujo; logrando con esto que el PICAXE sea el PIC ms fcil de utilizar.
Configurando el software
Para configurar algunas cosillas es necesario accesar al men view>>options
Modelos de PICAXE
Existen varios modelos los cuales varan en nmero de entradas y salidas y en el tipo de entradas (analgicas o digitales). Existen: picaxe 08, picaxe 08M, picaxe 14M, picaxe 18, 18A, 18X, 28, 28A, 28X, 28X1, 28X2 y 40X, 40X1 y 40X2. El nmero nos refiere el nmero de patitas que tiene el chip y la letra es para diferenciar caractersticas internas del PICAXE, dichas caractersticas se pueden ver en los manuales.
PICAXE 08 y 08M
PICAXE 14M
PICAXE 40X
Tabla comparativa
Entradas y salidas
El kit de trabajo
Un PICAXE 18A Una tarjeta entrenadora del PICAXE 18A Una protoboard 8 LEDs 8 resistencias 330 Una fotoresistencia de 10 M Una resistencia de 100 k Una bocina piezoelctrica (piezo sounder) Un decodificador 74LS47 Display de 7 segmentos 8 resistencias de 330 Cable programador PICAXE 17 jumpers
La tarjeta entrenadora
La tarjeta entrenadora
La tarjeta entrenadora
El primer programita
Ejercicio 2
Teniendo una hilera de 8 LEDs, hacer un programa que vaya encendiendo consecutivamente cada uno de los LEDs durante 0.5 segundos, de izquierda a derecha.
Ver solucin
espera 1 segundo
Regresa a la etiqueta main
NOTA: el comando wait puede ser seguido por un nmero entre 1 y 65 mientras que el comando pause, por un nmero entre 1 y 65535
Ciclos ForNext
symbol contador = b1
define la variable b1 como contador
symbol LED = 4 define main: for contador = 1 to 15 high LED pause 500 low LED pause 500 next counter end
enciende el LED
espera 0.5 segundos apaga el LED espera 0.5 segundos acaba el ciclo for fin del programa
Haciendo Ruido
Buzzer piezo sounder
Bocina
Conexin al PICAXE
Conexin al PICAXE
Haciendo Ruido
main:
sound 2,(50,100) sound 2,(100,100) sound 2,(120,100) pause 1000 goto main
NOTA: el nmero 2 despus del comando sound es para decir la salida que queremos que haga ese sonido y es necesaria la coma (,) despus de la salida
Para los PICAXE 08 Y 08M es necesario que la salida sea la 2
Ejercicios 3 y 4
Hacer un programa donde se reproduzcan 100 sonidos diferentes de tal forma que las frecuencias de cada sonido vayan en Ver solucin aumento. Hacer un programa donde se reproduzcan 30 sonidos diferentes de tal forma que las frecuencias de cada sonido vayan disminuyendo de 5 en 5.
Ver solucin
Display de 7 segmentos
NOTA: El decodificados que nosotros proporcionamos en el Kit es el 74LS47 pero su diagrama de conexin es igual al que se muestra en la figura
Del 0 al 9 en 7 segmentos
Symbol cont = b0 renombrando b0 como cont main: for cont = 0 to 9 inicio ciclo for let pins=cont igualando las salidas
al [valor de cont
Ciclo de trabajo de 50% Valor promedio igual a la mitad del valor mximo
Symbol ton1 = b6 symbol toff1 = b7 symbol ton2 = b8 symbol toff2 = b9 let ton1 = 2 2:10 (1:5) let toff1 = 10 let ton2 = 20 20:10 (2:1) let toff2 = 10 main: for b2 = 1 to 200 high 0 pause ton1 low 0 pause toff1 next b2 pause 2000 for b2 = 1 to 200 high 0 pause ton2 low 0 pause toff2 next b2 pause 2000 goto main
renombrando variables
inicializazndo variables con una razon de inicializando variables con una razon de
iniciando ciclo for encendiendo salida 0 esperando un tiempo igual a ton1 apagando salida 0 esperando un tiempo igual a toff1 siguiente valor de b2 esperando 2 segundos iniciando otro ciclo for encendiedno salida 0 esperando un tiempo igual a ton2 apagando salida 0 esperando un tiempo igual a toff2 siguiente valor de b2 esperando 2 segundos regresar a la etiqueta main
enciende la salida 4
espera 2 segundos apaga la salida 4
regresa a main
NOTA: La etiquetas no pueden empezar con nmeros ni tampoco se pueden usar palabras como for o sound que son comandos o sentencias internas del sistema PICAXE, es necesario que al final de la etiqueta se pongan dos puntos(:)
La funcin OR
Interruptor A
Interruptor B
La funcin OR
Interruptor A
Interruptor B
La funcin OR
Interruptor A
Interruptor B
La funcin OR
Interruptor A
Interruptor B
Tabla de verdad
A off on off on B off off on on FOCO Off On On on
El diagrama de flujo
Ejercicio 5
Programar el PICAXE de tal forma que cuando se presiones la entrada 1 se vea un uno en el display de 7 segmentos, si se presiona la entrada 2 se vea un dos en el display y si se presionnan ambas entradas se despliegue una A. Todos los despliegues deben durar 4 segundos y regresar a cndiciones iniciales para esperar a que el usuario presiones una entrada.
Ver solucin
readadc 1,b0 guardando lectura del ADC en b0 if b0 > 120 then top si b0 > 120 ir a top if b0 < 70 then bot si b0 < 70 ir a bot low 0 sino apagar salido 0 low 4 sino apagar slaida 4 goto main ir a la etiqueta main top: high 0 low 4 goto main bot: high 4 low 0 goto main
etiqueta top encender salida 0 apagara salida 4
ir a la etiqueta main
etiqueta bot encender salida 4 apagara salida 0 ir a la etiqueta main
Ejercicio 6
Programar el PICAXE para que sirva como medidor de intensidad luminosa, de tal forma que est calibrado para que en la oscuridad se despliegue en el display de 7 segmentos un cero y a la mxima intensidad se despliegue un 9 teniendo entonces 10 niveles repartidos equitativamente en todo el espectro de intensidades.
Ver solucin
Comando debug
main:
etiqueta main
readadc 1,b0
debug b0
pause 500
goto main
Sub-rutinas
Una sub-rutina es un mini programa dentro del mismo programa principal. Muchas veces las sub-rutinas son utilizadas para organizar los programas en pequeas secciones para que sea ms fcil entender el objetivo del programa. Los PICAXE modelo X aceptan hasta 255 sub-rutinas, los dems slo aceptan 15.
Ejemplo sub-rutina
symbol LED = 4 renombrandoLED a la salida 4 symbol buzzer = 2 renombrando buzzer a la salida 2 symbol counter = b1 deefine conunter a la variable b1 main: etiqueta main gosub flash llama a hacer la sub-rutina flash gosub noise llama a hacer la sub-rutina noise goto main regrresar a main end fin del programa flash: hace un sub-rutina llamada flash for counter = 1 to 25 comeinza un ciclo for high LED enciende el LED pause 50 espera 0.05 segundos low LED apaga el LED pause 50 espera 0.05 segundos next counter siguiente valor de counter return regresa al programa principal noise: high buzzer enciended el buzzer pause 2000 espera dos segundos low buzzer apaga el buzzer return regrgesa al programa principal
Ejercicio 7
Programar el PICAXE para que se despliegue en un display de 7 segmentos los nmeros del 1 al 9, de tal forma que cada que cambie un dgito se reproduzca la escala musical en un piezo sounder y parpadee un LED cuatro veces con una duracin de 0.05 segundos.
Ver solucin
Interrupciones
Una interrupcin es un caso particular de una sub-rutina, slo que esta sub-rutina es llamada a ejecutarse cuado un entrada (o combinacin de entradas) ha sido activada. Una interrupcin es el camino mas corto para que el PICAXE reacciones de cierta manera a una estimulacin externa (entrada). Las interrupciones pueden ocurrir en cualquier instante, debido a que el puerto de entrada se monitores entre comando y comando ejecutado.
Ejemplo de Interrupcin
setint %10000000,%10000000
activa la interrupcion cuandola entrada 7 este [en alto
loop: low 1 apaga salida 1 pause 2000 espera dos segundos goto loop regrgesa a loop interrupt: high 1 enciende la salida 1 if pin7 = 1 then interrupt se pause 2000 espera 2 segundos setint %10000000,%10000000 return
queda [haciendo esta rutina hasta que la interrupcion se acabe reactiva la [interrupcion
Tan Tan
GRACIAS!