Está en la página 1de 3

UNIVERSIDAD PRIVADA BOLIVIANA

FACULTAD DE INGENIERÍA Y ARQUITECTURA


CARRERA: ELECTROMECÁNICA, ELECTRÓNICA Y TELECOMUNICACIONES
ASIGNATURA: ELECTRÓNICA AVANZADA
PRÁCTICA No. 1

Ejercicio 1. Escriba el código en C para el PIC18F2550, de manera que lea un número entero
de tres dígitos mediante el teclado matricial de 3x4, detecte si el número leído es primo o no y
muestre en la pantalla LCD de 20x4. El sistema se debe regir a las siguientes particularidades:

1.- Cuando se energice el sistema, la pantalla LCD mostrará durante 3 segundos los mensajes
en las líneas 1, 2, 3 y 4:
 
“DETECTOR DE
NUMEROS PRIMOS”

PULSE CLEAR (*)

2.- Para ingresar el número, la pantalla LCD mostrará el mensaje en la línea 4: INGRESE EL
DATO: y en la misma línea 4 de la pantalla mostrará el número ingresado en orden uno tras
otro y luego con la tecla ENTER (#) debe aceptar el mismo.
 
3.- El sistema debe validar de la siguiente manera:

3.1.- Si el número leído es primo mostrará en la pantalla LCD línea 1 el mensaje EL


NUMERO_ con el número impreso, en la línea 2 el mensaje ES PRIMO y en la línea 3 el
mensaje PULSE CLEAR (*).
.
  3.2.- Si el número leído no es primo mostrará en la pantalla LCD línea 1 el mensaje EL
NUMERO_ con el número impreso, en la línea 2 el mensaje NO ES PRIMO y en la línea 3 el
mensaje PULSE CLEAR (*).

4.- El sistema debe validar que el dato ingresado es numérico, en caso de que no sea así la
pantalla LCD mostrará en la línea 1 en mensaje ERROR…. y en la línea 2 el mensaje PULSE
CLEAR (*).

6.- Para ingresar un nuevo número se pulsará la tecla (*) y volverá al paso 2.

NOTA: Use el circuito ejemplo de proteus para el manejo del teclado de 3x4 y de la pantalla
LCD 20x4.

El circuito a implementar en PROTEUS será el siguiente:

Nota: Configurar la frecuencia de la CPU a 32 MHz con el reloj externo a 20 MHz.


Pseudocódigo para detectar el número primo:

primo=1
divisor=2
si número es igual a cero o número es igual a uno
primo = 0
caso contrario
mientras divisor sea menor que número y primo sea igual a 1 hacer
si el residuo entre número y divisor es igual a cero entonces
primo = 0
caso contrario
incrementa divisor en uno
fin mientras

Ejercicio 2. Escribir el código en lenguaje C para el PIC18F4550 de manera que genere


números aleatorios con las funciones srand() y rand() comprendidos entre 0 y 255, y guarde
dicha información en una matriz de 5 filas x 5 columnas. El sistema deberá regirse a las
siguientes condiciones.

a) Se dispone de la pantalla LCD para mostrar la información con los mensajes fila1 y
fila2: MATRIZ ORIGINAL, VALORES AL AZAR:
b) Cuando genere los números al azar el sistema almacenará la información en la
matriz.
c) Luego mostrará, con pausas de 1 segundo, los números guardados en la matriz y
su ubicación, como sigue, línea 3: FILA=__ COLUMNA=__, línea 4: VALOR=__.
d) Posterior a ello el sistema ordenará la información de menor a mayor contenida en
la matriz.
e) Después borrará la pantalla LCD y mostrará los mensajes fila1 y fila2: MATRIZ
ORDENADA, DE MAYOR A MENOR.
f) Finalmente mostrará en la pantalla LCD, con pausas de 1 segundo, la información
ordenada de mayor a menor, como sigue, línea 3: FILA=__ COLUMNA=__, línea
4: VALOR=__.
g) Se repetirá continuamente la generación de nuevos números aleatorios y el
despliegue de la información repitiendo desde el inciso a).

El circuito a implementar en PROTEUS será el siguiente:

Nota: Configurar la frecuencia de la CPU a 24 MHz con el reloj externo a 4 MHz.


PSEUDO CÓDIGO PARA ORDENAR DATOS EN UNA MATRIZ: Método de la Burbuja
ciclo de control de filas i
ciclo de control de columnas j
ciclo de barrido de filas x para ordenar datos
ciclo de barrido de columnas y para ordenar datos
si el contenido de la matriz i,j < contenido de la matriz x,y
menor = contenido de la matriz i,j
contenido de la matriz i,j = contenido de la matriz x,y
contenido de la matriz x,y = menor
fin de si
fin del ciclo de barrido de columnas y
fin del ciclo de barrido de filas x
fin del ciclo de control de columnas j
fin del ciclo de control de filas i

También podría gustarte