Sunteți pe pagina 1din 63

MICROCONTROLADORES PIC

INTRODUCCIN A LOS MICROCONTROLADORES PIC

Qu es un microcontrolador PIC?
PIC : Circuito Integrado Programable Microcontrolador: Sistema basado en microprocesador cerrado Computador completo de limitadas prestaciones, contenido en un chip Microcomputador dedicado

Microcontrolador
Sistema cerrado dentro del cual se encuentra basicamente: Microprocesador Memorias Perifricos E/S Recursos auxiliares ADC, Temporizadores.

Microprocesador
Circuito integrado que contiene la UCP, Unidad Central de Proceso Sistema abierto con el que se puede construir un computador Dispositivo que decodifica y ejecuta instrucciones

Estructura de un sistema abierto basado en un microprocesador

Familia de los Microcontroladores


Gama enana Gama baja Gama media Gama alta

Gama Enana
Perifricos externos 8 pines Voltaje de trabajo 2.5-5.5v dc, 4Mhz Formato de instrucciones 12 o 14 bits Repertorio de 33 o 35 instrucciones Serie PIC12Cxxx No admiten interrupcin

Gama Enana

Gama Baja
Perifricos 18 y 28 pines Repertorio de 33 instrucciones Formato de instruccin 12 bits No admiten interrupcin Pila 2 niveles Voltaje de alimentacin desde 2.5 v dc Serie PIC16C5x

Gama Media
Perifricos desde 18 patitas hasta 68 Repertorio de instrucciones es de 35 Formato de instrucciones es de 14 bits Admite interrupciones Pila de 8 niveles Posee recursos auxiliares

Gama Alta
Repertorio de 58 instrucciones Formato de instrucciones de 16 bits Arquitectura abierta Recursos auxiliares

Recursos Fundamentales y Perifricos (PIC16f877)


Puertos paralelos de 3 a 5, digitales programable individualmente Modulo TMR0, contador/temporizador de 8 bits con pre-escalador de 8 bits Modulo TMR1, contador/temporizador de 16 bits con pre-escalador PWM, Modulacin por ancho de pulso

Convertidor A/D de 10 bits, de hasta 8 canales multiplexados Puerto serie universal (USART) Puerto serie sincrono (SSP) Puerto paralelo esclavo (PSP) Modulo de captura Modulo de comparacin

Repertorio de Instrucciones
Instrucciones para manipular registros orientadas a byte
Mnemnico Descripcin afectadas ADDWF f,d Suma f + W ANDWF f,d W AND f CLRF f Limpia f CLRW Limpia W COMF f,d Comp. los bits de f DECF f,d Decrementa f en 1 DECFSZ f,d Dec f, salta si 0 Ciclos Cdigo de Mquina 1 1 1 1 1 1 1(2) 00 0111 dfff ffff 00 0101 dfff ffff 00 0001 1fff ffff 00 0001 0xxx xxxx 00 1001 dfff ffff 00 0011 dfff ffff 00 1011 dfff ffff Banderas C,DC,Z Z Z Z Z Z

Ejemplo:
andwf movlw movwf movlw andwf f,d W AND f 1 00 0101 dfff ffff Z

b00101010 dato1 d10010001 dato1,1

andwf dato1,0

w =00101010 dato1=00101010 w =10010001 dato1=00101010 and w =10010001 -----------dato1=00000000 w =00000000 ------ Z=1

Instrucciones para manipular registros orientadas a bit


BCF ffff BSF ffff BTFSC BTFSS ffff f,b Pone a cero el bit b en f f,b Pone a uno el bit b en f 1 1 01 00bb bfff 01 01bb bfff

f,b Prueba bit b en f, escapa si 0 1(2) 01 10bb bfff ffff f,b Prueba bit b en f, escapa si 1 1(2) 01 11bb bfff

BCF: Bit Clear File BSF: Bit Set File BTFSC: Bit Test File Skip Clear BTFSS: Bit Test File Skip Set

Ejemplo:
BCF ffff f,b Pone a cero el bit b en f 1 01 00bb bfff

7 6 0 bits movlw b00101010 w = 00101010 movwf dato1 dato1= 0 0 1 0 1 0 1 0 bcf dato1,1 dato1= 0 0 1 0 1 0 0 0 bsf dato1,7 dato1= 1 0 1 0 1 0 0 0

Instrucciones con literales y de control


ADDLW k ANDLW k CALL k CLRWDT TO,PD GOTO k IORLW k MOVLW k RETFIE RETLW k RETURN SLEEP TOPD SUBLW k XORLW k Suma literal k + W 1 11 111x kkkk kkkk k AND W en W 1 11 1001 kkkk kkkk Llamado a subrutina 2 10 0kkk kkkk kkkk Limpia timer del watchdog 1 00 0000 0110 0100 Salto a la direccin k k OR W en W Copia literal a W Retorna de interrupcin Retorna con literal k en W Retorna de subrutina Activa Modo standby Resta k W en W k EXOR W en W 2 1 1 2 2 2 1 10 1kkk kkkk kkkk 11 0000 kkkk kkkk 11 00xx kkkk kkkk 00 0000 0000 1001 11 01xx kkkk kkkk 00 0000 0000 1000 00 0000 0110 0011 C,DC,Z Z

1 11 110x kkkk kkkk 1 11 1010 kkkk kkkk

C,CD,Z Z

Ejemplo:
CALL RETURN k Llamado a subrutina Retorna de subrutina 2 2 10 0kkk kkkk kkkk 00 0000 0000 1000

inicio

movf movwf call btfsc goto call incf

dato5,0 PORTB retardo dato5,2 inicio retardo dato5,1

END retardo clrf TMR0 bcf INTCON,2 test btfss INTCON,2 goto test decfsz dato3,f goto retardo return

ARQUITECTURA INTERNA DE LOS MICROCONTROLADORES

El Procesador
Arquitectura Harvard Arquitectura Von Neumann Tecnologa RISC Tecnologa CMOS Segmentacin Bus de datos 8 bits

Arquitectura Harvard

Memorias
Memoria de Datos
SRAM SFR GPR
EEPROM

Memoria de Programa
EEPROM FLASH

Memoria STACK
SRAM (PILA)

Interrupciones
Desviacin del flujo de control de prog. De naturaleza asincrona Tipo interno Tipo externo Vector de interupcin 0004H Hasta 14 fuentes de interrupcin

Causas de interrupcin
Activacin de la linea RB0/INT Desbordamiento del TMR0 Cambio de estado RB7-RB4 Finalizacin de la escritura en la EEPROM Recepcin de datos en la USART ADC

Ejemplo:
ORG

ORG

Inicio

0x00 goto 0x04 btfss goto bcf movf retfie movlw movwf movlw movwf bcf goto

Inicio PIR1,RCIF _volver PIR1,RCIF RCREG,W b10101001 ADCON0 b'10010000' RCSTA PIR1,TXIF inicio

END

Registros Internos
STATUS REGISTER 03H - 83H IRP RP1 RP0 TO PD bit7 OPTION_REG REGISTER RBPU INTEDG T0CS T0SE Bit7 INTCON REGISTER GIE EEIE T0IE bit7

DC

C bit0

PSA

PS2

PS1

PS0 bit0

INTE

RBIE

T0IF

INTF

RBIF bit0

Ciclo de Instruccin
Ciclo del oscilador Ciclo de instruccin 1 C.inst. lee y ejecuta (Pipeline) Frec. De instr.=Frec.osc/4 Cada instr. Se ejecuta en un ciclo de instr. Excepto las instr. De salto control de prog.

Q1: Decodificacin de la instruccin Q2: Lectura del dato (si lo hay) Q3: Procesa el dato Q4: Escribe el dato

Codificacin de instrucciones
Convertir el nemnico en lenguaje maquina Ejemplo:
MOVLW Sintaxis Operando Operacin Formato Codificacin 0xFF movlw k 0 =< K =< 255 KW 11 00xx kkkk kkkk 11 0000 1111 1111 = 30FF Hex

Despus de ejecutar la instruccin W = FF

Ejemplo:
dato1 EQU MOVWF Sintaxis Operando Operacin Formato Codificacin 0x0C dato1 movwf f 0 =< f =< 127 WF 00 0000 1fff ffff 00 0000 1000 1100 = 008C Hex

Despus de ejecutar la instruccin dato1 = FF

Ejemplo:
dato1 EQU 0x0C dato1 = FF DECF dato1,1 decf f,d 0 =< f =< 127 d 1,0 Operacin f-1 Estado afec. Z Formato 00 0011 dfff ffff Codificacin 00 0011 1000 1100 = 038C Hex Despus de ejecutar la instruccin dato1 = FE Sintaxis Operando

Fabricantes de Microcontroladores
Motorola (M68HC11) ZILOG (Z-80) Microchip (PIC16F877/874) PHILLIPS (83C528) SENIX ahora UBICOM (SX-28) AVR (AT90S433) Dallas Instruments (DS80C320-323) Intel (PC80C314BPN)

Grabador de PIC
Mtodo llamado ICSP (in circuit serial programing) El PIC debe estar en modo monitor Nivel fsico Nivel de comandos Para realizar la comunicacin se utiliza un protocolo serie sncrono Puerto B, uno para llevar los datos (conectado a RB7) y otro para el reloj (conectado a RB6).

Modo monitor manual

Los detalles son los siguientes:


Primero se transmiten los bits menos significativos Los datos se capturan en el flanco de bajada del reloj El periodo mnimo del reloj es de 200ns (frec mxima de 5MHz) El tiempo de setup (tiempo que deben estar los datos antes de que llegue el flanco de bajada) y el tiempo de hold (el que deben estar despus de producirse el flanco de bajada) son de 100ns

Ejemplo de envo del comando 000010 (6 bits):

Trama de datos
Envo de comandos: 6 flancos de bajada (6 bits) Envo de datos: 16 flancos de bajada. (14 bits + 1 bit start + 1 bit stop). Bit de start y stop tienen el valor de cero logico Los datos son bidireccionales: se pueden enviar al pic o recibirlos de l El tiempo mnimo entre el envo de un comando y la lectura o escritura de un dato, debe ser de 1 microsegundo

Ejemplo de envo de un dato:

Comandos
Comando Valor Datos Sentido Descripcin 0 0 0 0 0 0 (00H) Si Entrada Saltar a la memoria de configuracin 0 0 0 0 1 0 (02H) Si Entrada Enviar un dato para la memoria de programa. 0 0 0 1 0 0 (04H) Si Salida Leer un dato de la memoria de programa 0 0 0 1 1 0 (06H) No ----- Apuntar a la siguiente direccin 0 0 1 0 0 0 (08H) No ----- Comenzar un ciclo de borrado/grabacin 0 0 1 0 0 1 (09H) No ----Borrado completo de la memoria de programa 0 0 1 0 1 1 (0BH) No ----Borrado completo de la memoria de datos 0 0 0 0 1 1 (03H) Si Entrada Enviar un dato para la memoria de datos 0 0 0 1 0 1 (05H) Si Salida Leer un dato de la memoria de Datos

Mapa de Memoria

Circuito bsico de grabacin

Aplicaciones de los microcontroladores


En los juguetes Los hornos microondas Frigorficos Televisores Computadoras Impresoras Modems El sistema de arranque de nuestro coche Instrumentacin Electrnica Control de sistemas en una nave espacial

Fases del diseo de un proyecto basado en microcontrolador


El proyecto / La idea Diseo del algoritmo Edicin del programa fuente Ensamblar / Compilar Depuracin / Error Grabacin del microcontrolador Prueba del hardware y software Depuracin Equipo final

Ventajas de los Microcontroladores


Reduce el tamao del producto acabado La Sencillez de manejo Tienen un juego de instrucciones reducido 35 en la gama media. Buena informacin, fcil de conseguir y econmica Poseen una elevada velocidad de funcionamiento Precio: Su coste es comparativamente inferior al de sus competidores. Buen promedio de parmetros: velocidad, consumo, tamao, alimentacin, cdigo compacto, etc.

Herramientas de desarrollo fciles y baratas. Muchas herramientas software se pueden recoger libremente a travs de Internet desde Microchip Existe una gran variedad de herramientas hardware que permiten grabar, depurar, borrar y comprobar el comportamiento de los PIC ejemplo EasyPIC. Diseo rpido. La gran variedad de modelos de PIC permite elegir el que mejor responde a los requerimientos de la aplicacin

EasyPIC

Desventajas de los microcontroladores

Limitado en cuanto a instrucciones Limitado en cuanto a memoria de programa Sistema cerrado Muy sensible Posee un solo vector de interrupcin

Microcontrolador VS Microprocesador
Memoria de programa Memoria de datos Interrupciones Set de instrucciones Dimensiones Velocidad de trabajo Arquitectura Von Neumann Harvard Bus de datos interno Desarrollo de aplicaciones Costo econmico

Otros Microcontroladores
MICROCONTROLADORES BASIC X - 1 Los BasicX-1 son computadoras en un chip Ejecutan aplicaciones desarrolladas en lenguaje Basic El BasicX-1 posee 32 pines de entrada/salida

MICROCONTROLADORES BASIC X - 24 El BasicX-24 tiene 8 canales analgicos independientes de 10-bit 16 lneas de entrada/salida (8 TTL + 8 ADCs y/o TTL) Puerto serial con velocidades 1200 a 19200 Baudios

Microcontroladores Basic-X

Stamp Basic:
El Stamp Basic es un microcontrolador de 8 bits Posee su propio sistema operativo Memorias, pines de entrada/salida, etc. Este microcontrolador es un pequeo computador (Micro) y al igual que un computador normal (PC), Pueden ser programados las veces que estime conveniente Incorporan una memoria EEPROM Lenguaje de programacin PBasic (Parallax Basic)

Stamp Basic

Los microcontroladores PIC en el futuro


Tiende a mantenerse y expandirse Set de 58 instrucciones Formato de instrucciones de 16 bits Arquitectura abierta Mayor velocidad de trabajo 20MHz Bus de datos interno 16 y 32 bits Mayor capacidad en sus memorias Acceso al STACK Admite mayor numero de interrupciones Capacidad de la PILA mayor a 8 niveles El costo tiende a reducirse

Je vous en remercie A tout lheure


David Apaza C.

S-ar putea să vă placă și