Autor
|
Tema: Pasar 1 a PUERTO B Ensamblador (Leído 9,075 veces)
|
Riki_89D
Desconectado
Mensajes: 851
BCN CITY
|
Hola que tal,veran asta ahora para enviar "1" al puerto RB0 usaba esto: bsf PORTB,0
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
Mensajes: 3.667
www.killtrojan.net
|
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
Mensajes: 851
BCN CITY
|
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
Mensajes: 851
BCN CITY
|
Oye,se me a ocurrido una cosa,la instruccion movf se usaria asin: movf PORTB,R1
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: MOV portb,b
pasas el contenido de "b" a porb verad?¿ en el del 16f84 es al reves: movf portb,b
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
Mensajes: 3.667
www.killtrojan.net
|
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
Mensajes: 851
BCN CITY
|
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
Mensajes: 3.667
www.killtrojan.net
|
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
Mensajes: 851
BCN CITY
|
Hola,lo probe y funciono perfetcamente gracias por todo
|
|
|
En línea
|
|
|
|
pic16f84a
Desconectado
Mensajes: 2
|
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
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
¿Alguien sabe pasar codigo C a ensamblador ?
Ingeniería Inversa
|
Thor
|
2
|
5,540
|
11 Diciembre 2004, 20:21 pm
por Thor
|
|
|
Pasar programa C a ensamblador
« 1 2 3 »
Programación General
|
dreams88
|
21
|
36,633
|
14 Septiembre 2016, 15:00 pm
por elig
|
|
|
Liberar puerto paralelo en ensamblador
ASM
|
danielo-
|
5
|
6,531
|
8 Noviembre 2010, 03:10 am
por bizco
|
|
|
Pasar a código ensamblador [Ayuda]
ASM
|
leogtz
|
6
|
11,213
|
6 Diciembre 2011, 21:41 pm
por leogtz
|
|
|
Pasar de c++ a ensamblador
Programación C/C++
|
kur79
|
6
|
10,305
|
1 Enero 2015, 17:13 pm
por kur79
|
|