Elementos de Estructura de Computadores

advertisement
Elementos de Estructura
de Computadores
JEA/jea
27 diapositivas
1
DESARROLLO DE APLICACIONES CON
MICROCONTROLADORES
• Aplicación
• Análisis del hardware necesario para construir la
aplicación
• Diseño del programa
• Edición del programa
• Estructura del programa
• Análisis del programa
• Ensamblar el programa
• Simulación del programa
• Bajar el programa al microcontrolador
• Prueba y verificación del programa sobre el
hardware asociado
2
Proceso de desarrollo de un programa
3
Construyendo programas estructurados
• Diagramas de flujo
4
Diagramas de estado
5
PIC 16F877-Arquitectura
• Este MCU es ampliamente usado como
un dispositivo avanzado en la enseñanza
ya que posee una variado complemento
de interfaces: entrada análoga, puerto
serial, puerto esclavo, entre otros mas un
buen rango de temporizadores en
hardware
6
• El PIC 16F877 es una elección adecuada
para el aprendizaje sobre
microcontroladores, debido a que su
lenguaje de programación es
relativamente simple, en comparación con
un microprocesador tal como el Pentium
INTEL, el cual es usado en los
computadores tipo PC. Este tiene un set
de instrucciones poderoso pero complejo
para poder soportar operaciones
multimedia avanzadas
7
PIC 16F877 Pin out
• Este chip puede ser obtenido en
diferentes formatos de encapsulado y la
versión tipo DIP es recomendada para la
construcción de prototipos
• La mayoria de los pines son I/O
estructurados en 5 puertos: A(6), B(8),
C(8), D(8), y E(3), dando un total de 33
pines I/O
8
• Estos pueden operar como simples pines I/O
digitales, pero la mayoría tiene mas de una
función, y el modo de operación de cada uno
es seleccionado inicializando varios registros
de control dentro del chip
• Observe en particular, que los puertos A y E
son entradas analogas por omisión (...by
default...) al alimentar el chip o con Reset, así
ellos tienen que ser configurados si operación
I/O digital es requerida
• El puerto B es usado para bajar el programa
a la ROM FLASH del chip (RB6 y RB7) y
RB0 y RB4..RB7 pueden generar una INT
9
• El puerto C da acceso a los temporizadores
(en adelante TIMERs) y puerto serial
• El puerto D puede ser usado como un puerto
esclavo, con el puerto E proporcionando los
pines de control para este efecto
• El chip puede operar realmente con una
tensión algo menor de 2 Volts para trabajo
con batería autónoma y ahorro de power
• Un circuito de CLK de baja frecuencia usando
solo un capacitor y un resistor para
establecer la frecuencia puede ser conectado
a CLKIN
10
11
• O un circuito oscilador con XTAL puede ser
conectado a través de CLKIN y CLKOUT
• MCLR es la entrada de RESET; cuando es 0
la MCU se detiene y se restablece cuando
MCLR es 1. Esta entrada se debe afianzar en
alto permitiendo al chip ejecutar si un circuito
de reset externo no está conectado, pero
usualmente es una buena idea incorporar un
botón reset manual en todas las aplicaciones
incluidas aquellas mas triviales.
12
Diagrama de bloque PIC 16F877
• La memoria de programa principal es una Flash
ROM la cual almacena una lista de instrucciones de
14 bits. Estas son alimentadas a la unidad de
control y usadas para modificar el archivo de
registros de la RAM
• Los registros incluyen registros especiales de
control, los registros de puerto y un set de registros
de propósito general los cuales pueden ser usados
para almacenar datos temporalmente
• Un registro de trabajo separado, W, es usado junto
a la ALU para procesar datos
• Varios módulos especiales de periféricos proveen
13
de un rango de opciones I/O
14
• Hay 512 direcciones RAM en el archivo de
registros: 0..1FF, los cuales están organizados en 4
bancos (0..3), cada banco contiene 128 direcciones
• Se selecciona por omisión (seleccionado al
POWER-UP) el banco 0.
• Banco 0: es numerado 00..7F
• Banco 1: 80..FF
• Banco 2: 100..17F
• Banco 3: 180..1FF
• Los bancos contienen registros especiales de
funciones (SFRs), los cuales tienen un propósito
dedicado, y los registros de propósito general
(GPRs). Los registros del archivo son mapeados en
la figura 2-3 de la hoja de datos
15
• Los SFRs pueden ser mostrados en el
diagrama de bloques como separados de los
GPRs pero ellos están de hecho en el mismo
bloque lógico y direccionados del mismo
modo
• Deduciendo los SFRs desde el numero total
de localizaciones de RAM y admitiendo que
algunos registros se repiten en mas de un
banco, esto resulta en 368 bytes de registros
de datos GPR
16
Prueba de hwr
• Es usual definir el hwr sobre el cual se
pueden mostrar las operaciones de un
programa PIC.
• Inicialmente un diagrama de bloque es usado
para esquematizar el diseño de hwr, como el
que se muestra a continuación. El símbolo
esquemático para la MCU es mostrado
indicando los pines a ser usados
• Para el programa de prueba simplemente se
necesitan entradas que conmuten entre 0V y
5V y una indicación lógica en las salidas
17
Bosquejo de Hwr – diagrama de
bloques
18
Conexiones MCU 16F877
19
Una aplicación simple
• RB0..RB7: el puerto B actúa como un
contador binario de 8 bit
• RD0: un CLEAR por un push-button
• RD1: un COUNT por un push-button
20
Hardware
21
• Cuando el botón RUN es presionado, un cero
lógico es ingresado en RD1, y un incremento
en la cuenta binaria es observada en los
LEDs, donde LSB=RB0.
• Cuando es liberado, (RD1=1) la cuenta se
detiene y es retenida.
• Cuando el botón de RESET (RD0) es
presionado, la cuenta desplegada va a cero
(“reseteada” a cero)
• La velocidad del reloj de la MCU puede ser
ajustada en RV1, alrededor de 40kHz, pero
en adelante se usará XTAL de 4 MHz.
22
Programa
• El código para las aplicaciones se programará en
lenguaje C
• Para ello se utilizará el compilador CCS de
Microchip para programar en C
• O MPLAB + CCS, que permite programar en
Assembly, o en C o combinación.
• Para grabar el MCU, se puede usar ICPROG o
WinPIC800, o MPLAB directamente
• Todo el software anteriormente mencionado es sin
costo y se puede obtener desde microchip.com
• El simulador Proteus se obtiene en versión trial
23
desde el mismo sitio
• Todo el software anteriormente
mencionado es sin costo y se puede
obtener desde microchip.com
• El simulador Proteus se obtiene en
versión trial desde el mismo sitio
• También existe la modalidad ICD (In
Circuit Debugging) en todos los
grabadores disponibles en el comercio
24
Palabra de configuración del chip
• La directiva de assembler _CONFIG establece
aspectos relacionados con la operación del chip.
Un área especial de la memoria de programa
fuera del rango normal (2007h) almacena la
palabra de configuración del chip.
• La función de cada bit se muestra en la tabla a
continuación, junto con algunas configuraciones
típicas. Mayores detalles en la sección 12 de la
hoja de datos
25
Palabra de configuración `F877
26
Palabra de configuración en C
• Se usará para todos los programas la
siguiente palabra de configuración en
lenguaje C
#fuses XT,PUT,NOWDT,NOPROTECT,
NOBROWNOUT,NOLVP,NOCPD,NOWRT,
NODEBUG
27
Palabra de configuración
• Oscilador (b1..b0) permite configurar el tipo de oscilador
que se usrá en el circuito. Las principales opciones son
RC, XT
• Watchdog timer (b2) permite habilitar o deshabilitar el
timer WDT. Dentro de cada 18 ms ejecuta un RESET
del MPU si se presenta un lazo indefinido por cualquier
razón
• Power Up Timer (b3) es un temporizador(timer) interno
que demora(72 ms) la ejecución del programa en el
MCU, hasta que la alimentación sea estable
• Code protection (b5..b4; b13..b12) protección del
programa que evita copia del código, para evitar robo
industrial y comercial
28
• Brown-out reset(b6) cuando es habilitado
permite mantener en estado de RESET al MCU,
cuando la alimentación cae a un determinado
nivel, hasta que la fuente se recupere
• Low Voltage programming(b7) permite que el
voltaje de programación usual de +12 V pueda
cambiarse a +5 V (sin embargo los pines de
programación del portB no pueden ser usado
para I/O y deben ser de dedicación exclusiva a
la grabación del código)
• CPD (b8) protección contra escritura de la
EEPROM
29
• WRT(b9) habilita escritura de la memoria
de programa
• Debug(b11) In-Circuit debbugging ICD,
permite la programación sobre el
protoboard o placa sin extraer el MCU
30
Fin
Diapositivas C_CS02Control.pptx
31
Descargar