Autor Tema: HACER UN IF EN PIC16F627A  (Leído 1949 veces)

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

Desconectado Marin

  • PIC10
  • *
  • Mensajes: 1
HACER UN IF EN PIC16F627A
« en: 10 de Septiembre de 2016, 18:18:39 »
Disculpen quisiera que me ayudaran a saber como hacer un if en ensamblador del pic16f627a
el problema es el siguiente: con la entrada digital en el puerto A cuando sea igual a un 50 se debe de entrar a una subrutina y cuando sea 60 debe entrar en otra diferente y cuando no tenga nada o sea diferente de esos dos valores no debe hacer nada.

Gracias por su ayuda de antemano
« Última modificación: 10 de Septiembre de 2016, 18:22:32 por Marin »

Desconectado elreypic2

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1297
Re:HACER UN IF EN PIC16F627A
« Respuesta #1 en: 10 de Septiembre de 2016, 18:46:53 »
Que tal Marin,

En realidad hacer un "IF" en ensamblador no tiene mucho problema, en tu caso seria algo asi:

movf      porta,w     ;Mueve el valor del puerto A al registro W
xorlw      .50           ;Compara el registro de trabajo con un 50 decimal
btfss      status,z    ;Se ha levantado la bandera de "zero" del registro status? (Es decir el puerto A es igual a 50?)
goto      compara_60   ;No, entonces ve a preguntar por el otro valor
gosub    tu_subrutina
....
compara_60:
movf      porta,w
xorlw     .60
btfss     status,z
goto     a_otro_lugar
gosub   subrutina_60

Esta es la idea, ojala te sirva.

Elreypic.


 

anything