Documentos de Académico
Documentos de Profesional
Documentos de Cultura
2
El PIC16F887 tiene tres tipos de memoria: ROM, RAM y EEPROM
La memoria ROM se utiliza para guardar permanente el programa que se está
ejecutando. Es la razón por la que es frecuentemente llamada “memoria de
programa”.
Similar a la memoria de programa, el contenido de memoria EEPROM está
permanentemente guardado al apagar la fuente de alimentación. Sin embargo,
a diferencia de la ROM, el contenido de la EEPROM se puede cambiar durante
el funcionamiento del microcontrolador.
RAM son registros de propósito general y en los registros de funciones
especiales (SFR). Todos estos registros se dividen en cuatro bancos de
memoria
3
El PIC16F887 tiene 8Kb de memoria ROM (en total 8192 localidades)
4
• Memoria de programa En sus 8192 posiciones (8Kx14bits) contiene el
programa con las instrucciones que gobiernan la aplicación. Es del tipo no
volátil.
• Memoria EEPROM de datos Es una pequeña área de memoria de datos de
lectura y escritura no volátil que permite garantizar que determinada
información estará siempre disponible al reinicializarse el programa. Se
gestiona de manera distinta a la memoria de datos RAM.
5
proporciona una resolución de 10 bits (entiéndase por resolución el intervalo
de valores diferentes en el cual puede ser mostrado por el micro
controlador)con esos 10 bits tenemos exactamente 1024 valores diferentes los
cuales pueden ser leídos por el micro controlador
6
• Registros de funciones especiales (SFR, Special Function Registers)
– Controlan la operación de la CPU y los periféricos.
– Se implementan como RAM estática – Se inicializan a un valor por defecto
después de la alimentación del µC.
• Registros de propósito general (GPR, General Purpose Registers)
– Almacenamiento de datos.
– No se inicializan a un valor por defecto después de la alimentación
7
Memoria de programa (FLASH)
Es una memoria de 8K de capacidad con posiciones de 14 bits. En ella se
graba o almacena el programa o códigos que el microcontrolador debe
ejecutar.
8
El vector de restablecimiento es la localización por defecto que una unidad
central de procesamiento va a encontrar para encontrar la
primera instrucción que ejecutará después de un restablecimiento . El vector de
restablecimiento es un puntero o dirección , donde la CPU siempre debe
comenzar tan pronto como sea capaz de ejecutar instrucciones. La dirección
está en una sección de memoria no volátil inicializada para contener
instrucciones para iniciar el funcionamiento de la CPU, como primer paso en el
proceso de arranque del sistema que contiene la CPU
9
Suministro eléctrico Circuito de RESET Oscilador
10
las directivas son comandos destinados a ser interpretados por el compilador,
no por el microcontrolador. Dentro del término genérico de directiva se
incluyen, además de estos comandos, unas variables que contienen
información sobre el proceso de compilación. Estas variables son lo que se
denominan identificadores predefinidos del compilador:
11
Datos tipo Char 8bits 0-255
Datos tipo int 8bits 0-255
Datos tipo float 32bits
Datos tipo int1 1 bit 0-1
12
TIPO Nombre de la variable [= valor inicial];
ejemplos FLOAT velocidad = 10;
INT1 pulsador = false;
13
La única diferencia entre una variable local y una global es su ámbito de
acción.
● Variable local: es aquella que sólo es utilizable dentro del código de la
función.
● Variable global: es aquella cuyo ámbito es todo el programa, incluso
dentro de una función.
Una variable global se define fuera del cuerpo de cualquier función,
normalmente al principio del programa, después de la definición de los
archivos de biblioteca (#include), de la definición de constantes
simbólicas y antes de cualquier función.
Una variable local se restringe a la función que la ha declarado se dice
entonces que la variable es local a esa función. Esto implica que esa
variable sólo va a poder ser manipulada en dicha sección, y no se podrá
hacer referencia fuera de dicha sección.
14
Suma + Resta - Multiplicación * División / Módulo % Incremento ++
Decremento --
15
se utilizan en comparaciones con el propósito de comparar dos valores, si una
expresión es evaluada como falsa (false), el operador devuelve 0, mientras que
si una oración es evaluada como verdadera (true), devuelve1
b>
> mayor que si b es mayor que a
a
a
mayor o igual si a es mayor o igual
>= >=
que que 5
5
a<
< menor que si a es menor que b
b
a
menor o igual si a es menor o igual
<= <=
que que b
b
16
IF-ELSE Evalúa la condición verdadera y falsa de una expresión, primero se
evalúa una expresión; si se cumple (es cierta) se ejecuta un bloque de
sentencias y si es falsa se ejecuta otro bloque.
17
Habrá ocasiones en las que nos interesa ejecutar instrucciones un número
específico de veces, en lugar de probar una condición. Este es el caso en que
usaremos un ciclo For o sea es como hacer un parametro numerico.
18
Se utilizan generalmente cuando no sabemos cuantas veces se habrá de
ejecutar el bucle, igual que el bucle WHILE, con la diferencia de que sabemos
seguro que el bucle por lo menos se ejecutará una vez.
19
El switch es diferente que el else if en que se concentra en casos no en
condiciones, el switch evalúa solamente valores mientras que el else if evalúa
condiciones
20
las directivas se reconocen fácilmente porque comienzan por el símbolo #
21
la directiva que permite incluir un fichero dentro de la compilación es #include
“filename”
22
35 pines de entrada/salida de 8 bits cada uno
23
Se realizan a través del registro TRIS y está ubicado en el banco 1
24
STANDARD_IO (Puerto) // Esta función afecta directamente al registro de
puertos TRISx y además se asegura que cada vez que se utilice un pin del
puerto sea configurado como I/O creando el código necesario. Esta es la
directiva por defecto.
#USE FAST_IO (Puerto) // Esta directiva se utiliza al principio del programa, en
la parte de configuración de PIC, y su uso nos obliga a utilizar la siguiente
directiva.
25
Las resistencias pull up tienen la misión de que las entradas lógicas del sistema
se mantengan en los niveles correctos en caso de que otros dispositivos o
circuitos se conecten o desconecten del sistema. Las resistencias pull-up
establecen la tensión en un nivel alto hasta una tensión precalculada. La
función principal de una resistencia pull-up es evitar que una corriente excesiva
fluya a través del circuito cuando necesitamos un nivel lógico bajo, se
encuentran en el puerto B
26
El vector de RESET está siempre en la posición 0000h de la memoria de
programa.
El vector de INTERRUPCIÓN está siempre en la posición 0004h de la memoria
de programa
27
Los registros ANSEL y ANSELH se utilizan para configurar el modo de entrada
de un pin de E/S como analógico o como digital.
28
habilitar/deshabilitar individualmente el pull-up de cada pin con el registro WPUB
30
31