Oleh
FAKULTAS TEKNIK
UNIVERSITAS DIPONEGORO
2013
2
1. Buka file proteus ISIS sehingga keluar jendela proteus seperti gambar
di bawah ini
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.
- 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
'Deklarasi Crystal
$crystal = 11059200
'Deklarasi header
$regfile = "m16def.dat"
'deklarasivariabel
Dim Data1 As Byte
10
'deklarasi cystal
$crystal = 11059200
'deklarasi header
$regfile = "m16def.dat"
'deklarasi variabel
Dim Data1 As Byte
Dim Data2 As Byte
'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
'rutinutama
Data1 = 85
Data2 = 170
Do
PortD = Data1
Waitms 500
PortD = Data2
Waitms 500
Loop
End
'deklarasi crystal
$crystal = 11059200
'deklarasi header
$regfile = "m16def.dat"
'deklarasivariabel
Dim Data1 As Byte
'rutinutama
Data1 = &B11111110
Do
Rotate Data1 , Left , 1
PortD = Data1
Waitms 100
Loop
End
12
'deklarasi crystal
$crystal = 11059200
'deklarasi header
$regfile = "m16def.dat"
'deklarasivariabel
Dim Data1 As Byte
'rutinutama
Data1 = &B11111110
Do
Rotate Data1 , Right , 1
PortD = Data1
Waitms 100
Loop
End
'deklarasi crystal
$crystal = 11059200
'deklarasi header
$regfile = "8535def.dat"
'deklarasivariabel
Dim Data1 As Byte , Data2 As Byte
'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
Loop
End
14
BAB II
I. TUJUAN PRAKTIKUM
- Mahasiswa dapa tmembuat program Tombol.
- Mahasiswa dapat mengaplikasikan Tombol dalam mengontrol LED.
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.
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
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.
V. GAMBAR RANGKAIAN
.
21
portc
LCD
7segment
control
7segment
Data
Motor
Supply
Motor
Keypad
'deklarasi crystal
$crystal = 11059200
'Deklarasi header
$regfile = "m16def.dat"
'rutin utama
Lcd "Praktikum Mikroprosesor"
Waitms 100
Lowerline
Lcd "modul stk 500"
Waitms 2000
Cls
End
'Deklarasi header
$regfile = "m16def.dat"
'deklarasi crystal
$crystal = 11059200
'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
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.
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‟.
- Masukkan program .hex tersebut pada mikrokontroler yang anda buat pada proteus
- Jalankan simulator.
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
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
End
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
BAB V
KEYPAD MATRIK
I. TUJUAN PRAKTIKUM
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
- 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
- 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
- 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
- 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
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:
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
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
$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
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
$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
BIPOLAR
I. TUJUAN PRAKTIKUM
A. Motor DC
· Memiliki respon yang sangat baik terhadap mulai, stop dan berbalik
(perputaran)
- Masukkan program .hex tersebut pada mikrokontroler yang anda buat pada proteus
- Jalankan simulator.
41
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
$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
$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
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
$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