Percobaan 6
Aplikasi Lanjutan Mikrokontroler AVR
1. Tujuan Percobaan
1. Mempelajari dasar-dasar teknik opto-isolation dengan komponen optocoupler
2. Mempelajari proses pembangkitan sinyal audio secara digital dengan metode
Direct Digital Synthesis (DDS)
3. Mengetahui cara mengendalikan rangkaian bertegangan tinggi secara
terisolasi dengan rangkaian bertegangan rendah
4. Mengaplikasikan metode DDS untuk menghasilkan nada dengan
mikrokontroler AVR.
Rangkaian I/O
4. Langkah Percobaan
1. Menyiapkan modul yang akan digunakan
2. Menyiapkan software CodeVisionAVR 2.05.3
3. Merangkai modul yang akan digunakan dalam praktikum
4. Melakukan percobaan sesuai variasi berikut ini:
#include <delay.h>
void main(void)
{
DDRA=(0<<DDA7) | (0<<DDA6) | (0<<DDA5) | (0<<DDA4) | (0<<DDA3)
| (0<<DDA2) | (0<<DDA1) | (0<<DDA0);
PORTA=(0<<PORTA7) | (0<<PORTA6) | (0<<PORTA5) | (0<<PORTA4) |
(0<<PORTA3) | (0<<PORTA2) | (0<<PORTA1) | (0<<PORTA0);
TCCR0=0x05;
TCNT0=0x00;
OCR0=0x00;
ASSR=0<<AS2;
TCCR2=(0<<WGM20) | (0<<COM21) | (0<<COM20) | (0<<WGM21) |
(0<<CS22) | (0<<CS21) | (0<<CS20);
TCNT2=0x00;
OCR2=0x00;
ADMUX=ADC_VREF_TYPE;
ADCSRA=(1<<ADEN) | (0<<ADSC) | (0<<ADATE) | (0<<ADIF) |
(0<<ADIE) | (1<<ADPS2) | (0<<ADPS1) | (0<<ADPS0);
SFIOR=(1<<ADHSM) | (0<<ADTS2) | (0<<ADTS1) | (0<<ADTS0);
#asm("sei")
while (1)
{
tunda=read_adc(0);
delay=156-(0.61*tunda);
}
}
2. Melakukan proses build/compile dan mendownload program ke
mikrokontroler ATMEL Atmega 8535 dengan modul USBAsp dan
software ProgISP
3. Mengamati hasil percobaan dengan melihat pengaruh input terhadap
output yang terjadi pada modul
4.2 Pembangkitan Nada
1. Menyusun listing program inisialisasi dengan CodeWizard dan listing
program utama dalam bahasa C pada software CodeVisionAVR seperti
berikut
#include <mega8535.h>
#include <tonelib.h>
void main(void)
{
tone_wr_init();
PORTA=0x00;
DDRA=0x00;
PORTB=0x00;
DDRB=0x03;
PORTC=0x00;
DDRC=0x00;
PORTD=0x00;
DDRD=0x00;
while (1)
{
nada_g1(0.3);
jeda(0.1);
nada_g1(0.3);
jeda(0.1);
nada_c2(0.4);
jeda(0.05);
nada_c2(0.4);
jeda(0.05);
nada_c2(0.4);
jeda(0.05);
nada_c2(0.4);
jeda(0.05);
nada_c2(0.8);
jeda(0.05);
nada_b1(0.4);
jeda(0.05);
nada_c2(0.4);
jeda(0.05);
nada_d2(0.4);
jeda(0.05);
nada_d2(0.4);
jeda(0.05);
nada_d2(0.4);
jeda(0.05);
nada_d2(0.4);
jeda(0.05);
nada_d2(1.2);
jeda(0.05);
.
.
.
break;
}
}
5. Data Percobaan