Jumat, 06 Juli 2012

Menggunakan Fasilitas Output Mikrokontoller ATmega16.


Pada postingan kali ini terlebih dahulu saya akan menjelaskan mengenai fasilitas input dan output pada mikrokontroller ATMEGA 16. Tetapi pada kesempatan ini saya hanya akan memberikan contoh bagaimana cara menggunakan fasilitas output pada mikrokontroller Atmega16 dengan menggunakan Compiler CodeVision AVR. Sementara untuk Fasilitas Input insyaallah saya akan memberikan contohnya pada postingan yang akan datang.
 
Fasilitas input/output merupakan fungsi mikrokontroller untuk dapat menerima sinyal masukan (input) dan memberikan sinyal keluaran (output). Sinyal input maupun sinyal output adalah berupa data digital 1 (high, mewakili tegangan 5 volt) dan 0 (low, mewakili tegangan 0 volt). Mikrokontroller ATMEGA16 memiliki 4 buah PORT 8 bit bidirectional yang dapat difungsikan sebagai PORT input maupun PORT output yaitu PORTA, PORTB , PORTC, dan PORT D. Register digunakan untuk mengatur fungsi dari pin-pin pada tiap port. Register dapat dianalogikan sebagai kumpulan switch on/off yang digunakan untuk mengaktifkan fungsi apa yang akan dipakai dari port mikrokontroller. Pada setiap port pin terdapat 3 buah register 8 bit: DDRxn, PORTxn, dan PINxn.


Register DDRxn digunakan untuk menentukan arah dari pin yang bersangkutan. Jika DDRxn diberikan nilai 1 (high), maka pin digunakan sebagai output. Jika DDRxn diberikan nilai 0 (low), maka pin difungsikan sebagai input.
 
Register PORTxn digunakan untuk mengaktifkan pull-up resistor (pada saat pin difungsikan sebagai input), dan memberikan nilai keluaran pin high/low (pada saat difungsikan sebagai output). Konfigurasi PORTxn dan DDRxn dapat dilihat pada tabel dibawah.
Tabel konfigurasi port pin

Tri-state adalah kondisi diantara high dan low, atau biasa disebut dengan keadaan mengambang (floating). Kondisi tri-state sangat dihindari dalam dunia digital.
Terlepas dari setting DDRxn, PINxn merupakan register yang berfungsi untuk mengetahui keadaan tiap-tiap pin pada mikrokontroller. Register ini sangat dibutuhkan untuk membaca keadaan pin pada saat difungsikan sebagai input.

Membuat Fungsi Output pada Mikrokontroller
 
Untuk selanjutnya kita langsung saja ke bagaimana cara membuat fungsi output pada mikrokontroller.

1. Buka CV AVR., pilih File->; New->;Project.
2. Klik YES ketika terdapat option untuk meggunakan codeWizardAVR.
3. Pilih chip yang akan digunakan ATMEGA16 dengan nilai clock 12 Mhz. 


4. Klik tab Ports, pilih tab Port C seperti pada gambar, ubah setting bit 0 – bit 7 sebagai out.

Hasil setting ini berpengaruh pada nilai register DDRxn, dan PORTxn. 

5. Setting selesai, untuk mengenerate program pilih File >>;  Generate, Save, and Exit.
6. Buat direktori dengan nama led (anda dapat menggatinya sesuai keinginan anda).
7. Save file CV AVR dengan nama ff.cwp pada direktori led.
8. Save file .C dengan nama ff.c pada direktori led
9. Save file project dengan nama ff.prj pada direktori led.

Listing Program

1. Sekarang perhatikan kode bahasa C pada bagian setting register DDRxn, dan PORTxn, tampak sebagai berikut,
DDRC = 0xFF yang berarti 8 bit port C difungsikan sebagai output.
PORTC = 0x00 berarti nilai awalan output adalah 0(low).
 

2. Nilai register PORTC diatas adalah nilai awalan pada saat mikrokontroller start-up, kita bisa mengubah nilai output port C dengan mengubah nilai register PORTC pada looping while. 
Pada contoh program berikut Looping akan memberikan logika high(1) pada PORTC selama 100ms kemudian memberikan logika low (0) pada PORTC beberapa saat. Program ini akan mengulang terus menerus. Dengan kata lain ini merupakan contoh program flip – flop. 

while (1)
{
PORTC=0xff; // port c menyala
delay_ms(100); // fungsi dilay selama 100ms
PORTC=0x00; // Portc mati
delay_ms(100); // fungsi dilay selama 100ms
}


Untuk gambar skematiknya saya menggunkan software ISIS Proteus Seperti pada gambar dibawah ini.


kemudian Untuk program dan skematik silumasi selengkapnya silahkan download disini. 


Selamat Mencoba semoga bermanfaat Kawan..






1 komentar:

Silahkan tinggalkan komentar kawan - kawan, baik berupa pertanyaan ataupun saran yang sifatnya membangun. komentar kawan - kawan sangat berharga untuk kemajuan blog ini. kalau bisa mohon hindari penggunaan Anonim. Semoga bermanfaat untuk kita semua...
Terimakasih....