[go: up one dir, main page]

0% encontró este documento útil (0 votos)
254 vistas18 páginas

Pract 2.3

El documento presenta el código para simular el juego de Conecta 4 utilizando un microcontrolador PIC16F887. El código permite que dos jugadores jueguen alternándose turnos y dejando caer fichas de forma animada a través de las diferentes columnas del tablero, las cuales están representadas por 8 botones. El programa cuenta con matrices de LEDs para cada jugador que muestran la caída y posición de las fichas colocadas.

Cargado por

Angel Vidals
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
254 vistas18 páginas

Pract 2.3

El documento presenta el código para simular el juego de Conecta 4 utilizando un microcontrolador PIC16F887. El código permite que dos jugadores jueguen alternándose turnos y dejando caer fichas de forma animada a través de las diferentes columnas del tablero, las cuales están representadas por 8 botones. El programa cuenta con matrices de LEDs para cada jugador que muestran la caída y posición de las fichas colocadas.

Cargado por

Angel Vidals
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 18

INSTITUTO POLITÉCNICO NACIONAL

Unidad Profesional Interdisciplinaria en Ingeniería y


Tecnologías Avanzadas

Programa académico: Ingeniería Mecatrónica

Unidad de aprendizaje:
Microcontroladores, Microprocesadores e Interfaz

Práctica 2.3: Conecta 4

Alumnos:
Cervantes Rodríguez Diego
Fernández Olvera Linda María
Gaitán Villegas Rodrigo Alejandro
Vidals Vazquez Ángel David

Profesor: David Arturo Gutiérrez Begovich

Grupo: 2MV1

Fecha de entrega: 08 de enero del 2021


Enlace del video
https://youtu.be/0fLDIJnraZQ

Código

/************************************************************************************

;* INSTITUTO POLITECNICO NACIONAL *

;* Unidad Profesional Iterdisciplinaria *

;* de Ingenieria y Tecnologias Avanzadas *

;* *

;* CALCULO DE VARIABLES *

;* *

;* Cervantes Rodríguez Diego *

;* Fernández Olvera Linda María *

;* Vidals Vazquez Angel David *

;* Gaitán Villegas Rodrigo Alejandro *

;* *

;* M. en C. DAVID ARTURO GUITIERREZ BEGOVICH *

;* *

;* FECHA: 26 DE NOVIEMBRE DE 2020 *

;* *

;*PARA: MICROCONTROLADOR PIC16F887 *

;*DESCRIPCION DEL EJERCICIO:SE REALIZO UN CODIGO EL CUAL PERMITE SIMULAR EL JUEGO *

;*DE CONECTA 4 PARA DOS PERSONAS, SE CUENTAN CON 8 BOTONES DIFERENTES PARA USAR *

;*EL TABLERO CADA BOTON REPRESENTA UNA COLUMNA QUE PERMITE SOLTAR LA FICHA DE FORMA *

;*ANIMADA EL JUEGO CONSISTE EN DOS MATRICES DE LEDS, UNA PARA CADA JUGADOR QUE *

;*PERMITIRA OBSERVAR LA CAIDA Y FICHAS DE CADA JUGADOR *

;************************************************************************************

;-----------------------------------JUGADOR 1----------------------
;-FILAS VAN DE 0X20-0X27

;-CONTADORES DE 0X20-0X27

;-----------------------------------JUGADOR 2----------------------

;FILAS VAN DE 0X30-0X37

;-CONTADORES DE 0X50-0X57

;------------------------------------------------------------------

INCLUDE <E:\Usuarios\Videos\Radeon
ReLive\micro\EJERCICIOS\ENCABEZADO.asm> ;B1. PA,PB Y PE=DIGITALES.

CLRF TRISA

CLRF TRISB

CLRF TRISD

CLRF STATUS ;B0

MOVLW .1

MOVWF 0X28

MOVLW .8

MOVWF 0X40

MOVWF 0X41

MOVWF 0X42

MOVWF 0X43

MOVWF 0X44

MOVWF 0X45

MOVWF 0X46

MOVWF 0X47

CLRF 0X20

CLRF 0X21

CLRF 0X22

CLRF 0X23

CLRF 0X24
CLRF 0X25

CLRF 0X26

CLRF 0X27

CLRF 0X30

CLRF 0X31

CLRF 0X32

CLRF 0X33

CLRF 0X34

CLRF 0X35

CLRF 0X36

CLRF 0X37

;************************************BOTONES*******************************

BOTONES: MOVLW .1

MOVWF 0X48

BTFSC PORTC,0 ; PC.0=0?

GOTO COLUM0

BTFSC PORTC,1 ; PC.1=0?

GOTO COLUM1

BTFSC PORTC,2 ; PC.2=0?

GOTO COLUM2

BTFSC PORTC,3 ; PC.3=0?

GOTO COLUM3

BTFSC PORTC,4 ; PC.4=0?

GOTO COLUM4

BTFSC PORTC,5 ; PC.5=0?

GOTO COLUM5

BTFSC PORTC,6 ; PC.6=0?

GOTO COLUM6

CALL MOSTRAR
GOTO BOTONES

GOTO $

;---------------------------------COLUMNA 0--------------------------------------

COLUMNA_0: CALL REBOTE

BTFSC PORTC,0 ; SALE DEL REBOTE AL SOLTAR EL


BOTON

GOTO $-1

CALL REBOTE

MOVF 0X40,W

MOVWF 0X50 ;CONTADOR DE LA FILA

BTFSC 0X28,0 ;J1 O J2

GOTO COL0_J1

GOTO COL0_J2

;COLUMNA 0 JUGADOOR 1

COL0_J1: CLRF 0X28 ;TURNO J2

MOVF 0X20,W

MOVWF 0X49 ;COLOCA EL REGISTRO PARA FILA DE J1

MOVLW 0X20

MOVWF FSR

CALL JUGADOR

MOVF 0X50,W ;ACTUALIZA EL CONTADOR

MOVWF 0X40

GOTO BOTONES

;COLUMNA 0 JUGADOOR 2

COL0_J2: MOVLW 0X01

MOVWF 0X28 ;TURNO J1


MOVF 0X30,W

MOVWF 0X49 ;COLOCA EL REGISTRO PARA FJ2

MOVLW 0X30

MOVWF FSR

CALL JUGADOR

MOVF 0X50,W ;ACTUALIZA EL CONTADOR

MOVWF 0X40

GOTO BOTONES

;ESTO LO HACE PARA CADA COLUMNA, VA TURNANDO EL CONTADOR ASI COMO EL REGISTRO PARA SIMULAR
LOS TURNOS

; SE REPITE EL PROCESO PARA LAS SIGUIENTES COLUMNAS

;---------------------------------COLUMNA 1--------------------------------------

COLUMNA_1: CALL REBOTE

BTFSC PORTC,1

GOTO $-1

CALL REBOTE

MOVF 0X41,W

MOVWF 0X50

BTFSC 0X28,0

GOTO COL1_J1

GOTO COL1_J2

COL1_J1: CLRF 0X28

MOVF 0X21,W

MOVWF 0X49

MOVLW 0X21
MOVWF FSR

CALL JUGADOR

MOVF 0X50,W

MOVWF 0X41

GOTO BOTONES

COL1_J2: MOVLW 0X01

MOVWF 0X28

MOVF 0X31,W

MOVWF 0X49

MOVLW 0X31

MOVWF FSR

CALL JUGADOR

MOVF 0X50,W

MOVWF 0X41

GOTO BOTONES

;---------------------------------COLUMNA 2--------------------------------------

COLUMNA_2: CALL REBOTE

BTFSC PORTC,2

GOTO $-1

CALL REBOTE

MOVF 0X42,W

MOVWF 0X50

BTFSC 0X28,0

GOTO COL2_J1

GOTO COL2_J2

COL2_J1: CLRF 0X28


MOVF 0X22,W

MOVWF 0X49

MOVLW 0X22

MOVWF FSR

CALL JUGADOR

MOVF 0X50,W

MOVWF 0X42

GOTO BOTONES

COL2_J2: MOVLW 0X01

MOVWF 0X28

MOVF 0X32,W

MOVWF 0X49

MOVLW 0X32

MOVWF FSR

CALL JUGADOR

MOVF 0X50,W

MOVWF 0X42

GOTO BOTONES

;---------------------------------COLUMNA 3--------------------------------------

COLUMNA_3: CALL REBOTE

BTFSC PORTC,3

GOTO $-1

CALL REBOTE

MOVF 0X43,W

MOVWF 0X50
BTFSC 0X28,0

GOTO COL3_J1

GOTO COL3_J2

COL3_J1: CLRF 0X28

MOVF 0X23,W

MOVWF 0X49

MOVLW 0X23

MOVWF FSR

CALL JUGADOR

MOVF 0X50,W

MOVWF 0X43

GOTO BOTONES

COL3_J2: MOVLW 0X01

MOVWF 0X28

MOVF 0X33,W

MOVWF 0X49

MOVLW 0X33

MOVWF FSR

CALL JUGADOR

MOVF 0X50,W

MOVWF 0X43

GOTO BOTONES

;---------------------------------COLUMNA 4--------------------------------------

COLUMNA_4: CALL REBOTE

BTFSC PORTC,4
GOTO $-1

CALL REBOTE

MOVF 0X44,W

MOVWF 0X50

BTFSC 0X28,0

GOTO COL4_J1

GOTO COL4_J2

COL4_J1: CLRF 0X28

MOVF 0X24,W

MOVWF 0X49

MOVLW 0X24

MOVWF FSR

CALL JUGADOR

MOVF 0X50,W

MOVWF 0X44

GOTO BOTONES

COL4_J2: MOVLW 0X01

MOVWF 0X28

MOVF 0X34,W

MOVWF 0X49

MOVLW 0X34

MOVWF FSR

CALL JUGADOR

MOVF 0X50,W
MOVWF 0X44

GOTO BOTONES

;---------------------------------COLUMNA 5--------------------------------------

COLUMNA_5: CALL REBOTE

BTFSC PORTC,5

GOTO $-1

CALL REBOTE

MOVF 0X45,W

MOVWF 0X50

BTFSC 0X28,0

GOTO COL5_J1

GOTO COL5_J2

COL5_J1: CLRF 0X28

MOVF 0X25,W

MOVWF 0X49

MOVLW 0X25

MOVWF FSR

CALL JUGADOR

MOVF 0X50,W

MOVWF 0X45

GOTO BOTONES

COL5_J2: MOVLW 0X01

MOVWF 0X28

MOVF 0X35,W
MOVWF 0X49

MOVLW 0X35

MOVWF FSR

CALL JUGADOR

MOVF 0X50,W

MOVWF 0X45

GOTO BOTONES

;---------------------------------COLUMNA 6--------------------------------------

COLUMNA_6: CALL REBOTE

BTFSC PORTC,6

GOTO $-1

CALL REBOTE

MOVF 0X46,W

MOVWF 0X50

BTFSC 0X28,0

GOTO COL6_J1

GOTO COL6_J2

COL6_J1: CLRF 0X28

MOVF 0X26,W

MOVWF 0X49

MOVLW 0X26

MOVWF FSR

CALL JUGADOR

MOVF 0X50,W

MOVWF 0X46

GOTO BOTONES
COL6_J2: MOVLW 0X01

MOVWF 0X28

MOVF 0X36,W

MOVWF 0X49

MOVLW 0X36

MOVWF FSR

CALL JUGADOR

MOVF 0X50,W

MOVWF 0X46

GOTO BOTONES

;---------------------------------COLUMNA 7--------------------------------------

COLUMNA_7: CALL REBOTE

BTFSC PORTC,7

GOTO $-1

CALL REBOTE

MOVF 0X47,W

MOVWF 0X50

BTFSC 0X28,0

GOTO COL7_J1

GOTO COL7_J2

COL7_J1: CLRF 0X28

MOVF 0X27,W

MOVWF 0X49
MOVLW 0X27

MOVWF FSR

CALL JUGADOR

MOVF 0X50,W

MOVWF 0X47

GOTO BOTONES

COL7_J2: MOVLW 0X01

MOVWF 0X28

MOVF 0X37,W

MOVWF 0X49

MOVLW 0X37

MOVWF FSR

CALL JUGADOR

MOVF 0X50,W

MOVWF 0X47

GOTO BOTONES

;************************MOSTRAR EN MATRIZ**************************************

;SE MUESTRA EL EFECTO DE LA CAIDA DE LAS FICHAS EN LAS MATRICES, CON EL TIEMPO DETERMINADO
DE 300MS PARA CADA COLUMNA

MOSTRAR MOVLW 0XFE ;COLUMNA 0

MOVWF PORTD

MOVF 0X20,W

MOVWF PORTA

MOVF 0X30,W

MOVWF PORTB
CALL ST300MS

MOVLW 0XFD ;COLUMNA 1

MOVWF PORTD

MOVF 0X21,W

MOVWF PORTA

MOVF 0X31,W

MOVWF PORTB

CALL ST300MS

MOVLW 0XFB ;COLUMNA 2

MOVWF PORTD

MOVF 0X22,W

MOVWF PORTA

MOVF 0X32,W

MOVWF PORTB

CALL ST300MS

MOVLW 0XF7 ;COLUMNA3

MOVWF PORTD

MOVF 0X23,W

MOVWF PORTA

MOVF 0X33,W

MOVWF PORTB

CALL ST300MS

MOVLW 0XEF ;COLUMNA4

MOVWF PORTD

MOVF 0X24,W
MOVWF PORTA

MOVF 0X34,W

MOVWF PORTB

CALL ST300MS

MOVLW 0XDF ;COLUMNA5

MOVWF PORTD

MOVF 0X25,W

MOVWF PORTA

MOVF 0X35,W

MOVWF PORTB

CALL ST300MS

MOVLW 0XBF ;COLUMNA6

MOVWF PORTD

MOVF 0X26,W

MOVWF PORTA

MOVF 0X36,W

MOVWF PORTB

CALL ST300MS

MOVLW 0X7F ;COLUMNA7

MOVWF PORTD

MOVF 0X27,W

MOVWF PORTA

MOVF 0X37,W

MOVWF PORTB

CALL ST300MS
DECFSZ 0X48,F

GOTO MOSTRAR

RETURN

;-------------------------------DECREMENTOS ----------------------------------------

;SE DECREMENTA EL REGISTRO DE LLENADO DE LAS COLUMNAS Y FILAS, ADEMAS SE VA ACTUALIZANDO


CONFORME PASAN LOS TURNOS

JUGADOR: MOVF 0X50,W ;LEE EL CONTADOR DE COLUMNA 1

MOVWF 0X29 ;VA A REG PROPOSITO GENERAL

DECF 0X50 ;SE DECREMENTA

CLRF 0X38

BSF STATUS,C

VJ1: RRF 0X38

MOVF 0X38,W

IORWF 0X49,W

MOVWF INDF ;SE COLOCA EN 0X20

MOVLW .18

MOVWF 0X48

CALL MOSTRAR

DECFSZ 0X29

GOTO VJ1

RETURN

;-------------------------------SUBTIEMPOS-----------------------------------------

;SECCION DE LOS TIEMPOS PARA UNA SUBRUTINA DE 300MS

ST300MS: MOVLW .3

MOVWF 0X61
MOVLW .98

MOVWF 0X62

CALL ST2V

RETURN

;-------------------------------REBOTE-----------------------------------------

REBOTE: MOVLW .88

MOVWF 0X61

MOVLW .35

MOVWF 0X62

CALL ST2V

RETURN

INCLUDE <E:\Usuarios\Videos\Radeon
ReLive\micro\EJERCICIOS\SUBTIEMPO.asm>

END

También podría gustarte