Está en la página 1de 3

MICROCONTROLADORES.

02L
LABORATORIO 3
INFORME FINAL
Cada integrante del grupo, resuelve un problema, por orden de cdigo.
Ejemplo: 20111345 resuelve la pregunta 1, 20119457 resuelve la pregunta 2 y as sucesivamente.
Puntaje:
Informe (6 puntos). Hardware y sustentacin ( 6 ptos)
El informe debe contener: Diagrama de flujo, Programa con subrutinas, observaciones, conclusiones y bibliografa.
En la sustentacin, durante el laboratorio, se pedir algunos cambios en su programa.

Problema 1
Se dispone de un circuito compuesto por 3 interruptores, 2 pulsadores y 5 diodos leds que estn conectados
al microcontrolador. Mediante los 3 interruptores (3bits) se ingresa un total de 6 nmeros que son
almacenados en una tabla que se inicia en la direccin 0x100 de la memoria SRAM. Para validar el ingreso
del primer nmero y mostrar en la salida se utiliza el pulsador P1 (Se valida al presionar y soltar) y as
sucesivamente hasta completar en la tabla los 6 nmeros. Al presionar el pulsador P2 (sin soltar) en
cualquier momento se deben mostrar en los diodos leds (D1 D2 D3 D4 D5 D6)) la suma parcial de los
nmeros ingresados y al soltarse el pulsador P2, la salida muestra el ltimo nmero ingresado. Se prende
otro diodo led (D7) cuando se termina de ingresar los 6 nmeros, con lo cual P1 ya no graba ningn nmero
y P2 siempre mostrar la suma total en los leds, con el diodo D8 encendido. Escriba un programa que
cumpla con las condiciones planteadas. Para las conexiones considerar:
Conexiones:
Pulsadores P1 y P2 conectados a: PD6, PD7
Interruptores a: PC3(MSB), PC2, PC1 (bit LSB) .
Salidas: Leds al puerto B
Ejemplo: Al usar P1, se ingresa los nmeros 09, 08, y 05, luego si se presiona P2 (sin soltarlo), se obtendr la
suma igual a 20, y al soltarlo se muestra en la salida 05.
Problema 2
Por medio de cuatro interruptores se deben ingresar 5 nmeros de 4 bits. Cada nmero ingresado (luego de
presionar y soltar el pulsador P1) debe ser validado y almacenado en un arreglo a partir de la direccin 0x80
en la memoria SRAM , mostrndose a la vez en 4 leds. Luego de ingresar el ltimo nmero (5to), se
prender adicionalmente otro LED indicador. A continuacin cada vez que se presione y suelte el pulsador
se mostrarn en los leds solo los nmeros mayores a 9 que fueron ingresados, con el LED indicador apagado.
Cuando se llegue al ltimo nmero mayor a 9 debe prenderse el LED indicador y mostrar en los otros leds
el promedio redondeado al entero ms prximo de toso los nmeros mayor a 9. A continuacin, y luego de
presionar y soltar el pulsador, una vez ms, se debe repetir el proceso descrito
Considerar:
Si al momento de mostrar no hubiese un nmero mayor a 9 deben de encenderse todos los leds.
Conexiones:
Pulsadores conectados a: PC3
Interruptores a: PD5(MSB), PD4, PD3, PD2 (bit LSB) .
Salidas: Leds al puerto B

zcucho@gmail.com

MICROCONTROLADORES. 02L

Problema 3
Se desea determinar el elemento de una secuencia de cuatro nmeros de 3 bits y mostrarlo a travs de tres
LEDs, para ello se utilizan 2 pulsadores P1 y P2. Los nmeros se ingresan al iniciar el programa usando tres
interruptores y el pulsador P1. Cada nmero se almacenar en la memoria SRAM del microcontrolador a
partir de la direccin 0x100. El nmero se establece con tres interruptores y este nmero se mostrar en
todo momento en los LEDs. Para indicar que el nmero mostrado es el que se desea almacenar en la
memoria SRAM, se utilizar el mismo pulsador. Mientras el pulsador est presionado se encender un LED
adicional a los que corresponden al nmero elegido. Cuando se suelte el pulsador, el nmero se almacenar
en la direccin SRAM correspondiente y se mostrar, a travs de los LEDs, el nmero indicado por los
interruptores. Este procedimiento se repite hasta que se ingresen cuatro nmeros en la memoria SRAM.
Una vez que se ingresen cuatro nmeros, se mostrar a travs de los LEDs el primer nmero de la secuencia.
Al presionar y soltar el mismo pulsador P1 se mostrar el siguiente nmero, si se llega al final de la
secuencia, se mostrar el primer elemento. Al presionar y soltar el otro pulsador P2, se mostrar el nmero
anterior de la secuencia, si se llega al inicio de la secuencia, se muestra el elemento final.
Conexiones:
Pulsadores a PC0 y PC1
Interruptores a: PD7(MSB), PD6, PD5, PD4 (bit LSB) .
Salidas: Leds al puerto B
IMPORTANTE:

Estudien y usen las INSTRUCCIONES DE DESPLAZAMIENTO LOGICO LSL (desplazamiento lgico a la


izquierda) y LSR (desplazamiento lgico a la derecha) para desplazamiento de bits.

En todas las lecturas con interruptores se deben utilizar las resistencias pull up internas de cada
puerto, es decir estas resistencias se activan por software.

Bellavista, 19 de setiembre de 2015

Consultas: zcucho@gmail.com

zcucho@gmail.com

MICROCONTROLADORES. 02L

Clase Subrutinas - Pilas


Programa ejemplo:
Leer un nmero determinado por 3 interruptores conectados a PD7,PD6 y PD5, mediante un pulsador
conectado a PB5.
Activar las 3 resistencias pull up del puerto D, que corresponde a los interruptores, para ello se utiliza el
registro DDRD y el registro PORTD
Descripcion:
; **************************************************************************
; Tres interruptores conectados a PD7,PD6 y PD5 que forman un numero
; Al presionar y soltar el pulsador conectado a PB5, se lee el numero
; El nmero se graba en la direccion 0x200
; Autor: Zenn Cucho
; *************************************************************************
.DSEG
.ORG 0X200
numero: .byte 1
.CSEG
.ORG 0X00
; Programa principal
LDI R16,High(RAMEND) ;Configuracin de la pila
OUT SPH,R16
LDI R16,LOW(RAMEND)
OUT SPL,R16
RCALL Configura_Puertos ;
;**********************************************************************
;Espera que presione y suelte el pulsador en PB5
; uso de la instruccin sbis y sbic
Presionar:
SBIS PINB,5
RJMP Presionar
Soltar:
SBIC PINB,5
rjmp Soltar
;**********************************************************************
; Lectura del numero
IN R18,PIND ; lee todo el puerto
ANDI R18,0XE0 ; se filtra los 3 bits mas significativos
LSR R18 ; se desplaza 5 veces a la derecha para obtener el numero
LSR R18
LSR R18
LSR R18
LSR R18 ; se obtiene el numero
sts numero,R18 ; se graba el numero en la direccion 0x200 de SRAM
rjmp Presionar ; para volver a leer otro numero
;***************************************************************************
; SUBRUTINA PARA CONFIGURAR PUERTOS
; NO TIENE PARAMETROS DE SALIDA
Configura_Puertos:
LDI R16, 0X00; Puerto D como entrada
OUT DDRD, R16
LDI R16,0XE0; Para activar 3 resistencias pull up
OUT PORTD,R16 ; se utiliza el registro PORTD
RET
;*****************************************************************************

zcucho@gmail.com

También podría gustarte