Bab Iii PDF

Anda mungkin juga menyukai

Anda di halaman 1dari 20

BAB III

PERANCANGAN ALAT

3.1 Diagram Blok Rangkaian

Pada bab ini akan di bahas tentang perancangan sebuah alat yang meliputi
diagram blok rangkaian dan realisasi rangkaian dengan prinsip kerja dari masing-
masing blok rangkaian yang digunakan pada Perancangan Sistem Antrian Digital
Berbasis Mikrokontroler AT89S51. Diagram blok rangkaian di perlihatkan pada
Gambar 3-1.

INPUT PENGOLAH OUTPUT

Saklar Mikrokontroler • 7-Segmen


AT89S51 • Buzzer

Gambar 3-1 Diagram Blok Perancangan Sistem Antrian Digital


Berbasis Mikrokontroler AT89S51.

Dari uraian diagram blok diatas , Penulis akan menguraikan cara kerja tiap-tiap
blok rangkaian adalah sebagai berikut :
a. Saklar berfungsi untuk sebagai inputan ke mikrokontroler.
b. Mikrokontroler AT89S51 berfungsi untuk mengendalikan tampilan 7-segment dan
buzzer berdasarkan sinyal masukan dari saklar yang ditekan(sebagai pemroses).
c. Tampilan 7-segment berfungsi untuk menunjukkan (output) .
d. Buzzer berfungsi sebagai indikator antrian pada saat inputan berupa saklar ditekan
(output).

27
28

3.1.1 Blok Catu daya


Catu daya berfungsi untuk memberikan suplay tegangan, khususnya ke IC
mikrokontroler AT89S51, catu daya yang di gunakan adalah 5 Volt dc. Untuk
menurunkan tegangan trafo dari 9 V menjadi 5 V maka di gunakan IC voltage regulator
LM7805.
Pada rangkaian catu daya, dioda 1N4001 berfungsi sebagai penyearah
gelombang penuh dari ac ke dc dengan arus sebesar 1 Ampere, sedangkan kapasitor
100µF dan 100nF berfungsi sebagai filter tegangan dc atau penghalus pulsa-pulsa
tegangan yang dihasilkan oleh dioda penyearah. Skema rangkaian catu daya di
perlihatkan pada Gambar 3.2.

Gambar 3.2 Skema rangkaian catudaya

3.1.2 Blok Pemberi Sinyal (Input)


Pada Blok Pemberi Sinyal (input) saklar yang digunakan adalah saklar push-on
(saklar tekan) dimana berfungsi untuk memberikan inputan ke bagian pemroses
(mikrokontroler AT89S51). Skema rangkaian saklar di perlihatkan pada Gambar 3.3.

Gambar 3.3 Skema rangkaian saklar sebagai inputan


29

Output dari saklar akan langsung disambungkan ke mikrokontroler pada port


1.0. Pada kondisi awal saat saklar tidak ditekan ( tidak terhubung ) maka inputan
mikrokontrol akan berlogika 1 (aktif high), bila saklar ditekan ( terhubung ) maka saklar
akan mengeluarkan pulsa berlogika 0 karena saklar (P1.0) di hubungkan ke ground .
Pada kondisi inilah merupakan input bagi port 1.0 pada mikrokontroler. Dan jika saklar
dilepas kembali (tidak ditekan ) maka inputan akan berlogika 0.

3.1.3 Blok Pengolah (Proses)

Dalam hal ini cara kerja mikrokontroler AT89S51 hampir sama dengan otak
manusia, mikrokontroler akan mengendalikan seluruh rangkaian. Agar dapat
mengerjakan suatu perintah maka mikrokontroler harus diisi program dahulu.
Mikrokontroler AT89S51 hanya memerlukan tambahan 3 kapasitor, 1 resistor dan 1
kristal serta catu daya 5 Volt. Kristal dengan frekuensi 11,0592MHz dan dua buah
kapasitor 30 pF di pakai untuk melengkapi rangkaian oscillator.
Pembentuk clock yang menentukan kecepatan kerja mikrokontroler. Kapasitor
10µF dan resistor 10 KOhm di pakai untuk membentuk rangkaian reset dimana
rangkaian ini pada saat pertama kali catu daya di hidupkan, akan mereset rangkaian
mikrokontroler sehingga program di pastikan akan bekerja dari awal.
Prinsip kerja rangkaian reset adalah proses pengisian kapasitor yang di tunda
oleh sebuah resistor sehingga pada saat pengisian kapasitor akan terjadi proses keadaan
dari tegangan rendah (low) ke tegangan tinggi (high), keadaan inilah yang akan mereset
rangkaian mikrokontroler. Port 0 mikrokontroler AT89S51 merupakan keluaran untuk
alamat (address AD0-AD7) tidak mempunyai tahanan yang terhubung ke Vcc, seperti
pada konstruksi port-port yang lain. Pada saat port 0 di pakai sebagai port output
tegangan pada kaki P0.x tidak mungkin menjadi high (tegangan ambang), untuk
mengatasi hal ini maka harus di pasangkan tahanan ke Vcc diluar chip IC
mikrokontroler.
30

Skema rangkaian mikrokontroler AT89S51 diperlihatkan pada Gambar 3.4.


5V
R pack 10K
AT89S51
saklar
1 VCC 40
P1.0
2
P1.1 P0.0 39 a Tampilan
3 P0.1 38 b 7-Segment
4 P1.2 c
+5V P1.3 P0.2 37
36
5
P1.4 P0.3 d
6
P1.5 P0.4 35 e
100 10 µF 7 P1.6 P0.5 34 f
8 P1.7 P0.6 33 g
9 RESET P0.7 32
10 31
P3.0 EA/VPP Buzzer
11 30
P3.1 ALE / PROG
12 PSEN 29
10 K P3.2 Driver
13 28
P3.3 P2.7 7-Segment
14 27
P3.4 P2.6
15 26
P3.5 P2.5
16 25
P3.6 P2.4
17 24
P3.7 P2.3
30pf 18 23
XTAL1 P2.2
19 22
XTAL2 P2.1
20 21
GND P2.0
XTAL
30pf
11, 0598MHz

Gambar 3.4 Skema rangkaian Mikrokontroler AT89S51.

Berikut ini merupakn tabel dari pemasangan pin-pin mikrokontroler AT89S51


pada pada Perancangan Sistem Antrian Digital Berbasis Mikrkontrol AT89S51.
31

Tabel 3-1 Pemasangan pin-pin pada mikrokontroler AT89S51

Pin In / Out Ket Fungsi


1 Input P1.0 Masukan dari saklar
2-8 - P1.1 – P1.7 Tidak terpakai
9 Input RST Reset
10-17 - P3.0 – P3.7 Tidak terpakai
18-19 Input XTAL Osilator kristal 11.0592 MHz
20 0 volt GND Ground
21-24 - P2.0 – P2.3 Tidak terpakai
25-28 Output P2.4 – P2.7 Keluaran ke driver 7-Segment
29 - PSE Tidak terpakai (Program Stoage Enable)
30 - ALE Tidak terpakai(Address Lacth Enable)
31 5 volt EA/VPP Externel Access Enable
32 Output P0.7 Keluaran ke Buzzer sebagai indikator
33-39 Output P0.0 – P0.6 Keluaran data 7-Segment
40 5 volt Vcc

3.1.4 Blok Pemberi Informasi (Output)


a. Blok Sevent Segment
Pada blok ini penulis menggunakan 7_segment jenis Common Anoda (CA) dan
driver 7_segment yang berfungsi untuk mengendalikan penyalaan digit 7_segment ,
rangkaian driver ini di buat dengan menggunakan transistor type C9012,dimana
transistor ini berperan sebagai saklar (swicth) untuk menghubungkan Vcc 7_segment
dengan catu daya +5V. Rangkaian blok 7_segment diperlihatkan pada Gambar 3.5.
32

Gambar 3.5 Skema Rangkaian 7_segment.

b. Buzzer
Pada alat ini buzzer berfungsi untuk indikator bunyi atau penanda apabila saklar
di tekan dan memulai antrian berikutnya. Buzzer terhubung pada port 0.7
mikrokontroler, rangkaian buzzer menggunakan transistor type C9012 (general
purpose), pada dasarnya, buzzer di hubungkan ke tegangan Vcc 5 Volt, karena adanya
transistor sebagai swicth , maka buzzer mendapatkan arus atau tidaknya tergantung dari
kondisi transistor saat itu, jika transistor ON ( karena adanya arus low pada basis,
dengan pemberian logika ‘0’), maka buzzer mendapat tegangan Vcc, namun sebaliknya
jika transistor OFF (karena adanya arus high pada basis, dengan pemberian logika ‘1’),
maka buzzer juga OFF. Tahanan 2,2 K pada kaki basis transistor berfungsi sebagai
pembatas arus yang masuk melalui basis. Skema rangkaian buzzer di pelihatkan pada
Gambar 3-6.

Gambar 3-6. Skema rangkaian buzzer


33

3.2 Prinsip Kerja Rangkaian


Rangkaian ini bekerja berdasarkan adanya penekanan saklar. Saklar yang
ditekan akan menjadi inputan pada mikrokontroler, kemudian mikrokontroler akan
mengendalikan tampilan 7-segment untuk menunjukkan penghitungan data antrian dan,
buzzer untuk indikator atau menandakan proses penghitungan antrian terdahulu telah
selesai dan memanggil antrian berikutnya untuk melakukan transaksi.

Gambar 3.7 Rangkaian Keseluruhan


34

3.3 Diagram Alur Program AT89S51

Sebelum membuat suatu program yang di rencanakan maka langkah awal dalam
perancangan software adalah membuat suatu diagram alur atau flowchart sebagai acuan
pembuatan listing program. Diagram alur program tersebut di perlihatkan oleh gambar 3.8
berikut ini :

Gambar 3.8 Diagram Alur Program


35

Prinsip kerja diagram alur program adalah sebagai berikut :


1. Program di mulai dengan inisialisasi Timer yaitu dengan mengisi TMOD (Timer
Mode Register) dengan 01H, TL0 (Timer 0 Low Byte) dengan 0B8H, dan TH0
(Timer 0 High Byte) dengan 8EH, artinya proses interupsi terjadi selama 25 ms
yaitu dari proses penekanan saklar , penghitungan , penampilan data di seven
segmen dan sampai buzzer berbunyi, list program :
UTAMA:
mov TMOD,#01H ; memasukkan nilai 01H ke register TMOD
mov TL0,#0B8H ; memasukan nilai 0B8H ke register TL0
mov TH0,#8EH ; memasukan nilai 8EH ke register TH0

2. Berikutnya adalah insialisasi Interupsi dengan mengisi TL0 (Timer 0 Low Byte)
dengan 0B8H, dan TH0 (Timer 0 High Byte) dengan 8EH, list program :
INTERRUPT :
BACA:
mov TL0,#0B8H ; memberikan nilai TL0 dengan nilai 0B8H
mov TH0,#8EH ; memberikan nilai TH0 dengan alamat 8EH

3. Selanjutnya Interupsi Timer 0 dan Interupsi global diaktifkan, dengan list


program :
setb ET0 ; memberikan bit 1 ke pin ET0 ( enable Timer 0 )
setb EA ; memberikan bit 1 ke EA ( aktifkan interupsi )

4. Timer 0 dihidupkan , dengan list program :


setb TR0 ; memberikan bit 1 ke TR0 ( aktifkan Timer 0 )

5. Register 1 , 2 , 3 dan 4 di isi dengan 0, list program :


AWAL: mov R1,#0 ; memberikan register 1 dengan nilai awal 0
mov R2,#0 ; memberikan register 2 dengan nilai awal 0
36

mov R3,#0 ; memberikan register 3 dengan nilai awal 0


mov R4,#0 ; memberikan register 4 dengan nilai awal 0

6. Data dari akumulator dikirim dan ditampilkan ke Port 0, kemudian discan secara
berulang dari P2.7 ke P2.4, dengan list program :
LOOP:
mov A,R1 ; memasukan nilai di R1 ke A
mov dptr,#ANGK ; menunjuk data pointer ke ANGK
movc A,@A+DPTR ; menjumlahkan isi data pointer dengan
akumulator
mov P0,A ; memasukan nilai a ke P0
clr P2.7 ; memberikan P2.7 dengan nilai bit 0
call delay ; memanggil subroutin delay
setb p2.7 ; memberikan bit 0 pada pin P2.7

mov A,R2 ; memasukan nilai R2 ke dalam A


mov dptr,#ANGK ; menunjuk ke data pointer ANGK
movc A,@A+DPTR ; menjumlahkan isi data pointer dengan
akumulator
mov P0,A ; memasukan nilai A ke P0
clr P2.6 ; memberikan bit 0 pada pin P2.6
call delay ; memanggil subroutin delay
setb P2.6 ; memberikan bit 0 pada pin P2.6

mov A,R3 ; memasukan nilai R3 ke dalam A


mov dptr,#ANGK ; menunjuk ke data pointer ANGK
movc A,@A+DPTR ; menjumlahkan isi data pointer dengan
akumulator
mov P0,A ; memasukan nilai A ke P0
37

clr P2.5 ; memberikan bit 0 pada pin P2.5


call delay ; memanggil subroutin delay
setb P2.5 ; memberikan bit 0 pada pin P2.5
mov A,R4 ; memasukan nilai R2 ke dalam A
mov dptr,#ANGK ; menunjuk ke data pointer ANGK
movc A,@A+DPTR ; menjumlahkan isi data pointer dengan
akumulator
mov P0,A ; memasukan nilai A ke P0
clr P2.4 ; memberikan bit 0 pada pin P2.4
call delay ; memanggil subroutin delay
setb P2. 4 ; memberikan bit 0 pada pin P2.4
jmp loop ; kembali ke loop

7. Apabila R6 dan R5 sama dengan 0 maka P0.7 diberi logika 1 (non aktifkan buzzer)
kemudian baca port 1, tetapi apabila R6 dan R5 tidak sama dengan 0 maka proses
berikutnya baca port 1, dengan list program :
djnz R6,SKIP ; mengurangi satu nilai R6 jika R6 tidak
sama dengan 0 loncat ke SKIP
djnz R5,SKIP ; mengurangi satu nilai R5 jika R5 tidak sama
dengan 0 loncat ke SKIP
setb P0.7 ; memberikan pin P0.7 dengan data 1

SKIP: mov A,P1 ; memasukan nilai P1 ke A


cjne A,#0FFH,TEKAN ; Jika A tidak sama dengan 0FFH loncat ke
subroutin TEKAN
sjmp BACK ; Loncat ke BACK
38

8. Langkah berikutnya jika apakah saklar ditekan ? jika ya kemudian bunyikan buzzer
(isi P0.7 dengan logika 0) dan naikkan indeks data R2 dengan 1.

TEKAN:
cjne A,#0FEH,BALIK ; Jika A tidak sama dengan 0FEH loncat ke
Keluar
TM : jb P1.0,TM ; Loncat ke TM jika P1.1 sama dengan 1
TS : jnb P1.0,TS ; Loncat ke TS jika P1.1 tdk sama dengan 1
mov A,#tunggu
clr P0.7 ; memberikan pin P0.7 dengan data 0

DBNLESS : ; Subroutin untuk mengurangi efek Debaunce


jnb P1.0,TS ; Loncat ke TS jika P1.1 tdk sama dengan 1
djnz acc, DBNLESS ; Mengurangi satu nilai accumulator jika acc tidak
sama dengan 0 loncat ke DBNLESS

clr P0.7 ; memberikan bit 0 pada P0.7


mov R6,#0H ; memasukan nilai 0H ke R6
mov R5,#0AH ; memasukan nilai AH ke R5
inc R4 ; memberikan R4 ditambah 1
call UJI_TEKAN ; memanggil prosedur UJI_TEKAN

cjne R4,#0AH,BACK ; Jika R4 tidak sama dengan 0AH loncat ke


BACK
mov R4,#0 ; memasukan R4 dengan nilai 0
inc R3 ; memberikan R3 ditambah 1
39

cjne R3,#0AH,BACK ; Jika R3 tidak sama dengan 0AH loncat ke


BACK
mov R3,#0 ; memasukan R3 dengan nilai 0
inc R2 ; memberikan R2 ditambah 1

cjne R2,#0AH,BACK ; Jika R2 tidak sama dengan 0AH loncat ke


BACK
mov R2,#0 ; memasukan R2 dengan nilai 0
inc R1 ; memberikan R1 ditambah 1

cjne R1,#0AH,BACK ; Jika R1 tidak sama dengan 0AH loncat ke


BACK
mov R1,#0 ; memasukan register 1 sama dengan 0
mov R2,#0 ; memasukan register 2 sama dengan 0
mov R3,#0 ; memasukan register 3 sama dengan 0
mov R4,#0 ; memasukan register 4 sama dengan 0
jmp BACK ; Loncat ke BACK

UJI_TEKAN:
cjne R2,#1H,BALIK ; Jika R2 tdk sama dengan 1H loncat ke BALIK
cjne R1,#0H,BALIK ; Jika R1 tdk sama dengan 0H loncat ke BALIK

DELAY : mov R7,#100 ; prosedur delay


DELAY1: mov R6,#25 ; prosedur delay
DELAY2: djnz R6,DELAY2 ; prosedur delay
djnz R7,DELAY1 ; prosedur delay
ret
40

BACK : ret ; return


BALIK : ret ; return

ANGK : db 11000000b ; Angka 0


db 11111001b ; Angka 1
db 10100100b ; Angka 2
db 10110000b ; Angka 3
db 10011001b ; Angka 4
db 10010010b ; Angka 5
db 10000010b ; Angka 6
db 11111000b ; Angka 7
db 10000000b ; Angka 8
db 10010000b ; Angka 9
end

3.4 Pemrograman Mikrokontroler AT89S51


Pemrograman Mikrokontroler dilakukan dengan cara menuliskan program ke
memori EEPROM mikrokontroler AT89S51 dengan bantuan perngkat DT51
Downloader. Pada pemrograman ini, penulis menggunakan pemrograman secara serial
yaitu melalui port serial PC (COM1). Sebelum melakukan pemrograman terlebih
dahulu melakukan pengaturan Timer untuk menentukan kecepatan tranfer data
(Baudrate) pada komunikasi port serial. Dengan mengubah bit SMOD yang terletak
pada register PCON (Power Control) menjadi set (kondisi awal saat sistem di-reset
adalah clear) maka baudrate pada mode 1 , 2 , dan 3 akan berubah menjadi dua kali
lipat kondisi awal. Pada mode 1 , 2 , dan 3 baudrate dapat diatur dengan timer 1 ,
namun biasanya digunakan timer mode 2 (8 bit auto-reload) yang hanya menggunakan
register TH1.
41

Pengiriman bit data terjadi tiap kali 1 Overflow sebanyak 32 kali , sehingga
dapat di simpulkan bahwa ;

Baudrate (jumlah bit yang terkirim tiap detik) adalah :

Apabila diinginkan baudrate sebesar 9600 bps maka Timer 1 harus diatur agar
1
Over-flow setiap detik .
9600 x 32

Timer 1 Over-flow setiap kali TH1 mencapai nilai limpahan (over-flow) dengan
frekuensi sebesar fosc / 12 dalam periode 12 / fosc . Dari informasi ini akan di temukan
formula berikut ;

Dengan frekuensi osilator mikrokontrol AT89S51 sebesar 11,0592 MHz ,


TH1 adalah 253 atau 0FDH.

3.4.1 Perangkat DT-51TM Low Cost Micro System v2.0

Rangkaian Development system mikrokontroler yang digunakan adalah DT51


low Cost Micro System v2.0. Rangkaian ini merupakan suatu modul single chip dengan
mikrokontroler AT89S51 dan kemampuan komunikasi serial secara UART serta In-
system Programming.
42

Spesifikasi Hardware :
1. Mikrokontroler AT89S51 dengan 4Kbyte Flash memory.
2. Memiliki hingga 32 pin jalur input/output dengan pull-up.
3. Rangkaian RC reset, tombol reset, serta brown-out detector.
4. Frekuensi osilator sebesar 11,0592 MHz.
5. Tersedia jalur komunikasi serial UART RS-232 yang telah disempurnakan, dengan
konektor RJ11
6. Tersedia port untuk pemograman secara ISP.
7. Tegangan input 9-12 VDC pada Vin dan tegangan output 5 VDC pada Vout.

Dalam modul DT51 low Cost Micro System v2.0 ini disertakan 2 perangkat
kabel yaitu kabel AT89 ISP Programmer dan kabel serial. Kabel AT89S51 ISP
Programmer digunakan sebagai sarana pemrograman ISP (In System Programing)
,sedangkan kabel serial digunakan untuk komunikasi serial mikrokontroler dengan PC.

1. Pemasangan kabel AT89 ISP Programmer


Kabel pemograman ISP AT89 memiliki dua konektor, DB25 dan Black Housing
10 pin. Pemasangan kabel ini dapat dilihat pada gambar 3.13. Konektor DB25
dihubungkan dengan Parallel Port komputer sedangkan Black Housing dihubungkan
dengan target board.

Gambar 3.9 Koneksi kabel ISP Programmer


43

2. Pemasangan Kabel Serial

DT-51 dapat berkomunikasi secara serial dengan PC. Kabel serial digunakan
untuk menghubungkan PC dan DT-51 melalui port serial (konektor DB9). Port serial
pada PC sering disebut COM1 dan COM2. Koneksi kabel serial dengan PC dapat
dilihat pada gambar 3.10. Konektor female DB9 dihubungkan ke salah satu Serial Port
PC dan konektor male DB9 dihubungkan ke DT-51.

Gambar 3.10 Koneksi kabel Serial

3.4.2 Perancangan Perangkat Lunak (Software)

Dalam perancangan perangkat lunak ini penulis menggunakan program bantuan


yaitu : NOTEPAD.EXE, ASM51.EXE, dan DT51Lwin.EXE
1. NOTEPAD.EXE, digunakan sebagai editor. Listing program berbahasa assembly
ditulis dan diubah menggunakan Notepad. Listing program tersebut disimpan
dengan format (nama file).ASM.
2. ASM51.EXE, digunakan sebagai hex assembler. ASM51 akan mengubah listing
program yang sudah dibuat Notepad menjadi file hexadesimal. Hasil proses ini
akan menghasilkan file (nama file).HEX , file ini adalah file yang akan di
download ke memori EEPROM Mikrokontroler AT89S51.
3. DT51Lwin.EXE, merupakan software Downloader untuk mendownload program
ke memori EEPROM IC Mikrokontroler AT89S51.
44

3.4.3 Proses Download Program ke Mikrokontroler AT89S51

Langkah – langkah men


men-download program ke mikrokontroler AT89S51 :
1. Menuliskan listing program program pada Notepad kemudian program disimpan
dalam format (nama file).ASM.
2. Mengubah file (nama file).ASM menjadi format (nama file). HEX yang dapat di-
di
download ke DT-51.
51. Langkah ini disebut juga proses assembling. Program yang
digunakan untuk melakukan proses tersebut adalah ASM51.EXE. Proses
assembling dilakukan dengan mengetikkan ”ASM51 (nama file).ASM” pad
pada MS-
DOS promp.

Gambar 3.11 Konversi File .asm ke file.Hex

3. Menjalankan Software DT51Lwin.EXE

Gambar 3.12 Program DT51Lwin.EXE


45

4. Mengatur komunikasi port serial melalui COM Option, pilih COM1.


5. Mengatur Baudrate pemrograman mel
melalui Baudrate Option, pilih 9600 bps

3.13 Pengaturan Port dan Baudrate


Gambar 3.1

6. Membuka file .Hex


Hex yang akan di download melalui menu Open File & Download.

3.14 Proses Men-load file untuk di Download.


Gambar 3.1
46

7. Menjalankan proses download program dengan menekan tombol ReDownload ,


dan tunggu sampai proses pengisian program selesai.

Gambar 3.15 Proses Pengisian Program

Gambar 3.16 Proses Pengisian Selesai.

Anda mungkin juga menyukai