Álgebra de Boole
El álgebra de Boole es una herramienta de trabajo muy útil al programar en un microcontrolador. Puesto que nos encontramos al nivel de editar y configurar bits dentro de un byte, Algunas propiedades del álgebra de Boole son::
|
Para un repaso más a fondo de la lógica booleana leer el siguiente artículo: Álgebra de Boole
Utilizando estas propiedades definimos una herramienta muy útil: El enmascaramiento.
Se trata de una manera de extraer o forzar el estado de un solo bit o de algunos específicos de una palabra. Para ello se utilizan las operaciones booleanas AND OR y XOR y estas propiedades:
Para el AND
No se modifica el estado del bit "a"
Se forza el estado del bit a "1".
Para el OR
No se modifica el estado de "a"
Se forza el estado del bit a "0"
Para el XOR
Invierte el valor de "a"
Conserva el valor de "a"
En función de lo que se quiera hacer con una palabra de bits, se puede seleccionar un bit (Borrar todos los demás) Invertir un bit (gracias al XOR), forzar a 0 (con AND) o forzar 1 (con OR).
Consideraciones previas.
Al realizar aplicaciones basadas en un microcontrolador es importante mantener en mente que se trata de un dispositivo limitado en memoria, manejo de datos, operaciones y restringido en tiempo de ejecución. De estos puntos nace la diferencia a la hora de diseñar algoritmos de solución para microcontrolador.El lenguaje MPASM
Es un lenguaje de programación de bajo nivel, por lo que está orientado a procesos de la máquina. Es el lenguaje de programación específico para toda la gama de microcontroladoes de Microchip ©Las restricciones Software imagen de las restricciones Hardware:
Al trabajar con un microcontrolador es muy importante recordar las limitaciones que nos impone el dispositivo (el hardware). En el caso de los microcontroladores PIC hay que recordar el tamaño máximo del dato que se puede manejar, las restricciones de operaciones que puede manejar y el tiempo de operación fijado por el reloj externo. Para acostumbrarnos a estas condiciones de trabajo realizamos algunos ejercicios.Ejercicio 1: El enmascaramiento para comprobar un solo bit.
De una palabra de 8 bits, comprobar el estado del bit 4:
Restricciones:
Solo utilizar operaciones de la lógica booleana
Solo se puede saber si una palabra de 8 bits es igual a 0 o no.
Problema 1:
¿Qué pasaría si se hace un enmascaramiento con la operación XOR?
Problema 2:
Separar de un byte con la siguiente distribución:
|
|
Ejercicio 2:
Llevar el conteo de visitantes a un museo en una memoria de 8 bits. Se espera un número máximo de 32800 visitantes por mes.
Problema 4:
Programar un semáforo de cortesía basado en la existencia de 2 rutinas de retardo: 1 segundo y 5 segundos.
El byte de información (Entradas y salidas) está distribuido como sigue:
|
Para el reporte de práctica
En esta ocasión si se tendrá que realizar un reporte de práctica el cual deberá incluir una descripción de cada actividad y tema tratado (Cómo funcionan los enmascaramientos, cómo se hace una cuenta en más de 8 bits con todas las consideraciones necesarias (Carry etc.), y cómo se programó el semáforo.)En la introducción sería aconsejable que pusieran un resumen de la lógica de Boole, pero es a criterio de cada quien. Si necesitan repasar la lógica de Boole ponganlo en la introducción.
Como actividades a reportar, tendrán que describir el diagrama de flujo que hice del semáforo (Tiene que estar bien descrito), y desarrollarán la función de "Esperar entrada" revisando el bit B
Archivos adjuntos:
Diaframa de flujo semáforo [PDF]
Diagrama de flujo semárofo [visio]
Presentación [pptx]
Presentación [PDF]
No hay comentarios:
Publicar un comentario