practica 5 circuitos

Upload: tabal

Post on 06-Mar-2016

217 views

Category:

Documents


0 download

DESCRIPTION

Practica 5 circuitos digitales

TRANSCRIPT

CONSIDERACIONES TEORICASLos principiantes en electrnica creen que un microcontrolador es igual a un microprocesador. Esto no es cierto. Difieren uno del otro en muchos sentidos. La primera y la ms importante diferencia es su funcionalidad. Para utilizar al microprocesador en una aplicacin real, se debe de conectar con componentes tales como memoria o componentes buses de transmisin de datos. Aunque el microprocesador se considera una mquina de computacin poderosa, no est preparado para la comunicacin con los dispositivos perifricos que se le conectan. Para que el microprocesador se comunique con algn perifrico, se deben utilizar los circuitos especiales. As era en el principio y esta prctica sigue vigente en la actualidad.

Por otro lado, al microcontrolador se le disea de tal manera que tenga todas las componentes integradas en el mismo chip. No necesita de otros componentes especializados para su aplicacin, porque todos los circuitos necesarios, que de otra manera correspondan a los perifricos, ya se encuentran incorporados. As se ahorra tiempo y espacio necesario para construir un dispositivo.QUE PUEDEN HACER LOS MICROCONTROLADORES?Para entender con ms facilidad las razones del xito tan grande de los microcontroladores, vamos a prestar atencin al siguiente ejemplo. Hace unos 10 aos, disear un dispositivo electrnico de control de un ascensor de un edificio de varios pisos era muy difcil, incluso para un equipo de expertos. Ha pensado alguna vez en qu requisitos debe cumplir un simple ascensor? Cmo lidiar con la situacin cuando dos o ms personas llaman al ascensor al mismo tiempo? Cul llamada tiene la prioridad? Cmo solucionar las cuestiones de seguridad, de prdida de electricidad, de fallos, de uso indebido? Lo que sucede despus de resolver estos problemas bsicos es un proceso meticuloso de disear los dispositivos adecuados utilizando un gran nmero de los chips especializados. Este proceso puede tardar semanas o meses, dependiendo de la complejidad del dispositivo. Cuando haya terminado el proceso, llega la hora de disear una placa de circuito impreso y de montar el dispositivo.Un dispositivo enorme! Es otro trabajo difcil y tardado. Por ltimo, cuando todo est terminado y probado adecuadamente, pasamos al momento crucial y es cuando uno se concentra, respira profundamente y enciende la fuente de alimentacin.Esto suele ser el punto en el que la fiesta se convierte en un verdadero trabajo puesto que los dispositivos electrnicos casi nunca funcionan apropiadamente desde el inicio. Preprese para muchas noches sin dormir, correcciones, mejoras... y no se olvide de que todava estamos hablando de cmo poner en marcha un simple ascensor.Cuando el dispositivo finalmente empiece a funcionar perfectamente y todo el mundo est satisfecho, y le paguen por el trabajo que ha hecho, muchas compaas de desarrollo estarn interesadas en su trabajo. Por supuesto, si tiene suerte, cada da le traer una oferta de trabajo de un nuevo inversionista. Sin embargo, si lo requieren para trabajar en el control de los elevadores de un nuevo edificio que tiene cuatro pisos ms de los que ya maneja su sistema de control. Sabe cmo proceder? Cree acaso que se pueden controlar las demandas de sus clientes? Pensamos que usted va a construir un dispositivo universal que se puede utilizar en los edificios de 4 a 40 pisos, una obra maestra de electrnica. Bueno, incluso si usted consigue construir una joya electrnica, su inversionista le esperarar delante de la puerta pidiendo una cmara en el ascensor o una msica relajante en caso de fallo de ascensor. O un ascensor con dos puertas.SISTEMA DE NUMERACIN BINARIOQu pasara si utilizramos slo dos nmeros 0 y 1? Si slo pudiramos afirmar (1) o negar (0) que algo existe. La respuesta es nada especial, seguiramos utilizando los mismos nmeros de la misma manera que utilizamos hoy en da, no obstante ellos pareceran un poco diferentes. Por ejemplo: 11011010.Cuntas son realmente 11011010 pginas de un libro? Para entenderlo, siga la misma lgica como en el ejemplo anterior, pero en el orden invertido. Tenga en cuenta que se trata de aritmtica con slo dos dgitos 0 y 1, es decir, del sistema de numeracin en base 2 (sistema de numeracin binario).

Evidentemente, se trata del mismo nmero representado en dos sistemas de numeracin diferentes. La nica diferencia entre estas dos representaciones yace en el nmero de dgitos necesarios para escribir un nmero. Un dgito (2) se utiliza para escribir el nmero 2 en el sistema decimal, mientras que dos dgitos (1 y 0) se utilizan para escribir aquel nmero en el sistema binario. Ahora est de acuerdo que hay 10 grupos de gente? Bienvenido al mundo de la aritmtica binaria! Tiene alguna idea de dnde se utiliza?Excepto en las condiciones de laboratorio estrictamente controladas, los circuitos electrnicos ms complicados no pueden especificar con exactitud la diferencia entre dos magnitudes (dos valores de voltaje, por ejemplo), si son demasiado pequeos (ms pequeos que unos pocos voltios). La razn son los ruidos elctricos y fenmenos que se presentan dentro de lo que llamamos entorno de trabajo real (algunos ejemplos de estos fenmenos son los cambios imprevisibles de la tensin de alimentacin, cambios de temperatura, tolerancia a los valores de los componentes etc...). Imagnese una computadora que opera sobre nmeros decimales al tratarlos de la siguiente manera: 0=0V, 1=5V, 2=10V, 3=15V, 4=20V... 9=45V!?Alguien dijo bateras?Una solucin mucho ms fcil es una lgica binaria donde 0 indica la ausencia de voltaje, mientras que 1 indica la presencia de voltaje. Simplemente, es fcil de escribir 0 o 1 en vez de no hay voltaje o hay voltaje. Mediante el cero lgico (0) y uno lgico (1) la electrnica se enfrenta perfectamente y realiza con facilidad todas las operaciones aritmticas. Evidentemente, se trata de electrnica que en realidad aplica aritmtica en la que todos los nmeros son representados con slo dos dgitos y donde slo es importante saber si hay voltaje o no. Por supuesto, estamos hablando de electrnica digital.SISTEMA DE NUMERACIN HEXADECIMALEn el principio del desarrollo de las computadoras era evidente que a la gente le costaba mucho trabajar con nmeros binarios. Por eso, se estableci un nuevo sistema de numeracin, que utilizaba 16 smbolos diferentes. Es llamado el sistema de numeracin hexadecimal. Este sistema est compuesto de 10 dgitos a los que estamos acostumbrados (0, 1, 2, 3,... 9) y de seis letras del alfabeto A, B, C, D, E y F. Cul es el propsito de esta combinacin aparentemente extraa? Basta con mirar cmo todo en la historia de los nmeros binarios encaja perfectamente para lograr una mejor comprensin del tema.

El mayor nmero que puede ser representado con 4 dgitos binarios es el nmero 1111. Corresponde al nmero 15 en el sistema decimal. En el sistema hexadecimal ese nmero se representa con slo un dgito F. Es el mayor nmero de un dgito en el sistema hexadecimal. Se da cuenta de la gran utilidad de estas equivalencias? El mayor nmero escrito con ocho dgitos binarios es a la vez el mayor nmero de dos dgitos en el sistema hexadecimal. Tenga en cuenta que una computadora utiliza nmeros binarios de 8 dgitos. Acaso se trata de una casualidad?CDIGO BCDEl cdigo BCD (Binary-CodedDecimal- Cdigo binario decimal) es un cdigo binario utilizado para representar a los nmeros decimales. Se utiliza para que los circuitos electrnicos puedan comunicarse con los perifricos utilizando el sistema de numeracin decimal o bien utilizando el sistema binario dentro de su propio mundo. Consiste en nmeros binarios de 4 dgitos que representan los primeros diez dgitos (0, 1, 2, 3...8, 9). Aunque cuatro dgitos pueden hacer 16 combinaciones posibles en total, el cdigo BCD normalmente utiliza a las primeras diez.CONVERSIN DE SISTEMAS DE NMERACINEl sistema de numeracin binario es el que utilizan los microcontroladores, el sistema decimal es el que nos resulta ms comprensible, mientras que el sistema hexadecimal presenta un balance entre los dos. Por eso, es muy importante aprender cmo convertir los nmeros de un sistema de numeracin a otro, por ejemplo, cmo convertir una serie de ceros y unos a una forma de representacin comprensible para nosotros.CONVERSIN DE NMEROS BINARIOS A DECIMALESLos dgitos en un nmero binario tienen ponderaciones diferentes lo que depende de sus posiciones dentro del nmero que estn representando. Adems, cada dgito puede ser 1 o 0, y su ponderacin se puede determinar con facilidad al contar su posicin empezando por la derecha. Para hacer una conversin de un nmero binario a decimal es necesario multiplicar las ponderaciones con los dgitos correspondientes (0 o 1) y sumar todos los resultados.MARCAR LOS NMEROSEl sistema de numeracin hexadecimal, junto con los sistemas binario y decimal, se consideran los ms importantes para nosotros. Es fcil realizar una conversin de cualquier nmero hexadecimal a binario, adems es fcil de recordarlo. Sin obstante, estas conversiones pueden provocar una confusin. Por ejemplo, qu significa en realidad la sentencia: Es necesario contar 110 productos en una cadena de montaje? Dependiendo del sistema en cuestin (binario, decimal o hexadecimal), el resultado podra ser 6, 110 o 272 productos, respectivamente. Por consiguiente, para evitar equivocaciones, diferentes prefijos y sufijos se aaden directamente a los nmeros. El prefijo $ o 0x as como el sufijo h marca los nmeros en el sistema hexadecimal. Por ejemplo, el nmero hexadecimal 10AF se puede escribir as: $10AF, 0x10AF o 10AFh. De manera similar, los nmeros binarios normalmente obtienen el sufijo % o 0B. Si un nmero no tiene ni sufijo ni prefijo se considera decimal. Desafortunadamente, esta forma de marcar los nmeros no es estandarizada, por consiguiente depende de la aplicacin concreta.La siguiente es tabla comparativa que contiene los valores de nmeros 0-255 representados en tres sistemas de numeracin diferentes. Esto es probablemente la manera ms fcil de entender lgica comn aplicada a todos los sistemas de numeracin.

BITLa teora dice que un bit es la unidad bsica de informacin...Vamos a olvidarlo por un momento y demostrar qu es eso en la prctica. La respuesta es - nada especial- un bit es un slo dgito binario. Similar a un sistema de numeracin decimal en el que los dgitos de un nmero no tienen la misma ponderacin (por ejemplo, los dgitos en el nmero 444 son los mismos pero tienen los valores diferentes), el significado de un bit depende de la posicin que tiene en nmero binario. En este caso no tiene sentido hablar de unidades, centenas etc. en los nmeros binarios, sus dgitos se denominan el bit cero (el primer bit a la derecha), el primer bit (el segundo bit a la derecha) etc. Adems, ya que el sistema binario utiliza solamente dos dgitos (0 y 1), el valor de un bit puede ser 0 o 1.No se confunda si se encuentra con un bit que tiene el valor 4, 16 o 64. Son los valores representados en el sistema decimal. Simplemente, nos hemos acostumbrado tanto a utilizar los nmeros decimales que estas expresiones llegaron a ser comunes. Sera correcto decir por ejemplo, el valor del sexto bit en cualquier nmero binario equivale al nmero decimal 64. Pero todos somos humanos y los viejos hbitos mueren difcilmente. Adems, cmo le suena nmero uno-uno-cero-uno-cero...?BYTEUn byte consiste en 8 bits colocados uno junto al otro. Si un bit es un dgito, es lgico que los bytes representen los nmeros. Todas las operaciones matemticas se pueden realizar por medio de ellos, como por medio de los nmeros decimales comunes. Similar a los dgitos de cualquier nmero, los dgitos de un byte no tienen el mismo significado. El bit del extremo izquierdo tiene la mayor ponderacin, por eso es denominado el bit ms significativo (MSB). El bit del extremo derecho tiene la menor ponderacin, por eso es denominado el bit menos significativo (LSB). Puesto que los 8 dgitos de un byte se pueden combinar de 256 maneras diferentes, el mayor nmero decimal que se puede representar con un byte es 255 (una combinacin representa un cero).Un nibble o un cuarteto representa una mitad de byte. Dependiendo de la mitad del nmero en cuestin (izquierda o derecha), se les denomina nibbles altos o bajos, respectivamente.

PUERTOS DE ENTRADA/SALIDA (E/S)Para hacer til un microcontrolador, hay que conectarlo a un dispositivo externo, o sea, a un perifrico. Cada microcontrolador tiene uno o ms registros (denominados puertos) conectados a los pines en el microcontrolador. Por qu se denominan como puertos de entrada/salida? Porque usted puede cambiar la funcin de cada pin como quiera. Por ejemplo, usted desea que su dispositivo encienda y apague los tres seales LEDs y que simultneamente monitoree el estado lgico de 5 sensores o botones de presin. Uno de los puertos debe estar configurado de tal manera que haya tres salidas (conectadas a los LEDs) y cinco entradas (conectadas a los sensores). Eso se realiza simplemente por medio de software, lo que significa que la funcin de algn pin puede ser cambiada durante el funcionamiento.Una de las caractersticas ms importantes de los pines de entrada/salida (E/S) es la corriente mxima que pueden entregar/recibir. En la mayora de los microcontroladores la corriente obtenida de un pin es suficiente para activar un LED u otro dispositivo de baja corriente (10-20mA). Mientras ms pines de E/S haya, ms baja es la corriente mxima de un pin. En otras palabras, todos los puertos de E/S comparten la corriente mxima declarada en la hoja de especificacin tcnica del microprocesador.Otra caracterstica importante de los pines es que pueden disponer de los resistores pull-up. Estos resistores conectan los pines al polo positivo del voltaje de la fuente de alimentacin y su efecto se puede ver al configurar el pin como una entrada conectada a un interruptor mecnico o a un botn de presin. Las ltimas versiones de los microcontroladores tienen las resistencias pull-up configurables por software.Cada puerto de E/S normalmente est bajo el control de un registro SFR especializado, lo que significa que cada bit de ese registro determina el estado del pin correspondiente en el el microcontrolador. Por ejemplo, al escribir un uno lgico (1) a un bit del registro de control (SFR), el pin apropiado del puerto se configura automticamente como salida. Eso significa que el voltaje llevado a ese pin se puede leer como 0 o 1 lgico. En caso contrario, al escribir 0 al registro SFR, el pin apropiado del puerto se configura como salida. Su voltaje (0V o 5V) corresponde al estado del bit apropiado del registro del puerto.UNIDAD DE MEMORIALa unidad de memoria es una parte del microcontrolador utilizada para almacenar los datos. La manera ms fcil de explicarlo es compararlo con un armario grande con muchos cajones. Si marcamos los cajones claramente, ser fcil acceder a cualquiera de sus contenidos al leer la etiqueta en la parte delantera del cajn.OSCILADORLos pulsos uniformes generados por el oscilador permiten el funcionamiento armnico y sncrono de todos los circuitos del microcontrolador. El oscilador se configura normalmente de tal manera que utilice un cristal de cuarzo o resonador cermico para estabilizacin de frecuencia. Adems, puede funcionar como un circuito autnomo (como oscilador RC). Es importante decir que las instrucciones del programa no se ejecutan a la velocidad impuesta por el mismo oscilador sino varias veces ms despacio. Eso ocurre porque cada instruccin se ejecuta en varios ciclos del oscilador. En algunos microcontroladores se necesita el mismo nmero de ciclos para ejecutar todas las instrucciones, mientras que en otros el tiempo de ejecucin no es el mismo para todas las instrucciones. Por consiguiente, si el sistema utiliza el cristal de cuarzo con una frecuencia de 20 MHZ, el tiempo de ejecucin de una instruccin de programa no es 50 nS, sino 200, 400 o 800 nS dependiendo del tipo del microcontrolador.MICROCONTROLADORES PICLos microcontroladores PIC desarrollados porMicrochip Technologyson probablemente la mejor opcin si es principiante. Hay varias razones por lo que esto es verdadero...El nombre verdadero de este microcontrolador es PICmicro (Peripheral Interface Controller), conocido bajo el nombre PIC. Su primer antecesor fue creado en 1975 por la compaaGeneral Instruments. Este chip denominado PIC1650 fue diseado para propsitos completamente diferentes. Diez aos ms tarde, al aadir una memoria EEPROM, este circuito se convirti en un verdadero microcontrolador PIC. Hace unos pocos aos la compaaMicrochip Technologyfabric la 5 billonsima muestra. Si est interesado en aprender ms sobre eso, siga leyendo.If you are interested in learning more about it, just keep on reading.La idea principal de este libro es proporcionar la informacin necesaria al usuario para que sea capaz de utilizar los microcontroladores en la prctica despus de leerlo. Para evitar explicaciones pesadas y las historias infinitas sobre las caractersticas tiles de los microcontroladores diferentes, este libro describe el funcionamiento de un modelo particular que pertenece a la clase media alta. Es PIC16F887 - bastante poderoso para ser digno de atencin y bastante simple para poder ser utilizado por cualquiera. As, los siguientes captulos describen este microcontrolador en detalle y tambin se refieren a la familia PIC entera. JUEGO DE INSTRUCCIONESEl juego de instrucciones para los microcontroladores 16F8XX incluye 35 instrucciones en total. La razn para un nmero tan reducido de instrucciones yace en la arquietectura RISC. Esto quiere decir que las instrucciones son bien optimizadas desde el aspecto de la velocidad operativa, la sencillez de la arquitectura y la compacidad del cdigo. Lo malo de la arquitectura RISC es que se espera del programador que haga frente a estas instrucciones. Por supuesto, esto es relevante slo si se utiliza el lenguaje ensamblador para la programacin. Este libro se refiere a la programacin en el lenguaje de alto nivel C, lo que significa que la mayor parte del trabajo ya fue hecho por alguien ms. As, slo se tienen que utilizar instrucciones relativamente simples.TIEMPO DE EJECUCIN DE INSTRUCCIONESTodas las instrucciones se ejecutan en un ciclo. La nicas excepciones pueden ser las instrucciones de ramificacin condicional o las instrucciones que cambian el contenido del contador de programa. En ambos casos, dos ciclos de reloj son necesarios para la ejecucin de la instruccin, mientras que el segundo ciclo se ejecuta como un NOP (No operation). Las instrucciones de un ciclo consisten en cuatro ciclos de reloj. Si se utiliza un oscilador de 4 MHz, el tiempo nominal para la ejecucin de la instruccin es 1S. En cuanto a las instrucciones de ramificacin, el tiempo de ejecucin de la instruccin es 2S.Juego de instrucciones de los microcontroladores PIC de 14 bits:

DESARROLLO DE LA PRCTICAEjercicio 1Escribe el cdigo fuente de un programa escrito en lenguaje C, el cual gobierne un micro controlador (PIC16F84), este programa debe configurar las lneas de la PUERTAA como entradas y las lneas de la PUERTAB como salidas, dicho programa debe enviar el siguiente tren de informacin hacia la PUERTAB del PIC: 1, 2, 4 ,8, 16,32,64 y 128, cada dato debe enviarse a dicho puerto por un periodo de tiempo igual a 3 milisegundos , es decir se enva un 1 por tres milisegundos y enseguida se enva un 2 por el mismo lapso de tiempo, del mismo modo con los 8 valores solicitados. Una vez que hayas escrito tu programa complalo y prubalo con ayuda del isis.

#include /*LIBRERIA DEL PIC A UTILIZAR*/ #fuses XT /*TIPO DE OSCILADOR*/ #use delay( clock = 4000000 ) /* Especifica reloj de 4 MHz */ #include

void main(void){int32 x = 0; /*DECLARACION DE VARIABLE*/int32 ciclos = 255, i =0; /* Declaracion de Valriables */int *p_puertaa= 0x05; /* Puntero a PuertaA */int *p_puertab= 0x06; /* Puntero a PuertaB */int b = 2;

SET_TRIS_A (0xff); /* 0xff --> TRISATODAS LAS PUERTAS A SON ENTRADAS*/SET_TRIS_B (0x00); /* 0x00 --> TRISB TODAS LAS PUERTAS B SON SALIDAS *//*inicio */x =1; *// Se le da el valor 1 a x en decimal para simular 2^0 *p_puertab = x ; *// Sale x=1 en binario delay_MS(500);x =2; *p_puertab = x ; *// Se le da el valor 2 a x en decimal para simular 2^1 delay_MS(500); *// Sale x = 2 en binario

for (i =2; i TRISATODAS LAS PUERTAS A SON ENTRADAS*/SET_TRIS_B (0x00); /* 0x00 --> TRISB TODAS LAS PUERTAS B SON SALIDAS */

/*inicio */*// A partir de aqu se imprimen los valores del 1 al 9

*p_puertab = 0xFC;delay_MS(500);*p_puertab =0x60;delay_MS(500);*p_puertab =0xDA;delay_MS(500);*p_puertab =0xF2;delay_MS(500);*p_puertab =0x66;delay_MS(500);*p_puertab =0xB6;delay_MS(500);*p_puertab =0xBE;delay_MS(500);*p_puertab =0xE0;delay_MS(500);*p_puertab =0xFE;delay_MS(500);*p_puertab =0xE6;delay_MS(500);

otro:// A partir de aqu se le asigna el valor de 0 a la puertab, e imprime solo ceros en binario

*p_puertab =0;delay_MS(500);

goto otro; }Ejercicio 3Una vez que hallas concluido el ejercicio nmero 2, realiza lo siguiente: Edita el cdigo fuente que realizaste en el ejercicio anterior, el programa debe permitir que el usuario accione los cinco interruptores conectados a la PUERTAA del micro controlador (el usuario puede accionar uno o varios interruptores a la vez), dependiendo del estado de los interruptores accionados (abierto o cerrado), en el display de debe visualizarse el nmero correspondiente. Recuerda que con 5 bits puedes tener hasta 31 valores diferentes. Pero con un dysplay de 7 segmentos nicamente puedes visualizar del nmero 0 al nmero 9.

#include /*LIBRERIA DEL PIC A UTILIZAR*/ #fuses XT /*TIPO DE OSCILADOR*/ #use delay( clock = 4000000 ) /* Especifica reloj de 4 MHz */

void main(void){

int32 lee = 0; /*DECLARACION DE VARIABLE*///int32 ciclos = 15, i =0; /* Declaracion de Valriables */int *p_puertaa= 0x05; /* Puntero a PuertaA */int *p_puertab= 0x06; /* Puntero a PuertaB */

SET_TRIS_A (0xff); /* 0xff --> TRISATODAS LAS PUERTAS A SON ENTRADAS*/SET_TRIS_B (0x00); /* 0x00 --> TRISB TODAS LAS PUERTAS B SON SALIDAS */ /*inicio */otro:lee= *p_puertaa;// Se declara un switch que da valores a cada botn de 0 o 1 y permite dar un valor de salida en binario sobre el display de 7 LEDs , en el caso de que la combinacin en binario no se pueda mostrar sobre el display solo se muestra una lnea de nulidad.

switch(lee){

case 0:lee=0b00000;*p_puertab =0xFC;goto otro;break;

case 1:lee=0b00001;*p_puertab =0x60;goto otro;break;

case 2:lee=0b00010;*p_puertab =0xDA;goto otro;break;

case 3:lee=0b00011;*p_puertab =0xF2;goto otro;break;

case 4:lee=0b00100;*p_puertab =0x66;goto otro;break;

case 5:lee=0b00101;*p_puertab =0xB6;goto otro;break;

case 6:lee=0b00110;*p_puertab =0xBE;goto otro;break;

case 7:lee=0b00111;*p_puertab =0xE0;goto otro;break;

case 8:lee=0b01000;*p_puertab =0xFE;goto otro;break;

case 9:lee=0b01001;*p_puertab =0xE6;goto otro;break;

default:*p_puertab =0x02;goto otro;break;}