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 masingmasing blok rangkaian yang digunakan pada Perancangan Sistem Antrian Digital Berbasis Mikrokontroler AT89S51. Diagram Gambar 3-1. INPUT Saklar PENGOLAH Mikrokontroler AT89S51 OUTPUT 7-Segmen Buzzer blok rangkaian di perlihatkan pada

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 perlihatkan pada Gambar 3.2. catu daya di

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
AT89S51 saklar
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 R pack 10K

+5V
100 10 F

P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7


RESET

VCC 40 P0.0 39 P0.1 38 P0.2 37 36 P0.3 P0.4 35 P0.5 34 P0.6 33 P0.7 32


31 30 29 28 27 26 25 24 23 22 21

a b c d e f g

Tampilan 7-Segment

10 K

30 pf

P3.0 EA/VPP P3.1 ALE / PROG PSEN P3.2 P2.7 P3.3 P2.6 P3.4 P2.5 P3.5 P3.6 P2.4 P3.7 P2.3 XTAL 1 P2.2 P2.1 XTAL 2 P2.0 GND

Buzzer Driver 7-Segment

30 pf

XTAL 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 1 2-8 9 10-17 18-19 20 21-24 25-28 29 30 31 32 33-39 40

In / Out Input Input Input 0 volt Output 5 volt Output Output 5 volt

Ket P1.0 P1.1 P1.7 RST P3.0 P3.7 XTAL GND P2.0 P2.3 P2.4 P2.7 PSE ALE EA/VPP P0.7 P0.0 P0.6

Fungsi Masukan dari saklar Tidak terpakai Reset Tidak terpakai Osilator kristal 11.0592 MHz Ground Tidak terpakai Keluaran ke driver 7-Segment Tidak terpakai (Program Stoage Enable) Tidak terpakai(Address Lacth Enable) Externel Access Enable Keluaran ke Buzzer sebagai indikator Keluaran data 7-Segment 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 mov TL0,#0B8H mov TH0,#8EH ; memasukkan nilai 01H ke register TMOD ; memasukan nilai 0B8H ke register TL0 ; 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 mov TH0,#8EH ; memberikan nilai TL0 dengan nilai 0B8H ; memberikan nilai TH0 dengan alamat 8EH

3.

Selanjutnya Interupsi Timer 0 dan Interupsi global diaktifkan, dengan list program : setb ET0 setb EA ; memberikan bit 1 ke pin ET0 ( enable Timer 0 ) ; 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 mov R2,#0 ; memberikan register 1 dengan nilai awal 0 ; memberikan register 2 dengan nilai awal 0

36

mov R3,#0 mov R4,#0

; memberikan register 3 dengan nilai awal 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 mov dptr,#ANGK movc A,@A+DPTR ; memasukan nilai di R1 ke A ; menunjuk data pointer ke ANGK ; menjumlahkan isi data pointer dengan akumulator mov P0,A clr P2.7 ; memasukan nilai a ke P0 ; memberikan P2.7 dengan nilai bit 0 ; memanggil subroutin delay ; memberikan bit 0 pada pin P2.7

call delay setb p2.7

mov A,R2 mov dptr,#ANGK movc A,@A+DPTR

; memasukan nilai R2 ke dalam A ; menunjuk ke data pointer ANGK ; menjumlahkan isi data pointer dengan akumulator

mov P0,A clr P2.6

; memasukan nilai A ke P0 ; memberikan bit 0 pada pin P2.6 ; memanggil subroutin delay ; memberikan bit 0 pada pin P2.6

call delay setb P2.6

mov A,R3 mov dptr,#ANGK movc A,@A+DPTR

; memasukan nilai R3 ke dalam A ; menunjuk ke data pointer ANGK ; 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 ; memanggil subroutin delay ; memberikan bit 0 pada pin P2.5 ; memasukan nilai R2 ke dalam A ; menunjuk ke data pointer ANGK ; menjumlahkan isi data pointer dengan akumulator

call delay setb P2.5

mov A,R4 mov dptr,#ANGK movc A,@A+DPTR

mov P0,A clr P2.4

; memasukan nilai A ke P0 ; memberikan bit 0 pada pin P2.4 ; memanggil subroutin delay ; memberikan bit 0 pada pin P2.4 ; kembali ke loop

call delay setb jmp P2. 4 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 TS : jb : jnb P1.0,TM P1.0,TS ; Loncat ke TM jika P1.1 sama dengan 1 ; Loncat ke TS jika P1.1 tdk sama dengan 1

mov A,#tunggu clr P0.7 ; memberikan pin P0.7 dengan data 0

DBNLESS : jnb P1.0,TS

; Subroutin untuk mengurangi efek Debaunce ; Loncat ke TS jika P1.1 tdk sama dengan 1 ; Mengurangi satu nilai accumulator jika acc tidak sama dengan 0 loncat ke DBNLESS

djnz acc, DBNLESS

clr

P0.7

; memberikan bit 0 pada P0.7 ; memasukan nilai 0H ke R6 ; memasukan nilai AH ke R5 ; memberikan R4 ditambah 1 ; memanggil prosedur UJI_TEKAN

mov R6,#0H mov R5,#0AH inc R4

call UJI_TEKAN

cjne R4,#0AH,BACK

; Jika R4 tidak sama dengan 0AH loncat ke BACK

mov R4,#0 inc R3

; memasukan R4 dengan nilai 0 ; memberikan R3 ditambah 1

39

cjne R3,#0AH,BACK

; Jika R3 tidak sama dengan 0AH loncat ke BACK

mov R3,#0 inc R2

; memasukan R3 dengan nilai 0 ; memberikan R2 ditambah 1

cjne R2,#0AH,BACK

; Jika R2 tidak sama dengan 0AH loncat ke BACK

mov R2,#0 inc R1

; memasukan R2 dengan nilai 0 ; memberikan R1 ditambah 1

cjne R1,#0AH,BACK

; Jika R1 tidak sama dengan 0AH loncat ke BACK

mov R1,#0 mov R2,#0 mov R3,#0 mov R4,#0 jmp BACK

; memasukan register 1 sama dengan 0 ; memasukan register 2 sama dengan 0 ; memasukan register 3 sama dengan 0 ; memasukan register 4 sama dengan 0 ; Loncat ke BACK

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

DELAY : mov R7,#100 DELAY1: mov R6,#25 DELAY2: djnz R6,DELAY2 djnz R7,DELAY1 ret

; prosedur delay ; prosedur delay ; prosedur delay ; prosedur delay

40

BACK BALIK

: ret : ret

; return ; return

ANGK : db 11000000b db 11111001b db 10100100b db 10110000b db 10011001b db 10010010b db 10000010b db 11111000b db 10000000b db 10010000b end

; Angka 0 ; Angka 1 ; Angka 2 ; Angka 3 ; Angka 4 ; Angka 5 ; Angka 6 ; Angka 7 ; Angka 8 ; Angka 9

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 Insystem 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 didownload ke DT-51. Langkah ini disebut juga proses assembling. Program yang 51. digunakan untuk melakukan proses tersebut adalah ASM51.EXE. Proses assembling dilakukan dengan mengetikkan ASM51 (nama file).ASM pad MSpada 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

Gambar 3.1 Pengaturan Port dan Baudrate 3.13

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

Gambar 3.1 Proses Men-load file untuk di Download. 3.14

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

  • WR 1
    WR 1
    Dokumen3 halaman
    WR 1
    silvidz
    Belum ada peringkat
  • WR 1
    WR 1
    Dokumen3 halaman
    WR 1
    silvidz
    Belum ada peringkat
  • Slide 1 DSK New
    Slide 1 DSK New
    Dokumen18 halaman
    Slide 1 DSK New
    Mochammad Rismansyah
    Belum ada peringkat
  • DIG03
    DIG03
    Dokumen7 halaman
    DIG03
    -Ari Setiyono
    Belum ada peringkat