Post on 25-Sep-2015
description
transcript
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