4 Programación de Micro Controlador
-
Upload
nospherat-leon-gomez -
Category
Documents
-
view
3 -
download
0
description
Transcript of 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
Í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
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.
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/unidad4
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
hay un consenso sobre los elementos concretos que hay que modelar. Por ejemplo, sepueden modelar enlaces unarios o enlaces narios.
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/U4Microcontroladores
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.
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/EstructuraDeLosRegistrosDel/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
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.
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
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 MCP1600 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 cargaalmacenaarquitectura (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 (1664), 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 cargaalmacenaarquitectura (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.
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
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/U4Microcontroladores
BIBLIOGRAFÍA
http://sai.azc.uam.mx/material/sd/Unidad4/capitulo4.pdfv
https://sites.google.com/site/ulisesisael502/unidad4
https://es.scribd.com/doc/44443758/U4Microcontroladores
http://www.clubensayos.com/Tecnolog%C3%ADa/EstructuraDeLosRegistrosDel/1321037.html
https://es.scribd.com/doc/44443758/U4Microcontroladores