Beruflich Dokumente
Kultur Dokumente
LABORATORIO DE MICROCONTROLADORES
LABORATORIO NRO.02
TITULO: CONTROL DE PUERTOS Y DESARROLLO DE RETARDOS
INTRODUCCION
La tarea ms bsica que podemos hacer con un microprocesador es sustituir a un circuito combinacional o
secuencial.
Podemos encender una luz para cierta combinacin de entradas, conectar un bomba cuando el nivel de un
depsito sea menor de cierto umbral y pararla cuando supere otro umbral, activar una alarma cuando se
active algn sensor y la alarma est armada, etc.
Para poder hacer estas cosas, el microprocesador necesitar tener entradas y salidas digitales, igual que las
de cualquier puerta lgica.
El microprocesador dsPIC30F4013 tiene 30 patillas que pueden ser, a voluntad nuestra, entradas o salidas,
de forma que podemos hacer, por ejemplo, un circuito secuencial con 10 funciones y15 entradas. De
todos modos, el tiempo de respuesta de esas funciones es mucho mayor que el de las funciones realizadas
con puertas lgicas, aunque en la mayora de los casos ese tiempo no es demasiado importante; que
la alarma suene 1 milisegundo despus de abrir la puerta no parece grave.
Ahora bien, estas entradas y salidas digitales tienen niveles pequeos, tpicamente de 0 a 3,3 V o de 0 a 5
V, por lo que necesitaremos unos circuitos que harn de interface entre estos niveles (0 a 3,3 V o DE 0 A
5v) y los niveles con los que estemos trabajando, 220 VAC, 24 VDC o cualquier otra tensin
La configuracin de pines puede parecer absurda, ya que por ejemplo, el puerto A solo tiene el pin RA11;
esto se debe a que existen micros con ms pines que tendrn los puertos completos y al tener que seleccionar
solamente 30 pines nos hemos quedado con los ms importantes (el pin RA11 tambin es el pin de
interrupcin externa, RC13, RC14 y RC15 tienen otras funciones como comunicacin serie).
En el diagrama de pines del micro se observa que la mayora de pines tienen varios nombres, cada nombre
se refiere a una de sus funciones.
REGISTRO PORTX
Con este registro nos comunicamos con el exterior.
Al leer el registro leemos un 0 si la tensin en la entrada est a nivel bajo y un 1 si la tensin est a nivel
alto, al escribir el registro hacemos que fuera aparezcan 0 V. o 5 V (3,3V.). Dependiendo de si hemos
escrito un 0 o un 1. El nivel alto y el bajo no son valores fijos, sino que hay un margen de valores posibles.
REGISTRO LATX
Este es un registro que no exista en otros micros, y podemos realizar programas sin utilizarlo.
Este registro es el LATCH de salida. Una escritura en PORTX y en LATX hacen exactamente lo mismo,
escriben en el LATCH y si est configurado como salida, el valor aparece en el pin de salida.
En la lectura es donde se diferencian. En los pines que solo son entradas no coincidir LATX y PORTX.
En las que adems son salidas, normalmente leeremos lo mismo de las dos formas, pero si fuera hay un
cortocircuito y en PORTX o LATX hemos escrito un 1, al leer LATX obtendremos el 1, pero al leer PORTX
leeremos un 0, ya que es la tensin que realmente hay en el pin. Al leer LATX leemos el ltimo valor escrito
por medio de PORTX o LATX y al leer PORTB leemos directamente el valor de tensin del pin (1 o 0).
Nota: Aunque podramos utilizar indistintamente PORT y LAT para escribir datos, en el puerto B ocurren
cosas extraas. Para evitar ese problema debemos usar siempre LAT para escribir datos y PORT para leer.
De este modo todos los puertos funcionan como se espera.
Caso:
TRISB = 0b1111000011110101;
// Los pines RB15, RB14 y RB13 no existen en este micro. Los configuramos
// como entradas, pero podemos tambin configurarlos como salidas
// Los pines RB11, 10, 9, 8, 3 y 1 son entradas y salidas
// Los pines RB12, 7, 6, 5, 4, 2 y 0 son entradas
LATB = 0b1010101000111100;
// A los pines que son entradas o que no existen no les pasa nada
// Los pines salidas si que sern afectados:
// RB11=1 RB10=0 RB9=1 RB8=0 RB3=1 RB1=0
Entrada = PORTB;
// Cada bit de la variable entrada tomar un valor dependiendo
// de la tensin que haya en el pin correspondiente. En los pines que no existen se lee 0
// Los bits que son salidas leern el valor que se haba escrito
// salvo algn problema en el circuito externo, un cortocircuito,
// varias salidas en paralelo, etc
// Los bits que son exclusivamente entradas leern un 0 o 1 dependiendo de la
// tensin externa.
Por defecto todos los pines estn configurados en su funcin de E/S digital y adems siempre como entrada.
Existe una excepcin, que ms bien parece un fallo en el diseo del microcontrolador. Para poder utilizar
los pines del Puerto B como entradas/salidas digitales hay que indicar en el registro ADPCFG que no se va
a utilizar la entrada analgica correspondiente a ese pin.
Los pines del RB0 al RB12 pueden ser tambin entradas analgicas.
Si no vamos a utilizar ninguna entrada analgica diremos que los 13 pines son digitales:
ADPCFG=0bXX11111111111111; // X indica que da igual lo que pongamos 0 o 1.
Obviando este problema podemos decir que por defecto todos los pines del micro funcionan como
entrada/salida paralelo. Si se utilizan para alguna otra funcin dejarn de tener esta funcin inicial.
ENUNCIADO
Este LABORATORIO presenta el diseo de un prototipo que permitir el control total de la transmisin de
potencia en un motor DC (corriente continua), de tal manera, que se pueda ajustar el sentido de giro del
motor mediante un interruptor , ajustndose a las necesidades del usuario
La transmisin de potencia al motor, se realizar utilizando una etapa de potencia controlada por el
microcontrolador dsPIC30F4013
OBJETIVOS
En este laboratorio tal como se ha comentado en el apartado anterior (manejo de los puertos) , se centrar
en la recopilacin de las configuraciones esenciales para el control ptimo del motor, con los componentes
que existen hoy en da y con una configuracin fcil de ajustar, incluyendo la regulacin del sentido de giro
del motor , posteriormente se realizara el control de velocidad
CIRCUITO EXPERIMENTAL
dsPIC30f4013
PROGRAMACION
Desarrollo del programa en asembler