11
Ejercicios básicos para microconladores Nivel 0 1. Por el puerto B se obtiene el dato del puerto A 2. Por el puerto B se obtiene el dato del puerto A complementado 3. Por el puerto B se obtiene el dato del puerto A multiplicado por 3 unidades. 4. Por el puerto B se obtiene el dato del puerto A intercambiado los nibbles alto y bajo. 5. Por el puerto B se obtiene el doto del puerto A desplazando un bit hacia la izquierda, por la derecha entra un “1” ejm. A= xxx11001 entonces B= xx110011. 6. Por el puerto B rotar hacia la izquierda un bit activado en “1” 7. Por el puerto B rotar hacia la derecha dos bits activados “11” 8. Escribir en un display de 7 segmentos sin utilizar decodificador un valor ascendente entre 0 – F. 9. Por el puerto B visualizar un contador binario ascendente 10. Por el puerto B visualizar un contador binario descendente 11. Mediante un display alfanumérico mostrar en forma descendente las letras del alfabeto de A a Z. 12. Por el puerto B mostrar las siguientes operaciones portB.0 = portC.0 and portC.1 portB.1= portC.2 or portC.3 portB.2 = portC.4 xor portC.5 Nivel 1 1. Por el puerto B, que actúa como salida es controlado por el bit 0 del puerto A, que actúa como entrada. De manera tal que: portA.0 =1 se enciende todos los leds de salida portA.0 =0 se apaga todos los leds de salida. 2. Prender y apagar un led cada 0.5 segundos con un 16F84A por RB0 3. Prender y apagar 4 leds cada segundo (RB0 a RB3). 0,5 segundos prendido y 0,5 segundos apagado con un 16F84A 4. Según el estado de los interruptores RA0 y RA1, activar los leds RB0-RB7 conectados a la puerta B, conforme a la siguiente tabla de la verdad:

Ejercicios básicos para microconladores

Embed Size (px)

Citation preview

Page 1: Ejercicios básicos para microconladores

Ejercicios básicos para microconladores

Nivel 0

1. Por el puerto B se obtiene el dato del puerto A2. Por el puerto B se obtiene el dato del puerto A complementado3. Por el puerto B se obtiene el dato del puerto A multiplicado por 3 unidades.4. Por el puerto B se obtiene el dato del puerto A intercambiado los nibbles alto y bajo.5. Por el puerto B se obtiene el doto del puerto A desplazando un bit hacia la izquierda, por

la derecha entra un “1” ejm. A= xxx11001 entonces B= xx110011.6. Por el puerto B rotar hacia la izquierda un bit activado en “1”7. Por el puerto B rotar hacia la derecha dos bits activados “11”8. Escribir en un display de 7 segmentos sin utilizar decodificador un valor ascendente entre

0 – F.9. Por el puerto B visualizar un contador binario ascendente10. Por el puerto B visualizar un contador binario descendente11. Mediante un display alfanumérico mostrar en forma descendente las letras del alfabeto

de A a Z.12. Por el puerto B mostrar las siguientes operaciones

portB.0 = portC.0 and portC.1portB.1= portC.2 or portC.3portB.2 = portC.4 xor portC.5

Nivel 1

1. Por el puerto B, que actúa como salida es controlado por el bit 0 del puerto A, que actúa como entrada. De manera tal que:

portA.0 =1 se enciende todos los leds de salidaportA.0 =0 se apaga todos los leds de salida.

2. Prender y apagar un led cada 0.5 segundos con un 16F84A por RB03. Prender y apagar 4 leds cada segundo (RB0 a RB3). 0,5 segundos prendido y 0,5 segundos

apagado con un 16F84A4. Según el estado de los interruptores RA0 y RA1, activar los leds RB0-RB7 conectados a la

puerta B, conforme a la siguiente tabla de la verdad:

5. Una lámpara conectada en RB0 se controla mediante dos interruptores conectados en RA0 y RA1. Cuando cualquiera de los interruptores cambie de estado, la lámpara también lo hará.

6. Una lámpara conectada en RB0 se controla mediante 3 interruptores conectados en RA0 , RA1 y RA2 . Cuando 2 interruptores están en estado alto se activara la salida RB0,en otra condición la la salida estará apagado.

7. Efecto de luces tipo Auto Fantástico con un 16F84A por el puerto b, RB0 a RB7

Page 2: Ejercicios básicos para microconladores

8. Diseñe un contador de 8 bits, que se incrementa cada vez que se pulsa “P” (RA3). Visualice el resultado por el puerto B. Activar un led (RA0), cuando el contador llegue a D’125’ y pagarlo cuando llegue a D’221’. Repetir el ciclo.

9. Utilizando un PIC16F877 realice un Juego de Luces de 8 leds, donde por medio de un Pulsador de Inicio el Juego se coloque en funcionamiento. El Juego se comportara de la siguiente manera:

Los leds inicialmente se encenderán solo uno a la vez en secuencia, de izquierda a derecha y de derecha a izquierda; Este proceso lo realizara 5 veces, donde al terminar pasara a la siguiente secuencia que se comportara de la siguiente manera: El secuenciador será de 8 leds donde encenderán uno por uno, y al estar todos encendidos se apagaran; Este Proceso se realizara 4 veces.

Luego todo este proceso se realizara nuevamente. Nota: Utilice las instrucciones RLF y RRF10. Utilizando un PIC16F877 realice un Contador de 4 en 4 que cuando llegue a 40 realice el

encendido de una alarma por medio del Pin RA4, luego de ello se debe realizar el contador de 4 en 4 de forma descendente y al terminar se debe realizar todo el proceso nuevamente.

11. Utilizando un PIC16F877 realice la captación de dos números de 4 bits, los cuales ambos son suministrados por el Puerto D. Estos números deben de ser comparados para lo siguiente:

Si A=B encender una alarma. (Por RE0)Si A>B realizar la suma de estos números para luego realizar un contador desde este valor hasta su desbordamiento. (Mostrar por el Puerto C)Si A<B realizar el complemento a 1 del numero B. (Mostrar por el Puerto C)

El numero A son los 4 bits menos significativos del Puerto D y el numero B son los 4 bits mas significativos del Puerto D.

12. Utilizando un PIC16F84, realice un contador binario de 5 a 55 por medio de leds. 13. Utilizando un PIC16F877 realice un secuenciador de 8 leds de izquierda a derecha y de

derecha a izquierda por el Puerto C. Se deben ir encendiendo los leds de 2 en 2 en forma secuencial. (Mientras dos leds estén encendidos todos los demás están apagados).

El secuenciador a la izquierda se realiza por medio de la activación de un suiche colocado en RB0 en activo bajo.El secuenciador a la derecha se realiza por la activación de un suiche colocado en RB1 en activo bajo. En otros estados de la entrada la salida cera apagado

14. Se tienen 2 números de 6 bits que serán introducidos por el Puerto B (digA) y Puerto C (digB) del microcontrolador, donde se tendrán que comparar ambos números para realizar los siguientes procesos:

Si digA = digB se realiza un contador desde 10 hasta que se rebose mostrado por el Puerto B, de 5 en 5.Si digA < digB se realizara el encendido de 1 led de uno en uno hasta lograr que todos los led estén encendidos. Hay que tomar en cuenta que los leds están colocados en el Puerto A y se debe empezar con el menos significativo.

En cualquier otra condición se debe evaluar nuevamente las dos anteriores.15. Se tienen 2 suiches que de acuerdo a las combinaciones de estos se realizaran uno de los

siguientes procesos:Si el SW1 = 1 y SW2 =0 se realiza la intermitencia de 8 leds 10 veces.Si el SW1=0 y el SW2=1 encender 8 leds de 2 en 2 de adentro hacia fuera y de afuera hacia adentro. Este proceso se debe ejecutar 5 veces.Si el SW1=0 y el SW2=0 el valor actual del puerto debe mantenerse.

Page 3: Ejercicios básicos para microconladores

Si el SW1=1 y el SW2=1 se realizara un contador de 6 en 6 hasta 3616. Se desea tomar un numero introducido por el Puerto B y uno Introducido por el Puerto C

para realizar lo siguiente: Realizar una operación NAND con ambos registros para luego realizar el intercambio de cuartetos en el resultado, donde al culminar este procedimiento se comparara el valor resultante (Llamado resultado) de la siguiente manera:

Si resultado es menor a Puerto B, se debe realizar un contador ascendente-descendente de 0 a 128 que realizara su función cada vez que se presione un pulsador colocado en RE0 para hacer un incremento o un pulsador colocado en RE1 para hacer un decremento. Cada vez que se presione el pulsador correspondiente se incrementara o excrementará solo un valor según sea el caso. Cabe destacar que en su valor mínimo al ser decrementado tomara su máximo valor, y en su valor máximo al ser incrementado tomara su mínimo valor. Muestreos por el Puerto D.

Si resultado es mayor o igual al Puerto B se realizara la multiplicación de este resultado por 4. Muestreos por el Puerto D.En cualquier otro caso se debe de volver a verificar las situaciones anteriores

17. Introduzca un número por el Puerto A y otro por el Puerto B, de 6 bits. Realice una operación lógica NOR entre los 2 números introducidos, guarde el resultado en un registro GPR y colóquelo en la posición 32h. Con el registro almacenado debe de realizar las siguientes comparaciones:

Si “GPR” = 25 Realizar un contador impar de dos (2) en dos (2) hasta 22 binario por el Puerto C.Si “GPR” >25 Decremente un contador desde este valor hasta 1. Si el resultado de la NOR es menor a 2 súmele 5.Si “GPR” < 25 Súmele al registro 25, saque el complemento a 2 al resultado y colóquelo por el Puerto C.

18. Introduzca un número por el Puerto E, cuando este número sea igual a 7 realizar las siguientes operaciones.

Tome un número que este en el Puerto A, colóquelo en un registro GPR, e inicie a partir de este valor un contador hasta que se rebose tomando en cuenta lo siguiente:

Si el contador es < 200, realice una NOR entre el Puerto B y el Puerto A, y al resultado sáquele una NAND, mostrando esto por el Puerto C.Si el contador es >= 200 realice un contador decreciente de 2 en 2 desde 30 hasta 0, mostrado por el puerto C.Si el contador se rebosa, realice un secuenciador de 8 bits de izquierda a derecha y derecha a izquierda, donde en cada secuencia solo existan 3 leds encendidos.

19. Por medio de la activación de 1 de 4 suitch, realizara lo siguiente:Si RA0=1 rota a la izquierda con solo 1 led encendido.Si RA1=1 rota a la derecha con solo 1 led encendido.Si RA2=1 rota a la izquierda dejando encendido cada led.Si RA3=1 rota a la derecha dejando encendido cada led

La muestra se realiza por el puerto B.20. Leer las tres líneas mas bajas del puerto A, que fijan el número de leds que se iluminan en

la salida. A si por ejemplo si lee el dato “xx101” (cinco) en los leds conectados al puerto B se iluminara el código “00011111” encendiéndose cinco leds.

Page 4: Ejercicios básicos para microconladores

21. leer el valor de una tecla proveniente de un teclado matricial de 4x4 para mostrarlo por el puerto C, donde esta conectado un display sin decodificador.

22. Solicitar una clave por medio de una pantalla LCD, la cual es de 2 dígitos, la cual por defecto es (12), si la clave es incorrecta sonara una alarma de 500 ms y si es correcta se mostrara un mensaje “error” en el mismo LCD.

23. Hacer un programa para 16F84 de tal manera que a través de un LCD pueda visualizarse un contador de 0 – 9 ascendente y 9 – 0 descendente.

24.

Nivel 2

1. Conteo de botellas que pasan por una cinta transportadora, Inicialmente el sistema debe poner en funcionamiento la cinta, tomando en cuenta que se provoca el incremento de un contador de 00 a 99, en dos display conectados al mismo decodificador, cada vez que pasa una botella que acciona un microsuitch colocado en RB0/INT, que causara una interrupción para realizar tal fin. Es importante mencionar que el sistema debe durar en funcionamiento 8 Horas, para lo que se simulara un tiempo de 8 minutos con la interrupción del TMR0.En este momento el sistema emitirá una alarma por 2 sg, se detendrá el motor de la cinta, para que el operador realice un mantenimiento preventivo. Cabe destacar que para que el sistema vuelva a funcionar normalmente, el operador presionara un Push Boton, lo cual accionara nuevamente el motor de la cinta y el proceso principal será retomado. Los display son multiplexados con dos transistores pnp y son de cátodo común. Además de oscilador de 10 MHz, preescalador para TMR1 a 4. Utilice para los tiempos TMR1. El microsuith esta conectado en forma activo bajo.

2. se tiene un tanque el cual se llena con una válvula de entrada y se descarga con 4 bombas que funcionan con alternancia. el proceso es el siguiente:

Se tiene una válvula de entrada la cual inicialmente debe accionarse hasta que exista alto nivel en el tanque. en este momento se debe realizar el encendido de las bombas de una en una durante 1 min c/u, con la condición que si existe bajo nivel, deben apagarse las bombas y llenar el tanque nuevamente, tomando en cuenta que la ultima bomba que estaba encendida, debe encenderse y comenzar su ciclo de tiempo nuevamente. También hay que tomar en cuenta que un operador por medio de un push botton (rb4), puede apagar la bomba que este en funcionamiento, en dicho momento se causara una interrupción por rb4-rb7 y se iniciara el encendido de la siguiente bomba.

3. Diseñe un control de nivel para un tanque. Al pulsar “INICIO”, se activa la bomba B1. La bomba permanece encendida hasta alcanzar el nivel máximo, mediante el cual se apagará. Se debe abrir la válvula de vaciado. La bomba (B1) se volverá a activar de forma automática cuando se alcance el nivel mínimo procediendo a cerrar la válvula de vaciado, hasta que alcance el nivel máximo, repitiendo el ciclo de forma automática sin necesidad de volver a pulsar “INICIO”.

Page 5: Ejercicios básicos para microconladores

4. Diseñe un control de nivel para un tanque. Se tiene un interruptor selector de “MODO” Si “MODO” es manual, las bombas se activan sin importar el nivel del tanque subterráneo. Si “MODO” es automático, la activación de las bombas dependerá de: Si el nivel del agua está por debajo del nivel mínimo, se activará la bomba 1 hasta que se alcance el nivel Máximo, y procederá a apagarse. Si el nivel del agua está por encima del nivel mínimo, pero por debajo del nivel máximo, se activará la bomba 2 hasta que se alcance el nivel Máximo y procederá a apagarse. Se debe monitorear si ha cambiado el “MODO”.Importante: si no hay agua en el tanque subterráneo, se deben apagar las dos bombas hasta que el nivel del tanque de trabajo alcance al sensor de operación.

5. Realice la automatización de la mezcladora de pinturas, mostrada en la figura siguiente, bajo la siguiente secuencia de funcionamiento:

El sistema de mezclado se inicia al pulsarse “MARCHA”, mediante el cual, se activa B1, por espacio de 10 minutos. B2, MM, VD, MA deben estar apagados. Se enciende un led verde que indica que el sistema esta en marcha.

Transcurrido este tiempo, se enciende B2. B1, MM, VD, MA deben estar apagados. B2 se mantiene encendido hasta que el sensor “Nivel alto” se activa, mediante el

cual se detiene B2, se activa MM. B1, VD, MA, se mantienen apagados.

Page 6: Ejercicios básicos para microconladores

MM se mantiene encendido por espacio de 2 minutos. B1, B2, VD, MA, se mantienen apagados. Una vez transcurrido este tiempo, se detiene MM.

Se activa VD , hasta que se activa el sensor “Nivel bajo”, mediante el cual se cierra VD y se activa MA por espacio de 7,5 minutos, reiniciándose el proceso nuevamente.

El sistema cuenta con un pulsador de “PARE”, que al activarse en cualquier momento detiene todo el proceso, apagando B1, B2, VD, MA, Y MM , activando un led rojo y apagando al led verde, indicando que existe una parada del proceso.

Para reiniciar el proceso nuevamente en donde se quedó al momento de detenerlo, se debe pulsar “REINICIO”.

6. Se desea automatizar una lavadora “CHACACHACA” bajo dos modos de lavado (uno de Lavado Rápido de 30 minutos de duración y otro de Lavado Lento de 50 minutos de duración), el sistema constará de un pulsador de “INICIO” y un interruptor selector de modo de lavado. Automatice bajo las siguientes condiciones:

Se elige entre lavado rápido ó lento Se presiona “INICIO” y realiza lo siguiente: Se llena la CHACACHACA hasta el nivel de agua máximo; lava ó “bate” por la mitad

del tiempo; se detiene; se vacía; se llena otra vez de agua; lava ó “bate” hasta que falten tres minutos; se detiene; se vacía; se llena otra vez de agua; lava ó “bate” por el resto del tiempo; se vacía nuevamente y emite una alarma sonora por espacio de 10 segundos; y se detiene a la espera de un nuevo proceso de lavado.

Page 7: Ejercicios básicos para microconladores

Si no hay agua en el depósito de agua, se detiene el lavado, se cierra la válvula de llenado y se emite una alarma sonora hasta que se solucione el problema agregando agua al depósito hasta el nivel mínimo de lavado.

ML: Motor de Lavadora. VD: Válvula de Desagüe. VLL: Válvula de Llenado. Nmínimo, Nmáximo, Nmínimo de lavado, Nivel de alarma: Sensores de nivel.

Page 8: Ejercicios básicos para microconladores