Anda di halaman 1dari 53

Modul Pembelajaran

MIkrokontroler AVR ATMEGA16

www.kit-elektronik.com
085779405502

Modul Mikrokontroler ATMEGA 16 www.kit-elektronik.com


Mikrokontroler AVR ATMEGA 16

Mikrokontroler AVR merupakan salah satu jenis IC (integrated circuit) yang dapat diprogram
secara berulang-ulang. AVR dikelompokkan kedalam 4 kelas, yaitu ATtiny, keluarga AT90Sxx,
keluarga ATMega, dan keluarga AT86RFxx. Dari kesemua kelas yang membedakan satu sama
lain adalah ukuran onboard memori, on-board peripheral dan fungsinya. Dari segi arsitektur dan
instruksi yang digunakan mereka bisa dikatakan hampir sama.

Arsitektur ATMega16

 Saluran IO sebanyak 32 buah, yaitu Port A, Port B, Port C dan Port D


 ADC 10 bit sebanyak 8 Channel
 Tiga buah timer / counter
 32 register
 Watchdog Timer dengan oscilator internal
 SRAM sebanyak 512 byte
 Memori Flash sebesar 16 Kb
 Sumber Interrupt internal dan eksternal
 Port SPI (Serial Pheriperal Interface)
 EEPROM on board sebanyak 512 byte
 Komparator analog
 Port USART (Universal Shynchronous Ashynchronous Receiver Transmitter)

Fitur ATMega16

 Sistem processor 8 bit berbasis RISC (reddengan kecepatan maksimal 16 MHz.


 Ukuran memory flash 8KB, SRAM sebesar 512 byte, EEPROM sebesar 512 byte.
 ADC internal dengan resolusi 10 bit sebanyak 8 channel
 Port komunikasi serial USART dengan kecepatan maksimal 2.5 Mbps
 Mode Sleep untuk penghematan penggunaan daya listrik

Modul Mikrokontroler ATMEGA 16 www.kit-elektronik.com


Konfigurasi Pin ATMega16

 VCC merupakan Pin yang berfungsi sebagai pin masukan catudaya


 GND merupakan Pin Ground
 Port A (PA0...PA7) merupakan pin I/O dan pin masukan ADC
 Port B (PB0...PB7) merupakan pin I/O dan pin yang mempunyai fungsi khusus yaitu
Timer/Counter, komparator Analog dan SPI
 Port C (PC0...PC7) merupakan port I/O dan pin yang mempunyai fungsi khusus, yaitu
komparator analog dan Timer Oscillator
 Port D (PD0...PD1) merupakan port I/O dan pin fungsi khusus yaitu komparator analog
dan interrupt eksternal serta komunikasi serial
 RESET merupakan pin yang digunakan untuk mereset mikrokontroler
 XTAL1 dan XTAL2 merupakan pin masukan clock eksternal
 AVCC merupakan pin masukan untuk tegangan ADC
 AREF merupakan pin masukan tegangan referensi untuk ADC

Keterangan PIN ATMEGA16

Modul Mikrokontroler ATMEGA 16 www.kit-elektronik.com


Diagram Blok Mikrokontroler

Mikrokontroler

Flash Memory RAM ROM ADC,PWM, Komparator, dll

Bahasa Program dan Software Mikrokontroler AVR

Bahasa Program

Assembly Basic C Flowchart

“AVR Studio” “Bascom AVR” “Win AVR” “Flow Code AVR”

“Code Vision AVR”

Program yang digunakan pada mikrokontroler AVR dapat menggunakan bahasa Assembly,
bahasa basic, C, flowchart, dll.

Modul Mikrokontroler ATMEGA 16 www.kit-elektronik.com


Contoh software untuk membuat program pada mikrokontroler AVR

#. Assembly

Software AVR Studio

#. Basic

Software BASCOM AVR

Modul Mikrokontroler ATMEGA 16 www.kit-elektronik.com


#. C

Software Codevision AVR C Compiler

#. Flowchart

Software Flowcode

Modul Mikrokontroler ATMEGA 16 www.kit-elektronik.com


Software Downloader Mikrokontroler AVR

Software yang digunakan untuk mendownload program ke dalam mikrokontroler sangat


bermacam-macam disesuaikan dengan tipe yang digunakan pada hardware ISP. Untuk tipe USB
ASP menggunakan software Prog ISP V1.68 dengan interface USB.

Proses Download Mikrokontroler

Komputer ISP Mikrokontroler

#. Komputer digunakan untuk membuat program dan merubah file tersebut menjadi
ekstension heksadesimal (.Hex).

#. ISP (In System Programming) adalah pengisian memori program langsung pada rangkaian
peralatan, tidak perlu menggunakan alat khusus untuk mengisi memori program . Interface
antara computer dan mikrokontroler yang digunakan untuk proses download adalah LPT, RS232
maupun USB.

#. Mikrokontroler berfungsi sebagai downloader yang akan menyimpan data dari komputer ke
flash memori.

Flowchart Pembuatan Program Mikrokontroler

Start A

Tulis Program File berubah menjadi .Hex


(Assembly, Basic, C,dll)

Download file .hex


Save Program dengan software
(.asm,.bas,.c,dll) downloader

End
Assemble / Compile

Modul Mikrokontroler ATMEGA 16 www.kit-elektronik.com


A
Instalasi BASCOM AVR

Bascom AVR merupakan software editor dan simulator mikrokontroler keluarga AVR
dengan bahasa basic. Software ini dikembangkan oleh mcs electronics. Untuk mendapatkan
versi terbaru software ini dapat di unduh dari http://www.mcselec.com. Software bascom avr
yang diunduh merupakan versi evaluasi dengan maksimum memori listing program sebesar
4Kbyte.

Setelah file di download, jalankan file yang berekstensi .exe dengan cara double klick, yang akan
tampak gambar seperti di bawah ini:

Klik Next untuk melanjutkan instalasi yang diikuti dengan munculnya jendela info Licence Agreement.
Baca instruksi, kemudian pilih I accept the agreement dan tekan tombol Next untuk melanjutkan
instalasi.

Modul Mikrokontroler ATMEGA 16 www.kit-elektronik.com


Baca informasi yang muncul, kemudian tekan Next untuk melanjutkan instalasi.

Modul Mikrokontroler ATMEGA 16 www.kit-elektronik.com


Kita dapat memilih lokasi drive dan folder untuk file hasil instalasi dengan cara menekan Browse. Jika
sudah, tekan tombol Next untuk melanjutkan instalasi.

Jika direktori sudah ada, yang dikarenakan pernah menginstal versi yang lama, maka akan muncul
peringatan seperti berikut:

Pilih lokasi untuk meletakkan shortcuts. Tekan tombol Next untuk melanjutkan instalasi.

Modul Mikrokontroler ATMEGA 16 www.kit-elektronik.com


Tekan tombol Finish untuk untuk mengakhiri instalasi.

Modul Mikrokontroler ATMEGA 16 www.kit-elektronik.com


Untuk menjalankan program bascom klik start  program  MCS electronics  BASCOM-
AVR  BASCOM-AVR sehingga akan muncul tampilan seperti gambar dibawah.

Buat program baru dengan memilih File  New dan simpan program dengan memilih File 
Save seperti gambar dibawah.

Pilih Program  Compile untuk menghasilkan file dengan ekstension .hex yang akan di download ke
dalam mikrokontroler.

Modul Mikrokontroler ATMEGA 16 www.kit-elektronik.com


Instalasi USB Downloader USBASP

Sebelum menggunakan usb downloader untuk mendownload program ke dalam


mikrokontroler ATMEGA16, maka diperlukan instalasi driver terlebih dahulu agar usb
downloader dapat berfungsi.

Hubungkan kabel usb downloader ke port usb pada PC/netbook/laptop sehingga akan tampil
seperti gambar di bawah ini.

Pilih Install from a list of specific location (advanced) kemudian pilih Next sehingga akan tampil
seperti gambar di bawah.

Modul Mikrokontroler ATMEGA 16 www.kit-elektronik.com


Pilih Search for the best driver in these locations  include this location in the searh 
Browse  cari letak folder win-driver windows 7, kemudian klik Next.

Modul Mikrokontroler ATMEGA 16 www.kit-elektronik.com


Jika proses instalasi berhasil maka tampil seperti gambar di atas. Untuk melihat hasil instalasi
driver usb downloader USBASP yang sudah terinstal dapat di cek dengan membuka control
panel  System  Hardware  Device Manager

Modul Mikrokontroler ATMEGA 16 www.kit-elektronik.com


Tutorial Menggunakan Software PROGISP 1.68
Software PROGISP merupakan software yang digunakan untuk mendownload program
mikrokontroler AVR (ATMEGA8, ATMEGA16, ATMEGA16, dll) dan MCS51
(ATMEGA1689S51,52,dll). Untuk membuka software PROGISP tidak perlu melakukan instalasi,
cukup buka file progisp.exe maka akan tampil seperti gambar di bawah ini.

Hubungkan kabel usb rangkaian usb downloader pada port usb PC/netbook/laptop sehingga
akan terdengar suara beep dari PC/netbook/laptop yang menandakan bahwa driver usb
downloader telah berhasil terkoneksi. Atau bisa juga dengan membuka control panel 
System  Hardware  Device Manager (seperti proses instalasi driver USBASP downloader).
Kemudian hubungkan konektor pada usb downloader ke rangkaian downloader ATMEGA16
seperti gambar di bawah ini.

Modul Mikrokontroler ATMEGA 16 www.kit-elektronik.com


Untuk mengecek mikrokontroler yang kita gunakan sesuai antara hardware dan software pilih
menu Program  Select Chip (ATMEGA16)  Menu Command (Read Signature). Jika sesuai
maka akan bunyi beep dari PC/netbook/laptop.

Untuk mendownload program pilih menu Load Flash  cari file yang akan di download  Open

Modul Mikrokontroler ATMEGA 16 www.kit-elektronik.com


Kemudian klik Auto sehingga akan tampil seperti gambar di bawah ini.

Modul Mikrokontroler ATMEGA 16 www.kit-elektronik.com


Dasar Bahasa Basic

Tipe Data

Tipe data merupakan bagian program yang paling penting karena sangat berpengaruh pada
program. Pemilihan tipe data yang tepat maka operasi data menjadi lebih efisien dan efektif.

Tipe Data pada BASCOM AVR

No Tipe Jangkauan
1 Bit 0 atau 1

2 Byte 0 – 255

3 Integer -32,768 – 32,767

4 Word 0 – 65535

5 Long -2147483648 – 2147483647

6 Single 1.5 x 10^–45 – 3.4 x 10^38

7 Double 5.0 x 10^–324 to 1.7 x 10^308

8 String >254 by

Konstanta

Konstanta merupakan suatu nilai dengan tipe data tertentu yang tidak dapat diubah-ubah selama
proses program berlangsung. Konstanta harus didefinisikan terlebih dahulu diawal program.

Contoh : A=10, C=20

Variabel

Variabel adalah suatu pengenal (identifier) yang digunakan untuk mewakili suatu nilai tertentu di
dalam proses program yang dapat diubah-ubah sesuai dengan kebutuhan. Nama dari variable
terserah sesuai dengan yang diinginkan namun hal yang terpenting adalah setiap variabel
diharuskan :

1. Terdiri dari gabungan huruf dan angka dengan karakter pertama harus berupa huruf, max
32 karakter.
2. Tidak boleh mengandung spasi atau symbol-simbol khusus seperti : $, ?, %, #, !, &, *, (,
), -, +, = dan lain sebagainya kecuali underscore.
3. Deklarasi

Modul Mikrokontroler ATMEGA 16 www.kit-elektronik.com


Deklarasi sangat diperlukan bila akan menggunakan pengenal (identifier) dalam suatu program.

Deklarasi Variabel

Bentuk umum pendeklarasian suatu variable adalah Dim nama_variabel AS tipe_data

Contoh : Dim x As Integer ‘deklarasi x bertipe integer

Deklarasi Konstanta

Dalam Bahasa Basic konstanta di deklarasikan langsung.

Contohnya : S = “Hello world” ‘Assign string

Deklarasi Fungsi

Fungsi merupakan bagian yang terpisah dari program dan dapat dipanggil di manapun di dalam
program. Fungsi dalam Bahasa Basic ada yang sudah disediakan sebagai fungsi pustaka seperti
print, input data dan untuk menggunakannya tidak perlu dideklarasikan.

Deklarasi buatan

Fungsi yang perlu dideklarasikan terlebih dahulu adalah fungsi yang dibuat oleh programmer.
Bentuk umum deklarasi sebuah fungsi adalah :

Sub Test ( byval variabel As type)

Contohnya : Sub Pwm(byval Kiri As Integer , Byval Kanan As Integer)

Operator

Operator Penugasan

Operator Penugasan (Assignment operator) dalam Bahasa Basic berupa “=”.

Operator Aritmatika

* : untuk perkalian

/ : untuk pembagian

+ : untuk pertambahan

- : untuk pengurangan

% : untuk sisa pembagian (modulus)

Modul Mikrokontroler ATMEGA 16 www.kit-elektronik.com


Operator Hubungan (Perbandingan)

Operator hubungan digunakan untuk membandingkan hubungan dua buah operand atau sebuah
nilai / variable, misalnya :

= ’Equality X = Y

< ’Less than X < Y

> ’Greater than X > Y

<= ’Less than or equal to X <= Y

>= ’Greater than or equal to X >= Y

Operator Logika

Operator logika digunakan untuk membandingkan logika hasil dari operator-operator hubungan.
Operator logika ada empat macam, yaitu :

NOT ‘Logical complement

AND ‘Conjunction

OR ‘Disjunction

XOR ‘Exclusive or

Operator Bitwise

Operator bitwise digunakan untuk memanipulasi bit dari data yang ada di memori. Operator
bitwise dalam Bahasa Basic :

Shift A, Left, 2 : Pergeseran bit ke kiri

Shift A, Right, 2 : Pergeseran bit ke kanan

Rotate A, Left, 2 : Putar bit ke kiri

Rotate A, right, 2 : Putar bit ke kanan

Modul Mikrokontroler ATMEGA 16 www.kit-elektronik.com


Pernyataan Kondisional (IF-THEN – END IF)

Pernyataan ini digunakan untuk melakukan pengambilan keputusan terhadap dua buah bahkan
lebih kemungkinan untuk melakukan suatu blok pernyataan atau tidak. Konstruksi penulisan
pernyatan IF-THEN-ELSE-END IF pada bahasa BASIC ialah sebagai berikut:

IF pernyataan kondisi 1 THEN

‘blok pernyataan 1 yang dikerjakan bila kondisi 1 terpenuhi

IF pernyataan kondisi 2 THEN

‘blok pernyataan 2 yang dikerjakan bila kondisi 2 terpenuhi

IF pernyataan kondisi 3 THEN

‘blok pernyataan 3 yang dikerjakan bila kondisi 3 terpenuhi

Setiap penggunaan pernyataan IF-THEN harus diakhiri dengan perintah END IF sebagai akhir
dari pernyatan kondisional.

Pernyataan Kondisional (SELECT-CASE-END SELECT)

Pernyataan ini digunakan untuk melakukan pengambilan keputusan terhadap banyak kondisi.
Konstruksi penulisan pernyatan SELECT-CASE-END SELECT pada bahasa BASIC ialah
sebagai berikut:

SELECT CASE var

CASE ‘kondisi1 : ‘blok perintah1

CASE ‘kondisi2 : ‘blok perintah2

CASE ‘kondisi3 : ‘blok perintah3

CASE ‘kondisi4 : ‘blok perintah4

CASE ‘kondisi5 : ‘blok perintah5

CASE ‘kondisi’n’ : ‘blok perintah’n’

END SELECT ‘akhir dari pernyatan SELECT CASE

Modul Mikrokontroler ATMEGA 16 www.kit-elektronik.com


Gambar 2 Diagram alir Pernyataan Kondisional (SELECT-CASE-END SELECT)

DO…LOOP

Perintah do…loop digunakan untuk mrmbuat program perulangan, ibarat arus dalam satu
loop tertutup yang selalu berputar terus menerus. Untuk membatasi perulangan dalam
perintah do…loop dapat digunakan do…loop until. Berikut sintaks penulisannya.

DO

<blok pernyataan>

LOOP

Dan ketika kita ingin membatasi perulangannya maka sintaks penulisannya sebagai berikut:

DO

<blok pernyataan>

LOOP UNTIL <syarat kondisi>

FOR…NEXT

Sama seperti do…loop, perintah for…next digunakan untuk membuat perulangan. Namun
pada perintah for…next nilai awal, akhir dan tingkat kenaikan dalam proses perulangannya
bisa kita tentukan. Berikut sintaks penulisannya:

Modul Mikrokontroler ATMEGA 16 www.kit-elektronik.com


FOR variable = nilai_awal TO nilaiakhir [STEP value]

NEXT

GOSUB

Dengan perintah GOSUB maka program akan melompat ke subrutin lalu menjalankan
program dalam subrutin tersebut hingga return. Perintah return akan menggembalikan
program tersebut pada titik sebelum program tersebut melompat ke subrutin. Berikut contoh
pemakaiannya:

PortA =&HFF

GOSUB flipflop

END

Flipflop:

PortA =&HFF

Wait 1

PortA =&H00

Wait1

RETURN

GOTO

Perintah goto hampir sama dengan perintah GOSUB namun pada perintah GOTO tidak
memerlukan perintah return, sehingga programnya tidak akan kembali ke titik dimana
perintah GOTO berada. Berikut sintaks penulisannya:

GOTO label

Label:

……

Modul Mikrokontroler ATMEGA 16 www.kit-elektronik.com


Gambar Rangkaian Sistem Minimum ATMEGA 16

Modul Mikrokontroler ATMEGA 16 www.kit-elektronik.com


Gambar Rangkaian Modul 8 LED

Gambar Rangkaian Modul LCD

Modul Mikrokontroler ATMEGA 16 www.kit-elektronik.com


Gambar Rangkaian Modul Output
( 7 Segment, Motor DC, Buzzer, Led 4 pcs)

Modul Mikrokontroler ATMEGA 16 www.kit-elektronik.com


Gambar Rangkaian Modul 2 Chanel Relay

Modul Mikrokontroler ATMEGA 16 www.kit-elektronik.com


Gambar Rangkaian Modul Input
(LDR, Sensor Flame (api), LM35, Trimpot, Push button 4 pcs)

Modul Mikrokontroler ATMEGA 16 www.kit-elektronik.com


Praktek 1
Mengaktifkan LED 1 dan 2
I. Tujuan
Peserta dapat memahami penggunaan port D pada mikrokontroler ATMEGA 16 sebagai output led.

II. Alat dan Bahan


a. Komputer
b. Software BASCOM AVR dan ISP Prog
c. Trainer Mikrokontroler ATMEGA16
d. USB Downloader

III. Materi
Mikrokontroler AVR ATMEGA 16 memiliki 4 buah port yang terdiri dari Port A, Port B,
Port C dan Port D Masing-masing port terdiri dari 8 bit, sehingga mikrokontroler ATMEGA 16
memiliki total 32 bit yang dapat digunakan baik sebagai input maupun output. Untuk input
misalnya menggunakan push button, sensor infra merah, ultrasonik, sensor suhu, LDR dan lain-
lain. Sedangkan untuk output adalah LED, motor DC, motor stepper, relay, dan lain-lain.
Percobaan kali ini pada trainer mikrokontroler ATMEGA 16 menggunakan Port D untuk
output LED. Led pada modul 8 led akan menyala jika output mikrokontroler pada Port D logika 0
(LOW) dan akan mati jika logika 1 (HIGH).

Gambar Rangkaian Modul 8 LED

Modul Mikrokontroler ATMEGA 16 www.kit-elektronik.com


Hubungkan :

No. Pin Pin


ATMEGA 16 Modul 8 Led

1 PD.7 Out.0 (LED1)

2 PD.6 Out.1 (LED2)

3 PD.5 Out.2 (LED3)

4 PD.4 Out.3 (LED4)

5 PD.3 Out.4 (LED5)

6 PD.2 Out.5 (LED6)

7 PD.1 Out.6 (LED7)

8 PD.0 Out.7 (LED8)

9 +5V +5V

Buka software BASCOM AVR dan tulislah program di bawah ini. Kemudian pada BASCOM AVR
pilih Program  Compile (F7), sehingga program yang dibuat tidak ada error dan menghasilkan
file heksadesimal (ekstension hex). Kemudian upload program menggunakan software progISP.

Program_led1 :

$regfile = "m16def.dat"
$crystal = 12000000

Config Portd.6 = Output


Config Portd.7 = Output
Do
Reset Portd.6
Reset Portd.7
Waitms 500
Set Portd.6
Set Portd.7
Waitms 500
Loop
End

Modul Mikrokontroler ATMEGA 16 www.kit-elektronik.com


Program_led2 :

$regfile = "m16def.dat"
$crystal = 12000000
Config Portd.4 = Output
Config Portd.5 = Output
Do
Reset Portd.4
Waitms 500
Reset Portd.5
Waitms 500
Set Portd.5
Waitms 500
Set Portd.4
Waitms 500
Loop
End

Program_led3 :

$regfile = "m16def.dat" 'menyisipkan library register ATMEGA 16


$crystal = 12000000 'mendefinsikan kristal eksternal 12000000 Hz
Config Portd.4 = Output 'mendefinisikan portd.4 sebagai output
Config Portd.5 = Output 'mendefinisikan portd.5 sebagai output
Led1 Alias Portd.4 'nama lain portd.4 = Led1
Led2 Alias Portd.5 'nama lain portd.5 = Led2
Do 'perintah do - loop memerintahkan program
'untuk looping terus menerus
Reset led1 'led portd.4 on
Waitms 500 'waktu tunda (dapat dirubah)
Reset led2 'led portd.5 on
Waitms 500
Set led2 'led portd.5 off
Waitms 500
Set led1 'led portd.4 off
Waitms 500
Loop
End 'akhir program

Modul Mikrokontroler ATMEGA 16 www.kit-elektronik.com


Program_led4 :

$regfile = "m16def.dat"
$crystal = 12000000

Config Portd = Output


Do

Portd = &B00000000
Waitms 1000
Portd = &B11111111
Waitms 1000
Loop
End

Program_led5

$regfile = "m16def.dat"
$crystal = 12000000
Config Portd = Output
Portd = &B11111110
Wait 1
Dim I As Byte
Do
For I = 1 To 8
Rotate Portd , Left
Wait 1
Next
Loop
End

Modul Mikrokontroler ATMEGA 16 www.kit-elektronik.com


Praktek 2
Mengaktifkan Buzzer dan Motor DC
II. Tujuan
Peserta dapat memahami penggunaan PortC.1 pada mikrokontroler ATMEGA 16 sebagai output
buzzer dan PortC.0 output Motor DC.

II. Alat dan Bahan


a. Komputer
b. Software BASCOM AVR dan ISP Prog
c. Trainer Mikrokontroler ATMEGA16
d. USB Downloader

III. Materi
Buzzer adalah indikator bunyi/suara yang biasa digunakan jika ada keadaan bahaya
seperti ada kebakaran. Untuk mengaktifkan buzzer, mikrokontroler atmega 16 pada portC.1
akan memberikan output LOW (0). Jika PortC.1 memberikan output HIGH (1) maka buzzer akan
off.
Motor Listrik DC atau DC Motor adalah suatu perangkat yang mengubah energi listrik
menjadi energi kinetik atau gerakan (motion). Pada rangkaian dibawah motor dc akan aktif jika
mikrokontroler atmega 16 pada portC.0 mengeluarkan output HIGH (1) dan akan mati jika
mengeluarkan output LOW (0).

Gambar Rangkaian Buzzer dan Motor DC


(Modul Output)

Modul Mikrokontroler ATMEGA 16 www.kit-elektronik.com


Hubungkan :

No. Pin Pin


ATMEGA 16 Modul Output

1 PC.1 Out.12 (Buzzer)

2 PC.0 Out.11 (Motor DC)

3 +5V +5V

4 Gnd Gnd

Program_buzzer :

$regfile = "m16def.dat"
$crystal = 12000000
Config PortC.1 = Output 'mendefinisikan portc.0 sebagai output
Buzzer alias portC.1 'nama lain portC.1=Buzzer
Do 'perintah do - loop memerintahkan program
'untuk looping terus menerus
set buzzer 'buzzer on
Waitms 500 'waktu tunda (dapat dirubah)
reset buzzer 'buzzer off
Waitms 500
Loop
End 'akhir program

Program_motordc :

$regfile = "m16def.dat"
$crystal = 12000000
Config Portc.0 = Output 'mendefinisikan portc.0 sebagai output
Motor alias portc.0 'nama lain portc.0=Buzzer
Do 'perintah do - loop memerintahkan program
'untuk looping terus menerus
set motor 'motor on
Waitms 4000 'waktu tunda (dapat dirubah)
reset motor 'motor off
Waitms 4000
Loop
End 'akhir program

Modul Mikrokontroler ATMEGA 16 www.kit-elektronik.com


Praktek 3
Mengaktifkan Push Button
I. Tujuan
Peserta dapat memahami penggunaan portA.4 , portA.5 , portA.6 dan portA.7 pada mikrokontroler
ATMEGA 16 sebagai input push button.

II. Alat dan Bahan


a. Komputer
b. Software BASCOM AVR dan ISP Prog
c. Trainer Mikrokontroler ATMEGA16
d. Kabel USB Downloader.

III. Materi
Rangkaian input bisa terdiri dari push button, limit switch, sensor infra merah, LDR,
sensor suhu, ultrasonik, dan lain-lain. Fungsi rangkaian input adalah mendeteksi kondisi pada
suatu keadaan yang akan menyebabkan mikrokontroler akan memproses data untuk
menggerakkan output (LED, motor DC, sevent segment, motor stepper, dll). Sebagai contoh
yaitu sensor infra merah yang mendeteksi suatu benda sehingga LCD akan counter up / down.
Pada trainer mikrokontroler ATMEGA 16 inputnya hanya push button. Push button pada trainer
dapat digantikan dengan sensor yang lain sesuai dengan kebutuhan.
Berdasarkan gambar rangkaian, jika push button ditekan maka akan memberikan logika
0 (ground) ke mikrokontroler ATMEGA 16. Push button pada hardware rangkaian terletak pada
portA.4 , portA.5 , portA.6 dan portA.7

Gambar Rangkaian Push Button


(Modul Output)

Modul Mikrokontroler ATMEGA 16 www.kit-elektronik.com


Hubungkan :

No. Pin Pin


ATMEGA 16 Modul Input

1 PA.4 Inp.5 (Inp_1)

2 PA.5 Inp.6 (Inp_2)

3 PA.6 Inp.7 (Inp_3)

4 PA.7 Inp.8 (Inp_4)

5 +5V +5V

6 Gnd Gnd

No. Pin Pin


ATMEGA 16 Modul Output

1 PC.0 Out.11 (Motor DC)

2 PC.1 Out.12 (Buzzer)

3 PC.2 Out.14 (LED4)

4 PC.3 Out.15(LED3)

5 PC.4 Out.16 (LED2)

6 PC.5 Out.17 (LED1)

7 +5V +5V

8 Gnd Gnd

Modul Mikrokontroler ATMEGA 16 www.kit-elektronik.com


Program_Inp1 :

$regfile = "m16def.dat"
$crystal = 12000000
Config Portc.2 = Output 'mendefinisikan portc.2 sebagai output

Config PortA.4 = Input 'mendefinisikan porta.4 sebagai input

Led1 Alias Portc.2


Inp1 Alias Pina.4 'nama lain pina.4 = Inp1

Mulai:
Set Porta.4 'mengaktifkan logika 1 padainput porta.4

Do
If Inp1 = 0 Then 'jika inp1 ditekan maka led1 menyala
Reset Led1 'led1 on
Waitms 200
Else
Set Led1 'jika inp1 tidak ditekan led1 off
Waitms 200
End If
Loop
End

Program_Inp2 :

$regfile = "m16def.dat"
$crystal = 12000000
Config Portc.2 = Output 'mendefinisikan portc.2 sebagai output
Config Portc.3 = Output 'mendefinisikan portc.3 sebagai output
Config Portc.4 = Output 'mendefinisikan portc.4 sebagai output
Config Portc.5 = Output 'mendefinisikan portc.5 sebagai output

Config PortA.4 = Input 'mendefinisikan porta.4 sebagai input


Config PortA.5 = Input 'mendefinisikan porta.5 sebagai input

Led1 Alias Portc.2


Led2 Alias Portc.3
Led3 Alias Portc.4
Led4 Alias Portc.5

Modul Mikrokontroler ATMEGA 16 www.kit-elektronik.com


Inp1 Alias Pina.4 'nama lain pina.4 = Inp1
Inp2 Alias Pina.5 'nama lain pina.5 = Inp2

Mulai:
Set Porta.4 'mengaktifkan logika 1 pada input porta.4
Set Porta.5 'mengaktifkan logika 1 pada input porta.5
Do
If Inp1 = 0 Then 'jika inp1 ditekan maka semua led on
Reset Led1 'led1 on
Reset Led2 'led2 on
Reset Led3 'led3 on
Reset Led4 'led4 on
Waitms 200
Else
End If

If Inp2 = 0 Then 'jika inp2 ditekan maka semua led off


set Led1 'led1 off
set Led2 'led2 off
set Led3 'led3 off
set Led4 'led4 off
Waitms 200
Else
End If
Loop
End

Program_Inp3 :

$regfile = "m16def.dat"
$crystal = 12000000
Config Portc.0 = Output 'mendefinisikan portc.0 sebagai output
Config Portc.1 = Output 'mendefinisikan portc.1 sebagai output
Config Portc.2 = Output 'mendefinisikan portc.2 sebagai output
Config Portc.3 = Output 'mendefinisikan portc.3 sebagai output
Config Portc.4 = Output 'mendefinisikan portc.4 sebagai output
Config Portc.5 = Output 'mendefinisikan portc.5 sebagai output

Config PortA.4 = Input 'mendefinisikan porta.4 sebagai input


Config PortA.5 = Input 'mendefinisikan porta.5 sebagai input
Config PortA.6 = Input 'mendefinisikan porta.6 sebagai input
Config PortA.7= Input 'mendefinisikan porta.7 sebagai input

motor Alias Portc.0

Modul Mikrokontroler ATMEGA 16 www.kit-elektronik.com


buzzer Alias Portc.1
Led1 Alias Portc.2
Led2 Alias Portc.3
Led3 Alias Portc.4
Led4 Alias Portc.5

Inp1 Alias Pina.4 'nama lain pina.4 = Inp1


Inp2 Alias Pina.5 'nama lain pina.5 = Inp2
Inp3 Alias Pina.6 'nama lain pina.6 = Inp3
Inp4 Alias Pina.7 'nama lain pina.7 = Inp4

Mulai:
Set Porta.4 'mengaktifkan logika 1 pada input porta.4
Set Porta.5 'mengaktifkan logika 1 pada input porta.5
Set Porta.6 'mengaktifkan logika 1 pada input porta.6
Set Porta.7 'mengaktifkan logika 1 pada input porta.7

Do
If Inp1 = 0 and Inp2 = 0 Then 'jika inp1 dan Inp2 (gerbang AND) ditekan led on
Reset Led1 'led1 on
Reset Led2 'led2 on
Reset Led3 'led3 on
Reset Led4 'led4 on
Waitms 200
Else
set Led1 'led1 off
set Led2 'led2 off
set Led3 'led3 off
set Led4 'led4 off
Waitms 200
End If

If Inp3 = 0 or Inp4 = 0 Then 'jika inp3 atau Inp4 (gerbang OR) ditekan
'maka buzzer dan motor on
Reset buzzer ‘buzzer on (logic LOW / Reset)
Set motor ‘motor on (logic HIGH / Set)
Waitms 200
Else
Set buzzer ‘buzzer off (logic HIGH / Set)
reset motor ‘motor off (logic LOW / Reset)
Waitms 200
End If
Loop
End

Modul Mikrokontroler ATMEGA 16 www.kit-elektronik.com


Praktek 4
Mengaktifkan LCD
I. Tujuan
Peserta dapat memahami penggunaan LCD.

II. Alat dan Bahan


a. Komputer
b. Software BASCOM AVR dan ISP Prog
c. Trainer Mikrokontroler ATMEGA16
d. Kabel USB Downloader

III. Materi

LCD (Liquid Crystal Display atau dapat di bahasa Indonesia-kan sebagai tampilan Kristal
Cair )adalah suatu jenis media tampilan yang menggunakan kristal cair sebagai penampil utama.
LCD Karakter adalah LCD yang tampilannya terbatas pada tampilan karakter, khususnya
karakter ASCII (seperti karakter-karakter yang tercetak pada keyboard komputer). Jenis LCD
karakter yang beredar di pasaran biasa dituliskan dengan bilangan matriks dari jumlah karakter
yang dapat dituliskan pada LCD tersebut, yaitu jumlah kolom karakter dikali jumlah baris
karakter. Sebagai contoh, LCD16X2, artinya terdapat 16 kolom dalam 2 baris ruang karakter,
yang berarti total karakter yang dapat dituliskan adalah 32 karakter

Modul Mikrokontroler ATMEGA 16 www.kit-elektronik.com


Gambar Rangkaian Modul LCD 16x2
Hubungkan :

No. Pin Pin


ATMEGA 16 Modul LCD 16x2

1 PD.2 RS

2 PD.3 E

3 PD.4 DB4

4 PD.5 DB5

5 PD.6 DB6

6 PD.7 DB7

7 +5V +5V

8 Gnd Gnd

Modul Mikrokontroler ATMEGA 16 www.kit-elektronik.com


Program_LCD1 :

$regfile = "m16def.dat"
$crystal = 12000000

Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7
Config Lcdpin = Pin, E = Portd.3 , Rs = Portd.2
Config Lcd = 16 * 2
Cls ‘clear screen -> bersihkan layar

Do
Upperline ‘baris atas
Lcd "selamat Datang" ‘tampilkan tulisan selamat datang
Lowerline ‘baris bawah
Lcd "kit-elektronik" ‘tampilkan tulisan kit-elektronik
Loop
End

Program_LCD2 :

$regfile = "m16def.dat"
$crystal = 12000000

Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7
Config Lcdpin = Pin , E = Portd.3 , Rs = Portd.2
Config Lcd = 16 * 2
cls
Cursor Off

Do
Locate 1 , 5 'letakkan kursor pada baris 1 kolom 5 tulisan SMKN39
Lcd "SMKN 39"
Wait 1
Locate 2 , 5
Lcd "Jakarta" 'letakkan kursor pada baris 1 kolom 5 tulisan Jakarta
Wait 1
Cls
Wait 1
Loop
End

Modul Mikrokontroler ATMEGA 16 www.kit-elektronik.com


Program_LCD3 :

$regfile = "M16def.dat"
$crystal = 12000000
Dim x as byte ‘variabel x tipe data byte (0-255)

Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7
Config Lcdpin = Pin , E = Portd.3 , Rs = Portd.2
Config Lcd = 16 * 2
cls
Cursor Off

Do
Upperline ‘lcd baris atas (kolom 1)
Lcd " SMKN 39 " ‘Menampilkan tulisan SMKN 39
Lowerline ‘lcd baris atas (kolom 2)
Lcd " Jakarta " ‘Menampilkan tulisan Jakarta
Waitms 500

For X = 1 To 16
Shiftlcd Left
Waitms 200
Next

For X = 1 To 32
Shiftlcd Right
Waitms 200
Next
Cls

Loop
End

Modul Mikrokontroler ATMEGA 16 www.kit-elektronik.com


Praktek 5
Membaca Data ADC dari Trimpot
II. Tujuan
Peserta dapat membuat program membaca data ADC dari trimpot dan ditampilkan pada lcd 16x2.

II. Alat dan Bahan


a. Komputer
b. Software BASCOM AVR dan ISP Prog
c. Trainer Mikrokontroler ATMEGA16
d. Kabel USB Downloader

III. Materi
Data ADC (Analog to Digital Converter) pada mikrokontroler atmega 16 sebesar 10 bit, Maka
data yang bisa dibaca adalah 0 – 1023 (210). Untuk melihat perubahan data adc pada lcd, maka
putarlah trimpotnya.

Gambar Rangkaian Trimpot


(Modul Input)

Hubungkan :

No. Pin Pin


ATMEGA 16 Modul Input

1 PA.0 Inp.4 (Trimpot)

2 +5V +5V

3 Gnd Gnd

Modul Mikrokontroler ATMEGA 16 www.kit-elektronik.com


No. Pin Pin
ATMEGA 16 Modul LCD 16x2

1 PD.2 RS

2 PD.3 E

3 PD.4 DB4

4 PD.5 DB5

5 PD.6 DB6

6 PD.7 DB7

7 +5V +5V

8 Gnd Gnd

Program_trimpot :

$regfile = "m16def.dat"
$crystal = 12000000

Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7
Config Lcdpin = Pin , E = Portd.3 , Rs = Portd.2
Config Lcd = 16 * 2
cls
Cursor Off
'inisialisasi ADC
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Start Adc

Dim Dataadc As Word


Do
Dataadc = Getadc(0) 'mengambil data adc dari trimpot simpan pada
‘variabel Dataadc
Locate 1 , 1
Lcd "Tes Nilai Adc"
Waitms 100
Locate 2 , 1
Lcd "Data ADC=" ; Dataadc 'tampilkan data dari variabel dataadc dan
‘tampilkan pada lcd
Loop

Modul Mikrokontroler ATMEGA 16 www.kit-elektronik.com


Praktek 6
Sensor Api dan Sensor LDR
III. Tujuan
Peserta dapat membuat pendeteksi api dengan output buzzer dan Sensor LDR dengan output LED.

II. Alat dan Bahan


a. Komputer
b. Software BASCOM AVR dan ISP Prog
c. Trainer Mikrokontroler ATMEGA16
d. Kabel USB Downloader

III. Materi
Sensor api, LDR dan suhu LM35 menggunakan ADC untuk membaca data yang diterima dari
sensor.

Gambar Rangkaian Sensor Flame (api) dan Sensor Cahaya (LDR)


(Modul Input)

Modul Mikrokontroler ATMEGA 16 www.kit-elektronik.com


Hubungkan :

No. Pin Pin


ATMEGA 16 Modul Input

1 PA.1 Inp.0 (Flame)

2 PA.2 Inp.1 (LDR)

3 +5V +5V

4 Gnd Gnd

No. Pin Pin


ATMEGA 16 Modul LCD 16x2

1 PD.2 RS

2 PD.3 E

3 PD.4 DB4

4 PD.5 DB5

5 PD.6 DB6

6 PD.7 DB7

7 +5V +5V

8 Gnd Gnd

No. Pin Pin


ATMEGA 16 Modul Output

1 PC.1 Out.12 (Buzzer)

2 PC.2 Out.14 (LED4)

3 +5V +5V

4 Gnd Gnd

Modul Mikrokontroler ATMEGA 16 www.kit-elektronik.com


Program_flame:

$regfile = "m16def.dat"
$crystal = 12000000

Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7
Config Lcdpin = Pin , E = Portd.3 , Rs = Portd.2
Config Lcd = 16 * 2
cls
Cursor Off

'inisialisasi ADC
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Start Adc

Dim Dataflame As Word

Config PortC.1 = Output 'mendefinisikan portc.0 sebagai output


Buzzer Alias Portc.1 'nama lain portC.1=Buzzer
Set Buzzer 'buzzer off terlebih dahulu

Cls
Do
Dataflame = Getadc(1) 'mengambil data adc dari trimpot simpan pada variabel
‘Dataadc
Locate 1 , 1
Lcd "Data Flame=" ; Dataflame 'tampilkan data dari variabel dataadc dan tampilkan
‘pada lcd
Waitms 300

If Dataflame > 500 Then 'jika data flame > 500 (mendeteksi api) maka buzzer on
Reset Buzzer
Wait 1
Else
Set Buzzer
End If

cls
Loop

Modul Mikrokontroler ATMEGA 16 www.kit-elektronik.com


Praktek 6
Sensor Suhu LM35
IV. Tujuan
Peserta dapat membuat pendeteksi suhu menggunakan sensor LM35 dengan output buzzer dan
Relay.

II. Alat dan Bahan


a. Komputer
b. Software BASCOM AVR dan ISP Prog
c. Trainer Mikrokontroler ATMEGA16
d. Kabel USB Downloader

III. Materi
Sensor api, LDR dan suhu LM35 menggunakan ADC untuk membaca data yang diterima dari
sensor.

Gambar Rangkaian Sensor Suhu LM35


(Modul Input)

Hubungkan :

No. Pin Pin


ATMEGA 16 Modul Input

1 PA.3 Inp.2 (Suhu LM35)

2 +5V +5V

3 Gnd Gnd

Modul Mikrokontroler ATMEGA 16 www.kit-elektronik.com


No. Pin Pin
ATMEGA 16 Modul LCD 16x2

1 PD.2 RS

2 PD.3 E

3 PD.4 DB4

4 PD.5 DB5

5 PD.6 DB6

6 PD.7 DB7

7 +5V +5V

8 Gnd Gnd

No. Pin Pin


ATMEGA 16 Modul Output

1 PC.1 Out.12 (Buzzer)

2 +5V +5V

3 Gnd Gnd

No. Pin Pin


ATMEGA 16 Modul Relay 2 Chanel

1 PB.0 In1 (Relay1)

2 PB.1 In2 (Relay2)

3 +5V +5V

4 Gnd Gnd

Modul Mikrokontroler ATMEGA 16 www.kit-elektronik.com


Program_suhu:

$regfile = "m16def.dat"
$crystal = 12000000

Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7
Config Lcdpin = Pin , E = Portd.3 , Rs = Portd.2
Config Lcd = 16 * 2
cls
Cursor Off

'inisialisasi ADC
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Start Adc

Dim Datalm35 As Word


Dim Temp As Word

Config Portc.1 = Output 'mendefinisikan portc.1 sebagai output buzzer


Config Portb.0 = Output 'mendefinisikan portb.0 sebagai output relay1
Config Portb.1 = Output 'mendefinisikan portb.1 sebagai output relay2

Buzzer Alias Portc.1 'nama lain portc.1 = buzzer


Relay1 Alias Portb.0 'nama lain portb.0 = relay1
Relay2 Alias Portb.1 'nama lain portb.1 = relay2
Set Buzzer 'buzzer off
Set Relay1 'relay1 off
Set Relay2 'relay2 off

Cls
Do
Datalm35 = Getadc(3) 'mengambil data adc dari trimpot simpan pada variabel
‘Datalm35
Temp = Datalm35 * 5
Temp = Temp / 10
Locate 1 , 1

Locate 1 , 1
Lcd "SUHU = "
Locate 1 , 8
Lcd TEMP
Locate 1 , 11
Lcd Chr(94) 'kode ascii 94
Locate 1 , 12
Lcd "C"
Locate 1 , 13
Lcd " "

Modul Mikrokontroler ATMEGA 16 www.kit-elektronik.com


If Temp > 40 Then 'jika data suhu < 40 derajat maka buzzer on
Reset Buzzer 'buzzer on
Reset Relay1 'relay1 on
Reset Relay2 'relay2 on
Wait 1
Else
Set Buzzer 'buzzer off
Set Relay1 'relay1 off
Set Relay2 'relay2 off
Wait 1
End If

cls
Loop

Modul Mikrokontroler ATMEGA 16 www.kit-elektronik.com

Anda mungkin juga menyukai