Micros curso en ensamblador

of 40 /40
MICROCONTROLADORES ING. FELIPE ARTURO RANGEL CARDOZA 1

description

microcontroladores

Transcript of Micros curso en ensamblador

  • MICROCONTROLADORES

    ING. FELIPE ARTURO RANGEL CARDOZA

    1

  • LA FAMILIA DE LOS PICS GAMA BASICA

    GAMA MEDIA

    GAMA ALTA 2

  • EL PIC 16F84A

    3

  • EL ASPECTO EXTERNO

    4

  • LA FRECUENCIA DEL FUNCIONAMIENTO: EL RELOJ

    5

  • LA FRECUENCIA DEL FUNCIONAMIENTO: EL RELOJ

    6

  • LA FRECUENCIA DEL FUNCIONAMIENTO: EL RELOJ

    7

  • EJERCICIO

    UN PIC16F84A QUE FUNCIONA A 8 MHz EJECUTA UN PROGRAMA DE 1500 INSTRUCCIONES, DE LAS CUALES EL 25 POR 100 SON DE SALTO. CALCULAR EL TIEMPO QUE TARDA EN EJECUTARLO.

    8

  • TIPOS DE OSCILADORES OSCILADOR TIPO R-C

    9

  • TIPOS DE OSCILADORES OSCILADOR TIPO HS 8-10 MHz OSCILADOR TIPO XT 100 KHz- 4MHz OSCILADOR TIPO LP 35 200 KHz

    10

  • EJERCICIO

    UN PIC16F84A FUNCIONANDO CON UNA RED R-C DE 10K Y 220 PF, RESPECTIVAMENTE, EST E J E C U T A N D O U N P R O B L E M A D E 5 0 0 INSTRUCCIONES, DE LAS CUALES EL 30 DE CADA 100 SON DE SALTO. CUANTO TARDA EN EJECUTAR EL PROGRAMA?

    11

  • EL RESET REALIZA DOS ACCIONES FUNDAMENTALES: 1.- EL CONTADOR DE PROGRAMA SE CARGA CON LA DIRECCION 0. 2.- LA MAYORIA DE LOS REGISTROS DE ESTADO Y CONTROL DEL PROCESADOR TOMAN UN ESTADO CONOCIDO Y DETERMINADO.

    12

  • MI PRIMER CIRCUITO

    13

  • DENTRO DEL PROCESADOR

    PROCESADOR TIPO RISC

    PROCESADOR SEGMENTADO

    ARQUITECTURA HARVARD

    14

  • 15

  • MEMORIA DE PROGRAMA

    16

    Incluye Memoria del tipo Flash que permite 10,000 Escrituras/borradas Memoria de programa de 1024 palabras Capacidad para instrucciones de 10 bits

  • ORGANIZACION DE LA MEMORIA DE PROGRAMA

    17

  • Memoria de datos

    AREA DE RAM ESTATICA (SRAM) DONDE RESIDE EL BANCO DE REGISTROS ESPECFICOS (SFR) Y EL BANCO DE REGISTROS DE PROPOSITO GENERAL (GPR)

    AREA DE EEPROM DE 64 BYTES, DONDE SE PUEDEN ALMACENAR DATOS QUE NO SE PIERDEN AL DESCONECTAR LA ALIMENTACIN

    18

    LA MEMORIA DE DATOS DEL PIC SE DIVIDE EN DOS AREAS

  • ORGANIZACION DE LA MEMORIA DE DATOS

    19

  • EL REGISTRO ESTADO ESTRUCTURA INTERNA DEL REGISTRO ESTADO

    20

  • CONFIGURACION DE E/S

    21

  • CONFIGURACIONES INICIALES En la configuracin inicial se asignan las siguientes funciones de cmo trabajar el microcontrolador

    Indicar si se activa la proteccin de cdigo. Indicar si se activa o desactiva el Watchdog. Indicar si se activa o desactiva el Power_up_timer. Indicar el tipo de oscilador a utilizar. Cabe destacar que se deben colocar al inicio del cdigo.

  • Ejemplo:

    _CP_OFF: proteccin de cdigo desactivada. _WDT_OFF: Watchdog Timer desactivado. _PWRTE_ON: Se habilita el reset mediante el Power

    Up Timer

    _XT_OSC: Se utiliza el oscilador por cristal de cuarzo

  • CONFIGURACIONES INICIALES

    INCLUDE :Indica las etiquetas que nombran a los diferentes registros, y el valor que le corresponde a cada uno.

    Este fichero se localiza al inicio del programa en ensamblador, debajo de las configuraciones iniciales para programacin

    LIST P=PIC16F84A :Indica el tipo de procesador utilizado

  • EJEMPLO DEL ENCABEZADO DEL PROGRAMA

    Configuracin inicial:

  • PROGRAMA DE EJEMPLO

    PROGRAMA DE EJEMPLO en el cual a travs del puerto B se obtiene el dato de las cinco lineas de Puerto A al que est conectado un array de interruptores. Por ejemplo, si por el Puerto A se introduce 11001. por el puerto B aparecer xxx11001 (se usa X para los valores que no tienen importancia).

    Zona de datos***********************************************************

    __CONFIG __CP__OFF & __WDT_OFF & __PWRTE_ON &__XT_OSC

    ;Configuracin inicial del microcontrolador

    LIST P=16F84A ;SE INDICA EL PROCESADOR INCLUDE

    **************************************************************************

  • Zona de cdigos ******************************************************************

    ORG D ;El programa comienza en la direccin 0 de ;memoria de programa

    Inicio bsf STATUS,RP0 ;Pone a 1 el bits 5 del STATUS. Acceda al banco 1. clrf TRISB ;Las lneas del Puerto B se configuran como salidas movlw b11111111 movwf TRISA ;Las lneas del Puerto A se configuran como entradas bcf STATUS,RP0 ;Pone a 0 el bit 5 de STATUS. Acceso al Banco 0.

    Principal movf PORTA,W ;Lee el Puerto A. movwf PORTB ;El contenido de W se visualiza por el Puerto B. goto Principal ;Crea un bucle cerrado

    END ;Fin del programa

    ***********************************************************************************

  • TIPOS DE INSTRUCCIONES EN ENSAMBLADOR

    28

    LAS INSTRUCCIONES DEL REPERTORIO DE LOS PIC DE GAMA MEDIA SE CLASIFICAN EN CINCO GRANDES GRUPOS ATENDIENDO AL TIPO DE OPERACIN QUE DESARROLLAN.

  • OPERACIONES ORIENTADOS A MANEJAR REGISTROS DE TAMAO BYTE

    Las instrucciones de este grupo tienen como sintaxis nemnico f,d. cuando d=1, el registro de origen coincide con el registro fuente.

    Por ejemplo, si se desea Incrementar el contenido de un registro, reg1 y guardar el nuevo valor en el mismo se utiliza la instruccin inc reg1, 1.

  • Formato de las instrucciones orientadas a manejar operandos que son registros de 1 byte. El operando fuente se representar con los 7 bits de la direccin que ocupa el registro en la memoria de datos.

    El destino puede ser el mismo operando fuente (d=1) o el registro W (d=0)

  • OPERACIONES ORIENTADAS A MANEJAR BITS

    Formato de las instrucciones que realizan operaciones que manipulan 1 bit.

    Los 3 bits del campo b indican la posicin que ocupa el bit afectado dentro del registro fuente cuya direccin la expresa el campo f.

  • OPERACIONES QUE MANEJAN UN VALOR INMEDIATO O LITERAL

    EJEMPLO: Se desea cargar en el registro W el valor inmediato 0x33.

    Instruccin a emplear: movlw 0x33

    Formato de la instruccin: movlw 0x33 : 110000 00110011

  • Este tipo de instrucciones afectan el contenido del Contador de Programa (PC) y sirven para romper la secuencia ordenada de las instrucciones del programa. Las instrucciones de este grupo tienen un formato de slo dos campos:

    -Campo del cdigo OP, de 3 bits.

    -Campo de la direccin del salto que se carga en el PC, de 11 bits.

    OPERACIONES INCONDIOCIONALES DE CONTROL DE FLUJO DE PROGRAMA

  • Los PIC disponen de unas pocas instrucciones muy eficientes, que cuando se cumple una condicin dan un brinco (Skip), que solo se salta una instruccin, la que hay debajo de la condicional.

    La condicin es el estado de un bit de un registro o la puesta a 0 de un registro tras un decremento o incremento.

    OPERACIONES DE SALTO CONDICIONAL

  • La instruccin decfz f,d responde al grupo de instrucciones que manejan los registros de 1byte, en este caso, si d=1, el destino es el propio registro fuente y lo que hace la instruccin es decrementar el contenido de f y dejar el resultado en f.

    Pero, adems, si el nuevo valor de f = 0, se produce un brinco. Si no es 0, el flujo de control contina con la siguiente instruccin.

    OPERACIONES DE DECREMENTO

    CONDICIONAL

  • SIMBOLOS MAS USADOS EN EL LENGUAJE ENSAMBLADOR DE MICROCHIP

  • TABLA DE LAS INSTRUCCIONES QUE MANEJAN REGISTROS

  • CODIGO EN MPLAB X IDE

  • UNA VEZ ESCRITO EL CODIGO LIMPIAR Y COMPILAR

    INDICA QUE SE COMPLETO LA COMPILACI{ON SIN ERRORES

    HERRAMIENTA LIMPIAR Y CONTRUIR EJECUTA EL COMANDO DE COMPILACI{ON

  • ABRIMOS EL CODIGO HEXADECIMAL CON EL SIMULADOR O PROGRAMADOR

    EN ESTA CARPETA SE ENCUENTRA EL ARCHIVO HEXADECIMAL

    ARCHIVO .HEX ES EL QUE SE RABAR AL PIC