CALLAO, ........... DEL .............. MSc. Ing. Jacob Astocondor Villar
1
UNIVERSIDAD NACIONAL DEL CALLAO TEMA: MANEJO DE
FIEE-2014V
MICROCONTROLADORES
LABORATORIO 01
PUERTOS ENTRADA/SALIDA
I. OBJETIVO Aprender a desarrollar programas con el microcontrolador Atmega8, utilizando instrucciones básicas. Aprender a manejar el entorno de desarrollo AVR STUDIO V4.0 Aprender a grabar la memoria flash del microcontrolador II.
MATERIALES 1 módulo de entrenamiento Avr Mega8. 1 Módulo de entrada/salida. 1 Cable de programación 1 computadora personal.
Entorno de desarrollo AVR STUDIO Cables de conexión 1 computadora personal Fuente de alimentación Punta lógica multitester
III. PROCEDIMIENTO 1.-Se desea escribir un programa que permita prender 2 leds, que están conectados a 2 pines de un puerto B del microcontrolador
El microcontrolador ATmega8L tiene 23 pines programables E/S. Para la solución utilizaremos PB0 ,PB6 y PB7 de acuerdo al siguiente Circuito esquemático:
Para desarrollar el programa utilizaremos el entorno AVR STUDIO y los componentes del laboratorio a implementar, que explicaremos a continuación. Se pide armar el circuito de la figura
IV. MANEJO DEL AVR STUDIO una vez instalado el software AVR-STUDIO V8.0 se sigue los pasos Primer paso Ejecutar el entorno AVR STUDIO La primera ventana con las que encontrarán después de abrir el AVR STUDIO
será la siguiente y en la cual seleccionaremos New Project
MSc. Ing. Jacob Astocondor Villar
2
UNIVERSIDAD NACIONAL DEL CALLAO
FIEE-2014V
MICROCONTROLADORES
LABORATORIO 01
SEGUN DO PA SO Luego en la siguiente ventana se nos pedirá darle un nombre a nuestro pro yecto, así como dónde se desea guardar dicho proyecto; también se nos pregunta si deseamos crear una carpeta específica para nuestro proyecto, la cual llevará el nombre del mismo. Luego daremos click en next
En esta ventana se nos pide seleccionar la plataforma de depuración y el dispositivo con el cual trabajaremos. En nuestro caso seleccionaremos la plataforma AVR Simulator y el dispositivo atmega8. Luego daremos click en Finish
Por fin nos encontramos en nuestro entorno de trabajo.
Ahora si podemos iniciar con la programación....
MSc. Ing. Jacob Astocondor Villar
3
UNIVERSIDAD NACIONAL DEL CALLAO
FIEE-2014V
MICROCONTROLADORES
LABORATORIO 01
TERCER
PASO: EDICION DEL PROGRAMA El programa que se muestra como primer ejemplo es el siguiente .include "m8def.inc" .cseg .org 0x0000 RJMP INICIO //---------------------------------------------INICIO: SBI DDRB, PB6 // poner a 1 bit 6 SALIDA SBI DDRB, PB7 //poner a 1 bit 7 SALIDA CBI DDRB, PC0 // PONER A 0 bit 0 ENTRADA //-----------------------------------------------BUCLE_INFINITO: SBIS PINC, PC0 //Lee el pin PC0 salta si esta abierto RJMP LED_ENCENDIDOS SBIC PINB, PC0 // Lee el pin PC0 salta si esta cerrado RJMP LED_APAGADOS LED_ENCENDIDOS: LDI R16,0b11111111 OUT PORTB,R16 RJMP BUCLE_INFINITO LED_APAGADOS: LDI R16,0b00000000 OUT PORTB,R16 RJMP BUCLE_INFINITO CUARTO PASO : ENSAMBLAJE Y DEPURACION DEL PROGRAMA
Este programa deberá ser ensamblado usando cualquiera de los siguientes botones: el permite ensamblar y hacer la simulación de programa
segundo d e estos no
.include " m8def.inc" --> Contiene todas la definiciones de registros y otros datos del trabajará con un ATmega1284p se colocaría .include "m1284pdef.inc
m8=ATmega8, si se
.cseg --> O segmento de código, Indica que lo que sigue es el programa que irá en la flash. También existe .eseg o segmento de eeprom (para datos que irán en la eeprom) .dseg o segmento de datos (para datos que irán en la r am .org 0x0000 RJMP INI CIO -->Es la primera dirección o la dirección de inicio del programa ( esto siempre debe estar presente para poderle indicar a uC dónde debe ir al iniciar el programa). En nuestro caso haremos un salto incondicional ( RJMP INICIO) a la etiqueta INICIO --> O SBI DDRB,PB1 Setear Bit en registro I/O permite configurar el pin PB1 como salida. Cada puerto de I/O cuenta con 3 registros: DDRx permite configurar entradas ("1") y salidas ("0") ;
PORTx permite poner la salida a "1" ó "0" cuando el pin es salida y también permite habilitar("1") la resistencia pull up de dicho pin o deshabilitarla("0") cuando el pin es entrada; PINx permite leer el estado del pin SBI C PI NB ,PB0 CBI PORTB,PB1 SBI S PI N B,PB 0 SBI PORTB,PB1 RJMP BUCLE _INF I NI TO
--> Salta si Bi t en registro I /O es Clear -->Clear Bit en registro I /O -->Salta si Bi t en registro I /O estáSeteado --> Setear Bi t en registro I /O --> Salto incondicional a la etiqueta BUCLE _INF I NI TO
PASO 5.- Simulación del programa con el proteus Presentar el informe final de acuerdo al os pasos realizados