miércoles, 13 de noviembre de 2013

ADC Y ENSAMBLADOR

A continuación se realizara un ejemplo de la configuración del ADC de un microcontrolador en ensamblador específicamente para el ATMEGA48 en modo corrida libre.

DESCRIPCIÓN
las variables ACUMULADOR y TEMP tiene como objetivo guardar el resultado de la conversión así como de permitir el control de los registros respectivamente, el resultado de la conversión se cargara en la variable ACUMULADOR y se presentara por medio del puerto D.

dejare al final el link con el código del programa y su simulación en proteus

PROGRAMA
/*
 * ADC.asm
 *
 *  Created: 13/11/2013 19:30:41
 *   Author: NEBURESS.KYLL
 */ 

 .def ACUMULADOR=r16
 .def TEMP=r17

 .org 0x00
 rjmp init

 init: 
LDI TEMP,0x60
STS ADMUX,TEMP ;configura el voltaje de referencia así como el canal a utilizar VREF=VCC 
                                                          ;canal ADC0 y la justificación a la izquierda
LDI TEMP,0xFF        
OUT DDRD,TEMP                  ;configura el puerto D como salida
LDI TEMP,0x86
STS ADCSRA,TEMP              ;inicializa el ADC así como fijar el preescalamiento y                                                                                    

START:                                         
LDI TEMP,0xC6
STS ADCSRA,TEMP           ;inicializa conversión 
 CAPTURA:                                          ;espera a que termine la conversión
        LDS TEMP,ADCSRA
SBRS TEMP,4
RJMP CAPTURA       
;TERMINA CONVERSION
LDS ACUMULADOR,ADCH                    
OUT PORTD,ACUMULADOR            ;presenta el resultado de la conversión en el puerto D
RJMP START                                        ;comienza una nueva conversión

                                   ADCSRA REGISTER



 ADMUX REGISTER
PREESCALER


NETWORK







LINK
https://mega.co.nz/#!QttjUCoa!EvKuTXnUWqpT-mJw_ZNfkitw_FVxcfB-Qq3h1ZTnHnw

No hay comentarios:

Publicar un comentario