sábado, 1 de octubre de 2011

Primer programa 16f876A ADC y PWM

Primero de todo comentar que el bootloader es lo más cómodo que he utilizado desde que empeze con esto y animo a todos los que crean que tiene mucho lio, que se pongan, es realmente fácil y cómodo.
Dicho esto, este es el primer programa que he realizado en pbp para el 16F876A, aparte del mítico Blink. Es para utilizar un potenciometro con el conversor analógico que trae el pic. Lee el potenciometro en una de las entradas analógicas del pic (AN0) y con ello controlamos la intensidad del un led mediante PWM.

DEFINE LOADER_USED 1 'Para usar el bootloader

DEFINE OSC 20 'Defino la velocidad del cristal

DEFINE ADC_BITS 10 'Conversión A/D a 10 bits
DEFINE ADC_CLOCK 3
DEFINE ADC_SAMPLEUS 10

Led1 VAR portc.1 'El puerto C1 pasa a llamarse LED1
Dato VAR WORD 'Variable para el dato
TRISA = %11111111 'Puerto A todo como entradas
ADCON1 = %10000010

PAUSE 1000

Inicio:
ADCIN 0,Dato 'Lee el puerto AN0 y lo guarda en la variable Dato
Dato = Dato /4 ' Al tener la conversión en 10bits la variable es de 0 a 1024 dividimos
PWM Led1,dato,30' ' entre 4 para tener una variable de 0 a 255.
GOTO Inicio ' PWM lee la variable almacenada en Dato y la transmite atraves de Led1
END


Aquí tenéis los archivos para descargar: ADC y PWM con 16f876A

Un saludo!!

1 comentario :

  1. se ve interesante, gracias por compartir, la informacion, buen blog.

    ResponderEliminar