44
1 PANDUAN PRAKTIKUM MIKROKONTROLER BERBASIS AVR STK500 DENGAN BASCOM AVR Oleh Roby Adi Wibowo (21060110060011) Yahya Zultoni (21060110060031) PROGRAM STUDI DIPLOMA III TEKNIK ELEKTRO FAKULTAS TEKNIK UNIVERSITAS DIPONEGORO 2013

Diktat Praktikum Mikrokontroler

Embed Size (px)

Citation preview

Page 1: Diktat Praktikum Mikrokontroler

1

PANDUAN PRAKTIKUM MIKROKONTROLER BERBASIS AVR

STK500 DENGAN BASCOM AVR

Oleh

Roby Adi Wibowo (21060110060011)

Yahya Zultoni (21060110060031)

PROGRAM STUDI DIPLOMA III TEKNIK ELEKTRO

FAKULTAS TEKNIK

UNIVERSITAS DIPONEGORO

2013

Page 2: Diktat Praktikum Mikrokontroler

2

CARA MENGGUNAKAN PROTEUS

1. Buka file proteus ISIS sehingga keluar jendela proteus seperti gambar

di bawah ini

2. Untuk pemilihan „Komponen Mode‟ dan Klik „P‟

3. Lalu akan muncul jendela pemilihan komponen seperti di bawah ini

Page 3: Diktat Praktikum Mikrokontroler

3

4. Setelah memilih komponen yang akan digunakan, lakukan „Dobel

Klik‟ atau klik „OK‟

5. Lalu komponen akan muncul pada menu device

Page 4: Diktat Praktikum Mikrokontroler

4

6. Untuk menempatkan komponen tersebut, klik komponen dan letakkan

pada lembar kerja pada proteus sehingga seperti di bawah ini.

7. Untuk memberikan SUPPLY dan GROUND pada rangkaian, klik

menu „Terminal Mode‟,

Page 5: Diktat Praktikum Mikrokontroler

5

8. Untuk memulai simulasi, atau berhenti simulasi, klik menu ini

9. Jika digunakan mikrokontroler untuk simulasi, maka perlu

memasukkan program .hex pada mikrokontroler tersebut, dengan cara

dobel klik pada IC Mikrokontroler tersebut,

Page 6: Diktat Praktikum Mikrokontroler

6

10. Lalu akan muncul jendela di bawah ini, dan masukkan program .hex

yang anda simpan ke dalam sini, dengan cara mengklik gambar

„Folder‟ tersebut. Lalu klik „OK‟, dan jalankan simulasi anda.

Page 7: Diktat Praktikum Mikrokontroler

7

Jika Terjadi

Error

Page 8: Diktat Praktikum Mikrokontroler

8

BAB I

LED

I. TUJUAN PRAKTIKUM

- Mahasiswa dapa tmembuat program LED.

- Mahasiswa dapat membuat display LED berjalan.

II. DASAR TEORI

LED Atau Light Emitting Diode adalah

perangkatsemikonduktor yang memancarkan spektrum cahaya dangkal

incoherent,ketika secara elektrikal dipantulkan dari arah depan. Efek ini

adalah bentuk daricahaya elec troluminescence. Warna daricahaya yang

dipancarkan, bergantung pada komposisi kimiawi dari bahan

semiconductingyang digunakan.

III. ALAT DAN BAHAN

- Komputeratau laptop dengan software proteus.

- Komputeratau laptop denganaplikasibascom.

IV. PROSEDUR PERCOBAAN

- Buatlahgambarrangkaianpadaproteus

- Buat program sesuaidenganmodul

- Compile program yang anda ketikkan.

- Masukkan program .hex tersebut pada mikrokontroler yang

andabuatpadaproteus

Page 9: Diktat Praktikum Mikrokontroler

9

- Jalankan simulator.

-

V. Gambar rangkaian

Buatlah listing program berikut

1.1 Aplikasi LED menyala

'Deklarasi Crystal

$crystal = 11059200

'Deklarasi header

$regfile = "m16def.dat"

'deklarasivariabel

Dim Data1 As Byte

PB0/T0/XCK1

PB1/T12

PB2/AIN0/INT23

PB3/AIN1/OC04

PB4/SS5

PB5/MOSI6

PB6/MISO7

PB7/SCK8

RESET9

XTAL212

XTAL113

PD0/RXD14

PD1/TXD15

PD2/INT016

PD3/INT117

PD4/OC1B18

PD5/OC1A19

PD6/ICP120

PD7/OC221

PC0/SCL22

PC1/SDA23

PC2/TCK24

PC3/TMS25

PC4/TDO26

PC5/TDI27

PC6/TOSC128

PC7/TOSC229

PA7/ADC733

PA6/ADC634

PA5/ADC535

PA4/ADC436

PA3/ADC337

PA2/ADC238

PA1/ADC139

PA0/ADC040

AREF32

AVCC30

U1

ATMEGA16

D1

LED-BLUED2

LED-BLUE

D3

LED-BLUE

D4

LED-BLUED5

LED-BLUE

D6

LED-BLUE

D7

LED-BLUE

D8

LED-BLUE

X3CRYSTAL

C5

1uF

C6

1uF

portd

Port led

Page 10: Diktat Praktikum Mikrokontroler

10

'pendefinisian bit mikro

Config PortD = Output

‘rutin utama

Do

Data1 = 0

PortD = Data1

Loop

End

1.2 Aplikasi LED kedip

'deklarasi cystal

$crystal = 11059200

'deklarasi header

$regfile = "m16def.dat"

'deklarasi variabel

Dim Data1 As Byte

Dim Data2 As Byte

'pendifinisian pin mikro

Config PortD = Output

'rutin utama

Data1 = 255

Data2 = 0

Do

PortD = Data1

Waitms 1000

PortD = Data2

Waitms 1000

Loop

End

1.3 Aplikasi LED flip-flop

'deklarasi crystal

$crystal = 11059200

'deklarasi header

$regfile = "m16def.dat"

'deklarasivariabel

Dim Data1 As Byte

Dim Data2 As Byte

Page 11: Diktat Praktikum Mikrokontroler

11

'pendifinisian pin mikro

Config PortD = Output

'rutinutama

Data1 = 85

Data2 = 170

Do

PortD = Data1

Waitms 500

PortD = Data2

Waitms 500

Loop

End

1.4 Aplikasi LED berjalan kekiri

'deklarasi crystal

$crystal = 11059200

'deklarasi header

$regfile = "m16def.dat"

'deklarasivariabel

Dim Data1 As Byte

'pendifinisian pin mikro

Config PortD = Output

'rutinutama

Data1 = &B11111110

Do

Rotate Data1 , Left , 1

PortD = Data1

Waitms 100

Loop

End

Page 12: Diktat Praktikum Mikrokontroler

12

1.5 Aplikasi LED berjalan kekanan

'deklarasi crystal

$crystal = 11059200

'deklarasi header

$regfile = "m16def.dat"

'deklarasivariabel

Dim Data1 As Byte

'pendifinisian pin mikro

Config PortD = Output

'rutinutama

Data1 = &B11111110

Do

Rotate Data1 , Right , 1

PortD = Data1

Waitms 100

Loop

End

1.6 Aplikasi LED berjalan bolak-balik

'deklarasi crystal

$crystal = 11059200

'deklarasi header

$regfile = "8535def.dat"

'deklarasivariabel

Dim Data1 As Byte , Data2 As Byte

'pendifinisian pin mikro

Config PortD = Output

'rutinutama

Data1 = &B00000001

Do

For Data2 = 1 To 7

PortD = Data1

Rotate Data1 , Right , 1

Waitms 50

Next Data2

For Data2 = 1 To 7

PortD = Data1

Page 13: Diktat Praktikum Mikrokontroler

13

Rotate Data1 , Left , 1

Waitms 50

Next Data2

Loop

End

Page 14: Diktat Praktikum Mikrokontroler

14

BAB II

Aplikasi Tombol (Button)

I. TUJUAN PRAKTIKUM

- Mahasiswa dapa tmembuat program Tombol.

- Mahasiswa dapat mengaplikasikan Tombol dalam mengontrol LED.

II. DASAR TEORI

Agar tombol dapat memberi input pada mikrokontroler, maka lebih dahulu

tombol ini harus disusun dalam sebuah rangkaian dimana terdapat perbedaan

kondisi pada pin-pinnya antara kondisi penekanan tombol, penekanan tombol

1,2,3 dan seterusnya. Kondisi tidak adanya penekanan tombol diatur dengan

adanya kondisi logika low. Pada saat tombol tidak ditekan, maka tidak ada arus

mengalir dari VCC melalui resistor menuju ke port seperti tampak pada gambar

berikut.

Sedangkan saat tombol ditekan, maka baris dan kolom akan terhubung ke VCC

sehingga kondisi pada baris dan kolom tersebut akan menjadi high.

III. ALAT DAN BAHAN

- Komputer atau laptop dengan software proteus.

- Komputer atau laptop dengan aplikasi bascom.

IV. PROSEDUR PERCOBAAN

- Buatlah gambar rangkaian pada proteus

R2port

Page 15: Diktat Praktikum Mikrokontroler

15

- Buat program sesuai dengan modul

- Compile program yang andaketikkan.

- Masukkan program .hex tersebut pada mikrokontroler yang anda buat pada

proteus

- Jalankan simulator.

V. Gambar rangkaian

PB0/T0/XCK1

PB1/T12

PB2/AIN0/INT23

PB3/AIN1/OC04

PB4/SS5

PB5/MOSI6

PB6/MISO7

PB7/SCK8

RESET9

XTAL212

XTAL113

PD0/RXD14

PD1/TXD15

PD2/INT016

PD3/INT117

PD4/OC1B18

PD5/OC1A19

PD6/ICP120

PD7/OC221

PC0/SCL22

PC1/SDA23

PC2/TCK24

PC3/TMS25

PC4/TDO26

PC5/TDI27

PC6/TOSC128

PC7/TOSC229

PA7/ADC733

PA6/ADC634

PA5/ADC535

PA4/ADC436

PA3/ADC337

PA2/ADC238

PA1/ADC139

PA0/ADC040

AREF32

AVCC30

U1

ATMEGA16

C1

22p

X1CRYSTALC2

22p

D1LED-YELLOW

D2LED-YELLOW

D3LED-YELLOW

D4LED-YELLOW

D5LED-YELLOW

D6LED-YELLOW

D7LED-YELLOW

D8LED-YELLOW

R110k

R210k

R310k

R410k

R510k

R610k

R710k

R810k

portd

Port led

portc

Port tombol

Page 16: Diktat Praktikum Mikrokontroler

16

Listing program pembacaan tombol 1

'program bab 2.1 tombol

'deklarasi crystal

$crystal = 11059200

'Deklarasi header

$regfile = "m16def.dat"

'deklarasi variabel

Dim Data1 As Byte

'pendefinisian pin mikro

Config Portc = Input

Config Portd = Output

Tombol1 Alias Pinc.0

Tombol2 Alias Pinc.1

Tombol3 Alias Pinc.2

Tombol4 Alias Pinc.3

Tombol5 Alias Pinc.4

Tombol6 Alias Pinc.5

Tombol7 Alias Pinc.6

Tombol8 Alias Pinc.7

Portc = 255

'rutin utama

Do

If Tombol1 = 0 Then Set Portd.0

If Tombol2 = 0 Then Set Portd.1

If Tombol3 = 0 Then Set Portd.2

If Tombol4 = 0 Then Set Portd.3

Page 17: Diktat Praktikum Mikrokontroler

17

If Tombol5 = 0 Then Set Portd.4

If Tombol6 = 0 Then Set Portd.5

If Tombol7 = 0 Then Set Portd.6

If Tombol8 = 0 Then Set Portd.7

Loop

End

1.2 Listing program pembacaan tombol 2

'program bab 2.2 Tombol

'deklarasi crystal

$crystal = 11059200

'Deklarasi header

$regfile = "m16def.dat"

'deklarasi variabel

Dim Data1 As Byte

Dim A As Byte

Dim B As Byte

'deklarasi subrutin

Declare Sub Kiri()

Declare Sub Kanan()

Declare Sub Kedip()

Declare Sub Mati()

'pendefinisian pin mikro

Config PortC= Input

Config PortD = Output

'rutin utama

Data1 = 1

Do

Data1 = PinC

Select Case Data1

Case 1 : Call Kiri()

Case 2 : Call Kanan()

Case 3 : Call Kedip()

Case Else : Call Mati()

End Select

Loop

End

'sub rutin

'sub rutin kiri

Page 18: Diktat Praktikum Mikrokontroler

18

Sub Kiri()

A = 1

For B = 0 To 8

PortD = A

Shift A , Left , 1

Waitms 100

Next

End Sub

'sub rutin kanan

Sub Kanan()

A = 128

For B = 0 To 8

PortD = A

Shift A , Right , 1

Waitms 100

Next

End Sub

'sub rutin kedip

Sub Kedip()

For B = 0 To 8

PortD = 0

Waitms 100

Portc = 1

Waitms 100

Next

End Sub

'sub rutin mati

Sub Mati()

PortD = 00

End Sub

Page 19: Diktat Praktikum Mikrokontroler

19

BAB III

LCD

I. TUJUAN PRAKTIKUM

- Mahasiswa dapat membuat tampilan pada LCD 16x2.

- Mahasiswa dapat mengetahui program tampilan pada LCD 16x2.

II. DASAR TEORI

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.

Page 20: Diktat Praktikum Mikrokontroler

20

III. ALAT DAN BAHAN

- Komputeratau laptop dengan software proteus.

- Komputeratau laptop denganaplikasibascom.

IV. PROSEDUR PERCOBAAN

- Buatlahgambarrangkaianpadaproteus

- Buat program sesuaidenganmodul

- Compile program yang andaketikkan.

- Masukkan program .hex tersebut pada mikrokontroler yang anda buat pada

proteus

- Jalankan simulator

V. GAMBAR RANGKAIAN

.

Page 21: Diktat Praktikum Mikrokontroler

21

3.1 Listing program tampilan LCD

'program bab 3.1 LCD

'deklarasi crystal

$crystal = 11059200

'Deklarasi header

$regfile = "m16def.dat"

'lcd & port configuration

Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6

= Portc.1 , Db7 = Portc.0 , E = Portc.4 , Rs = Portc.5

Config Lcdbus = 4

Config Lcd = 16 * 2

Cursor Off

Cls

portc

LCD

7segment control

7segment Data

Motor

Supply Motor

Keypad

Page 22: Diktat Praktikum Mikrokontroler

22

'rutin utama

Lcd "Praktikum Mikroprosesor"

Waitms 100

Lowerline

Lcd "modul stk 500"

Waitms 2000

Cls

End

3.2 Listing program LCD bergeser

'program bab 3.2 LCD

'Deklarasi header

$regfile = "m16def.dat"

'deklarasi crystal

$crystal = 11059200

'lcd & port configuration

Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6

= Portc.1 , Db7 = Portc.0 , E = Portc.4 , Rs = Portc.5

Config Lcdbus = 4

Config Lcd = 16 * 2

Dim Geser As Byte

Cursor Off

Geser = 0

Cls

'rutin utama

Do

Locate 1 , 1

Lcd "praktikum mikroprosesor"

For Geser = 0 To 16

Shiftlcd Left

Waitms 400

Next Geser

Geser = 0 Loop

Page 23: Diktat Praktikum Mikrokontroler

23

BAB IV

SEVEN SEGMENT

I. TUJUAN PRAKTIKUM

- Mahasiswa dapat membuat program seven segmen.

- Mahasiswa dapat membuat display angka dengan seven segmen.

- Mahasiswa dapat menjelaskan bit-bit output display seven segmen.

II. DASAR TEORI

Seven segment merupakan display yang terdiri dari lampu-lampu led yang

tersusun sedemikian rupa, sehingga berbentuk angka delapan (8). Seven segment

terdapat dua jenis, yaitu seven segment common anoda dan seven segment common

catoda. Common ini yang menjadi acuan seven segment tersebut mendapat supply

VCC atau GROUND. Dan terdapat 7 terminal A-G yang tersambung pada masing-

masing nyala display dari led.

Gmbr common anode gmbr common catoda

Page 24: Diktat Praktikum Mikrokontroler

24

Pada common anoda, pada supply diberikan vcc, dan pada tiap terminalnya diberi

logika „0‟ atau low untuk dapat menyalakannya. Pada common catoda, disambungkan

atau diberikan logika „0‟ atau low, dan pada terminalnya diberi logika high atau „1‟.

III. ALAT DAN BAHAN

- Komputer atau laptop dengan software proteus.

- Komputer atau laptop dengan aplikasi bascom.

IV. PROSEDUR PERCOBAAN

- Buatlah gambar rangkaian pada proteus

- Buat program sesuai dengan modul

- Compile program yang anda ketikkan.

- Masukkan program .hex tersebut pada mikrokontroler yang anda buat pada proteus

- Jalankan simulator.

4.1 Aplikasi Seven Segment Tunggal

Page 25: Diktat Praktikum Mikrokontroler

25

PB0/T0/XCK1

PB1/T12

PB2/AIN0/INT23

PB3/AIN1/OC04

PB4/SS5

PB5/MOSI6

PB6/MISO7

PB7/SCK8

RESET9

XTAL212

XTAL113

PD0/RXD14

PD1/TXD15

PD2/INT016

PD3/INT117

PD4/OC1B18

PD5/OC1A19

PD6/ICP120

PD7/OC221

PC0/SCL22

PC1/SDA23

PC2/TCK24

PC3/TMS25

PC4/TDO26

PC5/TDI27

PC6/TOSC128

PC7/TOSC229

PA7/ADC733

PA6/ADC634

PA5/ADC535

PA4/ADC436

PA3/ADC337

PA2/ADC238

PA1/ADC139

PA0/ADC040

AREF32

AVCC30

U1

ATMEGA16

X1CRYSTAL

C1

22p

C2

22p

Q1BC549

Page 26: Diktat Praktikum Mikrokontroler

26

Buatlah listing program berikut

$regfile = "m16def.dat" ‘deklarasi mikrokontroler

$crystal = 4000000 ‘deklarasi crystal

'DEKLARASI VARIABEL

Dim B As Integer

'deklarasi variabel B sebagai integer

'------------------

'PENDEFINISIAN PIN MIKRO

Config Portc = Output

'-------------------

'DEKLARASI RUTIN

Declare Sub Segment(byval Angka As Integer)

'-----------------------

'RUTIN UTAMA

Portd=&H01

Do

B = 0

Do

Call Segment(b)

Waitms 100

Incr B

Loop Until b = 11

'do sampai a=10

Loop

'RUTIN 7SEGMENT

Sub Segment()

Select Case Angka

Case 0 : portc = &B00111111 ‘0

Case 1 : Portc = &B00000110 '1

Case 2 : Portc = &B01011011 '2

Case 3 : Portc = &B01001111 '3

Case 4 : Portc = &B01100110 '4

Case 5 : Portc = &B01101101 '5

Case 6 : Portc = &B01111101 '6

Case 7 : Portc = &B00000111 '7

Case 8 : Portc = &B01111111 '8

Case 9 : Portc = &B01101111 '9

End Select

End Sub

Page 27: Diktat Praktikum Mikrokontroler

27

4.2 Aplikasi Seven Segment Tunggal dengan Dekoder untuk menampilkan

angka 3 dan 2 secara bergantian.

Gambar Rangkaian

Buatlah listing program berikut

$regfile=”m16def.dat” ‘Deklarasi Mikro

$crystal=4000000 ‘Deklarasi crystal

Dim B as integer ‘Deklarasi variable B sebagai

integer

Config portc=output ‘Pendefinisian output mikro

Do ‘Rutin utama

Portc=&B0000

Waitms 500

Portc=&B0001

Waitms 500

portc=&B0010

waitms 500

portc=&B0011

waitms 500

portc=&B0100

waitms 500

portc=&B0101

waitms 500

portc=&B0110

waitms 500

portc=&B0111

waitms 500

portc=&B1000

waitms 500

portc=&B1001

Loop

PB0/T0/XCK1

PB1/T12

PB2/AIN0/INT23

PB3/AIN1/OC04

PB4/SS5

PB5/MOSI6

PB6/MISO7

PB7/SCK8

RESET9

XTAL212

XTAL113

PD0/RXD14

PD1/TXD15

PD2/INT016

PD3/INT117

PD4/OC1B18

PD5/OC1A19

PD6/ICP120

PD7/OC221

PC0/SCL22

PC1/SDA23

PC2/TCK24

PC3/TMS25

PC4/TDO26

PC5/TDI27

PC6/TOSC128

PC7/TOSC229

PA7/ADC733

PA6/ADC634

PA5/ADC535

PA4/ADC436

PA3/ADC337

PA2/ADC238

PA1/ADC139

PA0/ADC040

AREF32

AVCC30

U1

ATMEGA16

X1CRYSTAL

C1

22p

C2

22p

A7

B1

C2

D6

LT3

BI4

LE/STB5

QA13

QB12

QC11

QD10

QE9

QF15

QG14

U2

74HC4511

Page 28: Diktat Praktikum Mikrokontroler

28

End

4.3 Aplikasi multipleksing empat digit seven segment

Gambar Rangkaian:

PB0/T0/XCK 1 PB1/T1 2 PB2/AIN0/INT2 3 PB3/AIN1/OC0 4 PB4/SS 5 PB5/MOSI 6 PB6/MISO 7 PB7/SCK 8

RESET 9

XTAL2 12 XTAL1 13

PD0/RXD 14 PD1/TXD 15 PD2/INT0 16 PD3/INT1 17

PD4/OC1B 18 PD5/OC1A 19 PD6/ICP1 20 PD7/OC2 21

PC0/SCL 22 PC1/SDA 23 PC2/TCK 24 PC3/TMS 25 PC4/TDO 26 PC5/TDI 27

PC6/TOSC1 28 PC7/TOSC2 29

PA7/ADC7 33 PA6/ADC6 34 PA5/ADC5 35 PA4/ADC4 36 PA3/ADC3 37 PA2/ADC2 38 PA1/ADC1 39 PA0/ADC0 40

AREF 32 AVCC 30

U1

ATMEGA32

Q1 BC547 Q2

BC547 Q3 BC547 Q4

BC547

11059200 CRYSTAL

C1

22p C2

22p

portc

LCD

7segment control

7segment Data

Motor

Supply Motor

Keypad

portd

Page 29: Diktat Praktikum Mikrokontroler

29

Buatlah listing program berikut

$regfile = "m16def.dat"

$crystal = 4000000

Config Portd = Output

Config Portb = Output

Portd = 255

Dim A As Byte

Dim B As Byte

Dim Bcd1 As Integer

Dim Bcd2 As Integer

Dim Hitung As Integer

Dim Ribuan As Integer

Dim Ratusan As Integer

Dim Puluhan As Integer

Dim Satuan As Integer

Hitung = 0

Do

Ribuan = Hitung / 1000

Bcd1 = Hitung Mod 1000

Ratusan = Bcd1 / 100

Bcd2 = Bcd1 Mod 100

Puluhan = Bcd2 / 10

Satuan = Bcd2 Mod 10

For A = 0 To 100

Portb = &B0001

Portd = Lookup(ribuan , Angka)

Waitms 5

Portb = &B0010

Portd = Lookup(ratusan , Angka)

Waitms 5

Portb = &B0100

Portd = Lookup(puluhan , Angka)

Waitms 5

Portb = &B1000

Portd = Lookup(satuan , Angka)

Waitms 5

Next

Incr Hitung

If Hitung >= 50 Then Hitung = 0

Waitms 100

Loop

Angka: Data &B00111111 , &B00000110 , &B01011011 ,

&B01001111 , &B01100110 , &B01101101 , &B01111101 ,

&B00000111 , &B01111111 , &B01101111

Page 30: Diktat Praktikum Mikrokontroler

30

BAB V

KEYPAD MATRIK

I. TUJUAN PRAKTIKUM

- Mahasiswa dapat membuat program keypad matrik

- Mahasiswa dapat memahami fungsi kerja keypad matrik

- Mahasiswa dapat mengakses keypad matrik untuk aplikasi terapan

II. DASAR TEORI

Keypad Matriks adalah tombol-tombol yang disusun secara maktriks (baris

x kolom) sehingga dapat mengurangi penggunaan pin input. Sebagai contoh,

Keypad Matriks 4×4 cukup menggunakan 8 pin untuk 16 tombol. Hal tersebut

dimungkinkan karena rangkaian tombol disusun secara horizontal membentuk

baris dan secara vertikal membentuk kolom:

Namun demikian, sebagai konsekuensi dari penggunaan bersama satu jalur

(semisal baris satu (B1)), maka tidak dimungkinkan pengecekkan dua tombol

sekaligus dalam satu slot waktu.

Page 31: Diktat Praktikum Mikrokontroler

31

Proses pengecekkan dari tombol yang dirangkai secara maktriks adalah dengan

teknik scanning, yaitu proses pengecekkan yang dilakukan dengan cara

memberikan umpan-data pada satu bagian dan mengecek feedback (umpan-balik) –

nya pada bagian yang lain. Dalam hal ini, pemberian umpan-data dilakukan pada

bagian baris dan pengecekkan umpan-balik pada bagian kolom. Pada saat

pemberian umpan-data pada satu baris, maka baris yang lain harus dalam kondisi

inversi-nya. Tombol yang ditekan dapat diketahui dengan melihat asal data dan di

kolom mana data tersebut terdeteksi:

Pada contoh di atas, tombol yang ditekan adalah tombol “5”. Seperti terlihat bahwa

B2 bernilai nol, sedangkan B1, B3, dan B4 adalah satu. Kemudian dengan

mengetahui bahwa asal data dari B2, dan umpan-baliknya terdeteksi pada K2,

maka dapat disimpulkan bahwa tombol yang ditekan adalah tombol “5”.

adalah jalur input dan jalur baris adalah jalur output maka proses scaning matrix

keypad 4×4 diatas dapat dituliskan sebagai berikut.

- Mengirimkan logika Low untuk kolom 1 (Col1) dan logika HIGH untuk

kolom yang lain kemudian membaca data baris, misal tombol SW1 ditekan

Page 32: Diktat Praktikum Mikrokontroler

32

maka data baris pertama (Row1) akan LOW sehingga data baris yang dibaca

adalah 0111, atau tombol yang ditekan tombol SW5 maka data pada baris ke 2

akan LOW sehingga data yang terbaca 1011, atau tombol SW9 yang ditekan

sehingga data yang terbaca 1101, atau tombol SW13 yang ditekan maka data

yang dibaca adalah 1110 dan atau tidak ada tombol pada kolom pertama yang

di tekan maka data pembacaan baris akan 1111.

- Mengirimkan logika Low untuk kolom 2 (Col2) dan logika HIGH untuk

kolom yang lain kemudian membaca data baris, misal tombol SW1 ditekan

maka data baris pertama (Row1) akan LOW sehingga data baris yang dibaca

adalah 0111, atau tombol yang ditekan tombol SW5 maka data pada baris ke 2

akan LOW sehingga data yang terbaca 1011, atau tombol SW9 yang ditekan

sehingga data yang terbaca 1101, atau tombol SW13 yang ditekan maka data

yang dibaca adalah 1110 dan atau tidak ada tombol pada kolom pertama yang

di tekan maka data pembacaan baris akan 1111.

- Mengirimkan logika Low untuk kolom 3 (Col3) dan logika HIGH untuk

kolom yang lain kemudian membaca data baris, misal tombol SW1 ditekan

maka data baris pertama (Row1) akan LOW sehingga data baris yang dibaca

adalah 0111, atau tombol yang ditekan tombol SW5 maka data pada baris ke 2

akan LOW sehingga data yang terbaca 1011, atau tombol SW9 yang ditekan

sehingga data yang terbaca 1101, atau tombol SW13 yang ditekan maka data

yang dibaca adalah 1110 dan atau tidak ada tombol pada kolom pertama yang

di tekan maka data pembacaan baris akan 1111.

Page 33: Diktat Praktikum Mikrokontroler

33

- Mengirimkan logika Low untuk kolom 4 (Col4) dan logika HIGH untuk

kolom yang lain kemudian membaca data baris, misal tombol SW1 ditekan

maka data baris pertama (Row1) akan LOW sehingga data baris yang dibaca

adalah 0111, atau tombol yang ditekan tombol SW5 maka data pada baris ke 2

akan LOW sehingga data yang terbaca 1011, atau tombol SW9 yang ditekan

sehingga data yang terbaca 1101, atau tombol SW13 yang ditekan maka data

yang dibaca adalah 1110 dan atau tidak ada tombol pada kolom pertama yang

di tekan maka data pembacaan baris akan 1111.

Kemudian data pembacaan baris ini diolah sebagai pembacaan data penekanan

tombol keypad. Sehingga tiap tombol pada matrix keypad 4×4 diatas dengan teknik

scaning tersebut akan menghasilkan data penekanan tiap-tiap tombol sebagai berikut:

SW1 = 0111 0111 SW9 = 0111 1101

SW2 = 1011 0111 SW10 = 1011 1101

SW3 = 1101 0111 SW11 = 1101 1101

SW4 = 1110 0111 SW12 = 1110 1101

SW5 = 0111 1011 SW13 = 0111 1110

SW6 = 1011 1011 SW14 = 1011 1110

SW7 = 1101 1011 SW15 = 1101 1110

SW8 = 1110 1011 SW16 = 1110 1110

Page 34: Diktat Praktikum Mikrokontroler

34

PB0/T0/XCK1

PB1/T12

PB2/AIN0/INT23

PB3/AIN1/OC04

PB4/SS5

PB5/MOSI6

PB6/MISO7

PB7/SCK8

RESET9

XTAL212

XTAL113

PD0/RXD14

PD1/TXD15

PD2/INT016

PD3/INT117

PD4/OC1B18

PD5/OC1A19

PD6/ICP120

PD7/OC221

PC0/SCL22

PC1/SDA23

PC2/TCK24

PC3/TMS25

PC4/TDO26

PC5/TDI27

PC6/TOSC128

PC7/TOSC229

PA7/ADC733

PA6/ADC634

PA5/ADC535

PA4/ADC436

PA3/ADC337

PA2/ADC238

PA1/ADC139

PA0/ADC040

AREF32

AVCC30

U1

ATMEGA16

C1

22p

X1CRYSTALC2

22p

1 2 3

654

8 9

=

7

++CON 0

A

B

C

D

1 2 43

Data port mikrokontroler, misalkan pada SW2 = 1011 0111 tersebut terbagi dalam

nible atas dan nible bawah dimana data nible atas (1011) merupakan data yang kita

kirimkan sedangkan data nible bawah (0111) adalah data hasil pembacaan penekanan

tombol keypad SW2 pada proses scaning matrix keypad 4×4 diatas

III. ALAT DAN BAHAN

- Komputer atau laptop dengan software proteus.

- Komputer atau laptop dengan aplikasi bascom.

IV. PROSEDUR PERCOBAAN

- Buatlah gambar rangkaian pada proteus

- Buat program sesuai dengan modul

- Compile program yang anda ketikkan.

- Masukkan program .hex tersebut pada mikrokontroler yang anda buat pada

proteus Jalankan simulator.

5.3 Pembacaan Keypad Matrik Untuk Seven Segment

Gambar Rangkaian

Page 35: Diktat Praktikum Mikrokontroler

35

Buatlah listing program berikut

$regfile = "m16def.dat"

$crystal = 4000000

Config Portc = Output

Config Kbd = Portd

Dim B As Integer

Declare Sub Segment(byval Angka As Integer)

Do

B = Getkbd()

Waitms 50

If B <> 16 Then Call Segment(b)

Loop

Sub Segment()

Select Case Angka

Case 0 : Portc = &B00111111

Case 1 : Portc = &B00000110

Case 2 : Portc = &B01011011

Case 3 : Portc = &B01001111

Case 4 : Portc = &B01100110

Case 5 : Portc = &B01101101

Case 6 : Portc = &B01111101

Case 7 : Portc = &B00000111

portc

LCD

7segment control

7segment Data

Motor

Supply Motor

Keypad

portd

portb

Page 36: Diktat Praktikum Mikrokontroler

36

Case 8 : Portc = &B01111111

Case 9 : Portc = &B01101111

Case 10 : Portc = &H7B

Case 11 : Portc = &H5E

Case 12 : Portc = &H3C

Case 13 : Portc = &H4F

Case 14 : Portc = &H7C

Case 15 : Portc = &H78

End Select

End Sub

5.2 Pembacaan keypad pada LCD karakter 16*2

Gambar rangkaian

PB0/T0/XCK1

PB1/T12

PB2/AIN0/INT23

PB3/AIN1/OC04

PB4/SS5

PB5/MOSI6

PB6/MISO7

PB7/SCK8

RESET9

XTAL212

XTAL113

PD0/RXD14

PD1/TXD15

PD2/INT016

PD3/INT117

PD4/OC1B18

PD5/OC1A19

PD6/ICP120

PD7/OC221

PC0/SCL22

PC1/SDA23

PC2/TCK24

PC3/TMS25

PC4/TDO26

PC5/TDI27

PC6/TOSC128

PC7/TOSC229

PA7/ADC733

PA6/ADC634

PA5/ADC535

PA4/ADC436

PA3/ADC337

PA2/ADC238

PA1/ADC139

PA0/ADC040

AREF32

AVCC30

U1

ATMEGA16

C1

22p

X1CRYSTALC2

22p

D7

14

D6

13

D5

12

D4

11

D3

10

D2

9D

18

D0

7

E6

RW

5R

S4

VS

S1

VD

D2

VE

E3

LCD1LM016L

RV1

20k

1 2 3

654

8 9

=

7

++CON 0

A

B

C

D

1 2 43

Page 37: Diktat Praktikum Mikrokontroler

37

Ketikkan listing program di bawah ini

$regfile = "m16def.dat"

$crystal = 4000000

Config Kbd = Portd

Config Lcdpin = Pin , Db4 = Portc.2 , Db5 = Portc.3 , Db6

= Portc.4 , Db7 = Portc.5 , Rs = Portc . 0 , E = Portc.1

Config Lcdbus = 4

Config Lcd = 16 * 2

Cursor Off

Dim Keypad As Byte

Cls

Do

Keypad = Getkbd()

Waitms 10

Locate 1 , 1

Lcd "PERCOBAAN KEYPAD"

Locate 2 , 2

Lcd "" ; Keypad ; ""

Loop

portc

LCD

7segment control

7segment Data

Motor

Supply Motor

Keypad

portd

Page 38: Diktat Praktikum Mikrokontroler

38

BAB VI

PENGENDALIAN MOTOR DC DAN STEPPER

BIPOLAR

I. TUJUAN PRAKTIKUM

- Mahasiswa dapat mengontrol motor DC dengan menggunakan

mikrokontroler.

- Mahasiswa dapat mengatur kecepatan motor DC.

- Mahasiswa dapat mengatur arah putar motor DC.

- Mahasiswa dapat menjalankan motor stepper bipolar.

II. DASAR TEORI

A. Motor DC

Motor DC merupakan sebuah perangkat elektromagnetis yang

mengubah energi listrik menjadi energi mekanik. Motor DC memerlukan

suplai tegangan yang searah pada kumparan medan untuk diubah menjadi

energi mekanik. Kumparan medan pada motor dc disebut stator (bagian yang

tidak berputar) dan kumparan jangkar disebut rotor (bagian yang berputar).

Bentuk motor paling sederhana memiliki kumparan satu lilitan yang bisa

berputar bebas di antara kutub-kutub magnet permanen.

Page 39: Diktat Praktikum Mikrokontroler

39

Gambar 1. Motor D.C Sederhana

Catu tegangan dc dari baterai menuju ke lilitan melalui sikat yang

menyentuh komutator, dua segmen yang terhubung dengan dua ujung

lilitan. Kumparan satu lilitan pada gambar di atas disebut angker dinamo.

Angker dinamo adalah sebutan untuk komponen yang berputar di antara

medan magnet.

B. Motor Stepprt Bipolar

Motor stepper adalah perangkat elektromekanis yang bekerja dengan

mengubah pulsa elektronis menjadi gerakan mekanis diskrit. Motor stepper

bergerak berdasarkan urutan pulsa yang diberikan kepada motor. Karena

itu, untuk menggerakkan motor stepper diperlukan pengendali motor

stepper yang membangkitkan pulsa-pulsa periodik. Penggunaan motor

stepper memiliki beberapa keunggulan dibandingkan dengan penggunaan

motor DC biasa. Keunggulannya antara lain adalah :

· Sudut rotasi motor proporsional dengan pulsa masukan sehingga

lebih mudah diatur.

Page 40: Diktat Praktikum Mikrokontroler

40

· Motor dapat langsung memberikan torsi penuh pada saat mulai

bergerak

· Posisi dan pergerakan repetisinya dapat ditentukan secara presisi

· Memiliki respon yang sangat baik terhadap mulai, stop dan berbalik

(perputaran)

· Sangat realibel karena tidak adanya sikat yang bersentuhan dengan

rotor seperti pada motor DC

· Dapat menghasilkan perputaran yang lambat sehingga beban dapat

dikopel langsung ke porosnya

· Frekuensi perputaran dapat ditentukan secara bebas dan mudah pada

range yang luas.

III. ALAT DAN BAHAN

- Komputer atau laptop dengan software proteus.

- Komputer atau laptop dengan aplikasi bascom.

IV. PROSEDUR PERCOBAAN

- Buatlah gambar rangkaian pada proteus

- Buat program sesuai dengan modul

- Compile program yang anda ketikkan.

- Masukkan program .hex tersebut pada mikrokontroler yang anda buat pada proteus

- Jalankan simulator.

Page 41: Diktat Praktikum Mikrokontroler

41

6.1 Menggerakkan motor DC

Gambar rangkaian:

PB0/T0/XCK1

PB1/T12

PB2/AIN0/INT23

PB3/AIN1/OC04

PB4/SS5

PB5/MOSI6

PB6/MISO7

PB7/SCK8

RESET9

XTAL212

XTAL113

PD0/RXD14

PD1/TXD15

PD2/INT016

PD3/INT117

PD4/OC1B18

PD5/OC1A19

PD6/ICP120

PD7/OC221

PC0/SCL22

PC1/SDA23

PC2/TCK24

PC3/TMS25

PC4/TDO26

PC5/TDI27

PC6/TOSC128

PC7/TOSC229

PA7/ADC733

PA6/ADC634

PA5/ADC535

PA4/ADC436

PA3/ADC337

PA2/ADC238

PA1/ADC139

PA0/ADC040

AREF32

AVCC30

U1

ATMEGA16

C1

22p

X1CRYSTALC2

22p

IN12

OUT13

OUT26

OUT311

OUT414

IN27

IN310

IN415

EN11

EN29

VS

8

VSS

16

GND GND

U2

L293D

+5V +12V

portc

LCD

7segment control

7segment Data

Motor

Supply Motor

Keypad

portd

M

Page 42: Diktat Praktikum Mikrokontroler

42

Ketikkan listing program berikut

$regfile = "m16def.dat"

$crystal = 4000000

Config Portd.0 = Output

Config Portd.1 = Output

Config Timer1 = Pwm , Pwm = 8 , Prescale = 1 , Compare A

Pwm = Clear Up

Do

Set Portd.0

Reset Portd.1

Pwm1a = 200

Loop

6.2 Pengaturan Kecepatan Motor DC

Ketikkan kisting program di bawah ini:

$regfile = "m16def.dat"

$crystal = 4000000

Config Portd.0 = Output

Config Portd.1 = Output

Config Timer1 = Pwm , Pwm = 8 , Prescale = 1 , Compare A

Pwm = Clear Up

Pwm1a = 10

Do

Set Portd.0

Reset Portd.1

Do

Incr Pwm1a

Waitms 5

Loop Until Pwm1a = 255

Wait 2

Do

Decr Pwm1a

Waitms 5

Loop Until Pwm1a = 10

Loop

Page 43: Diktat Praktikum Mikrokontroler

43

6.3 Menggerakkan Motor Stepper Bipolar

Gambar rangkaian:

PB0/T0/XCK1

PB1/T12

PB2/AIN0/INT23

PB3/AIN1/OC04

PB4/SS5

PB5/MOSI6

PB6/MISO7

PB7/SCK8

RESET9

XTAL212

XTAL113

PD0/RXD14

PD1/TXD15

PD2/INT016

PD3/INT117

PD4/OC1B18

PD5/OC1A19

PD6/ICP120

PD7/OC221

PC0/SCL22

PC1/SDA23

PC2/TCK24

PC3/TMS25

PC4/TDO26

PC5/TDI27

PC6/TOSC128

PC7/TOSC229

PA7/ADC733

PA6/ADC634

PA5/ADC535

PA4/ADC436

PA3/ADC337

PA2/ADC238

PA1/ADC139

PA0/ADC040

AREF32

AVCC30

U1

ATMEGA16

C2

22p

IN12

OUT13

OUT26

OUT311

OUT414

IN27

IN310

IN415

EN11

EN29

VS

8

VSS

16

GND GND

U2

L293D

+5V +12V

+88.8

portc

LCD

7segment control

7segment Data

Motor

Supply Motor

Keypad

portd

M

Page 44: Diktat Praktikum Mikrokontroler

44

Ketikkan listing program berikut:

$regfile = "m16def.dat"

$crystal = 4000000

Config Portc = Output

Config Timer1 = Pwm , Pwm = 8 , Prescale = 1 , Compare A

Pwm = Clear Up , Compare B Pwm = Clear Up

Pwm1a = 255

Pwm1b = 255

Do

Portd = &B00000001

Waitms 20

Portd = &B00000010

Waitms 20

Portd = &B01000000

Waitms 20

Portd = &B10000000

Waitms 20

Loop