Conceptos Bsicos
Universidad Veracruzana Facultad de Ingeniera
M. C. Adrin Snchez Vidal
Octubre de 2009
Taller de Programacin de PICs. 1
Conceptos Bsicos 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Introduccin. Sistemas Numricos. Conversin entre sistemas numricos. Cdigos Binarios. Diferencia entre P y C. Conceptos bsicos. Memoria de Programa. Memoria de Datos RAM. Procesador. Perifricos.
Taller de Programacin de PICs. 2
Introduccin
Los microcontroladores estn conquistando el mundo, puesto que se encuentran presente en nuestro trabajo, casa y vida en general. Se pueden encontrar controlando el funcionamiento de los ratones y teclados de las computadoras, en telfonos, hornos de microondas y televisores de nuestro hogar. Pero la invasin acaba de comenzar, y este siglo XXI ser testigo de la conquista masiva de estos diminutos computadores, que gobernarn la mayor parte de los aparatos que se fabrican y usamos los humanos.
Sistemas Numricos
Base de un sistema numrico
Sistemas Numricos
Conteo de sistemas numricos
DECIMAL 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 BINARIO 0 1 10 11 100 101 110 111 1000 1001 1010 1011 1100 1101 1110 1111 10000 OCTAL 0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 HEXADECIMAL 0 1 2 3 4 5 6 7 8 9 A B C D E F 10
Taller de Programacin de PICs. 5
Sistemas Numricos
Notacin posicional
Al escribir un nmero, la posicin de cada dgito indica su peso relativo. En la base r un nmero N de n dgitos en la parte entera y m dgitos en la parte fraccionaria en esta notacin se escribe: N=(an-1 a n-2 .... a1 a0 . a-1 .... a -m) En esta notacin el dgito de ms a la izquierda (an-1) es decir, el que pesa ms se denomina dgito ms significativo (MSD), en forma similar al de ms a la derecha (a-m); es decir, el que pesa menos se le llama dgito menos significativo (LSD). Ejemplos:
1025H,
162 256 B
(B2A)16
(11010)2
Usando N bits se puede representar nmeros decimales desde 0 a 2N-1, un total de 2N nmeros.
Taller de Programacin de PICs. 8
Al dividir N=(an-1an-2... a1a0)r entre r obtenemos como cociente N1 y como residuo de la divisin a0. En forma similar si dividimos N1=(an-1an-2...a1)r entre r obtendremos como cociente N2=(an-1an-2...a2)r y como residuo a1 y as sucesivamente.
Para obtener los n dgitos de N en base r se debern obtener los n residuos de n divisiones sucesivas entre r. Obtenindose en el orden de LSD a MSD.
LSB
2510 = 110012
MSB
2510 = 318
a0= 1 a1= 3
Residuo
16 Primera Segunda
2510 = 19H
a0= 9 a1= 1
Taller de Programacin de PICs. 11
Cuando una de las bases involucradas en la conversin es una potencia entera de la otra la conversin se vuelve muy sencilla, ya que se puede realizar en un slo paso expresando cada dgito del nmero en base rk usando k dgitos de base r.
Adems, este procedimiento no requiere que se realice operacin aritmtica de ningn tipo.
N = 27368
Sin embargo, dado que 16 = 24, ahora se emplean grupos de 4 dgitos del nmero binario en hexadecimal, como sigue:
N = 5DEH
Taller de Programacin de PICs. 13
1. 2. 3. 4.
Cdigos binarios
Cdigo BCD a 7 segmentos
Un dispositivo muy generalizado por su sencillez y bajo costo en dispositivos digitales de visualizacin es el exhibidor o display de siete segmentos, el cual consiste en un arreglo de siete indicadores luminosos (LEDs) u opacos (cristal lquido) arreglado como se muestra en la siguiente figura. Existen dos tipos de exhibidores de siete segmentos construidos con LEDs, estos son los de nodo comn y los de ctodo comn.
a f g e d c
a b c d e f g Ctodo comn a b c d e f g nodo comn
Arreglo de 7 segmentos
Taller de Programacin de PICs. 15
Cdigos binarios
Cdigo BCD a 7 segmentos
En la siguiente tabla se muestra el cdigo de 7 segmentos para un display de nodo comn para los dgitos decimales y el equivalente en BCD:
a f g e d Arreglo de 7 segmentos c b
N 0 1 2 3 4 5 6 7 8 9 BCD 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 a 0 1 0 0 1 0 0 0 0 0 b 0 0 0 0 0 1 1 0 0 0 c 0 0 1 0 0 0 1 0 0 0 d 0 1 0 0 1 0 1 1 0 0 e 0 1 0 1 1 1 1 1 0 1 f 0 1 1 1 0 0 1 1 0 0 g 1 1 0 0 0 0 1 1 0 0 Display
0 1 2 3 4 5 6 7 8 9
Diferencia entre P y C
Un microcontrolador es un circuito integrado programable (PIC) que contiene todos los componentes de un computador. Se emplea para controlar el funcionamiento de una tarea determinada y, debido a su pequeo tamao suele incorporarse al propio dispositivo que gobierna (embedded controller). El microcontrolador es un computador dedicado, en su memoria slo reside un programa destinado a gobernar una aplicacin determinada; sus lneas de entrada/salida soportan las conexiones de sensores y actuadores del dispositivo a controlar. Una vez programado y configurado el C, solamente sirve para gobernar la tarea asignada.
Taller de Programacin de PICs. 17
Diferencia entre P y C
Por otro lado, el microprocesador es un circuito integrado que contiene solamente la unidad central de procesos o CPU (procesador). La memoria, los puertos y todos los dems perifricos son exteriores, accesndose a ellos a travs de los buses de direcciones, datos y control, razn por la cual se dice que un P es un sistema abierto pues su configuracin vara dependiendo de la aplicacin a la que se destine.
Sin embargo, un microcontrolador (PICs) es una unidad que posee en su interior al microprocesador y a los perifricos y elementos indispensables para que pueda funcionar como una microcomputadora en un solo chip.
Taller de Programacin de PICs. 18
Conceptos bsicos
Otra caracterstica de los procesadores PIC es el uso de un conjunto de instrucciones del tipo RISC (Reduced Instruction Set Computer). Con el RISC se suele ejecutar la mayora de las instrucciones con un solo pulso del clock.
Con las instrucciones que se usan en otros equipos del tipo CISC (Complex Instruction Set Computer), se logra instrucciones ms poderosas, pero a costa de varios ciclos del clock. En el bien conocido procesador 68HC11 de Motorola se requieren a veces hasta 5 ciclos del clock para ejecutar una instruccin.
Conceptos bsicos
La arquitectura tradicional de computadoras y microprocesadores se basa en el esquema propuesto por John Von Neumann, en el cual la unidad central de proceso, o CPU, esta conectada a una memoria nica que contiene las instrucciones del programa y los datos.
El tamao de la unidad de datos o instrucciones est fijado por el ancho del bus de la memoria. Es decir que un microprocesador de 8 bits, que tiene adems un bus de 8 bits que lo conecta con la memoria, deber manejar datos e instrucciones de una o ms unidades de 8 bits (bytes) de longitud.
Taller de Programacin de PICs. 20
Conceptos bsicos
Por otro lado, la arquitectura Harvard, consiste simplemente en un esquema en el que el CPU est conectado a dos memorias por medio de dos buses separados. Una de las memorias contiene solamente las instrucciones del programa, y es llamada Memoria de Programa. La otra memoria solo almacena los datos y es llamada Memoria de Datos.
MEM PROG
CPU
MEM DATOS
Los buses son independientes y pueden ser de distintos anchos. Para un procesador de Set de Instrucciones Reducido, o RISC (Reduced Instruccin Set Computer), el set de instrucciones y el bus de la memoria de programa pueden disearse de manera tal que todas las instrucciones tengan una sola posicin de memoria de programa de longitud.
Taller de Programacin de PICs. 21
Memoria de Programa
El " PIC 16F84 " es un MICROCONTROLADOR con memoria de programa tipo FLASH, lo que representa gran facilidad en el desarrollo de prototipos y en su aprendizaje ya que no se requiere de borrado con luz ultravioleta como las versiones EPROM sino, permite reprogramarlo nuevamente sin ser borrado con anterioridad.
El PIC 16C84 es un microcontrolador de la familia MICROCHIP, totalmente compatible con el PIC 16F84. Su principal caracterstica es que posee memoria "EEPROM" en lugar de memoria Flash, pero su manejo es igual.
Memoria de Programa
EL PIC16F84 tiene una memoria de 1 Kbyte de longitud con palabras de 14 bits.
Memoria de Programa
Como el PIC16F84 tiene un contador de programa de 13 bits, tiene una capacidad de direccionamiento de 8K x 14, pero solamente tiene implementado el primer 1K x 14 (000h hasta 03FFh). Si se direccionan posiciones de memoria superiores a 3FFh se causar un solapamiento o desborde con el espacio del primer 1K. Vector de Reset Cuando ocurre un reset o se enciende el microcontrolador, el contador de programa se pone en ceros (000h). Por esta razn, en la primera direccin del programa se debe escribir todo lo relacionado con la iniciacin del mismo.
Taller de Programacin de PICs. 24
Memoria de Programa
Vector de Interrupcin
Cuando el microcontrolador recibe una seal de interrupcin el contador de programa apunta a la direccin 04h de la memoria de programa, por eso all se debe escribir toda la programacin necesaria para atender dicha interrupcin.
El registro INTCON contiene los bits para habilitar cada una de las fuentes de interrupcin.
Taller de Programacin de PICs. 29
Algunas instrucciones de control, cambian el contenido del PC alterando la secuencia lineal de ejecucin. Dentro de estas se encuentran el GOTO y el CALL que permiten cargar en forma directa un valor constante en el PC haciendo que el programa salte a cualquier posicin de la memoria. Otras instrucciones de control son los SKIP o salteos condicionales, que producen un incremento adicional del PC si se cumple una condicin especifica, haciendo que el programa saltee, sin ejecutar, la instruccin siguiente.
Taller de Programacin de PICs. 30
Procesador
Dada la necesidad de conseguir elevados rendimientos en el procesamiento de las instrucciones, el PIC16F84 cuenta con un procesador de arquitectura Harvard.
Procesador
Arquitectura tradicional
Arquitectura ortogonal
Taller de Programacin de PICs. 37
Procesador
Se puede observar que la principal diferencia entre ambas arquitecturas radica en la ubicacin del registro de trabajo, que para los PICs se denomina W (Working Register), y para los tradicionales es el Acumulador (A). En los microcontroladores tradicionales todas las operaciones se realizan sobre el acumulador, cuya salida esta conectada a una de las entradas de la ALU, por lo tanto el resultado de cualquier operacin siempre quedar en este registro. Para operar sobre un dato de memoria, luego realizar la operacin siempre hay que mover el acumulador a la memoria con una instruccin adicional.
Procesador
En los PIC, la salida de la ALU va al registro W y tambin a la memoria de datos, por lo tanto el resultado puede guardarse en cualquiera de los dos destinos. En las instrucciones de simple operando el dato en este caso se toma de la memoria (por convencin). La gran ventaja de esta arquitectura es que permite un gran ahorro de instrucciones ya que el resultado de cualquier instruccin que opere con la memoria, ya sea de simple o doble operando, puede dejarse en la misma posicin de memoria o en el registro W, segn se seleccione con un bit de la misma instruccin. Las operaciones con constantes provenientes de la memoria de programa se realizan solo sobre el registro W.
Taller de Programacin de PICs. 39
Procesador
Otra caracterstica del procesador es que es segmentado; es decir, que mientras ejecuta una instruccin, puede buscar la siguiente en el mismo ciclo de trabajo.
1. MOVLW 55h 2. MOVWF PORTB 3. CALL SUB_1 4. BSF PORTA, BIT3
El procesador es de tipo RISC, puesto cuenta con 35 instrucciones, donde la mayora se ejecuta en un ciclo de trabajo.
Taller de Programacin de PICs. 40
Perifricos
Los puertos o perifricos son el puente entre el microcontrolador y el mundo exterior. Son lneas digitales que trabajan entre cero y cinco voltios y se pueden configurar como entradas o como salidas. El PIC 16F84 tiene dos puertos. El puerto A con 5 lneas y el puerto B con 8 lneas. Cada pin se puede configurar como entrada o como salida independiente programado por un par de registros diseados para tal fin (TRISA y TRISB, respectivamente). En ese registro un "0" configura el pin del puerto correspondiente como salida y un "1" lo configura como entrada.
Perifricos
Perifricos
PUERTO A 1. 2. 3. 4. 5. RA0 = Pin de Entrada/Salida (TTL). RA1 = Pin de Entrada/Salida (TTL). RA2 = Pin de Entrada/Salida (TTL). RA3 = Pin de Entrada/Salida (TTL). RA4/TOCKI = Pin de Entrada/Salida o entrada de Reloj Externo para el TMR0, cuando este pin se configura como salida es de tipo Open Drain (ST), cuando funciona como salida se debe conectar a Vcc (+5V) a travs de una resistencia.
Perifricos
PUERTO B
1. 2. 3. 4. 5. RB0/INT = Pin de E/S o entrada de int externa. (TTL/ST). RB1 = Pin de Entrada/Salida (TTL). RB2 = Pin de Entrada/Salida (TTL). RB3 = Pin de Entrada/Salida (TTL). RB4 = Pin de E/S con Interrupcin por cambio de Flanco (TTL). 6. RB5 = Pin de E/S con Interrupcin por cambio de Flanco (TTL). 7. RB6 = E/S con Interrupcin por cambio de Flanco (TTL/ST). 8. RB7 = E/S con Interrupcin por cambio de Flanco (TTL/ST).
Perifricos
PINES ADICIONALES
MCLR = Pin de Reset del Microcontrolador (Master Clear). Se activa (el pic se resetea) cuando tiene un "0"lgico en su entrada. Vss = Ground o Tierra VDD = Fuente Positiva (+5V) OSC2/CLKOUT = Entrada del Oscilador del Cristal. Se conecta al Cristal o Resonador en modo XT (Oscilador de Cristal). En modo RC (ResistenciaCondensador), este pin acta como salida el cual tiene de la frecuencia que entra por el pin OCS1/CLKIN. OSC1/CLKIN = Entrada del Oscilador del Cristal / Entrada de reloj de una Fuente Externa.
Taller de Programacin de PICs. 45
Perifricos
PUERTO A
RA3:RA0
Perifricos
Si trabaja como entrada:
1. El TRIS Latch contiene un 1, lo cual desactiva al PMOS junto al NMOS en alta impedancia. 2. El dato aplicado al puerto desde el exterior pasa al bus interno al habilitar a RD PORT. 3. Al leer una lnea de entrada se obtiene el estado actual del pin correspondiente. 4. La informacin debe mantenerse durante el ciclo de instruccin.
Taller de Programacin de PICs. 47
RA3:RA0