Preparatorio 6 - Programación de Los Microcontroladores Atmel

December 19, 2017 | Author: Ian Baquero | Category: Microcontroller, Pointer (Computer Programming), Bit, Clock, Computer Memory
Share Embed Donate


Short Description

Descripción: Preparatorio 6 sistemas microprocesador escuela politécnica nacional...

Description

ESCUELA POLITÉCNICA NACIONAL FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA

Laboratorio de Sistemas Microprocesados INFORME

X

TRABAJO PREPARATORIO

Práctica #: _6_ Tema: PROGRAMACIÓN DE LOS MICROCONTROLADORES ATMEL.

Realizado por: Alumno (s): Margarita Ruiz Proaño

Grupo: GR-5

(Espacio Reservado) Fecha de entrega: 2016 / 06 / 14 Año

mes

f. _________________________

día

Recibido por:

Sanción: ____________________________________________________

PERÍODO 2016 – A

1) Consultar: 1.1

Las características generales del microcontrolador ATMEGA 164p, especialmente en la parte referente a la disposición de terminales (pines) generales de entrada/salida, los de alimentación, el RESET y los usados para la programación del mismo.

VCC Alimentación de Voltaje dc GND Tierra Puerto A (PA7:PA0) El puerto A sirve como entradas analógicas para el conversor Análogo Digital. El puerto A también sirve como un puerto bidireccional de 8 bits con resistencias internas de pull up (seleccionables para cada bit). Los buffers de salida del puerto A tienen características simétricas controladas con fuentes de alta capacidad. Los pines del puerto A están en tri- estado cuando las condiciones de reset están activadas o cuando el reloj no este corriendo. El puerto A también sirve para varias funciones especiales del Atmega164P como la Conversión Análoga Digital. Port B (PB7:PB0) El puerto B es un puerto bidireccional de 8 bits de E/S con resistencias internas de pull up. Las salidas de los buffers del puerto B tienen características simétricas controladas con fuentes de alta capacidad. Los pines del puesto B están en tri-estado cuando las condiciones de reset están

activadas o cuando el reloj no esté corriendo. El puerto B también sirve para varias funciones especiales del Atmega164P. Port C (PC7:PC0) El puerto C es un puerto bidireccional de 8 bits de E/S con resistencias internas de pull up (seleccionadas por cada bit). Las salidas de los buffers del puerto C tienen características simétricas controladas con fuentes de alta capacidad. Los pines del puesto C están en tri-estado cuando las condiciones de reset están activadas siempre y cuando el reloj no este corriendo. El puerto C también sirve para las funciones de Interfaz del JTAG, con funciones especiales del ATmega164P como se menciona en las páginas iniciales. Port D (PD7:PD0) El Puerto D es un puerto bidireccional de entradas y salidas con resistencias internas de pull up (seleccionadas por cada bit). Las salidas de los buffers del puerto D tienen características simétricas controladas con sumideros de fuentes de alta capacidad. Los pines del Puerto D están en tri-estado cuando llega una condición de reset activa, siempre y cuando el reloj no esté corriendo . El puerto D también sirve para varias funciones especiales del Atmega164P. RESET Entrada del Reset. Un pulso de nivel bajo en este pin por períodos de pulso mínimo genera un reset, siempre y cuando el reloj no esté corriendo. La longitud del pulso mínimo está especificada en las Características y Sistemas de Reset (Páginas 331 del Data Sheet). Pulsos cortos no son garantizados para generar un reset. XTAL1 Entrada para el amplificador del oscilador invertido y entrada para el circuito de operación del reloj interno. . XTAL2 Salida del Oscilador amplificador de salida. AVCC AVCC es la alimentación de voltaje para el pin del Puerto F y el Conversor Análogo a Digital. Este debe ser conectado externamente a VCC, siempre y cuando el ADC no sea usado. Si el ADC es usado, este deberá ser conectado a VCC a través de un filtro paso bajo. AREF Está es la referencia para el pin de la conversión Análoga a Digital.

1.2

La manera de configurar y usar los puertos de entrada/salida.

• Pines de entrada/salida (I/O) de propósito general • Mediante ellos, el micro PIC puede monitorizar y controlar otros dispositivos. • Para añadir flexibilidad al micro, muchos de sus pines de entrada/salida están multiplexados con funciones alternativas.

•Para la mayoría de los puertos, la dirección del pin I/O es controlada por el registro de dirección de datos, llamado TRIS. TRISX controla la dirección del pin n del puerto X. • Un 1 en el registro TRIS indica que el pin es entrada. Un 0 indica que es salida. Estructura típica de un puerto de entrada/salida de propósito general.

El valor de RESET de los registros TRIS suele ser un ‘1’, de forma que por defecto los pines estén configurados como entradas evitando posibles cortocircuitos en la alimentación que podrían dañar el micro o el resto del sistema. El registro PORT funciona como un latch para los datos de salida. Cuando el registro PORT se lee (Ej, MOVF PORTB,W), el micro lee los niveles presentes en los pines de I/O (no en los latches). Cuando una función está multiplexada en un pin de I/O de proposito general, la funcionalidad de un pin puede cambiar para acomodarse a los requisitos del módulo periférico. Por ejemplo, si un micro tiene un conversor A/D, los pines asociados a este módulo están configurados en un RESET como entradas analógicas para evitar un consumo de corriente excesivo en el buffer de dicho pin si este estuviera configurado como entrada digital y el valor de tensión en el pin estuviera a un nivel intermedio

1.3

El manejo de tablas en el AVR Atmega164p (uso de la instrucción LPM). Esta instrucción se usará para realizar la conversión de binario a hexadecimal. (Revisar el Anexo1)

LPM carga un dato de la memoria flash a un registro, es decir, 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 instrucción puede dirigirse a los primeros 64K bytes (32K words) de memoria de programa. El registro puntero Z queda inalterado por el funcionamiento.

2) Diseñar y armar en protoboard un circuito que permita ingresar 2 números de 8 bits mediante 2 dip switch que serán conectados a los puertos PORTB y PORTD respectivamente. Se manejará un par de displays de 7 segmentos(ánodo o cátodo común) que serán conectados a los otros dos puertos disponibles. No olvidar que los display de 7 segmentos deben conectarse usando resistencias limitadoras de corriente, revisar las características eléctricas en cuanto a la capacidad de manejo de corriente del microcontrolador para el diseño de las mismas (sección Características Eléctricas del manual). En uno de los dos pines sobrantes en los puertos de los display conectar un interruptor el cual funcionara como selector.

3) Escribir un programa en Assembler que permita multiplicar los dos números que se ingresan en los dip switch y mostrar el resultado en los dos display de 7 segmentos en hexadecimal. Si el switch de selección se encuentra en ON se debe mostrar la parte baja (menos significativa) del resultado de la multiplicación, mientras que si está en OFF se debe mostrar la parte alta (más significativa) del resultado de la multiplicación. La decodificación de binario a hexadecimal se realizará por software dentro del microcontrolador. (NO USAR DECODIFICADORES BCD a / segmentos EXTERNOS)

.include"m164pdef.inc" .def var1=r16 .def var2=r17 .def res1=r18 .def res2=r19 .def aux=r20 ldi var1,0b00000000 out ddrb,var1 out ddrd,var1 ldi var1,0b11111111 out ddra,var1 out ddrc,var1 ldi var1,0b11111111 out portb,var1 out portd,var1 in var1,MCUCR andi var1,0b11101111 out MCUCR,var1 cbi ddra,7 Lazo: in var1,pinb in var2,pind mul var1,var2 mov res1,R0 mov res2,R1 sbis pina,7 ; si es 1L salta una instruccion rjmp Bajo mov aux,res2 andi aux,0b00001111 call subrutina out porta,aux mov aux,res2 andi aux,0b11110000 swap aux call subrutina out portc,aux rjmp fin Bajo: mov aux,res1 andi aux,0b00001111 call subrutina out porta,aux mov aux,res1 andi aux,0b11110000 swap aux call subrutina out portc,aux fin: rjmp Lazo subrutina: ldi zh,high(TABLA
View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF