Proton_Mi primer programa con leds.pdf

download Proton_Mi primer programa con leds.pdf

of 18

Transcript of Proton_Mi primer programa con leds.pdf

  • mas

    pe-

    queos se suman los unos a los otros, hasta que el ltimo de ellos

    carga el sistema operativo.

    En los ordenadores modernos, el proceso de arranque comienza con

    PROYECTO

    Aplicaciones para

    microcontroladores

    Fecha: 06/06/2012

    INNOVACION PEDAGOGICA

  • EL FUTURO , TU LO CREAS.

    Pgina 2

    Telfono: 555-555-5555

    Fax: 555-555-5555

    Correo: [email protected]

    Direccin del trabajo principal

    Lnea 2 de direccin

    Lnea 3 de direccin

    Nom br e de l t r aba jo

    Organizacin

  • microcontrolador

    Pgina 34

    ROBOTICA VISION

    Pgina 3

    CONTENIDOS

    PROGRAMAS Y HERRAMIENTAS AFINES 2

    INDICE 3

    PROTON IDE , QUE SON LOS MICROS? 4

  • EL FUTURO , TU LO CREAS.

    Pgina 4

    PROTON IDE

    Q U E SO N L O S M I C RO S? Es un circuito integrado programable que acepta un listado de ins-

    trucciones y contiene todos los componentes de un computador. Se

    utilizan para realizar determinadas tareas o para gobernar dispo-

    sitivos, debido a su reducido tamao, suele ir incorporado en el

    propio dispositivo que gobierna.

    El microcontrolador es un dispositivo dedicado. En su memoria solo

    reside un programa destinado a gobernar una aplicacin determina-

    da, sus lneas de entradas y salidas (I/O) permiten la conexin de

    sensores, relay otros. Una vez programado y configurado el micro-

    controlador solamente sirve para gobernar la tarea asignada SI ST EM AS D E PR O G R AM AC I O N Los microcontroladores de Microchip (PICs) se programan mediante

    un protocolo tipo serie. Se necesitan dos tensiones de alimenta-

    cin para poder llevar a cabo la programacin: una de 4.5v a 5.5v

    (VDD) y otra comprendida entre 12v y 14v (VPP), que es la que in-

    dica al PIC que va a ser programado, para que el cambie la funcin

    que realizan los pines I/O implicados en la programacin. Los pi-

    nes implicados en la programacin varan de un microcontrolador a

    otro, pero en general, los de un

    mismo numero de pines (8, 18,

    etc.) tienen las mismas patitas

    asignadas a la programacin, lo

    que nos permite construir progra-

    madores que sirvan para mas de un

    PIC .

    El programador, ser el encargado

    de transferir el programa que es-

    cribamos en la PC a la memoria

    FLASH del PIC. Esta es una memoria no voltil, de bajo consumo,

    que se puede escribir y borrar en el circuito integrado (al igual

    que las EEPROM). Microchip comercializa dos microcontroladores

    prcticamente iguales que slo se diferencian en que la memoria de

    programa de uno de ellos es tipo EEPROM y la del otro tipo Flash.

    Se trata del PIC16C84 y el PIC16F84, respectivamente .

    BOOTLOADER

    Un bootloader (cargador de arranque ) es un programa sencillo

    que no tiene la totalidad de las funcionalidades de un sistema

    operativo, diseado exclusivamente para preparar todo lo que nece-

    sita el sistema operativo para funcionar. Normalmente se utilizan

    los cargadores de arranque multietapas, en los que varios progra-

    EL FUTURO , TU LO CREAS.

    Pgina 33

    El circuito, se a

    complementado con

    un pulsador, y una

    resistencia, en-

    viaran un estado

    lgico al PIC, en

    este caso el pul-

    sador enviara un 1

    al pulsar, sin

    pulsar la resis-

    tencia mantiene un

    estado 0 por estar

    a tierra, si no

    esta la resisten-

    cia siempre exis-

    tir un 1.

    1 ACTIVANDO UN LED, por un pulsador, enviando un 1 (button)

    Device 16F870 'microcontrolador

    Xtal = 20 'velocidad

    TRISA=1 'declaro que el puerto A es entrada

    TRISB=0 ' DECLARO PUERTO B SALIDA

    All_Digital= true ' todos los pines del micro son digitales

    PORTB=0 ' ASEGURO EL PUERTO B LOW

    E: 'ETIQUETA

    If PORTA.0 = 1 Then 'el micro espera un 1 para activar

    PORTB.0=1 'ENVIO UN NIVEL ALTO AL PIN 7

    DelayMS 1000 ' EL LED SE MANTIENE ACTIVO POR 1SEG

    PORTB.0=0 'ENVIO UN NIVEL BAJO AL PIN 7

    DelayMS 1000 ' EL LED SE MANTIENE APAGADO POR 1SEG

    EndIf ' si es fin

    End 'fin

    Si la seal que queremos

    controlar debe alcanzar

    un valor determinado, es

    habitual que el sistema

    la mida constantemente y

    acte para alcanzar ese valor deseado. En este caso el

    sistema es realimentado, y hablamos de un sistema auto-

    mtico de lazo cerrado.

    RA0/AN02

    RA1/AN13

    RA2/AN2/VREF-4

    RA4/T0CKI6

    RA5/AN47

    OSC1/CLKIN9

    OSC2/CLKOUT10

    RC1/T1OSI12

    RC2/CCP113

    RC314

    RB7/PGD28

    RB6/PGC27

    RB526

    RB425

    RB3/PGM24

    RB223

    RB122

    RB0/INT21

    RC7/RX/DT18

    RC6/TX/CK17

    RC516

    RC415

    RA3/AN3/VREF+5

    RC0/T1OSO/T1CKI11

    MCLR/Vpp/THV1

    U1

    PIC16F870

    Resistor

    Resistor R1

    10k

    D1

    LED

  • Nombre del trabajo

    Pgina 32

    Ttulo principal

    T t u l o s e c u n d a r i o

    El propsito de un catlogo es vender productos o servicios a un pblico de-

    terminado, as como anunciar novedades o prximos eventos. Los catlogos

    son una manera excelente de lanzar al mercado sus productos o servicios y

    de afianzar la imagen de su organizacin.

    T t u l o s e c u n d a r i o

    En primer lugar, determine el pblico al que va dirigido el catlogo. Puede

    ser cualquiera que obtenga beneficios de los productos o servicios que contie-

    ne. A continuacin, calcule el tiempo y el dinero que puede invertir en el

    catlogo. Estos factores permitirn determinar la extensin del mismo y la

    frecuencia con la que lo publicar. Se recomienda que publique el catlogo al

    menos trimestralmente para que pueda considerarse una fuente constante

    de informacin.

    Adems, tenga en cuenta cmo desea imprimir el catlogo. Puede imprimirlo

    en una impresora de escritorio, en un centro de copiado o en una imprenta.

    Adems del presupuesto, la complejidad de la publicacin, incluyendo si se

    imprime en blanco y negro o en color, permitir determinar el mejor mtodo

    de imprimir la publicacin.

    Para imprimir su catlogo, piense cmo desea unir las pginas. Piense en el

    nmero de pginas, en cmo lo utilizar el lector y si lo enviar por correo.

    Por ejemplo, si tiene pocas pginas y es para conservarlo, podra doblar las

    hojas y graparlas por el lomo. Los catlogos un poco ms grandes que se de-

    ben abrir completamente, funcionan mejor con una espiral de plstico a

    travs de agujeros en las hojas, mientras que para las publicaciones de ma-

    yor tamao que se crean como si fuesen libros, es mejor utilizar hojas encola-

    das o una "encuadernacin perfecta".

    microcontrolador

    Pgina 5

    la CPU ejecutando los programas contenidos en la memoria ROM en

    una direccin predefinida y se configura la CPU para ejecutar

    este programa, sin ayuda externa, al encender el ordenador.

    Bootloader es un pequeo programa de arranque, residente en las

    primeras 0x800 bytes de la memoria de programa de un Microcon-

    troladores PIC. El bootloader funciona en el momento del cargado

    de programa (justo cuando el PIC es reseteado) y es capaz de

    cargar un completo programa de aplicacin en la memoria de pro-

    grama del PIC. Microchip ofrece, de tamao compacto, verstil,

    autnomo, que ha sido diseado pensando en la necesidad de con-

    tar con un modulo que fcilmente pueda ser montado sobre un Pro-

    toboard y la ves se pueda tener un potente microcontrolador de

    la gama serie 18 equipado con puerto de comunicaciones USB, Se-

    rie, I2C, Paralelo, Conversores A/D, mltiples puerto I/O, los

    cuales estn disponibles para ser conectados a diferentes cir-

    cuitos y configuraciones sin necesidad de retirar el PIC del

    Protoboard para programarlo cada ves que sea necesario, modifi-

    car el programa grabado el

    PIC o para una fcil depura-

    cin del programa en proceso

    de desarrollo.

    El lenguaje nativo de estos microcontroladores es el ASM, y

    en el caso de la familia 16F solo posee 35 instrucciones.

    Pero el ASM es un lenguaje que esta mucho ms cerca del

    hardware que del programador, y gracias a la miniaturiza-

    cin que permite incorporar cada vez ms memoria dentro de

    un microcontrolador sin aumentar prcticamente su costo,

    han surgido compiladores de lenguajes de alto nivel. Entre

    ellos se encuentran varios dialectos BASIC y C. El BASIC

  • EL FUTURO , TU LO CREAS.

    Pgina 6

    PROTON IDE

    En general, por cada cuatro ciclos de reloj del microcontrolador

    se ejecuta una instruccin ASM (una instruccin BASIC consta

    generalmente de ms de una instruccin ASM). Esto significa que

    un PIC funcionando a 20MHz puede ejecutar 5 millones de instruc-

    ciones por segundo.

    Los pines del PIC se dedican casi en su totalidad a los puertos.

    El resto (2 o mas) son los encargados de proporcionar la alimen-

    tacin al chip, y a veces, un sistema de RESET. Desde BASIC es

    posible saber si un pin esta en estado alto (conectado a 5V o

    a un 1 lgico) o en estado bajo (puesto a 0V o a un 0

    lgico). Tambin se puede poner un pin de un puerto a 1 o

    0. De esta manera, y mediante un rele, por ejemplo, se puede

    encender o apagar una luz, motor, maquina, etc.

    Uno de los microcontroladores ms famosos de todos los tiempos

    ha sido, sin duda, el PIC16F84A, que ya es considerado obsoleto.

    Un buen reemplazo es el PIC16F628A, y es el que utilizaremos en

    la mayora de los ejemplos y proyectos que veamos. La disposi-

    cin de sus pines es la siguiente

    EL FUTURO , TU LO CREAS.

    Pgina 31

    LCD GRAFICO

    T t u l o s e c u n d a r i o

    Una de las mejores formas de presentar informacin es sin

    lugar a dudas la pantalla o display LCD, este dispositivo

    que se presenta en varios formatos es ideal al momento de

    utilizar un microcontrolador pic, aparte de la funciona-

    lidad el display LCD le da un toque de elegancia y versa-

    tilidad a nuestros proyectos.

    En PROTON IDE es muy simple crear un programa para mane-

    jar este dispositivo, con unas cuantas instrucciones ten-

    dremos lista la programacin para enviar informacin al

    display lcd,entre los diversos formatos de estas panta-

    llas se destaca el uso muy frecuente de los display con-

    formato 16X2, esto quiere decir que este tipo de display

    LCD puede mostrar 16 caracteres por cada lnea, lo cual

    nos da un total de 32 caracteres disponibles y que hacen

    parte del cdigoASCII, veamos a continuacin un ejemplo

    de cmo configurar un programa para display lcd enPROTON

    IDE.

  • microcontrolador

    Pgina 30

    microcontrolador

    Pgina 7

    Como habrn notado, muchos de los pines tienen ms de una des-

    cripcin. Esto se debe a que pueden utilizarse de varias mane-

    ras diferentes, seleccionables por programa. Por ejemplo, el

    pin 4 sirve como parte del PORTA, como RESET (MCLR = Master

    Clear) y como tensin de programacin (Vpp)

    No es mala idea descargar desde la web de Microchip la hoja de

    datos de este microcontrolador (en ingls) para tenerla siempre

    a mano.

    Ahora bien Cmo colocamos el programa dentro del PIC? Para

    ello necesitamos algunas herramientas. Por un lado, es necesa-

    rio un quemador de PICs. Uno que me gusta particularmente es

    el k150, ya que al funcionar conectado al puerto USB. Adems,

    necesitaremos un software que enve el programa al PIC. Para

    ello usaremos el WinPIC800, que es un excelente soft gratuito.

    Y tambin vamos a necesitar un compilador, para traducir

    nuestro programa en BASIC al ASM que es capaz de entender el

    PIC. Despus de mirar varios candidatos, en este momento parece

    una buena eleccin el PROTON IDE, que no solo es un excelente

    compilador de BASIC

    Como podemos ver, los pines 1, 2, 3, 4, 15, 16, 17 y 18 tie-

    nen el nombre de RAx. Esos pines conforman el puerto A,

    PORTA de ahora en ms. Los pines 6 al 13 forman parte del

    puerto B (PORTB). El pin 5 es el que se conectara al nega-

    tivo de la fuente de alimentacin. El 14 ir conectado a 5V

  • EL FUTURO , TU LO CREAS.

    Pgina 8

    COMPONENTES

    EL FUTURO , TU LO CREAS.

    Pgina 29

    ACTIVIDADES

  • microcontrolador

    Pgina 28

    EL FUTURO ,TU LO CREAS.

    Pgina 9

    COMPONENTES

  • EL FUTURO , TU LO CREAS.

    Pgina 10

    APLICACIONES CON uMICRO

    La nica limitante de los Microcontroladores es su imagina-

    cin. La facilidad de un puerto abierto de (entrada / salida),

    la capacidad de evaluacin de seales para luego decidir una

    accin y poder controlar dispositivos externos. Hacen que el

    microcontrolador sea el cerebro de los equipos. Estos son al-

    gunos ejemplos de reas de aplicaciones:

    Electrnica Industrial (Automatizaciones)

    Comunicaciones e interfase con otros equipos (RS-232)

    Interfase con otros Microcontroladores

    Equipos de Mediciones

    Equipos de Diagnsticos

    Equipos de Adquisicin de Datos

    Robtica (Servo mecanismos)

    Proyectos musicales

    Proyectos de Fsica

    Proyectos donde se requiera automatizar procesos artsticos

    Programacin de otros microcontroladores

    Interfase con otros dispositivos de lgica TTL:

    1. Teclado

    2. Pantallas LCD

    3. Protocolo de comunicacin: RS232, I2, SPI

    4. Sensores

    5. Memorias

    6. Real Time Clock (RTC)

    7. A/D, D/A, Potencimetros Digitales

    EL FUTURO , TU LO CREAS.

    Pgina 27

    ACTIVIDADES

    1. DESARROLLE UN SISTEMA PROGRAMADO QUE ACTIVE 8

    LED EN EL PUERTO C DEL MICROCONTROLADOR 16F870,

    CON UNA PAUSA DE Segundo EN FORMA INFINITA, CA-

    DA UN0 DE LOS LED ACTUARAN EN ESCALERA.

    2. DESARROLLE UN SISTEMA PROGRAMADO QUE ACTIVE 8

    LED EN EL PUERTO C DEL MICROCONTROLADOR 16F870,

    CON UNA PAUSA DE Segundo EN FORMA INFINITA, LOS

    LED ACTUARAN EN PENDULO.

    3. DESARROLLE UN PENDULO INFINITO CON LOS PUERTOS

    B Y C, CON PAUSAS DE 100 mseg.

    CON EFECTO SEGUIDOR DE POSICION, los led se acti-

    varan, dejndo en posicin otro led.

    4. DESARROLLE UN PENDULO INFINITO CON LOS PUERTOS

    B Y C,SOLO SE MUEVE UN LED APAGADO.

    SI UD PUSO ATENCION, ESTA CAPACITADO PARA DESARROLLAR LAS

    SIGUIENTES ACTIVIDADES, CONFIGURE PARA HEX, BIN Y DEC.

    PROGRAME , SIMULE Y ESQUEMATICE

    $HEX

    $BIN

    DEC

  • microcontrolador

    Pgina 26

    EL MICROCONTROLADOR. EL CIRCUITO NOS MUESTRA , UN LED CONECTADO EN EL PUERTO B , PARA SER ACTIVADO CON UN 1 LOGICO. EN LA PRACTICA ESTE LED DEBE TENER UNA RESITENCIA EN SERIE A TIERRA.

    $HEX

    RA0/AN02

    RA1/AN13

    RA2/AN2/VREF-4

    RA4/T0CKI6

    RA5/AN47

    OSC1/CLKIN9

    OSC2/CLKOUT10

    RC1/T1OSI12

    RC2/CCP113

    RC314

    RB7/PGD28

    RB6/PGC27

    RB526

    RB425

    RB3/PGM24

    RB223

    RB122

    RB0/INT21

    RC7/RX/DT18

    RC6/TX/CK17

    RC516

    RC415

    RA3/AN3/VREF+5

    RC0/T1OSO/T1CKI11

    MCLR/Vpp/THV1

    U1

    PIC16F870

    D1

    LED

    $BIN

    EL FUTURO , TU LO CREAS.

    Pgina 11

    APLICACIONES

    Smbolos y grficos

    Un diagrama de flujo se construye con unos smbolos

    grficos especiales que representan acciones, funcio-

    nes, y equipamiento usado para lograr un resultado

    especfico.

  • microcontrolador

    Pgina 12

    EL FUTURO , TU LO CREAS.

    Pgina 25

    MI PRIMER PROGRAMA

    6-ACTIVEMOS UN LED, cambiando de puerto, CODIGO HEXA

    Device 16F870 'microcontrolador

    Xtal = 20 'velocidad

    TRISC=$0 ' DECLARO PUERTO C SALIDA

    PORTC=$0 ' ASEGURO EL PUERTO C LOW

    E: 'ETIQUETA

    PORTC.5=$1 'ENVIO UN NIVEL ALTO AL PIN 5

    DelayMS 50 ' EL LED SE MANTIENE ACTIVO POR 50mSEG

    PORTC.5=$0 'ENVIO UN NIVEL BAJO AL PIN 5

    DelayMS 50 ' EL LED SE MANTIENE APAGADO POR 50mSEG

    Goto E ' IR AL COMIENZO DEL PROGRAMA

    7-ACTIVEMOS UN LED, cambiando de puerto, CODIGO BIN

    Device 16F870 'microcontrolador

    Xtal = 20 'velocidad

    TRISC=%00000000 ' DECLARO PUERTO C SALIDA

    PORTC=%00000000 ' ASEGURO EL PUERTO C LOW

    E: 'ETIQUETA

    PORTC=%00100000 'ENVIO UN NIVEL ALTO AL PIN 5

    DelayMS 50 ' EL LED SE MANTIENE ACTIVO POR 50mSEG

    PORTC=%00000000 'ENVIO UN NIVEL BAJO AL PIN 5

    DelayMS 50 ' EL LED SE MANTIENE APAGADO POR 50mSEG

    Goto E ' IR AL COMIENZO DEL PROGRAMA

    8-ACTIVEMOS UN LED, cambiando, CODIGOS DEC/HEX/BIN

    Device 16F870 'microcontrolador

    Xtal = 20 'velocidad

    TRISC=%00000000 ' DECLARO PUERTO C SALIDA

    PORTC=$0 ' ASEGURO EL PUERTO C LOW

    E: 'ETIQUETA

    PORTC.5=1 'ENVIO UN NIVEL ALTO AL PIN 5

    DelayMS 50 ' EL LED SE MANTIENE ACTIVO POR 50mSEG

    PORTC=%0 'ENVIO UN NIVEL BAJO AL PIN 5

    DelayMS 50 ' EL LED SE MANTIENE APAGADO POR 50mSEG

    Goto E ' IR AL COMIENZO DEL PROGRAMA

    USAREMOS CODIGOS DISTINTOS PARA EL MISMO EFECTO ANTERIOR.

  • microcontrolador

    Pgina 24

    EL MICROCONTROLADOR. EL CIRCUITO NOS MUESTRA , UN LED CONECTADO EN EL PUERTO B , PARA SER ACTIVADO CON UN 1 LOGICO. EN LA PRACTICA ESTE LED DEBE TENER UNA RESITENCIA EN SERIE A TIERRA.

    PORTB.5

    RA0/AN02

    RA1/AN13

    RA2/AN2/VREF-4

    RA4/T0CKI6

    RA5/AN47

    OSC1/CLKIN9

    OSC2/CLKOUT10

    RC1/T1OSI12

    RC2/CCP113

    RC314

    RB7/PGD28

    RB6/PGC27

    RB526

    RB425

    RB3/PGM24

    RB223

    RB122

    RB0/INT21

    RC7/RX/DT18

    RC6/TX/CK17

    RC516

    RC415

    RA3/AN3/VREF+5

    RC0/T1OSO/T1CKI11

    MCLR/Vpp/THV1

    U1

    PIC16F870

    D1

    LED

    RA0/AN02

    RA1/AN13

    RA2/AN2/VREF-4

    RA4/T0CKI6

    RA5/AN47

    OSC1/CLKIN9

    OSC2/CLKOUT10

    RC1/T1OSI12

    RC2/CCP113

    RC314

    RB7/PGD28

    RB6/PGC27

    RB526

    RB425

    RB3/PGM24

    RB223

    RB122

    RB0/INT21

    RC7/RX/DT18

    RC6/TX/CK17

    RC516

    RC415

    RA3/AN3/VREF+5

    RC0/T1OSO/T1CKI11

    MCLR/Vpp/THV1

    U1

    PIC16F870

    D1

    LED

    PORTC.0

    EL FUTURO , TU LO CREAS.

    Pgina 13

    CODIGOS Dec

    Hex

    Oct

    Bin

    0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

    0 1 2 3 4 5 6 7 8 9 A B C D E F

    000 001 002 003 004 005 006 007 010 011 012 013 014 015 016 017

    00000000 00000001 00000010 00000011 00000100 00000101 00000110 00000111 00001000 00001001 00001010 00001011 00001100 00001101 00001110 00001111

    Dec

    Hex

    Oct

    Bin

    16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

    10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F

    020 021 022 023 024 025 026 027 030 031 032 033 034 035 036 037

    00010000 00010001 00010010 00010011 00010100 00010101 00010110 00010111 00011000 00011001 00011010 00011011 00011100 00011101 00011110 00011111

    Dec

    Hex

    Oct

    Bin

    32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47

    20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F

    040 041 042 043 044 045 046 047 050 051 052 053 054 055 056 057

    00100000 00100001 00100010 00100011 00100100 00100101 00100110 00100111 00101000 00101001 00101010 00101011 00101100 00101101 00101110 00101111

    Dec

    Hex

    Oct

    Bin

    48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63

    30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F

    060 061 062 063 064 065 066 067 070 071 072 073 074 075 076 077

    00110000 00110001 00110010 00110011 00110100 00110101 00110110 00110111 00111000 00111001 00111010 00111011 00111100 00111101 00111110 00111111

    Dec

    Hex

    Oct

    Bin

    64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79

    40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F

    100 101 102 103 104 105 106 107 110 111 112 113 114 115 116 117

    01000000 01000001 01000010 01000011 01000100 01000101 01000110 01000111 01001000 01001001 01001010 01001011 01001100 01001101 01001110 01001111

    Dec

    Hex

    Oct

    Bin

    80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95

    50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F

    120 121 122 123 124 125 126 127 130 131 132 133 134 135 136 137

    01010000 01010001 01010010 01010011 01010100 01010101 01010110 01010111 01011000 01011001 01011010 01011011 01011100 01011101 01011110 01011111

    Dec

    Hex

    Oct

    Bin

    96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111

    60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F

    140 141 142 143 144 145 146 147 150 151 152 153 154 155 156 157

    01100000 01100001 01100010 01100011 01100100 01100101 01100110 01100111 01101000 01101001 01101010 01101011 01101100 01101101 01101110 01101111

    Dec

    Hex

    Oct

    Bin

    112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127

    70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F

    160 161 162 163 164 165 166 167 170 171 172 173 174 175 176 177

    01110000 01110001 01110010 01110011 01110100 01110101 01110110 01110111 01111000 01111001 01111010 01111011 01111100 01111101 01111110 01111111

    Dec

    Hex

    Oct

    Bin

    128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143

    80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F

    200 201 202 203 204 205 206 207 210 211 212 213 214 215 216 217

    10000000 10000001 10000010 10000011 10000100 10000101 10000110 10000111 10001000 10001001 10001010 10001011 10001100 10001101 10001110 10001111

  • microcontrolador

    Pgina 14

    PROTON IDE SOPORTA LOS DIFERENTES CODIGOS, HEXADECIMAL, DECIMAL, Y BINARIO

    Dec

    Hex

    Oct

    Bin

    144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159

    90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F

    220 221 222 223 224 225 226 227 230 231 232 233 234 235 236 237

    10010000 10010001 10010010 10010011 10010100 10010101 10010110 10010111 10011000 10011001 10011010 10011011 10011100 10011101 10011110 10011111

    Dec

    Hex

    Oct

    Bin

    160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175

    A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF

    240 241 242 243 244 245 246 247 250 251 252 253 254 255 256 257

    10100000 10100001 10100010 10100011 10100100 10100101 10100110 10100111 10101000 10101001 10101010 10101011 10101100 10101101 10101110 10101111

    Dec

    Hex

    Oct

    Bin

    176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191

    B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF

    260 261 262 263 264 265 266 267 270 271 272 273 274 275 276 277

    10110000 10110001 10110010 10110011 10110100 10110101 10110110 10110111 10111000 10111001 10111010 10111011 10111100 10111101 10111110 10111111

    Dec

    Hex

    Oct

    Bin

    192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207

    C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF

    300 301 302 303 304 305 306 307 310 311 312 313 314 315 316 317

    11000000 11000001 11000010 11000011 11000100 11000101 11000110 11000111 11001000 11001001 11001010 11001011 11001100 11001101 11001110 11001111

    Dec

    Hex

    Oct

    Bin

    208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223

    D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF

    320 321 322 323 324 325 326 327 330 331 332 333 334 335 336 337

    11010000 11010001 11010010 11010011 11010100 11010101 11010110 11010111 11011000 11011001 11011010 11011011 11011100 11011101 11011110 11011111

    Dec

    Hex

    Oct

    Bin

    224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239

    E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF

    340 341 342 343 344 345 346 347 350 351 352 353 354 355 356 357

    11100000 11100001 11100010 11100011 11100100 11100101 11100110 11100111 11101000 11101001 11101010 11101011 11101100 11101101 11101110 11101111

    Dec

    Hex

    Oct

    Bin

    240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255

    F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF

    360 361 362 363 364 365 366 367 370 371 372 373 374 375 376 377

    11110000 11110001 11110010 11110011 11110100 11110101 11110110 11110111 11111000 11111001 11111010 11111011 11111100 11111101 11111110 11111111

    EL FUTURO , TU LO CREAS.

    Pgina 23

    MI PRIMER PROGRAMA

    El proceso se desarro-

    lla en diferentes fa-

    ses sin comprobar que

    el objetivo se ha al-

    canzado satisfactoria-

    mente.

    4-ACTIVEMOS UN LED, cambiando el pin

    Device 16F870 'microcontrolador Xtal = 20 'velocidad

    TRISB=0 ' DECLARO PUERTO B SALIDA

    PORTB=0 ' ASEGURO EL PUERTO B LOW

    E: 'ETIQUETA

    PORTB.5=1 'ENVIO UN NIVEL ALTO AL PIN 5

    DelayMS 100 ' EL LED SE MANTIENE ACTIVO POR 100mSEG

    PORTB.5=0 'ENVIO UN NIVEL BAJO AL PIN 5

    DelayMS 100 ' EL LED SE MANTIENE APAGADO POR 100mSEG

    Goto E ' IR AL COMIENZO DEL PROGRAMA

    5-ACTIVEMOS UN LED, cambiando de puerto

    Device 16F870 'microcontrolador

    Xtal = 20 'velocidad

    TRISC=0 ' DECLARO PUERTO C SALIDA

    PORTC=0 ' ASEGURO EL PUERTO C LOW

    E: 'ETIQUETA

    PORTC.0=1 'ENVIO UN NIVEL ALTO AL PIN 5

    DelayMS 50 ' EL LED SE MANTIENE ACTIVO POR 50mSEG

    PORTC.0=0 'ENVIO UN NIVEL BAJO AL PIN 5

    DelayMS 50 ' EL LED SE MANTIENE APAGADO POR 50mSEG

    Goto E ' IR AL COMIENZO DEL PROGRAMA

  • microcontrolador

    Pgina 22

    EL MICROCONTROLADOR. EL CIRCUITO ES EL MISMO QUE EL ANTERIOR, PERO ESTAMOS VARIANDO EL USO DE LA ETIQUETA, Y LOS TIEMPOS.

    ACTIVANDO

    RA0/AN02

    RA1/AN13

    RA2/AN2/VREF-4

    RA4/T0CKI6

    RA5/AN47

    OSC1/CLKIN9

    OSC2/CLKOUT10

    RC1/T1OSI12

    RC2/CCP113

    RC314

    RB7/PGD28

    RB6/PGC27

    RB526

    RB425

    RB3/PGM24

    RB223

    RB122

    RB0/INT21

    RC7/RX/DT18

    RC6/TX/CK17

    RC516

    RC415

    RA3/AN3/VREF+5

    RC0/T1OSO/T1CKI11

    MCLR/Vpp/THV1

    U1

    PIC16F870

    D1

    LED

    DELAYMS

    EL FUTURO , TU LO CREAS.

    Pgina 15

    CONFIGURACION SET/UP

    CONFIGURAR MICROCONTROLADOR

    Device = 16F870

    Device = 16F873A

    Device = 16F877A

    Device = 18F225

    CONFIGURAR VELOCIDAD DEL MICRO EN Mhz

    Xtal 4

    Xtal 10

    Xtal 20

    Xtal 40

    CONFIGURAR PINES DIGITALES

    All_Digital= true ' PARA PUERTOS A Y E

    Configurar una entrada analgica

    Declare ADIN_RES 10'resolucin

    Declare ADIN_TAD 2'CLK opcion are 0, 1, 2, 3 (0-2 ciclos)

    Declare ADIN_STIME 100 'tiempo de muestreo

    = %10000000 ' Setup Del registro ADCON1, AN1 / RA1 es

    anlogo

    CONFIGURAR UNA ENTRADA

    Input PORTC.3 'declaro el puerto C pin.3 es entrada

    TRISA=1 'declaro el puerto A es entrada pero solo el pin.0

    TRISA.0=1 'declaro el puerto A es entrada pero solo el pin.0

    TRISA=%11111111 'declaro el puerto A es entrada

    TRISA=$FF 'declaro el puerto A es entrada

    TRISA=255 'declaro el puerto A es entrada

    CONFIGURAR UNA SALIDA

    Output PORTC.7 'declaro el puerto C pin.7 es salida

    TRISA=0 'declaro el puerto A es salida

    TRISA.0=0 'declaro el puerto A es salida pero solo el pin.0

    TRISA=%00000000 'declaro el puerto A es salida

    TRISA=$0 'declaro el puerto A es salida

  • microcontrolador

    Pgina 16

    CONFIGURACION COMBINADA

    TRISA=%00001111'declaro puerto A: entrada 0,1,2,3 y salida 4,5,6,7

    TRISA=$F 'declaro puerto A: entrada 0,1,2,3 y salida 4,5,6,7

    TRISA=15 'declaro puerto A: entrada 0,1,2,3 y salida 4,5,6,7

    ACTIVAR PUERTO

    High PIN

    Low PIN

    Low PORTB 'el puerto b esta en nivel bajo (apagado)

    High PORTB 'el puerto b esta en nivel ALTO (ACTIVO)

    PORTB=0 'el puerto b esta en nivel bajo (apagado)

    PORTB.0=0 'el puerto b solo el pin.0 con nivel bajo

    PORTB=%00000000 'el puerto b esta con nivel bajo

    PORTB=1 'el puerto b solo el pin.0 con nivel alto (activado)

    PORTB.0=1 'el puerto b solo el pin.0 con nivel alto

    PORTB=7 'el puerto b reproduce el dato 00000111 dec

    PORTB=$F 'el puerto b reproduce el dato 00001111 hex

    PORTB=%11111111 'el puerto b esta con nivel alto bin

    ALIAS PARA PERIFERICOS

    Symbol MOTOR = PORTA.1 motor conectado en el puerto A pin.1

    Symbol SW = PORTA.2 pulsador conectado en el puerto A pin.2

    Symbol SW4 = PORTA.4 pulsador conectado en el puerto A pin.4

    Symbol SEN = PORTE.0 SENSOR conectado en el puerto E pin.0

    CONFIGURAR MEMORIA

    BUS I2C -------

    SCL_Pin = PORTA.7

    SDA_Pin = PORTA.6

    CONFIGURAR VARIABLES

    Tecla var Byte ' no se recomienda

    Dim tecla As Byte

    Dim cont2 As WORD

    Dim cont1 As DWORD

    CONFIGURAR TECLADO

    Keypad_Port = PORTB

    CONFIGURAR RECISTENCIAS DEL PUERTO B

    PortB_Pullups = On ' ABILITA PORTB pull-ups

    EL FUTURO , TU LO CREAS.

    Pgina 21

    MI PRIMER PROGRAMA

    El proceso se desarro-

    lla en diferentes fa-

    ses sin comprobar que

    el objetivo se ha alcanzado satisfactoriamente.

    2-ACTIVEMOS UN LED, destello infinito

    Device 16F870 'microcontrolador

    Xtal = 20 'velocidad

    TRISB=0 ' DECLARO PUERTO B SALIDA

    PORTB=0 ' ASEGURO EL PUERTO B LOW

    E: 'ETIQUETA

    PORTB.0=1 'ENVIO UN NIVEL ALTO AL PIN 0

    DelayMS 1000 ' EL LED SE MANTIENE ACTIVO POR 1SEG

    PORTB.0=0 'ENVIO UN NIVEL BAJO AL PIN 0

    DelayMS 1000 ' EL LED SE MANTIENE APAGADO POR 1SEG

    GoTo E 'IR A ETIQUETA

    3-ACTIVEMOS UN LED, alterando la pausa

    Device 16F870 'microcontrolador

    Xtal = 20 'velocidad

    TRISB=0 ' DECLARO PUERTO B SALIDA

    PORTB=0 ' ASEGURO EL PUERTO B LOW

    E: 'ETIQUETA

    PORTB.0=1 'ENVIO UN NIVEL ALTO AL PIN 0

    DelayMS 50 ' EL LED SE MANTIENE ACTIVO POR 50mSEG

    PORTB.0=0 'ENVIO UN NIVEL BAJO AL PIN 0

    DelayMS 50 ' EL LED SE MANTIENE APAGADO POR 50mSEG

    Goto E ' IR AL COMIENZO DEL PROGRAMA

  • microcontrolador

    Pgina 20

    EL MICROCONTROLADOR. EL CIRCUITO NOS MUESTRA , UN LED CONECTADO EN EL PUERTO B , PARA SER ACTIVADO EL PIN 0. EN LA PRACTICA ESTE LED DEBE TENER UNA RESITENCIA EN SERIE A TIERRA.

    ACTIVANDO

    RA0/AN02

    RA1/AN13

    RA2/AN2/VREF-4

    RA4/T0CKI6

    RA5/AN47

    OSC1/CLKIN9

    OSC2/CLKOUT10

    RC1/T1OSI12

    RC2/CCP113

    RC314

    RB7/PGD28

    RB6/PGC27

    RB526

    RB425

    RB3/PGM24

    RB223

    RB122

    RB0/INT21

    RC7/RX/DT18

    RC6/TX/CK17

    RC516

    RC415

    RA3/AN3/VREF+5

    RC0/T1OSO/T1CKI11

    MCLR/Vpp/THV1

    U1

    PIC16F870

    D1

    LED

    EL FUTURO , TU LO CREAS.

    Pgina 17

    CONFIGURACION SET/UP

    CONFIGURAR COMUNICACIN SERIAL

    Serial_Baud = 9600

    Rsout_Pin = PORTC.6

    Rsout_Mode = TRUE

    Rsout_Pace = 1

    Rsin_Pin = PORTC.7

    Rsin_Mode = TRUE

    Hserial_Baud = 9600 ' velocidad baudios 9600

    Hserial_RCSTA = %10010000 'Abilitar serial rx

    Hserial_TXSTA = %00100100 'abilitar serial tx

    Hserial_Clear = On 'clearing on received characters

    Dim Mouse as 1

    Dim Mice as Mouse * 400

    Dim Mosue_PI as Mouse + 2.14

    CONFIGURAR una constante

  • microcontrolador

    Pgina 18

    Descripcin de programa tpico ...ejemplo

    Device

    {

    Declares

    }

    {

    Incluir archivos

    }

    {

    Constantes y Variables}

    GoTo Main {

    Subrutinas

    }

    {

    Main:

    Cdigo del programa

    principal

    Device = 18F25K20

    '-------------------------------

    Declare Xtal = 20

    Declare Hserial_Baud = 9600

    '-------------------------------

    ' cargar ADC incluir archivo

    Include "ADC.inc"

    '-------------------------------

    ' Define Variables

    Dim WordVar as Word

    '-------------------------------

    ' Define Constante

    Symbol Valor = 10

    '-------------------------------

    GoTo ini ' Saltar por encima de

    la subrutina / s (si existe)

    '------------------------------

    ' Simple Subrutina

    AddIt:

    WordVar = WordVar + Valor

    Return ' Return

    '------------------------------

    ' programa principal

    ini:

    WordVar = 10

    GoSub AddIt 'ir a subrutina

    Hrsout Dec WordVar, 13 'imprimir

    display.

    EL FUTURO , TU LO CREAS.

    Pgina 19

    MI PRIMER PROGRAMA

    El proceso se desarro-

    lla en diferentes fa-

    ses sin comprobar que

    el objetivo se ha alcanzado satisfactoriamente.

    En el ejemplo de una lavadora, la seal de salida (que

    sera la ropa lavada) no se introduce en el sistema en

    ningn momento para poder dar el proceso por terminado.

    Es posible que la ropa no est bien lavada pero el sis-

    tema no puede rectificar automticamente. Esto se deno-

    mina laso abierto.

    1-ACTIVEMOS UN LED, pero con un destello

    Device 16F870 'microcontrolador

    Xtal = 20 'velocidad

    TRISB=0 ' DECLARO PUERTO B SALIDA

    PORTB=0 ' ASEGURO EL PUERTO B LOW

    E: 'ETIQUETA

    PORTB.0=1 'ENVIO UN NIVEL ALTO AL PIN 0

    DelayMS 1000 'SE MANTIENE ACTIVO POR 1SEG

    PORTB.0=0 'ENVIO UN NIVEL BAJO AL PIN 0

    DelayMS 1000 'SE APAGA POR 1SEG

    End 'FIN DE LA RUTINA