IMPLEMENTACION DE LA RUTINA DEL MODULO ADC
CON POTENCIOMETRO Y LED’S
MATERIALES:
·
MICROCONTROLADOR 18F2550
·
8 LED’S
·
8 RESISTENCIAS
·
3 POTENCIOMETRO
PROGRAMA PRIMERA PARTE
#include
<18F2550.h> //
DEFINE EL PROCESADOR
#device
adc=8 //
NUMERO DE BIT’S A UTILIZAR
#fuses HS, NOWDT, NOPROTECT, NOLVP, NODEBUG, USBDIV,
PLL3, CPUDIV1, VREGEN
#use delay(clock=12000000) // CRISTAL 12MHz
#byte portb= 0x06
int VALOR; //
VARIABLE ENTERA
void main() {
set_tris_b(0x00); // PUERTO B COMO SALIDA
SETUP_ADC_PORTS(AN0|VREF_VREF);
setup_adc(ADC_CLOCK_INTERNAL); //
RELOJ INTERNO
WHILE(TRUE) {
set_adc_channel(0); //ACTIVA
EL CANAL DEL CONVERSOR
delay_us(20); //RETARDO
DE MUESTREO
VALOR = read_adc();
// COLOCO EL EL RESULTADO DE LA
// CONVERSION
EN VALOR
output_b (VALOR); // ENVIO VALOR AL PUERTO B
}
}
ESTE PROGRAMA ESTA DISEÑADO PARA EVALUAR UN RANGO ENTRE OV (VALOR MINIMO) Y 5V(VALOR MAXIMO). TENIENDO COMO REFERENCIA VSS Y VSS
DIAGRAMA DE FLUJO
HARDWARE DEL CIRCUITO A
PROGRAMA SEGUNDA PARTE
#include
<18F2550.h> // DEFINE EL PROCESADOR
#device
adc=8
// NUMERO DE BIT’S A UTILIZAR
#fuses HS, NOWDT, NOPROTECT, NOLVP, NODEBUG, USBDIV,
PLL3, CPUDIV1, VREGEN
#use delay(clock=12000000)
//CRISTAL 12MHz
#byte portb= 0x06
int VALOR; //
VARIABLE ENTERA
void main() {
set_tris_b(0x00); // PUERTO B COMO SALIDA
SETUP_ADC_PORTS(AN0|VSS_VDD);
setup_adc(ADC_CLOCK_INTERNAL); // RELOJ INTERNO
WHILE(TRUE) {
set_adc_channel(0); // ACTIVO EL CANAL DEL CONVERSOR
delay_us(20); // RETARDO DE MUESTREO
VALOR = read_adc(); // ENVIO LA CONVERSION A VALOR
output_b (VALOR); //
ENVIO VALOR AL PUERTO B
}
}
ESTE PROGRAMA ESTA DISEÑADO PARA EVALUAR UN RANGO ENTRE 1.6V (VALOR MINIMO) Y 3.3V(VALOR MAXIMO). TOMANDO COMO REFERENCIA VREF- VREF
DIAGRAMA DE FLUJO
HARDWARE DEL CIRCUITO B
No hay comentarios:
Publicar un comentario