0% encontró este documento útil (0 votos)
160 vistas14 páginas

Informe Labo2 Micro II

Este documento presenta tres laboratorios para el microcontrolador ATMEGA 32. El primer laboratorio tiene como objetivo familiarizar a los estudiantes con los puertos analógicos del microcontrolador y desarrollar programas para leer datos de sensores. El segundo laboratorio involucra leer valores de tensión de dos canales y visualizarlos en LEDs y un display. El tercer laboratorio expande esto a cuatro canales usando switches para seleccionar el canal. Cada laboratorio incluye diagramas de flujo, código fuente comentado y esquemas de circuitos.

Cargado por

Joel Marcos Copa
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
160 vistas14 páginas

Informe Labo2 Micro II

Este documento presenta tres laboratorios para el microcontrolador ATMEGA 32. El primer laboratorio tiene como objetivo familiarizar a los estudiantes con los puertos analógicos del microcontrolador y desarrollar programas para leer datos de sensores. El segundo laboratorio involucra leer valores de tensión de dos canales y visualizarlos en LEDs y un display. El tercer laboratorio expande esto a cuatro canales usando switches para seleccionar el canal. Cada laboratorio incluye diagramas de flujo, código fuente comentado y esquemas de circuitos.

Cargado por

Joel Marcos Copa
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

UNIVERSIDAD MAYOR DE SAN

ANDRESFACULTAD DE TECNOLOGIA
ELECTRONICA Y TELECOMUNICACIONES

LABORATORIO N° 1

PUERTOS ANALÓGICOS DEL


MICROCONTROLADOR ATMEGA 32

INTEGRANTES:
- Argani Mamani Pedro Alejandro
- Jiménez Motiño Gustavo Adolfo
- Parisaca Mamani Gregory Adailton
- Guarena Mano José Carlos

DOCENTE: Lic. Arturo Marín

MATERIA: Laboratorio de microcontroladores II

LA PAZ – BOLIVIA
MICROCONTROLADOR ATMEGA 32

1. Objetivos: El estudiante al finalizar este laboratorio:


➢ Conoce los registros del microcontrolador ATMEGA 32 encargados de controlar los
puertos analógicos.
➢ Desarrolla programas que permiten leer datos analógicos de sensores de diferente
naturaleza.
2. Fundamento teórico:

El microcontrolador ATMEGA posee 8 pines habilitados para la conversión analógica


digital; el principio de conversión es por aproximaciones sucesivas y su resolución es de
10 bits. Algunas de las características del conversor analógico digital son las siguientes:

▪ 0,5 LSB no lineal


▪ 13 a 260 µs tiempo de conversión
▪ 8 canales de entrada multiplexados en una sola terminación
▪ 7 canales de entrada diferenciales
▪ Voltaje de referencia seleccionable a 2,56 V
▪ Interrupción de conversión completa del ADC

También se incorpora un módulo de muestreo y retención el cual asegura que el voltaje de


entrada al ADC se mantenga constante durante la conversión. En el proceso de
conversión se utiliza un terminal de alimentación separado (AVcc) el cual debe tener un
voltaje igual al Vcc general del microcontrolador, salvo una pequeña diferencia de no más
de ±0.3 V. El microcontrolador soporta 16 combinaciones de voltajes de entrada
diferenciales. Los pines de entrada ADC1 y ADC0 además de ADC2 y ADC3 están
equipadas con una etapa de ganancia programable, con etapas de amplificación de 0 dB
(1x), 20 dB (10x) y 46 dB (200x). Con una ganancia de 1x o 10 x la resolución es de 8 bits
en tano que con una ganancia de 200 x la resolución es de 7 bits.

3. TRABAJO DE LABORATORIO

1. Armar el siguiente circuito con el microcontrolador ATMEGA 32 para digitalizar una


señal analógica introducida por el pin PA.0 (Puerto A pin 0). Comprobar el funcionamiento
del código que también se proporciona.

DIAGRAMA DE FLUJO

INICIO

CONFIGURAR LA
HABILITACION DEL PUERTO
ANALOGICO EL PUERTO B Y
PUERTO D COMO SALIDA
INGRESAR VOLTAJE POR
EL PUERTO ANALOGICO
HACIA EL CONVESOR

IMPRIMIR POR DISPLAY Y BARRA DE LEDS ELDATO


INGRESADO ANALOGICAMENTE

FIN

CODIGO FUENTE COMENTADA


DIAGRAMA ESQUEMATICO DEL CIRCUITO
2. Realizar un programa en lenguaje ensamblador para ATMEGA 32 que permita leer el valor de dos
señales de tensión analógicas introducidas por los canales según la tabla adjunta. El valor leído será
visualizado a través de LEDs conectados al puerto D (8 bits) y al puerto B (2 bits). La selección del
canal será realizada por medio de un pulsador conectado al pin PB7. Además debe mostrarse el
canal seleccionado mediante un display 7 segmentos conectado al puerto C. Este programa será
evaluado para obtener la primera firma.

DIAGRAMA DE FLUJO

INICIO

CONFIGURAR EL PUERTO ANALOGICO EN LOS CANALES 3 Y 6, BOTON


EN PUERTO B Y EL PUERTO B Y EL PUERTO D COMO SALIDA

SI NO
SE PRESIONO
EL BOTON DE
PORTB
SE PRESIONO EL BOTON DEL SE PRECIONO EL BOTON
PORTB Y SE MUESTRA DEL PORTB Y SE MUESTRA
DATOS DEL CANAL 3 DATOS DEL CANAL 6

IMPRIMIR POR DISPLAY Y BARRA DE LEDS ELDATO


INGRESADO ANALOGICAMENTE EL VALOR Y EL CANAL

FIN
CODIGO FUENTE COMENTADA
.INCLUDE"M32DEF.INC"

.ORG 0x00

RJMP INICIO

INICIO:

LDI R16, HIGH (RAMEND)

OUT SPH, R16

LDI R16,LOW(RAMEND)

OUT SPL,R16 ; INICIALIZANDO EL PUNTERO DE PILA

CBI DDRB,7 ;BIT 7 DEL PUERTO B CONFIGURADO COMO

ENTRADA

SBI DDRB,0 ;BIT 0 DEL PUERTO B CONFIGURADO COMO

SALIDA

SBI DDRB,1 ;BIT 1 DEL PUERTO B CONFIGURADO COMO

SALIDA

CBI DDRA,3 ;BIT 3 DEL PUERTO A CONFIGURADO COMO

ENTRADA

CBI DDRA,6 ;BIT 6 DEL PUERTO A CONFIGURADO COMO

ENTRADA

SER R16 ;R16=0b11111111

OUT DDRD, R16 ;CONFIGURANDO EL PUERTO D COMO

SALIDA

SER R16 ;R16=0b11111111

OUT DDRC, R16 ;CONFIGURANDO EL PUERTO C COMO

SALIDA

LDI R16,0x85
OUT ADCSRA,R16 ;HABILITAMOS EL ADC Y SELECCIONAMOS

CK/32

PRINCIPAL: SBIS PINB,7

RJMP CANAL3

RJMP CANAL6

CANAL3: LDI R16,0x43

OUT ADMUX,R16 ;CONFIGURAMOS VREF=AVCC,

JUSTIFICADO A LA DERECHA, CANAL ADC3

LDI R17,0x4F

OUT PORTC,R17

RJMP LEER_ADC

CANAL6: LDI R16,0x046

OUT ADMUX,R16 ;CONFIGURAMOS VREF=AVCC,

JUSTIFICADO A LA DERECHA, CANAL ADC6

LDI R17,0x7D

OUT PORTC,R17

LEER_ADC: SBI ADCSRA,ADSC ;INICIA LA CONVERSION

BUCLE: SBIS ADCSRA,ADIF ;SALTA SIGUIETE INSTRUCCION SI LA

CONVERSION A TERMINADO

RJMP BUCLE

SBI ADCSRA, ADIF ;ESCRIBIMOS UN 1 PARA LIMPIAR LA

BANDERA ADIF

IN R16,ADCL ;CARGAMOS EL CONTENIDO DEL REGISTRO

ADCL A R16

OUT PORTD, R16 ;VISUALIZAMOS POR EL PUERTO D

IN R16,ADCH ;CARGAMOS EL CONTENIDO DEL REGISTRO

ADCH A R16

OUT PORTB,R16 ;VISUALIZAMOS POR EL PUERTO B

RJMP PRINCIPAL
DIAGRAMA ESQUEMATICO DEL CIRCUITO

CANAL 6 AL NO PRESIONAR BOTON

CANAL 3 AL PRESIONAR BOTON


3. Realizar un programa en lenguaje ensamblador para ATMEGA 32 que permita leer el valor de
cuatro señales de tensión analógicas introducidas por los canales según el orden proporcionado en
la tabla adjunta. El valor leído será visualizado a través de LEDs conectados al puerto D (8 bits) y al
puerto B (2 bits). La selección de los canales será realizada por medio de dos switches conectados
a los pines PB6 y PB7. Además añadir un display 7 segmentos al puerto C para visualizar el canal
seleccionado. Este programa será evaluado para obtener la segunda firma.

DIAGRAMA DE FLUJO

INICIO

CONFIGURAR EL PUERTO ANALOGICO EN LOS CANALES 3 ,2, 6 Y 7, SWITCH EN


PUERTO B Y EL PUERTO B Y EL PUERTO D COMO SALIDA

SE PRESIONO
EL SWITCH

SE PRESIONO EL SE PRESIONO EL SE PRESIONO EL SE PRESIONO EL


SWITCH 00 DEL PORTB SWITCH 01 DEL PORTB SWITCH 10 DEL PORTB SWITCH 11 DEL PORTB
Y SE MUESTRA DATOS Y SE MUESTRA DATOS Y SE MUESTRA DATOS Y SE MUESTRA DATOS
DEL CANAL 6 DEL CANAL 7 DEL CANAL 2 DEL CANAL 3

IMPRIMIR POR DISPLAY Y BARRA DE LEDS ELDATO


INGRESADO ANALOGICAMENTE EL VALOR Y EL CANAL

FIN
CODIGO FUENTE COMENTADA

.INCLUDE"M32DEF.INC"
.ORG 0x00
RJMP INICIO
INICIO:
LDI R16, HIGH (RAMEND)
OUT SPH, R16
LDI R16,LOW(RAMEND)
OUT SPL,R16 ;INICIALIZANDO EL PUNERO DE PILA

CBI DDRB,7 ;BIT 7 DEL PUERTO B CONFIGURADO COMO ENTRADA


CBI DDRB,6 ;BIT 6 DEL PUERTO B CONFIGURADO COMO ENTRADA

SBI DDRB,0 ;BIT O DEL PUERTO B CONFIGURADO COMO SALIDA


SBI DDRB,1 ;BIT 1 DEL PUERTO B CONFIGURADO COMO SALIDA

CBI DDRA,2 ;BIT 2 DEL PUERTO A CONFIGURADO COMO ENTRADA


CBI DDRA,3 ;BIT 3 DEL PUERTO A CONFIGURADO COMO ENTRADA
CBI DDRA,6 ;BIT 6 DEL PUERTO A CONFIGURADO COMO ENTRADA
CBI DDRA,7 ;BIT 7 DEL PUERTO A CONFIGURADO COMO ENTRADA

SER R16 ;R16=0B11111111


OUT DDRD, R16 ;CONFIGURANDO EL PUERTO D COMO SALIDA

SER R16 ;R16=0B11111111


OUT DDRC, R16 ;CONFIGURANDO EL PUERTO D COMO SALIDA

LDI R16,0x85
OUT ADCSRA,R16 ;HABILITAMOS EL ADC Y SELECCIONAOS CK/32

PRINCIPAL: IN R16,PINB
ANDI R16,0xC0 ;REALIZA UN AND LOGICO ENTRE EL REGISTRO R16 Y
UNA CONSTANTE
CPI R16,0x00 ;REALIZA UNA COMPARACION ENTRE EL R16 Y UNA
CONSTANTE
BREQ CANAL6
CPI R16,0x40 ;REALIZA UNA COMPARACION ENTRE EL R16 Y UNA
CONSTANTE
BREQ CANAL2
CPI R16,0x80 ;REALIZA UNA COMPARACION ENTRE EL R16 Y UNA
CONSTANTE
BREQ CANAL7
CPI R16,0xC0 ;REALIZA UNA COMPARACION ENTRE EL R16 Y UNA
CONSTANTE
BREQ CANAL3
CANAL6: LDI R16,0x46
OUT ADMUX,R16 ;CONFIGURAMOS VREF=AVCC, JUSTIFICADO A LA
DERECHA, CANAL ADC3
LDI R17,0x7D
OUT PORTC,R17
RJMP LEER_ADC
CANAL2: LDI R16,0x42
OUT ADMUX,R16 ;CONFIGURAMOS VREF=AVCC, JUSTIFICADO A LA
DERECHA, CANAL ADC3
LDI R17,0x5B
OUT PORTC,R17
RJMP LEER_ADC
CANAL7: LDI R16,0x47
OUT ADMUX,R16 ;CONFIGURAMOS VREF=AVCC, JUSTIFICADO A LA
DERECHA, CANAL ADC3
LDI R17,0x07
OUT PORTC,R17
RJMP LEER_ADC
CANAL3: LDI R16,0x043
OUT ADMUX,R16 ;CONFIGURAMOS VREF=AVCC, JUSTIFICADO A LA
DERECHA, CANAL ADC3
LDI R17,0x4F
OUT PORTC,R17
LEER_ADC: SBI ADCSRA,ADSC ;INICIA LA CONVERSION
BUCLE: SBIS ADCSRA,ADIF ;SALTA SIGUIETE INSTRUCCION SI LA
CONVERSION A TERMINADO
RJMP BUCLE
SBI ADCSRA, ADIF ;ESCRIBIMOS UN 1 PARA LIMPIAR LA BANDERA ADIF
IN R16,ADCL ;CARGAMOS EL CONTENIDO DEL REGISTRO ADCL A
R16
OUT PORTD, R16 ;VISUALIZAMOS POR EL PUERTO D
IN R16,ADCH ;CARGAMOS EL CONTENIDO DEL REGISTRO ADCL A
R16
OUT PORTB,R16 ;VISUALIZAMOS POR EL PUERTO D
RJMP PRINCIPAL
DIAGRAMA ESQUEMATICO
SE PRESIONO EL SWITCH 00 DEL PORTB Y SE MUESTRA DATOS DEL CANAL 6

SE PRESIONO EL SWITCH 01 DEL PORTB Y SE MUESTRA DATOS DEL CANAL 7

SE PRESIONO EL SWITCH 10 DEL PORTB Y SE MUESTRA DATOS DEL CANAL 2


SE PRESIONO EL SWITCH 11 DEL PORTB Y SE MUESTRA DATOS DEL CANAL 3

CONCLUCIONES

➢ Al desarrollar el programa se encontro solamente la dificuldad de la selección de


canales, se realizo un programa concreto para lograr hacer correr el programa.

➢ El implementar las instrucciones como por ejemplo la instrucción ADIF nos ayudo a
realizar un complemento basico para la programacion.

También podría gustarte