Pendahuluan
Mikrokontroller AVR ATMega8535 merupakan mikrokontroller 40 pin (lihat Gambar 1) buatan Atmell Corporation yang memiliki fasilitas 8K Byte Flash Memori ISP (In-System Programmable), yang membuatnya tidak memerlukan bantuan mC
lain dalam pemrograman, tetapi hanya memerlukan sedikit rangkaian elektronik eksternal saja
Mikrokontroler ini bisa diaktifkan dengan memasukkan sumber tegangan sebesar 4,5 s.d. 5,5 V dc melalui pin VCC (pin 10) dan merangkai kristal osilator pad a pin XTAL1 dan XTAL2 sebagaimana diperlihatkan pada gambar 3 Untuk konfigurasi selengkapnya, bisa dibaca pada buku petunjuk ”AVR ATMega8535”.
Deskripsi singkat dari pin
VCC Input sumber tegangan (+)
GND Ground (-)
Port A (PA7 … PA0) Berfungsi sebagai input analog dari ADC (Analog to Digital Converter). Port ini juga berfungsi sebagai port I/O dua arah, jika ADC tidak digunakan.
Port B (PB7 … PB0) Berfungsi sebagai port I/O dua arah. Port PB5, PB6 dan PB7 juga berfungsi sebagai MOSI, MISO dan SCK yang dipergunakan pada proses downloading. Fungsi lain port ini selengkapnya bisa dibaca pada buku petunjuk ”AVR ATMega8535”.
Port C (PC7 … PC0) Berfungsi sebagai port I/O dua arah. Fungsi lain port ini selengk apnya bisa dibaca pada buku petunjuk ”AVR ATMega8535”.
Port D (PD7 … PD0) Berfungsi sebagai port I/O dua arah. Port PD0 dan PD1 juga berfungsi sebagai RXD dan TXD, yang diper gunakan untuk komunikasi serial. Fungsi lain port ini selengkapnya bisa dibaca pad a buku petunjuk ”AVR ATMega8535”.
RESET Input reset.
XTAL1 Input ke amplifier inverting osilator dan input ke sirkuit clock internal.
XTAL2 Output dari amplifier inverting osilator.
AVCC Input tegangan untuk Port A dan ADC.
AREF Tegangan referensi untuk ADC.
Percoban A.
Pemrograman Mikrokontroller
1. Buka program CV AVR C Compiler
2. Buat project baru dengan mengklik menu File → New, maka akan muncul jendela:
Pilih ”Project” dan klik ”OK”. Akan muncul jendela
Klik ”Yes”, maka akan muncul jendela:
3. Jendela di atas adalah jendela untuk memilih setting mC yang akan diisikan. Ikuti langkah-langkah berikut :
a. Klik Tab Chip. Tentukan jenis Chip C yang digunakan. Dalam praktikum ini adalah ”ATmega8535 ”
b. Masukkan nilai frekuensi ”clock” yan g digunakan. Dalam praktikum ini digunakan frekuensi sebesar 12 MHz.
c. Klik tab Ports. Tab ini untuk menentukan fungsi dari masing-masin g port (Port A s.d. Port D).
d. Klik tab Port D. Untuk praktikum ini digunakan led yang berada pada kaki 20 (Port D.6) sebagai indikator.
e. Klik tulisan In pada Bit 6. Ini akan mengubah nilai menjadi Out, yang berarti pin PD6 akan difungsikan sebagai output.
4. Pada menu, pilih “File” “Generate, Save and Exit”. Maka akan muncul jendela “Save C Compiler Source File”. Beri nama file, misal: “Praktikum1.c” lalu ketik “Save”.
5. Akan muncul jendela “Save C Compiler Project File”. Beri nama file, misal: “Praktikum1.prj” lalu ketik “Save”.
6. Akan muncul jendela “Save : \.....”. Beri nama file, misal: “Praktikum1.cwp” lalu ketik “Save”.
7. Maka akan muncul jendela program yang berisi sintaks sbb.:
This program was produced by the
CodeWizardAVR V1.24.7d Evaluation
Automatic Program Generator
© Copyright 1998-2005 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com
e-mail:office@hpinfotech.com
Project :
Version :
Date : 10/20/2008
Author : Freeware, for evaluation and non-commercial use only
Company :
Comments:
Chip type : ATmega8535
Program type : Application
Clock frequency : 4.000000 MHz
Memory model : Small
External SRAM size : 0
Data Stack size : 128
*****************************************************/
#include
// Declare your global variables here
void main(void)
{
// Declare your local variables here
// Input/Output Ports initialization
// Port A initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTA=0x00;
DDRA=0x00;
// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTB=0x00;
DDRB=0x00;
// Port C initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTC=0x00;
DDRC=0x00;
// Port D initialization
// Func7=In Func6=Out Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=0 State5=T State4=T State3=T State2=T State1=T State0=T
PORTD=0x00;
DDRD=0x40;
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=FFh
// OC0 output: Disconnected
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;
// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer 1 Stopped
// Mode: Normal top=FFFFh
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer 1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer 2 Stopped
// Mode: Normal top=FFh
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;
// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// INT2: Off
MCUCR=0x00;
MCUCSR=0x00;
// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;
// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;
while (1)
{
// Place your code here
};
}
Jendela ini berisi sintaks setting awal mC yang telah kita pilih sebelumnya.
8. Lengkapi sintaks di atas sbb.
a. Di atas fungsi “void main (void)”, tuliskan:
#include //untuk memanggil fungsi penundaan waktu, dan
#define led PORTD.6 //untuk membuat alias
b. Pada struktur “while”, ubah menjadi:
while (1)
{
//Place your code here
delay_ms(500);
led = 1;
delay_ms(500);
led = 0;
};
9. Klik ikon
untuk melakukan kompilasi.
10. Klik ikon
untuk membuat file ”*.hex” yang akan digunakan untuk downloading
Percobaan B
Mendownload Program ke Mikrokontroler
1. Buka program ”PonyProg”. Klik OK, maka akan muncul jendela utama sbb.:
2. Pilih jenis mC yang digunakan (lihat gambar atas). Dalam hal ini adalah ”AVR micro” (2a) dan “ATmega8535” (2b)
3. Pada menu, pilih Setup → Interface Setup. Pilih port yang akan digunalan untuk proses download. Misalnya port Serial, koneksi pada COM2
4. Klik ikon (Configuration and Security bits) maka akan muncul jendela seperti gambar di bawah. Jendela ini akan mengisikan bit konfigurasi dan bit pengaman yang diperlukan untuk mendownload program, sesuai pilihan yang kita berikan. Isi dari konfigurasi ini tergantung dari komponen elektronika yang kita gunakan. Untuk lebih lengkapnya, lihat buku petunjuk ” AVR ATMega8535” . Untuk sementara, isi sesuai dengan yang tertera di gambar. Atau, jika modul mC telah terhubung ke komputer, bisa dilakukan proses membaca konfigurasi yang telah digunakan dengan menekan ”Read”.
Peringatan!! Pengisian/pembacaan konfigurasi ini harus dilakukan dengan benar terlebih dahulu sebelum melakukan pengisian program, karena pengisian nilai yang salah bias mengakibatkan kerusakan pada mC.
5. Klik OK. Maka akan kembali ke jendela utama.
6. Buka file berkestensi ”hex” dengan meng-klik ikon
lihat gambar di bawah). Masukkan file yang diinginkan, misalnya ”Praktikum1.hex” lalu klik ”Open” Maka pada jendela utama akan terisi program berformat hexadesimal sbb :
7. Klik ikon
(lihat panah di atas) untuk mengisikan program ke dalam mC.
8. Amati output yang dihasilkan.
SELAMAT MENCOBA YAH...
Jika membutuhkan softwarenya, silakan menghubungi Workshop Team.