elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Ejercicios
| | | |-+  Programa de leds en ensamblador (MPLAB) con PIC16F84A
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Programa de leds en ensamblador (MPLAB) con PIC16F84A  (Leído 16,699 veces)
Magiiq

Desconectado Desconectado

Mensajes: 13


Magiiq!C:


Ver Perfil
Programa de leds en ensamblador (MPLAB) con PIC16F84A
« en: 21 Mayo 2013, 18:47 pm »

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:


En línea

mr.blood

Desconectado Desconectado

Mensajes: 150


Ver Perfil
Re: Programa de leds en ensamblador (MPLAB) con PIC16F84A
« Respuesta #1 en: 21 Mayo 2013, 18:57 pm »

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


En línea

Magiiq

Desconectado Desconectado

Mensajes: 13


Magiiq!C:


Ver Perfil
Re: Programa de leds en ensamblador (MPLAB) con PIC16F84A
« Respuesta #2 en: 21 Mayo 2013, 19:15 pm »

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
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Pasar programa C a ensamblador « 1 2 3 »
Programación General
dreams88 21 35,023 Último mensaje 14 Septiembre 2016, 15:00 pm
por elig
programa de PIC con MPLAB
Ejercicios
fumi 0 5,295 Último mensaje 16 Junio 2010, 05:07 am
por fumi
flujo programa ensamblador
Ingeniería Inversa
fumioli 4 3,217 Último mensaje 7 Abril 2013, 19:21 pm
por fumioli
Ayuda con programa en MPLAB
Ejercicios
Alexsia 1 2,790 Último mensaje 14 Febrero 2015, 17:45 pm
por engel lex
Ayuda PIC16F84A en lenguaje C mplab
Programación C/C++
SamuraiAlf 2 2,476 Último mensaje 2 Febrero 2016, 20:47 pm
por Eternal Idol
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines