SlideShare uma empresa Scribd logo
1 de 84
Baixar para ler offline
Sesión 3
Introducción a la programación
        de Microcontroladores




               M.C. Marco A. Ramírez Barrientos
                                                  1
Contenido



• Introducción a los sistemas digitales.
• Introducción a LabView.
• Introducción a la programación de
  Microcontroladores PIC.
• Controladores Lógicos Programables, PLCs.


16, 23, 30 nov. y 7 dic. de 2011

                                              2
OBJETIVO GENERAL


Conocer los conceptos fundamentales para la
programación de microcontroladores, mediante
lenguajes de programación ensamblador y C.
BIBLIOGRAFIA BÁSICA

1.   Microcontrolador PIC16F84; Enrique Palacios, 2006;
     Alfaomega marcombo; 2ª. edición; 623 páginas.

2.   Microcontroladores PIC. Diseño práctico de
     aplicaciones, Angulo Usategui, José María y Angulo
     Martínez, Ignacio, McGraw-Hill.

3.   Advanced PIC Microcontroller Projects in C, Dogan
     Ibrahim, 2008, Ed. Elsevier.
INTRODUCCION AL
   MICROCONTROLADOR

• Un poco de historia
 Inicialmente cuando no existían los
 microprocesadores, se requería para el
 diseño de circuitos electrónicos muchos
 componentes y cálculos matemáticos. Un
 circuito lógico básico requería de una gran
 cantidad de elementos electrónicos
 basados en transistores, resistencias, etc,


                                           5
INTRODUCCION AL
 MICROCONTROLADOR

Un poco de historia
En el año 1971 apareció el primer
microprocesador el cual originó un cambio
decisivo en las técnicas de diseño de la
mayoría de los equipos.

Entre los microprocesadores mas conocidos
tenemos el popular Z-80 y el 8085.


                                            6
INTRODUCCION AL
     MICROCONTROLADOR
• Un poco de historia
 Los diseñadores de equipos electrónicos
 ahora tenían equipos que podían realizar
 mayor cantidad de tareas en menos tiempo y
 su tamaño se redujo considerablemente.

 sin embargo, después de cierto tiempo
 aparece una nueva tecnología llamada
 microcontrolador que simplifica aun mas el
 diseño electrónico.                          7
DIFERENCIA ENTRE MICROCONTROLADOR
         Y MICROPOCESADOR

 • Microprocesador
  Es un sistema abierto con el que puede
  construirse un computador con las
  características que se desee, acoplándole
  los módulos necesarios.

  La Unidad Central de Proceso (UCP),
  interpreta las instrucciones y el cambio de
  datos que las ejecuta.
                                                8
DIFERENCIA ENTRE MICROCONTROLADOR Y
          MICROPOCESADOR
• Microprocesador




                                  9
DIFERENCIA ENTRE MICROCONTROLADOR Y
          MICROPOCESADOR

    • Microcontrolador
     Es un sistema cerrado que contiene un
     computador completo.

     Todas las partes del computador están
     contenidas en su interior y solo salen al
     exterior las líneas que gobiernan los
     periféricos.

                                                 10
DIFERENCIA ENTRE MICROCONTROLADOR Y
            MICROPOCESADOR




Cada fabricante de microcontroladores oferta un
elevado número de modelos diferentes, desde los
más sencillos hasta los más sofisticados.

                                                  11
ARQUITECTURA INTERNA

Un microcontrolador posee todos los
componentes de un computador, pero con unas
características fijas que no pueden alterarse:
 – Procesador
 – Memoria de programa (No volátil)
 – Memoria datos (lectura y escritura)
 – Líneas E/S para los controladores de
   periféricos
 – Recursos auxiliares
                                           12
ARQUITECTURA INTERNA




1.   Procesador o CPU.
2.   Memoria no volátil para contener el programa.
3.   Memoria de lectura y escritura para guardar los datos.
4.   Líneas de E/S para los controladores de periféricos.
5.   Recursos auxiliares (Módulos para el control de      13
     periféricos)
PROCESADOR O CPU

Es el elemento más importante del
microcontrolador y determina sus principales
características, tanto a nivel de hardware
como de software

Existen dos arquitecturas, se diferencian en la
forma de conexión de la memoria al procesador
y en los buses que cada una necesita:

– Arquitectura Von Neumann
– Arquitectura Harvard
                                            14
ARQUITECTURA VON NEUMANN




Algunas familias de microcontroladores
como la INTEL-51 y la Z80
                                         15
ARQUITECTURA VON NEUMANN




Existe una sola memoria, donde coexisten las
instrucciones de programa y los datos,
accedidos con un bus de dirección, uno de
datos y uno de control.




                                               16
ARQUITECTURA VON NEUMANN

Limitación:
  Longitud de las instrucciones por el bus de
  datos (varios accesos a memoria para
  instrucciones complejas).

  Velocidad de operación (bus único para datos e
  instrucciones) e impide superponer ambos
  tiempos de acceso.


                                                17
ARQUITECTURA HARVARD




Utilizada en sistemas embebidos en general.


                                              18
ARQUITECTURA HARVARD

– Memoria de datos separada de la memoria
  de instrucciones
     – Palabra de datos
     – Palabra de instrucción
– Conjunto reducido de instrucciones (RISC)
– Ejecución de instrucciones en un ciclo de
  instrucción.
– Paralelismo implícito, segmentación del
  procesador (pipe-line)

                                              19
• El alto rendimiento que poseen los
  microcontroladores se debe a tres técnicas:

  – Arquitectura Harvard
  – Arquitectura RISC
  – Segmentación




                                           20
TIPOS DE MEMORIAS


Esta diseñado para que en su memoria de programa
se almacenen todas las instrucciones del programa
de control.


   1.   ROM con máscara
   2.   OTP (One Time Programmable)
   3.   EPROM
   4.   EEPROM
   5.   FLASH

                                               21
MEMORIA DE PROGRAMA (ROM)

1. ROM con máscara
  Se graba durante el proceso de fabricación
  mediante el uso de “máscaras”
  Se aconseja este tipo de memoria cuando
  se precisan series muy grandes




                                               22
MEMORIA DE PROGRAMA (ROM)

2 . OTP (One Time Programmable)
 Sólo se puede grabar una vez por parte del
 usuario.
 Se aconseja este tipo de memoria para
 prototipos finales.




                                              23
MEMORIA DE PROGRAMA (ROM)

3. EPROM
 En la superficie de la cápsula del
 microcontrolador existe una ventana de
 cristal por la que se puede someter al chip de
 la memoria a rayos ultravioleta para producir
 su borrado y emplearla nuevamente.




                                              24
MEMORIA DE PROGRAMA (ROM)

4. EEPROM
 La grabación es similar a las memorias OTP
 y EPROM, pero el borrado es mucho más
 sencillo al poderse efectuar de la misma
 forma que el grabado, o sea, eléctricamente.
 Garantizan 1.000.000 de ciclos de
 escritura/borrado.


                                            25
MEMORIA DE PROGRAMA (ROM)

5. FLASH
 Se puede escribir y borrar en circuito al igual
 que la EEPROM, pero suelen disponer de
 mayor capacidad que estas últimas.
 Pueden ser programadas con las mismas
 tensiones de alimentación del
 microcontrolador.


                                               26
MEMORIA DE DATOS (RAM)

Es una memoria volátil y se destina a guardar
las variables y los datos (SRAM).

Los microcontroladores disponen de
capacidades de RAM comprendidas entre 20 y
512 bytes.

Existen microcontroladores que disponen de
memoria EEPROM para contener datos.
                                             27
REGISTROS Y BITS

Un registro es una posición de memoria en la cual
se puede almacenar un dato. Es decir que la
memoria esta dividida en pequeñas partes llamadas
“Registros”.

El primer registro de una memoria corresponde a la
dirección 00H.

Hay un conjunto de registros que ya vienen
“Predefinidos” desde la fábrica.

Cada registro esta dividido en 8 partes, Bits.   28
LINEAS DE ENTRADA/SALIDA (PUERTOS)


Los microcontroladores cuentan con una serie
de pines destinados a entrada y salida de datos
o señales digitales. A estos pines se les
denomina “Puerto”.

Los puertos están controlados por los registros.

Entradas salidas de propósito general, trabajo
con dispositivos simples como relés, Leds, etc.

                                             29
RECURSOS AUXILIARES

•   Circuito de reloj.
•   Temporizadores y contadores.
•   Conversores AD y DA.
•   Comparadores
•   Modulador de ancho de pulsos (PWM)
•   Puerto serie
•   Otros puertos de comunicación (USB, CAN)
•   Sistema de protección.
•   Estado de reposo


                                               30
LOS MICROCONTROLADORES PIC

Los 'PIC' son una familia de microcontroladores
tipo RISC (Reduced Instruction Set Computer)
fabricados por Microchip Technology Inc. y
derivados del PIC1650, originalmente
desarrollado por la división de microelectrónica
de General Instruments.

PIC “Peripheral Interface Controller”.

El PIC de 8 bits se desarrollo para el año 1975

                                                  31
LOS MICROCONTROLADORES PIC


Los microcontroladores PIC incorporan en
su procesador tres características:
  Procesador tipo RISC
  Procesador segmentado
  Arquitectura HARVARD

  Con estos recursos los PIC son capaces de
  ejecutar en un ciclo de instrucción todas las
  instrucciones, excepto las de salto que tardan
  el doble.
                                            32
LA FAMILIA DE LOS PIC

Se divide en cuatro gamas:
Gama enana, gama baja, gama media y gama
alta.

Sus diferencias radica en:
El numero de instrucciones y longitud
El número de puertos y funciones.

Lo cual se refleja en el encapsulado, la
complejidad interna y de programación, y en el
número de aplicaciones.
                                                 33
NOMENCLATURA DE LOS PIC’S


            PIC nnLLLxxx
nn: Un número propio de la gama del PIC

LLL:  Código de letras donde la primera
 indica la tensión de alimentación y las
 otras dos el tipo de memoria que utiliza


Xxx: Número que indica el modelo del PIC.
                                          34
NOMENCLATURA DE LOS PIC’S




                            35
GAMA ENANA

PIC 12C(F)XXX, de 8 patas (pines)




Aunque solo tienen 8 pines, pueden
destinar hasta 6 como líneas de E/S para
los periféricos porque disponen de un
oscilador interno R-C.
                                           36
GAMA ENANA

Características de los modelos PIC16C5X




                                          37
GAMA BAJA O BASICA




•   Mejores relaciones coste/prestaciones.
•   Encapsulados con 18 y 28 pines
•   Pueden alimentarse con una tensión 2.5V
•   33 instrucciones con formato de 12bits.

                                              38
GAMA BAJA PIC16C5X




Principales características de los modelos de
                 gama baja.                   39
GAMA MEDIA

• Encapsulado desde 18 hasta 68 pines
• 35 instrucciones de 14 bits




                                        40
GAMA MEDIA PIC16CXXX




Características relevantes de los modelos
      PIC16X8X de la gama media
                                            41
GAMA ALTA

• Alcanzan 58 instrucciones de 16 bits
• Sistema de gestión de interrupciones
  vectorizadas
• Incluyen variados controladores de
  periféricos, puertas de comunicación serie y
  paralelo
• Arquitectura abierta.


                                           42
EL PIC16X84



• Pertenece a la familia de la gama media
• Tiene solo 18 pines
• Posee una memoria de programa de 1K
  palabras de 14bits cada una
• 64 bytes como memoria de datos
  auxiliar y opcional
                                       43
TARJETA DE PRESENTACION DE
            PIC16X84


• Memoria de programa 1Kx14
• Memoria de datos RAM 36 byte-PIC16C84 y
  de 68 byte-PIC16F84
• Memoria de datos 64bytes/EEPROM
• Pila de 8 niveles
• Interrupciones 4 tipos diferentes
• Juego de instrucciones 35
• Encapsulado Platico DIP de 18 pines
• Frecuencia de trabajo 10MHz Máxima
                                       44
TARJETA DE PRESENTACION
            DE PIC16X84


• Temporizadores : Solo uno TMR0
• Líneas E/S digitales : 13 Puerta A y Puerta B
• Voltaje de alimentación : VDD de 2 a 6VDC
• Corriente máxima absorbida : 80mA-Puerta A
  y 150mA-Puerta B
• Corriente máxima suministrada : 50mA-
  Puerta A y 100mA-Puerta B

                                            45
ASPECTO EXTERNO




                  46
FRECUENCIA DE
     FUNCIONAMIENTO. EL RELOJ
Cuando un PIC16X8X funciona a 10MHz, le
corresponde un ciclo de instrucción de
400ns.

Ciclo de instrucción: 4x100ns=400ns

Todas las instrucciones del PIC se realizan
en un ciclo de instrucción menos las de salto.

Se aplica la técnica de segmentación o
Pipeline
                                             47
TIPOS DE OSCILADORES

• OSCILADOR TIPO RC
  Un oscilador formado por una resistencia
  y un condensador




                                             48
TIPOS DE OSCILADORES
• OSCILADOR TIPO HS
  Un oscilador que alcanza una alta
  velocidad entre 4 y 20MHz, basado en un
  cristal de cuarzo o un resonador cerámico




                                          49
TIPOS DE OSCILADORES

• OSCILADOR TIPO XT
  Es un resonador de cristal o resonador para
  frecuencias estándar, comprendida entre
  100KHz y 4MHz.




                                                50
TIPOS DE OSCILADORES

• OSCILADOR TIPO LP
  Oscilador de bajo consumo con cristal o
  resonador diseñado para trabajar en un
  rango de frecuencias de 35 a 200KHz.

 El cristal de cuarzo o el resonador
 cerámico se coloca entre los pines OSC1
 y OSC2
                                            51
REINICIALIZACION O RESET

Con un nivel lógico bajo en MCLR# el
microcontrolador se reinicializa:

1. El contador de programa se carga con la
   dirección 0.
2. La mayoría de los registros de estado y
   control del procesador toman un estado
   conocido y determinado.


                                             52
ESQUEMA MINIMO DE
MONTAJE DEL PIC16F84




                       53
EN EL INTERIOR DEL PROCESADOR

Los microcontroladores PIC incorporan tres
característica:
 – Procesador tipo RISC
 – Procesador segmentado
 – Arquitectura Harvard

Una condición es la simetría y ortogonalidad en el
formato de las instrucciones (14bits)

El juego de instrucciones se reduce a 35 y con la
estructura segmentada se pueden realizar
simultáneamente las dos fases que compone cada
instrucción
                                                     54
EN EL INTERIOR DEL PROCESADOR

• El manejo intensivo del banco de
  registros, los cuales participan de una
  manera muy activa en la ejecución de
  instrucciones.
• La ALU, efectúa sus operaciones lógico-
  aritmética con dos operandos, uno es del
  registro W(Work) y el otro que puede
  provenir de cualquier registro o del propio
  código de instrucción.

                                                55
ARQUITECTURA INTERNA DEL
           PIC16C84
Consta de siete bloques fundamentales:

• Memoria de programa EEPROM 1K x 14bits.

• Memoria de datos formada por dos áreas, una
  RAM aloja 22 registros de (SFR), 36 registros
  (GPR) y tipo EEPROM de 64 bytes.

• Camino de datos con la ALU de 8 bits y un
  registro de trabajo W.
                                              56
Assembly language programming


• In order to function properly, we must define several
  microcontroller parameters such as: - type of
  oscillator,
  - whether watchdog timer is turned on, and
  - whether internal reset circuit is enabled.
  All this is defined by the following directive:

  _CONFIG _CP_OFF&_WDT_OFF&PWRTE_ON&XT_OSC


                                                     57
58
Clock and Instruction Cycles
• Instruction Clock
   –   Clock from the oscillator enters a microcontroller via OSC1 pin where internal circuit of a
       microcontroller divides the clock into four even clocks Q1, Q2, Q3, and Q4 which do not
       overlap.
   –   These four clocks make up one instruction cycle (also called machine cycle) during which
       one instruction is executed.
   –   Execution of instruction starts by calling an instruction that is next in string.
   –   Instruction is called from program memory on every Q1 and is written in instruction register
       on Q4.
   –   Decoding and execution of instruction are done between the next Q1 and Q4 cycles. On the
       following diagram we can see the relationship between instruction cycle and clock of the
       oscillator (OSC1) as well as that of internal clocks Q1-Q4.
   –   Program counter (PC) holds information about the address of the next instruction.
PIC16F877A Features
High Performance RISC CPU:
• Only 35 single word instructions to learn

• All single cycle instructions except for program
  branches, which are two-cycle

• Operating speed: DC - 20 MHz clock input DC -
  200 ns instruction cycle
PIC16F877A Pin Layout

ADC inputs
  PORTA                              PORTB
Counter
0
PORTE
external
input                                PORTD

 PORT                                PORTC
 C




                      PORT
                      D
PIC Memory

The PIC16F877A has an 8192 (8k) 14bit instruction
program memory

368 Bytes Registers as Data Memory :
  Special Function Registers: used to control peripherals
  and PIC behaviors
  General Purpose Registers: used to a normal
  temporary storage space (RAM)

256 Bytes of nonvolatile EEPROM
PIC Program Memory
The PIC16F877 8192 (8k) 14bit instructions
                           Takes a max of 8 addresses,
                           the ninth address will write
                       When the
                           over the first.
                       controller is
                       reset, program
                       execution starts
                       from here
                        If interrupted, program
                        execution continues
                        from here
PIC Data Memory
The
most
importa
nt
registers
have
addresses
in all
the four
banks



            The data memory is devided into 4 memory banks
Register Addressing Modes
                                Immediate Addressing:
                                     Movlw H’0F’




Indirect Addressing:
Direct Addressing:
• Full7 bits register address is written the special function
Uses 8 bit of 14 bit instruction to identify a register file
register FSR 9th bit comes from RP0 and RP1 bits of
address 8th and
• INDF isregister. get the content of the address pointed by FSR
STATUS used to
• Exp : A sample program to clear RAM locations H’20’ –
i.e.    Z equ D’2’                 ; Z=2
H’2F: btfss STATUS, Z                    ; test if the 3rd bit of the
        MOVLW 0x20 ;initialize pointer
STATUS registerRAM set
        MOVWF FSR ;to is
NEXT    CLRF INDF ;clear INDF register
PIC Family Control Registers
• Uses a series of “Special Function Registers”
  for controlling peripherals and PIC behaviors.

    STATUS     Bank select bits, ALU bits (zero, borrow,
    carry)
    INTCON      Interrupt control: interrupt enables, flags, etc.
    OPTION_REG       contains various control bits to
    configure the TMR0 prescaler/WDT postscaler
    ,the External INT Interrupt, TMR0 and the weak
    pull-ups on PORTB
Special Function Register
  ”STATUS Register“
Special Function Register
  ”INTCON Register“
PIC Peripherals

Each peripheral has a set of SFRs to control its operation.

Different PICs have different on-board peripherals
Peripheral Features
5 Digital I/O Ports
Three timer/counter modules
    Timer0: 8-bit timer/counter with 8-bit pre-scaler
    Timer1: 16-bit timer/counter with pre-scaler, can be incremented during SLEEP via
    external crystal/clock
    Timer2: 8-bit timer/counter with 8-bit period register, pre-scaler and post-scaler
A 10-bit ADC with 8 inputs
Two Capture, Compare, PWM modules
     Capture is 16-bit, max. resolution is 12.5 ns
     Compare is 16-bit, max. resolution is 200 ns
     PWM max. resolution is 10-bit
Synchronous Serial Port (SSP) with SPI™ (Master mode) and I2C™ (Master/Slave)
Universal Synchronous Asynchronous Receiver Transmitter (USART/SCI) with 9-
bit address detection
Parallel Slave Port (PSP) 8-bits wide, with external RD, WR and CS controls
PIC Peripherals: Ports (Digital I/O)
Ports are basically digital I/O pins which exist in all PICs

The PIC16F877A have the following ports:
   PORT A has 6 bit wide, Bidirectional
   PORT B,C,D have 8 bit wide, Bidirectional
   PORT E has 3 bit wide, Bidirectional

Ports have 2 control registers
    TRISx sets whether each pin is an input (1) or output (0)
    PORTx sets their output bit levels or contain their input bit levels

Pin functionality “overloaded” with other features
Most pins have 25mA source/sink thus it can drive LEDs directly
PIC Peripherals: Analogue
       to Digital Converter

Only available in 14bit and 16bit cores


Fs (sample rate) < 54KHz


the result is a 10 bit digital number


Can generate an interrupt when ADC conversion is
done
PIC Peripherals: Analogue to
              Digital Converter
The A/D module has four registers. These registers are:
   A/D Result High Register (ADRESH)
   A/D Result Low Register (ADRESL)
   A/D Control Register0 (ADCON0)
   A/D Control Register1 (ADCON1)
Multiplexed 8 channel inputs
   Must wait Tacq to charge up sampling capacitor
Can take a reference voltage different from that of the
controller
PIC Peripherals: USART: UART

  Serial Communications Peripheral:
Universal Synch./Asynch. Receiver/Transmitter

  Interrupt on TX buffer empty and RX buffer full

  Asynchronous communication: UART (RS-232C serial)
     Can do 300bps - 115kbps
     8 or 9 bits, parity, start and stop bits, etc.
     Outputs 5V so you need a RS232 level converter (e.g.,
     MAX232)
PIC Applications

LED Flasher
Loop:
        bsf    PORTB, 0
        call   Delay_500ms
        bcf    PORTB, 0
        call   Delay_500ms
        goto   Loop
PIC Applications
Button Read
         Movlw 0
         movwf TRISD, f
         bsf   TRISD, 2
Loop:
         btfsc   PORTD, 2
         goto    light
         goto    No_light
Light:
      bsf        PORTB,0
      goto       Loop
No_light:
      bcf        PORTB,0
      goto       Loop
mikro C




          77
Las variables básicas en este compilador
específico son:
• bit
• char
• short
• int
• long
• float
• double                                   78
• Las variables bit permiten almacenar un valor lógico es decir
  verdadero o falso, 0 ó 1.
• Las variables char se utilizan para almacenar caracteres
  codificados con el código ASCII, son útiles para guardar letras
  o textos.
• Una variable short almacena un número entero de 8 bits corto
  puede valer de: -127 a 127.
• Las variables tipo int guardan números enteros de 16 bits,
  está variable permite guardar números de: -32767 a 32767.
• La variable tipo long almacena números enteros largos de 32
  bits, su rango puede ser de:
• -2147483647 a 2147483647.
• Las variables tipo float y double permiten guardar números 79
  con punto decimal
80
•   bit VARIABLE1_BIT; //Declaración de una variable tipo bit.
•   char CARACTER; //Declaración de una variable tipo char.
•   char CARACTER2='J'; //Declaración de una variable tipo char
    inicializada con el
•   //valor ASCII del carácter J.
•   int ENTERO=1234; //Declaración de una variable tipo entera inicializada
    con
•   //el valor 1234.
•   float DECIMAL=-12.45; //Declaración de una variable con punto decimal
•   //inicializada con el valor -12,45.
•   double DECIMAL2=56.68; //Declaración de una variable con punto
    decimal
•   //inicializada con el valor 56,68.
•   long ENTERO2=-954261; //Demacración de una variable de tipo entero
    largo
                                                                         81
•   //inicializada con el valor -954261.
• Los siguientes ejemplos muestras como declarar
  variables sin signo:
• unsigned char CARACTER; //Declaración de una
  variable tipo char sin signo.
• unsigned int ENTERO; //Declaración de una variable
  tipo entera sin signo.
• unsigned long ENTERO2; //Demacración de una
  variable de tipo entero largo sin signo.




                                                       82
void main() {

 TRISA = 0x00;        // set direction to be output
 TRISB = 0x00;        // set direction to be output
 TRISC = 0x00;        // set direction to be output
 TRISD = 0x00;        // set direction to be output

    do {
     PORTA = 0x00;      // Turn OFF LEDs on PORTA
     PORTB = 0x00;      // Turn OFF LEDs on PORTB
     PORTC = 0x00;      // Turn OFF LEDs on PORTC
     PORTD = 0x00;      // Turn OFF LEDs on PORTD
     Delay_ms(100);   // 1 second delay

     PORTA = 0xFF;     // Turn ON LEDs on PORTA
     PORTB = 0xFF;      // Turn ON LEDs on PORTB
     PORTC = 0xFF;      // Turn ON LEDs on PORTC
     PORTD = 0xFF;      // Turn ON LEDs on PORTD
     Delay_ms(100); // 1 second delay
    } while(1);    // Endless loop                    83
}
84

Mais conteúdo relacionado

Mais procurados

Practicas electronica digital 1.tese.ag
Practicas electronica digital 1.tese.ag Practicas electronica digital 1.tese.ag
Practicas electronica digital 1.tese.ag Jose Agustin Estrada
 
CONTADOR BINARIO ASCENDENTE-DESCENDENTE DE 14 BITS CON ARDUINO
CONTADOR BINARIO ASCENDENTE-DESCENDENTE DE 14 BITS CON ARDUINOCONTADOR BINARIO ASCENDENTE-DESCENDENTE DE 14 BITS CON ARDUINO
CONTADOR BINARIO ASCENDENTE-DESCENDENTE DE 14 BITS CON ARDUINOFernando Marcos Marcos
 
Fibra optica y transmisores opticos
Fibra optica y transmisores opticosFibra optica y transmisores opticos
Fibra optica y transmisores opticosedgaralejandrocolmen
 
Arquitectura de Microprocesadores Modernos.
Arquitectura de Microprocesadores Modernos.Arquitectura de Microprocesadores Modernos.
Arquitectura de Microprocesadores Modernos.Joshua Aleman
 
Circuitos secuenciales sincronos y asincronos
Circuitos secuenciales sincronos y asincronosCircuitos secuenciales sincronos y asincronos
Circuitos secuenciales sincronos y asincronosAlexa Ramirez
 
El Amplificador Operacional
El Amplificador OperacionalEl Amplificador Operacional
El Amplificador Operacionalmissael
 
microprocessor-and-microcontroller
microprocessor-and-microcontrollermicroprocessor-and-microcontroller
microprocessor-and-microcontrollerjhcid
 
Microcontroladores: Módulos del micro PIC16F877 con temporizadores e interrup...
Microcontroladores: Módulos del micro PIC16F877 con temporizadores e interrup...Microcontroladores: Módulos del micro PIC16F877 con temporizadores e interrup...
Microcontroladores: Módulos del micro PIC16F877 con temporizadores e interrup...SANTIAGO PABLO ALBERTO
 
Interfase del mundo analógico con el digital (1)
Interfase del mundo analógico con el digital (1)Interfase del mundo analógico con el digital (1)
Interfase del mundo analógico con el digital (1)trach12
 
Amplificadores operacionales
Amplificadores operacionalesAmplificadores operacionales
Amplificadores operacionalesJomicast
 
Sensores utilizados en Robótica
Sensores utilizados en RobóticaSensores utilizados en Robótica
Sensores utilizados en RobóticaVinicio Acuña
 
Tipos de memorias para microprocesadores
Tipos de memorias para microprocesadoresTipos de memorias para microprocesadores
Tipos de memorias para microprocesadoresKevin Barrera
 

Mais procurados (20)

Arquitectura harvard
Arquitectura harvardArquitectura harvard
Arquitectura harvard
 
Clase Timer 1
Clase Timer 1Clase Timer 1
Clase Timer 1
 
Filtro fir e iir.
Filtro fir e iir.Filtro fir e iir.
Filtro fir e iir.
 
Practicas electronica digital 1.tese.ag
Practicas electronica digital 1.tese.ag Practicas electronica digital 1.tese.ag
Practicas electronica digital 1.tese.ag
 
CONTADOR BINARIO ASCENDENTE-DESCENDENTE DE 14 BITS CON ARDUINO
CONTADOR BINARIO ASCENDENTE-DESCENDENTE DE 14 BITS CON ARDUINOCONTADOR BINARIO ASCENDENTE-DESCENDENTE DE 14 BITS CON ARDUINO
CONTADOR BINARIO ASCENDENTE-DESCENDENTE DE 14 BITS CON ARDUINO
 
Fibra optica y transmisores opticos
Fibra optica y transmisores opticosFibra optica y transmisores opticos
Fibra optica y transmisores opticos
 
Arquitectura de Microprocesadores Modernos.
Arquitectura de Microprocesadores Modernos.Arquitectura de Microprocesadores Modernos.
Arquitectura de Microprocesadores Modernos.
 
Circuitos secuenciales sincronos y asincronos
Circuitos secuenciales sincronos y asincronosCircuitos secuenciales sincronos y asincronos
Circuitos secuenciales sincronos y asincronos
 
El Amplificador Operacional
El Amplificador OperacionalEl Amplificador Operacional
El Amplificador Operacional
 
Receptor de FM
Receptor de FMReceptor de FM
Receptor de FM
 
microprocessor-and-microcontroller
microprocessor-and-microcontrollermicroprocessor-and-microcontroller
microprocessor-and-microcontroller
 
Módulo Timer 1 del PIC16F887
Módulo Timer 1 del PIC16F887Módulo Timer 1 del PIC16F887
Módulo Timer 1 del PIC16F887
 
Microcontroladores: Módulos del micro PIC16F877 con temporizadores e interrup...
Microcontroladores: Módulos del micro PIC16F877 con temporizadores e interrup...Microcontroladores: Módulos del micro PIC16F877 con temporizadores e interrup...
Microcontroladores: Módulos del micro PIC16F877 con temporizadores e interrup...
 
Interfase del mundo analógico con el digital (1)
Interfase del mundo analógico con el digital (1)Interfase del mundo analógico con el digital (1)
Interfase del mundo analógico con el digital (1)
 
Amplificadores operacionales
Amplificadores operacionalesAmplificadores operacionales
Amplificadores operacionales
 
Memorias
MemoriasMemorias
Memorias
 
Sensores utilizados en Robótica
Sensores utilizados en RobóticaSensores utilizados en Robótica
Sensores utilizados en Robótica
 
Arm processor
Arm processorArm processor
Arm processor
 
Micro2 tema 3
Micro2 tema 3Micro2 tema 3
Micro2 tema 3
 
Tipos de memorias para microprocesadores
Tipos de memorias para microprocesadoresTipos de memorias para microprocesadores
Tipos de memorias para microprocesadores
 

Destaque

Breve historia y conceptos del Kernel
Breve historia y conceptos del KernelBreve historia y conceptos del Kernel
Breve historia y conceptos del KernelJoaquin Herrero
 
comunicacion pic - usb
comunicacion pic - usbcomunicacion pic - usb
comunicacion pic - usbmunlis
 
Kernel de Windows PDF
Kernel de Windows PDFKernel de Windows PDF
Kernel de Windows PDFLikedLol
 
Bootloader USB Multiplataforma para pic18f4550
Bootloader USB Multiplataforma para pic18f4550Bootloader USB Multiplataforma para pic18f4550
Bootloader USB Multiplataforma para pic18f4550Biblioman Aquihayapuntes
 
Introduccion a microcontroladores
Introduccion a microcontroladoresIntroduccion a microcontroladores
Introduccion a microcontroladorestecautind
 
Curso de lenguaje c para microcontroladores pic dia 1(2)(2)(2)(2)(2)(2)
Curso de lenguaje c para microcontroladores pic dia 1(2)(2)(2)(2)(2)(2)Curso de lenguaje c para microcontroladores pic dia 1(2)(2)(2)(2)(2)(2)
Curso de lenguaje c para microcontroladores pic dia 1(2)(2)(2)(2)(2)(2)Franz Amaya
 
Microcontroladores pic diseño practico de aplicaciones
Microcontroladores pic diseño practico de aplicacionesMicrocontroladores pic diseño practico de aplicaciones
Microcontroladores pic diseño practico de aplicacionesCarlos Tovar
 
Microcontroladores pic (josé mª angulo usategui, ignacio angulo martínez)
Microcontroladores pic (josé mª angulo usategui, ignacio angulo martínez)Microcontroladores pic (josé mª angulo usategui, ignacio angulo martínez)
Microcontroladores pic (josé mª angulo usategui, ignacio angulo martínez)Miguel Angel Corona Lòpez
 
Estructura de los sistemas operativos
Estructura de los sistemas operativosEstructura de los sistemas operativos
Estructura de los sistemas operativosANDREA
 
Capitulo II- Marco Teórico
Capitulo II- Marco TeóricoCapitulo II- Marco Teórico
Capitulo II- Marco TeóricoEvelin Peña
 
Kernel de los sistemas operativos
Kernel de los  sistemas operativosKernel de los  sistemas operativos
Kernel de los sistemas operativosAlex Acosta
 

Destaque (14)

Breve historia y conceptos del Kernel
Breve historia y conceptos del KernelBreve historia y conceptos del Kernel
Breve historia y conceptos del Kernel
 
comunicacion pic - usb
comunicacion pic - usbcomunicacion pic - usb
comunicacion pic - usb
 
Kernel
KernelKernel
Kernel
 
Labview & pic
Labview & picLabview & pic
Labview & pic
 
Kernel de Windows PDF
Kernel de Windows PDFKernel de Windows PDF
Kernel de Windows PDF
 
Bootloader USB Multiplataforma para pic18f4550
Bootloader USB Multiplataforma para pic18f4550Bootloader USB Multiplataforma para pic18f4550
Bootloader USB Multiplataforma para pic18f4550
 
Introduccion a microcontroladores
Introduccion a microcontroladoresIntroduccion a microcontroladores
Introduccion a microcontroladores
 
Curso de lenguaje c para microcontroladores pic dia 1(2)(2)(2)(2)(2)(2)
Curso de lenguaje c para microcontroladores pic dia 1(2)(2)(2)(2)(2)(2)Curso de lenguaje c para microcontroladores pic dia 1(2)(2)(2)(2)(2)(2)
Curso de lenguaje c para microcontroladores pic dia 1(2)(2)(2)(2)(2)(2)
 
Microcontroladores pic diseño practico de aplicaciones
Microcontroladores pic diseño practico de aplicacionesMicrocontroladores pic diseño practico de aplicaciones
Microcontroladores pic diseño practico de aplicaciones
 
Microcontroladores pic (josé mª angulo usategui, ignacio angulo martínez)
Microcontroladores pic (josé mª angulo usategui, ignacio angulo martínez)Microcontroladores pic (josé mª angulo usategui, ignacio angulo martínez)
Microcontroladores pic (josé mª angulo usategui, ignacio angulo martínez)
 
Curso de microcontroladores pic18 f4550
Curso de microcontroladores pic18 f4550Curso de microcontroladores pic18 f4550
Curso de microcontroladores pic18 f4550
 
Estructura de los sistemas operativos
Estructura de los sistemas operativosEstructura de los sistemas operativos
Estructura de los sistemas operativos
 
Capitulo II- Marco Teórico
Capitulo II- Marco TeóricoCapitulo II- Marco Teórico
Capitulo II- Marco Teórico
 
Kernel de los sistemas operativos
Kernel de los  sistemas operativosKernel de los  sistemas operativos
Kernel de los sistemas operativos
 

Semelhante a Sesión 3 introduccion a microcontroladores

Microcontrolador wiki
Microcontrolador wikiMicrocontrolador wiki
Microcontrolador wikiclides2006
 
Qué es un microcontrolador
Qué es un microcontroladorQué es un microcontrolador
Qué es un microcontroladorDaysi Morante
 
Apunte de microprocesadores pic
Apunte de microprocesadores picApunte de microprocesadores pic
Apunte de microprocesadores piccarlos960
 
Microcontroladores
MicrocontroladoresMicrocontroladores
MicrocontroladoresJaque Beciez
 
Introduccion a los microcontroladores pic y programacion de una matriz de led's
Introduccion a los microcontroladores pic y programacion de una matriz de led'sIntroduccion a los microcontroladores pic y programacion de una matriz de led's
Introduccion a los microcontroladores pic y programacion de una matriz de led'sRuderocker Billy
 
Resumen microcontroladores
Resumen microcontroladoresResumen microcontroladores
Resumen microcontroladoresXavier Solis
 
Electronica aplicada primera presentacion
Electronica aplicada primera presentacionElectronica aplicada primera presentacion
Electronica aplicada primera presentacionUNACH
 
Electronica aplicada primera presentacion
Electronica aplicada primera presentacionElectronica aplicada primera presentacion
Electronica aplicada primera presentacionUNACH
 
Microcomputadoras
MicrocomputadorasMicrocomputadoras
MicrocomputadorasUNACH
 
Electronica Aplicada Microcomputadores- UNACH
Electronica Aplicada Microcomputadores- UNACHElectronica Aplicada Microcomputadores- UNACH
Electronica Aplicada Microcomputadores- UNACHUNACH
 
Datasheet
DatasheetDatasheet
Datasheetaxni
 
3 microcontroladores
3 microcontroladores3 microcontroladores
3 microcontroladoresProyesa
 

Semelhante a Sesión 3 introduccion a microcontroladores (20)

Introducción
IntroducciónIntroducción
Introducción
 
Introducción
IntroducciónIntroducción
Introducción
 
Micro1.ppt
Micro1.pptMicro1.ppt
Micro1.ppt
 
Microcontrolador wiki
Microcontrolador wikiMicrocontrolador wiki
Microcontrolador wiki
 
Qué es un microcontrolador
Qué es un microcontroladorQué es un microcontrolador
Qué es un microcontrolador
 
Apunte de microprocesadores pic
Apunte de microprocesadores picApunte de microprocesadores pic
Apunte de microprocesadores pic
 
Microcontroladores
MicrocontroladoresMicrocontroladores
Microcontroladores
 
Introduccion a los microcontroladores pic y programacion de una matriz de led's
Introduccion a los microcontroladores pic y programacion de una matriz de led'sIntroduccion a los microcontroladores pic y programacion de una matriz de led's
Introduccion a los microcontroladores pic y programacion de una matriz de led's
 
Resumen microcontroladores
Resumen microcontroladoresResumen microcontroladores
Resumen microcontroladores
 
arquitecturas Modernas
arquitecturas Modernasarquitecturas Modernas
arquitecturas Modernas
 
Clase arquitectura
Clase arquitecturaClase arquitectura
Clase arquitectura
 
Electronica aplicada primera presentacion
Electronica aplicada primera presentacionElectronica aplicada primera presentacion
Electronica aplicada primera presentacion
 
Electronica aplicada primera presentacion
Electronica aplicada primera presentacionElectronica aplicada primera presentacion
Electronica aplicada primera presentacion
 
Microcomputadoras
MicrocomputadorasMicrocomputadoras
Microcomputadoras
 
Electronica Aplicada Microcomputadores- UNACH
Electronica Aplicada Microcomputadores- UNACHElectronica Aplicada Microcomputadores- UNACH
Electronica Aplicada Microcomputadores- UNACH
 
Grupo3
Grupo3Grupo3
Grupo3
 
Autor
AutorAutor
Autor
 
Datasheet
DatasheetDatasheet
Datasheet
 
3 microcontroladores
3 microcontroladores3 microcontroladores
3 microcontroladores
 
3 microcontroladores
3 microcontroladores3 microcontroladores
3 microcontroladores
 

Sesión 3 introduccion a microcontroladores

  • 1. Sesión 3 Introducción a la programación de Microcontroladores M.C. Marco A. Ramírez Barrientos 1
  • 2. Contenido • Introducción a los sistemas digitales. • Introducción a LabView. • Introducción a la programación de Microcontroladores PIC. • Controladores Lógicos Programables, PLCs. 16, 23, 30 nov. y 7 dic. de 2011 2
  • 3. OBJETIVO GENERAL Conocer los conceptos fundamentales para la programación de microcontroladores, mediante lenguajes de programación ensamblador y C.
  • 4. BIBLIOGRAFIA BÁSICA 1. Microcontrolador PIC16F84; Enrique Palacios, 2006; Alfaomega marcombo; 2ª. edición; 623 páginas. 2. Microcontroladores PIC. Diseño práctico de aplicaciones, Angulo Usategui, José María y Angulo Martínez, Ignacio, McGraw-Hill. 3. Advanced PIC Microcontroller Projects in C, Dogan Ibrahim, 2008, Ed. Elsevier.
  • 5. INTRODUCCION AL MICROCONTROLADOR • Un poco de historia Inicialmente cuando no existían los microprocesadores, se requería para el diseño de circuitos electrónicos muchos componentes y cálculos matemáticos. Un circuito lógico básico requería de una gran cantidad de elementos electrónicos basados en transistores, resistencias, etc, 5
  • 6. INTRODUCCION AL MICROCONTROLADOR Un poco de historia En el año 1971 apareció el primer microprocesador el cual originó un cambio decisivo en las técnicas de diseño de la mayoría de los equipos. Entre los microprocesadores mas conocidos tenemos el popular Z-80 y el 8085. 6
  • 7. INTRODUCCION AL MICROCONTROLADOR • Un poco de historia Los diseñadores de equipos electrónicos ahora tenían equipos que podían realizar mayor cantidad de tareas en menos tiempo y su tamaño se redujo considerablemente. sin embargo, después de cierto tiempo aparece una nueva tecnología llamada microcontrolador que simplifica aun mas el diseño electrónico. 7
  • 8. DIFERENCIA ENTRE MICROCONTROLADOR Y MICROPOCESADOR • Microprocesador Es un sistema abierto con el que puede construirse un computador con las características que se desee, acoplándole los módulos necesarios. La Unidad Central de Proceso (UCP), interpreta las instrucciones y el cambio de datos que las ejecuta. 8
  • 9. DIFERENCIA ENTRE MICROCONTROLADOR Y MICROPOCESADOR • Microprocesador 9
  • 10. DIFERENCIA ENTRE MICROCONTROLADOR Y MICROPOCESADOR • Microcontrolador Es un sistema cerrado que contiene un computador completo. Todas las partes del computador están contenidas en su interior y solo salen al exterior las líneas que gobiernan los periféricos. 10
  • 11. DIFERENCIA ENTRE MICROCONTROLADOR Y MICROPOCESADOR Cada fabricante de microcontroladores oferta un elevado número de modelos diferentes, desde los más sencillos hasta los más sofisticados. 11
  • 12. ARQUITECTURA INTERNA Un microcontrolador posee todos los componentes de un computador, pero con unas características fijas que no pueden alterarse: – Procesador – Memoria de programa (No volátil) – Memoria datos (lectura y escritura) – Líneas E/S para los controladores de periféricos – Recursos auxiliares 12
  • 13. ARQUITECTURA INTERNA 1. Procesador o CPU. 2. Memoria no volátil para contener el programa. 3. Memoria de lectura y escritura para guardar los datos. 4. Líneas de E/S para los controladores de periféricos. 5. Recursos auxiliares (Módulos para el control de 13 periféricos)
  • 14. PROCESADOR O CPU Es el elemento más importante del microcontrolador y determina sus principales características, tanto a nivel de hardware como de software Existen dos arquitecturas, se diferencian en la forma de conexión de la memoria al procesador y en los buses que cada una necesita: – Arquitectura Von Neumann – Arquitectura Harvard 14
  • 15. ARQUITECTURA VON NEUMANN Algunas familias de microcontroladores como la INTEL-51 y la Z80 15
  • 16. ARQUITECTURA VON NEUMANN Existe una sola memoria, donde coexisten las instrucciones de programa y los datos, accedidos con un bus de dirección, uno de datos y uno de control. 16
  • 17. ARQUITECTURA VON NEUMANN Limitación: Longitud de las instrucciones por el bus de datos (varios accesos a memoria para instrucciones complejas). Velocidad de operación (bus único para datos e instrucciones) e impide superponer ambos tiempos de acceso. 17
  • 18. ARQUITECTURA HARVARD Utilizada en sistemas embebidos en general. 18
  • 19. ARQUITECTURA HARVARD – Memoria de datos separada de la memoria de instrucciones – Palabra de datos – Palabra de instrucción – Conjunto reducido de instrucciones (RISC) – Ejecución de instrucciones en un ciclo de instrucción. – Paralelismo implícito, segmentación del procesador (pipe-line) 19
  • 20. • El alto rendimiento que poseen los microcontroladores se debe a tres técnicas: – Arquitectura Harvard – Arquitectura RISC – Segmentación 20
  • 21. TIPOS DE MEMORIAS Esta diseñado para que en su memoria de programa se almacenen todas las instrucciones del programa de control. 1. ROM con máscara 2. OTP (One Time Programmable) 3. EPROM 4. EEPROM 5. FLASH 21
  • 22. MEMORIA DE PROGRAMA (ROM) 1. ROM con máscara Se graba durante el proceso de fabricación mediante el uso de “máscaras” Se aconseja este tipo de memoria cuando se precisan series muy grandes 22
  • 23. MEMORIA DE PROGRAMA (ROM) 2 . OTP (One Time Programmable) Sólo se puede grabar una vez por parte del usuario. Se aconseja este tipo de memoria para prototipos finales. 23
  • 24. MEMORIA DE PROGRAMA (ROM) 3. EPROM En la superficie de la cápsula del microcontrolador existe una ventana de cristal por la que se puede someter al chip de la memoria a rayos ultravioleta para producir su borrado y emplearla nuevamente. 24
  • 25. MEMORIA DE PROGRAMA (ROM) 4. EEPROM La grabación es similar a las memorias OTP y EPROM, pero el borrado es mucho más sencillo al poderse efectuar de la misma forma que el grabado, o sea, eléctricamente. Garantizan 1.000.000 de ciclos de escritura/borrado. 25
  • 26. MEMORIA DE PROGRAMA (ROM) 5. FLASH Se puede escribir y borrar en circuito al igual que la EEPROM, pero suelen disponer de mayor capacidad que estas últimas. Pueden ser programadas con las mismas tensiones de alimentación del microcontrolador. 26
  • 27. MEMORIA DE DATOS (RAM) Es una memoria volátil y se destina a guardar las variables y los datos (SRAM). Los microcontroladores disponen de capacidades de RAM comprendidas entre 20 y 512 bytes. Existen microcontroladores que disponen de memoria EEPROM para contener datos. 27
  • 28. REGISTROS Y BITS Un registro es una posición de memoria en la cual se puede almacenar un dato. Es decir que la memoria esta dividida en pequeñas partes llamadas “Registros”. El primer registro de una memoria corresponde a la dirección 00H. Hay un conjunto de registros que ya vienen “Predefinidos” desde la fábrica. Cada registro esta dividido en 8 partes, Bits. 28
  • 29. LINEAS DE ENTRADA/SALIDA (PUERTOS) Los microcontroladores cuentan con una serie de pines destinados a entrada y salida de datos o señales digitales. A estos pines se les denomina “Puerto”. Los puertos están controlados por los registros. Entradas salidas de propósito general, trabajo con dispositivos simples como relés, Leds, etc. 29
  • 30. RECURSOS AUXILIARES • Circuito de reloj. • Temporizadores y contadores. • Conversores AD y DA. • Comparadores • Modulador de ancho de pulsos (PWM) • Puerto serie • Otros puertos de comunicación (USB, CAN) • Sistema de protección. • Estado de reposo 30
  • 31. LOS MICROCONTROLADORES PIC Los 'PIC' son una familia de microcontroladores tipo RISC (Reduced Instruction Set Computer) fabricados por Microchip Technology Inc. y derivados del PIC1650, originalmente desarrollado por la división de microelectrónica de General Instruments. PIC “Peripheral Interface Controller”. El PIC de 8 bits se desarrollo para el año 1975 31
  • 32. LOS MICROCONTROLADORES PIC Los microcontroladores PIC incorporan en su procesador tres características: Procesador tipo RISC Procesador segmentado Arquitectura HARVARD Con estos recursos los PIC son capaces de ejecutar en un ciclo de instrucción todas las instrucciones, excepto las de salto que tardan el doble. 32
  • 33. LA FAMILIA DE LOS PIC Se divide en cuatro gamas: Gama enana, gama baja, gama media y gama alta. Sus diferencias radica en: El numero de instrucciones y longitud El número de puertos y funciones. Lo cual se refleja en el encapsulado, la complejidad interna y de programación, y en el número de aplicaciones. 33
  • 34. NOMENCLATURA DE LOS PIC’S PIC nnLLLxxx nn: Un número propio de la gama del PIC LLL: Código de letras donde la primera indica la tensión de alimentación y las otras dos el tipo de memoria que utiliza Xxx: Número que indica el modelo del PIC. 34
  • 35. NOMENCLATURA DE LOS PIC’S 35
  • 36. GAMA ENANA PIC 12C(F)XXX, de 8 patas (pines) Aunque solo tienen 8 pines, pueden destinar hasta 6 como líneas de E/S para los periféricos porque disponen de un oscilador interno R-C. 36
  • 37. GAMA ENANA Características de los modelos PIC16C5X 37
  • 38. GAMA BAJA O BASICA • Mejores relaciones coste/prestaciones. • Encapsulados con 18 y 28 pines • Pueden alimentarse con una tensión 2.5V • 33 instrucciones con formato de 12bits. 38
  • 39. GAMA BAJA PIC16C5X Principales características de los modelos de gama baja. 39
  • 40. GAMA MEDIA • Encapsulado desde 18 hasta 68 pines • 35 instrucciones de 14 bits 40
  • 41. GAMA MEDIA PIC16CXXX Características relevantes de los modelos PIC16X8X de la gama media 41
  • 42. GAMA ALTA • Alcanzan 58 instrucciones de 16 bits • Sistema de gestión de interrupciones vectorizadas • Incluyen variados controladores de periféricos, puertas de comunicación serie y paralelo • Arquitectura abierta. 42
  • 43. EL PIC16X84 • Pertenece a la familia de la gama media • Tiene solo 18 pines • Posee una memoria de programa de 1K palabras de 14bits cada una • 64 bytes como memoria de datos auxiliar y opcional 43
  • 44. TARJETA DE PRESENTACION DE PIC16X84 • Memoria de programa 1Kx14 • Memoria de datos RAM 36 byte-PIC16C84 y de 68 byte-PIC16F84 • Memoria de datos 64bytes/EEPROM • Pila de 8 niveles • Interrupciones 4 tipos diferentes • Juego de instrucciones 35 • Encapsulado Platico DIP de 18 pines • Frecuencia de trabajo 10MHz Máxima 44
  • 45. TARJETA DE PRESENTACION DE PIC16X84 • Temporizadores : Solo uno TMR0 • Líneas E/S digitales : 13 Puerta A y Puerta B • Voltaje de alimentación : VDD de 2 a 6VDC • Corriente máxima absorbida : 80mA-Puerta A y 150mA-Puerta B • Corriente máxima suministrada : 50mA- Puerta A y 100mA-Puerta B 45
  • 47. FRECUENCIA DE FUNCIONAMIENTO. EL RELOJ Cuando un PIC16X8X funciona a 10MHz, le corresponde un ciclo de instrucción de 400ns. Ciclo de instrucción: 4x100ns=400ns Todas las instrucciones del PIC se realizan en un ciclo de instrucción menos las de salto. Se aplica la técnica de segmentación o Pipeline 47
  • 48. TIPOS DE OSCILADORES • OSCILADOR TIPO RC Un oscilador formado por una resistencia y un condensador 48
  • 49. TIPOS DE OSCILADORES • OSCILADOR TIPO HS Un oscilador que alcanza una alta velocidad entre 4 y 20MHz, basado en un cristal de cuarzo o un resonador cerámico 49
  • 50. TIPOS DE OSCILADORES • OSCILADOR TIPO XT Es un resonador de cristal o resonador para frecuencias estándar, comprendida entre 100KHz y 4MHz. 50
  • 51. TIPOS DE OSCILADORES • OSCILADOR TIPO LP Oscilador de bajo consumo con cristal o resonador diseñado para trabajar en un rango de frecuencias de 35 a 200KHz. El cristal de cuarzo o el resonador cerámico se coloca entre los pines OSC1 y OSC2 51
  • 52. REINICIALIZACION O RESET Con un nivel lógico bajo en MCLR# el microcontrolador se reinicializa: 1. El contador de programa se carga con la dirección 0. 2. La mayoría de los registros de estado y control del procesador toman un estado conocido y determinado. 52
  • 53. ESQUEMA MINIMO DE MONTAJE DEL PIC16F84 53
  • 54. EN EL INTERIOR DEL PROCESADOR Los microcontroladores PIC incorporan tres característica: – Procesador tipo RISC – Procesador segmentado – Arquitectura Harvard Una condición es la simetría y ortogonalidad en el formato de las instrucciones (14bits) El juego de instrucciones se reduce a 35 y con la estructura segmentada se pueden realizar simultáneamente las dos fases que compone cada instrucción 54
  • 55. EN EL INTERIOR DEL PROCESADOR • El manejo intensivo del banco de registros, los cuales participan de una manera muy activa en la ejecución de instrucciones. • La ALU, efectúa sus operaciones lógico- aritmética con dos operandos, uno es del registro W(Work) y el otro que puede provenir de cualquier registro o del propio código de instrucción. 55
  • 56. ARQUITECTURA INTERNA DEL PIC16C84 Consta de siete bloques fundamentales: • Memoria de programa EEPROM 1K x 14bits. • Memoria de datos formada por dos áreas, una RAM aloja 22 registros de (SFR), 36 registros (GPR) y tipo EEPROM de 64 bytes. • Camino de datos con la ALU de 8 bits y un registro de trabajo W. 56
  • 57. Assembly language programming • In order to function properly, we must define several microcontroller parameters such as: - type of oscillator, - whether watchdog timer is turned on, and - whether internal reset circuit is enabled. All this is defined by the following directive: _CONFIG _CP_OFF&_WDT_OFF&PWRTE_ON&XT_OSC 57
  • 58. 58
  • 59. Clock and Instruction Cycles • Instruction Clock – Clock from the oscillator enters a microcontroller via OSC1 pin where internal circuit of a microcontroller divides the clock into four even clocks Q1, Q2, Q3, and Q4 which do not overlap. – These four clocks make up one instruction cycle (also called machine cycle) during which one instruction is executed. – Execution of instruction starts by calling an instruction that is next in string. – Instruction is called from program memory on every Q1 and is written in instruction register on Q4. – Decoding and execution of instruction are done between the next Q1 and Q4 cycles. On the following diagram we can see the relationship between instruction cycle and clock of the oscillator (OSC1) as well as that of internal clocks Q1-Q4. – Program counter (PC) holds information about the address of the next instruction.
  • 60. PIC16F877A Features High Performance RISC CPU: • Only 35 single word instructions to learn • All single cycle instructions except for program branches, which are two-cycle • Operating speed: DC - 20 MHz clock input DC - 200 ns instruction cycle
  • 61. PIC16F877A Pin Layout ADC inputs PORTA PORTB Counter 0 PORTE external input PORTD PORT PORTC C PORT D
  • 62. PIC Memory The PIC16F877A has an 8192 (8k) 14bit instruction program memory 368 Bytes Registers as Data Memory : Special Function Registers: used to control peripherals and PIC behaviors General Purpose Registers: used to a normal temporary storage space (RAM) 256 Bytes of nonvolatile EEPROM
  • 63. PIC Program Memory The PIC16F877 8192 (8k) 14bit instructions Takes a max of 8 addresses, the ninth address will write When the over the first. controller is reset, program execution starts from here If interrupted, program execution continues from here
  • 64. PIC Data Memory The most importa nt registers have addresses in all the four banks The data memory is devided into 4 memory banks
  • 65. Register Addressing Modes Immediate Addressing: Movlw H’0F’ Indirect Addressing: Direct Addressing: • Full7 bits register address is written the special function Uses 8 bit of 14 bit instruction to identify a register file register FSR 9th bit comes from RP0 and RP1 bits of address 8th and • INDF isregister. get the content of the address pointed by FSR STATUS used to • Exp : A sample program to clear RAM locations H’20’ – i.e. Z equ D’2’ ; Z=2 H’2F: btfss STATUS, Z ; test if the 3rd bit of the MOVLW 0x20 ;initialize pointer STATUS registerRAM set MOVWF FSR ;to is NEXT CLRF INDF ;clear INDF register
  • 66. PIC Family Control Registers • Uses a series of “Special Function Registers” for controlling peripherals and PIC behaviors. STATUS Bank select bits, ALU bits (zero, borrow, carry) INTCON Interrupt control: interrupt enables, flags, etc. OPTION_REG contains various control bits to configure the TMR0 prescaler/WDT postscaler ,the External INT Interrupt, TMR0 and the weak pull-ups on PORTB
  • 67. Special Function Register ”STATUS Register“
  • 68. Special Function Register ”INTCON Register“
  • 69. PIC Peripherals Each peripheral has a set of SFRs to control its operation. Different PICs have different on-board peripherals
  • 70. Peripheral Features 5 Digital I/O Ports Three timer/counter modules Timer0: 8-bit timer/counter with 8-bit pre-scaler Timer1: 16-bit timer/counter with pre-scaler, can be incremented during SLEEP via external crystal/clock Timer2: 8-bit timer/counter with 8-bit period register, pre-scaler and post-scaler A 10-bit ADC with 8 inputs Two Capture, Compare, PWM modules Capture is 16-bit, max. resolution is 12.5 ns Compare is 16-bit, max. resolution is 200 ns PWM max. resolution is 10-bit Synchronous Serial Port (SSP) with SPI™ (Master mode) and I2C™ (Master/Slave) Universal Synchronous Asynchronous Receiver Transmitter (USART/SCI) with 9- bit address detection Parallel Slave Port (PSP) 8-bits wide, with external RD, WR and CS controls
  • 71. PIC Peripherals: Ports (Digital I/O) Ports are basically digital I/O pins which exist in all PICs The PIC16F877A have the following ports: PORT A has 6 bit wide, Bidirectional PORT B,C,D have 8 bit wide, Bidirectional PORT E has 3 bit wide, Bidirectional Ports have 2 control registers TRISx sets whether each pin is an input (1) or output (0) PORTx sets their output bit levels or contain their input bit levels Pin functionality “overloaded” with other features Most pins have 25mA source/sink thus it can drive LEDs directly
  • 72. PIC Peripherals: Analogue to Digital Converter Only available in 14bit and 16bit cores Fs (sample rate) < 54KHz the result is a 10 bit digital number Can generate an interrupt when ADC conversion is done
  • 73. PIC Peripherals: Analogue to Digital Converter The A/D module has four registers. These registers are: A/D Result High Register (ADRESH) A/D Result Low Register (ADRESL) A/D Control Register0 (ADCON0) A/D Control Register1 (ADCON1) Multiplexed 8 channel inputs Must wait Tacq to charge up sampling capacitor Can take a reference voltage different from that of the controller
  • 74. PIC Peripherals: USART: UART Serial Communications Peripheral: Universal Synch./Asynch. Receiver/Transmitter Interrupt on TX buffer empty and RX buffer full Asynchronous communication: UART (RS-232C serial) Can do 300bps - 115kbps 8 or 9 bits, parity, start and stop bits, etc. Outputs 5V so you need a RS232 level converter (e.g., MAX232)
  • 75. PIC Applications LED Flasher Loop: bsf PORTB, 0 call Delay_500ms bcf PORTB, 0 call Delay_500ms goto Loop
  • 76. PIC Applications Button Read Movlw 0 movwf TRISD, f bsf TRISD, 2 Loop: btfsc PORTD, 2 goto light goto No_light Light: bsf PORTB,0 goto Loop No_light: bcf PORTB,0 goto Loop
  • 77. mikro C 77
  • 78. Las variables básicas en este compilador específico son: • bit • char • short • int • long • float • double 78
  • 79. • Las variables bit permiten almacenar un valor lógico es decir verdadero o falso, 0 ó 1. • Las variables char se utilizan para almacenar caracteres codificados con el código ASCII, son útiles para guardar letras o textos. • Una variable short almacena un número entero de 8 bits corto puede valer de: -127 a 127. • Las variables tipo int guardan números enteros de 16 bits, está variable permite guardar números de: -32767 a 32767. • La variable tipo long almacena números enteros largos de 32 bits, su rango puede ser de: • -2147483647 a 2147483647. • Las variables tipo float y double permiten guardar números 79 con punto decimal
  • 80. 80
  • 81. bit VARIABLE1_BIT; //Declaración de una variable tipo bit. • char CARACTER; //Declaración de una variable tipo char. • char CARACTER2='J'; //Declaración de una variable tipo char inicializada con el • //valor ASCII del carácter J. • int ENTERO=1234; //Declaración de una variable tipo entera inicializada con • //el valor 1234. • float DECIMAL=-12.45; //Declaración de una variable con punto decimal • //inicializada con el valor -12,45. • double DECIMAL2=56.68; //Declaración de una variable con punto decimal • //inicializada con el valor 56,68. • long ENTERO2=-954261; //Demacración de una variable de tipo entero largo 81 • //inicializada con el valor -954261.
  • 82. • Los siguientes ejemplos muestras como declarar variables sin signo: • unsigned char CARACTER; //Declaración de una variable tipo char sin signo. • unsigned int ENTERO; //Declaración de una variable tipo entera sin signo. • unsigned long ENTERO2; //Demacración de una variable de tipo entero largo sin signo. 82
  • 83. void main() { TRISA = 0x00; // set direction to be output TRISB = 0x00; // set direction to be output TRISC = 0x00; // set direction to be output TRISD = 0x00; // set direction to be output do { PORTA = 0x00; // Turn OFF LEDs on PORTA PORTB = 0x00; // Turn OFF LEDs on PORTB PORTC = 0x00; // Turn OFF LEDs on PORTC PORTD = 0x00; // Turn OFF LEDs on PORTD Delay_ms(100); // 1 second delay PORTA = 0xFF; // Turn ON LEDs on PORTA PORTB = 0xFF; // Turn ON LEDs on PORTB PORTC = 0xFF; // Turn ON LEDs on PORTC PORTD = 0xFF; // Turn ON LEDs on PORTD Delay_ms(100); // 1 second delay } while(1); // Endless loop 83 }
  • 84. 84