Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Temas - kal23

Páginas: [1]
1
Hacking / [BOT] Spotify Premium 1 mes (UbotStudio 4).
« en: Agosto 12, 2015, 09:26:35 pm »
BOT realizada con UbotStudio 4. Es necesario contar con .Net Framework 3.5.  En el link del video se puede ver un tutorial para utilizar el BOT. Básicamente consiste en ingresar un usuario y contraseña nuevo, luego presionar PLAY y esperar a que genere la cuenta spotify premium por 1 mes. Se guarda en un txt ubicada en Desktop.
 
Método no esta trabajando, por esa razón el bot dejo de funcionar. Buscare métodos nuevos para actualizar el bot.

Video tutorial:
https://vid.me/SLlQ

download link:

Scan:



Link scan: http://www.refud.me/results.php?id=6thywslun18mmlcudfulog6syjns4czxdg4

Código: Text
  1. Date:
  2.  
  3. 11-08-15, 08:07:39
  4.  
  5. File:
  6.  
  7. SpotifyPremiumBot.exe
  8.  
  9. Size:
  10.  
  11. 3814.222 kb
  12.  
  13. MD5:
  14.  
  15. 6f3bff3a216ea338f704b4df1c05f873
  16.  
  17. SHA1:
  18.  
  19. a0007e3198d4887e26b8fb5adce035cad35b9704
  20.  

Cuenta Spotify Premium de regalo.


Código: Text
  1. User: 51VNyUk
  2. Pass: 9823775319
  3. Date: 08/11/2015 19:17:19
  4.  
  5. User: 953Lcz3
  6. Pass: 5715704972
  7. Date: 08/11/2015 19:26:05
  8.  
  9. User: 21eX7Ac
  10. Pass: 8063279169
  11. Date: 08/11/2015 19:40:39
  12.  
  13. User: 31Ndpau
  14. Pass: 5178772771
  15. Date: 08/11/2015 20:09:58
  16.  
  17. User: 69rc246
  18. Pass: 2671265280
  19. Date: 08/12/2015 15:44:06
  20.  
  21. User: 32IsNyO
  22. Pass: 1883632069
  23. Date: 08/12/2015 15:56:23
  24.  

Se utilizo un método paypal Aleman.

2
Electrónica y Robótica / [CCS] Programando un PIC (I/O)
« en: Enero 27, 2014, 07:29:58 pm »
Programa desarrollado en CCS PCWH Compiler. Consiste en demostrar en funcionamiento de básico de entradas y salidas. Se demostrara mediante un pulsador. Almacenaremos las veces que se ha pulsado en una variable y luego usaremos esa variable para encender dos led de acuerdo a la cantidad de pulsos, con el tercer pulso la variable volverá a 0.

Código: C
  1. #include <16f690.h>  //librería de microcontrolador 16f690
  2. #fuses HS, NOWDT, INTRC_IO //Configuración de fusibles, al final dejaré una tabla con los fusibles validos para este micro y para que son.
  3. #USE delay(Clock=4000000)  //velocidad del cristal que usaremos.
  4. #byte portc=0x07 //Uso de puerto C
  5. #byte porta=0x05 //Uso de puerto A
  6.  
  7.  
  8. void main()
  9. {  
  10.    
  11.    set_tris_c(0x00); //Puerto C como Salidas en Hexadecimal
  12.    set_tris_a(0b00011111); //Puerto A como entradas y salidas en Hexdecimal es 0x1F
  13.    porta=0x00; //Inicializamos el puerto A en 0
  14.    portc=0x00; //Inicializamos el puerto C en 0
  15.    int a; //Variable unsigned "a" de 8 bits donde almacenaremos los pulsos.
  16.    a=0; //Le asignamos el valor 0 para iniciar.
  17.    
  18.  
  19.    for(;;) //Bucle infinito, estaremos leyendo constantemente el bucle.
  20.    {  
  21.      
  22.       if (input(pin_a4)==1) //Si presionamos el pulsador, que estará conectado en el Pin A4.
  23.       {
  24.          a=a+1; //Sumaremos 1 a la variable "a"
  25.       }
  26.  
  27.       switch(a)  //sentencia de selección
  28.       {
  29.          case 1:  //en caso que "a" sea 1
  30.                   delay_ms(200); //Esperamos 200 milisegundos (Anti rebote del pulsador)
  31.                   portc=0x01; //Daremos un High en el Pin C0 (1 lógico = 5 Volt)
  32.                   break;  //continúa la ejecución de las instrucciones que le sigue
  33.          case 2:  //en caso que "a" sea 2
  34.                   portc=0x02; //Daremos un High en el Pin C1 (1 lógico = 5 Volt)
  35.                   delay_ms(200); //Esperamos 200 milisegundos (Anti rebote del pulsador)
  36.                   break; //continúa la ejecución de las instrucciones que le sigue
  37.          case 3: //en caso que "a" sea 3
  38.                   portc=0x00; //Volvemos a 0 todo el puerto C (0 lógico = 0 Volt)
  39.                   delay_ms(200); //Esperamos 200 milisegundos (Anti rebote del pulsador)
  40.                   break;  //continúa la ejecución de las instrucciones que le sigue
  41.          default: //Si el valor que toma "a" no coincide con los valores especificados, se realizarán las acciones definidas en la etiqueta default
  42.                   a=0; // la variable "a" vuelve a 0.
  43.                  
  44.       }
  45.      
  46.    }
  47.  
  48. }
  49.  

Lista de fusibles validos para PIC 16f690

1.00   LP   Low power osc < 200 khz
1.00   XT   Crystal osc <= 4mhz for PCM/PCH , 3mhz to 10 mhz for PCD
1.00   HS   High speed Osc (> 4mhz for PCM/PCH) (>10mhz for PCD)
1.00   EC_IO   External clock
1.00   INTRC_IO   Internal RC Osc, no CLKOUT
1.00   INTRC   Internal RC Osc
1.00   RC_IO   Resistor/Capacitor Osc
1.00   RC   Resistor/Capacitor Osc with CLKOUT
1.03   WDT   Watch Dog Timer
1.03   NOWDT   No Watch Dog Timer
1.04   PUT   Power Up Timer
1.04   NOPUT   No Power Up Timer
1.05   MCLR   Master Clear pin enabled
1.05   NOMCLR   Master Clear pin used for I/O
1.06   PROTECT   Code protected from reads
1.06   NOPROTECT   Code not protected from reading
1.07   CPD   Data EEPROM Code Protected
1.07   NOCPD   No EE protection
1.08   NOBROWNOUT   No brownout reset
1.08   BROWNOUT   Reset when brownout detected
1.08   BROWNOUT_NOSL   Brownout enabled during operation, disabled during SLEEP
1.08   BROWNOUT_SW   Brownout controlled by configuration bit in special file register
1.10   IESO   Internal External Switch Over mode enabled
1.10   NOIESO   Internal External Switch Over mode disabled
1.11   NOFCMEN   Fail-safe clock monitor disabled
1.11   FCMEN   Fail-safe clock monitor enabled

Diagrama electrónico en proteus.

.

link de descarga del proyecto: https://mega.co.nz/#!ksd11JKB!jsqX_U5Di6Qdxpe2sT9MMZtcNnRychQYrtbVm_aoUFg

3
Electrónica y Robótica / [ASM] Programando un PIC (Uso de Timer0)
« en: Enero 24, 2014, 08:20:44 pm »
Programa donde se muestra el funcionamiento y configuración de Timer0, y se demuestra el funcionamiento con led.

Código: ASM
  1. ;**********************************************************************
  2. ;    Timer0                                                           *
  3. ;**********************************************************************
  4. ;    Requiere archivos: P16F690.INC
  5. ;
  6. ;**********************************************************************
  7. ;    Notas:
  8. ;    Ejercicio para instrucciones para uso de Timer0                  *
  9. ;**********************************************************************
  10.  
  11.  
  12. #include <p16F690.inc>
  13.      __config (_INTRC_OSC_NOCLKOUT & _WDT_OFF & _PWRTE_OFF & _MCLRE_OFF & _CP_OFF & _BOR_OFF & _IESO_OFF & _FCMEN_OFF)
  14.  
  15.      cblock     0x20
  16.     Display
  17.      endc
  18.  
  19.      org 0
  20.          
  21. Inicio:
  22.      bsf       STATUS,RP0
  23.      movlw     b'00000111'    ; Configura Timer0.
  24.                ; --0-----       T0CS = 0, Reloj interno
  25.                ; ---0----       T0SE = 0, Incremento por flanco de subida
  26.                ; ----0---       PSA = 0, Prescaler a Tomer0
  27.                ; -----111       Prescaler 1/256
  28.      movwf     OPTION_REG
  29.      clrf      TRISC          ; Todo PORTC será salida
  30.      clrf      Display        ; Display comienza en cero
  31.      bcf       STATUS,RP0
  32.  
  33.  
  34. Principal:
  35.      btfss     INTCON,T0IF    ; Espera hasta que el Timer0 desborde
  36.      goto      Principal
  37.      bcf       INTCON,T0IF    ; La bandera debe ser puesta a cero por software
  38.      incf      Display,f      ; Incrementa Display
  39.      movf      Display,w      ; Envía a los LEDs
  40.      movwf     PORTC
  41.      goto      Principal
  42.  
  43.      end                                  ;Fin del programa
  44.  


descargar programa: https://mega.co.nz/#!cwVxBCzA!90_dSlCUWYgQI4KBjcmpKP4mVmDboFboaQpbJWCuLsU

4
Consiste en un programa básico desarrollado en ASM. para microcontrolador PIC 16f690. La función es entender y demostrar el funcionamiento de la conversión A/D. La señal análoga es proporcionada por un potenciometro, la cual es transformada en digital y se puede ver por el puerto C del microcontrolador.

Código: ASM
  1. ;**********************************************************************
  2. ;    Conversión Análogo/Digital                                       *
  3. ;**********************************************************************
  4. ;    Requiere archivos: P16F690.INC
  5. ;                       RETARDOS.INC
  6. ;**********************************************************************
  7. ;    Notas:
  8. ;    Ejercicio para instrucciones básicas de conversión A/D           *
  9. ;**********************************************************************
  10.  
  11. #include <p16F690.inc>
  12.      __config (_INTRC_OSC_NOCLKOUT & _WDT_OFF & _PWRTE_OFF & _MCLRE_OFF & _CP_OFF & _BOR_OFF & _IESO_OFF & _FCMEN_OFF)
  13.  
  14.      cblock 0x20
  15.      ;no se requieren variables auxiliares
  16.      endc
  17.  
  18.      org 0
  19. Start:
  20.      bsf       STATUS,RP0     ; Abre página de registro 1
  21.      movlw     0xFF
  22.      movwf     TRISA          ; PORTA será sólo entradas
  23.      clrf      TRISC          ; PORTC será sólo salidas
  24.      movlw     0x10           ; Frecuencia de conversión = Fosc/8
  25.      movwf     ADCON1
  26.  
  27.      bcf       STATUS,RP0     ; Abre página de registro 2
  28.      bsf       STATUS,RP1
  29.      movlw     0xFF           ; Todos los pines de PORTA serán entradas analógicas
  30.      movwf     ANSEL
  31.      bcf       STATUS,RP0     ; Regresa a página de registro 0
  32.      bcf       STATUS,RP1
  33.  
  34.      movlw     b'00000001'    ; Configura conversión A/D
  35.      movwf     ADCON0
  36.                ; 0-------       Justificación izquierda
  37.                ; -0------       Referencia a Vdd
  38.                ; --0000--       Selecciona Canal 00 (AN0)
  39.                ; -------1       Habilita conversor A/D
  40.  
  41. Principal:
  42.      call      Retardo_5micros ; Retardo de 5 us para inicializar conversor
  43.      bsf       ADCON0,GO       ; Inicia conversión
  44.      btfss     ADCON0,GO       ; el bit cambiará a cero cuando la conversión se complete
  45.      goto      $-1
  46.  
  47.      movf      ADRESH,w        ; Lee el resultado de la conversión
  48.      movwf     PORTC           ; y lo envía a los leds.
  49.      goto      Principal
  50.  
  51.      Include     <RETARDOS.INC>
  52.      end                            ;Fin del programa
  53.  
  54.  

Video de funcionamiento del conversor, solo habia 4 led en la placa entrenadora del pickit 2, asi que no se ven los 8 bits de conversión, pero sirve para entender el funcionamiento.


Link de descarga del proyecto: https://mega.co.nz/#!YkN3DQYJ!gZWVCOvUBBIf8Rilskane5q9W2iYfQodYKiKqbjRea8

5
Consiste en un contador desde 000 hasta 999 y después de terminar el conteo, comienza automáticamente desde 000.

Código: ASM
  1. ;**********************************************************************
  2. ;    Contador binario                                      
  3. ;**********************************************************************
  4. ;    Requiere archivos: P16F690.INC
  5. ;                       RETARDOS.INC                                
  6. ;**********************************************************************
  7.  
  8. ;**********************************************************************
  9.  
  10.         list            p=16f690                ;Especifica microcontrolador
  11.         #include        <P16F690.inc>
  12.  
  13. ;Fusibles de configuración
  14.      __config (_INTRC_OSC_NOCLKOUT & _WDT_OFF & _PWRTE_OFF & _MCLRE_OFF & _CP_OFF & _BOR_OFF & _IESO_OFF & _FCMEN_OFF)
  15.  
  16. ;ZONA DE DECLARACIÓN DE VARIABLES
  17. ;********************************
  18.     cblock 0x20
  19.     Cuenta        ;Registro para llevar el conteo
  20.     Unidad        ;Variable que lleva el conteo de unidades
  21.     Decena        ;Variable que lleva el conteo de Decenas
  22.     Centena       ;Variable que lleva el conteo de Centenas
  23.     Digito
  24.     endc
  25.  
  26. ;Define nombres descriptivos para constantes y puertos
  27. #define DISPLAY PORTC
  28.  
  29.  
  30. ;INICIALIZACION
  31. ;********************************
  32.         ORG             0x00            ;vector de reset
  33.  
  34. ;Registros de configuración
  35.         bsf     STATUS,RP0  ;Selecciona página #1
  36.     clrf    TRISC       ;PORTC será salida
  37.     clrf    TRISA       ;PORTA será salida
  38.         bcf     STATUS,RP0      ;Regresa a página #0
  39. ;Inicialización de variables
  40.     clrf    Cuenta      ;Cuenta comienza en cero
  41.     clrf    Unidad      ;comienza en cero
  42.     clrf    Decena      ;comienza en cero
  43.     clrf    Centena     ;comienza en cero
  44.  
  45. ;INSTRUCCIONES
  46. ;------------------------------------------------
  47. Inicio
  48.     incf    Cuenta,f        ;Incrementa el contador
  49.                             ;(Para el resto de instrucciones no estamos
  50.                             ;usando este registro aún)
  51. ComparaUnidad
  52.     movf    Unidad,w        ;Carga el registro Unidad en W
  53.     sublw   .9             ;Compara con 9 (9 - Unidad)
  54.     btfsc   STATUS,Z        ;¿Unidad = 9?
  55.     goto    IncrementaDecena ;Sí, incrementa decena
  56.     goto    IncrementaUnidad ;No, incrementa unidad
  57. IncrementaUnidad
  58.     incf    Unidad          ;Incrementa Unidad
  59.     goto    ComparaCentena   ;Salta a ComparaCentena
  60. IncrementaDecena
  61.     incf    Decena          ;Incrementa Decena
  62.     clrf    Unidad          ;Vuelve unidad a Cero
  63.     goto    ComparaCentena   ;Salta a ComparaCentena
  64.  
  65. ComparaCentena
  66.     movf    Decena,w        ;Carga el registro Unidad en W
  67.     sublw   .10            ;Compara con 9 (9 - Decena)
  68.     btfsc   STATUS,Z        ;¿Decena = 9?
  69.     goto    IncrementaCentena ;Sí, incrementa decena
  70.     goto    MuestraValores ;No, hace un salto a la etiqueta "MuestraValores"
  71.  
  72. IncrementaCentena
  73.     incf    Centena        ;Incrementa Centena
  74.     ;con esta parte del progrma vuelvo a 0 la variable centena cuando llega a 9
  75.     ;para iniciar nuevamente el ciclo de conteo
  76.     movf    Centena,w        ;Carga el registro Centena en W
  77.     sublw   .1,5            ;Compara con 10 (10 - Centena)
  78.     btfsc   STATUS,Z        ;¿Centena = 10?
  79.     clrf    Centena ;Sí, Deja en 0 la variable Centena
  80.     clrf    Decena ;No, Deja en 0 la variable Decena
  81.  
  82.  
  83.  
  84.  
  85. MuestraValores
  86.     call    EnviaUnidad     ;Activa el display de unidades
  87.     movf    Unidad,W        ;Carga en W el valor guardado en Unidad
  88.     call    MuestraDigito   ;lo envía al display
  89.     call    Retardo_10ms
  90.  
  91.     call    EnviaDecena     ;Activa el display de decenas
  92.     movf    Decena,W        ;Carga en W el valor guardado en Decena
  93.     call    MuestraDigito   ;lo envía al display
  94.     call    Retardo_10ms
  95.  
  96.     call    EnviaCentena     ;Activa el display de Centenas
  97.     movf    Centena,W        ;Carga en W el valor guardado en Centena
  98.     call    MuestraDigito   ;lo envía al display
  99.     call    Retardo_10ms
  100.  
  101.         goto    Inicio
  102.  
  103. ;SUBRUTINAS
  104. ;------------------------------------------------
  105. ;MuestraDigito selecciona el dígito a mostrar en display.
  106. ;Subrutinas Envia0 - Envia9 dibujan el dígito correspondiente
  107. ;en un display de 7 segmentos. EnviaE dibuja el caracter "E".
  108. ;La subrutina activa los segmentos de un display de cátodo común
  109. ;según la siguiente configuración:
  110. ;DISPLAY CATODO COMUN:       g   f   e   d   c   b   a
  111. ;PUERTO "DISPLAY" (PORTC):   RC6 RC5 RC4 RC3 RC2 RC1 RC0
  112.  
  113. MuestraDigito
  114.     movwf   Digito      ;Carga el valor de W en Dígito
  115.     movlw   .0          ;Compara con 0
  116.     xorwf   Digito,W
  117.     btfsc   STATUS,Z    ;Cuenta = 0?
  118.     goto    Envia0      ;Sí: Envia Dígito
  119.     movlw   .1          ;No: Compara con 1
  120.     xorwf   Digito,W
  121.     btfsc   STATUS,Z    ;Cuenta = 1?
  122.     goto    Envia1      ;Sí: Envia Dígito
  123.     movlw   .2          ;No: Compara con 2
  124.     xorwf   Digito,W
  125.     btfsc   STATUS,Z    ;Cuenta = 2?
  126.     goto    Envia2      ;Sí: Envia Dígito
  127.     movlw   .3          ;No: Compara con 3
  128.     xorwf   Digito,W
  129.     btfsc   STATUS,Z    ;Cuenta = 3?
  130.     goto    Envia3      ;Sí: Envia Dígito
  131.     movlw   .4          ;No: Compara con 4
  132.     xorwf   Digito,W
  133.     btfsc   STATUS,Z    ;Cuenta = 4?
  134.     goto    Envia4      ;Sí: Envia Dígito
  135.     movlw   .5          ;No: Compara con 5
  136.     xorwf   Digito,W
  137.     btfsc   STATUS,Z    ;Cuenta = 5?
  138.     goto    Envia5      ;Sí: Envia Dígito
  139.     movlw   .6          ;No: Compara con 6
  140.     xorwf   Digito,W
  141.     btfsc   STATUS,Z    ;Cuenta = 6?
  142.     goto    Envia6      ;Sí: Envia Dígito
  143.     movlw   .7          ;No: Compara con 7
  144.     xorwf   Digito,W
  145.     btfsc   STATUS,Z    ;Cuenta = 7?
  146.     goto    Envia7      ;Sí: Envia Dígito
  147.     movlw   .8          ;No: Compara con 8
  148.     xorwf   Digito,W
  149.     btfsc   STATUS,Z    ;Cuenta = 8?
  150.     goto    Envia8      ;Sí: Envia Dígito
  151.     movlw   .9          ;No: Compara con 9
  152.     xorwf   Digito,W
  153.     btfsc   STATUS,Z    ;Cuenta = 9?
  154.     goto    Envia9      ;Sí: Envia Dígito
  155.  
  156.  
  157. Envia0
  158.     movlw   b'00111111'
  159.     movwf   DISPLAY
  160.     return
  161. Envia1
  162.     movlw   b'00000110'
  163.     movwf   DISPLAY
  164.     return
  165. Envia2
  166.     movlw   b'01011011'
  167.     movwf   DISPLAY
  168.     return
  169. Envia3
  170.     movlw   b'01001111'
  171.     movwf   DISPLAY
  172.     return
  173. Envia4
  174.     movlw   b'01100110'
  175.     movwf   DISPLAY
  176.     return
  177. Envia5
  178.     movlw   b'01101101'
  179.     movwf   DISPLAY
  180.     return
  181. Envia6
  182.     movlw   b'01111100'
  183.     movwf   DISPLAY
  184.     return
  185. Envia7
  186.     movlw   b'00000111'
  187.     movwf   DISPLAY
  188.     return
  189. Envia8
  190.     movlw   b'01111111'
  191.     movwf   DISPLAY
  192.     return
  193. Envia9
  194.     movlw   b'01100111'
  195.     movwf   DISPLAY
  196.     return
  197.  
  198.  
  199. EnviaUnidad
  200.     movlw   b'00000110'
  201.     movwf   PORTA
  202.     return
  203. EnviaDecena
  204.     movlw   b'00000101'
  205.     movwf   PORTA
  206.     return
  207. EnviaCentena
  208.     movlw   b'00000011'
  209.     movwf   PORTA
  210.     return
  211.  
  212.     INCLUDE  <RETARDOS.INC>     ;Libreria de retardos
  213.     END ;Fiin del programa.
  214.  
  215.  

Esquemático en Proteus:



Link de descarga del proyecto: https://mega.co.nz/#!chdXXBAC!3qxPGomOGK3ZPSbo1Xsh0unUefEnyiNXgX8C-15botQ

6
Viendo el post que hizo "mr.blood" sobre programación ASM para PIC, quise colaborar aportando algunos programas sencillos.

Este proyecto consiste en controlar 2 motores paso a paso desde un pic 16f690, El sistema de control consiste en pulsadores para mover los motores en diferentes sentidos y sensores para no sobrepasar el limite del eje. Lo hice de esta manera porque use este programa para controlar el brazo de una CNC. También tiene una modalidad de prueba automática, que se activa presionando los 4 pulsadores al mismo tiempo.

Espero que sea de su utilidad.

Código: ASM
  1.  
  2. list            p=16f690                ;Especifica microcontrolador
  3. #include        <P16F690.inc>
  4.  
  5. ;Opciones de configuración
  6.      __config (_INTRC_OSC_NOCLKOUT & _WDT_OFF & _PWRTE_OFF & _MCLRE_OFF & _CP_OFF & _BOR_OFF & _IESO_OFF & _FCMEN_OFF)
  7.  
  8. ; '__CONFIG' se utiliza para acceder a opciones de configuración desde un archivo .asm
  9. ; Las etiquetas a que se hace referencia están definidas en el archivo .inc correspondiente
  10. ; Refiérase a la hoja de datos para conocer la función de casa etiqueta
  11.  
  12. ;ZONA DE DECLARACIÓN DE VARIABLES
  13. ;********************************
  14.     cblock 0x20
  15. Delay1                   ;Define 2 variables para retardo
  16. Delay2                   ;en las posiciones 0x20 y 0x21
  17.      endc
  18.  
  19. ;INICIALIZACION
  20. ;********************************
  21.      ORG        0x00            ;vector de reset
  22.  
  23.      CLRF    STATUS     ;Selecciona página #1
  24.  
  25.      bsf       STATUS,RP0     ; Abre página de registro 1
  26.      movlw     b'11011111'
  27.      movwf     TRISA          ; A5 salida, el resto entradas
  28.  
  29.      movlw     0xF0
  30.      movwf     TRISB          ; PORTB será sólo entradas
  31.  
  32.      clrf      TRISC          ; PORTC será sólo salidas
  33.  
  34.      bcf       STATUS,RP0     ; Abre página de registro 2
  35.      bsf       STATUS,RP1
  36.      movlw     0x00           ; Todos los pines de PortA serán entradas digitales
  37.      movwf     ANSEL
  38.      movlw     0x00           ; Todos los pines de PortB serán entradas digitales
  39.      movwf     ANSELH
  40.      bcf       STATUS,RP0     ; Regresa a página de registro 0
  41.      bcf       STATUS,RP1
  42.  
  43.  
  44. ;INSTRUCCIONES
  45. ;------------------------------------------------
  46. main:                         ;inicio
  47.     clrf PORTA                ;Iniciar en 0 Puerto A
  48.     clrf PORTB                ;Iniciar en 0 Puerto B
  49.     clrf PORTC                ;Iniciar en 0 Puerto C
  50. test:                   ;En esta subrutina se verificara si los 4 entradas están activas
  51.     BTFSS       PORTA,0 ;Si Port A0 = 0 salta a la etiqueta up, si es 1 verificara el estado de A1
  52.     goto        up
  53.     BTFSS       PORTA,1 ;Si Port A1 = 0 salta a la etiqueta up, si es 1 verificara el estado de A2
  54.     goto        up
  55.     BTFSS       PORTA,2 ;Si Port A2 = 0 salta a la etiqueta up, si es 1 verificara el estado de A4
  56.     goto        up
  57.     BTFSS       PORTA,4 ;Si Port A4 = 0 salta a la etiqueta up, si es 1 verificara salta a la  subrutina Test_Motor
  58.     goto        up
  59.     goto        Test_Motor
  60. up:
  61.     BTFSS       PORTA,0       ;Si PORT A0 es 1 salta una linea, si es 0 lee la siguiente
  62.     goto        down          ;Ir a etiqueta Down
  63.     BTFSS       PORTB,4       ;Si Port B4 esta en 0 leerá linea siguiente
  64.                               ;Sistema de seguridad asociado a Sensor 1
  65.     goto        Motor_Up      ;Ir a subrutina Motor_Up
  66.     goto        main          ;Volver a etiqueta main
  67. down:
  68.     BTFSS       PORTA,1       ;Si PORT A1 es 1 salta una linea
  69.     goto        left
  70.     BTFSS       PORTB,5
  71.     goto        Motor_Down
  72.     goto        main
  73. left:
  74.     BTFSS       PORTA,2       ;Si PORT A2 es 1 salta una linea
  75.     goto        right
  76.     BTFSS       PORTB,6
  77.     goto        Motor_Left
  78.     goto        main
  79. right:
  80.     BTFSS       PORTA,4       ;Si PORT A4 es 1 salta una linea
  81.     goto        main
  82.     BTFSS       PORTB,7
  83.     goto        Motor_Right
  84.     goto        main
  85.  
  86. ;Subrutinas
  87. ;--------------------------------------------------
  88.  
  89. Motor_Up:  ;Con esa subrutina el motor 1 gira hacia la izquierda
  90.     movlw    b'00000011'
  91.     movwf      PORTC
  92.     bsf        PORTA,5        ;Enciende led indicador
  93.     call    Retardo_100ms
  94.     movlw    b'00000110'
  95.     movwf      PORTC
  96.     call    Retardo_100ms
  97.     movlw    b'00001100'
  98.     movwf      PORTC
  99.     call    Retardo_100ms
  100.     movlw    b'00001001'
  101.     movwf      PORTC
  102.     bcf        PORTA,5        ;Apaga led indicador
  103.     call    Retardo_100ms
  104.     goto    main
  105.  
  106. Motor_Down: ;Con esa subrutina el motor 1 gira hacia la derecha
  107.     movlw    b'00001100'
  108.     movwf      PORTC
  109.     bsf        PORTA,5        ;Enciende led indicador
  110.     call    Retardo_100ms
  111.     movlw    b'00000110'
  112.     movwf      PORTC
  113.     call    Retardo_100ms
  114.     movlw    b'00000011'
  115.     movwf      PORTC
  116.     call    Retardo_100ms
  117.     movlw    b'00001001'
  118.     movwf      PORTC
  119.     bcf        PORTA,5        ;Apaga led indicador
  120.     call    Retardo_100ms
  121.     goto    main
  122.  
  123. Motor_Left: ;Con esa subrutina el motor 2 gira hacia la izquierda
  124.     movlw    b'00110000'
  125.     movwf      PORTC
  126.     bsf        PORTA,5        ;Enciende led indicador
  127.     call    Retardo_100ms
  128.     movlw    b'01100000'
  129.     movwf      PORTC
  130.     bcf        PORTA,5        ;Apaga led indicador
  131.     call    Retardo_100ms
  132.     movlw    b'11000000'
  133.     movwf      PORTC
  134.     bsf        PORTA,5        ;Enciende led indicador
  135.     call    Retardo_100ms
  136.     movlw    b'10010000'
  137.     movwf      PORTC
  138.     bcf        PORTA,5        ;Apaga led indicador
  139.     call    Retardo_100ms
  140.     goto    main
  141.  
  142. Motor_Right: ;Con esa subrutina el motor 1 gira hacia la derecha
  143.     movlw    b'11000000'
  144.     movwf      PORTC
  145.     bsf        PORTA,5        ;Enciende led indicador
  146.     call    Retardo_100ms
  147.     movlw    b'01100000'
  148.     movwf      PORTC
  149.     bcf        PORTA,5        ;Apaga led indicador
  150.     call    Retardo_100ms
  151.     movlw    b'00110000'
  152.     movwf      PORTC
  153.     bsf        PORTA,5        ;Enciende led indicador
  154.     call    Retardo_100ms
  155.     movlw    b'10010000'
  156.     movwf      PORTC
  157.     bcf        PORTA,5        ;Apaga led indicador
  158.     call    Retardo_100ms
  159.     goto    main
  160.  
  161. Test_Motor:
  162.  
  163.     bsf        PORTA,5        ;Enciende led indicador
  164.     Motor1_Up:                ;Motor 1 girara hacia la izquierda
  165.     movlw    b'00000011'
  166.     movwf      PORTC
  167.     call    Retardo_100ms
  168.     movlw    b'00000110'
  169.     movwf      PORTC
  170.     call    Retardo_100ms
  171.     movlw    b'00001100'
  172.     movwf      PORTC
  173.     call    Retardo_100ms
  174.     movlw    b'00001001'
  175.     movwf      PORTC
  176.     call    Retardo_100ms
  177.     BTFSS       PORTB,4     ;Si Port B4 = 0, lee la linea siguiente, si es 1 Salta una linea
  178.     goto                Motor1_Up   ;Si Port B4 (Sensor1) es 0, vuelve a leer la subrutina Motor1_Up
  179.     goto        Motor1_Down ;Si Port B4 es 1 saltara a la subrutina Motor1_Down
  180.     Motor1_Down:            ;Motor 1 girara hacia la derecha
  181.     movlw    b'00001100'
  182.     movwf      PORTC
  183.     call    Retardo_100ms
  184.     movlw    b'00000110'
  185.     movwf      PORTC
  186.     call    Retardo_100ms
  187.     movlw    b'00000011'
  188.     movwf      PORTC
  189.     call    Retardo_100ms
  190.     movlw    b'00001001'
  191.     movwf      PORTC
  192.     call    Retardo_100ms
  193.     BTFSS       PORTB,5     ;Si Port B5 = 0, lee la linea siguiente, si es 1 Salta una linea
  194.     goto                Motor1_Down ;Si Port B5 (Sensor2) es 0, vuelve a leer la subrutina Motor1_Down
  195.     goto        Motor2_Left ;Si Port B5 es 1 saltara a la subrutina Motor1_Left
  196.     Motor2_Left:            ;Motor 2 girara hacia la izquierda
  197.     movlw    b'00110000'
  198.     movwf      PORTC
  199.     call    Retardo_100ms
  200.     movlw    b'01100000'
  201.     movwf      PORTC
  202.     call    Retardo_100ms
  203.     movlw    b'11000000'
  204.     movwf      PORTC
  205.     call    Retardo_100ms
  206.     movlw    b'10010000'
  207.     movwf      PORTC
  208.     call    Retardo_100ms
  209.     BTFSS       PORTB,6      ;Si Port B6 = 0, lee la linea siguiente, si es 1 Salta una linea
  210.     goto                Motor2_Left  ;Si Port B6 (Sensor3) es 0, vuelve a leer la subrutina Motor1_Left
  211.     goto        Motor2_Right ;Si Port B6 es 1 saltara a la subrutina Motor1_Right
  212.     Motor2_Right:            ;Motor 2 girara hacia la Derecha
  213.     movlw    b'11000000'
  214.     movwf      PORTC
  215.     call    Retardo_100ms
  216.     movlw    b'01100000'
  217.     movwf      PORTC
  218.     call    Retardo_100ms
  219.     movlw    b'00110000'
  220.     movwf      PORTC
  221.     call    Retardo_100ms
  222.     movlw    b'10010000'
  223.     movwf      PORTC
  224.     call    Retardo_100ms
  225.     BTFSS       PORTB,7       ;Si Port B7 = 0, lee la linea siguiente, si es 1 Salta una linea
  226.     goto                Motor2_Right  ;Si Port B7 (Sensor4) es 0, vuelve a leer la subrutina Motor1_Right
  227.     clrf        PORTC         ;Si Port B7 es 1 limpia Port C
  228.     bcf         PORTA,5       ;Si Port B7 es 1 Apaga Led indicador
  229.     goto        main          ;Si Port B7 es 1 Vuelve a la etiqueta main
  230.  
  231.  
  232.     Include <RETARDOS.INC>  ;Incluimos la libreria llamada RETARDOS.INC
  233.     END                 ;fin del programa
  234.  

Adjunto el circuito esquemático para la simulación en proteus, de igual forma dejare al final del post el .DSN, las librerías que utilice y el .ASM



Link de descarga del proyecto completo: https://mega.co.nz/#!AlMnWDoa!1YwqBkBNcht1p3aqYTiAeVmcHbQGUK3zzL6UYttuyf0

Páginas: [1]