Upload
roby-adi-wibowo
View
229
Download
9
Embed Size (px)
Citation preview
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
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
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.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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:
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
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
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
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