Hola Comunidad!
Me podrian ayudar con este programita, la verdad es que no se mucho de este lenguaje,lo que se tiene que hacer es lo siguiente:
1.- Ultilice RAX como pipn de control y como salida PORTB (RB0 - RB7) de modo que:
a) Si el bit 0 del PORTA = 1, Se encienden todos los bits del nibble alto (de RB4 a RB7)
b) Si el bit 0 del PORTA = 0, se encienden todos los bits del nibble bajo (de RB0 a RB3)
por favor espero puedan ayudarme, de antemano GRACIAS! C:
http://www.portalhacker.net/index.php/topic,155864.0.html
Ahí te dejo la base. Modifica el código de acuerdo a tus necesidades!
Sa1uDoS
Gracias Mr.Blood !
la verdad casi no le entiendo, y no supe que modificar xD
mira el maestro nos dio este!
__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC
LIST P=16F84A
INCLUDE <P16F84A.INC>
Numero EQU d'13'
ORG 0 ; El programa comienza en la direccion 0.
Inicio
bsf STATUS,RP0 ; Acceso al banco 1.
clrf TRISB ; Las lineas del puerto B se configuran como salida.
movlw b'00011111' ; Las 5 lineas del puerto A se configuran como entrada.
movwf TRISA
bcf STATUS,RP0 ; Acceso al banco 0.
Principal
movlw Numero ; Carga el numero a comparar.
subwf PORTA,W ; (PORTA) - Numero --> (W)
movlw b'11110000' ; Supone (PORTA) es menor.
btfss STATUS,C ; ¿C=1?, ¿(W) positivo?, ¿(PORTA) >= Numero?.
goto ActivaSalida ; No. C=0, por tanto (PORTA) < Numero.
movlw b'11111111' ; Supone que son iguales.
btfsc STATUS,Z ; ¿Z=0?, ¿son distintos?.
goto ActivaSalida ; No. Son iguales ya que z = 1,
movlw b'01010101' ; Si, por tanto (PORTA) > Numero.
ActivaSalida
movwf PORTB ; Resultado se visualiza por el puerto de salida.
goto Principal ; Crea un bucle cerrado e infinito.
END
& lo que yo hice fue modificar solo los ActivaSalida!
__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC
LIST P=16F84A
INCLUDE <P16F84A.INC>
Numero EQU d'13'
ORG 0 ; El programa comienza en la direccion 0.
Inicio
bsf STATUS,RP0 ; Acceso al banco 1.
clrf TRISB ; Las lineas del puerto B se configuran como salida.
movlw b'00011111' ; Las 5 lineas del puerto A se configuran como entrada.
movwf TRISA
bcf STATUS,RP0 ; Acceso al banco 0.
Principal
movlw Numero ; Carga el numero a comparar.
subwf PORTA,W ; (PORTA) - Numero --> (W)
movlw b'11110000' ; Supone (PORTA) es menor.
btfss STATUS,C ; ¿C=1?, ¿(W) positivo?, ¿(PORTA) >= Numero?.
goto ActivaSalida ; No. C=0, por tanto (PORTA) < Numero.
movlw b'11110000' ; Supone que son iguales.
btfsc STATUS,Z ; ¿Z=0?, ¿son distintos?.
goto ActivaSalida ; No. Son iguales ya que z = 1,
movlw b'00001111' ; Si, por tanto (PORTA) > Numero.
ActivaSalida
movwf PORTB ; Resultado se visualiza por el puerto de salida.
goto Principal ; Crea un bucle cerrado e infinito.
END
esta bien ???
jaja es que de plano estoy en ceros en esto ! :SS