You are on page 1of 40

Robot seguidor de líneas

con NAND

Introducción
a PICC de CCS

Programación de un
dispositivo EEPROM

Práctica:
ADC y DAC.

Año 1 - Noviembre 2008 - Número 1

 

 

 
La  revista  tiene  como  finalidad  publicar 
Índice.  artículos  hechos  por  la  comunidad 
estudiantil de la Facultad de Ciencias de la 
  Electrónica  de  la  Benemérita  Universidad 
Autónoma  de  Puebla,  para  apoyar  a 
Programación de un dispositivo EEPROM. 4 
nuestros compañeros difundiendo un poco 
Robot Seguidor de Líneas………………………..9  de la creatividad desarrollada y aplicada en 
el  área  de  la  electrónica,  el  lector  podrá 
Detector de números primos…………………14                       
construir y probar los diferentes proyectos 
y  prácticas  descritas  en  esta  publicación 
Introducción a PICC de CCS……………………18 
teniendo  la  certeza  de  que  funcionarán  al 
Práctica. Convertidores ADC y DAC……….30  cien por ciento, todos los artículos han sido 
diseñados,  innovados  y  probados  en  los 
Cuestionario. Mecánica Clásica. La Fuerza  laboratorios de nuestra universidad y otros 
de Gravedad………………………………………...36  varios  en  casa  o  lugares  específicos  de 
diseño en pasatiempo de algunos autores. 
 
En  este  número  1  de  nuestra  revista  nos 
 
aventuramos  en  el  diseño  y  mejora  de  un 
  robot  seguidor  de  líneas  construido  con 
componentes  baratos  y  lógica  digital, 
Publicación del grupo estudiantil   después  nos  introducimos  a  algunos 
Blasted Robotics, de la FCE, BUAP, Puebla,  conceptos  fundamentales  para  el  diseño 
Pue.   con  el  lenguaje  C  de  los 
microcontroladores  PIC,  incluimos  dos 
México.  prácticas  básicas,  una  de  programación  de 
una  memoria  y  otra  del  armado  de  un 
Noviembre de 2008. 
circuito  digital  con  compuertas,  una 
e‐mail:  práctica  de  laboratorio  típica  de 
convertidores  analógico  a  digital  y  de 
blastedrobotics@yahoo.com.mx  digital  a  analógico,  y  finalizamos  con  un 
cuestionario  que  nos  hace  reflexionar 
 
sobre cuestiones de nuestro mundo físico. 
Edición: 
Esperamos  disfruten  de  los  artículos  y 
García Chetla Raúl.  esperamos  que  les  sea  de  utilidad,  de 
antemano gracias. 
San Pablo Juárez Miguel Ángel. 
El grupo estudiantil Blasted Robotics. 
Gonzales Vellano Pablo. 
 
   


 

PROGRAMACIÓN DE UN DISPOSITIVO 
EEPROM (AT28HC64) 
 
 
 
Aprender  a  programar  un  dispositivo  Figura 1. Decodificador de BCD a 7 Segmentos. 

EEPROM,  con  un  respectivo  código  en   

base hexadecimal es sumamente fácil, en  De acuerdo al diseño que se va a tomar en 

este  caso  una  memoria  EEPROM  cuenta  es  necesario  ver  la  relación  que  se 

AT28C64,  de  64k  (8k  x  8),  un  bus  de  13  necesita  para  la  implementación  del 

líneas de dirección y 8 de datos. Para esta  decodificador  de  7  segmentos,  es  decir, 

práctica  se  toma  como  diseño  un  ahora se presenta el diagrama de pines de 

decodificador de BCD a 7 segmentos.  un  display  cátodo  común,  para  hacer  la 

  relación  de  leds  que  encenderán  de 
acuerdo al código binario. 
Material necesario: 
 
1 EEPROM AT28C64 de 64k(8k x 8) de 
El diagrama del display es el siguiente: 
Atmel (ó equivalente) 
1 Programador Chipmaster 7000 
1 programador Chipmaster 
(Quemador) 
1 Display de 7 segmentos cátodo 
común 
 
1 Protoboard   
8 Resistencias de 330ohm  Donde a hasta g representan una parte del 
Cables para el protoboard  número  mientras  que  h  representa  el 
Fuente de alimentación a 5 V  punto  que  trae  el  dislpay,  el  cual  se 
Caimanes  mantendrá encendido todo el tiempo. 
  Los  números  a  decodificar  son  del  0  al  15 
Tenemos el caso de hacer un decodificador  decimal.  Entonces  hacemos  una  tabla  de 
con nuestra EEPROM de BCD a 7  relación  del  código  binario  de  estos 
segmentos como se muestra en la figura:  números  y  luego  de  los  leds  que 
encenderán  en  nuestro  display,  por 

4

 d f y  A12  al  A4  deberán  estar  conectados  a  “0”  g  y  apagar  los  otros.  y  desde  ahí  sólo  “1”  lógicos  programados.  en  caso  contrario  lo  c  x  0  0  0  0  0  1  1  1  1  1  1  0 1 FD instalamos  primero  ya  que  lo  podemos  1  0  0  0  1  0  1  1  0  0  0  0 1 61 2  0  0  1  0  1  1  0  1  1  0  1 1 DB 3  0  0  1  1  1  1  1  1  0  0  1 1 F3 descargar desde Internet.  c=”1”.  18.  e=”0”.  4  0  1  0  0  0  1  1  0  0  1  1 1 67 5  0  1  0  1  1  0  1  1  0  1  1 1 B7 El ambiente del programa es el siguiente:  6  0  1  1  0  1  0  1  1  1  1  1 1 BF 7  0  1  1  1  1  1  1  0  0  0  0 1 E1 8  1  0  0  0  1  1  1  1  1  1  1 1 FF 9  1  0  0  1  1  1  1  1  0  1  1 1 F7 10  1  0  1  0  1  1  1  0  1  1  1 1 EF 11  1  0  1  1  0  0  1  1  1  1  1 1 3F 12  1  1  0  0  1  0  0  1  1  1  0 1 9D 13  1  1  0  1  0  1  1  1  1  0  1 1 7B 14  1  1  1  0  1  0  0  1  1  1  1 1 9F 15  1  1  1  1  1  0  0  0  1  1  1 1 8F   Para  los  números  16.8191  no  decodificaremos  nada.  Y  así  otra  dirección  y  nuestro  decodificador  nos  sucesivamente  se  llena  la  tabla  para  arrojará “1” lógicos.    resaltando  que  esto  se  puede  hacer  en  510 = 01012   =>   1011 0111 2 = B716  cualquier otro programador como Icprog o    incluso desde C++.  para  encender  el  5dec=  0101bin  sólo  con  los  bits  A3.  para  transformar a su equivalente hexadecimal. c.  entonces  la  relación  ya  que  la  tabla  anterior  funciona  cuando  sería:  a=”1”.  estos  bits  son  precisamente  “0”  lógicos  ya  f=”1”.  …  .ejemplo.  17. esto se hace agrupando  datos  en  hexadecimal  que  obtuvimos  en  de  cuatro  en  cuatro  bits  y  después  nuestra  tabla  a  nuestra  EEPROM.  d=”1”.  y  A0  donde  debemos encender los segmentos a. solamente resta ingresar estos  base hexadecimal.  g=”1”  h=”1”.  A1.  Para el programado abrimos el chipmaster    7000 que debe estar previamente instalado  De A  B  C  D  a  b  c  d  e  f  g h He en  nuestra  PC.  hacer  esto  usamos  el  programa  de  donde el ejemplo anterior quedaría:  computadora  llamado  Chipmaster  7000.  A2.  donde  los  números  que  si  no  es  así  estaremos  trabajando  en  entre  comillas  son  niveles  lógicos.  después  transformar  lo  que  nos  queda  a  Ahora bien.  5 .  b=”0”.  Esto  seleccionamos  en  este  caso  AT28C64  y  también  quiere  decir  que  trabajaremos  damos clic en ok.  Entonces nos queda la siguiente tabla.  en  una  memoria    EPROM  eso  quiere  decir  que  dejaremos  Hacemos  clic  en  Select.

  algún  lugar  donde  lo  tengan  como  una  el  pin  28  y  el  27  se  conecta  a  5  VDC.    Finalmente  con  nuestro  dispositivo  ya  programado  hay  que  probarlo. el pin 1 y 26 no se conectan.  abrir  el  archivo  dando clic en load y programarlo. 5.  el  quemador  es  un  poco  Esto quiere decir que para leer la memoria  caro  pero  podemos  guardar  nuestro  los  pines  20.  con  nuestra  EEPROM  ya    colocada  en  él.  22  y  14  (GND)  se  conectan  a  archivo dando clic en file y luego save e ir a  tierra (0 VDC).  Y  tienda  de  electrónica  o  una  universidad  como se había pensado los pines 2. 3.        Finalmente  clic  en  Prog  y  ya  está.  Cabe  mencionar  que  el  programador  (quemador)  chipmaster  debe  de  estar  ya  conectado y encendido en la misma PC que  utilizamos.  6 .  De    acuerdo  a  la  hoja  de  especificación  el  Después clic en Edit e ingresamos el código  diagrama de pines es el siguiente:  hexadecimal  que  tenemos  de  izquierda  a  derecha  en  la  tabla  que  aparece  y  damos  clic en close. como  lo  fue  en  este  caso.  se  arma  el  circuito  que  se  muestra  al  inicio  de  este  reporte  y  se  alimenta  con  5VDC  que  es  lo    que  marca  la  hoja  de  especificación. 4.

 estas salidas  usamos  los  datos  de  salida  serán  siempre  las  conectamos  a  una  resistencia  de  todos  unos.  y  no  nada  más  con  este  modelo.6.  no  dispositivo como este es muy poderoso ya  es tan costoso y reduce una gran cantidad  7 .  b.  21  que  son  A12‐A4  van  que  podemos  hacer  decodificaciones  más  conectados a GND.  es  también  importante  330ohms  cada  una  y  el  otro  extremo  al  apreciar  que  en  algunos  dispositivos  el  display  que  al  inicio  del  reporte  puede  diagrama  de  pines  es  parecido  pero  no  es  mostrar  su diagrama  de  pines. 19 serán nuestras salidas h.  ya  que  si  es  conectado  mal  el  dispositivo  no  funcionará.  ya  que  en  algunos  traen  ciertos  es el cátodo común y va conectado a GND.  habilitadores  y  en  otros  no.  Esto  ya  depende  17. 8. 18.  25.  16.  que  dice  READ  para  ver  cómo  conectar  el  El diagrama del circuito final es este  chip  con  sus  respectivos  habilitadores.  pero  dispositivos.  o  los  de  la  familia  en  binario.  claro  que  La programación de esta EEPROM sólo fue  también se torna difícil cuando no tenemos  para  aprender  a  programar  este  tipo  de  la  tecnología  adecuada  para  hacerlo.  10 que son A3‐A0 serán las direcciones que  podemos usar otros como los de la familia  ocupemos  para  ingresar  nuestro  número  de  AM27CXXX.  15.  por  ello  sólo  usamos  pocas  de  ahí  en  fuera  el  proceso  es  mucho  muy  direcciones  pero  el  potencial  de  un  fácil  como  lo  anteriormente  detallado.  a  respectivamente  ya  que  en  la  Una  observación  importante  es  que  si  no  tabla  podemos  ver  que  el  menos  se  conectan  a  cero  las  direcciones  que  no  significativo es h y el más es a. 9.  del uso que le queramos dar.  13. g. Luego los pines 7.   d.  12.  Y  los  pines  11.        Programar  un  dispositivo  de  este  tipo  como  lo  es  una  EPROM  ó  EEPROM.  23.  grandes.  hay  que  ver  Todo  esto  es  montado  en  un  protoboard  bien  la  hoja  de  especificación  en  la  parte  haciendo los puentes con cable telefónico. e.  donde  com  igual.  24. f.  es     demasiado  fácil.  c.  AT28CXXX  ó  AT28HCXXX.  pero  se  torna  difícil    cuando  no  se  tiene  el  conocimiento  y  la  Observaciones  práctica  de  cómo  hacerlo.

 por  tanto  se  aprendió  cómo  programar  el  dispositivo EEPROM AT28C64.  la  desventaja  de  este  tipo  de  de la AT28C64 implementación  es  que  debemos  obtener  Manual NTE (para el display de 7 segmentos) nosotros  todos  los  minitérminos  que  se    puedan  generar  y  después  ingresarlos  a    mano en el programador.  a  diferencia  de  hacerlo  con  compuertas. pero al final nos  percatamos de que en realidad no es tanto  trabajo.  :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::  :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::                    8 .    El  dispositivo  funcionó  correctamente  al  probarlo en todas sus decodificaciones.de  circuitería  cuando  hacemos  lógica  Referencias: Hoja de especificaciones grande.

 el estado de memoria se dará.  y  luego  retornará al camino a seguir de manera  pasamos por SET. de esa manera  si  el  móvil  sale  de  la  línea  y  los  dos  sensores  no  lo  detectan.  serán  uno.  de  lo  anterior  Tabla de verdad para el Flip‐Flop                    Implementado con NAND    deducimos  que  debe  tener  “memoria”  para  recordar  cuál  de  los  dos  sensores  salió de la línea primero.  en  este  caso    1  1  0  1  dos.  y  para  que  nuestro    circuito  sea  aún  más  sencillo.  que  tan  sólo  detenga  el  Si  realizamos  lo  anterior  pero  movimiento de la rueda respectiva y así  empezando  por  RESET.  si  los  lo tanto.   sensores  salen  hacia  la  derecha  o    izquierda.  Un  Flip‐Flop  rápido  y  se  salga  del  camino.  Es  decir. por lo tanto el estado  cuando  las  curvas  son  muy  cerradas  o  de  memoria  dependerá  de  cual  sensor  que alguno de los motores sea un poco  salga  primero  de  la  línea.  como  implementado  con  dos  NAND  tiene  la  comúnmente pasa en un móvil de este  peculiaridad de que la activación se da  tipo por su sencillez.   implementar  nuestro  circuito  con  un  Robot Seguidor de  Líneas. primero debemos definir las  implementamos.  lo    armaremos con dos compuertas NAND.  esto  para  hacia la derecha o hacia la izquierda. Como condición    0  0  1  1  inicial es que inicie el recorrido con los    0  1  1  0  sensores sobre la línea.      Usemos  una  metodología  simple  y  de  acuerdo  a  la  tabla  de  verdad  que  ordenada.  si  ambas  entradas  son  funcionamiento. los estados de salida  normal.  por  los  niveles  bajos.  Flip‐Flop  R‐S.  así  será  mucho  más  “0”  lógico  las  dos  salidas  del  Flip‐Flop  sencillo  llegar  al  circuito  idóneo.                                                Set  Reset  Q  Q’  si  lo  hace  a  la  izquierda  que  vire  a  la    0  0  1  1  derecha.  “recuerde”  hacia dónde debe ir. El estado de memoria  funciones  que  realizará  nuestro  móvil  se  dará  sólo  cuando  las  entradas  sean  para  establecer  las  condiciones  del  un  “1”  lógico. de esa manera    1  1  1  0  nuestro  simple  circuito  estará  en    condiciones  de  operar.  (a  este  estado  se  le  puede  Establezcamos  esta  condición  como  llamar  estado  prohibido)  si  SET  lo  parte  del  comportamiento  del  móvil. Como es simple y  con  dos  entradas.  esta  función  es  muy  útil  serán invertidos.  será  “1”.  es    decir  que  si  sale  a  la  derecha  Figura 1:  totalmente  que  vire  hacia  la  izquierda. el  no causar confusión en el análisis de la  móvil  intentará  buscar  la  línea  hacia  el  tabla de la figura 1.  llevamos primero a “1” Q será “0” y Q′  cuando  salgan  de  la  línea  totalmente.  si  a  continuación  RESET  se  los  sensores  que  viren  hasta  que  la  lleva a “1”la salida se conservará y por  encuentre  de  nuevo.  razón  por  la  cual    el  estado  inicial  permitido  a  las       Lo  anterior  nos  indica  que  si  salen  entradas  deba  ser  “1”lógico. salgan de la línea.  lado  contrario  de  donde  se  salió.  esto  dependerá  del  orden  en    1  0  0  1  los  cuales  los  sensores.  podemos  Flip‐Flop    9 .

  (R2  y  R5)  que  está  como  salida  del    fotodiodo  infrarrojo  una  caída  de  voltaje  que  interpretaremos  como  “1”  lógico. debe ser que el sensor    10 .  delante.   cuadrado con la superficie empotrada y    es mostrado a continuación. y tenemos que invertir el estado  colocando un simple inversor. que pasando por el inversor  a transistor de la marca Vishay  será  un  “1”  lógico  y  el  funcionamiento  Telefunken. el resistor de 10k Ω entregará un  infrarrojos ópticos reflectivos con salida  “0” lógico.  es  que  las  entradas  R  y  S    deben  ser  “0”  que  es  cuando  los      Los  emisores  deben  colocarse  al  sensores están detectando la línea.     Ahora las salidas del Flip‐Flop serán un  “1” lógico con lo cual podemos llevar a  saturación  a  un  transistor  y  así  poner  en marcha cada motor. y usando el circuito de la figura 2  manera  que  no  sobresalgan  del  ancho  tendremos que en el resistor de 10k Ω  de una cinta de aislar plástica.  De  esta  manera  se  detendrá  el  motor  respectivo  para  que  nuestro  móvil  pueda regresar a la línea.     Por  lo  tanto.  Figura 3.  pequeño móvil.  los  en  este  caso  será  blanca  sobre  fondo  sensores  deben  ser  colocados  de  tal  negro.       Diagrama de conexiones.        La  colocación  de  los  sensores  con  respecto  a  los  motores  en  nuestro    Forma del CNY70.  Colocación de sensores respecto a los motores. cuyo empaquetado es  será como el descrito para el Flip‐Flop.        Para este diseño utilizamos sensores de  Si  alguno  de  los  sensores  sale  de  la  tipo CNY70 que son dos sensores  línea.           Sensores. “recordando”  hacia dónde podrá virar. que  centro  y  los  receptores  a  los  lados.  para  que  se  dé  la  1 esté del lado opuesto del motor 1 y el  condición  para  que  avance  hacia  sensor 2 del lado contrario al motor 2.

      Motores.      Estos sensores constan de un emisor  En cuanto a la salida de la compuerta. cuando el emisor esté  suficiente si utilizamos motores  funcionando.      Con esto el robot estará listo para  Ilustración del procedimiento de emisión y recepción para  el sensor. cuando leamos una línea blanca o  negra la salida nos entregará un “1”  lógico con el transistor en saturación ó  un “0” lógico con el transistor en corte. pero si usamos  rebotar en la superficie a censar y luego  otros más potentes como los de 5 volts  el fototransistor se polarizará en su  o un Twin como en este caso. debemos  región de corte o de saturación  agregar una resistencia de colector  dependiendo del estado lógico del  para atenuar la corriente ya que este  rebote.  probar y funcionar.  de 1KΩ ya sea en el ánodo o el cátodo y    el fototransistor se polariza en colector  común con una resistencia de 100kΩ al  emisor. esto es  deseados.     Motores Twin Gearbox. usaremos una  resistencia de 10Ω a 2W ó en su caso  un arreglo en serie de dos pares de  configuraciones de resistencias en  paralelo todas de 10Ω a 1/4W.    El diagrama final armado y probado es  el siguiente:    Configuración de conexión básica del CNY70.  11 . esta pared  calidad para conectar ahora los  impide que haya censados no  motores en el colector y VCC. que son  tenemos que es conectado a un  sólo un fotodiodo y un fototransistor  transistor 2N2222 ó uno de mejor  separados por una pared. el rayo infrarrojo puede  pequeños de 3 volts.  infrarrojo y un foto receptor.  Para este diseño se utiliza una    polarización clásica de este tipo de  Para este diseño se usan motores Twin  sensores que es llevar al fotodiodo a  con su adicional arreglo de resistencias  emitir conectándolo a una resistencia  en el colector. ya que  funcionará igualmente y será más  económico el precio.  Diagrama de pines.   Así.  tipo de motores demandan un poco    más de corriente. tomando la salida en el emisor  mismo. el armado final    depende de los materiales que usemos.

 de esa manera uso un solo    integrado. y a su vez minimiza errores de  ¿Por qué en vez de un Flip Flop  funcionamiento por ruido además de  integrado se utilizan dos compuertas  que al tener a la entrada un resistor de  NAND?  10k Ω aterrizado lo interpreta como un    “0”lógico al no haber prácticamente  Primero por que algunos Flip Flop  corriente circulante a través de él. entradas.  internamente establece umbrales de    cambio .       ¿Puedo usar lógica TTL para este  El diseño puede hacerse simplemente  circuito?  en una base DIP o un PCB como el que    diseñamos:  No.  establecen algunos estados prohibidos    al aplicar el mismo estado lógico a las  12 .  Diagrama final. además  que los niveles lógicos en esta  tecnología se adecuan a los niveles de  voltaje de alimentación. así no tendremos  sorpresas al disminuir un poco el nivel  de baterías y podemos utilizar  cualquiera entre este rango.        ¿Por qué aquí no se utilizan  amplificadores operacionales para el  ajuste de umbral?    Para acoplar la salida de los sensores  con el Flip Flop se usó un inversor  implementado con NAND.          Además.  4093 tiene la característica de ser4 con  entrada Schmitt Trigger. el diseño es para implementarlo    con CMOS ya que así tendremos la  libertad de usar voltajes de  alimentación de 3 a 6 Volts con el  mismo circuito. y podemos  activar con relativa facilidad la etapa de  transistores. y el implementarlo con dos  NAND nos facilita el establecer la lógica  de funcionamiento de acuerdo a  nuestras necesidades. lo cual    El seguidor armado. y porque son  necesarias también dos inversores y  pueden implementarse fácilmente al  cortocircuitar las dos entradas de una  NAND. Al usar el C.I.    PCB de el bloque de lógica.

      ¿Los sensores deben ser CNY70?    Para este diseño se proponen.  que utilizar una etapa Darlington.com  Mas que nada es por cuestión técnica. es por  que los mecanismos que se utilizaron  tienen motores muy eficientes que no  consumen gran corriente y son  pequeñitos incluso el diseño soporta  motores Twin.      13 .  Datasheet del integrado CNY70.  emulando el CNY70.jameco. es  sencillo. el  emisor y el receptor están pareados y  se colocan uno a lado del otro.      Referencias:  ¿Por qué ahora se usa línea blanca en    fondo negro?  Revista Saber Electrónica. Si se desean utilizar  motores de mayor capacidad tendrán    El Robot Seguidor de Líneas.  ya que algunos eventos establecen  como pista para la prueba esas  características. si desean que funcione  con una línea negra en fondo blanco.¿Es posible cambiar la etapa de    potencia del motor por algo de mayor  capacidad?    Si usamos transistores 2N2222. También se podría eliminar  simplemente el inversor y usar sólo el  Flip‐Flop. lo cual no se aconseja por la  posibilidad de errores ya que el primer  inversor es para acoplar el sensor de la  etapa lógica. En caso    de conseguir el CNY70. pero  como el diseño se realiza a bloques  podemos usar tan solo dos sensores  infrarrojos interruptivos que se pueden  conseguir con mucha facilidad. sólo deben adicionar otro  inversor antes de cada entrada del Flip‐ Flop. familias QRD o    equivalentes pueden usarlos y el    resultado será el mismo. claro que deben    Vista Inferior.    www.  respetar la distancia con la superficie    para que no sea mayor a 3mm.

utilizaando las compuertas c s lógicas. los mapas de Karnnaugh y la reducción de funcioones. mediiante álgebrra Booleanaa. de unn rango coomprendido de prim entree el númeroo 1 hasta ell 15. NTIFICAD IDEN DOR DE NUMEROS PRIMOS CON C COM MPUERTAS LÓGICA AS El obbjetivo de esta práctica es crearr un Diagrama lógico l circuuito que identifique i los númeeros mos.. SN74LS088 – AND A continuació c n haremo os una brreve expliicación de las l configurraciones dee las comppuertas quue vamos a utilizar en nuesttro circuito. SN74LS S04 – INVE ERSOR Tabla de verdad X Y Z 0 0 0 0 1 0 1 0 0 1 1 1 Tabbla de verda ad Diagrama lógico l X Y 0 1 1 0 14 .

Decimal A B C D f 0 0 0 0 0 0 1 0 0 0 1 1 2 0 0 1 0 1 3 0 0 1 1 1 4 0 1 0 0 0 5 0 1 0 1 1 Tab bla de verda ad 6 0 1 1 0 0 X Y Z 7 0 1 1 1 1 0 0 0 8 1 0 0 0 0 0 1 1 9 1 0 0 1 0 1 0 1 10 1 0 1 0 0 1 1 1 11 1 0 1 1 1 12 1 1 0 0 0 13 1 1 0 1 1 14 1 1 1 0 0 Diaggrama lógicoo 15 1 1 1 1 0 En nuestra tabla tomaaremos los números de f en 1 cuando c el nnúmero sea primo. procedemoos a resolverr nuestro pro oblema. p así. 15 . serán los mintérminoos en nuestro n m mapa de Karnaugh. como el de la salida que tendremos. y éstaas son las que determ minarán ccuando el número introducidoo es primo o no. Lo primeroo será hacer nuestra tabla de verdad. t Sabemos que tendreemos 16 distintas entradas. SN774LS32 – OR O Después ded planteaddo el prob blema y explicado las l configuuraciones báásicas de las compueertas lógicass a vamos a utilizar.^4. de la cual exttraeremos todos t los datos tantoo de las enttradas (las variables v que vamoss a controllar). laas cuales serán los números n en los que haaremos la comparacióón y tenddremos doss únicas salidas. equivalente e a 2. y será cero si el númeroo de la com mbinación introducidaa no es prim mo (lógica positiva). “ciierto” o “fallso”. los quee tengan el número 1.

haremos nuestro mapa de El material requerido para el armado de Karnaugh de cuatro variables. • 2 compuertas AND (74LS08) • 1 compuerta INV (74LS04) El mapa queda como a continuación: • 1 compuerta OR (74LS32) • 1 protoboard • 1 interruptor de cuatro entradas • 1 resistencia de 100 Ω • 1 led • cable para protoboard • 1 fuente de voltaje Después de diseñar nuestro circuito lógico. 11. cuando la combinación introducida sea un queda: número primo. AD+ABC+BCD+BCD Combinación del Y nuestro diagrama lógico: Decimal interruptor LED 0 0 0 0 0 Apagado 1 0 0 0 1 Encendido 2 0 0 1 0 Encendido 3 0 0 1 1 Encendido 4 0 1 0 0 Apagado 5 0 1 0 1 Encendido 6 0 1 1 0 Apagado 7 0 1 1 1 Encendido 8 1 0 0 0 Apagado 9 1 0 0 1 Apagado 10 1 0 1 0 Apagado 11 1 0 1 1 Encendido 12 1 1 0 0 Apagado 13 1 1 0 1 Encendido 14 1 1 1 0 Apagado 15 1 1 1 1 Apagado 16 .A continuación. 13) = número de la combinación no sea un _ __ _ _ número primo. cuando el Σm (1. 3. 7. tomando nuestra práctica fue el siguiente: los mintérmimos como los números que son primos de la tabla de verdad. 2. lo alimentamos con una fuente de dc y con el dip switch haremos las combinaciones resultantes. el número de bits que serán introducidos también. procedemos a armarlo. Una vez armado. El circuito encenderá el led Y la reducción de mintérminos. y no tendrá reacción alguna (se mantendrá apagado). que es de cuatro entradas. 5. tomando en cuenta.

para averiguar cuáles de esos son números primos. El diagrama lógico fue sencillo de realizar una vez teniendo la reducción final de nuestro circuito. e identifica si se trata o no de un número primo. Puedo agregar también. mediante álgebra Booleana. ya que en ninguna combinación hubo algún error. el circuito ha tenido éxito. y después de haber probado todas las combinaciones de nuestro circuito. tal vez hubiesen fallado alguna. • Análisis y diseño de circuitos lógicos digitales Nelson. que los mapas de Karnaugh nos hicieron el trabajo de reducción de funciones bastante sencillo.La tabla anterior muestra. Al haber realizado esta práctica. Esto es demostrable también por que en caso de que hubiese existido algún error. Bibliografía. 17 . Carroll. Irwin Editorial Prentice Hall • TTL Logic (Data book) Texas instruments • SGS – Thomson (CD-Room Datasheets) Autor: Raúl García Chetla. Nagle. y en ninguno de los casos hubo alguna anomalía. o algunas de las combinaciones de identificación de los números introducidos. de acuerdo a la combinación introducida.

 eficientes y  Por  tal  motivo  en  este  artículo  útiles  para  diseñar.  nuestro  proyecto.  Microchip  página del fabricante. los cuales hoy en  día son  Services  Inc.    En  el  mundo  de  los  microcontroladores. eficaces.  ensamblador.  es  por  ello  que  actualmente  estas  empresas  que  18    .  Las  PICs de 12.038.   En la actualidad lo que los programadores  de  estos  dispositivos  buscamos  es  un  entorno  más  amigable  de  programación.  tales  archivos  con  su  respectiva  función  se  pueden  ver  en  el  Microchip  proporciona  un  entorno  de  cuadro.  La  instalación  del  programa  es  desarrollo  freeware  llamado  MPLAB  que  sumamente sencilla y sólo hay que seguir  incluye  un  simulador  software  y  un  los  pasos  del  fabricante  para  instalarlo.  entre  el  acumulador  y  PCW.  sin  tener  que  estar  horas  creando  rutinas  en  lenguaje  ensamblador.Introducción a PICC de CCS.  puede variar desde 35 para PICs de gama  cada uno para las versiones de código de  baja  a  70  para  los  de  gama  alta.  Este  compilador  es  capaz  de  crear  implementación  de  interrupciones  y  una  el  archivo  .  mas  rápido  y  más  fácil  de  usar.)  en  su  versión  4.  tal  es  el  caso  de  los  retomamos  la  programación  de  los  microntroladores  PIC  (Peripheral  microcontroladores  PIC  con  el  lenguaje  Interface  Controller  /Controlador  de  de alto nivel C. 14 y 16 bits respectivamente.  económicas.  también  vende  compiladores  para  los  PICs de gama alta ("C18" para la serie F18  y  "C30"  para  los  dsPICs)  y  se  puede  descargar  una  edición  para  estudiantes  del  C18  que  inhabilita  algunas  opciones  después de un tiempo de evaluación.  instrucciones  compilador  tiene  un  formato  estándar  de  condicionamiento  y  de  salto/retorno.HEX.  que  encontrados  en  un  sin  número  de  tratándolo es sumamente amigable y fácil  versiones y características especiales.  ANSI. PCM y PCH.. Otras empresas desarrollan  Existe  una  versión  trial  o  demo  en  la  compiladores  C  y  BASIC. rápidas.  instrucciones  se  clasifican  entre  las  que  siendo  editadas  las  instrucciones  en  la  realizan operaciones entre el acumulador  ventana  del  command  window  llamada  y  una  constante. con el compilador PICC de  Interfaz Periférico) de la marca Microchip  la  empresa  CCS  (Custom  Computer  Technology Inc.  y  otros  tantos  para  pasar  a  modo  de  bajo  consumo  archivos  que  son  generados  al  crear  llamada sleep.  Estos  microcontroladores  usan  un  juego  El  compilador  PICC  tiene  tres  de  instrucciones  tipo  RISC.  .  desarrollaron  compiladores  en  lenguajes  encontramos  siempre  opciones  como  C  y  BASIC  se  han  vuelto  famosas.  de usar.  cuyo  número  compiladores integrados PCB.  donde  la  apariencia  de  este  una  posición  de  memoria.COF.

  dispositivo  los  8  LEDs  corrimiento  se  que  por  su sencillez  nos  estarán  encendidos  y  efectuará.ESYM  This file is generated for the IDE users.  el  pushbutton  utilizaremos  un  viejo  cuando  conectemos  el  conectado  al  pin  A0  el  amigo. . .C  This is the source file containing user C source code.  forma  de  circuito  de  mejor  que  practicando.  más  pushbutton  conectado  El  diagrama  de  flujo  de  adelante  veremos  que  al  pin  A0  entonces  nuestro  programa  se  podemos  programar  comenzará  el  muestra en la fugura.  Para comenzar a utilizar  avanzados  de  la  misma  en  sentido  contrario  en  este  compilador  qué  forma.  será  apto  para  este  cuando  oprimamos  un  sencillo  diseño.TRE  The tree file shows the call tree.PJT  This is the project file which contains information related to the project.   .   .  corrimiento.  The file contains Identifiers and Comment  information.STA  The statistics file shows the RAM.   .   .DGR  The .   .  LEDs.   This file contains a list of symbols for that object.DGR file is the output of the flowchart maker.COF  This is a binary containing machine code and debugging information.   Cuadro con los archives generados para un proyecto en PICC. register. and STACK usage.SYM  This is the symbol map which shows each register location and what program  variables are stored in each location.LST  This is the listing file which shows each C source line and the associated assembly  code generated for that line.  y  para  más  en forma de corrimiento  sólo  cuando  oprimamos  familiaridad en el diseño  (Tipo  auto  increíble). ROM. .   .  It provides information  on the source codes structural and textual complexities using Halstead and  McCabe metrics. register  bits.H  These are standard or custom header files used to define pins.  it details each function and what functions it  calls along with the ROM and RAM usage for each function.  .  el  PIC16F877A.RTF  The output of the Documentation Generator is exported in a Rich Text File format  which can be viewed using the RTF editor or wordpad.   .  This data can be used for automatic documentation generation and  for the IDE helpers.RVF  The Rich View Format is used by the RTF Editor within the IDE to view the Rich  Text File.OSYM  This file is generated when the compiler is set to export a relocatable object file.  el  LEDs  conectados  a  el  implementar  en  encendido y apagado de  puerto B del Pic16F877A  juguetes  o  iluminación.   . functions and preprocessor directives.HEX  The compiler generates standard HEX files that are compatible with all  programmers.   .COD  This is a binary file containing debug information.   . esto le dará  y  para  ello  haremos  un  El  objetivo  será  mas elegancia a nuestro  programa  para  una  encender  y  apagar  8  diseño  que  podemos  aplicación  típica.  microcontroladores  de  corrimiento de un bit en  este  tipo  y  más  un  sentido  y  regresará  19    . .

C  donde  podemos editar nuestro programa.    Se abrirá la siguiente ventana con el compilador PCW.  en  Windows. procedemos a indicar la  secuencia  clásica  de  apertura  del  programa.  esto es.  20    . hacemos clic en Inicio > Todos los programas >PIC‐ C > PIC C Compiler.    Ambiente del compilador. Diagrama  de  flujo  para  nuestro programa.  Secuencia para abrir el PICC. Como  paso  inicial  para  crear  el  código  fuente  .

  como se ve en la figura.  21    .  Para  iniciar  y  escribir  nuestro  primer  programa  hacemos  un  clic  en  el  menú      Secuencia para crear un nuevo archivo de código fuente.En  él  encontramos  la  clásica  barra  de  Archivo.  Inmediatamente aparece un cuadro  de  en  este  caso  lo  guardamos  en  la  diálogo  para  indicar  dónde  y  con  qué  carpeta  Blasted  con  el  nombre  de  nombre guardar nuestro código fuente.  Proyecto.c    Figura que muestra la carpeta destino de nuestro archivo de código fuente.  Ver.  Opciones.  Edición.  amarilla.  Después  un  clic  en  Nuevo  y  Buscar.  después en Archivo fuente o Source File  etc.  introducción. que tiene un ícono de carpeta  menús  Archivo.  Herramientas.

 Al hacer esto  una  nueva  pestaña  en  el  programa.h> que  de código y otros.  en  C  clásico  programa.  oscilador.  nuestro  agrado  como  aquí  configuraremos  los  Entonces  sabiendo  todo  #include  <18F452.  int8.  22    .  anotaremos  oscilador. etc. Para este ejemplo  a  código.  estructuras  if.  Así  definiciones  básicas  de  indicamos como #FUSES y  pudimos haber incluido la  números  como  int.  de  la  importantísima.  B  en  los  para  la  programación  la  cual  ya  podemos  pines  del  33  al  40.  de  nuestro  PIC.  for.  los  de  este  tipo.h>  .h>  u  siguientes:  esto  podemos  compilar  otra  que  contenga  el  #FUSES NOWDT //Deshabilitar el watchdog #FUSES XT //Oscilador de cuarzo <= 4mhz (HS para >4MHz) #FUSES NOPROTECT //Sin protección de código de lectura #FUSES NOLVP //Sin low voltage prgming.  el  MCLR.  como  deberíamos  incluir  las  comenzar  a  escribir  lo debe estar indicado en  librerías  que  nos  son  nuestro  código  del  el datasheet del PIC.  y  por  lo  ejemplo  el  Watchdog.Hecho  esto  tendremos  fácilmente  cualquier  compilador.  útiles.  la  protección  utilizar  las  clásicas  #include<16F877A.  las  Para  hacer  esto  lo  que  vamos  a  utilizar.  que  es  oscilador y esto se hace  siguiente manera:    #use delay(clock=4000000) //Usar un oscilador de cuarzo de 4 MHz Note que esta es una de  ya  que  en  cualquier  donde el número indica  las  partes  que  nos  programa  debemos  el  número  de  Hertz  del  necesitamos  aprender  incluir  esta  parte.  una  de  código  al  el  “quemador  comentarios  estándar  se  mucha  utilidad  es  la  de PICs” las opciones con  escribirán  iniciando  en  //  librería  que  nos  define  las  que  debe  quemar  y otros globales como //*  cada  pin  de  cada  puerto  nuestro  dispositivo. la protección  Podemos  incluir  las  del PIC.  por  ó como /*.  en  los  pines  2  al  7.  el  típicas  librerías  de  C.  ciclos  es por el mirocontrolador  while.  etc.  settings  necesitamos.  incluimos  por  ejemplo  Algo  nuevo  en  este  Este  compilador  tiene  las  #include<stdio.  entonces. long.    aquí  compilador  es  que  mismas  reglas  de  sintaxis  podemos  incluir  librerías  podemos  ordenar  desde  del  lenguaje  C.  el  general  llevan  el  nombre  famoso LVP.  la  palabra  que  indica  qué  definición  para  el  PIC  de  char.. // B3(PIC16) o B5(PIC18) usado para I/O #FUSES NOCPD //Sin protección EE   Después  una  parte  la  frecuencia  del  con  #use. short.  entonces  ya  tenemos  command  window  definido  el  puerto  A  en  Como  primer  paso  en  C  llamada  introducción.

 Ahora  bien para leer esta variable usaremos otra instrucción muy importante que podemos  ver  en  el  código  escrito  y  es  la  instrucción  input(valor_a_ser_leido).  si  seguir  mostrando  programa  que  tomaremos  de  nuestro  todo  el  puerto  B  en  alto  o  hacer  el  diagrama de flujo.  todo  esto  dentro  Para  ello  necesitamos  encender  por  de una estructura do‐while.  corrimiento  de  un  bit  a  la  derecha  y  luego  a  la  izquierda. //Condición de bucle infinito } //Fin del Programa. etc.  20000000  por  ejemplo  para  un  Finalmente llegamos a la parte familiar  pushbutton  es  presionado  se  debe  del C. while(TRUE). Gracias!!! Donde la variable local la llamamos valor y es de tipo entero ó entero de 8 bits.  23    . { //Inicio del programa do{ //Ciclo Do/While int valor.  void main(){}. donde escribimos las rutinas.  Escribimos entonces:  void main() //El clásico Void main de C. es decir:  valor=input(PIN_A0). aquí escribimos el famoso  fantástico. Ahora el programa está leyendo continuamente la entrada del pushbutton. //el valor de la variable se lee en el PIN_A0 } //Aquí va el resto del código que necesitamos. para que el  default  los  8  bits  del  puerto  B.  Eso se hace tan fácil agregando un simple if.  entonces  la  variable valor la igualamos a la entrada que hay en A0.  y  si  el  programa se ejecute infinitamente.  programa funcione.podemos cambiarlo a nuestro criterio a  oscilador de 20MHz. //Variable local entera valor=input(PIN_A0).  que  es  la  rutina  Dentro  del  programa  principal  principal  que  hará  que  nuestro  necesitamos declarar una variable local.. los  hacer  el  corrimiento  de  tipo  auto  objetos. resta hacer  que cuando lea un “1” lógico todos los LEDs estén encendidos y cuando lea un “0” se  haga el corrimiento una vez.  que  será  el  valor  leído  del  pin  A0  para  Entre  las  llaves  {}  escribiremos  el  saber  qué  hacer.

  en  la  parte  else  con  el  comando  output_puerto(valor_en_hexadecimal).  Como en la parte inicial de #FUSES no incluimos la de MCLR.  con  las  diferentes  salidas del corrimiento.  para  retardos  de  microsegundos.    //Comentarios=// //Primer programa en PICC compiler CCS //Blasted Robotics //Revista número 1.delay_ms  (retardo). ////////////////////////////////////////////////////////////////////////////// // 24    . }   Y  para  la  parte  del  otro  valor  escribiremos  muchos  output_b().  ó  delay_cycles(retardo).  entonces  colocaremos  retardos  en  milisegundos.  aquí  los  retardos  son  hechos  con  el  comando  delay_us(retardo). Noviembre 2008. claramente se nota que para que lo podamos ver necesitamos  colocar  retardos  entre  cada  salida. Como queremos que  sean  visibles. Note que en lenguaje ensamblador esto nos llevaría a hacer rutinas de  retardos anidados muy grandes y llamarlos a cada rato.  . FCE BUAP.  con  70  milisegundos  son suficientes.    El programa entero se muestra a continuación. //Salida del dato hexadecimal en el puerto B delay_ms (70).if(valor==0) { } else{ }   Entonces  de  acuerdo  a  nuestra  condición  agregaremos  una  salida  de  11111111b  cuando  leamos  un  1. milisegundos ó personalizados respectivamente. //Esperar retardo de 70 milisegundos Y así sucesivamente para cada valor del corrimiento como si fuera una memoria con su  respectivo retardo.    Escribimos entonces dentro del if   output_b(0x00).  .  en  este  caso  será  el  puerto  B  y  la  salida  será  0xFFh  if(valor==0) { } else{ output_b(0xFF). esta opción funcionará y esta  terminado nuestro programa que mostramos en el diagrama de flujo.

delay_ms (70). output_b(0x04). output_b(0x80). output_b(0x010). delay_ms (70)./// Librerías /// ////////////////////////////////////////////////////////////////////////////// // #include <16F877A. output_b(0x40). output_b(0x01). //Esperar retardo de 70 milisegundos output_b(0x01). { //Inicio del programa do{ //Ciclo Do/While int valor. delay_ms (70). output_b(0x08). delay_ms (70). delay_ms (70). 25    . output_b(0x10). delay_ms (70). output_b(0x20). output_b(0x20). output_b(0x04). // B3(PIC16) o B5(PIC18) usado para I/O #FUSES NOCPD //Sin protección EE ////////////////////////////////////////////////////////////////////////////// // /// Oscilador /// ////////////////////////////////////////////////////////////////////////////// // #use delay(clock=4000000) //Usar un oscilador de cuarzo de 4 MHz ////////////////////////////////////////////////////////////////////////////// // void main() //El clásico Void main de C. delay_ms (70). //Salida del dato hexadecimal en el puerto B delay_ms (70). //Variable local entera valor=input(PIN_A0). delay_ms (70). delay_ms (70). delay_ms (70). delay_ms (70).h> //Incluimos las definiciones para el pic //Podemos usar cualquier librería disponible ////////////////////////////////////////////////////////////////////////////// // /// Opciones de quemado /// ////////////////////////////////////////////////////////////////////////////// // #FUSES NOWDT //Deshabilitar el watchdog #FUSES XT //Oscilador de cuarzo <= 4mhz (HS para >4MHz) #FUSES NOPROTECT //Sin protección de código de lectura #FUSES NOLVP //Sin low voltage prgming. delay_ms (70). delay_ms (70). output_b(0x02). delay_ms (70). delay_ms (70). output_b(0x08). output_b(0x02). output_b(0x40). //el valor de la variable se lee en el PIN_A0 if(valor==0){ output_b(0x00).

 el introducción.  pero  para  donde  lo  guardamos. } else{ output_b(0xFF). y aparecerá el  siguiente  cuadro  de  diálogo  que  nos  Tenemos ya el código fuente.  26    . lo buscamos  PIC. Gracias!!! El programa escrito en C.hex.      el menú Project >Create.  el  .  para  hacerlo  seleccionamos  hacemos un clic en abrir.  tenemos  necesitamos  compilarlo  y  generar  por  que  abrir  el  código  que  acabamos  de  lo menos el código para programarlo al  generar.  recordemos  que  generarlo  es  necesario  crear  un  nuevo  lo  guardamos  en  la  carpeta  Blasted.  es  decir. entonces  pedirá  una  ruta  para  abrir.  y  proyecto. //Condición de bucle infinito } //Fin del Programa.c. } } while(TRUE).

 para este diseño hemos  clic en Apply.  elegido el PIC16F877A.  Hacemos  n  clic  en  el  menú  Lookup  Part  y  nos  marcará  si  tenemos  Compile.   Inmediatamente otro cuadro de  elegido el pic18f452 igual tendríamos  diálogo nos preguntará qué PIC  que anotar ese.  y  luego  un  clic  en  Compile  o  errores. lo anotamos y hacemos  utilizaremos.  27    . si hubiésemos      Una  vez  creado  nuestro  proyecto  ya  programa  se  compilará  con  su  podemos  compilar  nuestro  código  compilador  respectivo  de  la  pestaña  hecho.    Automáticamente  el  asm y otros varios archivos útiles.  nos  generará  traducciones  al  presionemos  F9.

hex.   Botón Compilar.      El programa compilándose. Y nos muestra la  cantidad de memoria que estamos utilizando en el dispositivo.    28    . con su versión PCM para el 877ª.err.    En este caso tenemos 0 errores y 0 advertencias. queriendo  decir que el programa ya  puede ser quemado en un PIC. . etc. genera el .

  www.  información  la  encuentran  fácilmente    en  la  red.El  esquema  del  circuito  se  muestra  a  continuación  y  puede  ser  simulado  en  Proteus   7.  una  buena  opción  cuando  no  contamos  con  recursos  para comprar un PIC.ccsinfo.1  y  funciona  correctamente.  Autor:  Miguel  Ángel  San  Pablo  J.  para  números.  lo puedes descargar aquí.    Esquemático.cof. tiene un monitor de puerto serial.mx   Finalmente  comentamos  que  este  compilador  tiene  opciones  de  Wizard  Referencias:   para PICs más sofisticados y en general  para  cualquier  PIC.    :‐)  incluido  en  PICC  que  es  el  ICD  cuya  R.  Y  podemos  usar  cualquier  otro con el .  editor  de  macros  y  una  muy  programar  el  PIC  utilizamos  el  buena  ayuda  que  podemos  leer  y  quemador  Winpic800  con  el  continuar  aprendiendo  a  usar  este  GTP_USB_Lite  pero  pueden  usar  programa  y  sus  demás  funciones  que  cualquier  otro  programador  como  el  no son explicadas en este artículo.com/ El  demo  del  picc  USB.  buscador  29    .    blastedrobotics@yahoo.    El  PIC16f877A  contiene  el  código  de  datasheets.hex ó  el .D.  convertidor  de  introducción.com.  convertidores  de  código  a  C.hex  programado.  tiene  librerías  HID.

  Esto  hace  que  como  estudiantes  nos  veamos    obligados  a  cambiar  nuestros  métodos  de  diseño  y  a  elevar la capacidad de síntesis de estructuras digitales    complejas.  aplicados  en  la  electrónica  de  potencia.  filtros  con  respuesta  de  frecuencia  determinado  en  un  valor  binario. a aumentar la  ofician  de  entrada  al  conversor.  siempre  y  cuando  conozcamos  el  valor  • Procesamiento Digital de Sonido   máximo  que  la  entrada  de  información  utiliza  y  la  • Procesamiento Digital de Voz   cantidad  máxima  de  la  salida  en  dígitos  binarios.  hay  una  pérdida  una señal de entrada.   CONVERTIDOR DIGITAL ANALÓGICO (DAC)   En  esta  ocasión  el  desarrollo  de  esta  práctica  esta  Características  fundamentada en los convertidores analógico‐digital y    digital‐analógico  veremos  su  estructura.  Además  las  señales  digitales  requieren    Poseen dos señales de entrada llamadas Vref+  usualmente  menos  ancho  de  banda  y  pueden  ser  y Vref‐ y determinan el rango en el cual se convertirá  comprimidas.  éste  aumentará  en  complejidad del sistema físico (hardware) para elevar  una  unidad  su  salida  (siempre  sumando  en  forma  la velocidad de los procesadores digitales y ampliar de  binaria bit a bit).6  sistema analógico y llevándolo a los sistemas digitales.  inherente  de  información  al  convertir  la  información  continua en discreta.   este  se  encarga  de  transformar  señales  análogas  a  digitales (0's y 1's).  robótica  en  sistemas  Resolución = 0.  Esta  resolución  se  pude  saber.  esa forma su campo de aplicación.  el  convertidor  análogo  digital  • Procesamiento Digital de Video   30 .6mv.  digitales como son las microcomputadoras y haciendo  una  interfaz  con  el  mundo  real  pasándolo  por  un    Lo  anterior  quiere  decir  que  por  cada  19.  Sin  embargo.  milivoltios  que  aumente  el  nivel  de  tensión  entre  las  El  espectacular  desarrollo  de  la  microelectrónica  ha  entradas  nomencladas  como  "Vref+"  y  "Vref‐"  que  intensificado la tendencia generalizada.    La conversión se hace en forma digital porque  ésta  es  usualmente  más  simple  de  realizar  y  más  ¿Cómo funciona?  barato  de  implementar  que  en  la  conversión  analógica. CONVERTIDORES  ADC Y DAC    INTRODUCCION  ADC0804 tiene la capacidad de convertir una muestra    analógica de entre 0 y 5 voltios y su resolución es:    En  la  actualidad  existen    diversos  sistemas  Resolución = valor analógico / (2^8)‐1  electrónicos  que  van  desde  la  aplicación  de  la  ley  de  ohm  hasta  sistemas  desarrollados  para  las  Resolución = 5 V / 255  comunicaciones.0196v o 19.  arbitraria).     • Es  posible  realizar  mediante  procesamiento  digital  acciones  imposibles  de  obtener    Un  conversor  analógico‐digital  es  un  mediante  el  procesamiento  analógico  (por  dispositivo  electrónico  capaz  de  convertir  un  voltaje  ejemplo.  A  • Procesamiento Digital de Imágenes   manera  de  ejemplo.  • Las  señales  son  convertidas  a  formato    discreto  (digital)  para  facilitar  su  transmisión  CONVERTIDOR ANALÓGICO DIGITAL (ADC)  o almacenamiento.  bioelectrónica.  en  otras  palabras.  su  funcionamiento y la aplicación que le damos.    El  dispositivo  establece  una  relación  entre  su  entrada  (señal  analógica)  y  su  salida  (Digital)  APLICACIONES   dependiendo  de  su  resolución.

El resultado de la última conversión    Uno  de  los  beneficios  principales  del  DAC  es  OBJETIVO  que las transformaciones de señales son más sencillas  de  realizar.  Evidentemente  nos  ¾ capacitares ceramicos  da  una  cota  máxima  de  la  frecuencia  de  la  señal  a  ¾ Protoboards  medir. Como  primera  parte  se  implemento  una  etapa  de  oscilación  con  un  CI  555  en    31 .  compresión.  MATERIAL:    ¾ Transistores BC557  ¾ Contadores (74LS293)  TIEMPO DE CONVERSIÓN:  ¾ Amplificadores operacionales (OP_AMPs)  ¾ Resistencias de 1 KOhm    Es el tiempo que tarda en realizar una medida  ¾ Resistencias variables  el  convertidor  en  concreto.  en  este  TDF permite un análisis más sencillo y eficaz sobre la  caso usaremos el transistor BC557.  La  Analógico  (DAC)  a  base  de  transistores  PNP.  transistores  BC557. como nuestro DAC  frecuencia. que dependiendo de la  ¾ Comparador (LM339)  constitución del convertidor será:   ¾ CLK (LM555)      DESARROLLO  configuración  astable  como  se  presenta  a    continuación: 1.  procederemos  a  conectar  estas  salidas  analógicas  a  CONVERTIDOR ANALÓGICO DIGITAL (ADC)  un  Convertidor  Analógico‐Digital  (ADC).  2.  digitales.  Una  de  las  más  importantes    transformadas es la Transformada de Fourier discreta  (TFD).  procesamiento  (encriptación.  ¾ cable para las conexiones  ¾ Buffer(CD4049)    Si no respetamos el tiempo de conversión. Un  valor  aleatorio. entonces necesitamos 8  de ruido y en otros tipos de filtrado.  Ya  estando  funcionando  el  DAC.  La conversión de digital analógico se utiliza en    el  procesamiento  de  música  (por  ejemplo  MP3).  este  ADC  siendo  creado  también  por  componente  a    Una  conversión  analógica‐digital  consiste  en  componente.  con  el  propósito  de  facilitar  su  obteniendo asi en la salida una señal de tipo RAMPA.  teléfonos  celulares.  de  1.  contadores  y  una  latch. sobre todo en aplicaciones de eliminación  queremos que sea de 8 bits.  al  conectar  el  DAC  con  el  ADC  la  trascripción  de  señales  analógicas  en  señales  necesitaremos  Buffers.  Esta  transformada  convierte  la  señal  del  Crear  primeramente  un  Convertidor  Digital‐ dominio  del  tiempo  al  dominio  de  la  frecuencia.  como  consecuencia  de  la  voz.    transmisión  de  imágenes  y  conversión en curso  video.  etc.)  y  hacer  la  señal  resultante  (la  digital)  más  inmune  al    ruido  y  otras  interferencias  a  las  que  son  más  sensibles las señales analógicas.  y  dependerá  de  la  ¾ leds  tecnología  de  medida  empleada. en  ¾ Latch (74LS374)  la salida tendremos un valor.

            .     . Como segunda etaapa se implementaron  contaddores pata mmandar unos y ceros a  nuestrros transistores.                   Diaggrama de contador            32 .                                Diagramma de un  oscilado or con 555            2.

En  esta  ultima  u etapaa  mostramo os  nos compara nuestra señal de entrada del  nuestrro  Converrtidor  Analógico/Digitaal  DAC y  nuestro volttaje de entraada.       Diaagrama para el DA AC. 3.  a  la  cual  see  le  agrego  amplificación  del  com mparador  ess  la  que  noss  da  el  pulsoo  en  mo odo  inversor  para  que  la  señal  sea  de  actiivación  a  la  LATCH  y  esta  es  la  quee  positivva  y  de  allí  a  un  compaarador  la  cuaal  nos  da  nuesstra  salid da  digital.  33 .. la salidaa  (ADC). y asíí  mostraamos en la figgura.             4. En la ttercera etapaa conectamoos la salida de  tenemo os nuestro C Convertidor  los con buffers estos para tener  ntadores a b Digital//Analógico (D DAC) compleeto como lo  una mmejor señal para los transsistores.

            Diaagrama para el AD DC.            34 .

 Madrid.canalaudiovisual. quinta ediccion. J. RUMSEEY. Coughlin.            BIBLIOGRAFIA    1. Robertt F.  Se  obserrva  la  ramp pa    obbtenida por n nuestro DAC C. Francis y McCORMICK K. El a arte del audio digital.                            REESULTADOS        A conttinuación preesentamos los resultado os    obbtenidos  en  esta  prácticca.   2.unam. s. Introduccióón a las  técnicaas sonoras.  35 .htm    5. Frederick.com/ezine/ books//acjirINFORM MATICA/3info o01. 199 93   3. http:///www.    Amplifi ficadores opeeracionales yy circuito  integraados lineales.htm      Autor:    Pab blo Gonzaless Vellano.mxx/Articulos/ dos/abbril/audiodig..D Driscoll.  IMMPLEMENTA ACION      A continuación n presentam mos el circuito o implentado o  paara esta prácctica. 2 2004.  Sonido y grabación n. Tim.  IORTV.  4.enteraate. WATKINSON. http:///www2..

que al inercialmente se mueven. La Fuerza de Gravedad. dentro de las sobre sus masas gravitacionales geodesias de la curvatura del espacio- instantánea y a distancia.   No es necesario hacer operaciones.Cuestionario.    Para Newton la gravedad es un caso tiempo curvo. emitidos de su masa-energía y viajan cerrados a c. se generaliza al espacio-   A continuación presentamos unas serie de preguntas para que las medites y pienses un  poco. En la Relatividad General la inercia. los cuerpos. compuesto de gravitones virtuales. Para los físicos cuánticos la gravedad es la fuerza de interacción. entre cuerpos. bajo la particular de la fuerza que al actuar acción de un campo gravitatorio sobre la masa inercial de un cuerpo lo estático.    Tema: Mecánica Clásica.  ¡Suerte!    36    . sólo tienes que pensar y razonar sin estresarte. que los tridimensional plano absoluto e tiende a unir en su centro de masas. Así. resuélvelas y veras que será entretenido. sin gravitones y velocidad. acelera. La fuerza de gravedad. actúa aceleración uniforme. independiente de un tiempo absoluto uniforme y hace que los cuerpos aceleren hacia cada otro. con menos obra entre dos cuerpos. del espacio plano. en un espacio tiempo de una región local. que actúa a través del campo gravitatorio estático.

 y dejara caer una bola dentro del hueco?            37    .  Pregunta 1: ¿Qué sucedería si usted horadara un hueco desde el Polo Norte hasta el  Polo Sur.

 y una bala a un ángulo de 45 grados del horizonte.  Pregunta 2: Si usted disparara una bola directamente hacia arriba (a 90 grados del  horizonte). ¿cuál tocaría el suelo  primero?          38    .

 ¿aumentaría notablemente la gravedad?           39    .  Pregunta 3: Si usted pudiera hacer girar la Tierra cinco veces más de prisa que su  rotación actual de una vuelta diaria.

  y  simultáneamente  disparara  una  bala  paralela  al  horizonte.  ¿cuál  llegaría  antes al suelo?        40    .        Pregunta  4:  Si  usted  dejara  caer  una  bola  desde  una  altura  de  3  metros.