MIKROKONTROLER
• Memory (RAM, ROM) dan juga decoder memory
• I/O dan decoder I/O
• Piranti khusus (Interupsi, timer, counter, etc)
• Clock Generator
Mikrokontroler didesain sebagai “True computer on a chip”, jadi mikrokontroler sudah mempunyai piranti-piranti tambahan untuk membangun suatu sistem computer digital. Mikrokontroler dirancang dengan intruksi yang bisa mengakses piranti terprogram dan dioptimalkan untuk instruksi bit dan byte, sementara computer PC didesain dengan instruksi untuk mengases data data multy byte.
AVR ATMEGA
AVR adalah salah satu contoh keluarga mikrokontroler yang berarsitektur RISC. Ada banyak tipe mikrokontroler yang termasuk keluarga AVR. Tetapi yang banyak dipakai adalah jenis ATMega, misalnya ATMEga32.
Berikut ini adalah tabel contoh jenis AVR beserta fitur-fiturnya :
|
Type AVR |
Flash (Kb) |
EEPROM (Kb) |
SRAM (byte) |
Fitur-fitur |
|
Atmega 128 |
128 |
4 |
4096 |
16Bit Timer, 8Bit Timer, PWM, RTC, SPI, UART, TWI, ISP, ADC, Analog Komparator, Eksternal Interupt |
|
ATmega64 |
64 |
2 |
4096 |
16Bit Timer, 8Bit Timer, PWM, RTC, SPI, UART, TWI, ISP, ADC, Analog Komparator, Eksternal Interupt |
|
ATmega8 |
8 |
0.5 |
1024 |
16Bit Timer, 8Bit Timer, PWM, RTC, SPI, UART, TWI, ISP, ADC, Analog Komparator, Eksternal Interupt |
|
ATmega8535 |
8 |
0.5 |
512 |
16Bit Timer, 8Bit Timer, PWM, SPI, UART, TWI, ISP, ADC, Analog Komparator, Eksternal Interupt |
|
ATtiny2313 |
2 |
0.128 |
128 |
16Bit Timer, 8Bit Timer, PWM, SPI, UART, TWI, ISP, ADC, Analog Komparator, Eksternal Interupt |
|
ATtiny24 |
2 |
0.128 |
128 |
16Bit Timer, 8Bit Timer, PWM, SPI, TWI, ISP, ADC, Analog Komparator, Eksternal Interupt |
|
ATtiny25 |
2 |
0.128 |
128 |
8Bit Timer, PWM, RTC, SPI, UART, TWI, ISP, ADC, Analog Komparator, Eksternal Interupt |
|
ATtiny26 |
2 |
0.125 |
128 |
8Bit Timer, PWM, RTC, SPI, UART, TWI, ISP, ADC, Analog Komparator, Eksternal Interupt |
|
ATtiny261 |
2 |
0.128 |
128 |
16Bit Timer, 8Bit Timer, PWM, SPI, TWI, ISP, ADC, Analog Komparator, Eksternal Interupt |
Program Memory
ATMega memiliki On-Chip In-System Reprogrammable Flash Memory untuk menyimpan program. Untuk alasan keamanan, program memory dibagi menjadi dua bagian yaitu Boot Flash Section dan Application Flash Section. Boot Flash Section digunakan untuk menyimpan program Boot Loader, yaitu program yang harus dijalankan pada saat AVR reset atau pertamakali diaktifkan. Application Flash Section digunakan untuk menyimpan program aplikasi yang dibuat user. AVR tidak dapat menjalankan program aplikasi ini sebelum menjalankan program Boot Loader.
PEMROGRAMAN BAHASA C UNTUK AVR
Bahasa C luas digunakan untuk pemrograman berbagai jenis perangkat, termasuk mikrokontroler. Bahasa ini sudah merupakan high level language, dimana memudahkan programmer menuangkan algoritmanya.
sedangkan CodeVisionAVR merupakan sebuah cross-compiler C, Integrated Development Environtment (IDE), dan Automatic Program Generator yang didesain untuk mikrokontroler buatan Atmel seri AVR
1. Struktur penulisan program
| #include < [library1.h] > // Opsional #include < [library2.h] > // Opsional #define [nama1] [nilai] ; // Opsional #define [nama2] [nilai] ; // Opsional[global variables] // Opsional [functions] // Opsional void main(void) // Program Utama { [Deklarasi local variable/constant] [Isi Program Utama] } |
2. Tipe data
char : 1 byte ( -128 s/d 127 )
unsigned char : 1 byte ( 0 s/d 255 )
int : 2 byte ( -32768 s/d 32767 )
unsigned int : 2 byte ( 0 s/d 65535 )
long : 4 byte ( -2147483648 s/d 2147483647 )
unsigned long : 4 byte ( 0 s/d 4294967295 )
float : bilangan desimal
array : kumpulan data-data yang sama tipenya.
3. Deklarasi variabel & konstanta
Variabel adalah memori penyimpanan data yang nilainya dapat diubah-ubah.
Penulisan : [tipe data] [nama] = [nilai] ;
Konstanta adalah memori penyimpanan data yang nilainya tidak dapat diubah.
Penulisan : const [nama] = [nilai] ;
Tambahan:
Global variabel/konstanta yang dapat diakses di seluruh bagian program. Local variabel/konstanta yang hanya dapat diakses oleh fungsi tempat dideklarasikannya.
4. Statement
Statement adalah setiap operasi dalam pemrograman, harus diakhiri dengan [ ; ] atau [ } ]. Statement tidak akan dieksekusi bila diawali dengan tanda [ // ] untuk satu baris. Lebih dari 1 baris gunakan pasangan [ /* ] dan [ */ ]. Statement yang tidak dieksekusi disebut juga comments / komentar.
Contoh:
| suhu=adc/255*100; //contoh rumus perhitungan suhu |
5. Function
Function adalah bagian program yang dapat dipanggil oleh program utama.
Penulisan :
| [tipe data hasil] [nama function]([tipe data input 1],[tipe data input 2]) { [statement] ; } |
6. Conditional statement dan looping
if else : digunakan untuk penyeleksian kondisi
| if ( [persyaratan] ) { [statement1]; [statement2]; } else { [statement3]; [statement4]; } |
for : digunakan untuk looping dengan jumlah yang sudah diketahui
| for ( [nilai awal] ; [persyaratan] ; [operasi nilai] ) { [statement1]; [statement2]; |
while : digunakan untuk looping jika dan salama memenuhi syarat tertentu
| while ( [persyaratan] ) {[statement1]; [statement2]; } |
do while : digunakan untuk looping jika dan salama memenuhi syarat tertentu, namun min 1 kali
| do { [statement1]; [statement2]; }while ( [persyaratan] ) |
switch case : digunakan untuk seleksi dengan banyak kondisi
| switch ( [nama variabel] ) {case [nilai1]: [statement]; break; case [nilai2]: [statement]; break; } |
7. Operasi logika dan biner
Logika
AND :&&
NOT : !
OR : ||
Biner
AND : &
OR : |
XOR : ^
Shift right: >>
Shift left : <<
Komplemen : ~
8. Operasi relasional (perbandingan)
Sama dengan : ==
Tidak sama dengan : !=
Lebih besar : >
Lebih besar sama dengan : >=
Lebih kecil : <
Lebih kecil sama dengan : <=
9. Operasi aritmatika
+ , – , * , / : tambah,kurang,kali,bagi
+= , -= , *= , /= : nilai di sebelah kiri operator di tambah/kurang/kali/bagi dengan nilai di sebelah kanan operator
% : sisa bagi
++ , — : tambah satu (increment) , kurang satu (decrement)
Contoh :
a = 5 * 6 + 2 / 2 -1 ; maka nilai a adalah 30
a *= 5 ; jika nilai awal a adalah 30, maka nilai a = 30×5 = 150.
a += 3 ; jika nilai awal a adalah 30, maka nilai a = 30+5 = 33.
a++ ; jika nilai awal a adalah 5 maka nilai a = a+1 = 6.
a– ; jika nilai awal a adalah 5 maka nilai a = a-1 = 4.
sumber PEMROGRAMAN BAHASA C UNTUK AVR :
marausna.wordpress.com
Pelatihan Microcontroller ATMEL ATMega Series – 2011
Pelatihan Microcontroller ATMega Series, dengan CodeVisionAVR
Materi :
1. Pengenalan singkat ATMega Series dan CodeVisionAVR
2. Struktur dasar bahasa C dengan CodeVisionAVR
3. Configurasi Input / Output
4. Microcontroller dan LCD
5. ADC Microcontroler; (contoh materi : Sensor suhu LM35dz)
6. Timer Counter pada microcontroller (contoh materi : clock)
7. PWM “Pulse Width Modulation” (contoh materi : Pengaturan Kecepatan Motor DC)
8. EEPROM microcontroller
Bisa konsultasi mengenai skripsi….
Waktu pelaksanaan :
1 paket 5 kali pertemuan @2 jam
Sabtu – Minggu Pukul (09.00 s.d 11.00 dan 13.00 s.d 14.00)
Tempat :
Perumahan Galaxy Bekasi
Cara pendaftaran :
Contact Person :

