TODOPIC
Microcontroladores PIC => * PROYECTOS * => Mensaje iniciado por: sanchoweb en 27 de Julio de 2003, 10:24:00
-
Gente, yo se que para ustedes esto es muy fácil, pero para mi que recien empiezo se me complica.
Lo que necesito hacer es una ruleta, que este compuesta por 10 leds (usando el PIC 16F84), y que cuando el usuario presione un boton empieze a girar (va rotando la tensión por todos los leds en forma secuiencial y con un cierto retardo entre ambas a si se peude apreciar) y que después de un cierto tiempo pare aleatoreamente en algún led.
Esa es la primera parte, luego, si se puede tambien asignarle un "valor" a cada led, y dependiendo de este se va a representar la ganancia o la pérdida de "créditos" en un display de 7 segmentos. Se entiende?
Si hay algun alma caritativa que me diga aunque sea una puntita del programa en asembler se lo agradecería muchisimo.
Sancho
-
Hola Sancho, basicamente, tu programa se resuelve con una tabla
yo lo pensaria de la siguiente forma
primero: un contador, que estaria en un loop, esperando a que alguien pulse...
al pulsar, saltaria el programa a la parte de presentacion de ruleta... y el n umero ya lo tendrias asignado segun el valor en que quedo el contador...
presentacion:
un retardo o delay que seria con tiempos en incremento para simular la perdida de velocidad, creo que en un principio, siempre tendria que dar unas vueltas muy rapidamente (por si el primer contador es uno, solo prenderia la proxima lampara!!!)
la tabla de presentacion seria por ejemplo
movf contador
addwf pcl,f
retlw b"00000001"
retlw b"00000010"
retlw b"00000100"
retlw b"00001000"
"
"
"
retlw b"10000000"
pero como tienes que trabajar con 2 puerto y ademas el contador no puede superar el valor de 10 (9)
podrias hacerlo
movf contador
addwf pcl,f
goto uno
goto dos
goto tres
"
"
"
goto diez
uno clrf porta
clrf portb
bsf portb,0
retlw 0
dos clrf porta
clrf portb
bsf portb,1
retlw 0
tres clrf porta
clrf portb
bsf portb,2
retlw 0
"
"
"
nueve clrf porta
clrf portb
bsf portA,0
retlw 0
diez clrf porta
clrf portb
bsf portA,1
retlw 0

bueno, espero lo interpretes...
un abrazo
Norberto
-
#DEFINE PULSADOR PORTA,4
RULETA
MOVLW .10 ;CARGO EL NUMERO 10
MOVWF CONTADOR,F
RESTAR DECFSZ CONTADOR
GOTO DISPARO
GOTO RULETA
DISPARO BTFSC PULSADOR ; PULSARON Y ES CERO?
GOTO RESTAR
PRESENTAR
-
Ok Sancho, esperamos que al terminar tu proyecto, lo compartas aqui!

suerte!
Norberto