Professional Documents
Culture Documents
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
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
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
andwf dato1,0
w =00101010 dato1=00101010 w =10010001 dato1=00101010 and w =10010001 -----------dato1=00000000 w =00000000 ------ Z=1
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
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
END retardo clrf TMR0 bcf INTCON,2 test btfss INTCON,2 goto test decfsz dato3,f goto retardo return
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
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
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).
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
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
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
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