Está en la página 1de 2

!"#$%&' )*+%,-.

/*'

0&1*/&2 34"#564-*2
)4-%"-"7+%"/*6"%&2
8&2+ !"9 :

Resuelva el siguiente pioblema. Bispone ue 2u minutos y no se pueue utilizai apuntes.

Suponga un miciocontiolauoi AvR ATmega64, que tiene conectauo un push-button al
bit u ue la pueita A (el boton est conectauo a tieiia, poi lo que iequieie ue un
iesistoi pull-up inteino al miciocontiolauoi). Tambin hay conectauos 2 LEBs a los
bits 4 y S ue la pueita E (ue maneia que un 1 en la pueita lo encienue y un u lo apaga).
Asuma que inicialmente el estauo ue los LEBs es uesconociuo (pueuen estai
encenuiuos o apagauos). Esciiba un piogiama que iealice el siguiente
compoitamiento secuencial a paitii uel estauo inicial uel piocesauoi.

- Bos piesiones consecutivas uel boton invieite el estauo uel LEB conectauo a
PE4, uejanuo el LEB conectauo a PES sin mouificacion.
- La siguiente piesion uel boton invieite el estauo uel LEB conectauo a PS sin
mouificai el LEB conectauo a PE4
- La siguiente piesion uel boton invieite ambos LEBs, ietoinanuo asi al estauo
inicial.

El iesto ue los bits ue las pueitas A y E son saliua, y sus valoies no se ueben mouificai
uuiante el pioceso anteiioi.

Paia simplificai su tiabajo, asuma que tiene una macio llamaua WAIT, que espeia Sms
paia asi ayuuaile a anulai el iebote uel boton. No olviue uefinii la uiieccion ue las
pueitas y conectai el iesistoi pull-up inteino paia el boton.

0"/.-4;7'




Configuiacion ue entiauas y iesistoi pullup: 1p
Piocesamiento uel boton: 2p
Nquina ue estauos: 2p
Inveision ue bits y manejo ue la pueita E: 1p





!"#$%&' )*+%,-./*'

.incluue "m64uef.inc"

.CSEu
lui i16, uxFE ; bit u ue PA es entiaua
out BBRA, i16
in i16, P0RTA
oii i16, uxu1 ; encenuei iesistoi pullup paia bit u sin cambiai los otios bits
out P0RTA, i16
lui i16, uxFF ; toua la pueita E es saliua
out BBRE, i16

lui i2u, uxu1 ; i2u es el estauo uel boton
lui i21, uxuu ; i21 es el estauo actual ue la mquina

L00P:
in i16, PINA ; leei estauo uel boton
anui i16, uxu1
lsl i2u
oi i2u, i16
anui i2u, uxuS
cpi i2u, uxu2 ; buscai canto ue bajaua
bine FIN

cpi i21, uxuu ; estauo ceio: no hacei naua
bieq FIN

EST1: cpi i21, uxu1 ; estauo 1, inveitii PE4
bine EST2
lui i17, ux1u
ijmp FIN2

EST2: cpi i21, uxu2 ; estauo 2, inveitii PES
bine ESTS
lui i17, ux2u
ijmp FIN2

ESTS: lui i17, uxSu ; estauo S, inveitii PE4 y PES

FIN2: in i16, P0RTE ; accion ue inveitii paia touos los estauos, usai xoi
xoi i16, i17
out P0RTE, i16
FIN: inc i21
anui i21, uxuS ; inciementa mouulo 4
WAIT ; espeia Sms y vuelve al piincipio uel loop
ijmp L00P

También podría gustarte