Anda di halaman 1dari 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
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


3

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


Klik‟ atau klik „OK‟

5. Lalu komponen akan muncul pada menu device


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‟,
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,
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.
7

Jika Terjadi
Error
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
9

- Jalankan simulator.
-
V. Gambar rangkaian

C5

1uF U1
X3 9
RESET PC0/SCL
22
CRYSTAL 23
C6 13
PC1/SDA
24
XTAL1 PC2/TCK
12 25
XTAL2 PC3/TMS
26
PC4/TDO
1uF 40 27
PA0/ADC0 PC5/TDI
39 28
PA1/ADC1 PC6/TOSC1
38 29
37
PA2/ADC2 PC7/TOSC2 D1
PA3/ADC3
36 14
PA4/ADC4 PD0/RXD
35 15
34
PA5/ADC5 PD1/TXD
16 D2
PA6/ADC6 PD2/INT0 LED-BLUE
33 17
PA7/ADC7 PD3/INT1
18
1
PD4/OC1B
19 D4
PB0/T0/XCK PD5/OC1A LED-BLUE
2 20
PB1/T1 PD6/ICP1
3 21
4
PB2/AIN0/INT2 PD7/OC2 D5
PB3/AIN1/OC0 LED-BLUE
5
PB4/SS
6
7
PB5/MOSI
32
D3
PB6/MISO AREF LED-BLUE
8 30
PB7/SCK AVCC
ATMEGA16
D6
LED-BLUE

D8
LED-BLUE

D7
LED-BLUE

LED-BLUE

portd
Port
led

Buatlah listing program berikut

1.1 Aplikasi LED menyala

'Deklarasi Crystal
$crystal = 11059200
'Deklarasi header
$regfile = "m16def.dat"
'deklarasivariabel
Dim Data1 As Byte
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
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
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
13

Rotate Data1 , Left , 1


Waitms 50
Next Data2

Loop
End
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.

port R2

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
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

C1

22p
X1
CRYSTAL
C2

22p
U1
9 22
RESET PC0/SCL
23
PC1/SDA
13 24
XTAL1 PC2/TCK
12 25
XTAL2 PC3/TMS
26
PC4/TDO
40 27
PA0/ADC0 PC5/TDI
39 28
PA1/ADC1 PC6/TOSC1
38 29
PA2/ADC2 PC7/TOSC2
37
PA3/ADC3
36 14
PA4/ADC4 PD0/RXD
35 15
PA5/ADC5 PD1/TXD
34 16
PA6/ADC6 PD2/INT0
33 17
PA7/ADC7 PD3/INT1
18
PD4/OC1B
1 19
PB0/T0/XCK PD5/OC1A
2 20
PB1/T1 PD6/ICP1
3 21
PB2/AIN0/INT2 PD7/OC2
4
PB3/AIN1/OC0
5
PB4/SS
6
PB5/MOSI
D2 D1 D3 D4 D5 D6 D7 D8
7 32 LED-YELLOW
LED-YELLOW
LED-YELLOW
LED-YELLOW
LED-YELLOW
LED-YELLOW
LED-YELLOW
LED-YELLOW
PB6/MISO AREF
8 30
PB7/SCK AVCC
ATMEGA16
R1 R3 R2 R4 R5 R7 R6 R8
10k 10k 10k 10k 10k 10k 10k 10k

portc
portd

Port Port
tombol led
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
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
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
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.
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

.
21

portc

LCD

7segment
control

7segment
Data

Motor

Supply
Motor

Keypad

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
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
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


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


25

C1

22p

C2 X1
CRYSTAL

22p

U1
9 22
RESET PC0/SCL
23
PC1/SDA
13 24
XTAL1 PC2/TCK
12 25
XTAL2 PC3/TMS
26
PC4/TDO
40 27
PA0/ADC0 PC5/TDI
39 28
PA1/ADC1 PC6/TOSC1
38 29
PA2/ADC2 PC7/TOSC2
37
PA3/ADC3
36 14
PA4/ADC4 PD0/RXD
35 15
PA5/ADC5 PD1/TXD
34 16
PA6/ADC6 PD2/INT0
33 17
PA7/ADC7 PD3/INT1
PD4/OC1B
18 Q1
1 19 BC549
PB0/T0/XCK PD5/OC1A
2 20
PB1/T1 PD6/ICP1
3 21
PB2/AIN0/INT2 PD7/OC2
4
PB3/AIN1/OC0
5
PB4/SS
6
PB5/MOSI
7 32
PB6/MISO AREF
8 30
PB7/SCK AVCC
ATMEGA16
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
27

4.2 Aplikasi Seven Segment Tunggal dengan Dekoder untuk menampilkan


angka 3 dan 2 secara bergantian.

Gambar Rangkaian
C1
U1 U2
9 22 7 13
RESET PC0/SCL A QA
22p 23 1 12
PC1/SDA B QB
C2 X1 13
XTAL1 PC2/TCK
24 2
C QC
11
CRYSTAL 12 XTAL2 PC3/TMS
25 6
D QD
10
26 9
PC4/TDO QE
40 27 3 15
PA0/ADC0 PC5/TDI LT QF
22p 39 28 4 14
PA1/ADC1 PC6/TOSC1 BI QG
38 29 5
PA2/ADC2 PC7/TOSC2 LE/STB
37
PA3/ADC3
36 14 74HC4511
PA4/ADC4 PD0/RXD
35 15
PA5/ADC5 PD1/TXD
34 16
PA6/ADC6 PD2/INT0
33 17
PA7/ADC7 PD3/INT1
18
PD4/OC1B
1 19
PB0/T0/XCK PD5/OC1A
2 20
PB1/T1 PD6/ICP1
3 21
PB2/AIN0/INT2 PD7/OC2
4
PB3/AIN1/OC0
5
PB4/SS
6
PB5/MOSI
7 32
PB6/MISO AREF
8 30
PB7/SCK AVCC
ATMEGA16

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
28

End

4.3 Aplikasi multipleksing empat digit seven segment

Gambar Rangkaian:

C1

22p
11059200
CRYSTAL
C2

U1 22p
9 22
RESET PC0/SCL
23
PC1/SDA
13
XTAL1 PC2/TCK
24 Q1 Q2 Q3 Q4
12 25 BC547 BC547 BC547 BC547
XTAL2 PC3/TMS
PC4/TDO 26
40 27
PA0/ADC0 PC5/TDI
39 PA1/ADC1 PC6/TOSC1 28
38 29
PA2/ADC2 PC7/TOSC2
37 PA3/ADC3
36 14
PA4/ADC4 PD0/RXD
35 PA5/ADC5 PD1/TXD 15
34 16
PA6/ADC6 PD2/INT0
33 PA7/ADC7 PD3/INT1 17
18
PD4/OC1B
1 19
PB0/T0/XCK PD5/OC1A
2 PB1/T1 PD6/ICP1 20
3 PB2/AIN0/INT2 PD7/OC2 21
4 PB3/AIN1/OC0
5
PB4/SS
6
PB5/MOSI
7 32
PB6/MISO AREF
8 PB7/SCK AVCC 30

ATMEGA32

portc

LCD

7segment
control

7segment
Data

portd Motor

Supply
Motor

Keypad
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
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.
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
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.


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


34

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

C1

22p
X1
CRYSTAL
C2

22p
U1
9 22
RESET PC0/SCL
23
PC1/SDA
13 24
XTAL1 PC2/TCK
12 25
XTAL2 PC3/TMS
26
PC4/TDO
40 27
PA0/ADC0 PC5/TDI
39 28
PA1/ADC1 PC6/TOSC1
38
37
PA2/ADC2
PA3/ADC3
PC7/TOSC2
29
A 7 8 9
36 14
PA4/ADC4 PD0/RXD
35 15
PA5/ADC5 PD1/TXD
34
33
PA6/ADC6
PA7/ADC7
PD2/INT0
PD3/INT1
16
17
B 4 5 6
18
PD4/OC1B
1 19
PB0/T0/XCK PD5/OC1A
2
3
PB1/T1
PB2/AIN0/INT2
PD6/ICP1
PD7/OC2
20
21
C 1 2 3
4
PB3/AIN1/OC0
5

+
PB4/SS ON
6
7
PB5/MOSI
PB6/MISO AREF
32
D
C 0 =
8 30
PB7/SCK AVCC
1

ATMEGA16
35

portc

LCD

portb
7segment
control

7segment
Data

portd Motor

Supply
Motor

Keypad

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
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
LCD1
LM016L

RV1
VDD
VSS

VEE

RW
RS

D0
D1
D2
D3
D4
D5
D6
D7
E
C1
1
2
3

4
5
6

7
8
9
10
11
12
13
14
22p
X1
CRYSTAL 20k
C2

22p
U1
9 22
RESET PC0/SCL
23
PC1/SDA
13 24
XTAL1 PC2/TCK
12 25
XTAL2 PC3/TMS
26
PC4/TDO
40 27
PA0/ADC0 PC5/TDI
39 28
PA1/ADC1 PC6/TOSC1
38 29
PA2/ADC2 PC7/TOSC2
37
PA3/ADC3
36
35
PA4/ADC4
PA5/ADC5
PD0/RXD
PD1/TXD
14
15
A 7 8 9
34 16
PA6/ADC6 PD2/INT0
33 17
PA7/ADC7 PD3/INT1
1
PB0/T0/XCK
PD4/OC1B
PD5/OC1A
18
19
B 4 5 6
2 20
PB1/T1 PD6/ICP1
3 21
PB2/AIN0/INT2 PD7/OC2
4
5
PB3/AIN1/OC0
PB4/SS
C 1 2 3
6
PB5/MOSI
7 32

+
PB6/MISO AREF ON
8
PB7/SCK AVCC
30
D
C 0 =
ATMEGA16
1

4
37

portc

LCD

7segment
control

7segment
Data

portd Motor

Supply
Motor

Keypad

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
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.
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.
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.
41

6.1 Menggerakkan motor DC

Gambar rangkaian:
C1

22p
X1
CRYSTAL
C2

22p
U1
9 22
RESET PC0/SCL
23
PC1/SDA
13 24
XTAL1 PC2/TCK
12 25
XTAL2 PC3/TMS
26
PC4/TDO
40 27
PA0/ADC0 PC5/TDI +5V +12V
39 28
PA1/ADC1 PC6/TOSC1
38 29
PA2/ADC2 PC7/TOSC2
37
PA3/ADC3
36 14
35
PA4/ADC4 PD0/RXD
15 16 8 U2
PA5/ADC5 PD1/TXD
34 16
PA6/ADC6 PD2/INT0
33 17 2 3
PA7/ADC7 PD3/INT1 IN1 VSS VS OUT1
18 7 6
PD4/OC1B IN2 OUT2
1 19 1
PB0/T0/XCK PD5/OC1A EN1
2 20
PB1/T1 PD6/ICP1
3 21
PB2/AIN0/INT2 PD7/OC2
4 9
PB3/AIN1/OC0 EN2
5 10 11
PB4/SS IN3 OUT3
6 15 14
PB5/MOSI IN4 GND GND OUT4
7 32
PB6/MISO AREF
8 30
PB7/SCK AVCC
L293D
ATMEGA16

portc

LCD

7segment
control

7segment
Data

portd Motor

Supply
Motor

Keypad

M
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
43

6.3 Menggerakkan Motor Stepper Bipolar

C2
Gambar rangkaian:
22p
U1
9 22
RESET PC0/SCL
23
PC1/SDA
13 24
XTAL1 PC2/TCK
12 25
XTAL2 PC3/TMS
26
PC4/TDO
40 27
PA0/ADC0 PC5/TDI +5V +12V
39 28
PA1/ADC1 PC6/TOSC1
38 29
PA2/ADC2 PC7/TOSC2
37
PA3/ADC3
36 14
35
PA4/ADC4 PD0/RXD
15 16 8 U2
PA5/ADC5 PD1/TXD
34 16
PA6/ADC6 PD2/INT0
33 17 2 3
PA7/ADC7 PD3/INT1 IN1 VSS VS OUT1
18 7 6
PD4/OC1B IN2 OUT2
1 19 1
PB0/T0/XCK PD5/OC1A EN1
2 20
PB1/T1 PD6/ICP1
3 21
PB2/AIN0/INT2 PD7/OC2
4 9 +88.8
PB3/AIN1/OC0 EN2
5 10 11
PB4/SS IN3 OUT3
6 15 14
PB5/MOSI IN4 GND GND OUT4
7 32
PB6/MISO AREF
8 30
PB7/SCK AVCC
L293D
ATMEGA16

portc

LCD

7segment
control

7segment
Data

portd Motor

Supply
Motor

Keypad

M
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

Anda mungkin juga menyukai