Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

20/05/2006 #1


Dado Electronico con PIC16F84
Hola,

Tengo un circuito y la programación de un dado electrónico con PIC16F84, genera #'s del 1-6, pero quiero que los genere del 1-7, si me podrías ayudar te lo agradecería. Es para poder pasar un examen y soy nuevo en la programación y se me a hecho difícil.


GRACIAS.
20/05/2006 #2

Avatar de fdesergio

Hola solo debes modificar aca:

texto del asm.



; ************************************************** **************
; RUTINA QUE GENERA UN NUMERO ALEATORIO MIENRAS ESTAN PULSANDO RA0
; ************************************************** **************

NUM_ALEATORIO:

bsf STATUS,RP0 ; Seleccionamos Banco 1
MOVLW b'00000000' ; Deshabilitamos todas las interrupciones posibles
MOVWF INTCON
bcf STATUS,RP0 ; Seleccionamos Banco 0
MOVLW b'00000000'
MOVWF PORTB ; Escribimos en el puerto B
CLRF PULSA

SI: btfss PORTA,0 ; Se explora RA0 para ver si sigue pulsado
GOTO NO ; Si no sigue pulsando significa que ya no pulsan y x tanto mostramos
; el numero aleatorio que hemos generado anteriormente
INCF PULSA,F ; Incrementamos valor aleatorio
MOVF PULSA,W ; Miramos si es 6 segundos
SUBLW 8 ; ACA CAMBIAMOS 7 POR 8
BTFSS STATUS,Z ; Si Z esta a 1 es que la resta fue 0 y x tanto 1
GOTO SI ; Seguimos generando el numero aleatorio
MOVLW 1 ; Movemos un 0 a segundos, para q la cuenta siga 1..6
MOVWF PULSA
GOTO SI ; Seguimos generando el numero aleatorio

NO: MOVF PULSA,W ; Movemos el valor de PULSA a W
MOVWF SEG ; Movemos el valor de W a SEG, q muestra la rutina MOSTRAR_SEG
CALL MOSTRAR_SEG ; Mostramos el numero x el display

bcf STATUS,RP0 ; Seleccionamos Banco 0 y Cargamos TMR0 con 196
MOVLW b'11000100'
MOVWF TMR0
MOVLW b'10100000' ; Permitimos interrupcion de TMR0 y la global GIE
MOVWF INTCON ; Habilitamos de nuevo las interrupciones
CLRF SEG ; Limpiamos segundos anteriores
CLRF NUM ; Limipiamos numeros de interrupciones anteriores
RETURN

Solo debes cambiar el No 7 por el No 8 en la linea que esta marcado con rojo y listo, el genera un numero aleatorio, se detiene y resta con 7 para saber si es menor o igual a 7 y listo, ah pruebalo pues en esto no hay nada dicho, avisame, chauuuuuu, chauuuuuuuuuuuuuuuuu
15/06/2009 #3


creo que tendras que añadir mas numeros
CUATRO: MOVF SEG,W
SUBLW 4
BTFSS STATUS,Z
GOTO CINCO
MOVLW b'01100110'
GOTO FIN1

CINCO: MOVF SEG,W
SUBLW 5
BTFSS STATUS,Z
GOTO SEIS
MOVLW b'01101101'
GOTO FIN1

SEIS: MOVF SEG,W

MOVLW b'01111101'
GOTO FIN1

FIN1: BCF STATUS,RP0 ; Seleccionamos Banco 0
MOVWF PORTB ; Escribimos en el puerto B
RETURN
25/06/2010 #4


Respuesta: Dado Electronico con PIC16F84
disculpa me podrian ayudar esque tengo que entregar un proyecto de dado electronico con el pic 16f877
que al momento de encender el circuito cuente aleatoriamente del 0 al 6 y al presionar un boton marque un numero aleatorio necesito compilarlo en C y simularlo en el proteus deceo me puedan ayudar
gracias
26/06/2010 #5

Avatar de fernandoae

Respuesta: Dado Electronico con PIC16F84
Si no planteas cual es tu duda dificilmente te podamos ayudar...
26/06/2010 #6


Respuesta: Dado Electronico con PIC16F84
mi duda es bueno mejor seria mi problema es que no puedo acer el circuito para poder simularlo en el proteus,
puse una imagen del circuito que tengo,espero la puedan ver, y me resulvan la duda deen donde estoy mal en el circuito para que trabaje
circuito.jpg
26/06/2010 #7

Avatar de fernandoae

Respuesta: Dado Electronico con PIC16F84
El circuito esta bien. Tenes el hex?
26/06/2010 #8


Respuesta: Dado Electronico con PIC16F84
si lo tengo lo hice en el programa PIC C Compiler
aki en archivo

mira aki tengo otro programa en c y ninguno me funciona sera que tengo mal una variable o es mi circuito no se como resolverlo espero me puedan ayudar a resolver mi problema gracias
Archivos Adjuntos
Tipo de Archivo: rar dado2.rar (9,5 KB (Kilobytes), 274 visitas)
Tipo de Archivo: rar dado.rar (11,1 KB (Kilobytes), 202 visitas)
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.