8
ESCUELA POLITÉCNICA NACIONAL FACULTAD DE INGENIERIA ELÉCTRICA Y ELECTRÓNICA LABORATORIO DE SISTEMAS MICROPROCESADOS PREPARATORIO Práctica #: 6 Tema: Programación de los microcontroladores ATMEL 164p. Fecha de Realización: 2013 / 09 / 15 año mes día Realizado por: Alumno (s): Francisco Lema Grupo: (Espacio Reservado) Fecha de entrega: f. ______________________ año mes día Recibido por: Sanción: ________________________________________________ Período: 2013 B Lunes 16-18

preparatorio_6

Embed Size (px)

DESCRIPTION

MIcros prepa 6..

Citation preview

  • ESCUELA POLITCNICA NACIONAL FACULTAD DE INGENIERIA ELCTRICA Y

    ELECTRNICA

    LABORATORIO DE SISTEMAS MICROPROCESADOS

    PREPARATORIO

    Prctica #: 6 Tema: Programacin de los microcontroladores ATMEL 164p.

    Fecha de Realizacin: 2013 / 09 / 15

    ao mes da

    Realizado por:

    Alumno (s): Francisco Lema Grupo:

    (Espacio Reservado)

    Fecha de entrega: f. ______________________

    ao mes da Recibido por:

    Sancin: ________________________________________________

    Perodo:

    2013 B

    Lunes 16-18

  • PRCTICA No. 6

    TEMA: PROGRAMACIN DE LOS MICROCONTROLADORES ATMEL MEGA 164p OBJETIVO: Aprender a usar correctamente el programador para el Microcontrolador ATMega164p. Implementar un circuito que permita sumar , o restar 2 nmeros de 8 bits utilizando el microcontrolador ATmega164p. PREPARATORIO: Consultar:

    Consultar las caractersticas generales del microcontrolador ATMEL MEGA 164p, especialmente en la parte referente a la disposicin de terminales (pines) generales de entrada/salida, los de alimentacin, el RESET y los usados para la programacin del mismo.

    Microcontrolador AVR de 8 bits de alto rendimiento y bajo consumo. Arquitectura Avanzada RISC 131 instrucciones. La mayora de un solo ciclo de reloj de ejecucin. 32 registros de trabajo de 8 bits para propsito general. Funcionamiento esttico total. Capacidad de procesamiento de unos 20 MIPS a 20 MHz. Multiplicador por hardware de 2 ciclos Memorias de programa y de datos no voltiles de alta duracin 16/32/44 K bytes de FLASH auto programable en sistema 512B/1K/2K bytes de EEPROM 1/2/4K bytes de SRAM Interna

    Retencin de Datos: 20 aos a 85C / 100 aos a 25C Seccin opcional de cdigo Boot con bits de bloqueo independientes. Programacin en sistema del programa Boot que se encuentra dentro del mismo chip. Operacin de lectura durante la escritura. Bloqueo programable para la seguridad del software. Interfase JTAG Capacidades de Boundary Scan de acuerdo con el estndar JTAG Soporte Extendido Debug dentro del chip Programacin de FLASH, EEPROM, fusibles y bits de bloqueo a travs de la interface JTAG. Caractersticas de los perifricos Dos Timer/Contadores de 8 bits con prescalamiento separado y modo comparacin. Un Timer/Contador de 16 bits con prescalamiento separado, modo comparacin y modo de captura. Contador en Tiempo Real con Oscilador separado 6 Canales para PWM ADC de 10 bits y 8 canales Modo Diferencial con ganancia seleccionable a x1, x10 o x200. Interfase serie de dos hilos con byte orientado. Dos puertos Seriales USART Programables Interfaz Serial SPI maestro-esclavo Watchdog Timer programable con oscilador independiente, dentro del mismo chip.

  • Comparador Analgico dentro del mismo Chip Interrupt and Wake-up on Pin Change

    Caractersticas especiales del microcontrolador Power-on Reset (en el encendido) y deteccin de Brown-out (prdida de polarizacin) programable. Oscilador RC interno calibrado. Fuentes de interrupcin externas e internas. 6 modos de descanso: Idle, Reduccin de Ruido ADC, Power-save, Power-down, Standby y Standby extendido. _ Encapsulados para Entradas/Salidas (E/S) 32 lneas de E/S programables. PDIP de 40 pines, TQFP y QFN/MLF de 44 pines. _ Voltajes de Operacin 1.8 5.5V para el ATMEGA 164P/324P/644PV 2.7 5.5V para el ATMEGA 164P/324P/644P Ciclos de escritura/borrado: 10.000 en Flash / 100.000 en EEPROM Velocidad de Funcionamiento ATMEGA 164P/324P/644PV: 0 4MHz @ 1.8 5.5V - 10MHz @ 2.7 5.5V ATMEGA 164P/324P/644PV: 0 10MHz @ 2.7 5.5V - 20MHz @ 4.5

    5.5V Consumo de energa a 1MHz, 1.8V, 25C para el ATMEGA 164P/324P/644P Activo: 0.4mA Modo Power-down: 0.1uA

    Modo Power-Save: 0.6uA (Incluye RTC de 32 Khz

    1. CONFIGURACIN DE PINES

  • Figura 1-1. Pines de Salida del ATmega164P/324P/644P

    Revisar el manejo de tablas en el AVR Atmega164p (uso de la instruccin LPM). Esta instruccin se usar para realizar la conversin de binario a hexadecimal . Se da como referencia un programa de ejemplo al final.

    Instruccin: LPM Funcin: Carga la memoria de programa Sintaxis: LPM Operacin: R0 (Z) Words: 1 (2 bytes) Ciclos: 3 Flags: ninguno Program Counter: PC PC + 1 Descripcin: LPM carga un byte apuntado por el registro Z en el registro R0. La memoria de programa est organizada en words de 16 bit y el bit menos significativo del puntero Z selecciona el byte bajo (0) o el byte alto (1). Esta instruccin puede dirigirse a los primeros 64K bytes (32K words) de memoria de programa. El registro puntero Z queda inalterado por el funcionamiento. Ejemplo:

    CLR r31 ; Borrar el byte alto de Z LDI r30,$F0 ; Poner a set el byte bajo de Z LPM ; Cargar constante de la memoria

    ; de programa apuntada por Z (r31:r30)

    Revisar en el manual del Atmega164p la manera de configurar y usar los puertos de entrada/salida. El microcontrolador ATMega164p dispone de 4 puertos de entrada/salida de uso general, de 8 bits cada uno llamados PORTA, PORTB, PORTC, y PORTD. Esto da un total de 32 lneas generales de E/S. Cada una de las lneas de los puertos puede ser configurada individualmente como entrada o salida. Cabe indicar tambin que estos pines pueden tener funciones alternativas y pueden ser asignados a otros perifricos, en cuyo caso ya no pueden ser usados como lnea de E/S. Para el manejo cada uno de los puertos se usan tres registros:

    DDRx, de ocho bits, cada uno de los cuales est asignado a uno de los pines del

    puerto. Cada bit permite configurar en forma individual si el pin va a ser entrada o

    salida de la siguiente manera: Si el bit se pone a 0, ese pin ser una entrada, y si

    se pone 1, ese pin ser salida.

    PORTx de ocho bits. Cada bit est signado tambin a un pin. Para poner un valor

    lgico en un pin, se debe colocar ese valor en el bit correspondiente en este registro, y

    si ese pin est configurado como salida ese valor aparece fsicamente en esa patita. Si

    la patita est definida como entrada y se escribe un valor en ella, simplemente este

    valor no es mostrado en ese pin.

  • PINx de ocho bits. Si se desea leer un pin que ha sido definido como entrada se debe leer este registro. Si se lee el registro PORTx, no se lee lo que fsicamente est en los pines, si no lo que haya escrito con anterioridad en el registro PORTx.

    Consultar las caractersticas de un display de 7 segmentos. El display de 7 segmentos o visualizador de 7 segmentos es un componente que se utiliza para la representacin de nmeros en muchos dispositivos electrnicos debido en gran medida a su simplicidad. Aunque externamente su forma difiere considerablemente de un diodo LED (diodos emisores de luz) tpico, internamente estn constituidos por una serie de diodos LED con unas determinadas conexiones internas, estratgicamente ubicados de tal forma que forme un nmero 8. A cada uno de los segmentos que forman el display se les denomina a, b, c, d, e, f y g y estn ensamblados de forma que se permita activar cada segmento por separado consiguiendo formar cualquier dgito numrico. A continuacin se muestran algunos ejemplos:

    Si se activan o encienden todos los segmentos se forma el nmero "8". Si se activan slo los segmentos: "a, b, c, d, e, f," se forma el nmero "0". Si se activan slo los segmentos: "a, b, g, e, d," se forma el nmero "2". Si se activan slo los segmentos: "b, c, f, g," se forma el nmero "4".

    Muchas veces aparece un octavo segmento denominado p.d. (punto decimal). Los diodos led trabajan a baja tensin y con pequea potencia, por tanto, podrn excitarse directamente con puertas lgicas. Normalmente se utiliza un codificador (en nuestro caso decimal/BCD) que activando un solo pins de la entrada del codificador, activa las salidas correspondientes mostrando el nmero deseado. Recordar tambin que existen display alfanumricos de 16 segmentos e incluso de una matriz de 7*5 (35 bits).

    Los hay de dos tipos: nodo comn y ctodo comn. En los de tipo de nodo comn, todos los nodos de los leds o segmentos estn unidos internamente a una patilla comn que debe ser conectada a potencial positivo (nivel 1). El encendido de cada segmento individual se realiza aplicando potencial negativo (nivel 0) por la patilla correspondiente a travs de una resistencia que limite el paso de la corriente. En los de tipo de ctodo comn, todos los ctodos de los leds o segmentos estn unidos internamente a una patilla comn que debe ser conectada a potencial negativo (nivel 0). El encendido de cada segmento individual se realiza aplicando potencial positivo (nivel 1) por la patilla correspondiente a travs de una resistencia que limite el paso de la corriente. Los segmentos pueden ser de diversos colores, aunque el display ms comnmente utilizado es el de color rojo, por su facilidad de visualizacin.

    Disear un circuito que permita ingresar 2 nmeros en binario mediante 2 dip switch de 8 bits cada uno que sern conectados a los puertos PORTA y PORTB respectivamente. Se manejar un par de displays de 7 segmentos que sern conectados a los otros dos puertos disponibles. No

  • olvidar que los display de 7 segmentos deben conectarse usando resistencias limitadoras de corriente, revisar las caractersticas elctricas en cuanto a la capacidad de manejo de corriente del microcontrolador para el diseo de las mismas. (seccin Caractersticas Elctricas del manual). En uno de los dos pines sobrantes en los puertos de los display conectar un interruptor para poder determinar si la operacin a realizar es una suma o una resta(ser una entrada); en el otro pin sobrante conectar un LED al que se enviar directamente el CARRY resultante de la operacin(ser una salida).

    Escribir un programa en Assembler de AVR Studio que permita sumar o restar ( de acuerdo al switch de seleccin) los dos nmeros que se ingresan en los dip switch y mostrar el resultado en los dos display de 7 segmentos en hexadecimal. La decodificacin de binario a hexadecimal se realizar por software dentro del microcontrolador.El CARRY resultante de la operacin debe ser enviado directamente al LED.

    - directamente al LED.

    .include "m164pdef.inc"

    .org 0x00

    .cseg clr r0 clr r20 clr r21 ldi r22,$80 ldi r18,$7f ser r19 out ddra,r0

    PC6/TOSC1/PCINT22 25PC5/TDI/PCINT21 24

    PC4/TDO/PCINT20 23PC3/TMS/PCINT19 22PC2/TCK/PCINT18 21PC1/SDA/PCINT17 20PC0/SCL/PCINT16 19

    AVCC27AREF29

    PC7/TOSC2/PCINT23 26

    PA6/ADC6/PCINT6 31PA5/ADC5/PCINT5 32PA4/ADC4/PCINT4 33PA3/ADC3/PCINT3 34PA2/ADC2/PCINT2 35PA1/ADC1/PCINT1 36PA0/ADC0/PCINT0 37

    PA7/ADC7/PCINT7 30PB6/MISO/PCINT142PB5/MOSI/PCINT131PB4/SS/OC0B/PCINT1244PB3/AIN1/OC0A/PCINT1143PB2/AIN0/INT2/PCINT1042PB1/T1/CLKO/PCINT941PB0/T0/XCK0/PCINT840

    PB7/SCK/PCINT153

    PD6/ICP/OC2B/PCINT3015PD5/OC1A/PCINT2914PD4/OC1B/XCK1/PCINT2813PD3/INT1/TXD1/PCINT2712PD2/INT0/RXD1/PCINT2611PD1/TXD0/PCINT2510PD0/RXD0/PCINT249

    PD7/OC2A/PCINT3116

    RESET4XTAL1 7XTAL2 8

    U1

    ATMEGA164P

    R14k7

    R24k7

    R34k7

    R44k7

    R54k7

    R64k7

    R74k7

    R84k7

    R94k7

    R104k7

    R114k7

    R124k7

    R134k7

    R144k7

    R154k7

    R164k7

    OFF ON 12345678

    161514131211109

    DSW1

    DIPSW_8

    OFFON12345678

    161514131211109

    DSW2

    DIPSW_8

    R8(1) R16(1)

    R17390R

    R18390R

    R19390R

    R20390R

    R21390R

    R22390R

    R23390R

    R24390R

    R25390RR26390RR27390RR28390RR29390RR30390RR31390RR32390R

    D1LED-RED

    OFF ON 12

    43

    DSW3

    DIPSW_2

  • out ddrb,r0 out ddrc,r18 out ddrd,r19 ingreso: in r16,pina in r17,pinb sbic pinc,7 rjmp resta suma: add r16,r17 decodificador: adc r20,r20 mov r19,r16 andi r19,$0f ldi r30, low(tabla
  • BIBLIOGRAFIA:

    Hojas guas de la prctica 6;Disponible en World Wide Web: ATMEL; 8-bit AVR; Instruction Set