Mikrokontroler adalah suatu alat elektronika digital yang
mempunyai masukan dan keluaran serta kendali dengan program yang bisa ditulis
dan dihapus dengan cara khusus, cara kerja mikrokontroler sebenarnya membaca
dan menulis data. Sekedar contoh, bayangkan diri Anda saat mulai belajar
membaca dan menulis, ketika Anda sudah bisa melakukan hal itu Anda bisa membaca
tulisan apapun baik buku, cerpen, artikel dan sebagainya, dan Andapun bisa pula
menulis hal-hal sebaliknya.
Begitu pula jika Anda sudah mahir membaca dan menulis data maka
Anda dapat membuat program untuk membuat suatu sistem pengaturan otomatik
menggunakan mikrokontroler sesuai keinginan Anda. Mikrokontroler merupakan
komputer didalam chip yang digunakan untuk mengontrol peralatan elektronik,
yang menekankan efisiensi dan efektifitas biaya. Secara harfiahnya bisa disebut
“pengendali kecil” dimana sebuah sistem elektronik yang sebelumnya banyak
memerlukan komponen-komponen pendukung seperti IC TTL dan CMOS dapat
direduksi/diperkecil dan akhirnya terpusat serta dikendalikan oleh
mikrokontroler ini. Dengan penggunaan mikrokontroler ini maka :
- Sistem
elektronik akan menjadi lebih ringkas
- Rancang
bangun sistem elektronik akan lebih cepat karena sebagian besar dari sistem
adalah perangkat lunak yang mudah dimodifikasi
- Pencarian
gangguan lebih mudah ditelusuri karena sistemnya yang kompak
Namun demikian tidak sepenuhnya mikrokontroler bisa mereduksi
komponen IC TTL dan CMOS yang seringkali masih diperlukan untuk aplikasi
kecepatan tinggi atau sekedar menambah jumlah saluran masukan dan keluaran
(I/O). Dengan kata lain, mikrokontroler adalah versi mini atau mikro dari
sebuah komputer karena mikrokontroler sudah mengandung beberapa periferal yang
langsung bisa dimanfaatkan, misalnya port paralel, port serial, komparator,
konversi digital ke analog (DAC), konversi analog ke digital dan sebagainya
hanya menggunakan sistem minimum yang tidak rumit atau kompleks.
aplikasi mikrokontroler untuk menyalakan 8 led pada port A.
Mikrokontroler yang dipakai adalah mikrokontroler AVR atmega32. Langsung
aja ini rangkaiannya menggunakan aplikasi proteus, mungkin nanti ane bahas juga
tentang ni proteus dipostingan selanjutnya. proteusnya versi 7.5 SP3 :
Led dipasang pada port A atmega32, terdapat 8 buah led yang masing-masing dihubungkan pada PORTA.0 - PORTA.7 , kenapa digunakan resistor 330ohm?? karena resistor ini digunakan untuk mengurangi kecerahan dari led yang dipakai, semakin besar hambatan nya maka led akan semakin redup begitu pula sebaliknya. Pada aplikasi ini led menggunakan active low.
Active low?? Apa itu?? hehe active low itu led akan menyala apabila diberikan logika 0, dengan kata lain untuk menyalakan led itu maka kita keluarkan logika low atau '0'. kok bisa?? yaa karena kan anoda led terhubung dengan VCC atau tegangan 5volt. sehingga untuk menyalakan led itu kita butuh gnd untuk menyalakan led itu, gnd dalam hal ini dapat digunakan logika '0' atau low. Atau dengan kata lain ini mengunakan konfigurasi common anode.
listing program :
$regfile = "m32def.dat"
$crystal = 11059200
Config Porta = Output
Led Alias Porta
Led = &B11111110
Do
Rotate Led , Right , 1
Waitms 100
Loop
$crystal = 11059200
Config Porta = Output
Led Alias Porta
Led = &B11111110
Do
Rotate Led , Right , 1
Waitms 100
Loop
penjelasan:
$regfile = "m32def.dat", digunakan untuk mendeklarasikan pustaka berdasarkan mikrokontroler yang digunakan, pada aplikasi ini digunakan atmega32 sehingga "m32def.dat", bisa saja digunakan atmega16 maka pustakanya menjadi "m16def.dat".
$crystal = 11059200 , digunakan untuk menentukan frekuensi kerja dari mikrokontroler ini, pada aplikasi ini digunakan untuk kristal 11,05920 MHz.
Config Porta = Output -> perintah ini digunakan untuk mengkonfigurasi porta sebagai output
Led Alias Porta -> alias digunakan untuk menyatakan namalain dari hardware yang digunakan sehingga porta nama lainnya adalah led
Led = &B11111110 -> pada kondisi awal, led diberikan logika 0 untuk porta.0 selain itu diberikan logika 1. (porta.1 - porta.7)
Led Alias Porta -> alias digunakan untuk menyatakan namalain dari hardware yang digunakan sehingga porta nama lainnya adalah led
Led = &B11111110 -> pada kondisi awal, led diberikan logika 0 untuk porta.0 selain itu diberikan logika 1. (porta.1 - porta.7)
Do -> memulai perintah
Rotate Led , Right , 1 -> menggeser nyala led kekanan satu per satu atau 1 bit
Waitms 100 -> digunakan tundaan selama 100 milisekon sehingga setiap pergeseran bit di berikan tundaan selama 100milisekon
Loop -> berulang terus, tiada henti hehehehe
Rotate Led , Right , 1 -> menggeser nyala led kekanan satu per satu atau 1 bit
Waitms 100 -> digunakan tundaan selama 100 milisekon sehingga setiap pergeseran bit di berikan tundaan selama 100milisekon
Loop -> berulang terus, tiada henti hehehehe
Hasilnya, led akan menyala satu per satu dan akan bergeser kekanan, kenapa pada saat led disimulasikan, led yang menyala pertama kali pada porta.7 kenapa bukan porta.0. karena pada program itu dieksekusi dari perintah do sampai loop, sehingga setelah Do maka led langsung digeser, sehingga begitu lah hasilnya.