View
242
Download
5
Category
Preview:
DESCRIPTION
Ejercicios propuestos Microprocesadores
Citation preview
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
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
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
Recommended