Autor Tema: PIC18 Aprendiendo a programar con ensamblador  (Leído 6098 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado mariano_pic

  • PIC18
  • ****
  • Mensajes: 498
    • Software Electronica Microncontroladores
Re: PIC18 Aprendiendo a programar con ensamblador
« Respuesta #15 en: 07 de Febrero de 2007, 13:53:17 »
Hola amigos el plan es dar ideas concretas dentro del foro no mandar a leer hojas de datos, se sabe que hay están todo pero las explicaciones las damos nosotros mismos.

Por ejemplo usemos la hoja pic18 referece manual y vamos traduciendo y colocando los aspectos mas importantes con respecto a estos microcontroladores empezando por describir la arquitectura interna general, sin referirnos a uno en particular. Luego lo referente a los registros GPR y SFR, modos de direccionamiento y ejemplos de las instrucciones mas destacadas sin olvidar la descripción de las mismas.
Yo mismo pondré algunas traducciones adaptadas a nuestro lenguaje, recordemos que lo que es igual a la serie 16 ya debe estar comprendido, y no hay necesidad de recabar en eso.
 :-/ :mrgreen: :-/
Necesitas ayuda para tu proyecto electronico?
buscame, tal ves pueda colaborarte.
Blog: http://electronicosembebidos.blogspot.com.co/
mail: electronicosembebidos@gmail.com
Mi grupo de facebook: https://www.facebook.com/groups/ProgramandoPics/

Desconectado mariano_pic

  • PIC18
  • ****
  • Mensajes: 498
    • Software Electronica Microncontroladores
Re: PIC18 Aprendiendo a programar con ensamblador
« Respuesta #16 en: 07 de Febrero de 2007, 13:55:37 »
Aca va algo sobre la arquitectura interna

Arquitectura Interna 
Aunque con mayor numero de registros internos y mas capacidad de memoria y de pila, la arquitectura interna de los PIC18 recuerda mucho a la de los PIC16f87x. Los modelos de 40 pines disponen de los mismos puertos que los 16f877.
En su mayoria tienen la misma distribucion de pines modos de oscilador y voltajes de alimentacion.
Los perifericos tambien son los mismos pero se le agregan muchos mas entre ellos se destaca el adactador interno de bus usb. Tambien el cam.
Entre las nuvas potencialidades encontramos el multiplicador 8*8, y las logicas para el incremento y decremento de las direcciones.
Tambien tenemos la capasidad de mover el contenido de un registro a otro registro directamente en una sola instruccion como la instruccion movff ejemplo
        movff   fuente, destino
Necesitas ayuda para tu proyecto electronico?
buscame, tal ves pueda colaborarte.
Blog: http://electronicosembebidos.blogspot.com.co/
mail: electronicosembebidos@gmail.com
Mi grupo de facebook: https://www.facebook.com/groups/ProgramandoPics/

Desconectado mariano_pic

  • PIC18
  • ****
  • Mensajes: 498
    • Software Electronica Microncontroladores
Re: PIC18 Aprendiendo a programar con ensamblador
« Respuesta #17 en: 07 de Febrero de 2007, 13:58:51 »
Algo aserca de la forma en que se manejan las instrucciones y la memoria si alguien puede añadir un ejemplo codigo con una explicacion bienvenido. :-/

aqui va:

Introducción

El set de instrucciones de los pic18cxxx agrega muchas mejoras, a los anteriores sets de instrucciones.
Cada instrucción esta dividida en un OPCODE que especifica el tipo de instrucción y uno o más operados los cuales facilitan especificar la operación de la instrucción.

El set de instrucciones es altamente ortogonal y es agrupado dentro de 4 categorías básicas:

- Operaciones orientadas a Byte
- Operaciones orientadas a BIT
- Operaciones con un operando literal
- Operaciones de control

Muchas instrucciones orientadas a byte tienen tres operándoos

1. El archivo de Registro (especificado por el valor de 'f').
2. El destino del resultado (especificado por el valor de 'd').
3. El acceso a memoria (especificado por el valor de 'a').

'f' representa un archivo de registros designado y 'd' representa el destino.
El registró designado específica cual registro es el usado por la instrucción.
El indicador de acceso 'a' especifica si BSR selecciona los bancos o si es usado el acceso a bancos. 

El nombre del destino especifica dónde el resultado de la operación debe situarse. Si es cero, la el resultado es guardado en el Registro W. Si es uno, el resultado es guardado en el Registro especificado.

Todas las instrucciones orientadas a BIT tienen tres operandos:

1. El registro (Especificado por el valor de 'f').
2. El BIT del registro (especificado por el balor de 'b').
3  El acceso a memoria (especificado por el valor de 'a').

B ' designa el área del BIT  seleccionando el número del BIT afectado por la operación, mientras ' f ' representa la posición del archivo en el cual el BIT está ubicado. El señalizador de acceso 'a' especifica si el registro BSR selecciona el banco o si el acceso a banco es usado.

Las instrucciones con literales pueden utilizar algunos de los siguientes operándoos:

- Un literal puede ser cargado en un registro (especificado por el valor de 'k').
- El registro FSR carga el literal dentro (especificado por el valor de 'f').
- No requiere operando (especificado por el valor de '-').

Las instrucciones de de control pueden usar algunos de los siguientes operandos:
- Una dirección de la memoria de programa (especificado por el valor de 'n').
- El modo de operación de las instrucciones CALL o RETURN (especificado por el valor de 's').
- El modo de operación de las instrucciones Read y Write Table (especificado por el valor de 'm').
- No requiere  operados  (especificado por el valor de '-')


Todas las instrucciones son de una simple palabras excepto por tres instrucciones de doble palabra.
Estas tres instrucciones son echas de doble palabra de instrucción asi que toda la información requerida es valida en 32 Bits. En esta segunda palabra, los 4 bits mas significativos son '1'. Si esta segunda instrucción es ejecutada como una instrucción, esta sera ejecutada como un NOP.

Todas las instrucciones simples son ejecutadas en un simple ciclo de instrucción, a menos que un test condicional sea verdadero el contador de programa sea cambiado como resultado de la instrucción. En estes caso, la ejecución toma dos ciclos de instrucción con un ciclo de instrucción NOP adicional ejecutado.

La doble palabra de instrucción (que no modifica el PC) ejecutada en un doble ciclo de instrucción.
Un ciclo de instrucción consiste de cuatro periodos de oscilador. Así, para una frecuencia de oscilador de 4 MHZ, el tiempo normal de ejecución de una instrucción es de 1 ?S. Si un test condicional es verdadero o el contador de programa es cambiado como resultado de una instrucción, el tiempo de ejecución de es de 2 ?S. Dos palabras de instrucción (si es verdadero) tomarían 3 ?S.

Mapa de memoria de datos

El mapa de memoria de datos consiste en 16 bancos de 256 bytes cada uno. El set de instrucciones y la arquitectura permite operaciones con todos los bancos de memoria (tal como MOVFF). Un Segmento de banco 0 y un segmento de banco 15 abarca el acceso a bancos.

Acceso a bancos

El acceso a bancos es una arquitectura mejorada que es muy útil  para la optimización con compiladores de lenguaje C. Las técnicas usadas por el compilador C pueden también ser útiles con programas hechos en assembler

Esta región de memoria de datos puede ser usada para
- Calculo de valores intermedios
- Variables locales de subrutinas.
- Variables comunes
- Rápida Evaluación/control de SFR (sin bancos)

El acceso a bancos es comprendido de 2 segmentos: Segmento 0 y segmento 1. El segmento 0 es la RAM esta mapeada en el banco 0. El segmento 1 son los SFR que estan mapeados en el banco 15.
Cada segmento puede ser de diferente tamaño. La suma de RAM del segmento 0 y el segmento 1 es 256 bytes. Cuando se forza en el acceso a bancos (a = '0') la ultima direccion en el segmento 0 es seguida  por la primer  direccion en el segmento 1. El segmento 1 contiene los registros de funcion especial a fin de que estos registros puedan ser accedidos por cualquier software cargado. Esto  es util en seteo de banderas de estado y modificacion de bits de control.

Cabe destacar que esta es una traduccion del pic18cxxxx
Necesitas ayuda para tu proyecto electronico?
buscame, tal ves pueda colaborarte.
Blog: http://electronicosembebidos.blogspot.com.co/
mail: electronicosembebidos@gmail.com
Mi grupo de facebook: https://www.facebook.com/groups/ProgramandoPics/

Desconectado micro_cadaver

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2102
    • blog microembebidos
Re: PIC18 Aprendiendo a programar con ensamblador
« Respuesta #18 en: 07 de Febrero de 2007, 14:04:29 »
hola mariano tienes el archivo traducido de pic18f? en uno de los post del foro lo vi.
a cosechar!!!... :P
pic32... ahi voy....
aguante el micro 16f84  !!!!

visita mi pagina: http://www.microembebidos.wordpress.com

Desconectado Kedutpic

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 219
    • Microelectronica
Re: PIC18 Aprendiendo a programar con ensamblador
« Respuesta #19 en: 07 de Febrero de 2007, 15:53:53 »
 :shock: yo ya colgue un manual unos post mas arriba tambien  traducido  al español no lo han leido ????


1 saludo

Actel  -  VHDL un nuevo mundo por descubrir :D
Grupo de Microelectronica - CIDI - UTP
Visitanos en : http://ue.accesus.com

Desconectado mariano_pic

  • PIC18
  • ****
  • Mensajes: 498
    • Software Electronica Microncontroladores
Re: PIC18 Aprendiendo a programar con ensamblador
« Respuesta #20 en: 07 de Febrero de 2007, 18:37:45 »
Hola amigos yo descargue ese manual esta bien pero como su nombre lo dice es PIC18F2455_2550_4455_4550.pdf
Yo no lo he leido pero me pareseria bueno comensar por programar los mas sencillos ¿o es que sirve igual?
No habia tenido tiempo de leerlo pero parese muy bueno.  :-/ :-/ :-/

Entonses demonos a todos un tiempo para leer y comprender por que como estan las cosas: ahorita ya sabremos  :mrgreen: 8) 8)

 :-/ :-/ :-/ :-/ :-/ :-/ :-/ :-/ :-/ :-/ :-/ :-/
Necesitas ayuda para tu proyecto electronico?
buscame, tal ves pueda colaborarte.
Blog: http://electronicosembebidos.blogspot.com.co/
mail: electronicosembebidos@gmail.com
Mi grupo de facebook: https://www.facebook.com/groups/ProgramandoPics/

Desconectado PalitroqueZ

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5474
    • Electrónica Didacta
Re: PIC18 Aprendiendo a programar con ensamblador
« Respuesta #21 en: 07 de Febrero de 2007, 18:46:16 »
otra sugerencia. Cuando peguen un código sustituyan el tabulador por un simple espacio, si usan tabulador les aparecerá un símbolo tipo cuadrito.

yo descubrí esto tarde (tengo varios post por allí que no he arreglado del todo)  :?

adelante con este post, yo también estoy interesado en conocer el ensamblador para los 18.  8)

Salu2
Pedro
La propiedad privada es la mayor garantía de libertad.
Friedrich August von Hayek


 

anything