Vous êtes sur la page 1sur 1

SISTEMAS ELECTRNICOS DIGITALES

Problema (60%)

Junio 2007

Problema del PCC16F88 (adaptado)


Se pretende medir el tiempo de reaccin de dos personas utilizando el PCC16F88. Las entradas/salidas son las siguientes:
o

PJ: Pulsador Jugar. Es activo a nivel bajo (en reposo a 1) y lo pulsa la persona que dirige el juego.

PF1, PF2: PF1 (Pulsador Fin 1) lo pulsa el jugador 1 y PF2 lo pulsa el jugador 2. Ambos son activos a
nivel alto (en reposo generan salida 0) y se deben pulsar una vez que se ha encendido el led LYA.

LPR, LYA: indicadores luminosos que se encienden mediante un '1' lgico, mantenindose apagados en
caso contrario. LPR informa a los jugadores que deben estar preparados y LYA indica el momento a partir
del cual pueden pulsar sus respectivos botones.

LTR1, LTR2: Leds que se encienden cuando el micro pone un 1 lgico en su salida. Indica que el
jugador correspondiente ha pulsado su botn mientras estaba encendido el led LPR (antes de que se
iluminar el led LYA).

LCD. Seis pines de salida para gestionarlo.

ENDIF
ENDIF
GOTO BUCLE

GOTO BUCLE

ENDIF
ELIF LYA=1 THEN
cuenta= cuenta+1
IF cuenta=22 THEN jugador_1=1
ENDIF
GOTO BUCLE

jugador_2 = 1
ENDIF
ENDIF
GOTO BUCLE

*ENDSCRIPT
*ENDSCRIPT

LTR2

LCD1

330

D4

D3

LM016L

LTR2

LTR1

PJ

PJ
SCRIPT=G1TR2

LPR

LPR
SCRIPT=G1TR2
LYA
SCRIPT=G1TR2

LYA

RA0
RA1
RA2
RA3

7
8
9
10
11
12
13
14

D0
D1
D2
D3
D4
D5
D6
D7

RS
RW
E
4
5
6

SW -DPST

GANA2-PIERDE1
330

VSS
VDD
VEE

jugador_2
SCRIPT=G2P1

PF2

LTR1

*ENDSCRIPT

1
2
3

jugador_1
SCRIPT=G2P1

PF1
*ENDSCRIPT

SW3
LYA

U1
16
15
RESET 4

R1
10k

S1

LPR

PF1

RA7/OSC1/CLKIN
RA0/AN0
RA6/OSC2/CLKOUT
RA1/AN1
RA2/AN2/CVREF/VREFRA5/MCLR RA3/AN3/C1OUT/VREF+
RA4/AN4/T0CKI/C2OUT
RB0/INT/CCP1
RB1/SDI/SDA
RB2/SDO/RX/DT
RB3/CCP1
RB4/SCK/SCL
RB5/SS/TX/CK
RB6/AN5/T1OSO/T1CKI
RB7/AN6/T1OSI

17
18
1
2
3

RA0
RA1
RA2
RA3
PJ

6
7
8
9
10
11
12
13

LTR1
LTR2
LPR
LYA

jugador_2
SCRIPT=G1TR2

PF2
330

SW -DPST

330

10K

D1

GANA1-TRAMPA2

PF1

PF2

PJ

jugador_1
SCRIPT=G1TR2

D2

PF2

PJ

PJ
SCRIPT=TR1TR2

LPR

LPR
SCRIPT=TR1TR2

PF1
LYA

LPR

S1
10K

PF1
PF2

PIC16F88
PROGRAM=reflejos.COF
CLOCK=8MHz

SW4

10K
PF1

jugador_1
SCRIPT=TR1TR2

jugador_2
SCRIPT=TR1TR2

PF2
SW -DPST

TRAMPA1-TRAMPA2

El sistema debe funcionar de acuerdo con las siguientes especificaciones:


En estado de reposo, todos los indicadores luminosos estn apagados, y en los visualizadores debe mostrarse el tiempo de
reaccin medido en la ltima prueba o una invitacin a comenzar el juego.
Al pulsar el botn de JUGAR (PJ) se enciende el indicador de PREPARADO (LPR), y el LCD se borra completamente.
Despus de la activacin de PREPARADO (LPR), pasar un tiempo aleatorio entre 0,25 y 3,7 5 segundos (este tiempo no
es crtico), tras el cual debe encenderse el indicador de LYA.
Los jugadores deben pulsar el botn FIN de parada- en cuanto vea la luz del indicador LYA. El tiempo transcurrido entre la
activacin de LYA y la pulsacin de FIN se mostrar en el LCD en centsimas de segundos (dos dgitos). La lnea superior
muestra el resultado del jugador 1 y en la lnea inferior el resultado del jugador 2.
Si se oprime el pulsador FIN (PFx) antes de que se encienda LYA, se indicar mediante el indicador TRAMPA (LTRx). El
sistema informar que gana el otro jugador (salvo que ste tambin haga trampa).
Si, transcurrido un segundo, un jugador no ha pulsado el botn FIN (PFx), la cuenta se saturar al valor 99 que ser el que
muestre para dicho jugador.
Se utilizar una interrupcin que avise cada centsima de segundo.
Se Pide:
1. Conexin de las seales de entrada y salida al PIC16F88, as como las variable globales utilizadas
2. Diagrama de flujo de la interrupcin que avisa cada centsima de segundo. Esta rutina, adems del cdigo especfico
para la temporizacin, podr incluir cdigo adicional para cualquier tarea relacionada con el mismo.
3. Diseo de la espera aleatoria en lenguaje C. El sistema leer los cuatro bits menos significativos del registro TMR2 en el
momento en que se pulsa INICIO, y hacer un retardo proporcional a dicho valor (p.ej: para %0001 -> 0,25 segs. ... y para
%1111 -> 3,7 5 seg. Si fuera %0000 se toma el valor %0001).
4. Diseo de la deteccin de la pulsacin por parte de los jugadores en lenguaje C.
6. Diagrama de estados de todo el sistema y el diagrama de flujo de los estados.

Vous aimerez peut-être aussi