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

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Informática
| |-+  Electrónica
| | |-+  Pasar 1 a PUERTO B Ensamblador
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Pasar 1 a PUERTO B Ensamblador  (Leído 8,689 veces)
Riki_89D


Desconectado Desconectado

Mensajes: 851


BCN CITY


Ver Perfil
Pasar 1 a PUERTO B Ensamblador
« en: 15 Abril 2011, 17:06 pm »

Hola que tal,veran asta ahora para enviar "1" al puerto RB0 usaba esto:

Código
  1. bsf PORTB,0
  2.  

eso va bn pero,e ehco una ejercicio que escribe en la EEPROM un 1,despues lo lee i lo guarda en un registro "R1" (0x0C)

y para comprobar si lo hace correctamente quiero pasar R1 al RB0,pero nose como hacerlo,alguein puede ayudarme?¿



saludos


En línea

skapunky
Electronik Engineer &
Colaborador
***
Desconectado Desconectado

Mensajes: 3.667


www.killtrojan.net


Ver Perfil WWW
Re: Pasar 1 a PUERTO B Ensamblador
« Respuesta #1 en: 15 Abril 2011, 17:29 pm »

Te cuento, como siempre bajo Atmel que es lo que yo domino. Los Atmel puedes declarar o hay en las librerias registros con los que poder pasar valores, direccionamiento indirectos etc... Además casualmente se suelen llamar R1, R2...no se si será casualidad.

Lo que quieres hacer, en caso de atmel se podría hacer con un mov directamente, asi:

mov PortB, R1


o por ejemplo utilizando el registro auxiliar B.

mov B, 11111111b
mov PORTB, B


En tu caso, imagino que puedes aplicar diréctamente el registro R1 sobre PORTB, almenos podrías probarlo. De PIC todo lo que hago es en C, que es muchísimo mas fácil y corto programar.


En línea

Killtrojan Syslog v1.44: ENTRAR
Riki_89D


Desconectado Desconectado

Mensajes: 851


BCN CITY


Ver Perfil
Re: Pasar 1 a PUERTO B Ensamblador
« Respuesta #2 en: 15 Abril 2011, 17:39 pm »

por lo que veo,cuano usas el registro auxiliar B,pones 1 en todos los puertos B,no?¿yo me referia solo poner uno (B0) con el valor de R1,pero sin usar bsf,me explico?



gracias de antemano amigo
En línea

Riki_89D


Desconectado Desconectado

Mensajes: 851


BCN CITY


Ver Perfil
Re: Pasar 1 a PUERTO B Ensamblador
« Respuesta #3 en: 15 Abril 2011, 19:19 pm »

Oye,se me a ocurrido una cosa,la instruccion movf se usaria asin:
Código
  1. movf PORTB,R1
  2.  

mi pregunta es,el PORTB  tiene 8 bits que son los 8 pines B del PIC,cuando ejecuto esa instruccion el valor de R1 en que bit se pone? en el 1 (RB0) supongo no?¿ si es asin,como poria rotar ese bit a la posicion qu yo quiero,osea moverlo a la izquierda para ponerlo en el pin que yo quiera?¿

aun que creo que en Atmel que es el que usas tu,los MOV son diferentes xd,son como el ensamblador del PC,tu cuando haces esto:
Código
  1. MOV portb,b
  2.  

pasas el contenido de "b" a porb verad?¿


en el del 16f84 es al reves:
Código
  1. movf portb,b
  2.  

alli es viceversa,portb pasa a "b" xd

corrigeme si me equivoco pero es lo que me parece...xd



saludos

« Última modificación: 15 Abril 2011, 19:45 pm por Riki_89D » En línea

skapunky
Electronik Engineer &
Colaborador
***
Desconectado Desconectado

Mensajes: 3.667


www.killtrojan.net


Ver Perfil WWW
Re: Pasar 1 a PUERTO B Ensamblador
« Respuesta #4 en: 15 Abril 2011, 21:36 pm »

Vale, un solo pin, pues sencillo, en atmel seria:

PORTB.0 equ {direccion que sea}
PORTB.0 = 1

o puedes hacer:

PORTB equ {dirección que sea}
PORTB = 00000001b

Las dos cosas són equivalentes. Si, en Atmel que es la arquitectura 8086, por eso el asm es diferente ligeramente los MOV son MOV, no se usa MOVW o MOVF...en ese sentido es mas sencillo aunque la programación de atmels luego se complica mas.

Por eso, cuando descubrí el C dije adiós al Assembler xd.

Tema rotación: Para atmel hay dos instrucciones de rotación de bits de un puerto, para PIC's se utiliza las instrucciónes:

rrf -> Rota a la derecha 1 bit.

ej: si el puerto valia 00000001 ahora vale 100000000

rlf --> Rota a la izquierda un bit.

ej: si puerto vale 00000001 ahora vale 00000010


En atmel:

mov PORTB, R1

El contenido de R1 pasa al puerto, no al revés, es igual que los PIC.
En línea

Killtrojan Syslog v1.44: ENTRAR
Riki_89D


Desconectado Desconectado

Mensajes: 851


BCN CITY


Ver Perfil
Re: Pasar 1 a PUERTO B Ensamblador
« Respuesta #5 en: 15 Abril 2011, 22:46 pm »

Okey,es verdad y sabia la existencia de esas dos funciones :) que bobo soy,hablando de esto del ASM,yo tambien programe en C,pero me pase al ASM,me cae mejor,parece una tonteria pero nose,me gusta mas aparate que e slo que nos enseñan,es que el profesor dice que con ASM puedes controlar la mas minima parte del PIC,y que si fuera para PC no valdira la pena,pero para Microcontroladores va muy bien,ya que son programas mas rapidos,y pequeños,y en el caso de los PIC hya que tener en cuenta el tamaño del programa etc etc etc,unos rollazos que nos pega xd en fin
volvieno al tema,una ultima duda


cuando yo ago:

movf R1,PUERTOB


eso pasa R1 a PuertoB

el puertoB tiene 8 bits,el bit de R1 en que posicion de PORTB se pone? en el bit 1 o en el  2o en cual?¿
« Última modificación: 15 Abril 2011, 22:50 pm por Riki_89D » En línea

skapunky
Electronik Engineer &
Colaborador
***
Desconectado Desconectado

Mensajes: 3.667


www.killtrojan.net


Ver Perfil WWW
Re: Pasar 1 a PUERTO B Ensamblador
« Respuesta #6 en: 16 Abril 2011, 00:29 am »

Hay un pequeño error de concepto, en PIC el direccionamiento de valores a puertos hazlo así, a ver si funciona:

movlw b'00000001'
movwf PORTB


En teoria ese fragmento deberia sacar 00000001 por el puerto B, Atmel y Microchip sus ensambladores son distíntos y se usan de diferente forma. El ej que has puesto es una fusión entre atmel y microchip xd. Prueba como te puesto.

El equivalente de B de atmel en PIC seria W.
En línea

Killtrojan Syslog v1.44: ENTRAR
Riki_89D


Desconectado Desconectado

Mensajes: 851


BCN CITY


Ver Perfil
Re: Pasar 1 a PUERTO B Ensamblador
« Respuesta #7 en: 16 Abril 2011, 02:24 am »

Hola,lo probe y funciono perfetcamente gracias por todo :)
En línea

pic16f84a

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Re: Pasar 1 a PUERTO B Ensamblador
« Respuesta #8 en: 29 Diciembre 2013, 23:00 pm »

una pregunta?? si yo quiero poner en cero un bit de salida del puerto b por ejemplo RB0 ocupo esto..........bcf portb,0   .........PONGO ENCERO LA SALIDA DEL BIT 0 DEL PUERTOB.......PERO AHORA QUIRO PONER EN CERO 2 PUERTOS COMO LA HAGO???????????
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
¿Alguien sabe pasar codigo C a ensamblador ?
Ingeniería Inversa
Thor 2 5,342 Último mensaje 11 Diciembre 2004, 20:21 pm
por Thor
Pasar programa C a ensamblador « 1 2 3 »
Programación General
dreams88 21 35,166 Último mensaje 14 Septiembre 2016, 15:00 pm
por elig
Liberar puerto paralelo en ensamblador
ASM
danielo- 5 6,322 Último mensaje 8 Noviembre 2010, 03:10 am
por bizco
Pasar a código ensamblador [Ayuda]
ASM
leogtz 6 10,874 Último mensaje 6 Diciembre 2011, 21:41 pm
por leogtz
Pasar de c++ a ensamblador
Programación C/C++
kur79 6 9,952 Último mensaje 1 Enero 2015, 17:13 pm
por kur79
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines