You are on page 1of 11

LABORATORIO (TERCER CORTE) CONVERSIÓN ANALOGICO-DIGITAL

Alumna:
IVETTE STEFANY FLOREZ DUARTE Código: 1093760425

Materia: MICROPROCESADORES Y MICROCONTROLADORES

Grupo: AR

Profesor: Ing. LUIS ALBERTO MUÑOZ BEDOYA

UNIVERSIDAD DE PAMPLONA SEDE DE VILLA DEL ROSARIO FACULTAD DE INGENIERIAS Y ARQUITECTURA PROGRAMA ING. TELECOMUNICACIONES 2013

). en una representación digital (números binarios) del valor correspondiente a la tensión en el pin de entrada para poder trabajar con ella.INTRODUCCIÓN En este informe observaremos como podemos realizar la conversión analógica digital. en este laboratorio hicimos que en vez de mostrar ese número en binario que nos arroja la tensión del pin de entrada. cuando la entrada me suministre en valor digital el 99. etc. en pocas palabras. . humedad. si el valor en digital de la señal del potenciómetro es 56 ése es el número que se debe ver en el display. ese será el valor que se observe en el display de allí en adelante. el funcionamiento es prácticamente el mismo. es el PIC 16F877A. que como sabemos es la que nos permite transformar una señal analógica (un voltaje). El PIC que se ha utilizado en este laboratorio. pero si el número es mayor que 99 (los datos van hasta 255) en los display se debe seguir viendo el 99. Se utiliza en infinidad de aplicaciones. es decir. acelerómetros. lo más común es usarla para leer señales provenientes de algún sensor (temperatura. Ahora bien. lo veamos en el display. pero si utilizamos cualquier otro.

 . Programar en “PIC C Compiler” el funcionamiento del circuito.OBJETIVOS    Diseñar un circuito con dos displays (siete segmentos) controlado por un potenciómetro en PROTEUS. Realizar un contador de cero a noventa y nueve. éste valor irá dirigido por la señal del potenciómetro. Realizar el respectivo montaje físico del circuito. que en vez de mostrar ese número en binario que nos arroja la tensión del pin de entrada. lo veamos en el display en digital.

Se caracterizan por contar con espacios divididos de manera independiente para el código y los datos.  Resistencia: se define como el cociente entre la diferencia de potencial entre dos puntos de un objeto material y la corriente establecida como consecuencia de esa diferencia de potencial. permitiendo controlar la intensidad de corriente a lo largo de un circuito conectándolo en paralelo o la caída de tensión al conectarlo en serie. Esta característica se . Además de esto. destacando entre ellas que no requiere instrucciones complejas para su aprendizaje. y ofrece programación serial. convirtiéndose en una de las mejores recomendaciones en la programación de bajo coste (la conocida como low cost).  PIC: Se conocen como programadores PIC (de las siglas Peripheral Interface Controller). con capacidad de escribir en él con el objetivo de incorporar saltos indirectos. mientras que la deformación del cristal genera una tensión eléctrica. Las ventajas de la arquitectura de programación PIC son numerosas. de estos microcontroladores destaca la posibilidad de contar con un contador mapeado en el espacio de datos. Por otro lado. y que cuenta con arquitectura RISC (Reduced Instruction Set Computing).  Cristal de Cuarzo: En los cristales de cuarzo se produce un fenómeno llamado piezoelectricidad. Este fenómeno consiste en que la aplicación de una tensión eléctrica produce una deformación del cristal. tiene un precio reducido. En términos matemáticos se define como la proporción entre el voltaje aplicado y la intensidad de corriente eléctrica.DESCRIPCIÓN DE LOS DISPOSITIVOS USADOS  Potenciómetro: es un componente electrónico similar a los resistores pero cuyo valor de resistencia en vez de ser fijo es variable.

de dos polaridades. emisor y base. Cada vez es más frecuente encontrar LCD´s en estos equipos (debido a su bajísima demanda de energía). La estructura del transistor bipolar es: colector.  Transistor: Los transistores son componentes activos de 3 terminales. Siendo la base. entonces el oscilador generará una tensión alterna cuya frecuencia vendrá determinada por las características mecánicas del cristal utilizado y tendrá la característica de que su frecuencia será sumamente estable y precisa. el de la derecha. Los transistores pueden llegar a ser muy chicos. a parte central. Cómo es natural. A esto se le llama realimentación positiva. se realimenta con la misma fase a la entrada. Si en el camino de la realimentación positiva se encuentra un cristal de cuarzo. el de la izquierda y el emisor. Es preciso que el cristal de cuarzo forme parte de un circuito electrónico llamado oscilador que no es sino un amplificador donde una parte de la energía de salida. De ahí su empleo en equipos de telecomunicaciones. el colector. la frecuencia de oscilación de un cristal viene determinada por el grueso de la lámina de cuarzo y la dirección en que se dio el corte del cristal original para obtener la lámina. todavía hay muchos que utilizan el display de 7 segmentos por su simplicidad.  Display 7 segmentos: El display de 7 segmentos. . es un componente que se utiliza para la representación de números en muchos dispositivos electrónicos. Los transistores más comunes son los bipolares. un simple cristal de cuarzo no es capaz por si sólo de generar ninguna tensión alterna. diseñados para controlar la conducción de electricidad. Como ya se ha indicado.aprovecha en electrónica para producir tensiones alternas con una gran estabilidad de frecuencia ya que ésta depende directamente del grueso de la lámina de cuarzo. ya que se forman por dos semiconductores (N y P). pero su tamaño es directamente proporcional a la cantidad de corriente que pueden soportar.

Si se activan solo los segmentos: "b. por su facilidad de visualización.d. representa el punto decimal.Si se activan solo los segmentos: "a.g." se forma el número "0" .Este elemento se ensambla o arma de manera que se pueda activar cada segmento (diodo LED) por separado logrando de esta manera combinar los elementos y representar todos los números en el display (del 0 al 9). que alimentan los distintos circuitos del aparato electrónico al que se conecta.d. El display de 7 segmentos más común es el de color rojo.  Fuente de poder: En electrónica. Cada elemento del display tiene asignado una letra que identifica su posición en el arreglo del display.e.Si se activan todos los segmentos se forma el número "8" .g.f.c. Ver el gráfico arriba . prácticamente continuas." se forma el número "2" .  Pulsador: También llamados interruptores momentáneos. .d.c.b." se forma el número "4" p.b. en una o varias tensiones. Este tipo de interruptor requiere que el operador mantenga la presión sobre el actuante para que los contactos estén unidos.f.Si se activan solo los segmentos: "a. una fuente de alimentación es un dispositivo que convierte la tensión alterna.

DISEÑO ESQUEMATICO Código del programa: #include <16F877A.NODEBUG.NOLVP.NOWRT #use delay(clock=4000000) #byte port_b=6 #byte port_d=8 void main() { set_tris_b(0).XT.NOBROWNOUT.NOPROTECT. port_d=0.h> #device ADC=8 #fuses NOWDT. setup_adc(ADC_CLOCK_INTERNAL).NOCPD.NOPUT. set_tris_d(0). setup_adc_ports(AN0_AN1_AN3). . port_b=0.

delay_us(0.int num[10]={63. delay_us(20). port_b=num[9].001).s<5.0).f=0.0). delay_us(0. bit_set(port_d.01).s++) { bit_set(port_d. bit_set(port_d.125. bit_clear(port_d.102.7).s<5.7).7.127. num_dig=read_adc().0). int a=0. port_b=num[b]. port_b=num[f].0). port_b=num[9]. int num_dig.111}.s++){ bit_set(port_d.109. bit_clear(port_d.7). delay_us(0.b=0. a=num_dig/100. while (true){ set_adc_channel(0).7). } } } } .91. bit_clear(port_d.79. bit_clear(port_d.01). b=(num_dig%100)/10.01). } } else { for (s=0. bit_clear(port_d. f=num_dig%10.0).s.7).6. if (a<1) { for(s=0. delay_us(0. bit_clear(port_d.

EXPLICACIÓN DE LA LÓGICA DE FUNCIONAMIENTO Empezamos con declarando la librería “#include” para el manejo del pic16F877A. En seguida creo una variable digital.NOWRT Declaramos la frecuencia del cristal. “f” que hace referencia a las unidades. después se guarda en la variable num_dig el valor convertido de Analógico en Digital.125.s. port_d=0. A continuación declaramos el reloj y los puertos análogos digitales. “b” sean las decenas y “a” las centenas. y por ultimo “s” que va a ser un contador de ciclo. “b” que hace referencia a las decenas.127. #include <16F877A. Esperamos 20 microsegundos para que se estabilice. después ponemos la configuración de ADC de 8 bits.h> #device ADC=8 //Configuracion de ADC de 8 bits #fuses NOWDT. int num[10]={63. . Entramos a un ciclo infinito.79.NODEBUG.6.NOCPD.XT. leemos el canal cero. port_b=0. después configuramos los fusibles. set_tris_d(0). #use delay(clock=4000000) #byte port_b=6 #byte port_d=8 Programamos para que todo el puerto b y d sean de salida. int a=0.7.91. Igualamos los puertos “b y d” a cero para que tengamos un valor inicial.NOBROWNOUT.NOPROTECT. Después declaro el puerto b y d en su localidad. Y posteriormente le enviamos un cero a los dos transistores para que apaguen los displays. setup_adc(ADC_CLOCK_INTERNAL).109.NOPUT. Creamos un vector con el valor de cada uno de los números que voy a mostrar en cada uno de mis Displays.f=0. setup_adc_ports(AN0_AN1_AN3).102. int num_dig.111}.b=0.NOLVP. y declaro cuatro variables. A continuación realizamos la operación en cada caso para indicar que “f” sean las unidades. “a” que hace referencia a las centenas. void main(){ set_tris_b(0).

7). bit_clear(port_d. delay_us(20). bit_set(port_d.s++){ bit_set(port_d. port_b=num[9]. por lo tanto en el puerto se va a ver reflejado el número de las decenas.s++){ bit_set(port_d. } Si el número digital es de 100 a 255 los displays van a mostrar siempre el número 99.s<5.01). } } . bit_set(port_d. Y va a ser en la posición nueve del vector.0). enciendo el otro y muestro las unidades.7). if (a<1) { for(s=0. delay_us(0. b=(num_dig%100)/10. apago ese transistor.0).7). entro en un ciclo donde va a encender primero un transistor. bit_clear(port_d. bit_clear(port_d. port_b=num[9]. port_b=num[f].s<5. port_b=num[b]. delay_us(0.0). f=num_dig%10. bit_clear(port_d. a=num_dig/100.0).while (true){ set_adc_channel(0). es decir que los números van del 0 al 99.001). delay_us(0. espero un tiempo. Entonces si las centenas son menores que uno.0).01).01). } else { for(s=0. bit_clear(port_d.7).7). bit_clear(port_d. num_dig=read_adc(). delay_us(0. ósea que en la posición nueve del vector que tenga un 9.

4. entendí mejor la forma de realizar los diferentes códigos en lenguaje C. y no lograríamos que el circuito funcione como deseamos. ya que una letra.CONCLUSIONES 1. un número o inclusive el orden de las instrucciones puede arrojarnos errores en el programa. . Con la elaboración de este laboratorio se logró entender de mejor forma el funcionamiento del circuito conversor analógico-digital. para de esta forma lograr obtener los números que deseamos mostrar en el circuito. En el momento de realizar el diseño del circuito en Proteus Isis aprendí a manejar de mejor forma las diferentes herramientas y elementos que tiene este programa. Y por último. al lograr realizar el circuito. por medio de los dos displays siete segmentos. 2. 3. Además pude aplicar y ampliar los conocimientos aprendidos en clase. Se debe tener en cuenta la correcta realización y digitación del código el programa PIC C Compiler.