lab n°3 arquitectura.docx

Download Lab N°3 Arquitectura.docx

Post on 06-Feb-2016

4 views

Category:

Documents

0 download

Embed Size (px)

TRANSCRIPT

AMPLIFICADOR ESTERO DE 180 WATS PARA ROCKOLA

UNIVERSIDAD NACIONAL DEL CALLAO14

FACULTADA DE INGENIERA ELCTRICA Y ELECTRNICA

UNIVERSIDAD NACIONAL DEL CALLAO

Facultad de Ingeniera Elctrica y ElectrnicaEscuela Profesional de Ingeniera Electrnica

LABORATORIO N3MANEJO DE INSTRUCCIONES

CURSO: ARQUITECTURA DE COMPUTADORAS

ALUMNO:GARCIA VICENTE, ANDRE 1023220432HARO SEGURA, PEDRO 1023220192TORRES ANDRADE, ANTHONY WILSON 1023220646

CICLO: 2015 A

PROFESOR: ING. CONDOR DE LA CRUZ, FLAVIO

LIMA CALLAO2015MANEJO DE INSTRUCCIONES OBJETIVO Conocer las instrucciones elementales en lenguaje ensamblador Aprender a desarrollar programas con el microcontrolador Atmega8, utilizando instrucciones bsicas. Aprender a manejar el entorno de desarrollo VMLAB. Aprender a grabar la memoria flash del microcontrolador

INTRODUCCINEl microcontrolador es un circuito integrado de muy alta escala de integracin que contiene las partes funcionales de un computador:

CPU (Central Processor Unit o Unidad de Procesamiento Central) Memorias voltiles (RAM), para datos Memorias no voltiles( ROM, PROM, EPROM) para escribir el programa Lneas de entrada y salida para comunicarse con el mundo exterior. Algunos perifricos (comunicacin serial, temporizador, convertidor A/D, etc)

Es decir el microcontrolador es un computador integrado en un solo chip. Integrar todos estos elementos en un solo circuito integrado a significado desarrollar aplicaciones importantes en la industria al economizar materiales, tiempo y espacio.

QUE NO HACE EL MICROCONTROLADOR?

Las aplicaciones de un microcontrolador son tan inmensas que el lmite es la propia imaginacin del usuario. Estos microcontroladores estn en el auto, en el televisor, en el telfono, en una impresora, en un horno de microondas, en un transbordador espacial, en un juguete, etc. Algunas fuentes estiman que en una casa tpica de E.U se tiene alrededor de 250 microcontroladores.FUNDAMENTOS TERICOS Manejo de puertos entrada y salida

Los puertos son un conjunto de lneas (pines) programables como entrada salida que dispone el microcontrolador para comunicarse con el mundo exterior.

El microcontrolador Atmega8(L), tiene 3 puertos de E/S (Puertos B, C D). Todos los pines de cada puerto son programables como entrada o salida de datos configurando el registro asociado respectivo.

Cuando se programa el funcionamiento de un puerto como entrada tenemos que habilitar o deshabilitar las resistencias pull-up internas. Cada pin del puerto tiene independiente su resistencia pull-up como una resistencia invariante hacia la fuente de voltaje, adems tiene 2 diodos de proteccin uno conectado a Vcc y el otro conectado a GND. (Ver figura 1)

Figura N1: Diagrama equivalente de un pin de E/S

En resumen, para cada puerto del microcontrolador (puertos B, C y D) existen tres registros de E/S que permiten configurar cada pin del puerto como entrada o salida, enviar datos a los pines configurados como salidas, y recibir datos de los pines configurados como entradas.Estos registros son: El Registro de Direcciones de Datos DDRx. El Registro de Datos PORTx. El registro PINx.

En el prrafo anterior, x puede ser B, C D. Es decir, si nos referimos al puerto B, los registros son DDRB, PORTB y PINB.

Los registros PINx son de slo lectura, mientras que los registros PORTx y DDRx son de lectura/escritura. Adicionalmente, el bit Pull-up Disable PUD, en el registro SFIOR inhabilita la funcin Pull-up para todos los pines de todos los puertos cuando es puesto a nivel alto. (Ver Figura 2)

Cada pin del puerto de E/S, est asociado a 3 registros DDxn, PORTxn, y PINxn, cuyas direcciones en el espacio de memoria estn indicados por los Registros DDRx E/S, PORTxE/S y PINxE/S.(ver Register Descripcin for E/S ports, pgina 63 del manual Atmega8(L)).

El bit DDxn del Registro DDRx, establece la direccin de este pin. Si DDxn es escrito con 1 lgico, Pxn es configurado como un pin de salida. Si en DDxn es escrito un 0, Pxn es configurado como un pin de entrada.

Si el pin PORTxn est configurado como un pin de entrada y es escrito un 1 lgico, entonces la resistencia pull-up est activada. En cambio s en PORTxn est configurado como un pin de salida es escrito con un 0 lgico, la resistencia pull-up est desactivada.

Si el pin PORTxn est configurado como un pin de salida y es escrito con un 1 lgico, el pin toma un valor alto, en cambio s es escrito con 0 lgico el pin toma un valor bajo(cero).

Figura N2: Puertos de E/S

Adicionalmente, se puede observar en el anterior diagrama que si el bit PUD(PULLUP DISABLE) del registro SFIOR, tiene un valor alto 1, se deshabilitarn las resistencias pullup de todos los puertos. El funcionamiento de la configuracin de los pines de un puerto se resume en la siguiente tabla:

DDxnPORTxnPUD (en SFIORE/SPull upComentario

00XEntradaNoTri slate

010EntradaYes

011EntradaNoTri slate

10XSalidaNoSalida baja

11XSalidaNoSalida Alta

Tabla N1: Configuracin de los pines del puerto

PROCEDIMIENTOSimular los siguientes ejercicios:

Ejercicio N1

Programar que visualizar por el puerto D los datos ingresados por el puerto B.

PROGRAMA:

//-----------------------------------------------------------------------------------------------------------------.include "m8def.inc"; Tipo de procesador.cseg; Segment de cdigo para menor flash.org 0x000;; Direcciones del vector Resetrjmp inicio;; Salto para empezar desde inicio //--------------------------------------------------- INICIO ----------------------------------------------------inicio://-----------------------------------------------------------------------------------------------------------------ldi R16,0b0000000; Carga la constante 0x00 en el registro r16ldi R17,0b1111111;; Cargar la constante 0xFF en el registro R17out DDRB,R16; Configurar todos los bits del Puerto B como entrada out DDRD,R17; Configurar todos los bits del Puerto D como salidas//--------------------------------------------------- LAZO ----------------------------------------------------lazo://-----------------------------------------------------------------------------------------------------------------in R18,PINB; Almacena datos del Puerto B en el registro R18out PORTD,R18; Visualiza por el puerto D el dato del registro R18rjmp lazo; Bucle, se repite desde lazo//------------------------------------------------------ FIN -----------------------------------------------------

PROTEUS:

Figura 1: Simulacin del Ejercicio N1ATMEGA 8:

Figura N2: Programa del Ejercicio N1

Ejercicio N2

Programa que suma los datos ingresados por los 4 bits menos significativos del puerto B el puerto C. El resultado se visualizara por el puerto D.

Obs: Para realizar la resta utilizar la instruccin SUB

PROGRAMA:

//-----------------------------------------------------------------------------------------------------------------.include "m8def.inc"; Tipo de procesador.cseg; Segmento de cdigo para memoria flash.org 0x000; Direccin del vector resetrjmp inicio; Salto para empezar desde inicio//--------------------------------------------------- INICIO ----------------------------------------------------inicio://-----------------------------------------------------------------------------------------------------------------ldi R16,0b00000000; Cargar la costante 0x00 en el registro R16ldi R17,0b11111111; Cargar la costante 0xFF en el registro R17out DDRB,R16; Configurar todos los bits del Puerto B como entradaout DDRC,R16; Configurar todos los bits del Puerto C como entradaout DDRD,R17; Configurar todos los bits del Puerto D como salida//--------------------------------------------------- LAZO ----------------------------------------------------lazo://-----------------------------------------------------------------------------------------------------------------in R18,PINB; Almacena datos del Puerto B en el registro R18in R19,PINC; Almacena datos del Puerto C en el registro R19ADD R18,R19; Suma R18 y R19, el resultado se almacena en R18out PORTD,R18; Visualiza por el Puerto D el dato de R18rjmp lazo; Bucle, se repite de lazo//------------------------------------------------------ FIN -----------------------------------------------------PROTEUS:

Figura 3: Simulacin del Ejercicio N2

ATMEGA 8:

Figura N4: Programa del Ejercicio N2

Ejercicio N3

Programa que realiza la operacin lgica AND entre los datos ingresados por los 4 bits menos significativos del Puerto B y el puerto C. El resultado se visualizara en el Puerto D.PROGRAMA:

//-----------------------------------------------------------------------------------------------------------------.include "m8def.inc"; Tipo de procesador.cseg; Segmento de cdigo para memoria flash.org 0x000; Direccin del vector resetrjmp inicio; Salto para empezar desde inicio//--------------------------------------------------- INICIO ----------------------------------------------------inicio://-----------------------------------------------------------------------------------------------------------------ldi R16,0b00000000; Cargar la costante 0x00 en el registro R16ldi R17,0b11111111; Cargar la costante 0xFF en el registro R17out DDRB,R16; Configurar todos los bits del Puerto B como entradaout DDRC,R16; Configurar todos los bits del Puerto C como entradaout DDRD,R17; Configurar todos los bits del Puerto D como salida//--------------------------------------------------- LAZO ----------------------------------------------------lazo://-----------------------------------------------------------------------------------------------------------------in R18,PINB; Almacena datos del Puerto B en el registro R18in R19,PIN