1. Tujuan [kembali]
a. Merangkai dan menguji output pada mikrokontroller AVR (codevision)
b. Merangkai dan menguji input pada mikrokontroller AVR (codevision)
c. Merangkai dan menguji I/O pada mikrokontroller AVR (codevision)
2. Dasar Teori [kembali]
A. Mikrokontroller AVR (codevision)
CodeVisionAVR adalah sebuah compiler C yang telah dilengkapi dengan fasilitas Integrated Development Environment (IDE) dan didesain agar dapat menghasilkan kode program secara otomatis untuk mikrokontroler Atmel AVR.Pada CodeVisionAVR terdapat kumpulan pustaka (library) untuk:
- Modul LCD Alphanumeric
- Philips I2C bus
- National Semiconductor Sensor Temperatur LM75
- Philips PCF8563, PCF8583, dan Maxim/Dallas Semiconductor Real Time Clock DS1302 dan DS1307
- Maxim/Dallas Semiconductor 1 wire protocol
- Maxim/Dallas Semiconductor Sensor Temperatur DS1820, DS18S20, dan DS18B20
- Maxim/Dallas Semiconductor Termometer/Thermostat DS1621
- Maxim/Dallas Semiconductor EEPROMs DS2430 dan DS2433
- SPI
- Power Management
- Delays
- Gray Code Conversion
- MMC/SD/SD HC Flash memory cards low level access
- Akses FAT pada MMC/SD/SD HC Flash memory card
CodeVisionAVR
dapat menghasilkan kode program secara otomatis melalui fasilitas
CodeWizardAVR Automatic Program Generator. Dengan adanya fasilitas ini
maka penulisan program dapat dilakukan dengan cepat dan lebih efisien.
Seluruh kode dapat diimplementasikan dengan fungsi sebagai berikut:
- Identifikasi sumber reset
- Mengatur akses memori eksternal
- Inisialisasi port input/output
- Inisialisasi interupsi eksternal
- Inisialisasi timer/counter dan watchdog timer
- Inisialisasi USART dan interupsi buffer untuk komunikasi serial
- Inisialisasi komparator analog dan ADC
- Inisialisasi interface SPI dan two wire interface (TWI)
- Inisialisasi interface CAN
- Inisialisasi I2C Bus, sensor suhu LM75, thermometer/thermostat DS1621, dan real time clock PCF8563, PCF8583, DS1302, DS1307
- Inisialisasi 1 wire bus dan sensor suhu DS1820/DS18S20
- Inisialisasi modul LCD
Membuat Project dengan CodeVisionAVR.
Jalankan aplikasi CodeVisionAVR dengan cara melakukan klik ganda pada
shortcut ikon CodeVisionAVR yang ada pada Desktop atau klik START MENU
cari file exe CodeVisionAVR.
Gambar 1 Ikon CodeVisionAVR pada Desktop
Sebuah Splash Screen akan muncul
seperti ditunjukkan oleh Gambar 2. Informasi tentang versi yang dipakai
dan keterangan evaluation akan terlihat.
Gambar 2. Tampilan Splash Screen
Beberapa detik kemudian aplikasi CodeVisionAVR akan muncul seperti yang ditunjukkan oleh Gambar 3.
Gambar 3. IDE CodeVisionAVR
Untuk memulai membuat project
baru, pada menubar, pilih File → New, seperti yang ditunjukkan oleh
Gambar 4a selain itu kita juga dapat membuka dengan cara klik icon
seperti ditunjukkan pada gambar 4b yang berada pada Toolbar.
Gambar 4a. Membuat file baru
Gambar 4b. Icon untuk membuat file baru
Anda harus membuat sebuah project
sebagai induk desain dengan memilih Project, lalu klik tombol OK seperti
pada Gambar 5.
Berikutnya Anda akan ditanya
apakah akan menggunakan CodeWizardAVR. Tentu saja lebih menyenangkan
bila Anda memilih jawaban “ya” dengan cara menekan tombol Yes seperti
pada Gambar 6.
Tampilan CodeWizardAVR yang
sederhana namun lengkap ditunjukkan oleh Gambar 7. Pilih Chip dengan IC
yang Anda gunakan. Sebagai contoh Anda memilih Chip ATmega8535. Tab-tab
pada CodeWizardAVR menunjukkan fasilitas yang dimiliki oleh chip yang
Anda pilih. Cocokkan pula frekuensi kristal yang Anda gunakan pada
bagian Clock. Pengisian frekuensi clock digunakan oleh software untuk
menghitung rutin-rutin seperti delay agar diperoleh perhitungan yang
cukup akurat.
Selanjutnya merupakan inisialisasi
dari PORT YANG DITUNJUKKAN OLEH Gambar 8. Terdapat 4 PORT, yaitu PORT
A, PORT B, PORT C, dan PORT D. kita bisa menginisialisasi port-port ini
sebagai INPUT ataupun sebagai OUTPUT. Selain itu kita dapat memilih
aktif HIGH (1) atau aktif LOW (0) untuk OUTPUT ataupun INPUT.
Untuk selanjutnya yaitu merupakan
inisialisasi LCD (Liquid Crystal Display). LCD alphanumeric yang
dihubungkan dengan Port C haruslah mempunyai pengkawatan seperti yang
ditunjukkan oleh Gambar 9. Pada tab LCD, pilihlah Port C.
Selanjutnya yaitu inisialisasi
pada USART (Komunikasi Serial). Pertama pilih/centang pada bagian
“Receiver “ dan ” Transmiter”, apabila menginginkan interupsi pada USART
maka beri centang pula pada “Rx_Interrupt” dan “Tx_Interrupt”. Untuk
Baud Rate pilih “9600”. Dan untuk Communication Parameters pilih “8
Data, 1 Stop, No Pariti. Ini merupakan seting sederhana dari USART.
Seperti tampak pada gambar 10.
Selanjutnya yaitu seting ADC (Analog to Digital Converter).
Pertama centang pada bagian “ADC Enabled" dan untuk "Use 8 bits” apa
bila kita centang berarti kita menggunakan ADC 8 bit, apabila tidak kita
centang maka kita menggunakan 10 bit. Kemudian kita pilih Volt Ref,
yaitu tegangan referensi dari ADC kita. Disini terdapat 3 pilihan yaitu
dari PIN AREF, PIN AVCC, dan Int., Cap. On AREF. Untuk clock pilih
86.400 KHz.
Setelah setting yang kita inginkan
dari mikrokontroler selesai, maka seting CodeWizardAVR siap disimpan
dalam file. Pada menu CodeWizardAVR, pilih File → Generate, Save and
Exit, seperti yang ditunjukkan oleh Gambar 12.
Agar file yang dihasilkan tidak berantakan, buatlah sebuah folder baru, untuk nama terserah dari anda.
Kemudian masuk kedalam folder
tersebut untuk menyimpan file-file yang dihasilkan oleh CodeWizardAVR.
Yang pertama Anda diminta untuk memberikan nama file C yang dihasilkan.
Misalnya beri nama “coba2”, lalu klik tombol Save. Lebih jelas pada
Gambar 14. File tersebut nantinya akan mempunyai akhiran .C.
Yang kedua Anda diminta untuk memberikan nama file project
yang dihasilkan. Misalnya beri nama “coba2”, lalu klik tombol Save.
Lebih jelas pada Gambar 15. File tersebut nantinya akan mempunyai
akhiran .prj.
Gambar 15. Menyimpan file kedua
Yang terakhir Anda diminta untuk
memberikan nama file project CodeWizard yang dihasilkan. Misalnya beri
nama “coba”, lalu klik tombol Save. Lebih jelas pada Gambar 16. File
tersebut nantinya akan mempunyai akhiran .cwp.
Setelah ketiga file disimpan maka
akan muncul lembar kerja kita. Pada bagian atas merupakan nama dari
projek kita. Selanjut pada bagian bawah dari nama projek yaitu merupakan
program bahasa C yang merupakan program yang telah kita setting pada
langkah awal (pada form inisialisasi). Jadi dari program “#include
sampai // LCD module initialization lcd_init(16);” merupakan program
yang telah kita setting pada langkah awal (pada form inisialisasi) yang
ditunjukkan oleh Gambar 17-18.
Sekarang Anda coba untuk
menyisipkan instruksi utama. Instruksi ini ditambahkan pada badan
program file coba.c, dibawah instruksi “while” seperti yang ditunjukkan
oleh Gambar 18.
Setelah program utama telah
ditambahkan, kemudian pilih menu Project → Compile untuk melakukan
kompilasi seperti yang ditunjukkan oleh Gambar 19a, atau dengan klik
icon seperti pada Gambar 19b pada menu Toolbar. Lalu kotak dialog
seperti ditunjukkan Gambar 20 akan muncul. Klik tombol OK.
Setelah kita kompail dan tidak ada
informasi error (apabila terdapat informasi warning program kita masih
dapat dijalankan/tidak apa-apa) pada program kita, selanjutnya klik
tombol OK yang berada pada kanan bawah.
Setelah itu kita buka file tempat
dimana kita menyimpan projek kita tadi. Kemudian buka file folder
bernama ‘Exe’ seperti ditunjukkan pada Gambar 21.
Setelah itu akan muncul file
ber-extensi ‘hex’. File inilah yang nantinya akan kita downloadkan ke
dalam mikrokontroler kita.
B. Interrupt
Instruksi INT(89) berfungsi untuk mengontrol/mengarahkan interupsi dan
melakukan satu dari tujuh fungsi yang dapat dipilih sesuai dengan nilai
parameter C1. Instruksi INT(89) memiliki tiga buah operand yakni C1,
000, dan C2. C1 adalah konstanta dengan nilai 000 – 004, 100, dan 200.
Berikut adalah fungsi instruksi INT(89) berdasarkan nilai operand C1: 1.
Mask/Unmask Interrupt Inputs (C1 = 000) 2. Clear Interrupt Inputs (C1 =
001) 3. Read Current Mask Status of Interrupt Inputs (C1 = 002) 4.
Restart Decrementing Counter and Unmask Interrupt (C1 = 003) 5. Restart Incrementing Counter and Unmask Interrupt (C1 = 004) 6. Mask All Interrupts (C1 = 100) 7. Unmask All Interrupts (C1 = 200) 1. Fungsi Mask/Unmask Interrupt Inputs. Fungsi
ini digunakan untuk menghalangi atau mengijinkan interupsi dari kaki
Input 000.03 – 000.06. Interupsi yang dihalangi (masked) akan dicatat
dan diabaikan oleh CPU. Interupsi yang diijinkan (unmasked) akan
direspon dan program interupsinya akan dieksekusi.
0 komentar:
Posting Komentar