Está en la página 1de 3

DADO ELECTRÓNICO UTILIZANDO UN

MICROCONTROLADOR PIC16F877A
Christian Torres-818, Bryan Aguirre-1030, Álvaro Londo-942, Joaquín Soldado-1051
ESPOCH
RIOBAMBA – ECUADOR
christian.torres@espoch.edu.ec, bryan.aguirre@spoch.edu.ec, jsoldadog@gmail.com,
alvaro.londo@espoch.edu.ec

Resumen- Este documento presenta una breve explicación CARACTERÍSTICAS 16F877


sobre el microcontrolador PIC 16f877A utilizado para la Frecuencia máxima DX-20MHz
implementación de un dado electrónico, visualizado en un
display de 7 segmentos. Así como su algoritmo y diseño del Memoria de programa flash 8KB
programa en lenguaje ensamblador que cumple dicha función. palabra de 14 bits
Posiciones RAM de datos 368
Palabras Clave- microcontrolador, dado electrónico, lenguaje Posiciones EEPROM de 256
ensamblador. datos
Puertos E/S A,B,C,D,E
I. INTRODUCCIÓN Número de pines 40
En el presente laboratorio presentaremos una práctica de Interrupciones 14
como diseñar e implementar un dado electrónico utilizando Timers 3
un microcontrolador pic 16f877A, un display de 7 segmentos Módulos ccp 2
y un pulsador como materiales principales y poniendo en Comunicaciones serie MSSP,USART
práctica los conocimientos adquiridos en horas de clase. Comunicaciones paralelo PSP
Un dado electrónico cumple las mismas funciones que un Líneas de entrada CAD de 8
dado común y corriente, con haya quedada la programación 10 bits
en el microcontrolador y la velocidad de oscilación obtenida Juego de instrucciones 35
en su construcción hace prácticamente imposible anticipar Longitud de la instrucción 14 Bits
los resultados. Sin embargo, el motivo principal para realizar Arquitectura Harvard
dicho proyecto es debido al mejoramiento de un dado de CPU Risc
forma poliédrica preparado para mostrar un resultado Calanes Pwm 2
aleatorio cuando es lanzado por un dado electrónico
preparado para mostrar un resultado de forma digital a través Tabla 1 Características de microcontrolador pic 16F877A.[2]
de un pulsador, siendo esto una forma más avanzada y
tecnológica para un juego o cualquier otro beneficio social. B. Dado Electrónico.
Un dado es un objeto de forma poliédrica preparado para
II. MARCO TEÓRICO mostrar un resultado aleatorio cuando es lanzado sobre una
superficie horizontal. Los posibles resultados, numéricos o de
A. MICROCONTROLADOR PIC 16F877A otro tipo, están marcados en cada una de las caras del
Se denomina microcontrolador a un dispositivo poliedro y se eligen en función de la posición en la que quede
programable capaz de realizar diferentes actividades que el dado tras el lanzamiento; normalmente se toma el
requieran del procesamiento de datos digitales y del control y resultado marcado en la cara que queda vista hacia arriba.
comunicación digital de diferentes dispositivos. Los dados habituales son cubos pequeños, de entre 8 y 25
mm de arista, y cuyas caras están numeradas de 1 a 6
Los microcontroladores poseen una memoria interna que (normalmente mediante disposiciones de puntos), de tal
almacena dos tipos de datos; las instrucciones, que manera que las caras opuestas suman 7 puntos y los números
corresponden al programa que se ejecuta, y los registros, es 1, 2 y 3 están dispuestos en el sentido contrario al giro de las
decir, los datos que el usuario maneja, así como registros agujas del reloj.
especiales para el control de las diferentes funciones del
microcontrolador [2] . Diseño y funcionamiento.

Características Para diseñar un dado electrónico, se necesita de un


dispositivo electrónico acompañado en un par de circuitos
En siguiente tabla de pueden observar las características integrados de bajo costo. El primer dispositivo es el
más relevantes del dispositivo. microcontrolador pic 16f877A al cual programaremos las
funciones que cumple un dado el condigo en lenguaje
ensamblador será mostrado posterior mente para la
visualización tendremos un display de 7 segmentos que será movwf numero
call DISPLAY
conectado con sus respectivas resistencias a nuestro
microcontrolador ya programado, también contaremos con
un pulsador que cumple la función de inicio y stop. el
funcionamiento es sencillo una vez conectado empezará a
DISPLAY
contar del 1 al 6 visualizado en el display al aplastar el
pulsador se detendrá en un numero al azar. La velocidad de UNO: MOVF numero,w
cambio de un número a otro en el display dependerá del SUBLWb'00000001'
oscilador utilizado y el tiempo de retardo programado. BTFSS STATUS,Z
GOTO DOS
En fin, el objetivo del circuito es generar un número al
MOVLW b'00000110'
azar entre 1 y 6, y mostrar el resultado por medio de un MOVWF PORTB
display de 7 segmentos . CALL RETARDO
GOTO PULSADO
C. Materiales
• Programadores para microcontrolador pic DOS: MOVF numero,w
• Microcontrolador pic16f877a SUBLWb'00000010'
• Cristales 4 mhz. BTFSS STATUS,Z
GOTO TRES
• Pulsador MOVLW b'01011011'
• Potenciometros de 10k, MOVWF PORTB
• Resistencias de 4.7k, 1k, 220, 330 ohmios CALL RETARDO
GOTO PULSADO
• Diodo Led

III. DISEÑO Y DESARROLLO DE LA PRACTICA TRES: MOVF numero,w


SUBLWb'00000011'
BTFSS STATUS,Z
GOTO CUATRO
MOVLW b'01001111'
A. Código en lenguaje ensamblador. MOVWF PORTB
CALL RETARDO
list p=16f877A
GOTO PULSADO
#include <p16f877A.inc>
__CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_ON
& _XT_OSC & _WRT_OFF & _LVP_OFF & _CPD_OFF
CUATRO: MOVF numero,w
SUBLWb'00000100'
pulsador EQU 0x20
BTFSS STATUS,Z
numero EQU 0x21
GOTO CINCO
R1 EQU 0x22
MOVLW b'01100110'
R2 EQU 0x23
MOVWF PORTB
R3 EQU 0x24
CALL RETARDO
GOTO PULSADO
ORG 0
CLRF PORTA
CINCO: MOVF numero,w
BCF STATUS,RP1
SUBLWb'00000101'
BSF STATUS,RP0
BTFSS STATUS,Z
movlw 0x007
GOTO SEIS
movwf ADCON1
MOVLW b'01101101'
movlw 0xFF
MOVWF PORTB
movwf TRISA
CALL RETARDO
movlw 0x00
GOTO PULSADO
movwf TRISB
bcf STATUS,RP0
SEIS: MOVF numero,w
MOVLW b'01111101'
movlw b'00000000'
MOVWF PORTB
movwf pulsador
CALL RETARDO
GOTO PULSADO
PULSADO
btfss PORTA,0
MOSTRAR
GOTO NO_PULSADO
MOVWF PORTB
movlw b'00000001'
RETURN
addwf pulsador,0
movwf pulsador
RETARDO MOVLW 0X01
call RETARDO
MOVWF R1
movf pulsador,w
TRES1 MOVLW 0X01
sublw b'00000111'
MOVWF R2
btfss STATUS,Z
DOS1 MOVLW 0X01
goto PULSADO
MOVWF R3
movlw b'00000000'
UNO1 DECFSZ R3,1
movwf pulsador
GOTO UNO1
GOTO PULSADO
DECFSZ R2,1
RETURN
GOTO DOS1
DECFSZ R1,1
NO_PULSADO movf pulsador,w
GOTO TRES1
RETURN

END

B. Simulación

IV. RESULTADOS

Ya terminado el armado del circuito se procede a verificar su


funcionamiento, al darle un pulso en el pulsador comienza a
funcionar el contador el cual empieza a mostrar desde el
numero 1 al 6 en el display con una velocidad de paso de
número a número según el oscilador y el tiempo de retardo
programado en nuestro caso pusimos un tiempo aproximado
de medio segundo para que así no sea predecible escoger el
número y poder lograr el objetivo de que sea un numero al
azar una vez obtenido el número se vuelve a accionar el
pulsador y comienza el ciclo de nuevo.
Como resultados obtenemos un circuito implementado que
cumple con la función de un dado electrónico.

CONCLUSIONES
El desarrollo de esta práctica es muy beneficioso para
poder entender de una mejor manera el funcionamiento de
los diferentes dispositivos electrónicos conocidos
teóricamente en clase; Nos ayuda a visualizar problemas para
posteriormente saber cómo resolverlos y así poder lograr un
objetivo específico, en nuestro caso el buen funcionamiento
de un dado electrónico.
La forma de realizar los circuitos puede influir seriamente
en el código que uno está realizando, por lo que es necesario
conocer el circuito o bien tener una idea clara antes de
programar.
Si bien el costo de los materiales es, en principio,
caro, sus usos no son limitados, con lo cual, pueden
realizarse cosas muy interesantes y de gran ayuda para el
desarrollo y aprendizaje de la carrera.

REFERENCIAS
[1] BREIJO, Eduardo García. Compilador C CCS y simulador PROTEUS
para microcontroladores PIC. Marcombo, 2009.
[2] CARLOS, Reyes. Microcontroladores Pic. 2006.

ANEXOS