Realizar trabajos de proyectos para juegos de luces

Deseo saber si haces trabajos con Pics, proyectos, por supuesto a cambio de una retribución, de lo único que te tendrías que ocupar es del soft(ya esta hecho)y de que funcione. El proyecto de es un juego de luces. ¿Bueno decime que opinas? Y si aceptas, ¿de dónde sos?
Respuesta
1
Si también hago proyectos y soy de mexico saludos y buen día
Hola! ¿Qué opinas del siguiente programa y como lo harías vos?
Gracias
Sebastián Aguirre
;Puertos como salida
;--------------------
processor 16f874
include<P16f874.inc>
__CONFIG _PWRTE_ON & _WDT_OFF & _RC_OSC
;--------------------
org0
bcf STATUS,RP0
bcf STATUS,RP1
clrf PORTA
bsf STATUS,RP0 ;selección del BANK1
movlw 0x06 ;B'00000111'
movwf ADCON1 ;entradas digitales
movlw B'00111110'
movwf TRISA ;0=salida 1=entrada
bcf STATUS,RP0
bcf STATUS,RP1 ;selección del BANK0
;-------------------
SA:movlw B'0000001'
movwf PORTA ;PORTA= 0000001 binario
movlw D'20' ;W=20 decimal
DEC:decfsz W,W ;decrementa W, salta si es 0
goto DEC ;sino va a DEC
goto SA ;va a SA
;-------------------
end
W EQU 0 ; Cuando el destino es W, d = 0
F EQU 1 ; Cuando el destino es el registro f, d = 1
PUERTAA EQU 0x05 ; La Puerta A (datos) ocupa la direcci¢n 5 del ; banco 0 y el registro de configuraci¢n la ; direcci¢n 5 del banco 1
PUERTAB EQU 0x06 ; La misma etiqueta para el registro de datos y el ; de configuraci¢n de la Puerta B
ESTADO EQU 0x03 ; El registro Estado ocupa direcci¢n 3 de los dos ; bancos
; COMIENZO DEL PROGRAMA -----------------------------------------------------------------
ORG 0 ; El programa comienza en la direcci¢n 0 (Vector Reset)
goto inicio ; Se salta a la etiqueta "inicio"
ORG 5 ; Se asigna la direcci¢n 5 a la siguiente instrucci¢n
inicio bsf ESTADO, 5 ; Pone a 1 el bit 5 de Estado. Acceso al banco 1.
Clrf PUERTAB ; Se configuran como salidas las l¡Neas de la Puerta B
movlw 0xff ; El registro W se carga con unos
movwf PUERTA ; Se configuran como entradas las l¡Neas de la Puerta A
bcf ESTADO, 5 ; Pone a 0 el bit 5 de Estado. Acceso al banco 0.
Bucle movf PUERTAA, W ; Carga el registro de datos de Puerta A en W
comf PUERTAA, W ; Complementa a 1 la entrada y la deposita en W
movwf PUERTAB ; El contenido de W se deposita en el registro de datos de ; la Puerta B
goto bucle ; Se crea un bucle cerrado e infinito
END ; Fin del programa

2 respuestas más de otros expertos

Respuesta
1
Mi actual volumen de trabajo no me permite realizar trabajos de este tipo, pero cualquier duda que tengas acerca de una rutina, como lograr algo entre pic y circuito puedes preguntar que eso si lo puedo hacer sin necesidad de un pago, ya que esto implica un compromiso que no puedo aceptar en estos momentos.
Bueno entonces quisiera saber que opinas del siguiente programa de Prueba, y si crees que va a andar, y si no que cambiarías, el programa lo que hace es prender la luz del Pin RA0 del PORTA(pic 16f874)
Bueno decime que opinas y desde ya muchísimas gracias:
(Sebastián Aguirre)
;Puertos como salida
;--------------------
processor 16f874
include<P16f874.inc>
__CONFIG _PWRTE_ON & _WDT_OFF & _RC_OSC
;--------------------
org0
bcf STATUS,RP0
bcf STATUS,RP1
clrf PORTA
bsf STATUS,RP0 ;selección del BANK1
movlw 0x06 ;B'00000111'
movwf ADCON1 ;entradas digitales
movlw B'00111110'
movwf TRISA ;0=salida 1=entrada
bcf STATUS,RP0
bcf STATUS,RP1 ;selección del BANK0
;-------------------
SA:movlw B'0000001'
movwf PORTA ;PORTA= 0000001 binario
movlw D'20' ;W=20 decimal
DEC:decfsz W,W ;decrementa W, salta si es 0
goto DEC ;sino va a DEC
goto SA ;va a SA
;-------------------
end
Si lo que quieres es que prenda y apague este es el código que yo utilizaría, pero tendría que probar que tan largo es el retardo para sus efectos. Si quieres que prenda un bombillo deberías utilizar un optodiac y un triac (tiristores) para el manejo de potencia.
;PUERTOS COMO SALIDA
PROCESSOR 16F874
INCLUDE<P16F874.INC>
__CONFIG _PWRTE_ON & _WDT_OFF & _RC_OSC
R1 EQU 0CH
R2 EQU 0DH
ORG 0000
BCF STATUS, RP0
BCF STATUS, RP1
BSF STATUS, RP0 ;SELECCIÓN DEL BANK1
MOVLW 0X06 ;B'00000111'
MOVWF ADCON1 ;ENTRADAS DIGITALES
MOVLW B'00111110'
MOVWF TRISA ;0=SALIDA 1=ENTRADA
BCF STATUS, RP0 ;SELECCIÓN DEL BANK0
CLRF PORTA
Salto:
CALL RETA
MOVLW B'0000001'
Xorwf porta ;cambia de estado el bit 0
GOTO SALTO ;VA A SA
Reta:
CLRF R2
RET1: CLRF R1
DECFZC R1
DECFZC R2
GOTO RET1
RETURN
END
No te preocupes por el puntaje, después te lo pongo, pero quisiera que me aclares como funciona ese retardo ya que le pones un numero, ¿y después lo limpias?, ¿Cómo funciona?
Gracias
Sebastián Aguirre
El retardo es simplemente generar cierta cantidad de ciclos y como cada ciclo de operación tiene un tiempo entonces es simple cuestión de cálculos para saber cuanto tarda un retardo. El ciclo es simple son dos variables (R1 y R2) cuando R1 llegue a cero se reduce el valor de R2 y así hasta que este también llegue a cero y simplemente se retorna a donde fue llamado. Si el valor que me estas preguntando son las instrucciones R1 EQU 0CH y la de R2 son para asignarle nombre a la posición del registro de memoria RAM del micro, las direcciones de los registros generales del micro aparecen en su Data Sheet que lo puedes sacar de www.microchip.com.
Respuesta
1
En efecto si hago proyectos con pics, lo único que necesitaría es un bosquejo del proyecto, es decir que necesitas que haga, y soy de celaya, gto mexico. Si puedes mandarme información sobre el proyecto que necesitas lo evalúo y te contesto
Hola! Quiero ante todo preguntarte que opinas del siguiente programa, ¿andará?
Ah y vos como lo harías, es un circuito de prueba para que se ponga a 1 el bit0 del porta(RA0).
Bueno muchas gracias
sebastián aguirre
El programa es el siguiente:
;Puertos como salida
;--------------------
processor 16f874
include<P16f874.inc>
__CONFIG _PWRTE_ON & _WDT_OFF & _RC_OSC
;--------------------
org0
bcf STATUS,RP0
bcf STATUS,RP1
clrf PORTA
bsf STATUS,RP0 ;selección del BANK1
movlw 0x06 ;B'00000111'
movwf ADCON1 ;entradas digitales
movlw B'00111110'
movwf TRISA ;0=salida 1=entrada
bcf STATUS,RP0
bcf STATUS,RP1 ;selección del BANK0
;-------------------
SA:movlw B'0000001'
movwf PORTA ;PORTA= 0000001 binario
movlw D'20' ;W=20 decimal
DEC:decfsz W,W ;decrementa W, salta si es 0
goto DEC ;sino va a DEC
goto SA ;va a SA
;-------------------
end
A lo mejor el programa si funciona, pero tengo un programa mejor, este programa saca datos por el puerto b, ¿cada qué se pulsa un puldador se va incrementando la salida en binario por medio de 8 leds enel puerto b. te interesa?

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas