Escolar Documentos
Profissional Documentos
Cultura Documentos
RESUMEN:
Este proyecto pretende aplicar los
conocimientos
aprendidos en taller y tambin de los cursos
dispositivos electrnicos,
microprocesadores, circuitos digitales,
circuitos elctricos, programacin. El
proyecto est basado en el juego Simon Dice
el cual trata de reproducir una secuencia
aleatoria de colores apretando las teclas
correspondientes de manera incremental.
Si la secuencia es correcta se prendera el
led color verde, caso contrario, se prendera
el led color rojo indicando que es incorrecto.
Un display indicara cuantas veces ya hemos
perdido.
ABSTRACT:
This project tries to apply the knowledge
learned in workshop and also of the courses
electronic devices, microprocessors, digital
circuits, electrical circuits, programming. The
project is based on the Simon Says game
which tries to play a random sequence of
colors by pressing the corresponding keys
incrementally.
If the sequence is correct will led green
color, but, the led will turn red indicating that
it is wrong.
A display will show how many times we have
INTRODUCCIN
El proyecto de este juego electrnico utiliza
un microcontrolador at89c52. Tambin
utiliza interruptores para activar los
LEDS.Para iniciar/reiniciar el juego se tendr
que pulsar el interruptor.
Luego se debe elegir una codificacin para
cada uno de los colores, y la salida debe
representar el
color presionado por el usuario.
Deber definir la forma de indicar al
microcontrolador que hay un dato valido
para leer (elegir entre
polling e interrupciones) y la forma de
enterarse que el microcontrolador ha
procesado ese datos y est listo
para recibir otro desde el pulsador (por
ejemplo usando uno de los cables del micro
destinadas
a entrada/salida).
La parte correspondiente a la salida se
deber decodificar el valor entregado por el
microcontrolador y enceder el LED
correspondiente (usar una codificacin
consistente entre los pulsadores y los
LEDs). Se deber tener en cuenta que hay
un valor especial de salida que indica que se
PROCEDIMIENTO
Basndonos en las caractersticas tcnicas
(data sheet) de los componentes,
especficamente del procesador Atmel
89C52, se realiz el software que hace de
interface entre estos componentes.
La programacin se hizo en lenguaje
assembler de acuerdo a los requerimientos
del proyecto, configurando los puertos de
entrada y salida del 89C52, de la
activacin de los pines y de la
configuracin del display 7 segmentos.
Luego de la programacin y teniendo el
cdigo respectivo se hizo la simulacin en
Proteus 8.1 (ISIS), el cual consisti en
conectar los componentes de acuerdo a la
Imagen que se muestra y hacer la
simulacin respectiva el cual nos tiene que
dar como resultado la secuencia aleatoria
de los leds.
Luego de verificar el buen funcionamiento
del en un protoboard, probando en varias
ocasiones, procedimos a llevar el diseo a
un circuito impreso el cual se realiz
tambin con Proteus (ARES).
Teniendo el circuito ya impreso en fibra de
vidrio, se procede a insertar y soldar los
componentes en la placa teniendo cuidado
de la polaridad de los componentes
(condensadores electrolticos y fuente de
alimentacin principalmente del
componente microprocesador Atmel
89C52).
Con el circuito ya armado se procede a su
prueba final el cual nos permiti observar
que hubo una realizacin exitosa.
Se utiliz una fuente de voltaje digital el
cual nos garantiz un voltaje de 5 voltios
en continua en su salida.
APLICACIONES
;
=======================
=======================
======================
; Main.asm file generated by New
Project wizard
;
; Created: mi may 10 2015
; Processor: 89C52
; Compiler: ASEM-52 (Proteus)
;
=======================
=======================
======================
$NOMOD51
$INCLUDE (8951.MCU)
;
=======================
=======================
======================
; VARIABLES
;
=======================
=======================
======================
CJNE
MOV
JMP
START2:
JNB
MOV
CLR
ESPERA1:
CPL
CALL
JNB
JNB
INC
MOV
CJNE
MOV
JMP
START3:
JNB
MOV
CLR
ESPERA2:
CPL
CALL
JNB
JNB
INC
MOV
CJNE
MOV
JMP
A,SECUENCIA,ESPERA
SECUENCIA,#0
ESPERA
P3.3,START2
P3,#0FFH
P3.1
P0.4
TIEMPO500MS
P2.4,NIVEL2
P3.3,START3
SECUENCIA
A,#5
A,SECUENCIA,ESPERA1
SECUENCIA,#0
ESPERA1
P3.3,START3
P3,#0FFH
P3.2
P0.4
TIEMPO500MS
P2.4,NIVEL3
P3.3,START
SECUENCIA
A,#5
A,SECUENCIA,ESPERA2
SECUENCIA,#0
ESPERA2
NIVEL1:
CALL GUARDAR
CALL DISPLAY
MOV R0,#40H
NIVEL11:
CALL LEDS1
CALL COMPROBAR1
CLR
P0.5
CALL TIEMPO1S
SETB P0.5
INC R0
MOV A,R0
SUBB A,#40H
CJNE A,#6D,NIVEL11
CLR P3.1
SETB P3.0
JMP NIVEL22
NIVEL2:
CALL GUARDAR
CALL DISPLAY
MOV
R0,#46H
NIVEL22:
CALL LEDS2
CALL COMPROBAR2
CLR
P0.5
CALL TIEMPO1S
SETB P0.5
INC R0
MOV A,R0
SUBB A,#46H
CJNE A,#6D,NIVEL22
CLR P3.2
SETB P3.1
JMP NIVEL33
NIVEL3:
CALL GUARDAR
CALL DISPLAY
MOV R0,#4BH
NIVEL33:
CALL LEDS3
CALL COMPROBAR3
CLR
P0.5
CALL TIEMPO1S
SETB P0.5
INC R0
MOV A,R0
SUBB A,#4BH
CJNE A,#6D,NIVEL33
MOV P0,#0
CALL TIEMPO1S
MOV P0,#0FFH
CALL TIEMPO1S
MOV P0,#0
CALL TIEMPO1S
MOV P0,#0FFH
JMP INICIO
LEDS1:
MOV R1,#3FH
LEDS11:
INC R1
MOV P0,@R1
CALL
MOV
CALL
MOV
MOV
CJNE
RET
LEDS2:
LEDS22:
MOV
CALL
MOV
CALL
MOV
MOV
CJNE
RET
LEDS3:
LEDS33:
MOV
CALL
MOV
CALL
MOV
MOV
CJNE
RET
TECLA:
JNB
JNB
JNB
JNB
JMP
S1:
MOV
MOV
MOV
S2: CJNE
MOV
MOV
RET
TIEMPO1S
P0,#0FFH
TIEMPO1S
AUX,R0
A,R1
A,AUX,LEDS11
MOV R1,#45H
INC R1
P0,@R1
TIEMPO500MS
P0,#0FFH
TIEMPO500MS
AUX,R0
A,R1
A,AUX,LEDS22
MOV R1,#4AH
INC R1
P0,@R1
TIEMPO300MS
P0,#0FFH
TIEMPO300MS
AUX,R0
A,R1
A,AUX,LEDS33
P2.0,S1
P2.1,S1
P2.2,S1
P2.3,S1
TECLA
P0,P2
B,P2
A,#0FFH
A,P2,S2
A,B
P0,P2
COMPROBAR1:
MOV R1,#3FH
COMPR1: INC R1
CALL TECLA
MOV
CJNE
MOV
MOV
CJNE
RET
PERDIO1:
INC
MOV
CJNE
JMP
SSS1:
CLR
CALL
SETB
CALL
INC
MOV
CJNE
MOV
ss1:
MOV
call
MOV
JMP
PERDIO2:
INC
MOV
CJNE
JMP
SSS2:
CLR
CALL
SETB
CALL
INC
MOV
CJNE
MOV
ss2:
MOV
call
MOV
JMP
PERDIO3:
INC
MOV
AUX,@R1
A,AUX,PERDIO1
AUX,R0
A,R1
A,AUX,COMPR1
CJNE A,#4,SSS3
JMP INICIO
SSS3:
CLR
CALL
SETB
CALL
INC
MOV
CJNE
MOV
CONTADOR
A,CONTADOR
A,#4,SSS1
INICIO
P0.6
TIEMPO1S
P0.6
DISPLAY
SEC
A,#5
A,SEC,ss3
SEC,#0
ss3:
P0.6
TIEMPO1S
P0.6
DISPLAY
SEC
A,#5D
A,SEC,ss1
SEC,#0
R0,#40H
guardar
R0,#40H
NIVEL11
CONTADOR
A,CONTADOR
A,#4,SSS2
INICIO
P0.6
TIEMPO1S
P0.6
DISPLAY
SEC
A,#5
A,SEC,ss2
SEC,#0
R0,#40H
guardar
R0,#46H
NIVEL22
CONTADOR
A,CONTADOR
MOV
R0,#40H
call guardar
MOV
R0,#4BH
JMP NIVEL33
DISPLAY:
MOV DPTR,#TABLA
MOV A,CONTADOR
MOVC
A,@A+DPTR
MOV P1,A
RET
TABLA:
DB 01000000B ;0
DB 01111001B ;1
DB 00100100B ;2
DB 00110000B ;3
DB 00011001B ;4
DB 00010010B ;5
DB 00000010B ;6
DB 01111000B ;7
DB 00000000B ;8
DB 00010000B ;9
COMPROBAR2:
MOV R1,#45H
COMPR2: INC R1
CALL TECLA
MOV AUX,@R1
CJNE A,AUX,PERDIO2
MOV AUX,R0
MOV A,R1
CJNE A,AUX,COMPR2
RET
COMPROBAR3:
MOV R1,#4AH
COMPR3:
CALL
MOV
CJNE
MOV
MOV
CJNE
RET
INC R1
TECLA
AUX,@R1
A,AUX,PERDIO3
AUX,R0
A,R1
A,AUX,COMPR3
DD2:
CJNE A,#2,DD3
MOV DPTR,#SECUENCIA3
JMP GUARDAR1
DD3:
CJNE A,#3,DD4
MOV DPTR,#SECUENCIA4
JMP GUARDAR1
DD4:
MOV DPTR,#SECUENCIA5
TIEMPO1S:
MOV
RE3: MOV
RE2: MOV
RE1: DJNZ
DJNZ
DJNZ
RET
R7,#36
R6,#50
R5,#254
R5,RE1
R6,RE2
R7,RE3
TIEMPO500MS:
MOV R7,#10
RE33:MOV R6,#50
RE22:MOV R5,#254
RE11:DJNZ R5,RE11
DJNZ R6,RE22
DJNZ R7,RE33
RET
;1 seg.
;500 Mseg.
TIEMPO300MS:
MOV R7,#5
;300 Mseg.
RE333:
MOV R6,#50
RE222:
MOV R5,#254
RE111:
DJNZ R5,RE111
DJNZ R6,RE222
DJNZ R7,RE333
RET
GUARDAR:
MOV
CJNE
MOV
JMP
DD1:
CJNE
MOV
JMP
A,SEC
A,#0,DD1
DPTR,#SECUENCIA1
GUARDAR1
A,#1,DD2
DPTR,#SECUENCIA2
GUARDAR1
GUARDAR1:
MOV SECUENCIA,#18D
MOV R0,#40H
LOOP1:
MOV A,#0
MOVC
A,@A+DPTR
CJNE A,#1,DD5
MOV @R0,#11111110B
JMP SIGUIENTE
DD5:CJNE A,#2,DD6
MOV @R0,#11111101B
JMP SIGUIENTE
DD6:CJNE A,#3,DD7
MOV @R0,#11111011B
JMP SIGUIENTE
DD7:MOV @R0,#11110111B
SIGUIENTE:
INC DPTR
INC R0
DJNZ SECUENCIA,LOOP1
RET
Loop:
jmp Loop
SECUENCIA1:
DB
1,2,3,1,4,3,2,4,1,3,4,2,4,1,3,3,2,4
SECUENCIA2:
DB
2,1,4,2,4,2,4,2,3,2,4,1,3,1,1,4,3,2
SECUENCIA3:
DB
4,2,1,4,2,1,3,1,1,3,2,4,2,2,3,1,4,2
SECUENCIA4:
DB
1,3,1,3,4,2,1,3,2,4,4,2,1,2,1,3,2,1
SECUENCIA5:
DB
3,2,3,1,4,3,2,3,1,2,1,3,4,2,1,1,2,4
;
=======================
=======================
======================
END
(S/5.00)
1 zocalo
(S/4.00)
1 display 7 segmentos
(S/3.00)
1 cristal 11.056mhz
(S/6.00)
4 Pulsadores para PCB de dos patas 4 Diodos
Leds de 3 milmetros Colores Verde, Rojo, Azul y
Amarillo
Componentes y Costos
15 resistencias 10k
(S/1.00)
4 condensadores 22Uf (S/1.00)
1 microcontrolador at89c52
(S/10.00)
1 placa
DIAGRAMA DE FLUJO
CONCLUSIONES
REFERENCIAS
http://es.slideshare.net/elson225/ssi
modice.
http://www.programmersheaven.
http://developer.intel.com/
design/mcs51/aplnots/01a01.
http://developer.intel.com/design/mc
s51/manuals/272383.htm
http://www.micromundo.com.co/rad
ares-de-velocidad
http://8051a.garciacuervo.com/Proy
ectos_AUX_SRF04.htm
http://bohr.inf.um.es/miembros/moo/
p-ult.pd