Memprogram ADC Mikrokontroler ATMEGA 8535 dengan Codevision AVR

Keunggulan utama mikrokontroler keluarga AVR semisal mikrokontroler ATMEGA 8535 dibanding dengan pendahulunya MCS-51 adalah mikrokontroler ATMEGA 8535 ini telah memiliki ADC internal sebesar 10 bit.

Hal diatas menguntungkan karena bila kita ingin mengolah suatu data analog seperti sensor suhu LM 35, sensor kelembaban SHT 11, intensitas cahaya dengan LDR (light dependent resistor) atau dengan photodiode, dll maka kita tidak memerlukan komponen tambahan seperti IC ADC 0804.

Lalu bagaimana cara memprogram ADC pada mikrokontroler ATMEGA 8535, sangat mudah tentunya tergantung dengan bahasa pemrograman yang dikuasai, jika mahir dalam menggunakan bahasa basic maka silahkan gunakan compiler Bascom AVR jika mahir menggunakan bahasa C maka silahkan gunakan compiler codevision AVR. Dalam tulisan kali ini akan digunakan compiler codevision AVR.

Untuk simulasi, silahkan buat rangkaian minimum plus LCD di proteus, seperti dibawah ini.

Memprogram ADC Mikrokontroler ATMEGA 8535 dengan Codevision AVR

Lalu buka codevision dan, setting seperti gambar berikut.

Memprogram ADC Mikrokontroler ATMEGA 8535 dengan Codevision AVR Memprogram ADC Mikrokontroler ATMEGA 8535 dengan Codevision AVR


Ketikkan program seperti berikut:

#include      
#include
#include

#asm
   .equ __lcd_port=0x15 ;PORTC
#endasm
#include

#define ADC_VREF_TYPE 0x00
unsigned int read_adc(unsigned char adc_input)
{
ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);
delay_us(10);
ADCSRA|=0x40;
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
return ADCW;
}

int data_adc;
char data[8];
void main(void)
{
PORTA=0x00;
DDRA=0x00;
PORTB=0x00;
DDRB=0x00;

PORTC=0x00;
DDRC=0x00;

PORTD=0x00;
DDRD=0x00;

TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;

TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;
MCUCR=0x00;
MCUCSR=0x00;

TIMSK=0x00;
ACSR=0x80;
SFIOR=0x00;
ADMUX=ADC_VREF_TYPE & 0xff;
ADCSRA=0x84;
SFIOR&=0xEF;
lcd_init(16);

while (1)
{
lcd_clear();
lcd_gotoxy(0,0);
lcd_putsf("Data ADC:");
data_adc= read_adc(0);
lcd_gotoxy(0,1);
ftoa(data_adc,1,data);
lcd_puts(data);
delay_ms(500);

};
}

Compile, dan downloadkan ke rangkaian proteus yang telah dibuat dan jalankan program

Memprogram ADC Mikrokontroler ATMEGA 8535 dengan Codevision AVR


Semoga bermanfaat

0 komentar:

Posting Komentar