Disusun oleh:
Puji syukur alhamdulillah kehadirat Alloh SWT yang masih memberikan kesempatan dan
melimpahkan kenikmatan sehingga penyusun dapat menyelesaikan penulisan Buku Pedoman
Kegiatan Mengajar.
Pembelajaran di Perguruan Tinggi adalah kegiatan yang terprogram dalam disain (fasiliting ,
Empowering dan enabling), untuk menciptakan mahasiswa belajar secara efektif, yang
menekankan pada sumber belajar. Pembelajaran merupakan proses pengembangan kreativitas
berfikir yang dapat meningkatkan kemampuan berfikir mahasiswa serta dapat meningkatkan dan
mengkonstruksikan pengetahuan baru sebagai upaya meningkatkan penguasaan dan
pengembangan yang baik terhadap materi kuliah.
Maksud dari penyusunan buku pedoman kegiatan pembelajaran adalah agar Dosen dan
Mahasiswa mengetahui dan memahami rambu rambu/aturan tentang pelaksanaan kegiatan belajar
mengajar sehingga Dosen dan Mahasiswa telah mengetahui sejak awal tugas dan fungsinya serta
dapat mempersiapkan diri untuk melaksanakan kegiatan pembelajaran dengan baik dan benar.
Penulis mengharapkan saran dan koreksi dari pembaca demi kesempurnaan penyusunan buku ini.
Penulis juga menyampaikan terima kasih kepada semua pihak yang telah membantu baik secara
langsung atau tidak langsung sehingga buku ini bisa selesai dibuat.
Penulis
HALAMAN JUDUL i
KATA PENGANTAR ii
DAFTAR ISI iii
BAB I : MIKROKONTROLLER ATMEGA8535 1
BAB IV : LED 24
DAFTAR PUSTAKA
II . DASAR TEORI
2.1 Mikrokontroler
Mikrokontroler merupakan suatu terobasan teknologi mikroprosesor dan mikrokomputer yang
merupakan teknologi semikonduktor dengan kandungan transistor yang lebih banyak namun
hanya membutuhkan ruang yang sangat kecil, Lebih lanjut, mikrokontroler merupakan system
computer yang mempunyai satu atau beberapa tugas yang sangat spesifik, berbeda dengan PC
(Personal Computer ) yang memiliki beragam fungsi.
Tidak seperti sistem komputer yang mampu menangani berbagai macam program aplikasi,
mikrokontrler hanya bisa digunakan untuk suatu aplikasi tertentu saja, perbedaan lainnya terletak
pada perbandingan RAM dan ROM. Pada sistem komputer perbandingan RAM dan ROM nya
besar, artinya program-program pengguna disimpan dalam ruang RAM yang relative besar,
sedangkan rutin-rutin antar muka perangkat keras disimpan dalam ruang ROM yang kecil,
Sedangkan pada mikrokontroler, perbandingan ROM dan RAM nya yang besar, artinya program
kontrol disimpan dalm ROM (bias Masked ROM atau Flash PEROM) yang ukurannya relatif
lebih besar, sedangkan RAM digunakan sebagai tempat penyimpanan sementara , termasuk
register-register yang digunakan pada mikrokontroler yang bersangkutan.
Microcontroller sebagai sebuah one chip solution pada dasarnya adalah rangkaian terintregrasi
(Integrated Circuit-IC) yang telah mengandung secara lengkap berbagai komponen pembentuk
sebuah komputer. Berbeda dengan penggunaan microprocessor yang masih memerlukan
komponen luar tambahan seperti RAM, ROM, Timer, dan sebagainya-untuk sistem
microcontroller, tambahan komponen diatas secara praktis hampir tidak dibutuhkan lagi. Hal ini
disebabkan semua komponen penting tersebut telah ditanam bersama dengan sistem prosesor ke
I .Tujuan
I .Tujuan
e) Jika sudah finish, lepas kembali kabel usbnya sesudah itu, masukan kembali kabel usb
ketika dimasukan akan ada suara, seperti suara ketika kita memasukkan flash disk
kemudian lihat di device manager
g) tampilannya setelah dipasang downloader usb asp seperti gambar dibawah ini
4. Pada kotak dialog Licence Agreement, pilih I accept the agreement lalu klik tombol next
5. Berikutnya kotak dialog Select Destination Location akan menanyakan tempat dimana
software akan diletakkan. Gunakan tempat yang telah ditentukan lalu klik tombol next.
7. Kemudian muncul kotak dialog untuk menanyakan nama program shortcut pada menu Start dari
Windows. Lanjutkan dengan menekan tombol next
12. Untuk memulai membuat project baru, pada menubar, pilih File New
13. membuat sebuah project sebagai induk desain dengan memilih Project, lalu klik tombol OK
14. Berikutnya akan ditanya apakah akan menggunakan CodeWizardAVR. Tentu saja lebih
menyenangkan bila Anda memilih jawaban ya dengan cara menekan tombol Yes
16. seting CodeWizardAVR siap disimpan dalam file. Pada menu CodeWizardAVR, pilih File Generate,
Save and Exit
Agar file yang dihasilkan tidak berantakan, buatlah sebuah folder baru
19. Langkah terakhir adalah menulis program seperti contoh gambar dibawah ini
Modul mikrokontroller
PC atau laptop
power supply DC
Tabel diatas menunjukkan konfigurasi pin pada portport mikrokontroler. Bit 2 PUD = Pull-up
Disable, bila bit diset bernilai 1 maka pull-up pada port I/O akan dimatikan walaupun register
DDxn dan PORTxn dikonfigurasikan untuk menyalakan pull-up (DDxn=0, PORTxn=1).
Fungsi Delay
Menghasilkan delay dalam program-C. Berada pada header delay.h yang harus diIncludekan
sebelum digunakan. Sebelum memanggil fungsi, interrupsi harus dimatikan terlebih dahulu, bila
tidak maka delay akan lebih lama dari yang diharapkan. Juga sangat penting untuk menyebutkan
frekuensi clock chip IC AVR yang digunakan pada menu Project-Configure-C Compiler-Code
Generation.
Fungsi delay yang disediakan adalah:
void delay_us(unsigned int n)
menghasilkan delay selama n -detik, n adalah nilai konstan
void delay_ms(unsigned int n)
menghasilkan delay selama n mili-detik, n adalah nilai konstan
4. Buat file tempat penulisan source code yang berektensi .c. yaitu, pilih File > New >
Pilih Source > OK.
simpan dengan nama file led1 kemudian compile, menu Project -Compile
b. Cek koneksi komputer ke modul mikrokontroller dengan cara lihat dalam program
state apakah PRG ISP nyala atau tidak. jika sudah nyala berarti komputer dan modul
sudah terhubung dan siap untuk melakukan download program
Modul mikrokontroller
PC atau laptop
power supply DC
V. Dasar Teori:
Pada praktikum ini, akan dipelajari cara mengembangkan sebuah system menggunakan
mikrokontroler AVR buatan Atmel menggunakan software CodeVisionAVR.. CodeVisionAVR
merupakan software C-cross compiler, dimana program dapat ditulis menggunakan bahasa-C.
Dengan menggunakan pemrograman bahasa-C diharapkan waktu disain (deleloping time) akan
menjadi lebih singkat. Setelah program dalam bahasa-C ditulis dan dilakukan kompilasi tidak
terdapat kesalahan (error) maka proses download dapat dilakukan. Pada percobaan ini anda akan
mengendalikan LED dengan menggunakan Saklar Push Button.
V. Langkah Kerja
1. Jalankan program codevision AVR
2. Mulai project Codevision AVR. File > New > Pilih Project > OK
Use codeWizardAVR? yes
3. ketikkan program berikut
a. Percobaan Input/Ouput
Pada percobaan ini PORTB difungsikan sebagai input dan PORTC difungsikan sebagai output.
#include <mega8535.h>
void main(void)
{
DDRC=0xFF;
simpan dengan nama file SW1 kemudian compile, menu Project -Compile
#include <mega8535.h>
void main(void)
{
DDRC=0xFF;
DDRB=0x00;
PORTB=0xFF;
while(1)
{
if (PINB.0==0) {PORTC=0x01;}
else if (PINB.1==0){PORTC=0x02;}
else if (PINB.2==0){PORTC=0x04;}
else if (PINB.3==0){PORTC=0x08;}
else {PORTC=0x00;}
}
}
Simpan dengan nama file sw2 kemudian compile, menu Project -Compile
c. Percobaan SW dengan pemilihan kombinasi LED
Pada percobaan ini anda akan mengambil data dengan menggunakan SW push button, setiap
penekanan SW akan menampilkan pola LED tertentu.
#include <mega8535.h>
#include <delay.h>
while(1)
{
//# if SW0 is pressed show pattern 1
if(PINB.0==0)
{
for(i=0;i<3;i++)
{
PORTC=p1[i]; //output data
delay_ms(300); //wait for some time
}
PORTC=0; //turn off all LEDs
}
};
}
Simpan dengan nama file sw3 kemudian compile, menu Project -Compile
Modul mikrokontroller
PC atau laptop
power supply DC
Pada tabel tersebut tampak bahwa untuk menghidupkan sebuah segmen, harus dikirimkan data
logika low 0 dan sebaliknya untuk mematikan segmen, harus dikirimkan data logika high 1.
Rangkaian decoder dan driver 7 Segmen
Pada tabel kebenaran tersebut tampak bahwa seven segmen yang hidup tergantung pada output
dari dekoder 74LS138, yang sedang mengeluarkan logika low 0, sehingga dari 8 buah display
tersebut, selalu hanya satu display yang akan dihidupkan. Agar display tampak nyala secara
bersamaan maka ketiga display tersebut harus dihidupkan secara bergantian dengan waktu tunda
tertentu. Pada gambar tersebut seven segment commont anoda dikendalikan dengan
menggunakan transistor PNP melalui decoder 74LS138, apabila ada logika low pada basis
transistor, maka 7 segment akan nyala dan sebaliknya akan padam.
Konfigurasi menggunakan codewizard AVR
simpan dengan nama file segmen1 kemudian compile, menu Project -Compile
Pada percobaan ini data ditampilkan ke sebuah 7 segmen, data ditampilkan secara berurutan
mulai dari 0 sd 9, dengan waktu tunda 1 detik. Untuk setiap kenaikan angka.
#include <mega8535.h>
#include<delay.h>
unsigned char data;
void convert(){
switch(data)
{
// gfedcba
case 0: PORTC=0b11000000;break;
case 1: PORTC=0b11111001;break;
case 2: PORTC=0b10100100;break;
case 3: PORTC=0b10110000;break;
case 4: PORTC=0b10011001;break;
case 5: PORTC=0b10010010;break;
DDRC=DDRD=PORTC=0xff;
PORTD.5=1;
PORTD.6=1;
while(1)
{
convert();
data=data+1;
if(data==10){data=0;};
delay_ms(1000);
}
}
Simpan dengan nama file segmen2 kemudian compile, menu Project -Compile
c.Display 7 Segmen dengan Simulasi Setting data
Pada percobaan ini anda akan belajar bagaimana mensimulasikan setting data dengan display
pada 7 segmen.
#include <mega8535.h>
#include <delay.h>
void convert();
int data,dataTemp,dataPul,dataSat;
void main(void)
{
DDRC=0xFF;
DDRB=0x00;
PORTB=0xFF;
PORTC=0xFF;
DDRD=0xFF;
data=00;
while(PINB.2==1)
{
if (PINB.0==0)
{
data=data+1;
}
else if (PINB.1==0)
{
data=data-1;
}
dataTemp=dataSat;
convert();
PORTD.5=1;
PORTD.6=0;
delay_ms(30);
dataTemp=dataPul;
convert();
PORTD.5=0;
PORTD.6=0;
delay_ms(30);
}
PORTC=0x00;
delay_ms(2000);
}
void convert(){
switch(dataTemp)
{
// pg fe dcba
case 0: PORTC=0b11000000;break;
case 1: PORTC=0b11111001;break;
case 2: PORTC=0b10100100;break;
case 3: PORTC=0b10110000;break;
case 4: PORTC=0b10011001;break;
case 5: PORTC=0b10010010;break;
case 6: PORTC=0b10000010;break;
case 7: PORTC=0b11111000;break;
case 8: PORTC=0b10000000;break;
case 9: PORTC=0b10010000;break;
default: PORTC=0xff;
}
}
Simpan dengan nama file segmen3 kemudian compile, menu Project -Compile
c. Buat program untuk menuliskan karakter pada seven segmen yang diaktifkan
dengan menekan push button
d. Buat program untuk menuliskan tulisan kelas anda mulai seven segmen no 3
dengan secara bergantian lalu hidup semua
Modul mikrokontroller
PC atau laptop
power supply DC
Pada peta memori tersebut, daerah yang berwarna kuning ( 00 s/d 0F dan 40 s/d 4F ) adalah
display yang tampak. Sebagaimanan yang anda lihat, jumlahnya sebanyak 16 karakter per baris
dengan dua baris. Angka pada setiap kotak adalah alamat memori yang bersesuaian dengan posisi
dari layar. Demikianlah karakter pertama di sudut kiri atas adalah menempati alamah 00h. Posisi
karakter berikutnya adalah alamat 01h dan seterusnya.
INISIALISASI
#include <mega8535.h>
#include <lcd.h>
#include <stdio.h>
#include <delay.h>
// Alphanumeric LCD Module functions bisa di copy dari codeWizard CAVR
#asm
.equ __lcd_port=0x15 ;PORTC
#endasm
int LCD;
char lcd_buffer[33];
unsigned char x,y,hasil,hasil_1,hasil_2;
void main (void)
{
//PORT initialization as input or output
DDRA=DDRB=0x00;
DDRC=DDRD=PORTB=0xFF;
PORTA=PORTC=0x00;
LCD=1;
lcd_init(16); // inisialisasi lcd, kolom modul lcd =16.
#include <mega8535.h>
#include <lcd.h>
#include <stdio.h>
#include <delay.h>
// Alphanumeric LCD Module functions bisa di copy dari codeWizard CAVR
#asm
.equ __lcd_port=0x15 ;PORTC
#endasm
unsigned char tulis[5]={'m','i','c','r','o'};
char lcd_buffer[33];
unsigned char i;
void main(void)
{
lcd_init(16); // inisialisasi lcd, kolom modul lcd =16.
while(1)
{
for(i=0;i<5;i++)
{
lcd_clear();
lcd_gotoxy(i,0); // ke kolom x=0 dan baris y=0
sprintf(lcd_buffer,"%c",tulis[i]);
lcd_puts(lcd_buffer);
delay_ms(200);
}
}
}
Simpan dengan nama file lcd3 kemudian compile, menu Project -Compile
void main(void)
c. Buat program untuk menuliskan tulisan berjalan pada baris dua mulai dari tengah
LCD
d. Buat program untuk menuliskan tulisan kelas anda di LCD dengan menekan push
button
Modul mikrokontroller
PC atau laptop
power supply DC
Penyusun tombol pada keypad dapat dibuat dari bermacam-macam bahan/komponen, seperti
switch metal, switch karbon, dan resistif/kapasitif (touch panel). Penggunaan bahan tersebut
disesuaikan dengan kebutuhan akan sensifitas, aksi penekanan, dan kebutuhan akan suatu
tombol khusus. Bahan switch metal pada keypad digunakan untuk kebutuhan keypad atau
tombol-tombol dengan arus yang besar. Keypad dengan bahan carbon dipakai untuk kebutuhan
tombol-tombol dengan arus kecil. Biasanya itu digunakan untuk alat-alat digital yang hanya
memiliki tegangan 0 dan 5V. Penerapan bahan banyak kita jumpai seperti pada keypad remot tv,
remot ac, joy stick, serta masih banyak lainnya.
Sedangkan bahan penyusun keypad yang bersifat resistif/kapasitif digunakan sebagai panel
sentuh pada alat-alat elektronik, seperti hp, smart phone, tablet, computer dan masih banyak
lainnya. Dengan bahan resistif/kapasitif dalam pembuatan keypad, pada area yang lebih kecil
didapatkan resolusi atau tombol yang lebih banyak.
Pemrograman keypad dibutuhkan dua arah komunikasi dalam mengambil data-data masukan
dari keypad. Secara algoritma peng-akses-an keypad dapat dituliskan seperti berikut:
Kirim data biner pada kolom ke-1 keypad
void main(void)
{
// LCD module initialization
while (1)
{
// Place your code here
detek_key();
PORTC=dtkey;
delay_ms(5);
};
}
void detek_key(void) {
PORTB.4=0;
dt=(~PINB & 0x0F);
switch (dt)
{
simpan dengan nama file keypad1 kemudian compile, menu Project -Compile
#include <mega8535.h>
#include <delay.h>
#include <stdio.h>
// Alphanumeric LCD Module functions
#asm
.equ __lcd_port=0x15
#endasm
#include <lcd.h>
void main(void)
{
PORTB=0xFF;
DDRB=0xF0;
PORTC=0x00;
DDRC=0xFF;
// LCD module initialization
while (1)
{
// Place your code here
detek_key();
data=dtkey;
convert();
PORTD.5=0;
void detek_key(void) {
PORTB.4=0;
dt=(~PINB & 0x0F);
switch (dt)
{
case 1: dtkey=0x1;
break;
case 2: dtkey=0x4;
break;
case 4: dtkey=0x7;
break;
case 8: dtkey=0xa;
break;
};
PORTB.4=1; PORTB.5=0;
dt=(~PINB & 0x0F);
switch (dt) {
case 1: dtkey=0x2;
break;
case 2: dtkey=0x5;
break;
case 4: dtkey=0x8;
break;
case 8: dtkey=0x0;
break;
};
PORTB.5=1; PORTB.6=0;
dt=(~PINB & 0x0F);
switch (dt) {
case 1: dtkey=0x3;
PORTB.7=1;
}
void convert(){
switch(data)
{
// pg fe dcba
case 0: PORTC=0b11000000;break;
case 1: PORTC=0b11111001;break;
case 2: PORTC=0b10100100;break;
case 3: PORTC=0b10110000;break;
case 4: PORTC=0b10011001;break;
case 5: PORTC=0b10010010;break;
Mikrokontroller Syahud, S, M.Eng.
case 6: PORTC=0b10000010;break;
case 7: PORTC=0b11111000;break;
case 8: PORTC=0b10000000;break;
case 9: PORTC=0b10010000;break;
default: PORTC=0xff;
}
}
Simpan dengan nama file keypad2 kemudian compile, menu Project -Compile
[2] Lingga Wardana, 2006, Belajar Sendiri Mikrokontroler AVR Seri ATMega8535: Simulasi,
Hardware dan Aplikasi, Andi Offset, Yogyakarta
[3] Syahrul, 2014, Pemrograman Mikrokontroler AVR: Bahasa Assembly dan C, Infromatika,
Jakarta
[5] http://www.atmel.com/devices/ATMEGA8535.aspx