LED berkedip adalah langkah pertama yang ingin Anda lakukan untuk memulai dengan elektronik. Dalam tutorial ini kita akan menghubungkan LED dengan ATmega32, yang merupakan mikrokontroler seri AVR. Kami akan mengedipkan LED pada kecepatan setengah detik.
Komponen Diperlukan
Perangkat keras:
Mikrokontroler ATmega32A
Catu daya (5v)
AVR-ISP Programmer
Kapasitor 100uF
LED
220Ω Resistor
Perangkat lunak
Atmel studio 6.1.2
Progisp atau flash magic
Sirkuit dan Penjelasan Kerja
Seperti yang ditunjukkan pada diagram rangkaian di atas untuk menghubungkan LED dengan mikrokontroler AVR, tidak perlu menghubungkan kristal eksternal di sini. Karena ATMEGA bekerja pada osilator Resistor-Kapasitor internal 1MHz secara default. Hanya jika akurasi jam diperlukan, sebagai aplikasi penghitungan presisi tinggi, kristal eksternal dipasang. Saat pengontrol pertama kali dibeli, ia menyatu untuk bekerja pada kristal internal secara default.
Resistor dihubungkan di sini untuk membatasi gambar arus dari LED. Ingat, pengontrol tidak dapat menyediakan lebih dari 30mA di terminal.
Penjelasan Pemrograman
Program mikrokontroler ATmega32 untuk mengedipkan LED ditunjukkan di bawah ini. Komentar dalam kode menjelaskan tujuan baris individu kode.
#include // header untuk mengaktifkan kontrol aliran data pada pin
# Menentukan F_CPU 1000000 // memberi tahu frekuensi kristal pengontrol
#include
int utama (kosong)
{
DDRD = 0xFF; // (atau 0b1111 1111) Dalam AVRSTUDIO untuk memberitahu pengontrol untuk menggunakan bit tertentu dari sebuah port sebagai masukan kita menggunakan "ZERO", untuk memberitahu untuk menggunakan bit tertentu sebagai keluaran kita menggunakan "ONE". Karena kita meletakkan delapan "SATU", semua pin PORTD diaktifkan sebagai keluaran. Jika kita menempatkan nol sebagai "0b1111 0111", sekarang semua pin 0,1,2,4,5,6,7 diaktifkan sebagai input dan PIN 3 Diaktifkan sebagai input.
sementara (1) // loop berlangsung selamanya dan LED akan berkedip selamanya
{
PORTD = 0xFF; // semua pin PORTD dikatakan memberikan output 5v atau disuruh tarik tinggi (LED ON)
_delay_ms (220); // tunda selama 200 md
_delay_ms (220);); // tunda selama 200 md
PORTD = 0x00; // semua pin PORTD dikatakan memberikan ground pada output atau pull down
_delay_ms (220);); // tunda selama 200 md
_delay_ms (220);); // tunda selama 200 md
}
}