Control De Encendido Y Giro De Un Motro Con Atmega 8 Avr
Enviado por efraiv • 13 de Octubre de 2014 • 652 Palabras (3 Páginas) • 269 Visitas
Introducción
Cualquier aplicación de un Sistema digital basado en un microprocesador o Microcontrolador requiere l transferencia de datos entre circuitos externos al microprocesador y el mismo. Estas transferencias constituyen las operaciones llamadas entrada y salida. Los puertos de entrada/salida son básicamente registros externos o internos. Algunos microprocesadores proporcionan señales de control que permiten que los registros externos que forman los puertos de E/S ocupen un espacio de direcciones separada, es decir, distinto del espacio de direcciones de los registros externos que componen la memoria. Cuando los puertos tienen asignado un espacio de direcciones separado, se dice que están en modo de entrada/salida aislada o e/s estándar. Por el contrario, cuando se ubican dentro del mismo espacio que la memoria, se dice que están en modo de entrada/salida mapeada a memoria o proyectad en memoria.
Objetivo
Configurar los puertos del microcontrolador como E/S digital y utilizarlos en la resolución de problemas.
Material y equipo
Equipo Material
Microcontrolador Motor de D.C.
Programador Led’s
Protoboard
Entorno de desarrollo integral
3. Desarrollo de la práctica
Entradas Salidas
PB1Izquierda/derecha 0/1 PD0 YPD1 Salidas al motor
PB0 On/Off 1/0
A) Controlar el encendido y giro de un motor de corriente directa utilizando E/S digitales del microcontrolador.
#include "m8DEF.INC"
.CSEG; Directiva que define la memoria de programa
.org $0; Directiva que define la direccion de memoria
rjmp comenzar; salto incondicional a start
comenzar: ldi R16, 0b00000000 ;Se definen el PortB como entrada y el PortD como salida
out DDRB, R16
ldi R16, 0b00000011
out DDRD, R16
leer: in R16, PINB
andi R16, 0b00000001 ; se filtra el puerto b
cpi R16, 0b00000001 ;si es igual a esto se salta a la etiqueta encendido
breq encendido ;sino es el caso , se manda a leer y se raliza denuevo la operacion
out PORTD, R16
rjmp leer
encendido: in R16, PINB ;se obtienen datos del puerto b y se manda al registro
andi R16, 0b00000010 ; se filtra lo recibido en el puerto b
cpi R16, 0b00000010 ; se compara con esto, su es igual se manda a la etiqueta derecha para girar el motor a la derecha
breq derecha
brne izquierda ;sino a la etiqueta izquierda
izquierda: ldi R16, 0b00000001
out PORTD, R16
rjmp leer
derecha: ldi R16, 0b00000010
...