3
UNIVERSIDAD DE CARABOBO FACULTAD DE INGENIERÍA ESCUELA DE INGENIERÍA ELÉCTRICA DEPARTAMENTO DE SISTEMAS Y AUTOMÁTICA MICROPROCESADORES EJERCICIOS PROPUESTOS Nº 1 1. Elabore un programa en Assembler del PIC16F887 que lea 3 números de 4 bits, determine el menor de ellos y lo muestre mediante leds ubicados en los pines RA2 a RA5. La lectura de los números y posterior cálculo se producirá cuando el usuario lo indique, a través de un switch conectado en el pin RA0. 2. Elabore un programa en Assembler del PIC16F887 que incremente un contador C (entre 0 y 9) cuando el usuario accione un switch ubicado en RB1; deberá tener cuidado en que el contador sólo se incremente cuando se accione el switch y si el usuario lo mantiene en una sola posición no se incremente el contador durante todo ese tiempo. Cuando el usuario accione otro switch ubicado en RB2 deberá colocar el contador en 0. El valor del contador se mostrará mediante un display 7 segmentos ubicado en el puerto A. Si el valor del contador es par se encenderá un led ubicado en RB0. 3. Elabore en Assembler del PIC16F887 una rutina que dada la siguiente tabla de equivalencia entre temperaturas en grados Fahrenheit y grados Centígrados, permita obtener un valor aproximado en grados centígrados para una temperatura suministrada en grados fahrenheit, recibida por medio del registro W. Grados Fahrenheit Grados Centígrados 50 10 55 13 60 16 65 18 70 21 75 24 80 27 85 29 90 32 95 35 100 38 105 41 110 43 115 46 1/3

Ejercicios MicroProcesadores

Embed Size (px)

DESCRIPTION

Ejercicios propuestos Microprocesadores

Citation preview

Page 1: Ejercicios MicroProcesadores

UNIVERSIDAD DE CARABOBOFACULTAD DE INGENIERÍAESCUELA DE INGENIERÍA ELÉCTRICADEPARTAMENTO DE SISTEMAS Y AUTOMÁTICAMICROPROCESADORES

EJERCICIOS PROPUESTOS Nº 1

1. Elabore un programa en Assembler del PIC16F887 que lea 3 números de 4 bits, determine el menor de ellos y lo muestre mediante leds ubicados en los pines RA2 a RA5. La lectura de los números y posterior cálculo se producirá cuando el usuario lo indique, a través de un switch conectado en el pin RA0.

2. Elabore un programa en Assembler del PIC16F887 que incremente un contador C (entre 0 y 9) cuando el usuario accione un switch ubicado en RB1; deberá tener cuidado en que el contador sólo se incremente cuando se accione el switch y si el usuario lo mantiene en una sola posición no se incremente el contador durante todo ese tiempo. Cuando el usuario accione otro switch ubicado en RB2 deberá colocar el contador en 0.

El valor del contador se mostrará mediante un display 7 segmentos ubicado en el puerto A. Si el valor del contador es par se encenderá un led ubicado en RB0.

3. Elabore en Assembler del PIC16F887 una rutina que dada la siguiente tabla de equivalencia entre temperaturas en grados Fahrenheit y grados Centígrados, permita obtener un valor aproximado en grados centígrados para una temperatura suministrada en grados fahrenheit, recibida por medio del registro W.

Grados Fahrenheit Grados Centígrados

50 10

55 13

60 16

65 18

70 21

75 24

80 27

85 29

90 32

95 35

100 38

105 41

110 43

115 46

1/3

Page 2: Ejercicios MicroProcesadores

4. Debe utilizar la tabla anterior y algún criterio para obtener el ‘valor aproximado’ en grados centígrados. Tome en cuenta que la tabla anterior se almacenará en memoria de la siguiente manera

50

55

60

65

70

75

80

85

90

95

100

105

110

115

10

13

16

18

21

24

27

29

32

35

38

41

43

46

Nota: la tabla a emplear es la indicada sin un solo valor más o menos. Suponga que la temperatura recibida en W está en el rango de 50 a 115 °F.

5. Elabore en Assembler del PIC16F887 una rutina (subprograma) que permita dividir 2 números de

2/3

Page 3: Ejercicios MicroProcesadores

4 bits y retorne el cociente de dicha división a través del registro W.

6. Elabore un programa en Assembler del PIC16F887 que determine el valor mayor de un conjunto de números de 4 bits introducidos por el usuario, para lo cual se utilizarán 4 switches ubicados en los pines RA1, RA2, RA3, RA4. Además, existirá un switch L ubicado en RA0 que permitirá al usuario indicar que el programa debe leer un nuevo valor introducido por los switches indicados anteriormente, y un switch P ubicado en RA5 que indicará al programa que no hay más datos a leer y debe mostrar el resultado por medio de un display 7 segmentos, ubicado en el puerto B.

Cada vez que el programa esté esperando que el usuario accione el switch L ó P lo indicará mediante el encendido de un led ubicado en RB0.

7. Elabore un programa en Assembler del PIC16F887 que permita determinar la cantidad de transiciones ascendentes que se produce en una señal digital recibida a través del pin RA0. El proceso de contar dichas transiciones se inicia cuando el usurio acciona un switch de START/STOP, y finaliza cuando el usuario vuelve a accionar dicho switch (y volverá a iniciar dicho proceso si el usuario acciona nuevamente el switch).

Cuando el sistema se encuentre en proceso de contar las transiciones deberá indicarlo al usuario mediante el encendido de un led ubicado en el pin RA4. Una vez obtenida la cantidad de transiciones, la misma deberá mostrarse mediante un par de displays 7 segmentos, ubicados en los puertos B y C.

Elabore el diagrama de conexiones, el algoritmo y el programa en Assembler.

8. Elabore un subprograma en Assembler del PIC16F887 que calcule el valor promedio de un vector de N elementos.

3/3