SE – uC: PIC16F84A – Práctica #4

Requisitos del Programa

Realizar un programa que monitorice el estado de un botón y lo muestre en un LED.

Planeación

Primero definiré los puertos de entrada y salida:

Entradas: PORTA

Salidas: PORTB

La forma más fácil de resolver este problema sería: PORTB = PORTA, pero como el problema establece que debemos monitorizar el estado del botón utilizaremos la técnica de “polling” que consiste en un ciclo infinito.

Diagrama de Flujo

Código Fuente

Continuar leyendo…

Advertisements

SE – uC: PIC16F84A – Práctica #3

Requisitos del Programa

Realizar un programa que compare dos valores de cuatro bits cada uno, obtenidos de un puerto y con tres LEDs en otro puerto de salida indique si A > B, A < B o A = B.

Planeación

Primero definiré los puertos de entrada y salida:

Entradas: PORTB | A=4b-MSB | B=4b-LSB |

Salidas: PORTA | 2b-A>B | 1b-A<B | 0b-A=B |

Para realizar la comparación tenemos que hacer una resta A – B y se utilizaran las banderas Z y DC del registro STATUS para verificar si A > B, A < B, A = B.

Diagrama de Flujo

Código Fuente

Continuar leyendo…

SE – uC: PIC16F84A – Práctica #2

Descripción del Programa

Programa que almacena 0x11 en quince posiciones continuas de memoria de datos utilizando direccionamiento indirecto. Empezando en la dirección 0x10.

Para realizar este programa utilizaremos un contador para incrementar la posición de memoria y llevar la cuenta de las quince posiciones donde escribiremos el dato 0x11.

Para utilizar el direccionamiento indirecto debemos poner la dirección inicial en el registro FSR e ir incrementándolo y para escribir el dato en esa posición de memoria debemos utilizar el registro INDF.

Diagrama de Flujo

Código Fuente

Continuar leyendo…

SE – uC: PIC16F84A – Práctica #1

Descripción del Programa

Programa que suma dos números de 16 bits.

Para realizar este programa en un uC de 8-bits es necesario utilizar dos registros para cada variable y sumar el acarreo al resultado final.

Diagrama de Flujo

Código Fuente

Continuar leyendo…