Upload
tisyam-noor-firmansyah
View
245
Download
0
Embed Size (px)
DESCRIPTION
Belajar Mikrokontroller
Citation preview
Spesifikasi Trainer :
Skematik rangkaian Sysmin :
LED di PORT A
Saklar Input di PORTC
0 1 2 3 4 5 6 7
SEVEN SEGMEN DI
PORT B
Soket ke USBasp
INSTALASI USBASP
1. Colokkan USBASP ke port USB Laptop
2. Jika USBASP anda tidak dikenali, maka anda perlu instal drivernya
3. Buka Device manager laptop anda
4. Instal drivernya dengan cara klik kanan pada tulisan USBasp klik Update Driver
Software
USBASP tidak dikenali
Akan ada tampilan seperti dibawah ini, pilih “Browse my computer for driver software
5. Browse driver USBasp anda lalu klik NEXT
6. Jika Windows scurity mengingatkan klik aja “Instal this driver software anyway”
7. Jika driver sukses di instal akan ada tulisan seperti ini ;
Mengecek Sambungan dan rangkaian Mikrokontrol
dengan Software Khazama AVR Programmer
1. Pastikan USBASP telah terkoneksi dengan Mikrokontroller dan laptop dengan benar
2. Buka software Khazama AVR Programmer
3. Klik Command Read Chip Signature
4. Jika Rangkaian dan penyambungan anda benar, maka akan muncul tulisan seperti
dibawah ini, jika masih ada error silahkan cek kondisi IC Mikro dan penyambungannya
sudah betul belum.
5. IC Mikrokontroller Siap untuk di Program
Membuat Progran di Code Vision
1. Instal Dahulu Software Codevision AVR (CVAVR)
2. Kemudian Buka Program CVAVR Tersebut
3. Tampilan Program CVAVR
7. Pilih Jenis Chip sesuai dengan IC yang kita pasang, dan ukuran Christalnya
8. Karena IC yang saya gunakan AT mega 16 dan kristal 12 MHz, maka setting saya sebagai
berikut :
9. Kalau sudah Klik File Generate, Save dan exit anda diminta untuk menyimpan file
sebanyak 3 kali dengan ekstensi berbeda-beda (c, prj,cwp). Simpanlah dengan nama
yang sama dan folder yang sama sehingga anda akan lebih mudah mencari file tersebut.
11. Akan tampil tulisan program banyak, Tekan Ctrl+A untuk menyeleksi semua teks
tersebut, lalu klik DELETE pada keyboard untuk menghapus semua Teks.
12. Ketik Program dibawah ini :
#include <mega16.h>
void main (void){
DDRA=0xff; //PORT A sebagai OUTPUT ada LED nya
DDRB=0xff; //PORT B sebagai OUTPUT ada 7 segmen
DDRC=0x00; //PORT C sebagai INPUT ada saklar
while(1){ //looping
PORTA=0xff; //menyalakan semua LED di port A
}}
Tulisan setelah tanda // tidak usah di ketik itu adalah komentar saya untuk
memudahkan anda memprogram
Compile Program Anda dengan menekan gambar tanda panah:
Jika program anda error maka anda akan diberitahu oleh program.
Misalnya saya kurang kurung kurawal “}”.. maka saya akan diberitahu
Jika tidak ada error maka tampilannya adalah :
Memasukkan Program kedalam Mikrokontroller
1. Buka Khazama AVR Programmer
Klik Tanda ini
2. Buka file dimana anda menyimpan program CVAVR, pilihlah file yang ber ekstensi “Lat-
1.Hex”
3. Lalu Klik Auto Program
4. Jika ada tampilan seperti ini, berarti program sukses di masukkan kedalam
mikrokontroller
Latihan 1 :
Menyalakan LED FLIP-FLOP
#include <mega16.h> #include <delay.h> void main (void){ DDRA=0xff; //PORT A sebagai OUTPUT ada LED nya DDRB=0xff; //PORT B sebagai OUTPUT ada 7 segmen DDRC=0x00; //PORT C sebagai INPUT ada saklar while(1){ //looping PORTA=0xff; //menyalakan semua LED di port A delay_ms(50); // tunda waktu PORTA=0x00; //menyalakan semua LED di port A delay_ms(50); //tunda waktu }}
Latihan 2 :
Menyalakan LED lampu berjalan
#include <mega16.h> #include <delay.h> void main (void){ DDRA=0xff; //PORT A sebagai OUTPUT ada LED nya DDRB=0xff; //PORT B sebagai OUTPUT ada 7 segmen DDRC=0x00; //PORT C sebagai INPUT ada saklar while(1){ //looping PORTA=0x01; delay_ms(50); PORTA=0x02; delay_ms(50); PORTA=0x04; delay_ms(50); PORTA=0x08; delay_ms(50); PORTA=0x10; delay_ms(50); PORTA=0x20; delay_ms(50); PORTA=0x40; delay_ms(50); PORTA=0x80; delay_ms(50); }}
Latihan 3 :
Menyalakan LED sesuai dengan tombol yang ditekan
#include <mega16.h> #include <delay.h> void main (void){ DDRA=0xff; //PORT A sebagai OUTPUT ada LED nya DDRB=0xff; //PORT B sebagai OUTPUT ada 7 segmen DDRC=0x00; //PORT C sebagai INPUT ada saklar while(1){ //looping PORTA=PINC; //output LED di PORT A = kondisi saklar di PINC }}
Latihan 4 :
Menyalakan LED dengan tombol ON-OFF versi-1
Semua Lampu di PORTA akan menyala semua ketika Tombol 00
ditekan, dan akan mati semua ketika tombol 01 ditekan
#include <mega16.h> #include <delay.h> void main (void){ DDRA=0xff; //PORT A sebagai OUTPUT ada LED nya DDRB=0xff; //PORT B sebagai OUTPUT ada 7 segmen DDRC=0x00; //PORT C sebagai INPUT ada saklar while(1){ //looping if (PINC.0==1){ // Jika tombol 00 ditekan maka PORTA=0xff; // semua lampu di PORT A menyala }else if (PINC.1==1){ // jika tombol 01 ditekan maka PORTA=0x00; //semua lampu di PORT A mati }}}
Latihan 5 :
Menyalakan LED dengan tombol ON-OFF versi-2
Lampu 00 di PORT A akan menyala jika tombol 00 ditekan, dan lampu
00 akan mati jika tombol 01 ditekan
#include <mega16.h> #include <delay.h> void main (void){ DDRA=0xff; //PORT A sebagai OUTPUT ada LED nya DDRB=0xff; //PORT B sebagai OUTPUT ada 7 segmen DDRC=0x00; //PORT C sebagai INPUT ada saklar while(1){ //looping if (PINC.0==1){ //jika tombol 00 ditekan PORTA=0b00000001; //led di PORTA.1 akan menyala }else if (PINC.1==1){ //jika tombol 01 ditekan PORTA=0b00000000; //led pada PORTA.1 padam }}}
Latihan 6 :
Aplikasi Counter
Semua Lampu di PORT A akan menyala jika tombol 00 ditekan sebanyak 5 kali #include <mega16.h> #include <delay.h> char x; void main (void){ DDRA=0xff; //PORT A sebagai OUTPUT ada LED nya DDRB=0xff; //PORT B sebagai OUTPUT ada 7 segmen DDRC=0x00; //PORT C sebagai INPUT ada saklar while(1){ //looping for (x=0;x<5;x++){ //jika nilai x dibawah 5 while (PINC.0==1){ //ketika pin C =1 } while (PINC.0==0){ //dan pinc = 0 } PORTA=0x00; //jalan kan program jika x <5 } PORTA=0xff; //jalankan program jika x > 5 break; //hentikan program }}
Latihan7 :
Menyalakan seven segmen
#include <mega16.h> #include <delay.h> char x; void main (void){ DDRA=0xff; //PORT A sebagai OUTPUT ada LED nya DDRB=0xff; //PORT B sebagai OUTPUT ada 7 segmen DDRC=0x00; //PORT C sebagai INPUT ada saklar while(1){ //looping x=50; //tunda waktu di simbolkan dengan x, PORTB=0x30; // untuk ganti delay cukup ganti nilai x delay_ms(x); PORTB=0X5B ; delay_ms(x); PORTB=0X4F ; delay_ms(x); PORTB=0X66 ; delay_ms(x); PORTB=0X6D ; delay_ms(x); PORTB=0X7D ; delay_ms(x); PORTB=0X07 ; delay_ms(x); PORTB=0X7F ; delay_ms(x); PORTB=0X6F ; delay_ms(x); PORTB=0X3F ; delay_ms(x); }}
Latihan 8 :
Menyalakan seven segmen dengan array
#include <mega16.h> #include <delay.h> char x; char segmen [10]={0x30,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x3F}; //array tampilan void main (void){ DDRA=0xff; //PORT A sebagai OUTPUT ada LED nya DDRB=0xff; //PORT B sebagai OUTPUT ada 7 segmen DDRC=0x00; //PORT C sebagai INPUT ada saklar while(1){ //looping for (x=0;x<10;x++){ //jika nilai x < 10 maka nilai x akan ditambah PORTB=segmen[x]; //nyala 7 segmen sesuai dengan posisi x pada array delay_ms(50);}} } //tunda waktu
Latihan 9 :
Menyalakan seven segmen naik turun dengan perintah void
Seven segmen akan menghitung keatas jika tombol 00 ditekan.
Seven segmen akan menghitung mundur jika tombol 01 ditekan.
#include <mega16.h> #include <delay.h> char x; char segmen [10]={0x30,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x3F}; //array tampilan void naik (){ //Program menyalakan 7 segmen Naik for (x=0;x<10;x++){ //Jika nilai x < 10 maka maka X akan ditambah PORTB=segmen[x]; //tampilan 7 segmen sesuai dengan posisi x pada array delay_ms(50); //tunda waktu } } void turun (){ //program menyalakan 7 segmen turun for (x=10;x>0;x--){ //jika nilai x>0 maka nilai x akan dikurangi PORTB=segmen[x]; //tampilan 7 segmen sesuai posisi x pada array delay_ms(50); }} void main (void){ DDRA=0xff; //PORT A sebagai OUTPUT ada LED nya DDRB=0xff; //PORT B sebagai OUTPUT ada 7 segmen DDRC=0x00; //PORT C sebagai INPUT ada saklar while(1){ //looping if (PINC.0==1){ //jika tombol 00 ditekan maka program void naik dijalankan naik (); }else if (PINC.1==1){ //jika tombol 01 ditekan maka program void turun dijalankan turun(); }else { PORTB=0x00; //jika tidak ada tombol ditekan maka 7 segmen padam } } }