Descripción: Ficha importante de control en la atención del paciente con auriculoterapia
explicacion de las interrrupciones de un arduino megaDescripción completa
Descripción: Cargando y leeyendo imagenes desde una tabla en C#, se hace de cuadros de dialogo para buscar las imagenes de un directorio
Forma de manejar los conflictos con clientesDescripción completa
Descripción completa
microcontroladores timerDescripción completa
2 EJERCICIOS EN C ATMEGA8 UNAC PERUDescripción completa
Descripción completa
Detalle de los puertos de la Hidrovía Paraná ParaguayDescripción completa
p
PuertosDescripción completa
diseño de puertos maritimos
Descripción completa
Descripción completa
MANEJO DE PUERTOS CON ATMEGA8 OBJETIVO Aprender a desarrollar programas con el microcontrolador Atmega8, utilizando instrucciones básicas. Aprender a manejar el entorno de desarrollo AVR STUDIO V6.0 Aprender a grabar la memoria flash del microcontrolador. MATERIALES
1 módulo de entrenamiento AVR Mega8. 1 Módulo de entrada/salida. 1 Cable de programación 1 computadora personal. Cables de conexión Fuente de alimentación Punta lógica multitester
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. Se pide armar el circuito de la figura.
Paso1: 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
En ella nos mostrara el lenguaje de programación a usar que puede ser assembler o lenguaje C, luego tenemos que ponerle un nombre a nuestro proyecto y elegir en qué dirección 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 recién nos saldrá el entorno de trabajo en el cual podemos ingresar la programación que nos pl azca.
Paso 3: Diagrama de flujo
Inicio
Org 0x0000 SBI DDRB, PB6 SBI DDRB, PB7
CBI DDRB, PC0
Bucle infinito
PC0 abierto
Led apagado
Led encendido
LDI R16,0b00000000 OUT PORTB,R16 RJMPBUCLE_INFINITO
LDI R16,0b11111111 OUT PORTB,R16 RJMPBUCLE_INFINITO
Programación:
Paso 4: Ensamblaje y depuración del programa:
.include "m8def.inc" --> Contiene todas la definiciones de registros y otros datos del m8=ATmega8, si se trabajará con un ATmega1284p se colocaría .include "m1284pdef.inc .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 RAM .org 0x0000 --> 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). 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 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.
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á Set eado SBI PORTB, PB1 --> Setear Bit en registro I/O RJMP BUCLE_INFINITO --> Salto incondicional a la etiqueta BUCLE_INFINITO Paso 5: Simulación del programa en proteus: