4 Programación de Micro Controlador

13
Instituto Tecnológico Superior de los Ríos Balancan, Tabasco. Nombre del alumno (a): Hilda Virginia López Gutiérrez Carrera: Ing. En Sistemas Computacionales Asignatura: Sistemas Programables Grado: 7 semestre Grupo: “A” Catedrático: Ing. Luis Alberto de la Cruz Díaz 

description

Investigacion de la unidad

Transcript of 4 Programación de Micro Controlador

Page 1: 4 Programación de Micro Controlador

Instituto Tecnológico Superior de los Ríos

Balancan, Tabasco. 

Nombre del alumno (a): Hilda Virginia López Gutiérrez

Carrera: Ing. En Sistemas Computacionales

Asignatura: Sistemas Programables 

Grado: 7 semestre

Grupo: “A”

Catedrático: Ing. Luis Alberto de la Cruz Díaz 

Page 2: 4 Programación de Micro Controlador

ÍNDICE 

Introducción…………………………….…..........................................................................34 Programación de micros controladores………………………...........................................44.1 Modelo de programación………………………………………….................................44.2 Estructura de los registros del CPU…………………………….....................................54.3 Modos de direccionamiento……………………………………….................................64.4 Conjunto de instrucciones………………………………………....................................84.5 Lenguajes ensambladores………………………………………...................................10

Page 3: 4 Programación de Micro Controlador

INTRODUCCIÓN 

En   el   presente   trabajo   de   investigación   hablaremos   de   la   programación   de   un   microcontrolador, también como Un modelo permite abstraer las características fundamentales dela aplicación y dar una caracterización de la misma suficientemente detallada   como parapoder   obtener,   utilizando   algún   lenguaje   informático,   el   código   que   cumpla   con   losrequisitos y especificaciones de partida.

Page 4: 4 Programación de Micro Controlador

4 Programación de micro controlador.

La opción de programar en c se debe al hecho de que los micros controladores se diseñancon un repertorio de instrucciones optimizado para su programación en c.

Se han desarrollado todo tipo de lenguajes para los micros controladores,  pero los másusados son el Ensamblador, el BASIC y el C.

Los lenguajes de alto nivel como el BASIC y el C son más fáciles de comprender y portanto de diseñar.

http://sai.azc.uam.mx/material/sd/Unidad4/capitulo4.pdfv

https://sites.google.com/site/ulisesisael502/unidad­4

4.1 Modelo de programación.

La opción de programar en c se debe al hecho de que los micros controladores se diseñan con un repertorio de instrucciones optimizado para su programación en c.

Los   lenguajes,   bien   sean   de   programación,   de   marcado   o   de   consulta,   representan   elmascarón de proa de la informática. Sin embargo, antes de proporcionar la secuencia defrases de un lenguaje que constituye el código, que a fin de cuentas es la esencia de todaaplicación informática, cabe preguntarse si es posible, o necesario, dar una caracterizaciónprevia de las tareas que conducen a la consecución de dicho objetivo.

Un modelo permite abstraer las características fundamentales de la aplicación y dar unacaracterización de la misma suficientemente detallada  como para poder obtener, utilizandoalgún lenguaje informático, el código que cumpla con los requisitos y especificaciones departida.

Un lenguaje informático se ajusta siempre a un determinado paradigma de programación–por   ejemplo,   el   paradigma   imperativo­,   y   a   un   determinado   modelo   por   ejemplo,   elmodelo  de  objetos.  Un modelo  de  programación provee  un  marco  abstracto  en  el  queentender   la   sintaxis   de   los   lenguajes   concretos  que   siguen   el  modelo,   y   representa   lasemántica del mismo, así como una filosofía de uso de dicha semántica.

Para   proporcionar   modelos   de   diseño   que   permitan   caracterizar   el   desarrollo   deaplicaciones utilizando un lenguaje de programación se necesita un lenguaje de modeladoque   sea   capaz   de   capturar   la   semántica   del   modelo   al   que   se   ajusta   el   lenguaje   deprogramación.

El problema de dar un modelo de diseño de una aplicación hipermedia es que no hay unasemántica fija que modelar (como en el caso de UML y el modelo de objetos), ni siquiera

Page 5: 4 Programación de Micro Controlador

hay un consenso sobre  los  elementos  concretos  que hay que modelar.  Por  ejemplo,  sepueden modelar enlaces unarios o enlaces n­arios.

Hay modelos hipermedia propiamente dichos (por ej. el Modelo Trellis) que caracterizan auna   aplicación   de   tal   manera   que   incluso   especifican   cuál   va   a   ser   su   semántica   denavegación (por ej. el modo en que la información va a ser visitada y presentada al usuario(Stotts,   1989)).Otros   son   modelos   de   referencia,   con   los   que   contrastar   los   modeloshipermedia (por ej. el modelo Dexter).

Finalmente, existen metodologías (por ej.  OOHDM) cuya finalidad es proporcionar unaserie de diagramas que guíen la construcción de una  aplicación hipermedia.

https://es.scribd.com/doc/44443758/U4­Microcontroladores

4.2 Estructura de los registros del CPU

Registros de la CPU

Para poder hacer  estas cosas,   la CPU necesita  almacenar  algunos datos temporalmente.Debe recordar la posición de la última instrucción de forma que sepa dónde ir a buscar lasiguiente.  Necesita   almacenar   instrucciones   y   datos   temporalmente   mientras   unainstrucción está siendo ejecutada. En otras palabras, la CPU necesita una pequeña memoriainterna.

En la estructura interna de la CPU se indican los caminos de transferencia de datos y decontrol   lógico,   que   incluyen   un   elemento   con   el   rótulo   bus   interno   de   la   CPU.   Esteelemento es necesario para transferir datos entre los diversos registros y la ALU, ya queésta en realidad sólo opera con datos de la memoria interna de la CPU. Dentro de la CPUhay una memoria interna compuesta por un conjunto de registros. Los registros de la CPUson:

Registros visibles al usuario: Permiten al programador de lenguaje de máquina oensamblador minimizar las referencias a memoria principal optimizando el uso delos registros.

Registros  de control:  Son utilizados por   la  unidad de control  para controlar  elfuncionamiento de la CPU y por programas privilegiados del sistema para controlarla ejecución de programas.

Registro de estado:  Se utiliza para tomar decisiones en función de operacionesrealizadas.

Registro puntero a pila.

Page 6: 4 Programación de Micro Controlador

Registros visibles al usuario

Un registro visible al usuario es aquél que puede ser referenciado por medio del lenguajemáquina que ejecuta la CPU. Prácticamente todos los diseños contemporáneos de CPUsestán provistos de varios registros visibles al usuario, en oposición a disponer de un únicoacumulador.

Podemos clasificarlos en:

Uso General

Datos

Direcciones

Códigos de Condición

Los registros de uso general pueden ser asignados por el programador a diversas funciones.A veces, su uso dentro del repertorio de instrucciones es para contener el operando paracualquier código de operación. Esto proporciona una utilización de registros de auténticouso general. 

En algunos  casos   los   registros  de  uso general  pueden ser  utilizados para   funciones  dedireccionamiento. En otros casos hay una separación clara o parcial entre registros de datosy   registros   de  direcciones.  Los   registros   de  datos  pueden   ser   usados   únicamente  paracontener datos y no se pueden emplear en el cálculo de una dirección de operando.

El   caso   más   conocido   es   el   puntero   a   pila.   La   cantidad   de   registros   generales   oespecializados es una cuestión de diseño.

http://www.clubensayos.com/Tecnolog%C3%ADa/Estructura­De­Los­Registros­Del/1321037.html

4.3 Modos de direccionamiento

Las localidades de la memoria RAM se pueden accesar directamente o indirectamente.

Direccionamiento directo:

El modo de direccionamiento directo se realiza por medio de direcciones de nueve bits. L adirección del operando se obtiene uniendo los siete bits de una dirección directa indicada enel código de la instrucción, con los bits RPO y RP1 del registro STATUS, tal como se

Page 7: 4 Programación de Micro Controlador

muestra en la figura. Cualquier acceso a los registros F (file registers) es un ejemplo dedireccionamiento directo. Un file registers es cualquier registro SFR o GRP. 

bsf STATUS, RPO ; Selecciona el banco 1.

movlw OxFF ; Carga en W un OxFF.

Movwf TRISA ;   La   dirección   del   registroTRISA.

; es tomada del código de la 

; Instrucción movwf.

Direccionamiento indirecto:

El direccionamiento indirecto, a diferencia del directo, no toma una dirección del código deuna instrucción, sino que la construye con la ayuda del bit IRP del registro STATUS y delregistro FSR. La  localidad direccionada es accesada vía el registro INDF el cual contiene,en efecto, el dato de la dirección indicada por FSR.

Por ejemplo, si un registro de propósito general (GPR) en la dirección 0Fh contiene unvalor  de 20,  al  escribir  un valor de 0Fh en el  registro FSR y leer  el  registro INDF seobtendrá   el   valor   de   20,   lo   cual   indica   que   se   estará   leyendo   el   GPR   sin   accesarlodirectamente (pero si vía FSR e INDF).  

Un ejemplo de direccionamiento indirecto es el siguiente, donde se envía un grupo de datospor comunicación serie trabajando con buffer e índices, borrando una parte de la memoriaRAM (16 localidades):

Movlw 0x0C ; Establece direcciónde inicio

Movwf FSR ;   FSR   apunta   a   ladirección 0x0C.

LOOP Clrf INDFF ; INDF=0.

Incf FSR ; Dirección = dirección inicial + 1.

Page 8: 4 Programación de Micro Controlador

Btfss FSR, 4 ; Están limpias todaslas locs? 

Goto LOO ; No regresa al ciclo.

………… ; Si continua con elprograma.

 

4.4 Conjunto de instrucciones

Un conjunto de instrucciones o repertorio de instrucciones, juego de instrucciones o ISA(del inglés Instruction Set Architecture, Arquitectura del Conjunto de Instrucciones) es unaespecificación que detalla las instrucciones que una CPU de un ordenador puede  entendery ejecutar, o el conjunto de todos los comandos implementados por un diseño particular deuna  CPU.  El   término  describe   los   aspectos  del  procesador  generalmente  visibles   a  unprogramador,   incluyendo   los   tipos  de  datos  nativos,   las   instrucciones,   los   registros,   laarquitectura de memoria y las interrupciones, entre otros aspectos.

Existen  principalmente  de   3   tipos:   CISC   (Complex   Instruction   Set   Computer),   RISC(Reduced Instruction Set Computer) y SISC (Specific Instruction Set Computer).

La arquitectura del conjunto de instrucciones (ISA) se emplea a veces para distinguir esteconjunto de características de la micro arquitectura, que son los elementos y técnicas que seemplean   para   implementar   el   conjunto   de   instrucciones.   Entre   estos   elementos   seencuentras las microinstrucciones y los sistemas de caché.

El lenguaje máquina

El lenguaje máquina está construido a partir de los estados discretos o instrucciones. En laarquitectura de procesamiento, una instrucción dada puede especificar:

Registros   particulares   para   operaciones   aritméticas,   de   direccionamiento   o   decontrol.

Ubicaciones particulares de memoria

Modos de direccionamiento para interpretar operandos

Implementación del conjunto de instrucciones

Cualquier conjunto de instrucciones se puede implementar de varias maneras.  Todas lasmaneras de implementar un conjunto de instrucciones dan el mismo modelo programado, y

Page 9: 4 Programación de Micro Controlador

todas  pueden  hacer   funcionar   los  mismos   ejecutables   binarios.  Las  varias  maneras  deimplementar un conjunto de instrucciones dan diversas compensaciones entre el coste, elfuncionamiento, el consumo de energía, el tamaño, el etc.

Hay también algunos nuevos diseños de CPU que compilan el conjunto de instrucción auna RAM escribible o FLASH dentro de la CPU (tal como el procesador Recursiv y elImsys   Cjip),   o   FPGA(computación   reconfigurable).   Western   Digital   MCP­1600   es   unejemplo antiguo, usando una ROM dedicada, separada del micro código.

Los   detalles   de   la   implementación   tienen   una   influencia   fuerte   en   las   instruccionesparticulares   seleccionadas   para   el   conjunto   de   instrucción.   Por   ejemplo,   muchasimplementaciones de la instrucción  pipeline   permiten solamente una carga de memoria (load)   o   almacén   en   memoria   (store)   por   instrucción,   llevando   a   carga­almacenaarquitectura (RISC).

Diseño del conjunto de instrucciones

La densidad del código En computadoras antiguas, la memoria del programa era costosa,así que minimizar el tamaño de un programa para asegurar que va a caber  en la memorialimitada era a menudo central.

Las  computadoras  con alta densidad del código también tenían a menudo instruccionescomplejas para la entrada del procedimiento, los retornos parametrizados, los lazos  etc. 

Sin embargo,  "  instrucciones CISC" combinan simplemente una operación básica de laALU, tal como " add", con el acceso de uno o más operandos en memoria (usando modosde dirección tales como directo, indirecto, indexado).

Las   computadoras   mínimas   del   conjunto   de   instrucciones   (MISC)   son   una   forma   demáquina   apilada,   donde   hay   pocas   instrucciones   separadas   (16­64),   para   poder   caberinstrucciones múltiples en una sola palabra de máquina. 

Los   detalles   de   la   implementación   tienen   una   influencia   fuerte   en   las   instruccionesparticulares   seleccionadas   para   el   conjunto   de   instrucción.   Por   ejemplo,   muchasimplementaciones de la instrucción  pipeline  permiten solamente una carga de memoria (load)   o   almacén   en   memoria   (store)   por   instrucción,   llevando   a   carga­almacenaarquitectura   (RISC).  Por  otro  ejemplo,   algunas  maneras  de   implementar   la   instrucción

pipeline  llevaron a una ranura de retardo. La demanda de procesamiento de señal digital de alta  velocidad ha  empujado en el  sentido  contrario­   forzando  la   implementación deinstrucción de manera particular. Por ejemplo, para realizar los filtros digitales es bastanteinsuficiente, la instrucción del MAC en un procesador típico de señal digital (DSP) se debeimplementar usando una arquitectura de Harvard que pueda traer una instrucción y dospalabras de datos simultáneamente, y requiere un solo ciclo.

Page 10: 4 Programación de Micro Controlador

Las  características  que se  pretende que  tenga un conjunto  de   instrucciones  son cuatro,principalmente:

Completo: Que se pueda realizar en un tiempo finito cualquier tarea ejecutable conun ordenador (computable o decididle).

Eficiente: Que permita alta velocidad de cálculo sin exigir una elevada complejidaden su  UC y ALU y sin consumir  excesivos   recursos  (memoria),  es  decir,  debecumplir su tarea en un tiempo razonable minimizando el uso de los recursos.

Autos   contenidos:  Esto   es,   que   contengan   en   sí   mismas   toda   la   informaciónnecesaria para ejecutarse.

Independientes: Que no dependan de la ejecución de alguna otra instrucción.

4.5 Lenguajes ensambladores

El  lenguaje Assembly  (a veces mal llamado "Ensamblador" por su traducción literal alespañol) es un tipo de lenguaje de bajo nivel utilizado para escribir programas informáticos,y   constituye   la   representación   más   directa   del   código   máquina   específico   para   cadaarquitectura de computadoras legible por un programador.

Fue  usado  principalmente  en   los   inicios  del  desarrollo  de   software,   cuando  aún  no  secontaba con los potentes lenguajes de alto nivel. Actualmente se utiliza con frecuencia enambientes   académicos   y   de   investigación,   especialmente   cuando   se   requiere   lamanipulación directa de hardware, se pretenden altos rendimientos o un uso de recursoscontrolado y reducido.

Muchos dispositivos  programables  (como los micros  controladores)  aun cuentan con ellenguaje Assembly como la única manera de ser manipulados.

Características:

El código escrito en lenguaje Assembly posee una cierta dificultad de ser entendidodirectamente por un ser humano ya que su estructura se acerca más bien al lenguajemáquina, es decir, lenguaje de bajo nivel.

El lenguaje Assembly es difícilmente portable, es decir, un código escrito para unmicroprocesador, suele necesitar ser modificado, muchas veces en su totalidad parapoder ser usado en otra máquina distinta, aun con el mismo microprocesador.

Los   programas   hechos   en   lenguaje   Assembly   son   generalmente   más   rápidos   yconsumen  menos   recursos  del   sistema   (memoria  RAM  y  ROM).  Al  programar

Page 11: 4 Programación de Micro Controlador

cuidadosamente en lenguaje Assembly se pueden crear programas que se ejecutanmás rápidamente y ocupan menos espacio que con lenguajes de alto nivel.

Con el lenguaje Assembly se tiene un control muy preciso de las tareas realizadaspor un microprocesador por lo que se pueden crear segmentos de código difíciles deprogramaren un lenguaje de alto nivel.

También  se  puede controlar  el   tiempo  en  que  tarda  una  rutina  en  ejecutarse,  eimpedir que se interrumpa durante su ejecución.

https://es.scribd.com/doc/44443758/U4­Microcontroladores

Page 12: 4 Programación de Micro Controlador

BIBLIOGRAFÍA

http://sai.azc.uam.mx/material/sd/Unidad4/capitulo4.pdfv

https://sites.google.com/site/ulisesisael502/unidad­4

https://es.scribd.com/doc/44443758/U4­Microcontroladores

http://www.clubensayos.com/Tecnolog%C3%ADa/Estructura­De­Los­Registros­Del/1321037.html

https://es.scribd.com/doc/44443758/U4­Microcontroladores

    

  

Page 13: 4 Programación de Micro Controlador