Autor Tema: PIC16F887 ENSAMBLADOR  (Leído 71 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado ERos

  • PIC10
  • *
  • Mensajes: 4
PIC16F887 ENSAMBLADOR
« en: 12 de Marzo de 2019, 13:34:15 »
Buenas, he conseguido modificar este código, el objetivo es hacer que se encienda el puerto de salida al quinto pulso y se apague al tercero y se vuelva a encender al quinto, en este ejemplo simplemente se enciende al tercero y se apaga al quinto ¿Qué modificaciones me sugieren realizar?
Código: [Seleccionar]
bucle
       movf TMR0,W ; copio el valor del TMR0 al w
       xorlw .5 ; XOR entre w y el valor 2, osea a los 2 pulsos deveria de activarse el led, si no, pues a seguir esperando
       btfsc STATUS,Z
       goto cambio
       bsf PORTC,0
       bcf PORTC,1
       goto bucle
cambio
       bcf PORTC,0
       bsf PORTC,1
cambio1
       movf TMR0,W
       xorlw .3 ;ahora  una vez que se me activó con el segundo pulso, espero al quinto pulso para hacer lo mismo
     

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 7089
Re:PIC16F887 ENSAMBLADOR
« Respuesta #1 en: 12 de Marzo de 2019, 15:51:30 »
No entendi si buscas que se pongan 5 pulsos y se encienda, luego 3 pulsos mas y se apague. Esta es simple.
O queres que dentro de 3 segundo por ejemplo, si tocas 5 veces se encienda, pero solo 3 veces se apague. Lo veo mas complicado a esta.

Código: ASM
  1. bucle
  2.        movf TMR0,W      ; copio el valor del TMR0 al w
  3.        BTFSC  PORTC, 0  ; Esta apagado RC0 ?
  4.        GOTO encender
  5.  
  6. apagar:      
  7.        xorlw .5         ; XOR entre w y el valor 2, osea a los 2 pulsos deveria de activarse el led, si no, pues a seguir esperando
  8.        btfsc STATUS,Z
  9.        goto bucle
  10.        BSF  PORTC, 0
  11.        CLRF TMR0
  12.        goto bucle
  13.  
  14. encender:
  15.        xorlw .3
  16.        BTFSS STATUS, Z
  17.        goto  bucle
  18.        BCF   PORTC, 0
  19.        CLRF TMR0
  20.        goto  bucle


 

anything