TODOPIC

Microcontroladores PIC => Primeros pasos - Iniciación a los microcontroladores => Mensaje iniciado por: Marin en 10 de Septiembre de 2016, 18:18:39

Título: HACER UN IF EN PIC16F627A
Publicado por: Marin 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
Título: Re:HACER UN IF EN PIC16F627A
Publicado por: elreypic2 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.