Microcontroladores

Páginas: 7 (1538 palabras) Publicado: 5 de julio de 2012
MICROPROCESADORES 2003/2004

DADO ELECTRÓNICO
Jaime Pérez Crespo
Rubén Seijas Valverde

Introducció n:
Con esta práctica se pretende familiarizarse con la programación en ensamblador
de microcontroladores como el PIC utilizado. Se trata de la construcción de un sencillo
dado electrónico mediante un PIC, un display y un pulsador, entre otros componentes.
El   display,   al   conectarse  el   circuito,   comenzará   una   cuenta   desde   el   número   1
hasta el número 6 de  forma progresiva, cambiando cada segundo.  Cuando el jugador
accione el pulsador, en el display se mostrarán todos los leds encendidos (salvo el punto
decimal)   para   indicar   que   se   está   procediendo   a   una   tirada.   Al   liberar   el   pulsador   se
mostrará durante un segundo el número aleatorio obtenido por el jugador. Transcurrido
ese segundo, el dado volverá a retomar la cuenta exactamente en el número siguiente al
último número mostrado previamente a ejecutar la tirada.

Listado:
A continuación se muestra el listado en ensamblador del programa construído para
el dado electrónico.
;Practica del dado electronico de la asignatura 
; Microprocesadores 2003­2004
;Autores:; Jaime Perez Crespo
; Ruben Seijas Valverde
;Ultima modificacion: 3/11/2003
        LIST    P=16F84
        INCLUDE "a:\P16F84.INC"  ;Libreria de registros del PIC
        RADIX   HEX
SEG EQU 0x0C
NUM     EQU     0x0D
        ORG     0x00
        GOTO
INICIO
        ORG
0x04
        GOTO
INTERR

;Direccion de comienzo del programa
;Captura de interrupciones;Salto a la rutina de tratamiento de 
;interrupciones

INICIO:
        CLRF    SEG             ;Iniciamos la cuenta de fracciones de 
;segundo
        CLRF    NUM             ;Iniciamos el Numero a mostrar
        BSF     STATUS,RP0      ;Cambiamos al banco de memoria 1
        MOVLW   0xff
        MOVWF   TRISA           ;configuramos puerta A de entrada
        MOVLW   0x00        MOVWF   TRISB           ;configuramos puerta B de salida
        MOVLW   b'00000111'
;cargamos los flags en OPTION
        MOVWF   OPTION_REG
        MOVLW   b'10100000'     ;Permitimos interrupciones en TMR0 y GIE
        MOVWF   INTCON
        BCF     STATUS,RP0      ;Cambiamos al banco de memoria 0

        MOVLW   b'00100110'     ;Cargamos 38 en el TMR0 (255 ­ 217)
        MOVFW   TMR0        MOVLW   b'11111111'     ;Apagamos todos los leds del display
        MOVWF
PORTB
BUCLE:
        BCF
STATUS,RP0
;Seleccionamos banco de memoria 0
        BTFSS   PORTA,0         ;Comprobamos si el pulsador esta 
;accionado (RA0 = 0)
        CALL
GEN_NUM
;Pulsador accionado, generamos numero 
;aleatorio
        GOTO
BUCLE
;No hay pulsacion, seguimos
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Generacion del numero aleatorio ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
GEN_NUM:
        BSF
STATUS,RP0
;Seleccionamos banco de memoria 1
        MOVLW
b'00000000'
;Deshabilitamos interrupciones
        MOVWF
INTCON
        BCF
STATUS,RP0
;Seleccionamos banco de memoria 0
        MOVLW   b'10000000'     ;Encendemos todos los leds del display 
;salvo el punto
        MOVWF
PORTB
PULS:
        INCF
NUM,F;Incrementamos el numero de tirada
        MOVF    NUM,W           ;Comprobamos si la tirada es superior a 6
        SUBLW   7               ;Restamos 7 a la tirada
        BTFSS   STATUS,Z        ;Comprobamos si la resta es 0
                                ;Si la resta anterior es 0, debemos poner
;a 1 la tirada, Z sera 1
        GOTO
COMP_PULS
;Tirada correcta, comprobamos el 
;pulsador
        MOVLW
0x01;Iniciamos a 1 la tirada
        MOVWF
NUM
COMP_PULS:
        BCF     STATUS,RP0      ;Seleccionamos banco de memoria 0
        BTFSC
PORTA,0
;Comprobamos RA0 para ver el estado del 
;pulsador
        GOTO
NO_PULS
;No hay pulsacion, mostramos el numero
        GOTO    PULS            ;Pulsador accionado, seguimos generando 
;el numero...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Microcontroladores
  • Microcontroladores
  • Microcontroladores
  • microcontroladores
  • Microcontroladores
  • Microcontroladores
  • Microcontroladores
  • Microcontroladores

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS