Minggu, 24 Januari 2010

Dasar Dasar Mikrokontroller Dasar

Postingan pertama setelah beberapa kali bikin blog dan g di apa2in
in ngapak = postingan sing kesiji sewise nggawe blog ping bola-bali tapi ora tau diapak-apakna"..
in english = first posting after i make some blog but never get in touch..
(kalo salah maap ya..namanya jg masih blajar..)

Belajar mikrokontroller dasar.,blajarnya sesuai jenis yang lg ngetren di pasaran yaitu AVR.,lebih spesifik lagi AVR ATMEGA*%#% (*%#%==8535)hehee..pakenya bahsa c menggunakan codevision.,kebetulan saya blajarnya kyk spek di atas tadi..
kok cuma ATMEGA y??mungkin kedepanny ada ATSBY..heheee..sapa tau...

Mikrokontroller menurut pengertian saya pribadi adalah merupakan yaitu sejenis IC yang dapat diperogeram di hapus diperogram lagi di hapus lagi di program lagi dan seterusnya sesuai keinginan sang programer. Selain harganya yang sangat-sangat jauh-jauh lebih murah dari prosesor komputer, aplikasinya juga terdapat dalam kehidupan sehari-hari misalnya pengontrol tulisan pada toko-toko, jam digital, papan score, atau untuk otak pada sistem robotika.

AVR (bukan nama makanan tapi nama jenis mikrokontroller). A Ve eR merupakan mikrokontroller jenis RICS yang hanya memerlukan 1 siklus untuk mengeksekusi sebuah instruksi, sedangken pendahulunya MCS merupakan jenis CICS yang memerlukan 12 siklus clock untuk eksekusi 1 buah intstruksi. Jadi dalam eksekusi perogeram maka AVR akan lebih cepat dari MCS.

spesifiksi ATMEGA8535:
8Kbyte Flash memory
512 byte EEPROM
512 byte Internal SRAM
8 channel ADC dengan resolusi 10 bit
32 pin jalur input/output.
dll..
seingat saya sie kyk gtu..

jenis AVR yang dikeluarkan untuk menggantikan tipe MCS yang membutuhkan 12 siklus clock untuk tiap kali eksekusi 1 perintah.,sedangkan AVR 1clock=1perintah.,12 kali lebih cepat..

Klan dari AVR sendiri menurut buku2 yang membahas sejarah mikrokontroller yang saya baca di toko buku mengatakan bahwa AVR dibagi menjadi 4 keluarga besar yaitu: klan AT90Sxx, klan ATMEGA, klan ATtiny, klan AT89RFxx.

AVR sendiri memiliki arsitektur Havard di mana antara kode program dan data, disimpan dalam memori secara terpisah, sehingga dengan arsitektur seperti ini memori dalam program akan lebih aman karena terlindungi dari *kuman penyakit, magsudnya spike atau tegangan yang dapat merusak kode program (*bacanya nyantai cuy heheeee)


AVR8535 memiliki 4 buah port yaitu PORTA,PORTB,PORTC dan PORTD. Masing-masing PORT memiliki 8 buah pin. Nih gambarnya




Oke basa-basi selesai, langsung pada cara pemrograman yaitu menggunakan CV AVR versi trial heheheee..
Latihan yang pertama adalah kontrol led jadi yang diatur pertama kali adalah register yang berhubungan dengan port sebagi output yaitu pengaturannya diatur pada DDR dari tiap2 port
Jika port akan digunakan sebagai output maka bit pada register DDR diisi dengan nilai 1, sedangkan jika ingin di jadikan input maka register pada DDR ini di isi dengan nilai 0.
Misalnya DDRA=0xff; maka artinya porta digunakan sebagi output, jika ditulis dengan biner maka DDRA= 0b11111111; artinya sama dengan sebelumnya. Sedangkan logika yang akan dikeluarkan diatur menggunakan register PORT, misal

DDRA=0xff; // porta sebagai output
PORTA=0xff; // output porta adalah 5 volt

Jika ingin dijadikan input maka di isi dengan 0, misal DDRA=0x00; atau DDRA=0b00000000;
Sedangkan pembacaan logika di masing-masing pin dapat dibaca dengan perintah PINA

DDRA=0x00; // porta sebagai input
Led = PINA; // nilai led sama dengan input pina


Sedangkan untuk fungsi tunda dapat menggunakan perintah delay_us(1000) atau delay_ms(1000).
Kalau delay_s() seingat saya belum pernah saya coba, delay_us artinya mikrosekon, ms artinya milisekon, delay_us(1000) berarti kita menggunakan tunda selama 1 milisekon atau 1000 mikrosekon;
Nah susu nan program atau struk tur dari progaram menggunakan bahasa c adalah sebagai berikut:

#include .h artinya prosesor n header pustaka (library) mikronya
Main() = fungsi utama
{ = awal badan program
; = tubuh program, diakhiri dengan titik koma (;)
} = akhir program

Sedangkan struktur blok program kyk gini wujudnya
{
Deklarasi variable;
Deklarasi konstanta;
Pernyataan;
}

Sedangkan penulisan komentar diawali dengan tanda // untuk satu baris
dan /*.....*/ untuk banyak garis.

sebenarnya ini tentang dasar-dasar tapi g seru klo g di kasih contoh aplikasinya.,karena ini dasar kita mulai dengan aplikasi yang sederhana.,yaitu kontrol LED


klo pake bahasa c di codevision kyk gini programnya, download dulu yah dimari

http://www.ziddu.com/download/9271125/ledsimple.txt.html

jika program diatas dibuat untuk menyalakan dan mematikan led dengan beberapa variasi..klo rangkaiannya beginian
mc---->/\/\/\<---->led<---->vcc
berarti lampu led akan menyala pada kondisi logika 0.,

sedangnya jika rangkaiankan begituan
mc---->/\/\/\<---->led<---->gnd
artinya lampu led akan menyala jika kondosi port berlogika 1..


Mohon maaf jika terdapat kesalah dalam tulisan saya ini, mohon dibenarkan agar yang lainnya yang baca jadi g ikutan salah.

okelah kalo beg beg beg begitu sampai jumpa pada perpostingan yang selanjutnya yaitu kontrol led dengan input.