Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Abstract—This report presents the analysis of the results los placas de Arduino mas usadas es la nano debido a tamaño
obtained when programming logic gates such as AND, OR and y capacidad (Figura 1).
XOR using C language in an arduino nano with an Atmega 328p
microcontroller. Similarly, a comparison of different interruption
functions is presented and it is evaluated whether the time
stipulated in the code corresponds to the time obtained. Finally
the times of the rising and falling flanks are measured.
Index Terms—Logic gates, language C, Atmega 328p, inter-
ruptions, flanks,
Resumen– En el presente informe se presentan el análisis
de los resultados obtenidos al programar compuertas
lógicas como AND, OR y XOR usando lenguaje C en
un arduino nano con un microcontrolador Atmega 328p.
De igual manera se presenta una comparación de difer- Fig. 1. Disposición de pines Arduino nano.
entes funciones de interrupción y se evalúa si el tiempo
estipulado en el código corresponde al tiempo obtenido. Los registros de puertos permiten una manipulación
Finalmente se miden los tiempos de los flancos ascendentes más rápida y de menor nivel de los pines de E/S del
y descendentes. microcontrolador en una placa Arduino. Los chips utilizados
Palabras clave–Compuertas lógicas, lenguaje C, Atmega en la placa Arduino (ATmega8 y ATmega168) tienen tres
328p, interrupciones, flancos, puertos:
A B out
0 0 0
0 1 1
1 0 1
1 1 1
TABLE III
TABLA DE VERDAD COMPUERTA XOR
A B out
0 0 0
0 1 1
1 0 1
Fig. 2. Diagrama de flujo compuerta AND.
1 1 0
igual que en los casos anteriores la unica sentencia que varia los estados de las entradas y de las salidas, que están en alto
es la del condicional, que para este caso sera PORB==0x00 ó únicamente si las dos entradas están en alto y con esto se
PORB==0x03 la salida sera en bajo, de lo contrario la salida corrobora la tabla de verdad para esta compuerta.
sera alta. En la figura 6 se observan los resultados para la compuerta
OR. Donde la salida es alta siempre y cuando alguna de las
entradas este en alto.
(c) in=10 - out=0 (d) in=11 - out=1 En las subfiguras 8g, 8h y 8i se uso la función milis() para
Fig. 5. Compuerta AND hacer las interrupciones y se observa que la variación de los
MICROPROCESADORES II 4
tiempos programados a los obtenidos es de cero para cada • Se determino el tiempo que hay al haber un flanco
caso. ascendente o descendente.
IV. C ONCLUSIONES
• Se comprobó el comportamiento logico de las compuertas
AND, OR y XOR.
• Se determino la variación entre el tiempo de interrupción
programado con el obtenido al usar las funciones deñay(),
micros() y millis(), siendo esta ultima la mas exacta.