Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > ASM y Microcontroladores
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 17-07-2008
REHome REHome is offline
Miembro
 
Registrado: jul 2003
Ubicación: España
Posts: 454
Poder: 21
REHome Va por buen camino
Hola mi muy distinguido amigo:

Gracias por el Links http://www.win.tue.nl/~aeb/comp/8051/set8051.html

Dices que los pobres sólos 35 instrucciones son engorrosas y ese enlace veo que es más engorroso. Este PIC de de gama media de 8 Bits, las de Gama alta son de 77 + (hasta 84 con instrucciones especiales para cada PIC), los la serie 18F, las de 32 Bits mejor ni nombrarlas, las instrucciones son diferentes hasta los nombres y forma de programar.

Voy echar un vistazo ese enlace.

Saludos.
__________________
http://electronica-pic.blogspot.com....n-arduino.html Manuales de electrónica general, PIC y Arduino.
Responder Con Cita
  #2  
Antiguo 18-07-2008
JoseFco JoseFco is offline
Baneado
 
Registrado: dic 2007
Posts: 1.861
Poder: 0
JoseFco cantidad desconocida en este momento
Cita:
Empezado por REHome Ver Mensaje
Hola mi muy distinguido amigo:

Gracias por el Links http://www.win.tue.nl/~aeb/comp/8051/set8051.html

Dices que los pobres sólos 35 instrucciones son engorrosas y ese enlace veo que es más engorroso. Este PIC de de gama media de 8 Bits, las de Gama alta son de 77 + (hasta 84 con instrucciones especiales para cada PIC), los la serie 18F, las de 32 Bits mejor ni nombrarlas, las instrucciones son diferentes hasta los nombres y forma de programar.

Voy echar un vistazo ese enlace.

Saludos.
Engorrosas para tratar de crear el ASM sin ayuda de un programa, a mano o a cara como te refieres.(con un papel ,un lapiz,tus ojos y usando tu mente)El codigo para un PIC 16F84A es una locura y un reto para cualguier experimentado.Alguien que lea este post dira y que sentido tiene tratar de hacer algo que un programita lo hace en unos segundos? mucha razon en eso.Pero existen algunos locos y me incluyo en esa lista que nos gustan estas cosas.Yo aprendi uC metiendo codigo hex dentro de ellos a mano 30 89 FD asi, el primer copilador fue uno de Systronic en Basico y ya para ese entonces era un experimentado en los 8051.
Los instruction codes para el 8051 tu los vez mas engorrosos y es lo que me pasa si trato de leer algo escrito en Chino(como es el caso de los PIC, no quiere decir que porque yo no entienda ese idioma es feo o no es bueno, simplemente que no puedo entender lo que no se.)Pero el codigo del 8051 a pesar de ser 256 funciones diferentes ,unas de ellas de 8 bits, 16 bits y 24 bits.Estan escritas en forma directa y usas todos los bits de un byte de instrucion.esto no pasa en el caso del 16F84A que no todos los bits de una instrucion son usados.Yo puedo ver un intelhex file escrito para un 8051 y sin la ayuda de un programa, pasarlo a ASM sin mucho problema.Esto como decia no es una practica comun, pero tiene sus ventajas tu poder leer el idioma que finalmente interpretan los uC y es que mirando un HEX te puedes dar cuenta de algun error.
Si algun dia incurcionas en los 8051 y sus parientes como lo son los Atmel 89xx te daras cuenta de lo que digo.

Un Saludo.

Última edición por JoseFco fecha: 18-07-2008 a las 00:05:12.
Responder Con Cita
  #3  
Antiguo 18-07-2008
REHome REHome is offline
Miembro
 
Registrado: jul 2003
Ubicación: España
Posts: 454
Poder: 21
REHome Va por buen camino
Los AVR de Atmel, PIC de Microchip, Motorola ahora Freescale, la verdad todos microcontroladores de diferentes tecnologías que pueden hacer lo mismo si lo deseas. Aunque hay unos mejores que otros.

El 16F84A es ya anticuado, si caso es mejor el 16F88 o 16F876 o 16F876 de gama media, los de gama alta 18F2550, 18F4550 están muy bien y preparados para lenguajes como el C.

Los PIC se programa con un editor oficial gratuito, ahora ya por la v8.14, ahí puedes analizar el código paso por paso.

Ah, la primera vez lo vi engorroso y nunca pensaba que iba a manejar los PIC porque me parecían verdaderamente complicados, pero estudiando con un buen libro www.pic16F84a.com entenderás que puedes hacer mil cosas, eso si, el 8051 es mejor, el 16F84 es para aprender a entender, después eliges lo que quieras.

MPLAB por si siente curiosidad.
__________________
http://electronica-pic.blogspot.com....n-arduino.html Manuales de electrónica general, PIC y Arduino.
Responder Con Cita
  #4  
Antiguo 18-07-2008
REHome REHome is offline
Miembro
 
Registrado: jul 2003
Ubicación: España
Posts: 454
Poder: 21
REHome Va por buen camino
Para que sepa como lo programé y d qué va.

Cita:

;************************************** PIC16F84A.asm ************************************
;Si el puerto A está activo o a 1, se desactiva el PORTB,6 y se activa PORTB,7
;Si el puerto o PORTA,0 está a 0, ocurre lo contrario.
; ZONA DE DATOS **********************************************************************

__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC ; Configuración para el
; grabador.
LIST P=16F84A ; Procesador.
INCLUDE <P16F84A.INC> ; Definición de los operandos utilizados.

; ZONA DE CÓDIGOS ********************************************************************

ORG 0 ; El programa comienza en la dirección 0 de memoria de
Inicio ; programa.
bsf STATUS,RP0 ; Pone a 1 el bit 5 del STATUS. Acceso al Banco 1.
clrf PORTB ; Las líneas del Puerto B se configuran como salidas.
movlw b'11111111'
movwf PORTA ; Las líneas del Puerto A se configuran como entradas.
bcf STATUS,RP0 ; Pone a 0 el bit 5 de STATUS. Acceso al Banco 0.
clrf PORTB
clrf PORTA

Principal
btfss PORTA,0 ; ¿Bit 0 del PORTA es "1"?
goto hola
bcf PORTB,6 ; Desactiva el bit 6 del PORTB
bsf PORTB,7 ; activa el bit 7 del PORTB
goto Principal
hola
bsf PORTB,6 ; activa el bit 6 del PORTB
goto Principal
bcf PORTB,7
goto Principal ; Crea un bucle cerrado.
END ; Fin del programa.
__________________
http://electronica-pic.blogspot.com....n-arduino.html Manuales de electrónica general, PIC y Arduino.

Última edición por REHome fecha: 18-07-2008 a las 03:16:54.
Responder Con Cita
  #5  
Antiguo 18-07-2008
JoseFco JoseFco is offline
Baneado
 
Registrado: dic 2007
Posts: 1.861
Poder: 0
JoseFco cantidad desconocida en este momento
Cita:
Empezado por REHome Ver Mensaje
Para que sepa como lo programé y d qué va.
Aqui en estas dos lineas de tu codigo:


Código PHP:
movlw b'11111111'
movwf PORTA Las líneas del Puerto A se configuran como entradas
movlw b'11111111' // aqui cargas el w (acumulador con el binario 11111111 todos los bits a 1

movwf PORTA // aqui mueves el contenido del acumulador (w) al puerto A, como dices pones el puerto A como entrada, al hacerle pullup interno al mismo.

En un codigo para 8051 esto seria:

MOV A, FFh o si lo deceas MOV A, b'11111111' es lo mismo pero en bin.

MOV P0, A // aqui movemos el contenido del acumulador (A) al puerto 0

Ya te digo yo creo mis programas en asm y solo uso un copilador para generar mi file intelhex. La mayoria de las veces solo uso un notepad y salvo mi file en .asm luego al copilarlo genero el .hex

Puede ser muy dificil para algunos y mirarce impocible para otros, es cuestion de practica.Yo creo una rutina en mi mente y la ruedo en ella, como si estubiera en un micro y si en mi mente funcionar, ten la seguridad de que en el micro rueda.


Un Saludo.
Responder Con Cita
  #6  
Antiguo 18-07-2008
Avatar de donald shimoda
donald shimoda donald shimoda is offline
Miembro
 
Registrado: jul 2008
Ubicación: Argentino en Santa Cruz de la Sierra
Posts: 1.083
Poder: 17
donald shimoda Va por buen camino
Cita:
Empezado por JoseFco Ver Mensaje
Aqui en estas dos lineas de tu codigo:
Código PHP:
movlw b'11111111'
movwf PORTA Las l&#237;neas del Puerto A se configuran como entradas. 
movlw b'11111111' // aqui cargas el w (acumulador con el binario 11111111 todos los bits a 1

movwf PORTA // aqui mueves el contenido del acumulador (w) al puerto A, como dices pones el puerto A como entrada, al hacerle pullup interno al mismo.
En realidad no. En los pics existe un registro de dirección (para el caso del puerto A seria TRISA) y un registro del puerto en sí (en este caso PORTA).

Ambos estan en la misma posición del banco 0 y 1, entonces como bien muestra el código para modificar el registro de dirección de las líneas (si serán de entrada o salida) lo que haces es acceder al banco 1.
Código:
bsf	STATUS,RP0 ; Pone a 1 el bit 5 del STATUS. Acceso al Banco 1.
Luego el código dice PORTA porque en realidad es el mismo valor (desplazado al banco 1) , pero el registro en realidad es el TRISA.

Nada tiene que ver el pullup interno.

Saludos.
__________________
Donald Shimoda [Team RO] - Blogs: Remobjects Pascal
Responder Con Cita
  #7  
Antiguo 18-07-2008
JoseFco JoseFco is offline
Baneado
 
Registrado: dic 2007
Posts: 1.861
Poder: 0
JoseFco cantidad desconocida en este momento
Cita:
Empezado por donald shimoda Ver Mensaje
En realidad no. En los pics existe un registro de dirección (para el caso del puerto A seria TRISA) y un registro del puerto en sí (en este caso PORTA).

Ambos estan en la misma posición del banco 0 y 1, entonces como bien muestra el código para modificar el registro de dirección de las líneas (si serán de entrada o salida) lo que haces es acceder al banco 1.
Código:
bsf    STATUS,RP0 ; Pone a 1 el bit 5 del STATUS. Acceso al Banco 1.
Luego el código dice PORTA porque en realidad es el mismo valor (desplazado al banco 1) , pero el registro en realidad es el TRISA.

Nada tiene que ver el pullup interno.

Saludos.
jajajajajaja TRISA es lo que tienes en los dedos cada vez que escribes algo compadre. Yo de PIC se lo mismo que de astronomia lo comente en un post anterior pero en el caso del 16F84 W es el registro acumulador y en esta instrucion( movlw b'11111111') esta cargando el acumulador con el valor FF hex o 11111111 bin para posteriormente cargar el porta con el valor del acumulador.(movwf PORTA )

eso mismo en codigo para un 8051 seria asi:

MOV A, #FFh
MOV PORT0, A

Te podre una tareita si la contesta seguimos hablando de micros:

Tarea: Usando instruciones para el 8051 creame el siguiente asm:

00110000 10001001 11111101 tienes tres bytes aqui con eso dime que asm se crearia en instruction opcode para un 8051?

Si me contestas eso seguimos hablando de micros.

Un Saludo.


Responder Con Cita
  #8  
Antiguo 18-07-2008
Avatar de donald shimoda
donald shimoda donald shimoda is offline
Miembro
 
Registrado: jul 2008
Ubicación: Argentino en Santa Cruz de la Sierra
Posts: 1.083
Poder: 17
donald shimoda Va por buen camino
Cita:
Empezado por REHome Ver Mensaje
El 16F84A es ya anticuado, si caso es mejor el 16F88 o 16F876 o 16F876 de gama media, los de gama alta 18F2550, 18F4550 están muy bien y preparados para lenguajes como el C.
Para pics tienes un potente compilador pascal mikropascal, muy recomendable. Para programas de hasta 2K en flash es gratuito.

En cuanto a que los 8051 son mejores, depende.Toda la línea de productos de mi emprea se maneja con PICS desde gama baja a alta y la calidad es excelente. Nunca tuvimos que reemplazar un pic a pesar de tener mas de 500 placas en la calle.

Saludos.
__________________
Donald Shimoda [Team RO] - Blogs: Remobjects Pascal
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Codigo ASM en XP Fralva Varios 3 28-01-2008 20:56:31
Codigo carols018 Varios 8 27-11-2006 17:36:49
contraer por codigo, cxGrid (+) los nodos abiertos cerrarlos por codigo sakuragi OOP 6 27-07-2005 18:23:07
de codigo VB a codigo Delphi ingel Impresión 2 20-07-2004 14:15:44
Código VB DJ VMan Varios 3 14-11-2003 21:13:06


La franja horaria es GMT +2. Ahora son las 23:19:15.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi