|
2227
|
Informática / Electrónica / Re: Cerraduras de tarjetas de banda magnética
|
en: 24 Julio 2008, 17:15 pm
|
ACTIVADOR DE ELECTROCERRADURA CON tarjeta DE BANDA MAGNÉTICA (C [FT408K] 52.00EUR ACTIVADOR DE ELECTROCERRADURA CON tarjeta DE BANDA MAGNÉTICA (C Haga Click para agrandar ACTIVADOR DE ELECTROCERRADURA CON tarjeta DE BANDA MAGNÉTICA (Cód.FT408K) Circuito lector de tarjetas de banda magnética (tipo tarjeta de crédito) capaz de reconocer hasta 15 tarjetas prememorizadas. Al deslizarse por la ranura lectora una tarjeta conocida, el circuito activa un relé en modo biestable o en modo monoestable por un tiempo ajustable entre 2 a 20 segundos. Se utilizan tarjetas ISO7811 provistas por el fabricante de un código único y no repetido que el circuito “aprende†durante la fase de memorización automática. El kit incluye tres tarjetas ISO7811 codificadas pero no comprende caja ni alimentador. Fuente: http://todoelectronica.com/activador-electrocerradura-tarjeta-banda-magnetica-p-3023.html
|
|
|
2230
|
Informática / Electrónica / Mejorar el Mod8 para PS2
|
en: 13 Julio 2008, 02:46 am
|
Hola. Me gustaría contactar con el que documentó este ASM del PIC12C508 si tiene un diagrama de flujo para entenderlo mejor. Ya que utiliza retardos y para verlo en el MPLAB es un tostón. Su e-mail abajo no funciona. ;+-------------------------------------------------------------------------+ ;¦ MYC.ASM ¦ DESENSAMBLADO DE 8MODCHIP.HEX PARA PSX2 POR MANOLO Y COMPAÑIA ¦ ;+-------------------------------------------------------------------------+
; NOTA: ;* Para visualizar este fichero correctamente, usa el edit del dos ; o el bloc de notas del windows con el tipo de fuente 'terminal' ;* El objeto de realizar el desensamblado y comentado del código fuente, ; del 8modchip.hex es con el fin de que todos conozcamos como funciona ; y podamos perfeccionarlo y modificarlo entre todos a nuestro antojo. ;* Espero que al publicarlo en el foro, las mentes pensantes colaboren. ;* Desconozco quien es el autor del hex original pero le felicito por su ; programa. ;* Según aparezcan nuevas versiones del modchip se irán desensamblando ; y publicando. ;* Por favor poner vuestras experiencias en el foro para que lo vea todo ; el mundo. ;* los tiempos de las rutinas son muy críticos. ;* El codigo está más ordenado que en el 8modchip.hex pero es el mismo ; únicamete se han suprimido los caracteres de la tabla que no se usan ; para la versión europea. ;* Sugerencias de assembler o hard: jiglesias@arrakis.es ;--------------------------------------------------------------------------
; +----------------------------------+ ; ¦ ESQUEMA DE CONEXIONES PIC12C509A ¦ ; +----------------------------------+ ; ; +------+ +------+ ; ¦ +--+ ¦ ; +5V ¦¦1 PIC12C509A 8¦¦ MASA ; ¦ ¦ ; SWAPX ¦¦2 GPIO5 GPIO0 7¦¦ DVDIN=0 ; ¦ ¦ ; DVDOUT=1 ¦¦3 GPIO4 GPIO1 6¦¦ TXSCEE ; ¦ ¦ ; /RESET=0 ¦¦4 GPIO3 GPIO2 5¦¦ SWAPY ; ¦ ¦ ; +----------------+ ; ; 1 - +5VCC - SIN COMENTARIOS ; 2 - SWAPX - SOLO LO USA LA OPCION 3 PARA LA APERTURA Y CIERRE DEL DVD ; 3 - DVDOUT - ES IGUAL A 1 CUANDO LA BANDEJA DEL DVD ESTA SALIENDO ; 4 - /RESET - ES IGUAL A 0 CUANDO PULSAMOS EL RESET DE LA PS2 ; 5 - SWAPY - SOLO LO USA LA OPCION 3 PARA LA APERTURA Y CIERRE DEL DVD ; 6 - TXSCEE - ES POR DONDE TRANSMITE VIA SERIE "SCEE" ; 7 - DVDIN - ES IGUAL A 0 CUANDO LA BANDEJA DEL DVD ESTA ENTRANDO ; 8 - MASA - SIN COMENTARIOS ;--------------------------------------------------------------------------
;+---------------------------------+ ;¦ PROCESADOR A EMPLEAR PIC12C509A ¦ ;+---------------------------------+ P509A EQU 1 ;0=PIC12C508A 1=PIC12C509A IF P509A list p=12c509A include "p12c509A.inc" ELSE list p=12c508A include "p12c508A.inc" ENDIF
;+-----------------------------------+ ;¦ FUSIBLES, WASDOG, OSCILADOR ETC.. ¦ ;+-----------------------------------+ __FUSES _MCLRE_OFF & _CP_OFF & _WDT_OFF & _IntRC_OSC
;+------------------+ ;¦ NOTACION DECIMAL ¦ ;+------------------+ radix dec ;--------------------------------------------------------------------------
;+--------------------------+ ;¦ VARIABLES DE RAM INTERNA ¦ ;+--------------------------+ cblock 0x0B RAM_0B ;CONTADOR PAUSA RAM_0C ;CONTADOR CARGA DEL DVD RAM_0D ;CONTADOR PAUSA RAM_0E ;CANTIDAD DE BYTES A ENVIAR DE LA TABLA RAM_0F ;CANTIDAD DE BITS A ENVIAR DEL BYTE RAM_10 ;NO UTILIZADA RAM_11 ;CONTADOR W EN PAUSA Wx199 RAM_12 ;CONTADOR 199 EN PAUSA Wx199 RAM_13 ;BYTE LEIDO DE LA TABLA RAM_14 ;PUNTERO DEL BYTE DE LA TABLA RAM_15 ;MASCARA ESTADO DE LOS BIT DEL PUERTO endc ;--------------------------------------------------------------------------
;+-----------------+ ;¦ VECTOR DE RESET ¦ ;+-----------------+ org 0x00 movwf OSCCAL ;CALIBRA EL OSCILADOR INTERNO goto COMIENZO ;SALTA LA COMIENZO DEL PROGRAMA ;--------------------------------------------------------------------------
;+--------------------------------------+ ;¦ VERSION DEL PROGRAMA (CODIGO INUTIL) ¦ ;+--------------------------------------+ retlw 'M' retlw 'A' retlw 'N' retlw 'O' retlw 'L' retlw 'O' retlw ' ' retlw 'Y' retlw ' ' retlw 'C' retlw 'O' retlw 'M' retlw 'P' retlw 'A' retlw 'Ñ' retlw 'I' retlw 'A' ;--------------------------------------------------------------------------
;+-----------------------+ ;¦ COMIENZO DEL PROGRAMA ¦ ;+-----------------------+ COMIENZO movlw b'11000010' ;CONFIGURA TMR0 PRESCALER = 1:8 option ;OSCILADOR = 4MHZ
movlw 255 ;INICIALIZA TODOS LOS PUERTOS movwf RAM_15 ;EN ALTO Y RAM_15 tris GPIO ; ;--------------------------------------------------------------------------
;+----------------------------------------+ ;¦ PAUSA DE ENCENDIDO DE 414 MILISEGUNDOS ¦ ;+----------------------------------------+ movlw 2 ;100 MILISEGUNDOS movwf RAM_0D ; ETI_107 call PAUSA50MSG ; + decfsz RAM_0D,F ; goto ETI_107 ; movlw 6 ;300 MILISEGUNDOS movwf RAM_0D ; ETI_10C call PAUSA50MSG ; + decfsz RAM_0D,F ; goto ETI_10C ; movlw 14 ;14 MILISEGUNDOS call PAUSAWX1MSG ; ;--------------------------------------------------------------------------
;+------------------------------------------------------------------+ ;¦ LECTURA DE LAS 3 OPCIONES CON EL PULSADOR DE RESET DE LA CONSOLA ¦ ;+------------------------------------------------------------------+ ;OPCION1 EL RESET NO HA SIDO PULSADO ;----------------------------------- btfsc GPIO,3 ;SI EL RESET NO ESTA PULSADO goto OPCION1 ;SALTA A OPCION1
;OPCION2 EL RESET HA SIDO PULSADO Y SE HA SOLTADO ANTES DE 7,5 SEGUNDOS ;---------------------------------------------------------------------- movlw 150 ; movwf RAM_0D ; ETI_115 btfsc GPIO,3 ; goto OPCION2 ;SALTA A OPCION2 AL LEVANTAR EL RESET call PAUSA50MSG ; decfsz RAM_0D,F ; goto ETI_115 ;
;OPCION3 EL RESET HA SIDO PULSADO Y NO SE HA SOLTADO ANTES DE 7,5 SEGUNDOS ;------------------------------------------------------------------------- goto OPCION3 ;SI CONTINUA PULSADO SALTA A OPCION3 ;--------------------------------------------------------------------------
;+---------------------------------------------------+ ;¦ OPCION 1 (RESET NO PULSADO) EL MODCHIP SE ¦ ;¦ DESHABILITA Y SOLO PODEMOS USAR JUEGOS ORIGINALES ¦ ;+---------------------------------------------------+ OPCION1 movlw b'00111111' ;INICIALIZA TODOS LOS tris GPIO ;PUERTOS EN ALTO Y sleep ;DESHABILITA EL MODCHIP ;--------------------------------------------------------------------------
;+------------------------------------------------------------------------+ ;¦ OPCION 2 (RESET PULSADO DESPUES DE 1 SEG. Y SOLTADO ANTES DE 7,5 SEG.) ¦ ;¦ JUEGOS (PSX1 DIRECTOS) Y (PSX2 SIN PROTECCION ANTIMODCHIP CON AR1.3) ¦ ;+------------------------------------------------------------------------+ OPCION2 bcf GPIO,1 ;INICIALIZA PUERTO TXSERIE EN ALTO bcf RAM_15,1 ; movf RAM_15,W ; tris GPIO ;
call PAUSA50MSG ;PAUSA CADA 100 TRANSMISIONES
movlw 100 ;100 VECES movwf RAM_0C ;REPETIRA LA TRANSMISION ETI_122 btfsc GPIO,0 ;SI EN ESTOS MOMENTOS LA BANDEJA DEL goto ETI_04C ;DVD YA ESTA DENTRO TRANSMITE SCEE
clrf RAM_14 ;INICIALIZA PUNTERO A TABLA Y call ENVIASCEE ;TRANSMITE VIA SERIE 100 VECES 'SCEE' call SUB_04C ;LUEGO ESPERARA A QUE METAMOS OTRO JUEGO goto ETI_122 ;ANTES DE VOLVER A TRANSMITIR 100 VECES SUB_04C ETI_04C btfsc GPIO,0 ;SI EN ESTOS MOMENTOS LA BANDEJA DEL goto ETI_050 ;DVD AUN NO ESTA DENTRO SALE decfsz RAM_0C,F ;SI YA ESTA DENTRO RETORNA HASTA retlw 3 ;TRANSMITIR LAS 100 VECES 'SCEE'
ETI_050 movlw b'00111111' ;INICIALIZA TODOS PUERTOS tris GPIO ;COMO ENTRADAS ETI_052 btfss GPIO,4 ;ESPERA A QUE PULSEMOS LA APERTURA goto ETI_052 ;DE LA BANDEJA DEL DVD
movlw 250 ;ESPERAMOS UN TIEMPO A LA CONSOLA PARA call PAUSAWX1MSG ;QUE TERMINE DE ABRIR LA BANDEJA DEL DVD
btfss GPIO,4 ;SI LA BANDEJA DEL DVD TODAVIA NO ESTA goto ETI_052 ;ABRIENDOSE REPITE LA OPERACION
ETI_058 btfsc GPIO,4 ;SI LA BANDEJA DEL DVD ESTA ABRIENDOSE goto ETI_058 ;SE ASEGURA A QUE SE ABRA DEL TODO
movlw 24 ;PAUSA DE 6 SEGUNDOS PARA QUE movwf RAM_0B ;PONGAMOS EL JUEGO EN LA BANDEJA Y ETI_05C movlw 250 ;PULSEMOS EL BOTON PARA INTRIDUCIRLO call PAUSAWX1MSG ;EN LA CONSOLA decfsz RAM_0B,F ; goto ETI_05C ;
btfsc GPIO,0 ;SI LA BANDEJA DEL DVD ESTA TODAVIA FUERA goto ETI_052 ;REPITE LA OPERACION
goto OPCION2 ;CUANDO EL DVD YA ESTA DENTRO SALTA OPCION2 ;Y COMIENZAN LAS TRANSMISIONES DE 'SCEE' ;--------------------------------------------------------------------------
;+--------------------------------------------------------------------------+ ;¦ OPCION 3 (RESET PULSADO DESPUES DE 1 SEG. Y SOLTADO DESPUES DE 7,5 SEG.) ¦ ;¦ JUEGOS PSX2 CON PROTECCION ANTIMODCHIP CON AR1.3 ¦ ;+--------------------------------------------------------------------------+ OPCION3 btfss GPIO,3 ;ESPERA A QUE SOLTEMOS EL goto OPCION3 ;BOTON DE RESET
movlw 255 ;INICIALIZA RAM_15 Y TODOS movwf RAM_15 ;LOS PUERTOS tris GPIO ;EN ALTO
movlw 80 ;EL MODCHIP FUERZA A LA CONSOLA movwf RAM_0B ;PARA QUE EXPULSE LA BANDEJA DEL DVD ETI_132 movlw b'00100100' ; " movwf GPIO ; " movlw b'11011011' ; " tris GPIO ; " movlw 10 ; " call PAUSAWX1MSG ; " movlw b'00100000' ; " movwf GPIO ; " movlw b'00011011' ; " tris GPIO ; " movlw 10 ; " call PAUSAWX1MSG ; " decfsz RAM_0B,F ; " goto ETI_132 ; " movlw b'00111111' ; " tris GPIO ; "
movlw 16 ;PAUSA PARA QUE LA BANDEJA DEL DVD movwf RAM_0B ;ESTE 4 SEGUNDOS ABIERTA Y NOS DE ETI_144 movlw 250 ;TIEMPO A PONER EL JUEGO EN ELLA call PAUSAWX1MSG ; " decfsz RAM_0B,F ; " goto ETI_144 ; "
movlw 80 ;EL MODCHIP FUERZA A LA CONSOLA movwf RAM_0B ;PARA QUE INTRODUZCA LA BANDEJA DEL DVD ETI_14A movlw b'00010100' ; " movwf GPIO ; " movlw b'11101011' ; " tris GPIO ; " movlw 10 ; " call PAUSAWX1MSG ; " movlw b'00010000' ; " movwf GPIO ; " movlw b'11101011' ; " tris GPIO ; " movlw 10 ; " call PAUSAWX1MSG ; " decfsz RAM_0B,F ; " goto ETI_14A ; " movlw b'00111111' ; " tris GPIO ; "
goto OPCION1 ;DESHABILITA AL MODCHIP Y YA PODEMOS ;EJECUTAR EL JUEGO CON EL MENU DEL AR1.3 ;--------------------------------------------------------------------------
;+---------------------------------------------------------------------+ ;¦ TRANSMITE VIA SERIE 'SCEE' CON 8 BIT DE DATOS Y 2 DE STOP A 250 BPS ¦ ;+---------------------------------------------------------------------+ ENVIASCEE movwf RAM_0D ;SALVA W EN RAM_0D (INUTIL PUES NO LO USA)
movlw 72 ;72 MILISEGUNDOS DE ESPACIO ENTRE BYTES call PAUSAWX1MSG ;
movlw 4 ;ENVIAREMOS 4 BYTES movwf RAM_0E ;DE LA TABLA ETI_068 movf RAM_14,W ;LEEMOS 1 BYTE DE call TABLA ;LA TABLA movwf RAM_13 ;EN RAM_13 comf RAM_13,F ;
movlw 8 ;ENVIAREMOS 8 movwf RAM_0F ;BITS DE CADA BYTE
bsf RAM_15,1 ;ENVIA EL BIT DE START VIA SERIE movf RAM_15,W ; tris GPIO ;
movlw 4 ;4 MILISEGUNDOS DEL ANCHO DEL BIT DE START call PAUSAWX1MSG ;
ETI_073 rrf RAM_13,F ;ENVIA 1 BIT DEL BYTE VIA SERIE movlw b'11111000' ; movwf GPIO ; btfsc STATUS,0 ; bsf RAM_15,1 ; btfss STATUS,0 ; bcf RAM_15,1 ; movf RAM_15,W ; tris GPIO ;
movlw 4 ;4 MILISEGUNDOS DEL ANCHO DEL BIT call PAUSAWX1MSG ;
decfsz RAM_0F,F ;CONTINUAMOS HASTA goto ETI_073 ;ENVIAR LOS 8 BITS DEL BYTE
bcf RAM_15,1 ;ENVIA 2 BITS DE STOP movf RAM_15,W ; tris GPIO ;
movlw 8 ;8 MILISEGUNDOS DEL ANCHO DE call PAUSAWX1MSG ;LOS 2 BITS DE STOP
incf RAM_14,F ;INCREMENTA PUNTERO DE LA TABLA
decfsz RAM_0E,F ;CONTINUA HASTA goto ETI_068 ;ENVIAR LOS 4 BYTES DE LA TABLA retlw 3 ;RETORNA CON W=03H TABLA addwf PCL,F ;TABLA PARA LA PS2 EUROPEA retlw 'S' retlw 'C' retlw 'E' retlw 'E' ;--------------------------------------------------------------------------
;+--------------------------+ ;¦ PAUSA DE 50 MILISEGUNDOS ¦ ;+--------------------------+ PAUSA50MSG movlw 50 ;+------------------------------+ ;¦ PAUSA DE (W x 1 MILISEGUNDO) ¦ ;+------------------------------+ PAUSAWX1MSG movwf RAM_11 ETI_042 movlw 199 movwf RAM_12 ETI_044 nop clrwdt decfsz RAM_12,F goto ETI_044 nop decfsz RAM_11,F goto ETI_042 retlw 3 ;--------------------------------------------------------------------------
end
Saludos.
|
|
|
|
|
|
|