Sei sulla pagina 1di 4

MANEJO DE PUERTOS CON ATMEGA8

OBJETIVO
Aprender a desarrollar programas con el microcontrolador Atmega8, utilizando instrucciones bsicas. Aprender a manejar el entorno de desarrollo AVR STUDIO V6.0 Aprender a grabar la memoria flash del microcontrolador. MATERIALES

1 mdulo de entrenamiento AVR Mega8. 1 Mdulo de entrada/salida. 1 Cable de programacin 1 computadora personal. Cables de conexin Fuente de alimentacin Punta lgica multitester

PROCEDIMIENTO 1.-Se desea escribir un programa que permita prender 2 leds, que estn conectados a 2 pines de un puerto B del microcontrolador El microcontrolador ATmega8L tiene 23 pines programables E/S. Para la solucin utilizaremos PB0, PB6 y PB7 de acuerdo al siguiente Circuito esquemtico:

Para desarrollar el programa utilizaremos el entorno AVR STUDIO y los componentes del laboratorio a implementar. Se pide armar el circuito de la figura.

Paso1:
Ejecutar el entorno AVR STUDIO La primera ventana con las que encontrarn despus de abrir el AVR STUDIO ser la siguiente y en la cual seleccionaremos New Project

En ella nos mostrara el lenguaje de programacin a usar que puede ser assembler o lenguaje C, luego tenemos que ponerle un nombre a nuestro proyecto y elegir en qu direccin se va a guardar, al terminar de hacer esto se presiona ok.

Paso2:

En esta ventana se muestran una gran variedad de microcontroladores atmega, en el cual vamos a elegir el microcontrolador atmega8. Luego daremos click en ok.

Al realizar todos los procesos anteriores correctamente recin nos saldr el entorno de trabajo en el cual podemos ingresar la programacin que nos plazca.

Paso 3:
Diagrama de flujo

Inicio

Org 0x0000 SBI DDRB, PB6 SBI DDRB, PB7

CBI DDRB, PC0

Bucle infinito

PC0 abierto

Led apagado
LDI R16,0b00000000 OUT PORTB,R16 RJMPBUCLE_INFINITO

Led encendido
LDI R16,0b11111111 OUT PORTB,R16 RJMPBUCLE_INFINITO

Programacin:

Paso 4:
Ensamblaje y depuracin del programa: .include "m8def.inc" --> Contiene todas la definiciones de registros y otros datos del m8=ATmega8, si se trabajar con un ATmega1284p se colocara .include "m1284pdef.inc .cseg --> O segmento de cdigo, Indica que lo que sigue es el programa que ir en la flash. Tambin existe: .eseg o segmento de eeprom (para datos que irn en la eeprom) .dseg o segmento de datos (para datos que irn en la RAM .org 0x0000 --> Es la primera direccin o la direccin de inicio del programa ( esto siempre debe estar presente para poderle indicar a uC dnde debe ir al iniciar el programa). RJMP INICIO --> En nuestro caso haremos un salto incondicional (RJMP INICIO) a la etiqueta INICIO SBI DDRB, PB1 --> O 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 tambin 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. SBIC PINB, PB0 --> Salta si Bit en registro I/O es Clear CBI PORTB, PB1 -->Clear Bit en registro I/O SBIS PINB, PB0 -->Salta si Bit en registro I/O est Seteado SBI PORTB, PB1 --> Setear Bit en registro I/O RJMP BUCLE_INFINITO --> Salto incondicional a la etiqueta BUCLE_INFINITO Paso 5: Simulacin del programa en proteus:

Potrebbero piacerti anche