SlideShare una empresa de Scribd logo
1 de 197
Descargar para leer sin conexión
LOS PIC DE LA GAMA MEDIA.
ARQUITECTURA Y TÉCNICAS DE
     PROGRAMACIÓN.




                   Santiago Salamanca Miño
                       David Arroyo Muñoz

                           Octubre de 2003
Este libro es el resultado del Proyecto Fin de Carrera realizado por el alumno David
Arroyo Muñoz y dirigido por Santiago Salamanca Miño. Está basado en los apuntes de
clase de la asignatura Informática Industrial de la Titulación de Ingeniero Técnico
Industrial, especialidad Electrónica Industrial, que se imparte en la Escuela de
Ingenierías Industriales de la Universidad de Extremadura.


  Agradecemos la información suministrada por Jorge Jesús Pérez García para la
corrección de este documento.


  Si encuentras alguna errata o quieres hacer algún comentario, puedes escribir al
siguiente correo electrónico:
                                 ssalaman@unex.es
Microcontroladores PIC de la Gama Media.                                                                   ÍNDICE GENERAL.



                                                  ÍNDICE GENERAL


1   Introducción a los Microcontroladores. ..................................................................... 1
             1.1 ¿Qué es un microcontrolador? ................................................................. 1
             1.2 Aplicaciones............................................................................................. 3
             1.3 Los microcontroladores PIC. ................................................................... 3
             1.4 Las Gamas de los PIC.............................................................................. 5
             1.5 Los PIC de la Gama Media...................................................................... 6
2   La Arquitectura de los PIC de la Gama Media......................................................... 11
             2.1 Introducción. ........................................................................................... 11
             2.2 Organización de la memoria. .................................................................. 13
                             2.2.1       Organización de la memoria de programa. ..................... 13
                             2.2.2       Organización de la memoria de datos............................. 16
                             2.2.3       Registros y recursos comunes......................................... 19
                                              2.2.3.1 Registro de Estado. ....................................... 19
                                              2.2.3.2 Registro de Opciones. ................................... 20
                                              2.2.3.3 Palabra de configuración. ............................. 21
             2.3 Oscilador................................................................................................. 22
             2.4 Reset........................................................................................................ 26
             2.5 Temporizador y Perro Guardián. ............................................................ 34
             2.6 Puertas E/S.............................................................................................. 36
             2.7 Modo de reposo o SLEEP....................................................................... 37
3   Juego de Instrucciones de los PIC de la Gama Media.............................................. 39
             3.1 Introducción. ........................................................................................... 39
             3.2 Flujo de instrucciones. Segmentación. ................................................... 40
             3.3 El formato de las instrucciones............................................................... 41
             3.4 Juego de instrucciones. ........................................................................... 43
                             3.4.1       Descripción detallada de las instrucciones
                                         por orden alfabético. ....................................................... 45
4   Los Periféricos de los PIC de la Gama Media. ......................................................... 63
             4.1 Introducción. ........................................................................................... 63




Santiago Salamanca Miño                                           I                       Escuela de Ingenierías Industriales
David Arroyo Muñoz                                                                             Universidad de Extremadura
Microcontroladores PIC de la Gama Media.                                                               ÍNDICE GENERAL.



            4.2 Interrupciones. ........................................................................................ 63
                            4.2.1     Registros de control. ....................................................... 65
                                            4.2.1.1 Registro INTCON......................................... 65
                                            4.2.1.2 Registros PIE. ............................................... 66
                                            4.2.1.3 Registros PIR. ............................................... 67
                            4.2.2     Fases de una interrupción. .............................................. 70
            4.3 Puertas de E/S. ........................................................................................ 72
                            4.3.1     Puerta A. ......................................................................... 73
                            4.3.2     Puerta B. ......................................................................... 75
                            4.3.3     Puerta C. ......................................................................... 77
                            4.3.4     Puerta D. ......................................................................... 78
                            4.3.5     Puerta E........................................................................... 78
                            4.3.6     Puertas F y G. ................................................................. 79
                            4.3.7     Puerta GPIO.................................................................... 80
                            4.3.8 Operaciones sucesivas en un Puerto E/S. ....................... 81
            4.4 Puerto Paralelo Esclavo. ......................................................................... 83
            4.5 Temporizadores ...................................................................................... 86
                            4.5.1     TMR0.............................................................................. 86
                            4.5.2     TMR1.............................................................................. 90
                            4.5.3     TMR2.............................................................................. 92
            4.6 Módulos CCP.......................................................................................... 93
                            4.6.1     Modo de captura. ............................................................ 94
                            4.6.2     Modo de comparación. ................................................... 96
                            4.6.3     Modo PWM. ................................................................... 97
            4.7 Módulo de Tensión de Referencia......................................................... 100
            4.8 Módulo Comparador Analógico. ........................................................... 102
            4.9 Convertidor A/D. ................................................................................... 106
            4.10 Módulos de comunicación serie. ......................................................... 112
                            4.10.1 Puerto Serie Síncrono (SSP)........................................... 112
                            4.10.1.1 Modo SPI. .................................................................... 115
                            4.10.1.2 Modo I2C. .................................................................... 117




Santiago Salamanca Miño                                       II                      Escuela de Ingenierías Industriales
David Arroyo Muñoz                                                                         Universidad de Extremadura
Microcontroladores PIC de la Gama Media.                                                                 ÍNDICE GENERAL.



                              4.10.2 USART. .......................................................................... 125
                                                  4.10.2.1 Modo asíncrono. ................................... 128
                                                  4.10.2.2 Modo síncrono ...................................... 133
5   Programación con PIC. ............................................................................................ 137
              5.1 Introducción. .......................................................................................... 137
              5.2 Directivas del ensamblador MPASM. ................................................... 137
              5.3 Creación de programas. ......................................................................... 156
                              5.3.1     Un solo código fuente (ensamblador)............................ 156
                              5.3.2     Varios códigos fuente (linkador). .................................. 157
                              5.3.3     Utilización de librerías................................................... 158
              5.4 Estructuras básicas de programación..................................................... 160
                              5.4.1     Estructuras iterativas...................................................... 160
                                              5.4.1.1 While............................................................ 160
                                              5.4.1.2 Do while....................................................... 161
                                              5.4.1.3 For................................................................ 161
                              5.4.2     Estructuras condicionales. ............................................. 162
                                              5.4.2.1 If................................................................... 162
                                              5.4.2.2 If ... else........................................................ 163
                              5.4.3     Códigos de condición..................................................... 164
                                              5.4.3.1 Igual. ............................................................ 164
                                              5.4.3.2 Distinto......................................................... 164
                                              5.4.3.3 Mayor........................................................... 164
                                              5.4.3.4 Mayor o igual............................................... 165
                                              5.4.3.5 Menor........................................................... 165
                                              5.4.3.6 Menor o igual............................................... 165
                                              5.4.3.7 Condiciones más complejas......................... 165
              5.5 Ejemplo de librerías: librería matemática.............................................. 166
                              5.5.1     Rutinas de coma flotante................................................ 166
                                              5.5.1.1 Manejo de excepciones................................ 168
                                              5.5.1.2 Redondeo. .................................................... 168
                                              5.5.1.3 Conversión de entero a flotante. .................. 168




Santiago Salamanca Miño                                         III                     Escuela de Ingenierías Industriales
David Arroyo Muñoz                                                                           Universidad de Extremadura
Microcontroladores PIC de la Gama Media.                                                               ÍNDICE GENERAL.



                                              5.5.1.4 Normalización.............................................. 168
                                              5.5.1.5 Conversión de flotante a entero. .................. 169
                                              5.5.1.6 Suma/Resta. ................................................. 169
                                              5.5.1.7 Multiplicación.............................................. 169
                                              5.5.1.8 División........................................................ 170
                              5.5.2     Rutinas en coma fija. ..................................................... 171
                                              5.5.2.1 Multiplicación.............................................. 171
                                              5.5.2.2 División........................................................ 172
                              5.5.3     Funciones matemáticas en coma flotante. ..................... 173
                                              5.5.3.1 Función raíz cuadrada.................................. 174
                                              5.5.3.2 Funciones exponenciales. ........................... 175
                                              5.5.3.3 Funciones logarítmicas. ............................... 176
                                              5.5.3.4 Funcione trigonométricas. ........................... 178
                                              5.5.3.5 Función potencia.......................................... 179
                                              5.5.3.6 Función parte entera por defecto. ................ 182
                                              5.5.3.7 Comparación lógica en coma flotante. ........ 182
                                              5.5.3.8 Generador aleatorio de números enteros. .... 183
                              5.5.4     Conversión de coma flotante a ASCII. .......................... 183
                                              5.5.4.1 Conversión de coma flotante
                                                        a ASCII en base 10. ..................................... 184
                                              5.5.4.2 Personalización de la rutina. ........................ 184
                                              5.5.4.3 Resumen. ..................................................... 185


APÉNDICE A: Protocolo I2C........................................................................................ 187
               A.1 Introducción ......................................................................................... 187
               A.2 Inicialización y fin de transferencia de datos....................................... 187
               A.3 Direccionamiento de dispositivos en I2C............................................. 188
               A.4 Reconocimiento de transferencia......................................................... 189




Santiago Salamanca Miño                                        IV                      Escuela de Ingenierías Industriales
David Arroyo Muñoz                                                                          Universidad de Extremadura
Microcontroladores PIC de la Gama Media.                    1. Introducción a los Microcontroladores




       Capítulo 1. Introducción a los microcontroladores.


1.1 ¿Qué es un microcontrolador?


Hace unos años, los sistemas de control se implementaban usando exclusivamente lógica de
componentes, lo que hacía que fuesen dispositivos de gran tamaño y muy pesados. Para
facilitar una velocidad más alta y mejorar la eficiencia de estos dispositivos de control, se
trató de reducir su tamaño, apareciendo así los microprocesadores. Siguiendo con el proceso
de miniaturización, el siguiente paso consistió en la fabricación de un controlador que
integrase todos sus componentes en un sólo chip. A esto es a lo que se le conoce con el
nombre de microcontrolador, un computador dentro de un sólo chip.


Las principales características que diferencian a un microcontrolador de un microprocesador
son:
        1. Son sistemas cerrados, ya que contiene todos los elementos de un computador en
            un solo chip, frente a los microprocesadores que son sistemas abiertos, ya que
            sacan las líneas de los buses de datos, direcciones y control al exterior, para la
            conexión de memorias, interfaces de E/S, etc.
        2. Son de propósito específico, es decir, son programados para realizar una única
            tarea, mientras que los microprocesadores son de propósito general.


La historia de los microcontroladores surge desde dos vías de desarrollo paralelas; una desde
Intel y otra desde Texas Instruments. Los primeros microcontroladores son el 4004 y 4040 de
Intel que dieron lugar al 8048, a su vez predecesor del 8051. Aún así el primer
microcontrolador fue el TMS1000 de Texas Instruments. Éste integraba un reloj, procesador,
ROM, RAM, y soportes de E/S en un solo chip.




Santiago Salamanca Miño                        1                  Escuela de Ingenierías Industriales
David Arroyo Muñoz                                                     Universidad de Extremadura
Microcontroladores PIC de la Gama Media.                         1. Introducción a los Microcontroladores



Un microcontrolador, típicamente consta de:
        -CPU o procesador.- Es el cerebro del sistema que procesa todos los datos que viajan a
                lo largo del bus.
        -Memorias.- Está formada por una no volátil (ROM, EEPROM, FLASH) donde se
                almacenan los programas y una volátil (RAM) donde se almacenan los datos.
        -Reloj principal.- Normalmente todos los microcontroladores tienen incorporados
                circuitos osciladores para el funcionamiento de éstos.
        -Puertos E/S (Entrada/Salida).- Soportan las líneas que comunican al microcontrolador
                con los periféricos externos.
        -Perro guardián o Watchdog.- Contador que resetea al microcontrolador cada vez que
                rebosa. Sirve para evitar fallos de funcionamiento, por lo que hay que
                inicializarlo periódicamente antes de que rebose.
        -Protección ante fallo de alimentación o Browout.- Circuito que resetea al
                microcontrolador cuando la tensión de alimentación baja de un cierto límite.
        -Temporizadores.- Para controlar periodos de tiempo.
        -Convertidores A/D y D/A. (Analógico/Digital y Digital/Analógico)
        -Comparadores analógicos
        -Moduladores de anchura de impulsos.
        -Puertos de comunicación.- Tanto serie como paralelo.
        -Control de interrupciones


Debido a que los microcontroladores sólo incluyen las características específicas para una
tarea, su coste es relativamente bajo. Un microcontrolador típico realiza funciones de
manipulación de instrucciones, posee E/S de accesos fáciles y directos, y un proceso de
interrupciones rápido y eficiente. Además también reducen de manera notable los costes de
diseño. Hay gran variedad de microcontroladores. Dependiendo de la potencia y
características que se necesiten, se pueden elegir microcontroladores de 4, 8, 16 ó 32 bits.
Además     existen    versiones     especializadas       que   incluyen    módulos      especiales     para
comunicaciones, teclados, procesamiento de señales, procesamiento de video, y otras tareas.




Santiago Salamanca Miño                              2                 Escuela de Ingenierías Industriales
David Arroyo Muñoz                                                          Universidad de Extremadura
Microcontroladores PIC de la Gama Media.                  1. Introducción a los Microcontroladores




1.2 Aplicaciones


El mercado de los microcontroladores está creciendo cada año y parece no tener barreras. Los
microcontroladores a menudo se encuentran en aplicaciones domésticas ( microondas,
refrigeradores, televisión, equipos de música), ordenadores con sus componentes (impresoras,
módems, lectores de discos), coches (ingeniería de control, diagnostico, control de
climatización), control medioambiental (invernaderos, fabricas, casas), instrumentación,
aeronáutica, y miles de usos más. En muchos podemos encontrar más de un microcontrolador.


Los microcontroladores son muy usados en robótica, donde la comunicación entre
controladores es una gran ventaja. Esto hace posible muchas tareas específicas al distribuir un
gran número de microcontroladores por todo el sistema. La comunicación entre cada
microcontrolador y uno central permitiría procesar la información por un ordenador central, o
transmitirlo a otros microcontroladores del sistema.


Otro ejemplo de aplicación de los microcontroladores, es la de utilizarlos para monitorizar y
gravar parámetros medioambientales (temperatura, humedad, precipitaciones, etc.). Pequeño
tamaño, bajo consumo de potencia, y flexibilidad hacen de este dispositivo ideal para este tipo
de aplicaciones.


1.3 Los microcontroladores PIC (Microchip)


Los microcontroladores PIC fueron los primeros microcontroladores RISC, es decir,
microcontroladores con un juego de instrucciones reducido. El hecho de ser procesadores de
tipo RISC generalmente implica simplicidad en los diseños, permitiendo más características a
bajo coste.


Los principales beneficios de esta simplicidad en el diseño son que los microcontroladores se
implementan en chip muy pequeños, con pocos pines, y tienen un consumo de potencia muy
bajo.




Santiago Salamanca Miño                        3                Escuela de Ingenierías Industriales
David Arroyo Muñoz                                                   Universidad de Extremadura
Microcontroladores PIC de la Gama Media.                   1. Introducción a los Microcontroladores




Los microcontroladores PIC ganaron popularidad rápidamente. Aparecían con frecuencia en
revistas de ocio, y su uso era cada vez mayor en gran número de diseños. Debido a su bajo
costo, pequeño tamaño, y bajo consumo, estos microcontroladores pueden ahora ser usados en
áreas en las que previamente no habrían sido apropiados (tal como circuitos lógicos).


Las principales características de los PIC son:


        -Arquitectura Harvard.- Consiste en la existencia de dos memorias independientes,
                una de datos y otra de instrucciones, con sus respectivos buses. Esto permite el
                acceso simultaneo al programa y los datos, y solapar algunas operaciones para
                mejorar el proceso.
        -Segmentación de instrucciones.- Consiste en dividir la ejecución de las
                instrucciones en varias fases, en el caso concreto de los PIC dos fases, de
                manera que se realizan simultáneamente distintas fases de distintas
                instrucciones. Así cada instrucción se ejecuta en un ciclo de instrucción (4
                ciclos de reloj), excepto las de salto que ocupan tantos ciclos de instrucción
                como necesite para calcular la dirección de salto.
        -Formato de instrucciones de longitud constante.- Permite optimizar la memoria de
                instrucciones y el diseño de ensambladores y compiladores.
        -RISC (computador de reducido juego de instrucciones)
        -Instrucciones ortogonales.- Todas las instrucciones pueden manejar cualquier
                elemento de la arquitectura como fuente o destino.
        -Arquitectura basada en un banco de registros.- Todos los objetos del sistema se
                encuentran implementados físicamente como registros.
        -Gran variedad de microcontroladores y muchas herramientas de soporte.




Santiago Salamanca Miño                           4              Escuela de Ingenierías Industriales
David Arroyo Muñoz                                                    Universidad de Extremadura
Microcontroladores PIC de la Gama Media.                           1. Introducción a los Microcontroladores




1.4 Las gamas de los PIC


La forma de designación de los PIC en general obedece a la siguiente estructura:


                PIC nn LLL xxx


Siendo :
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. En la tabla 1.1 se puede ver las distintas
                opciones que se pueden dar.


                  TABLA 1.1 Nomenclatura de los PIC.
                        LETRAS              ALIMENTACIÓN               MEMORIA
                          C                Standard (4.5-6.0 V)         EPROM
                          CR               Standard (4.5-6.0 V)          ROM
                           F               Standard (4.5-6.0 V)         FLASH
                          LC               Extendida (2.5-6.0 V)        EPROM
                         LCR               Extendida (2.5-6.0 V)         ROM
                          LF               Extendida (2.0-6.0 V)        FLASH
                    xxx – número que indica el modelo.


Los PIC se clasifican en distintas gamas atendiendo a los recursos disponibles en cada uno de
ellos. Las gamas son:
        a) Gama Enana (PIC12Cxxx): La principal característica es que son muy pequeños,
            con encapsulados de 8 pines, y un juego de 33 instrucciones de 12 bits.
        b) Gama Baja (PIC16C5xx): Los encapsulados son de 18, 20 ó 28 pines. Al igual
            que en los anteriores el número de instrucciones es de 33 con un ancho de 12 bits.
            La memoria de programa es de 512 palabras, 1K ó 2K, y la de datos está
            comprendida entre 25 y 73 bytes. No permite interrupciones.




Santiago Salamanca Miño                               5                  Escuela de Ingenierías Industriales
David Arroyo Muñoz                                                            Universidad de Extremadura
Microcontroladores PIC de la Gama Media.                   1. Introducción a los Microcontroladores




          c) Gama Media (PIC16Cxxx): Es la gama más variada y completa de los PIC, con
             encapsulados desde 18 a 68 pines. Tiene un conjunto de 35 instrucciones de 14
             bits de ancho. Permite además características importantes que no soportaban los
             anteriores como son:
                - Interrupciones
                - Pila de 8 niveles que permite anidamiento de subrutinas.
             Esta familia a su vez se puede dividir en subfamilias en función de los recursos de
             que se dispongan.
          d) Gama Alta (PIC17Cxxx): Tienen unas características muy diferentes a las
             anteriores, ya que son microcontroladores de arquitectura abierta, es decir, que
             sacan sus buses al exterior.
             El número de instrucciones es de 58 con una anchura de 16 bits. Tienen
             instrucciones vectorizadas.
          e) Gama Mejorada (PIC18Cxxx): Es la última gama que ha salido. Tiene memoria
             de programa de hasta 1M palabras. La mayoría de las instrucciones son de 16 bits,
             aunque las hay también de 32 bits. El número total de instrucciones es de 76.
             Esta gama está diseñada para aplicaciones de control. Todos ellos tienen
             convertidores A/D y, por ejemplo, están en fase de desarrollo algunos modelos que
             tienen interface para el bus CAN.


1.5 Los PIC de la gama media.


A lo largo de este proyecto sólo se hablará de los PIC de la Gama Media, siendo esta la más
variada y completa. En la tabla 1.2 se muestran las características que definen a cada modelo
de los PIC de la Gama Media. Aparecen sólo los más significantes, ya que la variedad es muy
amplia.




Santiago Salamanca Miño                          6               Escuela de Ingenierías Industriales
David Arroyo Muñoz                                                    Universidad de Extremadura
Microcontroladores PIC de la Gama Media.                                                                                                                                                                                   1. Introducción a los Microcontroladores




            TABLA 1.2 Principales características de los PIC de la Gama Media.
             Reloj                                                 Memoria                                                                                                          Periféricos                                                                                                                                                    Características




                                                     Memoria de programa




                                                                                                                                                                                                                                                                                                                                                                                                                                    Cápsulas
                                                                                                                                                                                                                                                                                                                                                                                 Detector de fallo en VDD “Brown-out”
              Máxima frecuencia de trabajo




                                                                                                                                                                                                                                                                       Tensión interna de referencia
                                                                                                                                           Módulos de temporización
                                                                                                              EEPROM de datos (bytes)




                                                                                                                                                                                                                            Convertidor A/D de 8 bits




                                                                                                                                                                                                                                                                                                                                                    Rango de voltaje (voltios)
                                                                                   Memoria de datos (bytes)




                                                                                                                                                                                                                                                                                                       Fuentes de interrupción
                                                                                                                                                                                                          Puerto Paralelo



                                                                                                                                                                                                                                                        Comparadores




                                                                                                                                                                                                                                                                                                                                 Patillas de E/S
                                                                                                                                                                      Módulos CCP



                                                                                                                                                                                          Puertos serie




                                                                                                                                                                                                                                                                                                                                                                                                                                    Pines PLCC

                                                                                                                                                                                                                                                                                                                                                                                                                                                 Pines QFP
                                                                                                                                                                                                                                                                                                                                                                                                                        Pines DIP
                                                                           EEROM
                                             EPROM




                                                                                                                                                                                                                                                                                                                                                   3,0-
PIC16C61      20                             1K                            ---     36                         ---                         TMR0                        --                ---               --                --                          --             --                               3                        13                                              ---                                    18          18           --
                                                                                                                                                                                                                                                                                                                                                   6,0
                                                                                                                                        TMR0,TMR1                                                                                                                                                                                                  2,5-
PIC16C62      20                             2K                            ---     128                        ---                                                     2             SPI/I2C/SCI           --                --                          --             --                              10                        22                                              ---                                    28          28           --
                                                                                                                                          ,TMR2                                                                                                                                                                                                    6,0
                                                                                                                                        TMR0,TMR1                                                                                                                                                                                                  3,0-
PIC16C63      20                             4K                            ---     192                        ---                                                     2             SPI/I2C/SCI           ---               --                          --             --                              10                        22                                              ---                                    28          28           --
                                                                                                                                          ,TMR2                                                                                                                                                                                                    6,0
                                                                                                                                        TMR0,TMR1                                                                                                                                                                                                  3,0-
PIC16C64      20                             2K                            ---     128                        ---                                                     1               SPI/I2C             Si                --                          --             --                               8                        33                                              ---                                    40          44           44
                                                                                                                                          ,TMR2                                                                                                                                                                                                    6,0
                                                                                                                                        TMR0,TMR1                                                                                                                                                                                                  3,0-
PIC16C65      20                             4K                            ---     192                        ---                                                     2             SPI/I2C/SCI           Si                --                          --             --                              11                        33                                              ---                                    40          44           44
                                                                                                                                          ,TMR2                                                                                                                                                                                                    6,0
                                                                                                                                                                                                                                                                                                                                                   3,0-
PIC16C620     20                             512                           ---     80                         ---                         TMR0                        --                ----              --                --                           2             Si                               4                        13                                              Si                                     18          18           20
                                                                                                                                                                                                                                                                                                                                                   6,0
                                                                                                                                                                                                                                                                                                                                                   3,0-
PIC16C621     20                             1K                            ---     80                         ---                         TMR0                        --                ----              --                --                           2             Si                               4                        13                                              Si                                     18          18           20
                                                                                                                                                                                                                                                                                                                                                   6,0
                                                                                                                                                                                                                                                                                                                                                   3,0-
PIC16C622     20                             2K                            ---     128                        ---                         TMR0                        --                ----              --                --                           2             Si                               4                        13                                              Si                                     18          18           20
                                                                                                                                                                                                                                                                                                                                                   6,0
                                                                                                                                                                                                                                                                                                                                                   3,0-
PIC16C71      20                             1K                            ---     36                         ---                         TMR0                        --                ----              --                4ch                         --             --                               4                        13                                              ---                                    18          18           --
                                                                                                                                                                                                                                                                                                                                                   6,0
                                                                                                                                        TMR0,TMR1                                                                                                                                                                                                  3,0-
PIC16C73      20                             4K                            ---     192                        ---                                                     2             SPI/I2C/SCI           --                5ch                         --             --                              11                        22                                              ---                                    28          28           --
                                                                                                                                          ,TMR2                                                                                                                                                                                                    6,0
                                                                                                                                        TMR0,TMR1                                                                                                                                                                                                  3,0-
PIC16C74      20                             4K                            ---     192                        ---                                                     2             SPI/I2C/SCI           Si                8ch                         --             --                              12                        33                                              ---                                    40          44           44
                                                                                                                                          ,TMR2                                                                                                                                                                                                    6,0
                                                                                                                                        TMR0,TMR1                                                                                                                                                                                                  2,5-
PIC16C76      20                             8K                            ---     368                        ---                                                     2             SPI/I2C/SCI           --                5ch                         --             --                              11                        22                                              Si                                     28          28           --
                                                                                                                                          ,TMR2                                                                                                                                                                                                    6,0
                                                                                                                                                                                                                                                                                                                                                   3,0-
PIC16C84      20                             --                            1K      36                         64                          TMR0                        --                ----              --                --                          --             --                               4                        13                                              ---                                    18          18           --
                                                                                                                                                                                                                                                                                                                                                   6,0




 A continuación en la figura 1.1 se muestran algunos de los encapsulados utilizados en los PIC
 de la Gama Media. Como ya se ha dicho anteriormente, éstos van desde los 18 a 68 pines.




 Santiago Salamanca Miño                                                                                                                                                              7                                                                     Escuela de Ingenierías Industriales
 David Arroyo Muñoz                                                                                                                                                                                                                                              Universidad de Extremadura
Microcontroladores PIC de la Gama Media.                   1. Introducción a los Microcontroladores




                          Figura 1.1 Principales diagramas de patillas.


La descripción de las funciones de las distintas patillas del microcontrolador son:
        RA0/AN0-RA2/AN2: Líneas de E/S digitales del Puerto A, o entradas analógicas.
        RA3/AN3/VREF: E/S digital, analógica o entrada externa de VREF.
        RA4/T0CKI: E/S digital o entrada de reloj externo para TMR0.
        RA5/AN4/ SS : E/S digital, analógica o selección del puerto síncrono.
        RB0/INT-RB7: E/S digitales del Puerto B. RB0/INT puede actuar como entrada de
        interrupción externa. RB4-Rb7 pueden provocar una interrupción cuando cambian de
        estado.
        RC0/T1OSO/T1CKI: E/S digital del Puerto C. Conexión del oscilador externo para
        el temporizador TMR1 o entrada de reloj para el TMR1.




Santiago Salamanca Miño                        8                 Escuela de Ingenierías Industriales
David Arroyo Muñoz                                                    Universidad de Extremadura
Microcontroladores PIC de la Gama Media.                 1. Introducción a los Microcontroladores



        RC1/T1OSI/CCP2: E/S digital. Conexión del oscilador externo para el TMR1 o
        salida del módulo 2 de captura/comparación.
        RC2/CCP1: E/S digital. Salida del módulo 1 de captura/comparación.
        RC3/SCK/SCL: E/S digital. E/S de reloj para el Puerto Serie Síncrono (SSP) en los
        módulos SPI o I2C.
        RC4/SDI/SDA: E/S digital. Entrada de datos serie en el modo SPI. E/S de datos serie
        en el modo I2C.
        RC5/SDO: E/S digital. Salida de datos serie en el modo SPI.
        RC6/TX/CK: E/S digital. Transmisión serie asíncrona. Entrada de reloj para
        comunicación serie síncrona.
        RC7/RX/DT: E/S digital. Recepción serie asíncrona. Línea de datos en la
        comunicación serie síncrona.
        RD0/PSP0-RD7/PSP7: E/S digitales del Puerto D. Este puerto puede trabajar como
        puerto paralelo esclavo para interconexión con un bus de datos de 8 bits de otro
        microprocesador.
        RE0/ RD /AN5: E/S digital del Puerto E. Señal de lectura del puerto paralelo esclavo.
        Entrada analógica.
        RE1/ WR /AN6: E/S digital. Señal de escritura del puerto paralelo esclavo. Entrada
        analógica.
        RE2/ CS /AN7: E/S digital. Señal de activación del puerto paralelo esclavo. Entrada
        analógica.




Santiago Salamanca Miño                       9                Escuela de Ingenierías Industriales
David Arroyo Muñoz                                                  Universidad de Extremadura
Microcontroladores PIC de la Gama Media.             2. La Arquitectura de los PIC de la Gama Media




Capítulo 2. La Arquitectura de los PIC de la Gama Media.


2.1 Introducción


Desde el punto de vista de la arquitectura, la característica más importante de los PIC es que
utilizan la Harvard, frente a la Von Neumann que es la habitual.


La arquitectura Harvard tiene la memoria de programa y la memoria de datos separadas y se
accede a ellas mediante buses distintos. Esto mejora el ancho de banda sobre la tradicional
arquitectura secuencial, en la cual los programas y datos son buscados en la misma memoria,
utilizando el mismo bus. En la arquitectura Harvard mientras se accede a la memoria de
programa, sobre la memoria de datos se puede estar leyendo o escribiendo, lo que permite
ejecutar una instrucción a la vez que se busca la siguiente.


En la figura 2.1 se muestra el esquema de la arquitectura general de los PIC de la Gama
Media.


Además de las características antes mencionadas, otras características que poseen los PIC de
la Gama Media son:
         a) Memoria no volátil de programa de hasta 8K x 14 de tamaño, direccionada por el
            contador de programa (PC) de 13 bits.
         b) Memoria RAM de datos de hasta 368 x 8 de tamaño, direccionada por el código de
            operación o por el registro FSR y parte del registro STATUS.
         c) Unidad aritmético-lógica de 8 bits con un registro acumulador de trabajo asociado
            también de 8 bits. Realiza operaciones aritméticas y lógicas utilizando siempre
            como operando el registro acumulador y otro dato perteneciente a cualquier
            registro. Realiza operaciones de suma, resta y desplazamiento. Opera en
            complemento a 2 (C’2). Dependiendo del resultado, afecta a algunos bits del
            registro de estado.



Santiago Salamanca Miño                        11                Escuela de Ingenierías Industriales
David Arroyo Muñoz                                                    Universidad de Extremadura
Microcontroladores PIC de la Gama Media.                     2. La Arquitectura de los PIC de la Gama Media




              Figura 2.1 Diagrama de bloques general de los PIC de la gama media.
Nota 1: Los bits de mayor orden en el direccionamiento directo de la RAM se obtienen del Registro de Estado.
     2: No todos los dispositivos tienen estas características, habrá que consultar las hojas de características.
     3: Muchos de los pines de las puertas E/S de propósito general están multiplexadas con una o más
         funciones de los módulos periféricos. La combinación de las funciones multiplexadas dependen del
         dispositivo.




Santiago Salamanca Miño                                12                  Escuela de Ingenierías Industriales
David Arroyo Muñoz                                                              Universidad de Extremadura
Microcontroladores PIC de la Gama Media.            2. La Arquitectura de los PIC de la Gama Media




        d) Oscilador encargado de las generaciones de tiempo del sistema.
        e) Circuitos controladores del RESET.
        f) Puertos E/S. Existen hasta 7 puertos de E/S, aunque no existe ningún dispositivo
            que los implemente todos. Además se multiplexan con distintos elementos del
            sistema.
        g) Módulos periféricos. Son la característica que diferencia a los distintos
            microcontroladores. Éstos facilitan la comunicación con el mundo exterior, tal
            como las E/S de propósito general, y tareas internas tal como puede ser la
            generación de las distintas bases de tiempo. Los periféricos sobre los que se está
            hablando son; E/S de propósito general, hasta tres temporizadores, módulo de
            captura, comparación, y PWM (CCP), puerto serie síncrono (SSP), USART (SCI),
            módulo para generación de voltajes de referencia, módulos comparadores
            analógicos, conversores analógico digital (A/D), módulo para control de Display
            de cristal líquido (LCD) y puerto paralelo esclavo (PSP).
        h) Registros generales del sistema.


2.2 Organización de la memoria.


La memoria de los PIC está dividida en dos bloques; la memoria de programa y la memoria
de datos. Cada uno de los bloques tiene su propio bus, pudiendo tener acceso a ambos bloques
de memoria en el mismo ciclo de reloj.


2.2.1 Organización de la memoria de programa.


En los PIC de la gama media el contador de programa es de 13 bits, con lo que se puede
direccionar una capacidad de memoria de 8K x 14 bits. El ancho de la memoria de programa
va a ser la longitud de una instrucción que es de 14 bits, por lo se podrán almacenar hasta 8K
instrucciones. De esta forma es fácil determinar si el dispositivo tiene suficiente memoria de
programa para una aplicación deseada.




Santiago Salamanca Miño                       13                Escuela de Ingenierías Industriales
David Arroyo Muñoz                                                   Universidad de Extremadura
Microcontroladores PIC de la Gama Media.            2. La Arquitectura de los PIC de la Gama Media



Esta memoria de programa a su vez está dividida en cuatro páginas de 2K palabras cada una
(0h – 7FFh, 800h – FFFh, 1000h – 17FFh, y 1800h – 1FFFh). En la figura 2.2 se muestra el
mapa de memoria con la pila de 8 niveles. No todos los dispositivos tienen implementados
estos cuatro bancos.




                 Figura 2.2 Organización de la memoria de programa y la pila.


Para realizar los saltos entre las páginas de la memoria de programa se utilizan los dos bits
más altos del contador de programa (PC <11:12>), los cuales son implementados físicamente
en la memoria de datos en el registro PCLATCH <4:3>. Si el programa se ejecuta
secuencialmente no es necesario modificarlo.


Dentro de la memoria de programa existen dos direcciones reservadas:
        1. Vector de Reset .- En un dispositivo, un reset pone el contador de programa (PC)
            a cero. A esta dirección se la denomina “Dirección del Vector de Reset”, donde




Santiago Salamanca Miño                        14               Escuela de Ingenierías Industriales
David Arroyo Muñoz                                                   Universidad de Extremadura
Microcontroladores PIC de la Gama Media.             2. La Arquitectura de los PIC de la Gama Media



            está la dirección de inicio para la ejecución del programa. Cualquier reset borrará
            también el contenido del registro PCLATH, de modo que cuando se produzca un
            reset la dirección inicial a de estar localizada en la página 0 de la memoria de
            programa.
        2. Vector de Interrupción .- Cuando una interrupción es reconocida el PC es
            forzado a la dirección 0004h. A esto es a lo que se le llama “Dirección del Vector
            de Interrupción”. Cuando el PC es forzado con la dirección del vector de
            interrupción, el PCLATH no es modificado. Por eso mismo en la dirección del
            vector de interrupción, el registro PCLATH debería ser escrito con el valor que
            especificará la localización deseada en la memoria de programa. Antes de realizar
            esta operación, el PCLATH debería ser salvado para volverlo a restaurar al
            terminar el tratamiento de la rutina de interrupción.


El contador de programa (PC) es un registro que especifica la dirección de la instrucción que
ha de ser ejecutada. El PC tiene un ancho de 13 bits, correspondiendo el byte más bajo con el
registro de lectura-escritura PCL, implementado en la memoria de datos, y el byte más alto
con el registro PCH. Este último contiene sólo los bits <12:8> del PC y no se puede leer ni
escribir directamente, sino que son cargados a través del PCLATH.


Existen varias instrucciones que modifican el flujo normal del sistema, y por tanto afectan al
PC. Estas instrucciones son:


        1. Instrucciones de salto relativo: Son aquellas instrucciones que usan como
            operando destino al PC. En estas instrucciones se cargan los 8 bits menos
            significativos desde la UAL. El resto de los bits que coinciden con los del
            PCLATH, habría que modificarlos manualmente.


        2. Instrucción GOTO de salto incondicional: Carga desde el código de operación
            los 11 bits menos significativos. Los dos que quedan se cargan desde el PCLATH
            <4:3>. Si se hace un GOTO a una dirección que está en una página distinta,
            primero hay que modificar estos bits del PCLATH.




Santiago Salamanca Miño                        15                   Escuela de Ingenierías Industriales
David Arroyo Muñoz                                                       Universidad de Extremadura
Microcontroladores PIC de la Gama Media.              2. La Arquitectura de los PIC de la Gama Media



        3. Instrucción CALL de salto a subrutina: Es igual que la anterior con la diferencia
            de que antes de modificar el PC, el valor que tuviese se lleva a la pila.
        4. Instrucciones RETURN, RETLW y RETFIE de retornos de subrutinas y rutinas
            de tratamiento de interrupción: Cargan directamente en el PC el valor que se halla
            guardado anteriormente en la pila. No es necesario modificar el PCLATH.


Los PIC de la Gama Media poseen una pila de 8 niveles con un ancho de 13 bits, la cual nos
permite guardar las direcciones de retorno a un programa, cuando en éste se produce un salto
a una subrutina. Esto nos da capacidad para anidar hasta 8 subrutinas producidas por
programa o mediante interrupciones. Si en la pila ya se han almacenado 8 valores, el nuevo
valor se cargará sobre el primer nivel de la pila, de modo que puede dar problemas en el
funcionamiento de un programa.


2.2.2 Organización de la memoria de datos.


La memoria de datos (figura 2.3) está dividida en dos partes:
        a) Memoria de registros especiales (FSR Memory): Está formada por aquellos
            registros que son usados por la CPU y los periféricos para controlar una operación.
        b) Memoria de propósito general: Está formada por la memoria que puede usar el
            programador.


En ambos casos, está dividida hasta en 4 bancos de memoria de hasta 128 bytes, aunque
muchos de los modelos no traen implementados estos dos últimos bancos. En algunos
modelos de PIC la memoria de propósito general, está sólo implementado físicamente en el
banco0, estando el resto de los bancos mapeados en éste.




Santiago Salamanca Miño                         16                Escuela de Ingenierías Industriales
David Arroyo Muñoz                                                     Universidad de Extremadura
Microcontroladores PIC de la Gama Media.                  2. La Arquitectura de los PIC de la Gama Media




                          Figura 2.3 Organización de la memoria de datos.
Nota    1: Los registros en negrita están presentes en todos los dispositivos.
        2: Puede que no todas las posiciones estén implementadas. Las localizaciones no implementadas se
           leen como ‘0’.




Santiago Salamanca Miño                             17                 Escuela de Ingenierías Industriales
David Arroyo Muñoz                                                          Universidad de Extremadura
Microcontroladores PIC de la Gama Media.                2. La Arquitectura de los PIC de la Gama Media



El modo de acceso a cada uno de los bancos dependerá del tipo de direccionamiento que se
use.


Estos tipos de direccionamiento son:
        1. Direccionamiento directo: La dirección final se obtiene con:
                a. Los bits RP1-RP0 del registro de estado (STATUS), los cuales seleccionan
                     el banco de memoria.
                b. Los 7 bits del código de operación, los cuales indican la posición del dato
                     dentro del banco.
        2. Direccionamiento indirecto: Con este tipo de direccionamiento lo que se da es la
            dirección donde se encuentra la dirección del dato. Para ello se usa el registro
            INDF. Al usar este registro (que no está implementado físicamente), lo que se hace
            es acceder al registro de datos FSR de 8 bits. Los 7 bits con menos peso del FSR
            seleccionan la posición dentro del banco, y el bit de mayor peso junto con el bit
            IRP del registro de estado, seleccionan el banco.


            Un programa que borra una zona de memoria puede ser un ejemplo de aplicación
            de direccionamiento indirecto. El programa sería como el siguiente:


                          BCF              STATUS,IRP   ; Selección del banco 0 de memoria.
                          MOVLW            0X20         ; Mueve el valor 20h al registro W
                          MOVWF            FSR          ; Carga valor de W en FSR
        SIGUIENTE         CLRF             INDF         ; Borra la posición de memoria que marca FSR
                          INCF             FSR,1        ; Incrementa valor del FSR
                          BTFSS            FSR,4        ; Test del bit 4 del FSR, si es 1, no ejecuta la
                                                        ; siguiente instrucción y salta.
                          GOTO             SIGUIENTE    ; Vuelve a SIGUIENTE.
                          …
                          …
            Este programa ejemplo borraría la memoria de datos desde la posición h’20’ hasta
            h’2F’.




Santiago Salamanca Miño                           18                 Escuela de Ingenierías Industriales
David Arroyo Muñoz                                                        Universidad de Extremadura
Microcontroladores PIC de la Gama Media.            2. La Arquitectura de los PIC de la Gama Media



2.2.3 Registros y recursos comunes.


2.2.3.1 Registro de Estado.


Es un registro formado por 8 bits, que contiene el estado de la UAL, del RESET y selecciona
el banco de la memoria de datos sobre la que queremos trabajar.. Por esta última causa, el
registro de estado se encuentra en todos los bancos, y en la misma posición.


          R/W-0       R/W-0      R/W-0      R-1        R-1       R/W-x       R/W-x        R/W-x
           IRP         RP1        RP0       TO         PD          Z          DC            C
         bit7                                                                                bit0
        A continuación se muestra la función de cada bit del registro de estado.
        bit 7             IRP: Selección de bancos para el direccionamiento indirecto.
                          1 = Banco 2,3 (100h – 1FFh)
                          0 = Banco 0,1 (00h – FFh)
        bit 6:5           RP1:RP0: Selección del banco de la memoria de datos para el
                          direccionamiento directo.
                          11 = Banco 3 (180h – 1FFh)
                          10 = Banco 2 (100h – 17Fh)
                          01 = Banco 1 (80h – FFh)
                          00 = Banco 0 (00h – 7Fh)
        bit 4             TO : Timer Out.
                          1 = Tras conectar Vdd o ejecutar “CLRWDT” o “SLEEP”.
                          0 = Al rebasar el WDT
        bit 3             PD : Power Down
                          1 = Tras conectar Vdd o ejecutar “CLRWDT”.
                          0 = Al ejecutar la instrucción “SLEEP".
        bit 2             Z: Bit de cero.
                          1 = El resultado de una operación es 0.
                          0 = El resultado es distinto de 0.
        bit 1             DC: Acarreo en el 4º bit de menos peso.
                          1 = Acarreo en la suma y no en la resta.
                          0 = Acarreo en la suma y no en la resta.
        bit 0             C: Acarreo en el 8º bit.
                          1 = Acarreo en la suma y no en la resta.
                          0 = Acarreo en la suma y no en la resta.
Estos dos últimos bits, en la suma representan lo que se conoce comúnmente con acarreo, sin
embargo en la resta realizan la función de bit de signo (bit de Borrow ), indicando que el
resultado es negativo si Borrow es 0, y mayor o igual a 0 si es 1.



Santiago Salamanca Miño                       19                Escuela de Ingenierías Industriales
David Arroyo Muñoz                                                   Universidad de Extremadura
Microcontroladores PIC de la Gama Media.              2. La Arquitectura de los PIC de la Gama Media



2.2.3.2 Registro de Opciones.


El registro de opciones es un registro de lectura-escritura, que contiene los bits de
configuración del divisor de frecuencia del TMR0/WDT, de las interrupciones externas, del
TMR0, y la configuración de las Puerta B con cargas Pull-Up.


          R/W-1        R/W-1      R/W-1     R/W-1       R/W-1      R/W-1       R/W-1        R/W-1
          RBPU        INTEDG      T0CS      T0SE         PSA        PS2         PS1          PS0
         bit7                                                                                  bit0
        bit 7             RBPU : Conexión de cargas Pull-Up para la Puerta B.
                          1 = Todas las cargas Pull-Up desconectadas.
                          0 = Todas las cargas Pull-Up conectadas.
        bit 6             INTEDG: Tipo de flanco para la interrupción.
                          1 = RB0/INT sensible a flanco ascendente.
                          0 = RB0/INT sensible a flanco descendente.
        bit 5             T0CS: Fuente de reloj para el TMR0.
                          1 = Pulsos introducidos por T0CKI (contador).
                          0 = Pulsos de reloj interno Fosc/4 (temporizador).
        bit 4             T0SE: Tipo de flanco activo del T0CKI.
                          1 = Incremento del TMR0 cada flanco descendente.
                          0 = Incremento del TMR0 cada flanco ascendente.
        bit 3             PSA: Asignación del divisor de frecuencia.
                          1 = Se le asigna al WDT.
                          0 = Se le asigna al TMR0.
        bit 2-0           PS2:PS0: Valor del divisor de frecuencia.

                     Valor          División del TMR0       División del WDT
                      000                   1:2                     1:1
                      001                   1:4                     1:2
                      010                   1:8                     1:4
                      011                   1:16                    1:8
                      100                  1:32                    1:16
                      101                  1:64                    1:32
                      110                  1:128                   1:64
                      111                  1:256                  1:128

                  Para conseguir asignar 1:1 al divisor de frecuencia en el TMR0, se le asigna el
                  divisor al WDT.




Santiago Salamanca Miño                         20                Escuela de Ingenierías Industriales
David Arroyo Muñoz                                                     Universidad de Extremadura
Microcontroladores PIC de la Gama Media.              2. La Arquitectura de los PIC de la Gama Media



2.2.3.3 Palabra de configuración.


La Palabra de Configuración está formada por 14 bits. Se utiliza para la selección de distintos
aspectos de la configuración del dispositivo según las necesidades de la aplicación. Su
localización en la memoria de programa es la 2007h. Esta posición no es accesible durante el
modo de funcionamiento normal, por lo que estos registros deberán ser configurados en la
fase de programación.


CP1 CP0 CP1 CP0 CP1 CP0 - BODEN CP1 CP0 PWRTE WDTE FOSC1 FOSC0
bit13                                                      bit0

        bit 13-8          CP<1:0>: Bits de protección de código.
             5-4:
                                                512                 1k                     2k
                                  11            Off                 Off                    Off
                                  10            Off                 Off                 ½ alta On
                                  01            Off              ½ alta On              ¾ alta On
                                  00             On                 On                     On
        bit 7             No implementado: Su lectura es 1.
        bit 6             BODEN: Detección del “Brown-Out” (Fallo de alimentación)
                          1 = detección activada.
                          0 = Detección desactivada.
        bit 3             PWRTE : Activación del temporizador “Power-Up”
                          1 = Desactivado.
                          0 = Activado.
        bit 2             WDTE: Activación del “Watchdog” (perro guardián)
                          1 = Activado
                          0 = Desactivado.
        bit 1-0           FOSC1-FOSC0: Selección del tipo de oscilador.
                          11 = Oscilador RC.
                          10 = Oscilador HS
                          01 = Oscilador XT
                          00 = Oscilador LP




Santiago Salamanca Miño                         21                 Escuela de Ingenierías Industriales
David Arroyo Muñoz                                                      Universidad de Extremadura
Microcontroladores PIC de la Gama Media.                  2. La Arquitectura de los PIC de la Gama Media



2.3 Oscilador.


El circuito de oscilación se utiliza para generar las señales de reloj en el sistema necesarias
para la ejecución de instrucciones y para el funcionamiento de los periféricos.


Existen hasta ocho tipos de osciladores. Los distintos tipos permiten mayor flexibilidad del
dispositivo según las necesidades, así los hay de muy bajo coste, como las redes RC, y otros
de bajo consumo como son los cristales de cuarzo del modo LP.


La configuración de un oscilador u otro se realiza mediante los bits FOSC2, FOSC1 Y
FOSC0 de la palabra de configuración. No todos los modelos poseen la posibilidad de
configurar cualquier tipo de oscilador, en estos casos sólo tienen los bit FOSC1 Y FOSC0 en
la palabra de configuración. Los valores de estos bits para la configuración de los distintos
osciladores son los que se pueden ver en las tablas 2.1 y 2.2.


TABLA 2.1 Selección del modo de oscilación con FOSC1:FOSC0.
     Bits de
                      Modo       Ganancia de los
  configuración                                                          Comentarios
                      OSC      inversores internos
 FOSC1:FOSC0
                                                      Solución más barata (sólo requiere una resistencia y
                                                      un condensador). Máxima variación del tiempo
       11              RC                  −
                                                      base.
                                                      Modo del dispositivo por defecto
                                                      Cristal de cuarzo para aplicaciones de alta
       10              HS         Ganancia alta       frecuencia. Es el modo que más potencia consume
                                                      de los tres cristales.
                                                      Cristal de cuarzo para un rango de frecuencias
       01              XT        Ganancia media
                                                      estándar.
                                                      Cristal de cuarzo para aplicaciones de baja
       00              LP         Ganancia baja       frecuencia. Es el modo que menos potencia
                                                      consume de los tres cristales.




Santiago Salamanca Miño                              22                 Escuela de Ingenierías Industriales
David Arroyo Muñoz                                                           Universidad de Extremadura
Microcontroladores PIC de la Gama Media.                 2. La Arquitectura de los PIC de la Gama Media




TABLA 2.2 Selección del modo de oscilación con FOSC2:FOSC0.
                                   Ganancia de
      Bits de
                          Modo          los
   configuración                                                      Comentarios
                          OSC       inversores
  FOSC2:FOSC0
                                     internos
                                                 Red RC externa sacando la señal de oscilación por la
                     EXTRC con
        111                                −     patilla CLKOUT. Solución barata. Máxima variación
                      CLKOUT
                                                 en el tiempo base. Modo del dispositivo por defecto
                                                 Red RC externa. Barata solución. Máxima variación
        110            EXTRC            −        en el tiempo base. La señal de oscilación no sale al
                                                 exterior.
                                                 Red RC interna sacando la señal de oscilación por la
                      INTRC con
        101                             −        patilla CLKOUT. Es la solución más barata.
                       CLKOUT
                                                 Oscilador de 4MHz.
                                                 Red RC interna. La señal de oscilación no sale al
        100               INTRC         −
                                                 exterior. Solución más barata. Oscilador de 4MHz.
        011                 −           −        Reservado
                                                 Cristal de cuarzo para aplicaciones de alta frecuencia.
        10                 HS      Ganancia alta Es el modo que más potencia consume de los tres
                                                 cristales.
                                    Ganancia     Cristal de cuarzo para un rango de frecuencias
        01                 XT
                                      media      estándar.
                                                 Cristal de cuarzo para aplicaciones de baja frecuencia.
                                    Ganancia
        00                 LP                    Es el modo que menos potencia consume de los tres
                                       baja
                                                 cristales.


La diferencia entre los tres últimos viene dada por la ganancia de los inversores internos, que
son los que modifican la frecuencia. En general siempre se opta por la opción con menor
ganancia posible que cumpla las especificaciones. Esto implicará menores corrientes y con
ello menor consumo de potencia.


En la figura 2.4 se ve el modo de conexión para resonadores de cristal o de cuarzo. En este
caso se conectan a las patillas OSC1 y OSC2, usando esta última como realimentación.




Santiago Salamanca Miño                           23                  Escuela de Ingenierías Industriales
David Arroyo Muñoz                                                         Universidad de Extremadura
Microcontroladores PIC de la Gama Media.                  2. La Arquitectura de los PIC de la Gama Media




                    Figura 2.4 Operación de osciladores en los modos HS, XT o LP.
                 Nota 1: La resistencia en serie, RS, es necesaria para cristales de alta tecnología.
                      2: La resistencia de realimentación, RF, varía entre 2 y 10 MΩ.
                      3: Dependiendo del dispositivo, el buffer de la lógica interna puede estar tanto antes
                         como después del inversor.


Para una red RC el modo de conexión utilizará únicamente la patilla OSC1. La frecuencia de
oscilación dependerá de VDD, REXT y de CEXT (figura 2.5). El fabricante recomienda que REXT
tenga un valor de entre 3KΩ y 100KΩ y que CEXT sea mayor de 20pF. Además la frecuencia
del oscilador/4 se obtiene a través de la patilla OSC2, en caso de que esté configurada en los
modos EXTRC o INTRC con CLKOUT, se puede usar para sincronización de otras lógicas.




                                Figura 2.5 Operación en modo RC.
              Nota 1: Esta patilla también puede ser configurada como una E/S de propósito general.




Santiago Salamanca Miño                             24                  Escuela de Ingenierías Industriales
David Arroyo Muñoz                                                           Universidad de Extremadura
Microcontroladores PIC de la Gama Media.             2. La Arquitectura de los PIC de la Gama Media



Como un dispositivo incrementa su voltaje de alimentación desde 0 hasta VDD, el oscilador
tardará un tiempo en funcionar correctamente. Este tiempo de comienzo o Start-Up depende
de muchos factores:
        a) Para los osciladores RC depende del valor de la resistencia y condensador usado,
            tiempo de subida de VDD, y temperatura del sistema.
        b) Para los osciladores de cristales los factores que intervienen son la frecuencia del
            cristal, los valores de la resistencia en serie, RS y de los condensadores C1 y C2, el
            tiempo de subida de VDD, la temperatura del sistema, la selección del modo de
            oscilador, la composición del circuito oscilador, y el ruido del sistema.


En la figura 2.6 se muestra un ejemplo de Start–Up. Se puede ver que la señal de oscilación
está centrada en VDD/2, siendo el valor pico a pico durante el arranque del oscilador bastante
bajo (menos del 50% de VDD).




                       Figura 2.6 Característica Start-Up de un oscilador.

Siempre que se quiera grabar un PIC es necesario consultar las hojas de características para la
configuración del oscilador.




Santiago Salamanca Miño                         25               Escuela de Ingenierías Industriales
David Arroyo Muñoz                                                    Universidad de Extremadura
Microcontroladores PIC de la Gama Media.            2. La Arquitectura de los PIC de la Gama Media



2.4 Reset


La función del reset es la de dejar al sistema en un estado conocido. Existen varias fuentes de
RESET:
        a) Power On Reset (POR).
        b) Activación de MCLR durante funcionamiento normal.
        c) Activación de MCLR en el modo de reposo
        d) Desbordamiento del WDT durante funcionamiento normal.
        e) Reset de Brown-Out (BOR).
        f) Reset por error de paridad (PER).


La figura 2.7 se muestra un bloque simplificado de la lógica que gobierna el reset del sistema,
para un caso general.


En esta figura se puede ver una zona denominada OST/PWRT, que consiste en:
        a) Power-up Timer (PWRT): Es un temporizador que proporciona un retardo de
            72ms a partir de un reset de tipo POR o BOR, de tal forma que el PIC se mantiene
            reseteado durante este tiempo, así al finalizar la temporización la tensión de
            alimentación tendrá un valor aceptable. Este temporizador se habilita mediante el
            bit PWRT de la palabra de configuración. Para generar este retardo existe un
            circuito interno RC dedicado.
        b) Oscillator Start-Up Timer (OST): Este oscilador proporciona un retardo de
            1024 veces el periodo de oscilación (desde OSC1) después del retardo PWRT. De
            esta forma se asegura que el oscilador cristal o cerámico es estable cuando el PIC
            empieza a funcionar. Este retardo sólo funciona cuando el PIC se ha configurado
            para usar un oscilador XT, HS o LP y el reset es tipo POR, BOR o de wake-up
            desde el modo de reposo (sleep).




Santiago Salamanca Miño                        26               Escuela de Ingenierías Industriales
David Arroyo Muñoz                                                   Universidad de Extremadura
Microcontroladores PIC de la Gama Media.                   2. La Arquitectura de los PIC de la Gama Media




                      Figura 2.7 Lógica que gobierna el Reset de un sistema.
        Nota 1: Este es un oscilador distinto al oscilador del pin CLKIN o al oscilador interno INTRC.
             2: Las características que están encerrados en cuadros no están disponibles en todos los modelos,
               ver hoja de características del dispositivo.
             3: En algunos modelos, este pin puede estar configurado como entrada de propósito general.
             4: En los primeros microcontroladores PIC tenían la configuración de modo que para PWRTE =1
               estuviera habilitado, mientras que el resto de los modelos, la configuración estaba definida
               para PWRTE =0.

A continuación (tabla 2.3) se muestran los distintos retardos para las posibles situaciones en
las que se puede ver el sistema.

TABLA 2.3 Retardos típicos según las situaciones.
CONFIGURACIÓN                  TIEMPO DE POWER-UP                      BROWN-OUT              WAKE-UP
DEL OSCILADOR                                                            RESET               DESDE SLEEP
                            Habilitado           Deshabilitado
    XT, HS, LP         72 ms + 1024TOSC            1024TOSC          72 ms + 1024TOSC           1024TOSC
        RC                   72 ms                   ⎯  (1)
                                                                            72 ms                 ⎯(1)
       Nota 1: Dispositivos con oscilador Interno/Externo RC tienen un retardo de 250µs.




Santiago Salamanca Miño                              27                  Escuela de Ingenierías Industriales
David Arroyo Muñoz                                                            Universidad de Extremadura
Microcontroladores PIC de la Gama Media.                   2. La Arquitectura de los PIC de la Gama Media



El Power-on Reset consiste en la activación del reset cuando se detecta la conexión de la
alimentación al dispositivo. Dos topologías para el circuito de POR se pueden ver en la figura
2.8, siendo la primera para el caso general y la segunda para el caso en que VDD crezca de
forma lenta.




                Nota 1: La resistencia es opcional.

                          Figura 2.8 Topologías para el circuito de POR.
En el segundo caso el diodo ayuda a la descarga del condensador cuando VDD disminuye su
valor.


Las siguientes figuras (2.9 – 2.12) muestran el comportamiento temporal de las señales según
el caso.




   Figura 2.9 Secuencia de Time-out en subida de alimentación. MCLR conectado a VDD.




Santiago Salamanca Miño                               28               Escuela de Ingenierías Industriales
David Arroyo Muñoz                                                          Universidad de Extremadura
Microcontroladores PIC de la Gama Media.        2. La Arquitectura de los PIC de la Gama Media




 Figura 2.10 Secuencia de Time-out en subida de alimentación. MCLR no conectado a VDD.
                                        (Caso1).




 Figura 2.11 Secuencia de Time-out en subida de alimentación. MCLR no conectado a VDD.
                                        (Caso2).




   Figura 2.12 Secuencia de Time-out en subida de alimentación. MCLR conectado a VDD
                                (tiempo de subida lento).



Santiago Salamanca Miño                    29               Escuela de Ingenierías Industriales
David Arroyo Muñoz                                               Universidad de Extremadura
Microcontroladores PIC de la Gama Media.           2. La Arquitectura de los PIC de la Gama Media



El Brown-out Reset consiste en producir un reset en el sistema cuando la tensión de
alimentación VDD cae por debajo de un determinado valor, específico para cada PIC. Los que
tengan implementados el BOR, tienen un parámetro (35), que es el tiempo mínimo que debe
estar VDD por debajo de la tensión de reset, para que éste se produzca. Esto asegura que el
elemento no continua la ejecución del programa fuera de los rangos válidos de operación.


Este tipo de reset se puede habilitar con el bit BODEN de la Palabra de Configuración. Una
vez que el nivel de la alimentación se restablezca, hay un retardo de 72ms en desactivarse el
reset interno.


Algunas de las situaciones de Brown-Out Reset se muestran en la figura 2.13.




                          Figura 2.13 Situaciones de Brown-out Reset.

Posibles circuitos usados para un BOR, cuando el circuito no tiene internamente el detector
implementado, o cuando la tensión que venga configurada no nos interesa, se muestran en las
figuras 2.14 y 2.15.




Santiago Salamanca Miño                       30               Escuela de Ingenierías Industriales
David Arroyo Muñoz                                                  Universidad de Extremadura
Microcontroladores PIC de la Gama Media.                    2. La Arquitectura de los PIC de la Gama Media




                            Figura 2.14 Circuito externo 1 de Brown-out.
                          Este circuito activará el reset cuando VDD esté por debajo de (Vz + 0.7V), donde Vz
                          es el voltaje Zener del diodo.
                          Nota        1: El circuito de Brown-out Reset interno debe de estar deshabilitado
                                      cuando se use esta configuración.
                                      2: Los valores de las resistencias dependen de las características del
                                      transistor.




                            Figura 2.15 Circuito externo 2 de Brown-out.
                          Nota    1: Este circuito de BOR es más barato, pero menos exacto. El transistor Q1 se
                                  corta cuando VDD baja de cierto nivel tal como:
                                            R1
                                  VDD •           = 0.7V
                                          R1 + R2
                                  2: El circuito de Brown-out Reset interno debe de estar deshabilitado cuando
                                  se use esta configuración.
                                  3: Los valores de las resistencias dependen de las características del
                                  transistor.




Santiago Salamanca Miño                              31                  Escuela de Ingenierías Industriales
David Arroyo Muñoz                                                            Universidad de Extremadura
Microcontroladores PIC de la Gama Media.                2. La Arquitectura de los PIC de la Gama Media



 Debido a que existen distintas fuentes de reset, es necesario en determinadas ocasiones, saber
 que tipo de reset se ha producido. Esto se hace consultando los bits POR y BOR del registro
 PCON, y PD del Registro de Estado (tabla 2.4). La tabla 2.5 muestra la forma en que afecta
 el Reset a los distintos registros.

 TABLA 2.4 Bits de estado y su significado.
 POR BOR TO            PD                                    Tipo de Reset
    0       x        1       1    Power-On Reset.
    0       x        0       x    Incorrecto, TO está a 1 en POR .
    0       x        x       0    Incorrecto, PD está a 1 en POR .
    1       0        1       1    Brown-Out Reset.
    1       1        0       1    WDT Reset.
    1       1        0       0    WDT Wake-Up.
    1       1        u       u        MCLR reset en funcionamiento normal.
    1       1         1        0      MCLR reset durante SLEEP.
 Legenda:        u: valor anterior. x: desconocido.


 TABLA 2.5 Condiciones de inicialización de los registros especiales.
                                                 MCLR durante:               Wake-up desde SLEEP
                           Power-On Reset         -funcionamiento normal     mediante:
Registro
                           Brown-Out Reset        -SLEEP                     -Interrupciones
                                                 WDT Reset                   -Temporizador del WDT
ADCAPL                        0000 0000                  0000 0000                   uuuu uuuu
ADCAPH                        0000 0000                  0000 0000                   uuuu uuuu
ADCON0                        0000 00-0                  0000 00-0                   uuuu uu-u
ADCON                          ---- -000                  ---- -000                   ---- -uuu
ADRES                         xxxx xxxx                  uuuu uuuu                   uuuu uuuu
ADTMRL                        0000 0000                  0000 0000                   uuuu uuuu
ADMRH                         0000 0000                  0000 0000                   uuuu uuuu
CCP1CON                       --00 0000                  --00 0000                   --uu uuuu
CCP2CON                       0000 0000                  0000 0000                   uuuu uuuu
CCPR1L                        xxxx xxxx                  uuuu uuuu                   uuuu uuuu
CCPR1H                        xxxx xxxx                  uuuu uuuu                   uuuu uuuu
CCPR2L                        xxxx xxxx                  uuuu uuuu                   uuuu uuuu
CCPR2H                        xxxx xxxx                  uuuu uuuu                   uuuu uuuu
CMCON                         00-- 0000                  00—0000                     uu-- uuuu
EEADR                         xxxx xxxx                  uuuu uuuu                   uuuu uuuu
EECON1                         ---0 x000                  ---0 q000                   ---0 uuuu
EECON2                              -                          -                           -
EEDATA                        xxxx xxxx                  uuuu uuuu                   uuuu uuuu
FSR                           xxxx xxxx                  uuuu uuuu                   uuuu uuuu
GPIO                          --xx xxxx                  --uu uuuu                   --uu uuuu
I2CADD                        0000 0000                  0000 0000                   uuuu uuuu
I2CBUF                        xxxx xxxx                  uuuu uuuu                   uuuu uuuu
I2CCON                        0000 0000                  0000 0000                   uuuu uuuu
I2CSTAT                       --00 0000                  --00 0000                   --uu uuuu
INDF                                -                          -                           -
INTCON                        0000 000x                  0000 000u                   uuuu uuuu
LCDCON                        00-0 0000                  00-0 0000                   uu-u uuuu




 Santiago Salamanca Miño                            32                Escuela de Ingenierías Industriales
 David Arroyo Muñoz                                                        Universidad de Extremadura
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos
Pic problemas resueltos

Más contenido relacionado

La actualidad más candente

Guía rápida tmr0 e interrupciones
Guía rápida tmr0 e interrupcionesGuía rápida tmr0 e interrupciones
Guía rápida tmr0 e interrupcionesLuis Zurita
 
Memoria EEPROM
Memoria EEPROMMemoria EEPROM
Memoria EEPROMelizagara
 
⭐⭐⭐⭐⭐ INTRODUCCÓN A LOS CPLDs Y FPGAs
⭐⭐⭐⭐⭐ INTRODUCCÓN A LOS CPLDs Y FPGAs⭐⭐⭐⭐⭐ INTRODUCCÓN A LOS CPLDs Y FPGAs
⭐⭐⭐⭐⭐ INTRODUCCÓN A LOS CPLDs Y FPGAsVictor Asanza
 
Microcontroladores: Los microcontroladores AVR de ATMEL parte 1
Microcontroladores: Los microcontroladores AVR de ATMEL parte 1Microcontroladores: Los microcontroladores AVR de ATMEL parte 1
Microcontroladores: Los microcontroladores AVR de ATMEL parte 1SANTIAGO PABLO ALBERTO
 
Microcontroladores pic basic_-
Microcontroladores pic basic_-Microcontroladores pic basic_-
Microcontroladores pic basic_-Nando Sata
 
MANEJO DE PERIFERICOS PARA MICROCONTROLADORES EN C
MANEJO DE PERIFERICOS PARA MICROCONTROLADORES EN CMANEJO DE PERIFERICOS PARA MICROCONTROLADORES EN C
MANEJO DE PERIFERICOS PARA MICROCONTROLADORES EN CLuis Zurita
 
2. expansión en serie de fourier de una función en un intervalo infinito
2. expansión en serie de fourier de una función en un intervalo infinito2. expansión en serie de fourier de una función en un intervalo infinito
2. expansión en serie de fourier de una función en un intervalo infinitogrower miranda mamani
 
Microcontroladores Programacion en BASIC - Carlos A. Reyes 3ra edicion
Microcontroladores Programacion en BASIC - Carlos A. Reyes 3ra edicionMicrocontroladores Programacion en BASIC - Carlos A. Reyes 3ra edicion
Microcontroladores Programacion en BASIC - Carlos A. Reyes 3ra edicionWashington Amores
 
Diferencias entre circuitos combinacionales y secuenciales
Diferencias entre circuitos combinacionales y secuencialesDiferencias entre circuitos combinacionales y secuenciales
Diferencias entre circuitos combinacionales y secuencialesWilfred Garcia Diomeda
 
Módulos ccp pic 16f887
Módulos ccp pic 16f887Módulos ccp pic 16f887
Módulos ccp pic 16f887whendygarcia
 
PLD’s (programmable logic device)
PLD’s (programmable logic device)PLD’s (programmable logic device)
PLD’s (programmable logic device)Carlos Solano
 
Descripcion detallada del pic 16 f877
Descripcion detallada del pic 16 f877Descripcion detallada del pic 16 f877
Descripcion detallada del pic 16 f877Raphael Raphael
 

La actualidad más candente (20)

Ejercicios de control Ladder de PLC
Ejercicios de control Ladder de PLC Ejercicios de control Ladder de PLC
Ejercicios de control Ladder de PLC
 
Manual hp-prime-2021
Manual hp-prime-2021Manual hp-prime-2021
Manual hp-prime-2021
 
Guía rápida tmr0 e interrupciones
Guía rápida tmr0 e interrupcionesGuía rápida tmr0 e interrupciones
Guía rápida tmr0 e interrupciones
 
Memoria EEPROM
Memoria EEPROMMemoria EEPROM
Memoria EEPROM
 
Control de posicion
Control de posicionControl de posicion
Control de posicion
 
⭐⭐⭐⭐⭐ INTRODUCCÓN A LOS CPLDs Y FPGAs
⭐⭐⭐⭐⭐ INTRODUCCÓN A LOS CPLDs Y FPGAs⭐⭐⭐⭐⭐ INTRODUCCÓN A LOS CPLDs Y FPGAs
⭐⭐⭐⭐⭐ INTRODUCCÓN A LOS CPLDs Y FPGAs
 
05.Manejo de interrupciones
05.Manejo de interrupciones05.Manejo de interrupciones
05.Manejo de interrupciones
 
Microcontroladores: Los microcontroladores AVR de ATMEL parte 1
Microcontroladores: Los microcontroladores AVR de ATMEL parte 1Microcontroladores: Los microcontroladores AVR de ATMEL parte 1
Microcontroladores: Los microcontroladores AVR de ATMEL parte 1
 
Microcontroladores pic basic_-
Microcontroladores pic basic_-Microcontroladores pic basic_-
Microcontroladores pic basic_-
 
MANEJO DE PERIFERICOS PARA MICROCONTROLADORES EN C
MANEJO DE PERIFERICOS PARA MICROCONTROLADORES EN CMANEJO DE PERIFERICOS PARA MICROCONTROLADORES EN C
MANEJO DE PERIFERICOS PARA MICROCONTROLADORES EN C
 
Microcontroladores
MicrocontroladoresMicrocontroladores
Microcontroladores
 
Microcontroladores
MicrocontroladoresMicrocontroladores
Microcontroladores
 
2. expansión en serie de fourier de una función en un intervalo infinito
2. expansión en serie de fourier de una función en un intervalo infinito2. expansión en serie de fourier de una función en un intervalo infinito
2. expansión en serie de fourier de una función en un intervalo infinito
 
Microcontroladores Programacion en BASIC - Carlos A. Reyes 3ra edicion
Microcontroladores Programacion en BASIC - Carlos A. Reyes 3ra edicionMicrocontroladores Programacion en BASIC - Carlos A. Reyes 3ra edicion
Microcontroladores Programacion en BASIC - Carlos A. Reyes 3ra edicion
 
Manual básico WinPic800
Manual básico WinPic800Manual básico WinPic800
Manual básico WinPic800
 
Diferencias entre circuitos combinacionales y secuenciales
Diferencias entre circuitos combinacionales y secuencialesDiferencias entre circuitos combinacionales y secuenciales
Diferencias entre circuitos combinacionales y secuenciales
 
Módulos ccp pic 16f887
Módulos ccp pic 16f887Módulos ccp pic 16f887
Módulos ccp pic 16f887
 
Timer0 PIC16F84A
Timer0 PIC16F84ATimer0 PIC16F84A
Timer0 PIC16F84A
 
PLD’s (programmable logic device)
PLD’s (programmable logic device)PLD’s (programmable logic device)
PLD’s (programmable logic device)
 
Descripcion detallada del pic 16 f877
Descripcion detallada del pic 16 f877Descripcion detallada del pic 16 f877
Descripcion detallada del pic 16 f877
 

Similar a Pic problemas resueltos

Mi 2292 power_quality_analyser_plus_ang_ver_3.1__20_750_701
Mi 2292 power_quality_analyser_plus_ang_ver_3.1__20_750_701Mi 2292 power_quality_analyser_plus_ang_ver_3.1__20_750_701
Mi 2292 power_quality_analyser_plus_ang_ver_3.1__20_750_701Pluk Fimia
 
61470227 mplab
61470227 mplab61470227 mplab
61470227 mplabrexmersxa7
 
Acta de recibo (reparado) 2
Acta de recibo (reparado) 2Acta de recibo (reparado) 2
Acta de recibo (reparado) 2mjperezvasco
 
Microcontroladores: los PIC de la gama media, arquitectura y técnica de progr...
Microcontroladores: los PIC de la gama media, arquitectura y técnica de progr...Microcontroladores: los PIC de la gama media, arquitectura y técnica de progr...
Microcontroladores: los PIC de la gama media, arquitectura y técnica de progr...SANTIAGO PABLO ALBERTO
 
Resolucion epre 158 08
Resolucion epre 158  08Resolucion epre 158  08
Resolucion epre 158 08Esteban Conte
 
Solucion problemas sist electrico freightliner
Solucion problemas sist electrico freightlinerSolucion problemas sist electrico freightliner
Solucion problemas sist electrico freightlinerVictor Rivas
 
Gestión moderna del mantenimiento
Gestión moderna del mantenimientoGestión moderna del mantenimiento
Gestión moderna del mantenimientoRobert Almeyda
 
Manual ingeniero mantenimiento
Manual ingeniero mantenimientoManual ingeniero mantenimiento
Manual ingeniero mantenimientoGREAT PERU PERU
 
Avanzado excel
Avanzado excelAvanzado excel
Avanzado excelrfms07
 
Manual ingeniero mantenimiento diseñado para estudiantes universitarios
Manual ingeniero mantenimiento diseñado para estudiantes universitariosManual ingeniero mantenimiento diseñado para estudiantes universitarios
Manual ingeniero mantenimiento diseñado para estudiantes universitarioscspeirl2016
 
M. uso calderas condensacion natur - Servicio Tecnico Fagor
M.  uso calderas condensacion natur - Servicio Tecnico FagorM.  uso calderas condensacion natur - Servicio Tecnico Fagor
M. uso calderas condensacion natur - Servicio Tecnico Fagorserviciotecnicofagor
 
Unidad 5. Energías renovables. Minicentrales hidroelectricas
Unidad 5. Energías renovables. Minicentrales hidroelectricasUnidad 5. Energías renovables. Minicentrales hidroelectricas
Unidad 5. Energías renovables. Minicentrales hidroelectricasmartuki85
 

Similar a Pic problemas resueltos (20)

Contenido
Contenido Contenido
Contenido
 
Mi 2292 power_quality_analyser_plus_ang_ver_3.1__20_750_701
Mi 2292 power_quality_analyser_plus_ang_ver_3.1__20_750_701Mi 2292 power_quality_analyser_plus_ang_ver_3.1__20_750_701
Mi 2292 power_quality_analyser_plus_ang_ver_3.1__20_750_701
 
Pic
PicPic
Pic
 
MICROCONTROLADORES.
MICROCONTROLADORES.MICROCONTROLADORES.
MICROCONTROLADORES.
 
61470227 mplab
61470227 mplab61470227 mplab
61470227 mplab
 
Sintonizacion PID
Sintonizacion PID Sintonizacion PID
Sintonizacion PID
 
HARDWARE Y SOFTWARE
HARDWARE Y SOFTWAREHARDWARE Y SOFTWARE
HARDWARE Y SOFTWARE
 
Acta de recibo (reparado) 2
Acta de recibo (reparado) 2Acta de recibo (reparado) 2
Acta de recibo (reparado) 2
 
Microcontroladores: los PIC de la gama media, arquitectura y técnica de progr...
Microcontroladores: los PIC de la gama media, arquitectura y técnica de progr...Microcontroladores: los PIC de la gama media, arquitectura y técnica de progr...
Microcontroladores: los PIC de la gama media, arquitectura y técnica de progr...
 
Resolucion epre 158 08
Resolucion epre 158  08Resolucion epre 158  08
Resolucion epre 158 08
 
Solucion problemas sist electrico freightliner
Solucion problemas sist electrico freightlinerSolucion problemas sist electrico freightliner
Solucion problemas sist electrico freightliner
 
Control digital con matlab
Control digital con matlabControl digital con matlab
Control digital con matlab
 
Manual Ventilador bennett 560
Manual Ventilador bennett 560Manual Ventilador bennett 560
Manual Ventilador bennett 560
 
5 (1)
5 (1)5 (1)
5 (1)
 
Gestión moderna del mantenimiento
Gestión moderna del mantenimientoGestión moderna del mantenimiento
Gestión moderna del mantenimiento
 
Manual ingeniero mantenimiento
Manual ingeniero mantenimientoManual ingeniero mantenimiento
Manual ingeniero mantenimiento
 
Avanzado excel
Avanzado excelAvanzado excel
Avanzado excel
 
Manual ingeniero mantenimiento diseñado para estudiantes universitarios
Manual ingeniero mantenimiento diseñado para estudiantes universitariosManual ingeniero mantenimiento diseñado para estudiantes universitarios
Manual ingeniero mantenimiento diseñado para estudiantes universitarios
 
M. uso calderas condensacion natur - Servicio Tecnico Fagor
M.  uso calderas condensacion natur - Servicio Tecnico FagorM.  uso calderas condensacion natur - Servicio Tecnico Fagor
M. uso calderas condensacion natur - Servicio Tecnico Fagor
 
Unidad 5. Energías renovables. Minicentrales hidroelectricas
Unidad 5. Energías renovables. Minicentrales hidroelectricasUnidad 5. Energías renovables. Minicentrales hidroelectricas
Unidad 5. Energías renovables. Minicentrales hidroelectricas
 

Último

Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxJOSEFERNANDOARENASCA
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxMariaBurgos55
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaarkananubis
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxAlexander López
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMidwarHenryLOZAFLORE
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..RobertoGumucio2
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 

Último (20)

Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptx
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptx
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en mina
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptx
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 

Pic problemas resueltos

  • 1. LOS PIC DE LA GAMA MEDIA. ARQUITECTURA Y TÉCNICAS DE PROGRAMACIÓN. Santiago Salamanca Miño David Arroyo Muñoz Octubre de 2003
  • 2. Este libro es el resultado del Proyecto Fin de Carrera realizado por el alumno David Arroyo Muñoz y dirigido por Santiago Salamanca Miño. Está basado en los apuntes de clase de la asignatura Informática Industrial de la Titulación de Ingeniero Técnico Industrial, especialidad Electrónica Industrial, que se imparte en la Escuela de Ingenierías Industriales de la Universidad de Extremadura. Agradecemos la información suministrada por Jorge Jesús Pérez García para la corrección de este documento. Si encuentras alguna errata o quieres hacer algún comentario, puedes escribir al siguiente correo electrónico: ssalaman@unex.es
  • 3. Microcontroladores PIC de la Gama Media. ÍNDICE GENERAL. ÍNDICE GENERAL 1 Introducción a los Microcontroladores. ..................................................................... 1 1.1 ¿Qué es un microcontrolador? ................................................................. 1 1.2 Aplicaciones............................................................................................. 3 1.3 Los microcontroladores PIC. ................................................................... 3 1.4 Las Gamas de los PIC.............................................................................. 5 1.5 Los PIC de la Gama Media...................................................................... 6 2 La Arquitectura de los PIC de la Gama Media......................................................... 11 2.1 Introducción. ........................................................................................... 11 2.2 Organización de la memoria. .................................................................. 13 2.2.1 Organización de la memoria de programa. ..................... 13 2.2.2 Organización de la memoria de datos............................. 16 2.2.3 Registros y recursos comunes......................................... 19 2.2.3.1 Registro de Estado. ....................................... 19 2.2.3.2 Registro de Opciones. ................................... 20 2.2.3.3 Palabra de configuración. ............................. 21 2.3 Oscilador................................................................................................. 22 2.4 Reset........................................................................................................ 26 2.5 Temporizador y Perro Guardián. ............................................................ 34 2.6 Puertas E/S.............................................................................................. 36 2.7 Modo de reposo o SLEEP....................................................................... 37 3 Juego de Instrucciones de los PIC de la Gama Media.............................................. 39 3.1 Introducción. ........................................................................................... 39 3.2 Flujo de instrucciones. Segmentación. ................................................... 40 3.3 El formato de las instrucciones............................................................... 41 3.4 Juego de instrucciones. ........................................................................... 43 3.4.1 Descripción detallada de las instrucciones por orden alfabético. ....................................................... 45 4 Los Periféricos de los PIC de la Gama Media. ......................................................... 63 4.1 Introducción. ........................................................................................... 63 Santiago Salamanca Miño I Escuela de Ingenierías Industriales David Arroyo Muñoz Universidad de Extremadura
  • 4. Microcontroladores PIC de la Gama Media. ÍNDICE GENERAL. 4.2 Interrupciones. ........................................................................................ 63 4.2.1 Registros de control. ....................................................... 65 4.2.1.1 Registro INTCON......................................... 65 4.2.1.2 Registros PIE. ............................................... 66 4.2.1.3 Registros PIR. ............................................... 67 4.2.2 Fases de una interrupción. .............................................. 70 4.3 Puertas de E/S. ........................................................................................ 72 4.3.1 Puerta A. ......................................................................... 73 4.3.2 Puerta B. ......................................................................... 75 4.3.3 Puerta C. ......................................................................... 77 4.3.4 Puerta D. ......................................................................... 78 4.3.5 Puerta E........................................................................... 78 4.3.6 Puertas F y G. ................................................................. 79 4.3.7 Puerta GPIO.................................................................... 80 4.3.8 Operaciones sucesivas en un Puerto E/S. ....................... 81 4.4 Puerto Paralelo Esclavo. ......................................................................... 83 4.5 Temporizadores ...................................................................................... 86 4.5.1 TMR0.............................................................................. 86 4.5.2 TMR1.............................................................................. 90 4.5.3 TMR2.............................................................................. 92 4.6 Módulos CCP.......................................................................................... 93 4.6.1 Modo de captura. ............................................................ 94 4.6.2 Modo de comparación. ................................................... 96 4.6.3 Modo PWM. ................................................................... 97 4.7 Módulo de Tensión de Referencia......................................................... 100 4.8 Módulo Comparador Analógico. ........................................................... 102 4.9 Convertidor A/D. ................................................................................... 106 4.10 Módulos de comunicación serie. ......................................................... 112 4.10.1 Puerto Serie Síncrono (SSP)........................................... 112 4.10.1.1 Modo SPI. .................................................................... 115 4.10.1.2 Modo I2C. .................................................................... 117 Santiago Salamanca Miño II Escuela de Ingenierías Industriales David Arroyo Muñoz Universidad de Extremadura
  • 5. Microcontroladores PIC de la Gama Media. ÍNDICE GENERAL. 4.10.2 USART. .......................................................................... 125 4.10.2.1 Modo asíncrono. ................................... 128 4.10.2.2 Modo síncrono ...................................... 133 5 Programación con PIC. ............................................................................................ 137 5.1 Introducción. .......................................................................................... 137 5.2 Directivas del ensamblador MPASM. ................................................... 137 5.3 Creación de programas. ......................................................................... 156 5.3.1 Un solo código fuente (ensamblador)............................ 156 5.3.2 Varios códigos fuente (linkador). .................................. 157 5.3.3 Utilización de librerías................................................... 158 5.4 Estructuras básicas de programación..................................................... 160 5.4.1 Estructuras iterativas...................................................... 160 5.4.1.1 While............................................................ 160 5.4.1.2 Do while....................................................... 161 5.4.1.3 For................................................................ 161 5.4.2 Estructuras condicionales. ............................................. 162 5.4.2.1 If................................................................... 162 5.4.2.2 If ... else........................................................ 163 5.4.3 Códigos de condición..................................................... 164 5.4.3.1 Igual. ............................................................ 164 5.4.3.2 Distinto......................................................... 164 5.4.3.3 Mayor........................................................... 164 5.4.3.4 Mayor o igual............................................... 165 5.4.3.5 Menor........................................................... 165 5.4.3.6 Menor o igual............................................... 165 5.4.3.7 Condiciones más complejas......................... 165 5.5 Ejemplo de librerías: librería matemática.............................................. 166 5.5.1 Rutinas de coma flotante................................................ 166 5.5.1.1 Manejo de excepciones................................ 168 5.5.1.2 Redondeo. .................................................... 168 5.5.1.3 Conversión de entero a flotante. .................. 168 Santiago Salamanca Miño III Escuela de Ingenierías Industriales David Arroyo Muñoz Universidad de Extremadura
  • 6. Microcontroladores PIC de la Gama Media. ÍNDICE GENERAL. 5.5.1.4 Normalización.............................................. 168 5.5.1.5 Conversión de flotante a entero. .................. 169 5.5.1.6 Suma/Resta. ................................................. 169 5.5.1.7 Multiplicación.............................................. 169 5.5.1.8 División........................................................ 170 5.5.2 Rutinas en coma fija. ..................................................... 171 5.5.2.1 Multiplicación.............................................. 171 5.5.2.2 División........................................................ 172 5.5.3 Funciones matemáticas en coma flotante. ..................... 173 5.5.3.1 Función raíz cuadrada.................................. 174 5.5.3.2 Funciones exponenciales. ........................... 175 5.5.3.3 Funciones logarítmicas. ............................... 176 5.5.3.4 Funcione trigonométricas. ........................... 178 5.5.3.5 Función potencia.......................................... 179 5.5.3.6 Función parte entera por defecto. ................ 182 5.5.3.7 Comparación lógica en coma flotante. ........ 182 5.5.3.8 Generador aleatorio de números enteros. .... 183 5.5.4 Conversión de coma flotante a ASCII. .......................... 183 5.5.4.1 Conversión de coma flotante a ASCII en base 10. ..................................... 184 5.5.4.2 Personalización de la rutina. ........................ 184 5.5.4.3 Resumen. ..................................................... 185 APÉNDICE A: Protocolo I2C........................................................................................ 187 A.1 Introducción ......................................................................................... 187 A.2 Inicialización y fin de transferencia de datos....................................... 187 A.3 Direccionamiento de dispositivos en I2C............................................. 188 A.4 Reconocimiento de transferencia......................................................... 189 Santiago Salamanca Miño IV Escuela de Ingenierías Industriales David Arroyo Muñoz Universidad de Extremadura
  • 7. Microcontroladores PIC de la Gama Media. 1. Introducción a los Microcontroladores Capítulo 1. Introducción a los microcontroladores. 1.1 ¿Qué es un microcontrolador? Hace unos años, los sistemas de control se implementaban usando exclusivamente lógica de componentes, lo que hacía que fuesen dispositivos de gran tamaño y muy pesados. Para facilitar una velocidad más alta y mejorar la eficiencia de estos dispositivos de control, se trató de reducir su tamaño, apareciendo así los microprocesadores. Siguiendo con el proceso de miniaturización, el siguiente paso consistió en la fabricación de un controlador que integrase todos sus componentes en un sólo chip. A esto es a lo que se le conoce con el nombre de microcontrolador, un computador dentro de un sólo chip. Las principales características que diferencian a un microcontrolador de un microprocesador son: 1. Son sistemas cerrados, ya que contiene todos los elementos de un computador en un solo chip, frente a los microprocesadores que son sistemas abiertos, ya que sacan las líneas de los buses de datos, direcciones y control al exterior, para la conexión de memorias, interfaces de E/S, etc. 2. Son de propósito específico, es decir, son programados para realizar una única tarea, mientras que los microprocesadores son de propósito general. La historia de los microcontroladores surge desde dos vías de desarrollo paralelas; una desde Intel y otra desde Texas Instruments. Los primeros microcontroladores son el 4004 y 4040 de Intel que dieron lugar al 8048, a su vez predecesor del 8051. Aún así el primer microcontrolador fue el TMS1000 de Texas Instruments. Éste integraba un reloj, procesador, ROM, RAM, y soportes de E/S en un solo chip. Santiago Salamanca Miño 1 Escuela de Ingenierías Industriales David Arroyo Muñoz Universidad de Extremadura
  • 8. Microcontroladores PIC de la Gama Media. 1. Introducción a los Microcontroladores Un microcontrolador, típicamente consta de: -CPU o procesador.- Es el cerebro del sistema que procesa todos los datos que viajan a lo largo del bus. -Memorias.- Está formada por una no volátil (ROM, EEPROM, FLASH) donde se almacenan los programas y una volátil (RAM) donde se almacenan los datos. -Reloj principal.- Normalmente todos los microcontroladores tienen incorporados circuitos osciladores para el funcionamiento de éstos. -Puertos E/S (Entrada/Salida).- Soportan las líneas que comunican al microcontrolador con los periféricos externos. -Perro guardián o Watchdog.- Contador que resetea al microcontrolador cada vez que rebosa. Sirve para evitar fallos de funcionamiento, por lo que hay que inicializarlo periódicamente antes de que rebose. -Protección ante fallo de alimentación o Browout.- Circuito que resetea al microcontrolador cuando la tensión de alimentación baja de un cierto límite. -Temporizadores.- Para controlar periodos de tiempo. -Convertidores A/D y D/A. (Analógico/Digital y Digital/Analógico) -Comparadores analógicos -Moduladores de anchura de impulsos. -Puertos de comunicación.- Tanto serie como paralelo. -Control de interrupciones Debido a que los microcontroladores sólo incluyen las características específicas para una tarea, su coste es relativamente bajo. Un microcontrolador típico realiza funciones de manipulación de instrucciones, posee E/S de accesos fáciles y directos, y un proceso de interrupciones rápido y eficiente. Además también reducen de manera notable los costes de diseño. Hay gran variedad de microcontroladores. Dependiendo de la potencia y características que se necesiten, se pueden elegir microcontroladores de 4, 8, 16 ó 32 bits. Además existen versiones especializadas que incluyen módulos especiales para comunicaciones, teclados, procesamiento de señales, procesamiento de video, y otras tareas. Santiago Salamanca Miño 2 Escuela de Ingenierías Industriales David Arroyo Muñoz Universidad de Extremadura
  • 9. Microcontroladores PIC de la Gama Media. 1. Introducción a los Microcontroladores 1.2 Aplicaciones El mercado de los microcontroladores está creciendo cada año y parece no tener barreras. Los microcontroladores a menudo se encuentran en aplicaciones domésticas ( microondas, refrigeradores, televisión, equipos de música), ordenadores con sus componentes (impresoras, módems, lectores de discos), coches (ingeniería de control, diagnostico, control de climatización), control medioambiental (invernaderos, fabricas, casas), instrumentación, aeronáutica, y miles de usos más. En muchos podemos encontrar más de un microcontrolador. Los microcontroladores son muy usados en robótica, donde la comunicación entre controladores es una gran ventaja. Esto hace posible muchas tareas específicas al distribuir un gran número de microcontroladores por todo el sistema. La comunicación entre cada microcontrolador y uno central permitiría procesar la información por un ordenador central, o transmitirlo a otros microcontroladores del sistema. Otro ejemplo de aplicación de los microcontroladores, es la de utilizarlos para monitorizar y gravar parámetros medioambientales (temperatura, humedad, precipitaciones, etc.). Pequeño tamaño, bajo consumo de potencia, y flexibilidad hacen de este dispositivo ideal para este tipo de aplicaciones. 1.3 Los microcontroladores PIC (Microchip) Los microcontroladores PIC fueron los primeros microcontroladores RISC, es decir, microcontroladores con un juego de instrucciones reducido. El hecho de ser procesadores de tipo RISC generalmente implica simplicidad en los diseños, permitiendo más características a bajo coste. Los principales beneficios de esta simplicidad en el diseño son que los microcontroladores se implementan en chip muy pequeños, con pocos pines, y tienen un consumo de potencia muy bajo. Santiago Salamanca Miño 3 Escuela de Ingenierías Industriales David Arroyo Muñoz Universidad de Extremadura
  • 10. Microcontroladores PIC de la Gama Media. 1. Introducción a los Microcontroladores Los microcontroladores PIC ganaron popularidad rápidamente. Aparecían con frecuencia en revistas de ocio, y su uso era cada vez mayor en gran número de diseños. Debido a su bajo costo, pequeño tamaño, y bajo consumo, estos microcontroladores pueden ahora ser usados en áreas en las que previamente no habrían sido apropiados (tal como circuitos lógicos). Las principales características de los PIC son: -Arquitectura Harvard.- Consiste en la existencia de dos memorias independientes, una de datos y otra de instrucciones, con sus respectivos buses. Esto permite el acceso simultaneo al programa y los datos, y solapar algunas operaciones para mejorar el proceso. -Segmentación de instrucciones.- Consiste en dividir la ejecución de las instrucciones en varias fases, en el caso concreto de los PIC dos fases, de manera que se realizan simultáneamente distintas fases de distintas instrucciones. Así cada instrucción se ejecuta en un ciclo de instrucción (4 ciclos de reloj), excepto las de salto que ocupan tantos ciclos de instrucción como necesite para calcular la dirección de salto. -Formato de instrucciones de longitud constante.- Permite optimizar la memoria de instrucciones y el diseño de ensambladores y compiladores. -RISC (computador de reducido juego de instrucciones) -Instrucciones ortogonales.- Todas las instrucciones pueden manejar cualquier elemento de la arquitectura como fuente o destino. -Arquitectura basada en un banco de registros.- Todos los objetos del sistema se encuentran implementados físicamente como registros. -Gran variedad de microcontroladores y muchas herramientas de soporte. Santiago Salamanca Miño 4 Escuela de Ingenierías Industriales David Arroyo Muñoz Universidad de Extremadura
  • 11. Microcontroladores PIC de la Gama Media. 1. Introducción a los Microcontroladores 1.4 Las gamas de los PIC La forma de designación de los PIC en general obedece a la siguiente estructura: PIC nn LLL xxx Siendo : 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. En la tabla 1.1 se puede ver las distintas opciones que se pueden dar. TABLA 1.1 Nomenclatura de los PIC. LETRAS ALIMENTACIÓN MEMORIA C Standard (4.5-6.0 V) EPROM CR Standard (4.5-6.0 V) ROM F Standard (4.5-6.0 V) FLASH LC Extendida (2.5-6.0 V) EPROM LCR Extendida (2.5-6.0 V) ROM LF Extendida (2.0-6.0 V) FLASH xxx – número que indica el modelo. Los PIC se clasifican en distintas gamas atendiendo a los recursos disponibles en cada uno de ellos. Las gamas son: a) Gama Enana (PIC12Cxxx): La principal característica es que son muy pequeños, con encapsulados de 8 pines, y un juego de 33 instrucciones de 12 bits. b) Gama Baja (PIC16C5xx): Los encapsulados son de 18, 20 ó 28 pines. Al igual que en los anteriores el número de instrucciones es de 33 con un ancho de 12 bits. La memoria de programa es de 512 palabras, 1K ó 2K, y la de datos está comprendida entre 25 y 73 bytes. No permite interrupciones. Santiago Salamanca Miño 5 Escuela de Ingenierías Industriales David Arroyo Muñoz Universidad de Extremadura
  • 12. Microcontroladores PIC de la Gama Media. 1. Introducción a los Microcontroladores c) Gama Media (PIC16Cxxx): Es la gama más variada y completa de los PIC, con encapsulados desde 18 a 68 pines. Tiene un conjunto de 35 instrucciones de 14 bits de ancho. Permite además características importantes que no soportaban los anteriores como son: - Interrupciones - Pila de 8 niveles que permite anidamiento de subrutinas. Esta familia a su vez se puede dividir en subfamilias en función de los recursos de que se dispongan. d) Gama Alta (PIC17Cxxx): Tienen unas características muy diferentes a las anteriores, ya que son microcontroladores de arquitectura abierta, es decir, que sacan sus buses al exterior. El número de instrucciones es de 58 con una anchura de 16 bits. Tienen instrucciones vectorizadas. e) Gama Mejorada (PIC18Cxxx): Es la última gama que ha salido. Tiene memoria de programa de hasta 1M palabras. La mayoría de las instrucciones son de 16 bits, aunque las hay también de 32 bits. El número total de instrucciones es de 76. Esta gama está diseñada para aplicaciones de control. Todos ellos tienen convertidores A/D y, por ejemplo, están en fase de desarrollo algunos modelos que tienen interface para el bus CAN. 1.5 Los PIC de la gama media. A lo largo de este proyecto sólo se hablará de los PIC de la Gama Media, siendo esta la más variada y completa. En la tabla 1.2 se muestran las características que definen a cada modelo de los PIC de la Gama Media. Aparecen sólo los más significantes, ya que la variedad es muy amplia. Santiago Salamanca Miño 6 Escuela de Ingenierías Industriales David Arroyo Muñoz Universidad de Extremadura
  • 13. Microcontroladores PIC de la Gama Media. 1. Introducción a los Microcontroladores TABLA 1.2 Principales características de los PIC de la Gama Media. Reloj Memoria Periféricos Características Memoria de programa Cápsulas Detector de fallo en VDD “Brown-out” Máxima frecuencia de trabajo Tensión interna de referencia Módulos de temporización EEPROM de datos (bytes) Convertidor A/D de 8 bits Rango de voltaje (voltios) Memoria de datos (bytes) Fuentes de interrupción Puerto Paralelo Comparadores Patillas de E/S Módulos CCP Puertos serie Pines PLCC Pines QFP Pines DIP EEROM EPROM 3,0- PIC16C61 20 1K --- 36 --- TMR0 -- --- -- -- -- -- 3 13 --- 18 18 -- 6,0 TMR0,TMR1 2,5- PIC16C62 20 2K --- 128 --- 2 SPI/I2C/SCI -- -- -- -- 10 22 --- 28 28 -- ,TMR2 6,0 TMR0,TMR1 3,0- PIC16C63 20 4K --- 192 --- 2 SPI/I2C/SCI --- -- -- -- 10 22 --- 28 28 -- ,TMR2 6,0 TMR0,TMR1 3,0- PIC16C64 20 2K --- 128 --- 1 SPI/I2C Si -- -- -- 8 33 --- 40 44 44 ,TMR2 6,0 TMR0,TMR1 3,0- PIC16C65 20 4K --- 192 --- 2 SPI/I2C/SCI Si -- -- -- 11 33 --- 40 44 44 ,TMR2 6,0 3,0- PIC16C620 20 512 --- 80 --- TMR0 -- ---- -- -- 2 Si 4 13 Si 18 18 20 6,0 3,0- PIC16C621 20 1K --- 80 --- TMR0 -- ---- -- -- 2 Si 4 13 Si 18 18 20 6,0 3,0- PIC16C622 20 2K --- 128 --- TMR0 -- ---- -- -- 2 Si 4 13 Si 18 18 20 6,0 3,0- PIC16C71 20 1K --- 36 --- TMR0 -- ---- -- 4ch -- -- 4 13 --- 18 18 -- 6,0 TMR0,TMR1 3,0- PIC16C73 20 4K --- 192 --- 2 SPI/I2C/SCI -- 5ch -- -- 11 22 --- 28 28 -- ,TMR2 6,0 TMR0,TMR1 3,0- PIC16C74 20 4K --- 192 --- 2 SPI/I2C/SCI Si 8ch -- -- 12 33 --- 40 44 44 ,TMR2 6,0 TMR0,TMR1 2,5- PIC16C76 20 8K --- 368 --- 2 SPI/I2C/SCI -- 5ch -- -- 11 22 Si 28 28 -- ,TMR2 6,0 3,0- PIC16C84 20 -- 1K 36 64 TMR0 -- ---- -- -- -- -- 4 13 --- 18 18 -- 6,0 A continuación en la figura 1.1 se muestran algunos de los encapsulados utilizados en los PIC de la Gama Media. Como ya se ha dicho anteriormente, éstos van desde los 18 a 68 pines. Santiago Salamanca Miño 7 Escuela de Ingenierías Industriales David Arroyo Muñoz Universidad de Extremadura
  • 14. Microcontroladores PIC de la Gama Media. 1. Introducción a los Microcontroladores Figura 1.1 Principales diagramas de patillas. La descripción de las funciones de las distintas patillas del microcontrolador son: RA0/AN0-RA2/AN2: Líneas de E/S digitales del Puerto A, o entradas analógicas. RA3/AN3/VREF: E/S digital, analógica o entrada externa de VREF. RA4/T0CKI: E/S digital o entrada de reloj externo para TMR0. RA5/AN4/ SS : E/S digital, analógica o selección del puerto síncrono. RB0/INT-RB7: E/S digitales del Puerto B. RB0/INT puede actuar como entrada de interrupción externa. RB4-Rb7 pueden provocar una interrupción cuando cambian de estado. RC0/T1OSO/T1CKI: E/S digital del Puerto C. Conexión del oscilador externo para el temporizador TMR1 o entrada de reloj para el TMR1. Santiago Salamanca Miño 8 Escuela de Ingenierías Industriales David Arroyo Muñoz Universidad de Extremadura
  • 15. Microcontroladores PIC de la Gama Media. 1. Introducción a los Microcontroladores RC1/T1OSI/CCP2: E/S digital. Conexión del oscilador externo para el TMR1 o salida del módulo 2 de captura/comparación. RC2/CCP1: E/S digital. Salida del módulo 1 de captura/comparación. RC3/SCK/SCL: E/S digital. E/S de reloj para el Puerto Serie Síncrono (SSP) en los módulos SPI o I2C. RC4/SDI/SDA: E/S digital. Entrada de datos serie en el modo SPI. E/S de datos serie en el modo I2C. RC5/SDO: E/S digital. Salida de datos serie en el modo SPI. RC6/TX/CK: E/S digital. Transmisión serie asíncrona. Entrada de reloj para comunicación serie síncrona. RC7/RX/DT: E/S digital. Recepción serie asíncrona. Línea de datos en la comunicación serie síncrona. RD0/PSP0-RD7/PSP7: E/S digitales del Puerto D. Este puerto puede trabajar como puerto paralelo esclavo para interconexión con un bus de datos de 8 bits de otro microprocesador. RE0/ RD /AN5: E/S digital del Puerto E. Señal de lectura del puerto paralelo esclavo. Entrada analógica. RE1/ WR /AN6: E/S digital. Señal de escritura del puerto paralelo esclavo. Entrada analógica. RE2/ CS /AN7: E/S digital. Señal de activación del puerto paralelo esclavo. Entrada analógica. Santiago Salamanca Miño 9 Escuela de Ingenierías Industriales David Arroyo Muñoz Universidad de Extremadura
  • 16.
  • 17. Microcontroladores PIC de la Gama Media. 2. La Arquitectura de los PIC de la Gama Media Capítulo 2. La Arquitectura de los PIC de la Gama Media. 2.1 Introducción Desde el punto de vista de la arquitectura, la característica más importante de los PIC es que utilizan la Harvard, frente a la Von Neumann que es la habitual. La arquitectura Harvard tiene la memoria de programa y la memoria de datos separadas y se accede a ellas mediante buses distintos. Esto mejora el ancho de banda sobre la tradicional arquitectura secuencial, en la cual los programas y datos son buscados en la misma memoria, utilizando el mismo bus. En la arquitectura Harvard mientras se accede a la memoria de programa, sobre la memoria de datos se puede estar leyendo o escribiendo, lo que permite ejecutar una instrucción a la vez que se busca la siguiente. En la figura 2.1 se muestra el esquema de la arquitectura general de los PIC de la Gama Media. Además de las características antes mencionadas, otras características que poseen los PIC de la Gama Media son: a) Memoria no volátil de programa de hasta 8K x 14 de tamaño, direccionada por el contador de programa (PC) de 13 bits. b) Memoria RAM de datos de hasta 368 x 8 de tamaño, direccionada por el código de operación o por el registro FSR y parte del registro STATUS. c) Unidad aritmético-lógica de 8 bits con un registro acumulador de trabajo asociado también de 8 bits. Realiza operaciones aritméticas y lógicas utilizando siempre como operando el registro acumulador y otro dato perteneciente a cualquier registro. Realiza operaciones de suma, resta y desplazamiento. Opera en complemento a 2 (C’2). Dependiendo del resultado, afecta a algunos bits del registro de estado. Santiago Salamanca Miño 11 Escuela de Ingenierías Industriales David Arroyo Muñoz Universidad de Extremadura
  • 18. Microcontroladores PIC de la Gama Media. 2. La Arquitectura de los PIC de la Gama Media Figura 2.1 Diagrama de bloques general de los PIC de la gama media. Nota 1: Los bits de mayor orden en el direccionamiento directo de la RAM se obtienen del Registro de Estado. 2: No todos los dispositivos tienen estas características, habrá que consultar las hojas de características. 3: Muchos de los pines de las puertas E/S de propósito general están multiplexadas con una o más funciones de los módulos periféricos. La combinación de las funciones multiplexadas dependen del dispositivo. Santiago Salamanca Miño 12 Escuela de Ingenierías Industriales David Arroyo Muñoz Universidad de Extremadura
  • 19. Microcontroladores PIC de la Gama Media. 2. La Arquitectura de los PIC de la Gama Media d) Oscilador encargado de las generaciones de tiempo del sistema. e) Circuitos controladores del RESET. f) Puertos E/S. Existen hasta 7 puertos de E/S, aunque no existe ningún dispositivo que los implemente todos. Además se multiplexan con distintos elementos del sistema. g) Módulos periféricos. Son la característica que diferencia a los distintos microcontroladores. Éstos facilitan la comunicación con el mundo exterior, tal como las E/S de propósito general, y tareas internas tal como puede ser la generación de las distintas bases de tiempo. Los periféricos sobre los que se está hablando son; E/S de propósito general, hasta tres temporizadores, módulo de captura, comparación, y PWM (CCP), puerto serie síncrono (SSP), USART (SCI), módulo para generación de voltajes de referencia, módulos comparadores analógicos, conversores analógico digital (A/D), módulo para control de Display de cristal líquido (LCD) y puerto paralelo esclavo (PSP). h) Registros generales del sistema. 2.2 Organización de la memoria. La memoria de los PIC está dividida en dos bloques; la memoria de programa y la memoria de datos. Cada uno de los bloques tiene su propio bus, pudiendo tener acceso a ambos bloques de memoria en el mismo ciclo de reloj. 2.2.1 Organización de la memoria de programa. En los PIC de la gama media el contador de programa es de 13 bits, con lo que se puede direccionar una capacidad de memoria de 8K x 14 bits. El ancho de la memoria de programa va a ser la longitud de una instrucción que es de 14 bits, por lo se podrán almacenar hasta 8K instrucciones. De esta forma es fácil determinar si el dispositivo tiene suficiente memoria de programa para una aplicación deseada. Santiago Salamanca Miño 13 Escuela de Ingenierías Industriales David Arroyo Muñoz Universidad de Extremadura
  • 20. Microcontroladores PIC de la Gama Media. 2. La Arquitectura de los PIC de la Gama Media Esta memoria de programa a su vez está dividida en cuatro páginas de 2K palabras cada una (0h – 7FFh, 800h – FFFh, 1000h – 17FFh, y 1800h – 1FFFh). En la figura 2.2 se muestra el mapa de memoria con la pila de 8 niveles. No todos los dispositivos tienen implementados estos cuatro bancos. Figura 2.2 Organización de la memoria de programa y la pila. Para realizar los saltos entre las páginas de la memoria de programa se utilizan los dos bits más altos del contador de programa (PC <11:12>), los cuales son implementados físicamente en la memoria de datos en el registro PCLATCH <4:3>. Si el programa se ejecuta secuencialmente no es necesario modificarlo. Dentro de la memoria de programa existen dos direcciones reservadas: 1. Vector de Reset .- En un dispositivo, un reset pone el contador de programa (PC) a cero. A esta dirección se la denomina “Dirección del Vector de Reset”, donde Santiago Salamanca Miño 14 Escuela de Ingenierías Industriales David Arroyo Muñoz Universidad de Extremadura
  • 21. Microcontroladores PIC de la Gama Media. 2. La Arquitectura de los PIC de la Gama Media está la dirección de inicio para la ejecución del programa. Cualquier reset borrará también el contenido del registro PCLATH, de modo que cuando se produzca un reset la dirección inicial a de estar localizada en la página 0 de la memoria de programa. 2. Vector de Interrupción .- Cuando una interrupción es reconocida el PC es forzado a la dirección 0004h. A esto es a lo que se le llama “Dirección del Vector de Interrupción”. Cuando el PC es forzado con la dirección del vector de interrupción, el PCLATH no es modificado. Por eso mismo en la dirección del vector de interrupción, el registro PCLATH debería ser escrito con el valor que especificará la localización deseada en la memoria de programa. Antes de realizar esta operación, el PCLATH debería ser salvado para volverlo a restaurar al terminar el tratamiento de la rutina de interrupción. El contador de programa (PC) es un registro que especifica la dirección de la instrucción que ha de ser ejecutada. El PC tiene un ancho de 13 bits, correspondiendo el byte más bajo con el registro de lectura-escritura PCL, implementado en la memoria de datos, y el byte más alto con el registro PCH. Este último contiene sólo los bits <12:8> del PC y no se puede leer ni escribir directamente, sino que son cargados a través del PCLATH. Existen varias instrucciones que modifican el flujo normal del sistema, y por tanto afectan al PC. Estas instrucciones son: 1. Instrucciones de salto relativo: Son aquellas instrucciones que usan como operando destino al PC. En estas instrucciones se cargan los 8 bits menos significativos desde la UAL. El resto de los bits que coinciden con los del PCLATH, habría que modificarlos manualmente. 2. Instrucción GOTO de salto incondicional: Carga desde el código de operación los 11 bits menos significativos. Los dos que quedan se cargan desde el PCLATH <4:3>. Si se hace un GOTO a una dirección que está en una página distinta, primero hay que modificar estos bits del PCLATH. Santiago Salamanca Miño 15 Escuela de Ingenierías Industriales David Arroyo Muñoz Universidad de Extremadura
  • 22. Microcontroladores PIC de la Gama Media. 2. La Arquitectura de los PIC de la Gama Media 3. Instrucción CALL de salto a subrutina: Es igual que la anterior con la diferencia de que antes de modificar el PC, el valor que tuviese se lleva a la pila. 4. Instrucciones RETURN, RETLW y RETFIE de retornos de subrutinas y rutinas de tratamiento de interrupción: Cargan directamente en el PC el valor que se halla guardado anteriormente en la pila. No es necesario modificar el PCLATH. Los PIC de la Gama Media poseen una pila de 8 niveles con un ancho de 13 bits, la cual nos permite guardar las direcciones de retorno a un programa, cuando en éste se produce un salto a una subrutina. Esto nos da capacidad para anidar hasta 8 subrutinas producidas por programa o mediante interrupciones. Si en la pila ya se han almacenado 8 valores, el nuevo valor se cargará sobre el primer nivel de la pila, de modo que puede dar problemas en el funcionamiento de un programa. 2.2.2 Organización de la memoria de datos. La memoria de datos (figura 2.3) está dividida en dos partes: a) Memoria de registros especiales (FSR Memory): Está formada por aquellos registros que son usados por la CPU y los periféricos para controlar una operación. b) Memoria de propósito general: Está formada por la memoria que puede usar el programador. En ambos casos, está dividida hasta en 4 bancos de memoria de hasta 128 bytes, aunque muchos de los modelos no traen implementados estos dos últimos bancos. En algunos modelos de PIC la memoria de propósito general, está sólo implementado físicamente en el banco0, estando el resto de los bancos mapeados en éste. Santiago Salamanca Miño 16 Escuela de Ingenierías Industriales David Arroyo Muñoz Universidad de Extremadura
  • 23. Microcontroladores PIC de la Gama Media. 2. La Arquitectura de los PIC de la Gama Media Figura 2.3 Organización de la memoria de datos. Nota 1: Los registros en negrita están presentes en todos los dispositivos. 2: Puede que no todas las posiciones estén implementadas. Las localizaciones no implementadas se leen como ‘0’. Santiago Salamanca Miño 17 Escuela de Ingenierías Industriales David Arroyo Muñoz Universidad de Extremadura
  • 24. Microcontroladores PIC de la Gama Media. 2. La Arquitectura de los PIC de la Gama Media El modo de acceso a cada uno de los bancos dependerá del tipo de direccionamiento que se use. Estos tipos de direccionamiento son: 1. Direccionamiento directo: La dirección final se obtiene con: a. Los bits RP1-RP0 del registro de estado (STATUS), los cuales seleccionan el banco de memoria. b. Los 7 bits del código de operación, los cuales indican la posición del dato dentro del banco. 2. Direccionamiento indirecto: Con este tipo de direccionamiento lo que se da es la dirección donde se encuentra la dirección del dato. Para ello se usa el registro INDF. Al usar este registro (que no está implementado físicamente), lo que se hace es acceder al registro de datos FSR de 8 bits. Los 7 bits con menos peso del FSR seleccionan la posición dentro del banco, y el bit de mayor peso junto con el bit IRP del registro de estado, seleccionan el banco. Un programa que borra una zona de memoria puede ser un ejemplo de aplicación de direccionamiento indirecto. El programa sería como el siguiente: BCF STATUS,IRP ; Selección del banco 0 de memoria. MOVLW 0X20 ; Mueve el valor 20h al registro W MOVWF FSR ; Carga valor de W en FSR SIGUIENTE CLRF INDF ; Borra la posición de memoria que marca FSR INCF FSR,1 ; Incrementa valor del FSR BTFSS FSR,4 ; Test del bit 4 del FSR, si es 1, no ejecuta la ; siguiente instrucción y salta. GOTO SIGUIENTE ; Vuelve a SIGUIENTE. … … Este programa ejemplo borraría la memoria de datos desde la posición h’20’ hasta h’2F’. Santiago Salamanca Miño 18 Escuela de Ingenierías Industriales David Arroyo Muñoz Universidad de Extremadura
  • 25. Microcontroladores PIC de la Gama Media. 2. La Arquitectura de los PIC de la Gama Media 2.2.3 Registros y recursos comunes. 2.2.3.1 Registro de Estado. Es un registro formado por 8 bits, que contiene el estado de la UAL, del RESET y selecciona el banco de la memoria de datos sobre la que queremos trabajar.. Por esta última causa, el registro de estado se encuentra en todos los bancos, y en la misma posición. R/W-0 R/W-0 R/W-0 R-1 R-1 R/W-x R/W-x R/W-x IRP RP1 RP0 TO PD Z DC C bit7 bit0 A continuación se muestra la función de cada bit del registro de estado. bit 7 IRP: Selección de bancos para el direccionamiento indirecto. 1 = Banco 2,3 (100h – 1FFh) 0 = Banco 0,1 (00h – FFh) bit 6:5 RP1:RP0: Selección del banco de la memoria de datos para el direccionamiento directo. 11 = Banco 3 (180h – 1FFh) 10 = Banco 2 (100h – 17Fh) 01 = Banco 1 (80h – FFh) 00 = Banco 0 (00h – 7Fh) bit 4 TO : Timer Out. 1 = Tras conectar Vdd o ejecutar “CLRWDT” o “SLEEP”. 0 = Al rebasar el WDT bit 3 PD : Power Down 1 = Tras conectar Vdd o ejecutar “CLRWDT”. 0 = Al ejecutar la instrucción “SLEEP". bit 2 Z: Bit de cero. 1 = El resultado de una operación es 0. 0 = El resultado es distinto de 0. bit 1 DC: Acarreo en el 4º bit de menos peso. 1 = Acarreo en la suma y no en la resta. 0 = Acarreo en la suma y no en la resta. bit 0 C: Acarreo en el 8º bit. 1 = Acarreo en la suma y no en la resta. 0 = Acarreo en la suma y no en la resta. Estos dos últimos bits, en la suma representan lo que se conoce comúnmente con acarreo, sin embargo en la resta realizan la función de bit de signo (bit de Borrow ), indicando que el resultado es negativo si Borrow es 0, y mayor o igual a 0 si es 1. Santiago Salamanca Miño 19 Escuela de Ingenierías Industriales David Arroyo Muñoz Universidad de Extremadura
  • 26. Microcontroladores PIC de la Gama Media. 2. La Arquitectura de los PIC de la Gama Media 2.2.3.2 Registro de Opciones. El registro de opciones es un registro de lectura-escritura, que contiene los bits de configuración del divisor de frecuencia del TMR0/WDT, de las interrupciones externas, del TMR0, y la configuración de las Puerta B con cargas Pull-Up. R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 RBPU INTEDG T0CS T0SE PSA PS2 PS1 PS0 bit7 bit0 bit 7 RBPU : Conexión de cargas Pull-Up para la Puerta B. 1 = Todas las cargas Pull-Up desconectadas. 0 = Todas las cargas Pull-Up conectadas. bit 6 INTEDG: Tipo de flanco para la interrupción. 1 = RB0/INT sensible a flanco ascendente. 0 = RB0/INT sensible a flanco descendente. bit 5 T0CS: Fuente de reloj para el TMR0. 1 = Pulsos introducidos por T0CKI (contador). 0 = Pulsos de reloj interno Fosc/4 (temporizador). bit 4 T0SE: Tipo de flanco activo del T0CKI. 1 = Incremento del TMR0 cada flanco descendente. 0 = Incremento del TMR0 cada flanco ascendente. bit 3 PSA: Asignación del divisor de frecuencia. 1 = Se le asigna al WDT. 0 = Se le asigna al TMR0. bit 2-0 PS2:PS0: Valor del divisor de frecuencia. Valor División del TMR0 División del WDT 000 1:2 1:1 001 1:4 1:2 010 1:8 1:4 011 1:16 1:8 100 1:32 1:16 101 1:64 1:32 110 1:128 1:64 111 1:256 1:128 Para conseguir asignar 1:1 al divisor de frecuencia en el TMR0, se le asigna el divisor al WDT. Santiago Salamanca Miño 20 Escuela de Ingenierías Industriales David Arroyo Muñoz Universidad de Extremadura
  • 27. Microcontroladores PIC de la Gama Media. 2. La Arquitectura de los PIC de la Gama Media 2.2.3.3 Palabra de configuración. La Palabra de Configuración está formada por 14 bits. Se utiliza para la selección de distintos aspectos de la configuración del dispositivo según las necesidades de la aplicación. Su localización en la memoria de programa es la 2007h. Esta posición no es accesible durante el modo de funcionamiento normal, por lo que estos registros deberán ser configurados en la fase de programación. CP1 CP0 CP1 CP0 CP1 CP0 - BODEN CP1 CP0 PWRTE WDTE FOSC1 FOSC0 bit13 bit0 bit 13-8 CP<1:0>: Bits de protección de código. 5-4: 512 1k 2k 11 Off Off Off 10 Off Off ½ alta On 01 Off ½ alta On ¾ alta On 00 On On On bit 7 No implementado: Su lectura es 1. bit 6 BODEN: Detección del “Brown-Out” (Fallo de alimentación) 1 = detección activada. 0 = Detección desactivada. bit 3 PWRTE : Activación del temporizador “Power-Up” 1 = Desactivado. 0 = Activado. bit 2 WDTE: Activación del “Watchdog” (perro guardián) 1 = Activado 0 = Desactivado. bit 1-0 FOSC1-FOSC0: Selección del tipo de oscilador. 11 = Oscilador RC. 10 = Oscilador HS 01 = Oscilador XT 00 = Oscilador LP Santiago Salamanca Miño 21 Escuela de Ingenierías Industriales David Arroyo Muñoz Universidad de Extremadura
  • 28. Microcontroladores PIC de la Gama Media. 2. La Arquitectura de los PIC de la Gama Media 2.3 Oscilador. El circuito de oscilación se utiliza para generar las señales de reloj en el sistema necesarias para la ejecución de instrucciones y para el funcionamiento de los periféricos. Existen hasta ocho tipos de osciladores. Los distintos tipos permiten mayor flexibilidad del dispositivo según las necesidades, así los hay de muy bajo coste, como las redes RC, y otros de bajo consumo como son los cristales de cuarzo del modo LP. La configuración de un oscilador u otro se realiza mediante los bits FOSC2, FOSC1 Y FOSC0 de la palabra de configuración. No todos los modelos poseen la posibilidad de configurar cualquier tipo de oscilador, en estos casos sólo tienen los bit FOSC1 Y FOSC0 en la palabra de configuración. Los valores de estos bits para la configuración de los distintos osciladores son los que se pueden ver en las tablas 2.1 y 2.2. TABLA 2.1 Selección del modo de oscilación con FOSC1:FOSC0. Bits de Modo Ganancia de los configuración Comentarios OSC inversores internos FOSC1:FOSC0 Solución más barata (sólo requiere una resistencia y un condensador). Máxima variación del tiempo 11 RC − base. Modo del dispositivo por defecto Cristal de cuarzo para aplicaciones de alta 10 HS Ganancia alta frecuencia. Es el modo que más potencia consume de los tres cristales. Cristal de cuarzo para un rango de frecuencias 01 XT Ganancia media estándar. Cristal de cuarzo para aplicaciones de baja 00 LP Ganancia baja frecuencia. Es el modo que menos potencia consume de los tres cristales. Santiago Salamanca Miño 22 Escuela de Ingenierías Industriales David Arroyo Muñoz Universidad de Extremadura
  • 29. Microcontroladores PIC de la Gama Media. 2. La Arquitectura de los PIC de la Gama Media TABLA 2.2 Selección del modo de oscilación con FOSC2:FOSC0. Ganancia de Bits de Modo los configuración Comentarios OSC inversores FOSC2:FOSC0 internos Red RC externa sacando la señal de oscilación por la EXTRC con 111 − patilla CLKOUT. Solución barata. Máxima variación CLKOUT en el tiempo base. Modo del dispositivo por defecto Red RC externa. Barata solución. Máxima variación 110 EXTRC − en el tiempo base. La señal de oscilación no sale al exterior. Red RC interna sacando la señal de oscilación por la INTRC con 101 − patilla CLKOUT. Es la solución más barata. CLKOUT Oscilador de 4MHz. Red RC interna. La señal de oscilación no sale al 100 INTRC − exterior. Solución más barata. Oscilador de 4MHz. 011 − − Reservado Cristal de cuarzo para aplicaciones de alta frecuencia. 10 HS Ganancia alta Es el modo que más potencia consume de los tres cristales. Ganancia Cristal de cuarzo para un rango de frecuencias 01 XT media estándar. Cristal de cuarzo para aplicaciones de baja frecuencia. Ganancia 00 LP Es el modo que menos potencia consume de los tres baja cristales. La diferencia entre los tres últimos viene dada por la ganancia de los inversores internos, que son los que modifican la frecuencia. En general siempre se opta por la opción con menor ganancia posible que cumpla las especificaciones. Esto implicará menores corrientes y con ello menor consumo de potencia. En la figura 2.4 se ve el modo de conexión para resonadores de cristal o de cuarzo. En este caso se conectan a las patillas OSC1 y OSC2, usando esta última como realimentación. Santiago Salamanca Miño 23 Escuela de Ingenierías Industriales David Arroyo Muñoz Universidad de Extremadura
  • 30. Microcontroladores PIC de la Gama Media. 2. La Arquitectura de los PIC de la Gama Media Figura 2.4 Operación de osciladores en los modos HS, XT o LP. Nota 1: La resistencia en serie, RS, es necesaria para cristales de alta tecnología. 2: La resistencia de realimentación, RF, varía entre 2 y 10 MΩ. 3: Dependiendo del dispositivo, el buffer de la lógica interna puede estar tanto antes como después del inversor. Para una red RC el modo de conexión utilizará únicamente la patilla OSC1. La frecuencia de oscilación dependerá de VDD, REXT y de CEXT (figura 2.5). El fabricante recomienda que REXT tenga un valor de entre 3KΩ y 100KΩ y que CEXT sea mayor de 20pF. Además la frecuencia del oscilador/4 se obtiene a través de la patilla OSC2, en caso de que esté configurada en los modos EXTRC o INTRC con CLKOUT, se puede usar para sincronización de otras lógicas. Figura 2.5 Operación en modo RC. Nota 1: Esta patilla también puede ser configurada como una E/S de propósito general. Santiago Salamanca Miño 24 Escuela de Ingenierías Industriales David Arroyo Muñoz Universidad de Extremadura
  • 31. Microcontroladores PIC de la Gama Media. 2. La Arquitectura de los PIC de la Gama Media Como un dispositivo incrementa su voltaje de alimentación desde 0 hasta VDD, el oscilador tardará un tiempo en funcionar correctamente. Este tiempo de comienzo o Start-Up depende de muchos factores: a) Para los osciladores RC depende del valor de la resistencia y condensador usado, tiempo de subida de VDD, y temperatura del sistema. b) Para los osciladores de cristales los factores que intervienen son la frecuencia del cristal, los valores de la resistencia en serie, RS y de los condensadores C1 y C2, el tiempo de subida de VDD, la temperatura del sistema, la selección del modo de oscilador, la composición del circuito oscilador, y el ruido del sistema. En la figura 2.6 se muestra un ejemplo de Start–Up. Se puede ver que la señal de oscilación está centrada en VDD/2, siendo el valor pico a pico durante el arranque del oscilador bastante bajo (menos del 50% de VDD). Figura 2.6 Característica Start-Up de un oscilador. Siempre que se quiera grabar un PIC es necesario consultar las hojas de características para la configuración del oscilador. Santiago Salamanca Miño 25 Escuela de Ingenierías Industriales David Arroyo Muñoz Universidad de Extremadura
  • 32. Microcontroladores PIC de la Gama Media. 2. La Arquitectura de los PIC de la Gama Media 2.4 Reset La función del reset es la de dejar al sistema en un estado conocido. Existen varias fuentes de RESET: a) Power On Reset (POR). b) Activación de MCLR durante funcionamiento normal. c) Activación de MCLR en el modo de reposo d) Desbordamiento del WDT durante funcionamiento normal. e) Reset de Brown-Out (BOR). f) Reset por error de paridad (PER). La figura 2.7 se muestra un bloque simplificado de la lógica que gobierna el reset del sistema, para un caso general. En esta figura se puede ver una zona denominada OST/PWRT, que consiste en: a) Power-up Timer (PWRT): Es un temporizador que proporciona un retardo de 72ms a partir de un reset de tipo POR o BOR, de tal forma que el PIC se mantiene reseteado durante este tiempo, así al finalizar la temporización la tensión de alimentación tendrá un valor aceptable. Este temporizador se habilita mediante el bit PWRT de la palabra de configuración. Para generar este retardo existe un circuito interno RC dedicado. b) Oscillator Start-Up Timer (OST): Este oscilador proporciona un retardo de 1024 veces el periodo de oscilación (desde OSC1) después del retardo PWRT. De esta forma se asegura que el oscilador cristal o cerámico es estable cuando el PIC empieza a funcionar. Este retardo sólo funciona cuando el PIC se ha configurado para usar un oscilador XT, HS o LP y el reset es tipo POR, BOR o de wake-up desde el modo de reposo (sleep). Santiago Salamanca Miño 26 Escuela de Ingenierías Industriales David Arroyo Muñoz Universidad de Extremadura
  • 33. Microcontroladores PIC de la Gama Media. 2. La Arquitectura de los PIC de la Gama Media Figura 2.7 Lógica que gobierna el Reset de un sistema. Nota 1: Este es un oscilador distinto al oscilador del pin CLKIN o al oscilador interno INTRC. 2: Las características que están encerrados en cuadros no están disponibles en todos los modelos, ver hoja de características del dispositivo. 3: En algunos modelos, este pin puede estar configurado como entrada de propósito general. 4: En los primeros microcontroladores PIC tenían la configuración de modo que para PWRTE =1 estuviera habilitado, mientras que el resto de los modelos, la configuración estaba definida para PWRTE =0. A continuación (tabla 2.3) se muestran los distintos retardos para las posibles situaciones en las que se puede ver el sistema. TABLA 2.3 Retardos típicos según las situaciones. CONFIGURACIÓN TIEMPO DE POWER-UP BROWN-OUT WAKE-UP DEL OSCILADOR RESET DESDE SLEEP Habilitado Deshabilitado XT, HS, LP 72 ms + 1024TOSC 1024TOSC 72 ms + 1024TOSC 1024TOSC RC 72 ms ⎯ (1) 72 ms ⎯(1) Nota 1: Dispositivos con oscilador Interno/Externo RC tienen un retardo de 250µs. Santiago Salamanca Miño 27 Escuela de Ingenierías Industriales David Arroyo Muñoz Universidad de Extremadura
  • 34. Microcontroladores PIC de la Gama Media. 2. La Arquitectura de los PIC de la Gama Media El Power-on Reset consiste en la activación del reset cuando se detecta la conexión de la alimentación al dispositivo. Dos topologías para el circuito de POR se pueden ver en la figura 2.8, siendo la primera para el caso general y la segunda para el caso en que VDD crezca de forma lenta. Nota 1: La resistencia es opcional. Figura 2.8 Topologías para el circuito de POR. En el segundo caso el diodo ayuda a la descarga del condensador cuando VDD disminuye su valor. Las siguientes figuras (2.9 – 2.12) muestran el comportamiento temporal de las señales según el caso. Figura 2.9 Secuencia de Time-out en subida de alimentación. MCLR conectado a VDD. Santiago Salamanca Miño 28 Escuela de Ingenierías Industriales David Arroyo Muñoz Universidad de Extremadura
  • 35. Microcontroladores PIC de la Gama Media. 2. La Arquitectura de los PIC de la Gama Media Figura 2.10 Secuencia de Time-out en subida de alimentación. MCLR no conectado a VDD. (Caso1). Figura 2.11 Secuencia de Time-out en subida de alimentación. MCLR no conectado a VDD. (Caso2). Figura 2.12 Secuencia de Time-out en subida de alimentación. MCLR conectado a VDD (tiempo de subida lento). Santiago Salamanca Miño 29 Escuela de Ingenierías Industriales David Arroyo Muñoz Universidad de Extremadura
  • 36. Microcontroladores PIC de la Gama Media. 2. La Arquitectura de los PIC de la Gama Media El Brown-out Reset consiste en producir un reset en el sistema cuando la tensión de alimentación VDD cae por debajo de un determinado valor, específico para cada PIC. Los que tengan implementados el BOR, tienen un parámetro (35), que es el tiempo mínimo que debe estar VDD por debajo de la tensión de reset, para que éste se produzca. Esto asegura que el elemento no continua la ejecución del programa fuera de los rangos válidos de operación. Este tipo de reset se puede habilitar con el bit BODEN de la Palabra de Configuración. Una vez que el nivel de la alimentación se restablezca, hay un retardo de 72ms en desactivarse el reset interno. Algunas de las situaciones de Brown-Out Reset se muestran en la figura 2.13. Figura 2.13 Situaciones de Brown-out Reset. Posibles circuitos usados para un BOR, cuando el circuito no tiene internamente el detector implementado, o cuando la tensión que venga configurada no nos interesa, se muestran en las figuras 2.14 y 2.15. Santiago Salamanca Miño 30 Escuela de Ingenierías Industriales David Arroyo Muñoz Universidad de Extremadura
  • 37. Microcontroladores PIC de la Gama Media. 2. La Arquitectura de los PIC de la Gama Media Figura 2.14 Circuito externo 1 de Brown-out. Este circuito activará el reset cuando VDD esté por debajo de (Vz + 0.7V), donde Vz es el voltaje Zener del diodo. Nota 1: El circuito de Brown-out Reset interno debe de estar deshabilitado cuando se use esta configuración. 2: Los valores de las resistencias dependen de las características del transistor. Figura 2.15 Circuito externo 2 de Brown-out. Nota 1: Este circuito de BOR es más barato, pero menos exacto. El transistor Q1 se corta cuando VDD baja de cierto nivel tal como: R1 VDD • = 0.7V R1 + R2 2: El circuito de Brown-out Reset interno debe de estar deshabilitado cuando se use esta configuración. 3: Los valores de las resistencias dependen de las características del transistor. Santiago Salamanca Miño 31 Escuela de Ingenierías Industriales David Arroyo Muñoz Universidad de Extremadura
  • 38. Microcontroladores PIC de la Gama Media. 2. La Arquitectura de los PIC de la Gama Media Debido a que existen distintas fuentes de reset, es necesario en determinadas ocasiones, saber que tipo de reset se ha producido. Esto se hace consultando los bits POR y BOR del registro PCON, y PD del Registro de Estado (tabla 2.4). La tabla 2.5 muestra la forma en que afecta el Reset a los distintos registros. TABLA 2.4 Bits de estado y su significado. POR BOR TO PD Tipo de Reset 0 x 1 1 Power-On Reset. 0 x 0 x Incorrecto, TO está a 1 en POR . 0 x x 0 Incorrecto, PD está a 1 en POR . 1 0 1 1 Brown-Out Reset. 1 1 0 1 WDT Reset. 1 1 0 0 WDT Wake-Up. 1 1 u u MCLR reset en funcionamiento normal. 1 1 1 0 MCLR reset durante SLEEP. Legenda: u: valor anterior. x: desconocido. TABLA 2.5 Condiciones de inicialización de los registros especiales. MCLR durante: Wake-up desde SLEEP Power-On Reset -funcionamiento normal mediante: Registro Brown-Out Reset -SLEEP -Interrupciones WDT Reset -Temporizador del WDT ADCAPL 0000 0000 0000 0000 uuuu uuuu ADCAPH 0000 0000 0000 0000 uuuu uuuu ADCON0 0000 00-0 0000 00-0 uuuu uu-u ADCON ---- -000 ---- -000 ---- -uuu ADRES xxxx xxxx uuuu uuuu uuuu uuuu ADTMRL 0000 0000 0000 0000 uuuu uuuu ADMRH 0000 0000 0000 0000 uuuu uuuu CCP1CON --00 0000 --00 0000 --uu uuuu CCP2CON 0000 0000 0000 0000 uuuu uuuu CCPR1L xxxx xxxx uuuu uuuu uuuu uuuu CCPR1H xxxx xxxx uuuu uuuu uuuu uuuu CCPR2L xxxx xxxx uuuu uuuu uuuu uuuu CCPR2H xxxx xxxx uuuu uuuu uuuu uuuu CMCON 00-- 0000 00—0000 uu-- uuuu EEADR xxxx xxxx uuuu uuuu uuuu uuuu EECON1 ---0 x000 ---0 q000 ---0 uuuu EECON2 - - - EEDATA xxxx xxxx uuuu uuuu uuuu uuuu FSR xxxx xxxx uuuu uuuu uuuu uuuu GPIO --xx xxxx --uu uuuu --uu uuuu I2CADD 0000 0000 0000 0000 uuuu uuuu I2CBUF xxxx xxxx uuuu uuuu uuuu uuuu I2CCON 0000 0000 0000 0000 uuuu uuuu I2CSTAT --00 0000 --00 0000 --uu uuuu INDF - - - INTCON 0000 000x 0000 000u uuuu uuuu LCDCON 00-0 0000 00-0 0000 uu-u uuuu Santiago Salamanca Miño 32 Escuela de Ingenierías Industriales David Arroyo Muñoz Universidad de Extremadura