27
Laporan Tugas Akhir BAB III STT Telematika Telkom Purwokerto 42 D310012 BAB III PERANCANGAN DAN PEMBUATAN SISTEM Pada bab III ini membahas bagaimana perancangan dan pembuatan trainer mikropengendali seri ATMEL ATmega 28 pin dimana menggunakan ATmega8 dimulai dengan pembuatan perangkat keras (hardware) maupun pembuatan perangkat lunak (software). Pembuatan perangkat keras yaitu berupa perancangan catu daya, perancangan sistem minimum ATMega8, perancangan LCD, perancangan seven segment, perancangan dot matrix, perancangan buzzer, perancangan LED, perancangan push button, perancangan sensor suhu LM35, dan perancangan keypad. Sedangkan untuk perangkat lunak meliputi pembuatan program C sehingga alat dapat difungsikan sebagai media pembelajaran dengan program-program yang dimasukkan sehingga perangkat dapat berjalan dengan baik. A. PERANCANGAN SISTEM Perancangan trainer mikropengendali seri ATMEL ATmega8 berguna sebagai media pembelajaran dengan berbagai perangkat yang dapat dioperasikan dengan program yang sesuai perangkat masukan dan keluarannya. Berikut blok diagram penyusun trainer-nya. 1. Blok Diagram Rangkaian Sensor Suhu LM35 dan LCD Blok diagram rangkaian sensor suhu LM35 dan LCD dapat dilihat pada gambar 3.1 Sensor Suhu LM35 Rangkaian Reset LCD Rangkaian Osilator A T M E G A 8 Gambar 3.1 Blok Diagram Rangkaian Sensor Suhu LM35 dan LCD

BAB III PERANCANGAN DAN PEMBUATAN SISTEM Rangkaian

  • Upload
    others

  • View
    10

  • Download
    0

Embed Size (px)

Citation preview

Page 1: BAB III PERANCANGAN DAN PEMBUATAN SISTEM Rangkaian

Laporan Tugas Akhir BAB III

STT Telematika Telkom Purwokerto 42 D310012

BAB III

PERANCANGAN DAN PEMBUATAN SISTEM

Pada bab III ini membahas bagaimana perancangan dan pembuatan trainer

mikropengendali seri ATMEL ATmega 28 pin dimana menggunakan ATmega8 dimulai

dengan pembuatan perangkat keras (hardware) maupun pembuatan perangkat lunak

(software).

Pembuatan perangkat keras yaitu berupa perancangan catu daya, perancangan sistem

minimum ATMega8, perancangan LCD, perancangan seven segment, perancangan dot

matrix, perancangan buzzer, perancangan LED, perancangan push button, perancangan

sensor suhu LM35, dan perancangan keypad. Sedangkan untuk perangkat lunak meliputi

pembuatan program C sehingga alat dapat difungsikan sebagai media pembelajaran dengan

program-program yang dimasukkan sehingga perangkat dapat berjalan dengan baik.

A. PERANCANGAN SISTEM

Perancangan trainer mikropengendali seri ATMEL ATmega8 berguna sebagai

media pembelajaran dengan berbagai perangkat yang dapat dioperasikan dengan

program yang sesuai perangkat masukan dan keluarannya. Berikut blok diagram

penyusun trainer-nya.

1. Blok Diagram Rangkaian Sensor Suhu LM35 dan LCD

Blok diagram rangkaian sensor suhu LM35 dan LCD dapat dilihat pada gambar

3.1

Sensor Suhu

LM35

Rangkaian

Reset

LCD

Rangkaian

Osilator

A

T

M

E

G

A

8

Gambar 3.1 Blok Diagram Rangkaian Sensor Suhu LM35 dan LCD

Page 2: BAB III PERANCANGAN DAN PEMBUATAN SISTEM Rangkaian

43

Laporan Tugas Akhir BAB III

STT Telematika Telkom Purwokerto D310012

Pada gambar 3.1 blok diagram rangkaian sensor suhu LM35 dan LCD dapat

dilihat bahwa sensor suhu LM35 merupakan komponen masukan yang berfungsi

untuk mendeteksi suhu yang terjadi dan LCD merupakan komponen keluaran

yang berfungsi untuk menampilkan kondisi suhu sehingga setiap perubahan suhu

yang terjadi dapat dilihat pada tampilan LCD.

2. Blok Diagram Rangkaian Keypad dan Seven Segment

Blok diagram rangkaian keypad dan seven segment dapat dilihat pada gambar 3.2.

Keypad

Rangkaian

Reset

Seven Segment

Rangkaian

Osilator

A

T

M

E

G

A

8

Gambar 3.2 Blok Diagram Rangkaian Keypad dan Seven Segment

Pada gambar 3.2 blok diagram rangkaian keypad dan seven segment dapat

dilihat bahwa keypad merupakan komponen keluaran yang berfungsi sebagai

perangkat masukan berupa tombol-tombol angka dan huruf sedangkan seven

segment merupakan komponen keluaran yang berfungsi untuk menampilkan

karakter yang ditekan pada keypad.

3. Blok Diagram Rangkaian LED, Push Button dan Buzzer

Blok diagram rangkaian LED, push button dan buzzer dapat dilihat pada gambar

3.3.

Push Button

Rangkaian

Reset

LED

Rangkaian

Osilator

A

T

M

E

G

A

8Buzzer

Gambar 3.3 Blok Diagram Rangkaian LED, Push Button dan Buzzer

Page 3: BAB III PERANCANGAN DAN PEMBUATAN SISTEM Rangkaian

44

Laporan Tugas Akhir BAB III

STT Telematika Telkom Purwokerto D310012

Pada gambar 3.3 blok diagram rangkaian LED dan buzzer dapat dilihat bahwa

LED terdiri dari 8 buah yang terhubung dengan push button dan buzzer. Push

button merupakan komponen masukan yang berfungsi sebagai tombol start untuk

mengatur penyalaan LED dan buzzer merupakan komponen keluaran yang

berfungsi sebagai penanda dari penekanan push button. Pada programnya, buzzer

akan berbunyi pada saat penekanan ganjil pada push button.

4. Blok Diagram Rangkaian Dot Matrix

Blok diagram rangkaian dot matrix dapat dilihat pada gambar 3.4.

Push Button

Rangkaian

Reset

Dot Matrix

Rangkaian

Osilator

A

T

M

E

G

A

8

Gambar 3.4 Blok Diagram Rangkaian Dot Matrix

Pada gambar 3.4 blok diagram rangkaian dot matrix dapat dilihat bahwa push

button merupakan komponen masukan yang berfungsi menampilkan karakter saat

dilakukan penekanan sedangkan dot matrix merupakan komponen keluaran yang

berfungsi untuk menampilkan karakter-karakter angka dan huruf pada setiap

penekanan push button.

Berdasarkan blok diagram yang telah dipaparkan dapat dilihat bahwa sistem

trainer mikropengendali 28 pin menggunakan mikropengendali ATmega8 yang

terdiri dari rangkaian input sistem dan rangkaian output sistem. Rangkaian

mikropengendali ATmega8 berfungsi sebagai pemroses dan pengendali seluruh

sistem rangkaian. Rangkaian catu daya berfungsi memberikan catuan energi

sehingga semua sistem dapat bekerja. Rangkaian catu daya yang digunakan

sebesar 5 volt sesuai dengan datasheet tegangan kerja dari mikropengendali

ATmega8.

Cara kerja dari trainer ini adalah menampilkan keluaran-keluaran dari

perangkat masukan. Misalnya penekanan karakter pada keypad akan ditampilkan

Page 4: BAB III PERANCANGAN DAN PEMBUATAN SISTEM Rangkaian

45

Laporan Tugas Akhir BAB III

STT Telematika Telkom Purwokerto D310012

pada seven segment, pendeteksian oleh sensor suhu yang akan ditampilkan pada

LCD dan penekanan pada push button yang akan memberikan pengaruh pada

LED untuk menyala atau mati serta memberikan instruksi pada buzzer untuk

berbunyi pada penekanan ganjil.

B. PERANCANGAN RANGKAIAN

Perancangan dan pembuatan hardware meliputi pembuatan rangkaian secara

skematik baik dari rangkaian LCD, seven segment, LED, keypad, buzzer, dot matrix,

sensor suhu LM35, push button dan beberapa komponen pendukung lainnya. Selain

itu terdapat pula perhitungan komponen yang dipergunakan untuk membuat alat ini.

1. Perancangan Rangkaian Sistem Minimum ATmega8

Rangkaian sistem minimum adalah rangkaian yang harus dimiliki sebuah

sistem dengan menggunakan mikropengendali sebagai pengendalinya. Rangkaian

sistem minimum ATmega8 terdiri dari rangkaian reset dan rangkaian osilator.

a. Rangkaian reset

Rangkaian reset pada mikropengendali ATmega8 berfungsi untuk

mengembalikan kondisi mikropengendali ke kondisi awal program/semula.

Rangkaian reset pada mikropengendali ATMega8 akan terhubung ke port C

pin nomor 1. Pada Tugas Akhir ini digunakan reset yang disebut power on

reset yang artinya akan melakukan reset otomatis ketika mikropengendali

dinyalakan. Dikatakan power on reset karena pin 1 dihubungkan dengan

resistor ke Vcc.

Konfigurasi rangkaian reset yang terhubung pada mikropengendali

ATmega8 dapat dilihat pada gambar 3.5.

Gambar 3.5 Rangkaian Reset

+ VCC 5V

+ 5V

RESET

IC2

ATM

EG

A 8

PC6/RST1

PD0/RXD2

PD1/TXD3

PD24

PD35

PD46

VCC7

GND8

PB6 (XTAL1)9

PB7 (XTAL2)10

PD511

PD612

PD713

PC023

GND22

AVCC20

AREF21

PB014

PB317

PB216

PB115

PC124

PB519

PB418

PC427

PC326

PC225

PC528

C3

10Uf

S1

R1

10K

Page 5: BAB III PERANCANGAN DAN PEMBUATAN SISTEM Rangkaian

46

Laporan Tugas Akhir BAB III

STT Telematika Telkom Purwokerto D310012

b. Rangkaian Osilator

Rangkaian osilator adalah rangkaian yang digunakan untuk menentukan

frekuensi clock pada mikropengendali. Setiap mikropengendali memiliki

nilai kristal yang berbeda–beda tergantung pada pemakaian. Pada Tugas

Akhir ini menggunakan kristal sebesar 12 MHz, untuk mempermudah dalam

melakukan perhitungan. Rangkaian osilator pada mikropengendali akan

terhubung ke pin 9 dan pin 10. Konfigurasi rangkaian osilator dapat dilihat

pada gambar 3.6.

Gambar 3.6 Rangkaian Osilator

Berdasarkan pada gambar 3.7 rangkaian osilator terdiri dari dua kapasitor

keramik sebesar 22 pF dan kristal 12 MHz. Waktu yang dibutuhkan untuk

melakukan satu siklus mesin dalam mengeksekusi program pada

mikropengendali dapat dihitung dengan persamaan 3.1.

T= ................................................................(3.1)

T=

T= 1 µs

Sehingga waktu yang dibutuhkan mikropengendali dalam mengeksekusi

program sebesar 1 µs yang artinya setiap satu siklus mesin maka

mikropengendali ATmega8 memerlukan waktu sebanyak 1 µs.

+ 5V

OSILATOR

X2

12 M

hz

C1

22pF

IC2

AT

ME

GA

8

PC6/RST1

PD0/RXD2

PD1/TXD3

PD24

PD35

PD46

VCC7

GND8

PB6 (XTAL1)9

PB7 (XTAL2)10

PD511

PD612

PD713

PC023

GND22

AVCC20

AREF21

PB014

PB317

PB216

PB115

PC124

PB519

PB418

PC427

PC326

PC225

PC528

C2

22pF

Page 6: BAB III PERANCANGAN DAN PEMBUATAN SISTEM Rangkaian

47

Laporan Tugas Akhir BAB III

STT Telematika Telkom Purwokerto D310012

Gambar rangkaian sistem minimum ATmega8 dapat dilihat pada gambar 3.7.

Gambar 3.7 Rangkaian Sistem Minimum ATmega8

c. Rangkaian Catu Daya

Catu daya merupakan energi yang diperlukan oleh trainer agar dapat

bekerja. Catu daya yang digunakan sebesar 5 Volt sesuai dengan tegangan

kerja pada mikropengendali ATmega8. Perancangan catu daya ini terdiri dari

beberapa bagian yaitu blok rectifier berfungsi sebagai penyearah arus, blok

filter sebagai penyaring tegangan yang naik turun sehingga dengan adanya

filter mampu untuk mengurangi tegangan ripple dan blok regulator berfungsi

untuk menghasilkan tegangan 5 Volt yang dibutuhkan oleh sistem kerja

mikropengendali ATmega8. Rangkaian catu daya pada Tugas Akhir ini dapat

dilihat pada gambar 3.8.

Gambar 3.8 Rangkaian Catu Daya

+ VCC 5V

+ 5V

RESET

OSILATOR

IC2

ATM

EG

A 8

PC6/RST1

PD0/RXD2

PD1/TXD3

PD24

PD35

PD46

VCC7

GND8

PB6 (XTAL1)9

PB7 (XTAL2)10

PD511

PD612

PD713

PC023

GND22

AVCC20

AREF21

PB014

PB317

PB216

PB115

PC124

PB519

PB418

PC427

PC326

PC225

PC528

C3

10Uf

R1

10K

C2

22pF

C1

22pF

X2

12 M

hz

S1

Page 7: BAB III PERANCANGAN DAN PEMBUATAN SISTEM Rangkaian

48

Laporan Tugas Akhir BAB III

STT Telematika Telkom Purwokerto D310012

Pada rangkaian catu daya dapat menggunakan tegangan 5V yang berasal

dari USB downloader dan juga dapat menggunakan tegangan 12V yang

berasal dari trafo. Untuk menjalankan trainer hanya dibutuhkan tegangan

sebesar 5V saja sehingga jika menggunakan trafo, tegangan yang diperoleh

dari trafo akan diturunkan tegangannya menjadi 5V menggunakan IC7805.

Rangkaian catu daya pada gambar 3.8 terdiri dari beberapa bagian yaitu :

1) Rectifier

Rectifier atau penyearah berfungsi sebagai komponen yang

mengubah tegangan AC menjadi tegangan DC. Penyearah pada

umumnya dibedakan menjadi 2 yaitu penyearah setengah gelombang dan

penyearah gelombang penuh. Pada Tugas Akhir ini menggunakan

penyearah gelombang penuh dengan sistem jembatan. Dikatakan

demikian karena pada penyearah tersebut digunakan 4 buah dioda yang

mana 2 buah diodanya menghantar diatas setengah periode positif dan 2

buah dioda lainnya menghantar diatas setengah periode negatif sehingga

hasilnya arus beban penyearah mengalir selama diantara setengah

periode. Besarnya nilai tegangan DC dapat dicari dengan persamaan 3.2.

VDC = .......................................................................(3.2)

Dimana Vp dapat dicari terlebih dahulu dengan menggunakan persamaan

3.3.

Vp = ........................................................................(3.3)

Vp =

Vp = 16,97312 Volt

Setelah Vp = 16,97312 Volt dimasukan ke persamaan 3.2 menjadi :

VDC =

VDC =

VDC = 10,81090 Volt

Page 8: BAB III PERANCANGAN DAN PEMBUATAN SISTEM Rangkaian

49

Laporan Tugas Akhir BAB III

STT Telematika Telkom Purwokerto D310012

2) Filter

Merupakan komponen elektronika yang berfungsi untuk mengurangi

tegangan ripple atau tegangan naik turun akibat arus yang tidak stabil

pada output penyearah gelombang penuh. Semakin besar nilai filter yang

digunakan maka nilai tegangan ripple akan semakin menurun. Filter

yang digunakan pada rangkaian adalah filter kapasitor. Besarnya

persentase (%) dari tegangan ripple yang ada pada suatu sistem

merupakan perbandingan antara tegangan ripple dan tegangan DC dari

suatu sistem.

3) IC Regulator

Regulator berfungsi untuk memberikan tegangan keluaran yang

stabil. IC Regulator yang digunakan adalah LM 7805 yang berfungsi

untuk mengubah tegangan 12 Volt menjadi tegangan 5 Volt. Pada

perhitungan nilai tegangan DC diatas diperoleh tegangannya sebesar

10,81090 Volt. Tegangan tersebut merupakan tegangan input bagi

rangkaian filter dan IC Regulator, sesuai dengan datasheet dari LM7805

bahwa tegangan input (Vin) berada pada tegangan 7,5 Volt – 20 Volt

maka tegangan output (Vout) dari IC LM7805 sebesar 4,8 Volt – 5,2

Volt. Sehingga melihat karakteristik dari LM7805 diatas maka tegangan

5 Volt dapat mengalir pada rangkaian dan sesuai yang dibutuhkan oleh

tegangan kerja mikropengendali ATmega8. Komponen kapasitor yang

berada pada output LM7805 berfungsi sebagai filter kembali supaya

tegangan ripple semakin berkurang. Ketika tegangan ripple kecil maka

tegangan output sebesar +5 Volt akan menjadi lebih stabil, tegangan

output tidak cepat berubah-ubah.

2. Rangkaian Antar Muka Mikropengendali

Pada bagian ini akan dijelaskan gambar rangkaian dari tiap komponennya yang

terhubung ke mikropengendali.

Page 9: BAB III PERANCANGAN DAN PEMBUATAN SISTEM Rangkaian

50

Laporan Tugas Akhir BAB III

STT Telematika Telkom Purwokerto D310012

a. Rangkaian Mikropengendali dan LED

Pada bagian ini, Light Emitting Diode (LED) merupakan komponen

keluaran yang menyala secara bergantian antara ganjil dan genap tergantung

pada penekanan yang dilakukan pada push button. Pada penekanan pertama,

LED ganjil yang akan menyala dan pada penekanan yang kedua, LED genap

yang menyala. Gambar rangkaian mikropengendali dan LED dapat dilihat

pada gambar 3.9.

Gambar 3.9 Rangkaian Mikropengendali dan LED

b. Rangkaian Mikropengendali dan Buzzer

Pada bagian ini, buzzer berfungsi sebagai komponen keluaran yang

menandakan bahwa LED ganjil menyala setelah penekanan pertama pada

push button. Pada penekanan kedua pada push button, bunyi tidak akan

berbunyi. Gambar rangkaian mikropengendali dan buzzer dapat dilihat pada

gambar 3.10.

Gambar 3.10 Rangkaian Mikropengendali dan Buzzer

Page 10: BAB III PERANCANGAN DAN PEMBUATAN SISTEM Rangkaian

51

Laporan Tugas Akhir BAB III

STT Telematika Telkom Purwokerto D310012

c. Rangkaian Mikropengendali dan Push button

Pada bagian ini, push button berfungsi sebagai komponen masukan untuk

menyalakan dan mematikan LED sesuai dengan penekanannya. Pada

penekanan pertama pada push button maka akan menyalakan LED ganjil dan

pada penekanan push button yang kedua maka LED genap yang menyala dan

LED ganjil mati. Pada penekanan pertama push button juga mempengaruhi

penyalaan buzzer agar berbunyi sedangkan pada penekanan kedua push

button, buzzer tidak akan berbunyi. Gambar rangkaian mikropengendali dan

push button dapat dilihat pada gambar 3.11.

Gambar 3.11 Rangkaian Mikropengedali dan Push Button

d. Rangkaian Mikropengendali dan Keypad

Pada bagian ini, keypad berfungsi sebagai komponen masukan yang jika

dilakukan penekanan pada tiap tombolnya akan ditampilkan pada seven

segment. Gambar rangkaian mikropengendali dan keypad dapat dilihat pada

gambar 3.12.

Gambar 3.12 Rangkaian Mikropengendali dan Keypad

Page 11: BAB III PERANCANGAN DAN PEMBUATAN SISTEM Rangkaian

52

Laporan Tugas Akhir BAB III

STT Telematika Telkom Purwokerto D310012

e. Rangkaian Mikropengendali dan Seven segment

Pada bagian ini, seven segment merupakan komponen keluaran yang

akan menampilkan karakter yang ditekan pada keypad. Gambar rangkaian

mikropengendali dan seven segment dapat dilihat pada gambar 3.13.

Gambar 3.13 Rangkaian Mikropengendali dan Seven segment

f. Rangkaian Mikropengendali dan LCD

Pada bagian ini, LCD merupakan komponen keluaran yang berfungsi

untuk menampilkan nilai suhu yang terdeteksi pada sensor suhu. Gambar

rangkaian mikropengendali dan LCD dapat dilihat pada gambar 3.14.

Gambar 3.14 Rangkaian Mikropengendali dan LCD

g. Rangkaian Mikropengendali dan Sensor Suhu LM35

Pada bagian ini, sensor suhu LM35 merupakan komponen masukan yang

berfungsi sebagai pendeteksi suhu kemudian hasilnya akan ditampilkan pada

Page 12: BAB III PERANCANGAN DAN PEMBUATAN SISTEM Rangkaian

53

Laporan Tugas Akhir BAB III

STT Telematika Telkom Purwokerto D310012

LCD. Gambar rangkaian mikropengendali dan sensor suhu LM35 dapat

dilihat pada gambar 3.15.

Gambar 3.15 Rangkaian Mikropengendali dan Sensor Suhu LM35

h. Rangkaian Mikropengendali dan Dot matrix

Pada bagian ini, dot matrix merupakan komponen keluaran bekerja

sesuai programnya dengan kabel konektor yang dimanipulasi sebagai push

button. Dot matrix berfungsi sebagai komponen yang menampilkan karakter

setelah konektor ditancapkan lalu dilepas, diibaratkan seperti penekanan

tombol. Gambar rangkaian mikropengendali dan dot matrix dapat dilihat pada

gambar 3.16.

Gambar 3.16 Rangkaian Mikropengendali dan Dot matrix

3. Rangkaian Sistem Keseluruhan

Setelah perancangan tiap rangkaian pada sistem selesai dibuat maka dapat

dibuat rancangan sistem secara keseluruhan. Perancangan rangkaian sistem

keseluruhan pada pembuatan tugas akhir trainer mikropengendali seri ATMEL

ATmega 28 pin menggunakan ATmega8 dapat dilihat pada gambar 3.17.

+ 5 V

DO

T M

AT

RIX

C1

13

B51

B412

B38

B214

B19

C2

3

B67

B72

C5

6

C4

10

C3

4/11

IC2

AT

ME

GA

8

PC6/RST1

PD0/RXD2

PD1/TXD3

PD24

PD35

PD46 VCC

7

GN

D8

PB6 (XTAL1)9

PB7 (XTAL2)10

PD511

PD612

GN

D22

AVCC20

PB

014

PB

115

PB

216

PB

317

PB

418

C3

22pF

X2

12 M

hz

C4

22pF

R1 10K

Page 13: BAB III PERANCANGAN DAN PEMBUATAN SISTEM Rangkaian

54

Laporan Tugas Akhir BAB III

STT Telematika Telkom Purwokerto D310012

Gambar 3.17 Rangkaian Sistem Keseluruhan

+ VCC 5V

+ VCC 5V

+ VCC 5V

1 3

4 5 6

7 8 9

* 0 #

2 3 4

6

11

12

13

KEY_PAD 4X4

2 A

B

C

D

5

DOT MATRIX 5 x 7

7 SEGMEN INDICATORLCD 16 x 2 DISPLAY

POWER SUPPLY

MINIMUM SYSTEM

8 LED INDICATORGnd

+

2 4 6

11

12

13

Gnd

+

23

24

25

26

27

14

+

23456111213+

2

3

4

5

6

11

12

14

15

16

17

18

Gnd

28

3

23

R7

10K

C322pF

X2

12 M

hz

C4 22pF

R14

220

R17 220

R15 220

R11

BZ1BUZZER

Q1

BC547

R9 1K2

US

B A

SP13579

246810

J?

8E D + C Dp

BA+FG

1 2 3 4 5678910

3

2

10

4

15

83

124

27

76

6

5

13

1

14

2

4/11

3

91

D10

LED

R18

330

R25

330

D3

LED

SE

NS

OR

SU

HU

Lm 35

.+

.

.

IC2

AT

ME

GA

8

PC6/RST1

PD0/RXD2

PD1/TXD3

PD24

PD35

PD46

VC

C7

GN

D8

PB6 (XTAL1)9

PB7 (XTAL2)10

PD511

PD612

PD713

PB014

PC528

PC427

PC326

PC225

PC124

PC023

GN

D22

AREF21

AV

CC

20

PB519

PB418

PB317

PB216

PB115

R10

10KVR110k

J?

LCD

1 2 3 4 5 6 7 8 9 10

11

12

13

14

15

16

J?

12 V 1

2

C5

2200Uf R5

330

IC3

7805

1 2 3

D11

LED

D?

BRIDGE

- +

C6

1000Uf

Page 14: BAB III PERANCANGAN DAN PEMBUATAN SISTEM Rangkaian

55

Laporan Tugas Akhir BAB III

STT Telematika Telkom Purwokerto D310012

C. Pembuatan dan Penjelasan Program Sistem

Pembuatan program trainer ATmega8 memakai pemrograman bahasa C dan

software bantu yang digunakan CV AVR. Rancangan pembuatan program tersebut

dapat dilihat pada flowchart.

1. Flowchart Program LED dan Buzzer

Flowchart program LED dan buzzer dapat dilihat pada gambar 3.18.

Pin B.1 = 0 ?

Hitung = 1 ?

Port D = 0 x AA

(LED ganjil ON)

Port B.0 = 1

(Buzzer On)

Hitung = 2 ?

Port D = 0 x 55

(LED genap ON)

Port B.0 = 0

(Buzzer Off)

Hitung = 0

Selesai

No

Yes

No

Yes

Mulai

Inisialisasi Port I/O

ATmega 8

Gambar 3.18 Flowchart Program LED dan Buzzer

Berdasarkan flowchart program LED dan buzzer dapat dilihat bahwa ketika

program sudah dimulai melakukan inisialisasi port sistem yaitu pin I/O ATmega8.

Kemudian program akan melakukan proses pada pin B.1. Jika tidak maka akan

kembali ke proses pengecekan pin B.0 dan jika ya akan berlanjut ke proses hitung

(memori). Jika hitung = 1 maka LED ganjil akan menyala dan buzzer berbunyi

tetapi jika tidak maka hitung = 2. Jika hitung = 2 adalah tidak maka akan kembali

Page 15: BAB III PERANCANGAN DAN PEMBUATAN SISTEM Rangkaian

56

Laporan Tugas Akhir BAB III

STT telematika Telkom Purwokerto D310012

ke proses hitung = 1 tetapi jika ya maka LED genap akan menyala dan buzzer

tidak berbunyi dan selesai

a. Program Inisialisasi Port I/O ATMega 8

Program untuk melakukan inisialisasi sistem port I/O ATMega 8 cukup

dengan memanggil library dari ATMega 8 dan pengaturan Port I/O pada

code vision AVR dengan listing program :

#include <mega8.h> // Memanggil library ATMega 8

#include <delay.h>

// Declare your global variables here

void main(void)

{// Declare your local variables here

// Input/Output Ports initialization

// Port B initialization

// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In

Func0=Out

// State7=T State6=T State5=T State4=T State3=T State2=T State1=P

State0=0

PORTB=0x02;

DDRB=0x01;

Dari listing program diatas bahwa PORTB=0x02 artinya buzzer berada pada

port B pin 1. Konfigurasi port B dapat dilihat pada gambar 3.19.

7 6 5 4 3 2 1 0

0 0 0 0 0 0 1 0

Gambar 3.19 Konfigurasi Port B

Dari gambar 3.19 dapat dilihat bahwa pin yang digunakan adalah 1 karena

pada program dikatakan 02. Sedangkan DDRB=0x01 buzzer berada pada

posisi output. Data Direction Register (DDR) akan bernilai 0 jika komponen

merupakan input dan bernilai 1 jika komponen merupakan output.

b. Inti Program

while (1)

if (PINB.1==0)

hitung++;

Page 16: BAB III PERANCANGAN DAN PEMBUATAN SISTEM Rangkaian

57

Laporan Tugas Akhir BAB III

STT telematika Telkom Purwokerto D310012

if (hitung == 1)

delay_ms(100);

PORTD = 0XAA;

PORTB.0 = 1;

delay_ms(300);

delay_ms(50);

if (hitung == 2)

PORTD=0xFF;

delay_ms(100);

PORTD = 0X55;

PORTB.0 = 0;

hitung = 0;

delay_ms(300); // menentukan delay 300 ms\

Dari listing program diatas bahwa port D pada mikropengendali

terhubung pada LED dan port B0 terhubung pada buzzer. Pada program

PORTD=0xAA artinya adalah LED ganjil menyala. Dapat diketahui bahwa

LED ganjil menyala dengan cara mengubah bilangan heksa AA menjadi

biner. Pada bilangan heksa A berarti 10. Konfigurasi port D dapat dilihat

pada gambar 3.20.

8 4 2 1

1 0 1 0

Gambar 3.20 Konfigurasi Port D

Dari gambar 3.20 dapat dilihat bahwa jika LED ganjil menyala maka

dapat dibinerkan menjadi 10101010. Jika PORTB.0=1 maka buzzer akan

berbunyi. Hal tersebut diketahui dengan cara jika port B.0 bernilai 1 artinya

buzzer berbunyi dan jika port B.0 bernilai 0 berarti buzzer mati.Pada

penyalaan LED genap, program yang digunakan adalah PORTD=0x55. Sama

dengan penyalaan LED ganjil, 55 pada penyalaan LED genap juga diubah

kedalam bentuk biner menjadi 10101010.

8 4 2 1

1 0 1 0

Page 17: BAB III PERANCANGAN DAN PEMBUATAN SISTEM Rangkaian

58

Laporan Tugas Akhir BAB III

STT telematika Telkom Purwokerto D310012

2. Flowchart Program LCD dan Sensor Suhu LM35

Flowchart program LCD dan sensor suhu LM35 dapat dilihat pada gambar

3.21.

Start

Inisialisasi Port I/O

Atmega8

Tampilkan Identitas

di LCD

Baca Output

ADC

Suhu =

read_adc(0)

Konversi

Suhu ke

Celcius

Tampilkan Suhu

pada LCD

Selesai

Gambar 3.21 Flowchart Program LCD dan Sensor Suhu LM35

Berdasarkan flowchart program LED dan buzzer dapat dilihat bahwa ketika

program sudah dimulai melakukan inisialisasi port sistem yaitu Pin I/O

ATmega8. Kemudian program yang sudah dibuat untuk melakukan inisialisasi

LCD sehingga LCD akan menampilkan karakter yang diinginkan sesuai dengan

perintah program. Pada Tugas Akhir ini LCD akan menampilkan suhu. Sensor

suhu LM35 mendeteksi suhu yang terjadi dan melakukan pembacaan nilai ADC

dengan menggunakan program pembacaan ADC pada sensor LM35. Nilai ADC

tersebut yang kemudian akan ditampilkan pada LCD.

a. Program Inisialisasi Port I/O ATMega 8

Program untuk melakukan inisialisasi sistem port I/O ATMega 8 cukup

dengan memanggil library dari ATMega 8 dan pengaturan Port I/O pada

code vision AVR dengan listing program :

Page 18: BAB III PERANCANGAN DAN PEMBUATAN SISTEM Rangkaian

59

Laporan Tugas Akhir BAB III

STT telematika Telkom Purwokerto D310012

#include <mega8.h> // Memanggil library ATMega 8

#include <delay.h>

// Declare your global variables here

void main(void)

{

// Declare your local variables here

// Input/Output Ports initialization

// Port B initialization

// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In

Func0=Out

// State7=T State6=T State5=T State4=T State3=T State2=T State1=P

State0=0

PORTB=0x02;

DDRB=0x00;

Dari listing program diatas bahwa PORTB=0x02 artinya sensor suhu

LM35 dihubungkan pada port B.1 sedangkan DDRB=0x00 artinya sensor

suhu LM35 merupakan komponen input.

b. Program Inisialisasi fungsi LCD

CV AVR memberikan kemudahan dalam menampilkan karakter pada

LCD karena didukung pustaka yang telah disediakan tinggal melakukan

aktifasi LCD yang akan digunakan. Setelah melakukan setting LCD sesuai

dengan gambar 3.19 diatas tentang dialog Port LCD kemudian menyimpan

file tersebut dengan nama file LCD. Membuat program LCD dengan

menampilkan karakter suhu dengan listing program :

#include <mega8.h>// inisialisasi ATMega 8

// Alphanumeric LCD initialization

// Connections are specified in the

// Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu:

// RS - PORTD Bit 0

// RD - PORTD Bit 1

// EN - PORTD Bit 2

// D4 - PORTD Bit 4

Page 19: BAB III PERANCANGAN DAN PEMBUATAN SISTEM Rangkaian

60

Laporan Tugas Akhir BAB III

STT telematika Telkom Purwokerto D310012

// D5 - PORTD Bit 5

// D6 - PORTD Bit 6

// D7 - PORTD Bit 7

// Characters/line: 16

lcd_init(16);

lcd_clear();

lcd_gotoxy(0,0);

lcd_putsf("ARTATY PANJAITAN");

lcd_gotoxy(0,1);

lcd_putsf("SENSOR SUHU LM35");

delay_ms(10000);

Pada Program LCD diatas terdiri dari blok-blok program untuk

melakukan inisialisasi LCD dengan listing program :

// Alphanumeric LCD initialization

// Connections are specified in the

// Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu:

// RS - PORTD Bit 0

// RD - PORTD Bit 1

// EN - PORTD Bit 2

// D4 - PORTD Bit 4

// D5 - PORTD Bit 5

// D6 - PORTD Bit 6

// D7 - PORTD Bit 7

Artinya bahwa LCD terhubung ke port D

Untuk melakukan inisialisasi LCD cukup dengan melakukan instruksi

dengan listing program :

//LCD module initialization

lcd_init(16);//inisialisasi lcd

Kedua cara diatas harus disertakan sebelum mengakses LCD. Kemudian

program utama dari LCD ini adalah:

lcd_init(16); //inisialisasi lcd 16x2

lcd_gotoxy(0,0); //menempatkan karakter di posisi kolom 0, baris 0

Page 20: BAB III PERANCANGAN DAN PEMBUATAN SISTEM Rangkaian

61

Laporan Tugas Akhir BAB III

STT telematika Telkom Purwokerto D310012

lcd_putsf("ARTATY PANJAITAN");//menampilkan karakter yang ada di

dalam kurung ( ... )

lcd_gotoxy(0,1); //menempatkan karakter di posisi kolom 0,baris 1

lcd_putsf("SENSOR SUHU LM35");//menampilkan string sensor suhu

c. Program Pengubah Analog ke Digital (ADC)

Penggunaan ADC sangat banyak, terutama dalam bidang pengukuran,

banyak keluaran yang masih berupa tegangan analog yang harus dikonversi

ke digital agar dapat diolah oleh mikropengendali. Program mengaktifkan

ADC dapat dilihat pada listing program :

#include <alcd.h>

#include <stdlib.h>

#define ADC_VREF_TYPE 0x40

Artinya mendefinisikan fungsi ADC tegangan yang digunakan yaitu Pin

Vref (tegangan referensi ADC) yang memiliki alamat heksa 0x40

unsigned int read_adc(unsigned char adc_input)

{

ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);

// Delay needed for the stabilization of the ADC input voltage

delay_us(10);

// Start the AD conversion

ADCSRA|=0x40;

// Wait for the AD conversion to complete

while ((ADCSRA & 0x10)==0);

ADCSRA|=0x10;

return ADCW;

}

// ADC initialization

// ADC Clock frequency: 750.000 kHz

// ADC Voltage Reference: AVCC pin

ADMUX=ADC_VREF_TYPE & 0xff; // blok init. ADC

Listing program diatas merupakan program untuk inisialisasi ADC.

Pengaturan terhadap frekuensi clock ADC internal yang terdapat pada chip

Page 21: BAB III PERANCANGAN DAN PEMBUATAN SISTEM Rangkaian

62

Laporan Tugas Akhir BAB III

STT telematika Telkom Purwokerto D310012

mikropengendali ATMega 8 dengan nilai sebesar 750.000 kHz, setting

dilakukan pada software CodeVision AVR. Register ADC ADMUX yang

berfungsi sebagai register penentuan tegangan referensi ADC ditentukan

dengan pengalamatan heksa sebesar 0xff

ADCSRA=0x83;

// LCD module initialization

lcd_init(16);

while (1)

{

// Place your code here

lcd_clear( );

SUHU = read_adc(0); //baca data ADC dari ch.0

suhu_celcius = (float)SUHU*500/1023;//persamaan untuk mengubah

kedalam derajat celcius

Listing program diatas adalah proses untuk pembacaan data suhu dengan

melakukan pengubahan suhu dalam satuan derajat celsius dengan persamaan

yang ditentukan.

Kemudian setelah melakukan pembacaan nilai ADC tersebut akan

ditampilkan pada LCD. Berikut ini listing programnya.

lcd_clear();//menghapus LCD terlebih dahulu sebelum menuliskan karakter

pada LCD

lcd_gotoxy(0,0); //menampilkan karakter pada kolom 0 baris 0 LCD

lcd_putsf("ARTATY PANJAITAN");//menampilkan nama mahasiswa

float(suhu_celcius,1,temp);//mengubah tipe data float ke tipe data array yg

akan ditampilkan di LCD

lcd_gotoxy(0,1);//menampilkan karakter adc pada kolom 0 baris 1

lcd_puts(temp);//menampilkan seluruh program pembacaan adc

lcd_gotoxy(5,1); //menampilkan karakter adc pada kolom 5 baris 1

lcd_putchar(0xdf);//menampilkan karakter derajat

lcd_putsf("C");// menampilkan karakter C (Celcius)

delay_ms(500); //menentukan delay 100 ms

Page 22: BAB III PERANCANGAN DAN PEMBUATAN SISTEM Rangkaian

63

Laporan Tugas Akhir BAB III

STT telematika Telkom Purwokerto D310012

3. Flowchart Program Keypad dan Seven Segment

Flowchart program keypad dan seven segment dapat dilihat pada gambar

3.22.

Scan Baris

Ke 2

Tombol 4 On

Tampil Angka 4 di

Seven Segment

Tombol 5 On

Tampil Angka 5 di

Seven Segment

Tombol 6 On

Tampil Angka 6 di

Seven Segment

Tombol B On

Tampil Huruf B di

Seven Segment

2

Mulai

Inisialisasi Port I/O

ATmega8

Scan Baris 1

Keypad

Tombol 1 On

Tampil Angka 1 di

Seven Segment

Tombol 2 On

Tampil Angka 2 di

Seven Segment

Tombol 3 On

Tampil Angka 3 di

Seven Segment

Tombol A On

Tampil Huruf A di

Seven Segment

Ya

Tidak

Ya

Ya

Ya

Tidak

Tidak

Tidak

Tidak

Ya

Ya

Ya

Ya

Tidak

Tidak

Tidak

Page 23: BAB III PERANCANGAN DAN PEMBUATAN SISTEM Rangkaian

64

Laporan Tugas Akhir BAB III

STT telematika Telkom Purwokerto D310012

2

Scan Baris

Ke 3

Tombol 7 On

Tampil Angka 7 di

Seven Segment

Tombol 8 On

Tampil Angka 8 di

Seven Segment

Tombol 9 On

Tampil Angka 9 di

Seven Segment

Tombol C On

Tampil Huruf C di

Seven Segment

Scan Baris

Ke 4

Tombol * On

Tampil Tanda * di

Seven Segment

Tombol 0 On

Tampil Angka 0 di

Seven Segment

Tombol # On

Tampil Tanda # di

Seven Segment

Tombol D On

Tampil Huruf D di

Seven Segment

4

Selesai

Ya

Tidak

Ya

Ya

Ya

Ya

Ya

Ya

Tidak

Tidak

Tidak

Tidak

Tidak

Tidak

Tidak

Ya

Gambar 3.22 Flowchart Program Keypad dan Seven segment

Pada gambar 3.22 dapat dilihat bahwa pada keypad dilakukan sistem scan per

barisnya. Setelah dilakukan scan pada baris pertama maka dilakukan penekanan

tombol keypad yang ada pada baris pertama. Jika tombol angka 1 = ON atau

Page 24: BAB III PERANCANGAN DAN PEMBUATAN SISTEM Rangkaian

65

Laporan Tugas Akhir BAB III

STT telematika Telkom Purwokerto D310012

dalam posisi ditekan maka akan tampil karakter angka 1 pada seven segment dan

jika tidak maka akan dilakukan penekanan berarti yang muncul adalah karakter

yang disebelahnya. Hal yang sama terjadi pada tiap tombolnya hingga pada baris

yang ke 4. Jika semuanya sudah maka prosesnya sudah selesai.

a. Listing Program

while (1)

{

// Place your code here

detek_key();

PORTC=dtkey;

PORTB=dtkey2;

delay_ms(5) ;

};

}

void detek_key(void) {

PORTD.4=0;

dt=(~PIND & 0x0F);

switch (dt) {

case 1 : dtkey=0xF9; dtkey2=0x01;//1

break;

case 2 : dtkey=0x24; dtkey2=0x02; //2

break;

case 4 : dtkey=0x30; dtkey2=0x02; //3

break;

case 8 : dtkey=0x08;dtkey2=0x02; //A

break;

};

Berdasarkan listing program dapat dilihat bahwa keypad terhubung

dengan port D pada mikropengendali. PORTD.4=0 berarti karakter baris

pertama pada keypad akan bernilai 0 saat dilakukan penekanan. Misalnya

case 1 : dtkey=0xF9; dtkey2=0x01. Program tersebut adalah untuk

menampilkan angka 1. Pada program dtkey=0xF9 artinya port yang

Page 25: BAB III PERANCANGAN DAN PEMBUATAN SISTEM Rangkaian

66

Laporan Tugas Akhir BAB III

STT telematika Telkom Purwokerto D310012

terhubung diibaratkan bilangan biner dan diubah ke dalam bentuk

heksadesimal. Pada program, dtkey artinya adalah pendeteksian pin berapa

saja yang terhubung saat karakter akan dimunculkan. Pada program ada kata

dtkey2 dikarenakan pin yang digunakan pada port C tidak mencukupi

sehingga meminjam port B.0. Jika pada dtkey2=0x01 berarti port B.0

digunakan dan jika dtkey2=0x02 berarti port B.0 tidak digunakan. Hal yang

sama juga dilakukan untuk penekanan tombol lainnya. Untuk program

penekanan baris selanjutnya hanya merubah PORTD.4 yang semula 0

menjadi 1 dan PORTD.5=0 karena tiap barisnya port yang digunakan menjadi

port selanjutnya dan bernilai 0 karena dilakukan penekanan. Demikian hal

yang sama dilakukan hingga penekanan pada baris keypad ke 4.

4. Flowchart Program Dot matrix

Flowchart program dot matrix dapat dilihat pada gambar 3.23.

Mulai

Inisialisasi Port I/O

ATmega8

Output

Port B “Kolom”

Port D “Baris”

Siapkan Memori

Sebanyak Jumlah

Karakter

Tampilkan

Karakter

Data = 8 Baris

?

Kolom = 5 ?

Data = 1

Data = 0 ?

Selesai

Tidak

Ya

Ya

Ya

Tidak

Tidak

Gambar 3.23 Flowchart Program Dot matrix

Page 26: BAB III PERANCANGAN DAN PEMBUATAN SISTEM Rangkaian

67

Laporan Tugas Akhir BAB III

STT telematika Telkom Purwokerto D310012

Pada gambar 3.23 dapat dilihat bahwa port B digunakan untuk kolom

dan port D digunakan untuk baris. Setelah itu dot matrix akan menyiapkan

memori sesuai dengan karakter yang akan ditampilkan. Untuk menampilkan 1

karakter dilakukan pengecekan per kolom yang terdiri dari 8 baris dan

tersedia 5 kolom. Jika pada kolom pertama 2 penuh 8 baris maka dilanjutkan

ke kolom kedua. Jika dalam 1 kolom belum 8 baris, maka dilakukan

pengulangan hingga terisi penuh 8 baris. Jika seluruh kolom suhu terisi, maka

akan ditampilkan karakter selanjutnya dengan langkah yang sama.

a. Listing Program

while (1)

{

if(PINC.0 == 0)

{

tombol++;

delay_ms(500);

}

if (tombol == 1)

{

tombol = 0;

angka=35;

kolom[0]=(0xFE);

kolom[1]=(0xFD);

kolom[2]= (0xFB);

kolom[3]=(0xF7);

kolom[4]=(0xEF);

kolom[5]=(0xDF);

kolom[6]=(0xBF);

kolom[7]=~(0x7F);

for (z=0;z<36;++z)

{

//for (x=0;x<10;++x) //untuk menggeser (non aktif)

//{

Page 27: BAB III PERANCANGAN DAN PEMBUATAN SISTEM Rangkaian

68

Laporan Tugas Akhir BAB III

STT telematika Telkom Purwokerto D310012

for (i=0;i<100;++i)

{

y=x;

for (j=0;j<8;++j)

{

//angka=0;

PORTB=kolom[j];

urut=y;

nyala_led();

PORTD=urut;

delay_ms(1);

y=y+1;

//PORTC=kolom[j+1];

if (y==8)

{

y=0;

}

}

PORTB=~(0xFE);

}

//}

//PORTB=0xFF;

angka=angka-1;

delay_ms(1000);

Berdasarkan listing program dapat dilihat bahwa jika tombol (pinC.0)

ditekan, maka memori tombol akan bertambah 1 dan delay 500 ms. Lalu akan

dilakukan pengecekan dan jika tombol=1 berarti sedang dalam keadaan

ditekan maka akan menampilkan karakter dari angka 0-1 dan huruf A-Z.