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 18-07-2008
REHome REHome is offline
Miembro
 
Registrado: jul 2003
Ubicación: España
Posts: 469
Poder: 22
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
  #2  
Antiguo 18-07-2008
REHome REHome is offline
Miembro
 
Registrado: jul 2003
Ubicación: España
Posts: 469
Poder: 22
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
  #3  
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
  #4  
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: 18
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
  #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 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
  #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: 18
donald shimoda Va por buen camino
Cita:
Empezado por JoseFco Ver Mensaje
jajajajajaja TRISA es lo que tienes en los dedos cada vez que escribes algo compadre.
Bueno, bueno, quedamos así.
Cita:
Empezado por JoseFco Ver Mensaje
Yo de PIC se lo mismo que de astronomia
Si se nota, por eso le estoy comentando al amigo como es el tema.
Cita:
Empezado por JoseFco Ver Mensaje
Te podre una tareita si la contesta seguimos hablando de micros:
[..]
Si me contestas eso seguimos hablando de micros.
No gracias. No se nada de 8051 ni me interesa saber. Imagínese conocer no uno sino toda una línea de microncontroladores y periféricos como la que provee Microchip , para que aprender algo de la prehistoria?
Igual gracias por la oferta.

De todas maneras, mi idea fue corregir algo que estaba mal planteado para no seguir mareando al amigo que pregunto y es básico para comprender el funcionamiento de un puerto en un PIC le estaba explicando al amigo como se configura la dirección de las líneas.
De eso si se como para hablar un rato.

Saludos
__________________
Donald Shimoda [Team RO] - Blogs: Remobjects Pascal

Última edición por donald shimoda fecha: 18-07-2008 a las 06:41:26.
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
Bueno, bueno, quedamos así.

Si se nota, por eso le estoy comentando al amigo como es el tema.


No gracias. No se nada de 8051 ni me interesa saber. Imagínese conocer no uno sino toda una línea de microncontroladores y periféricos como la que provee Microchip , para que aprender algo de la prehistoria?
Igual gracias por la oferta.

De todas maneras, mi idea fue corregir algo que estaba mal planteado para no seguir mareando al amigo que pregunto y es básico para comprender el funcionamiento de un puerto en un PIC le estaba explicando al amigo como se configura la dirección de las líneas.
De eso si se como para hablar un rato.

Saludos

Lee el post #19 de este hilo y dime a quien le escribistes? Pence que se podia hablar contigo, despues de la breve charla de esta noche.Veo que lo que en realidad es de la prehistoria es esa fijacion que tienes de creerte "Tarzan cuando en realidad no llegas ni a la mona Chita."

Llegaras lejos aqui en este foro y no soy brujo.


PD:Te veo mas comemierda esta noche que ayer. y te dejo que estoy trabajando.

Un Saludito.
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: 18
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 16:02:08.


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