• Tidak ada hasil yang ditemukan

BAB III PERANCANGAN

3.2 Perancangan Rangkaian

3.2.1 Rangkaian Switch

Dalam perancangan jam pasir ini, digunakan 4 buah tombol (switch) yang umum digunakan (push button). Ke 4 tombol tersebut dapat dilihat pada gambar 3.3

Down

10k

P3.5

5 Volt

P3.6

P3.7 Reset

Up

10uF

Start Reset

Gambar 3.3 Rangkaian Switch Dari ke 4 tombol tersebut mempunyai fungsi sebagai berikut:

1. Menjalankan perintah Start.

2. Menjalankan perintah Reset.

3. Menjalankan perintah Up, untuk penambahan waktu pada seven segment.

4. Menjalankan perintah Down, untuk pengurangan waktu pada seven segment.

Dalam perancangan jam pasir digital digunakan 4 buah tombol, keempat tombol tersebut terdiri dari tombol start, reset, up, down. Fungsi dari empat tombol tersebut sebagai tombol untuk menjalankan perintah start (port P3.7 yaitu pin 17) yang dihubungkan dengan ground dan untuk menjalankan perintah reset (port RST yaitu pin 9), sedangkan tombol up (port P3.5) dan down (port P3.6) untuk mengatur waktu perpindahan aliran LED dari atas ke bawah, hingga LED bagian bawah menyala semua. Gambar 3.2 adalah gambar rangkaian switch.

3.2.2 Rangkaian Unit Pengolah

Mikrokontroler menjadi pengendali utama dari rangkaian jam pasir.

Pengendali (mikrokontroler AT89S51) tersebut memiliki 4 port (port 0, 1 2, 3).

Dengan port-port tersebut, maka setiap bagian yang akan dikendalikan atau diolah oleh mikrokontroler dapat terpenuhi dalam perancangan sistem jam pasir digital.

Pada gambar 3.4 kristal (XTAL) berfungsi sebagai detak (clock) sebagai pengatur siklus sinyal keluaran. Pembangkit clock internal menentukan kondisi-kondisi (state) yang membentuk sebuah siklus mesin mikrokontroler. Jadi, satu siklus mesin paling lama dikerjakan dalam 12 periode osilator atau 1 µd, karena pada rangkaian mikrokontroler menggunakan kristal 12 MHz.

Gambar 3.4 Rangkaian mikrokontroler

3.2.3 Rangkaian Indikator

Pada rangkaian indikator, digunakan transistor PNP 9012 yang berfungsi sebagai saklar. Transistor seri 9012 dan 9013 dipilih karena masisng-masing memiliki β sebesar 78 (minimum) dan 64 (minimum). Pada transistor PNP 9012 kaki emitor dihubungkan dengan Vcc dan kaki basis dihubungkan dengan P1.0 (salah satu dari port mikrokontroler). Jika Vcc = 5 V dan P1.0 = 0.45 V pada saat logika rendah (dianggap di-ground-kan), maka transistor dalam keadaan jenuh (saturasi) atau VEC

= 0. Jadi, jika transistor dalam keadaan jenuh (saturasi) berarti transistor ON.

Sebaliknya jika pada kaki basis mendapat tegangan dari P1.0 pada saat logika tinggi sebesar 5 volt, maka transistor dalam keadaan cut off. Jika transistor dalam keadaan cut off, maka transistor OFF. Untuk lebih jelasnya dapat dilihat pada gambar 3.5.

Gambar 3.5 Rangkaian Cuplikan dari Rangkaian Indikator Transistor sebagai Saklar

ON saat Saturasi ; OFF saat Cut Off

Jadi resistor (RB) menggunakan 300B Ω

C

Jadi resistor (RC) menggunakan 300Ω

LED

Gambar 3.6 Rangkaian LED Indikator

Jika pada gambar 3.5 adalah gambar cuplikan dari rangkaian indikator, maka pada gambar 3.6 adalah gambar rangakain indikator utuh dengan 10 transistor PNP 9012.

Perancangan rangkaian indikator berfungsi untuk mengatur jenis-jenis aliran LED agar perpindahan LED dari atas ke bawah dapat terlihat secara teratur, walaupun aliran LED diatur pada saat program dijalankan oleh mikrokontroler.

Rangkaian indikator tersebut menggunakan 3 buah port yaitu port 1 (P1.0…..P1.5), port 2 (P2.0…..P2.5) dan port 3 (P3.0…..P3.5), dapat dilihat pada gambar 3.6.

3.2.4 Rangkaian Tampilan Seven Segment

Gambar 3.7 Rangkaian Penampil Waktu pada Seven Segment

Gambar 3.7 merupakan gambar rangkaian seven segment untuk menampilkan tampilan waktu dalam satuan menit. Berdasarkan data sheet dari seven segment, dapat diketahui bahwa arus yang dapat melewati seven segment atau IF(7’S) = 10mA dengan tegangan VF(7’S) = 1.8 V. Tegangan keluaran dari decoder pada saat logika rendah sebesar VOL = 0.25 V, maka resistansi yang harus digunakan agar tidak

melebihi batas maksimal 2.2 V (data sheet seven segment) dapat diperoleh dengan

Karena resistor 295Ω tidak ada di pasaran maka dalam perancangan, nilai resistor yang digunakan menjadi 300Ω. Jika resistor yang digunakan sebesar 300Ω kemungkinan besar komponen akan terhindar dari arus lebih.

Dalam perancangan, seven segment berfungsi untuk menampilkan waktu dalam hitungan menit, maka digunakan transistor yang berfungsi sebagai saklar untuk proses scanning kedua seven segment. Karena kedua seven segment pada gambar 3.7 tidak dapat menyala bersamaan, maka digunakan teknik scanning pada kedua seven segment. Karena proses scanning pada seven segment sangat cepat, maka seven segment kelihatan menyala bersamaan tetapi sebetulnya menyala bergantian.

Transistor yang digunakan adalah transistor PNP karena mikrokontroler akan mengeluarkan logika rendah sebagai tanda aktif seven segment. Transistor seri 9012 dipilih karena memiliki β sebesar 78 (minimum). Tegangan keluaran mikrokontroler pada saat logika rendah adalah VOL(mikro) sebesar 0.45 V. Perhitungan untuk menentukan nilai resistor pada kaki basis adalah sebagai berikut:

IC = 8.10mA

Karena resistor dengan nilai 3756.1Ω tidak terdapat di pasaran maka digunakan resistor dengan nilai 3900Ω.

3.3 Perancangan Software

Untuk menjalankan aliran LED dari atas ke bawah dengan perubahan waktu yang telah ditentukan (range waktu perpindahan LED) yaitu dengan menekan tombol start. Saat tombol start ditekan, maka mikrokontroler akan aktif dan melakukan inisialisasi, yaitu mengisi data-data dalam mikrokontroler dari data-data awal program.

Perubahan waktu ditentukan dengan menekan tombol up atau down dan mikrokontroler akan mengaktifkan seven segment untuk tampilan waktu awal “3.0”.

Kemudian mikrokontroler akan masuk ke subrutin cek tombol, dalam subrutin apabila tombol up atau down ditekan maka program akan masuk ke program utama untuk menjalankan program utama. Pada rangkaian jam pasir digital terdapat 5 baris LED, jadi setiap ada masukan perubahan waktu perpindahan LED dari tombol up atau down, maka setiap masukan tersebut akan dibagi 5. Maksimal masukan untuk perubahan waktu perpindahan LED adalah 60 menit dan minimal masukan perubahan waktu perpindahan LED adalah 0 menit. Waktu default pada jam pasir digital di-set pada program, yaitu sebesar 30 menit. Jika masukan perubahan waktu perpindahan LED 15 menit, dapat diperoleh:

5 15menit T =

= 3 menit

Jadi ketika masukan perubahan waktu perpindahan LED 15 menit, maka setiap baris pada indikator mempunyai waktu perpindahan 3 menit.

Prinsip kerja dari jam pasir ini adalah jika tombol start ditekan, maka jam pasir akan bekerja. LED pada bagian atas jam pasir akan menyala sesuai waktu default pada program yaitu 30 menit dan waktu setting-an tersebut akan ditampilkan pada seven segment. LED tersebut akan mati tiap baris dari atas ke bawah, dan berpindah ke LED bagian bawah jam pasir. Pada LED bagian bawah jam pasir akan menyala tiap baris dari bawah ke atas sampai penuh. Jika tombol Up atau Down ditekan, maka waktu perubahan untuk setting waktu akan bertambah 1 menit untuk sekali penekanan tombol Up dan akan berkurang 1 menit untuk sekali penekanan

tombol Down. Penambahan dan pengurangan waktu perubahan waktu tersebut nantinya juga akan ditampilkan pada seven segment. Tombol Reset berfungsi untuk mengembalikan setting-an awal. Proses penyalaan LED dapat dilihat pada gambar 3.8.

Gambar 3.8 Gambar Pergerakan LED

3.3.1 Diagram Alir Program Menyalakan Led (Flowchart)

Diagram alir program untuk menyalakan led pada jam pasir digital ditunjukan pada gambar 3.9

Gambar 3.9 Flowchart Program Utama

Pada diagram alir (flowchart) pertama menjalankan perintah inisialisasi timer 1 dan mode 1, dengan waktu default pada program sebesar 30 menit. Lalu menyalakan semua led dan menampilkan waktu Tdefault pada seven segment, kemudian menyimpan waktu Tdefault yang ditampilkan pada alamat yang sudah ditentukan. Langkah selanjutnya proses pengecekkan tombol up, down, dan start.

Jika ada perubahan pada pengaturan waktu, maka perubahan tersebut disimpan lagi pada alamat yang sudah ditentukan.

3.3.2 Diagram Alir (Flowchart) Panggil Proses Tombol

Gambar 3. 10 menunjukan diagram alir (flowchart) proses panggil tombol untuk mengatur perubahan waktu Tdefault.

Gambar 3.10 Flowchart Panggil Proses Tombol

Diagram alir panggil proses tombol dapat dilihat pada gambar 3. 19. Pertama pengeceken apakah tombol up ditekan, jika ya maka waktu Tdefault ditambah 1 (satu).

Perubahan waktu tersebut disimpan pada alamat yang sudah ditentukan. Waktu yang sudah berubah akan ditampilkan pada seven segment. Jika tombol up tidak ditekan, maka akan mengecek apakah tombol down ditekan. Jika tombol down ditekan, maka waktu Tdefault dikurangi 1 (satu). Lalu perubahan waktu tersebtu disimpan pada alamat yang sudah ditentukan dan ditampilkan pada seven segment. Jika tombol down tidak ditekan, maka akan mengecek apakah tombol start ditekan. Jika ya maka, aliran led dijalankan sesuai waktu T yang ditampilkan pada seven segment. Jika waktu aliran led sudah selesai, maka akan kembali ke pengaturan awal.

3.3.3 Diagram Alir (flowchart) Penampil Waktu pada Seven Segment.

Diagram alir (flowchart) pada gambar 3.11 pertama menampilkan angka 30 pada seven segment dan simpan pada alamat yang sudah ditentukan. Lalu pengecekan apakah ada perubahan waktu. Jika tidak, maka tetap menampilkan angka 30. Jika ada perubahan, maka perubahan tersebut akan dikurangi 10 dan simpan hasil pengurangan pada alamat yang sudah ditentukan.. Lalu melakukan pengecekan apakah ada sisa dari pengurangan tersebut. Jika ya, maka sisa hasil pengurangan ditambah 10 dan simpan pada alamat yang sudah ditentukan. Jika tidak, maka tampilkan hasil pengurangan pada seven segment pertama dan tampilkan angka 0 pada seven segment kedua. Pada saat menampilkan waktu, antara seven segment pertama dan kedua diberi tunda. Sehingga seven segment pertama dan kedua menyala secara bergantian (scanning). Untuk lebih jelasnya lihat gambar 3.11.

Gambar 3.11 Flowchart Penampil Waktu pada Seven Segment

3.3.4 Diagram Alir (flowchart) Pemberian Tunda Pada Aliran Led

Pada gambar 3.12 menunjukan diagram alir (flowchart) pemberian tunda pada aliran led

Gambar 3.12 Flowchart Pemberian Tunda Waktu pada Aliran Led

Pada diagram alir pemberian tunda pada aliran led pertama menyimpan T pada alamat yang sudah ditentukan. Lalu bagi T dengan angka 5, karena aliran led ada 5 baris. Simpan hasil pembagian pada alamat yang sudah ditentukan. Lalu kalikan sisa hasil pembagian dengan angka 12, karena 0.2 dari 60 adalah 12. Lalu pengecekan apakah hasil pembagian adalah 0. Jika tidak, maka isi tunda dengan 1 detik. Setelah itu ulangi tunda sampai 60 kali (proses tunda1 = 1menit). Lalu ulangi tunda1 sampai sebesar hasil pembagian. Jika hasil pembagian adalah 0, maka akan melakukan pengecekan apakah hasil perkalian dari sisa pembagian adalah 0. jika tidak, isi tunda3 dengan 1 detik. Lalu ulangi tunda3 sampai sebesar hasil perkalian dari sisa hasil pembagian. Jika hasil perkalian dari sisa pembagian adalah 0 maka lompat ke selesai. Untuk lebih jelasnya lihat gambar 3.12.

4.1. Prinsip Kerja.

Prinsip kerja dari jam pasir digital adalah jika sakelar on, maka semua led akan menyala dan seven segment menampilkan angka 30. Angka 30 berarti, led baris 6, 7, 8, 9, 10 akan menyala semua dalam waktu 30 menit. Led akan menyala jika pada mikrokontroler port 1 bit 1 sampai bit 5 berlogika rendah dan akan mati jika port 2 bit 1 sampai bit 5 berlogika tinggi. Jam pasir digital dilengkapi dengan 4 tombol, yaitu tombol start, up down, dan reset. Dapat dilihat pada gambar 4.1.

Gambar 4.1 Layout Jam Pasir Digital

48

Tombol start berfungsi sebagai tombol untuk menjalankan perpindahan aliran led. Tombol up berfungsi untuk menambah tunda waktu perpindahan aliran led.

Setiap ditekan 1 kali, maka tunda waktu bertambah 1 menit. Tombol down berfungsi untuk mengurangi tunda waktu perpindahan aliran led. Setiap ditekan 1 kali, maka tunda waktu berkurang 1 menit. Tombol reset berfungsi untuk mengatur ulang, jika pengaturan waktu salah. Jika perpindahan led sudah berjalan, maka tombol up dan down tidak berfungsi lagi.

4.2 Pengamatan Perpindahan Aliran Led

Pengamatan aliran led berfungsi untuk mengetahui apakah aliran dapat mengalir dengan benar. Tunda waktu perpindahan aliran led dapat diatur dari rentang waktu 00 menit sampai 60 menit. Jika jam pasir digital diatur dengan tunda waktu 00 menit, maka bila tombol start ditekan led bagian bawah (baris 6, 7, 8, 9, 10) langsung menyala semua.

Gambar 4.2 Perpindahan Aliran Led dengan Tunda Waktu 3 menit.

Jika tunda waktu aliran led diatur dari 1 menit sampai 60 menit, maka baris led 6, 7, 8, 9, 10 langsung mati. Tetapi akan menyala kembali setelah tunda waktu selesai berjalan.

Jika perpindahan aliran led sudah selesai sesuai dengan tunda yang sudah ditentukan, maka akan kembali pada pengaturan awal yaitu led menyala semua dan seven segment menampilkan angka 30. untuk lebih jelasnya dapat dilihat pada gambar 4.2.

4.3 Pengamatan Tunda Waktu

Tunda waktu berfungsi untuk menentukan tunda pada perpindahan led. Data tunda waktu diperoleh berdasarkan perhitungan waktu pada stopwatch. Tabel 4.1 adalah data pengamatan tunda waktu dari 1 menit sampai 60 menit dan tabel 4.2 adalah data tunda waktu tiap baris led.

Tabel 4.1 Data Pengamatan Tunda Waktu

Data Seven

Lanjutan tabel 4.1

Perhitungan untuk error pada tabel 4.1 sebagai berikut:

%

Contoh untuk error pada tunda waktu 1 menit:

Data seven segment = 1 menit = 60 detik

Tabel 4.2 Data Pengamatan Tunda waktu Tiap Baris Led

Tunda Waktu

Lanjutan tabel 4.2

Lanjutan tabel 4.2

Perhitungan untuk error pada tabel 4.2 dihitung tiap baris. perhitungannya sebagai berikut:

Contoh untuk error tunda waktu1 menit baris led 1:

Tunda waktu 1 menit (60 detik), berarti tunda waktu untuk tiap barisnya adalah 5 12

Dari data tabel 4.1 dan 4.2 terdapat error yang masih dalam batas toleransi error yaitu 5 % [4], kecuali pada baris 1 dan 3 tunda waktu 1 menit. Error tersebut

dikarenakan tunda waktu hanya 1 menit atau 12 detik tiap barisnya. Sehingga presentase error-nya menjadi besar. Tetapi, error untuk keseluruhan baris adalah 3.33

% sehingga masih dalam toleransi error.

4.4 Pengamatan Tiap Rangkaian

Pengamatan data diambil berdasarkan pengukuran setiap blok rangkaian.

Rangkaian tersebut antara lain adalah

4.4.1 Rangkaian tombol.

Berdasarkan data pada tabel 4.3, maka tombol akan berfungsi jika mikrokontroler berlogika aktif rendah. Berlogika rendah, karena jika tombol ditekan tegangan pada tombol ’0’ Volt, jika tidak ditekan tegangannya 3.35 Volt.

Jika dibandingkan dengan dasar teori, jika salah satu port pada mikrokontroler dihubungkan dengan ground, maka akan berlogika ’0’. Karena setiap tombol dihubungkan dengan ground, maka masing-masing tombol dapat digunakan sebagai masukan.

Tabel 4.3 Data Pengamatan Rangakain Tombol Tombol Tidak ditekan Ditekan

Start 3.35 Volt 0 Volt Up 3.35 Volt 0 Volt Down 3.35 Volt 0 Volt Reset 3.30 Volt 0 Volt 4.4.2 Rangkaian Led

Rangkaian led berfungsi untuk menyalakan dan memadamkan led dengan menggunakan transistor sebagai sakelar.

Tabel 4.4 Pengamatan tegangan pada transistor

Berdasarkan tabel 4.4 led akan menyala, jika transistor dalam keadaan saturasi dan led akan mati, jika transistor cut off. Tegangan pada transistor saat saturasi dan cut off dapat dilihat pada tabel 4.4.

Arus yang masuk ke mikrokontroler dapat diketahui dengan berdasarkan data pada tabel 4.4. Jika VRB pengamatan diketahui, maka arus yang masuk ke mikrokontroler adalah sebagai berikut :

IB = B diserap mikrokontroler, yaitu sebesar 1.6 mA. Nilai IB yang tidak sesuai dengan batas maksimal tersebut disebabkan karena R

B

RB = 2362.5 Ω B RB = 2.4 kΩ B

Jadi nilai RB yang seharusnya digunakan sebesar 2.4 kΩ. Dapat disimpulkan bahwa R

B

BB sebesar 300 Ω tidak dianjurkan dalam pembuatan jam pasir digital ini, karena dapat merusak mikrokontroler. Tetapi dengan menggunakan RB sama dengan 300 Ω alat masih bisa bekerja seperti yang diharapkan. Untuk lebih amannya disaran memakai R

B

B sama dengan 2.4 kΩ

Adanya error tegangan pada transistor tidak mempengaruhi kinerja dari alat ini. Karena error masih dalam rentang toleransi error [4].

Perhitungan error didapat dari :

% VRBperancangan = 3.85 Volt

%

4.4.3 Rangkaian Seven Segment

Rangkaian seven segment berfungsi untuk menampilkan data tunda waktu pada perpindahan aliran led. Seven segment akan menyala, jika pada IC BCD diberi masukan dari mikrokontroler dan VCC sebesar 5 Volt. Dalam penelitian ini digunakan 2 buah seven segment. Maka cara penyalaannya dilakukan dengan cara scanning.

IC BCD akan bekerja, jika mendapat tegangan sebesar 5 Volt. Data masukan dan keluaran IC BCD dapat dilihat pada tabel kebenaran datasheet.

4.5 Pembahasan Program

Setiap subroutine akan dibahas sendiri-sendiri, sehingga dapat mempermudah dalam menganalisa. Subroutine tersebut antara lain :

4.5.1 Subroutine Pengaturan Tunda Waktu.

Subroutine Pengaturan tunda waktu berfungsi untuk mengatur tunda waktu setiap baris perpindahan aliran led. Tiap masukan tunda waktu akan dibagi ’5’.

Dibagi ’5’ karena ada 5 perpindahan aliran led. Jika terdapat sisa pembagian, maka akan dikalikan ’12’. Perkalian ini dilakukan karena 0.2 dari 60 adalah 12. Untuk menjalankan program tersebut, berikut penggalan program tersebut:

dataPROSES equ 4bh ;simpan dataPROSES ke alamat 4bh dataMENIT equ 10h ;simpan dataMENIT ke alamat 10h dataDETIK1 equ 1ah ;simpan dataDETIK1 ke alamat 1ah dataDETIK2 equ 1bh ;simpan dataDETIK2 ke alamat 1bh

;

mov A,dataPROSES ;salin isi lokasi memori dataPROSES ke A mov B,#05h ;Isi register B dengan nilai 05h

div AB ;data pada seven segment dibagi 5 mov dataMENIT,A ;Salin A ke lokasi memori dataMENIT

mov dataDETIK1,B ;Salin register B ke lokasi memori dataDETIK1 mov B,#12 ;Isi register B dengan nilai 12

mov A,dataDETIK1 ;salin lokasi memori dataDETIK1 ke A

mul AB ;sisa pembagian dari data 7segment dikali 12 mov dataDETIK2,A ;Salin A ke lokasi memori dataDETIK1

4.5.2 Penyalaan Led

Led akan menyala, jika port 1 dan port 2 pada mikrokontroler berlogika rendah. Tabel 4.5 adalah data masukan untuk port 1 dan port 2

Tabel 4.5. Data Masukan untuk Port 1 dan Port 2.

Port 1 Port 2

Data

Heksa Biner Heksa Biner

Barid Led

Tabel 4.6. Hubungan antara Data Biner dengan Led

Port 1 Port 2

Penyalaan led dapat dilakukan dengan menentukan data pada port 1 dan 2, dapat dilihat pada tabel 4.5. Data dimulai dari bit ke ‘1’ sampai bit ke ‘5’. Data tersebut digunakan untuk menentukan penyalaan led tiap baris led pada port 1. Misalnya jika port 1 dan port 2 diberi masukan data ke ‘1’, maka baris led yang menyala adalah baris 1, 2, 3, 4, 5 dan baris led yang mati adalah 6, 7, 8, 9, 10. Setiap data akan diberi tunda waktu, agar dapat diatur waktu perpindahannya. Tabel 4.6 adalah hubungan

antara data biner dengan baris led. Baris led hanya menggunakan bit ke ‘0’ sampai bit ke ‘4’, jadi bit ke ‘5’ sampai bit ‘7’ tidak digunakan dan selalu berlogika ’1’.

Dalam pengujian listing program penyalaan led, led dapat menyala sesuai dengan listing program. Pertama-tama semua led menyala, selanjutnya led akan bergeser dari atas ke bawah. Setiap pergeseran led dapat diatur tunda waktunya.

Untuk lebih jelasnya proses penyalaan led dapat dilihat pada penggalan program di bawah:

led1 equ p1 ;Inisialisasi port 1 led2 equ p2 ;Inisialisasi port 2

mov led1,#0e0h ;nyalakan led baris 1,2,3,4,5 mov led2,#0e0h ;nyalakan led baris 6,7,8,9,10 mulai:

mov led1,#0e0h ;nyalakan led baris 1, 2, 3, 4, 5 mov led2,#0ffh ;padamkan led baris 6, 7, 8, 9,10 acall tunda4 ;beri tunda waktu

mov led1,#0e1h ;padamkan led baris 1 mov led2,#0feh ;nyalakan led baris 10 acall tunda4 ;beri tunda waktu

mov led1,#0e3h ;padamkan led baris 1, 2 mov led2,#0fch ;nyalakan led baris 9, 10 acall tunda4 ;beri tunda waktu

mov led1,#0e7h ;padamkan led baris 1, 2, 3 mov led2,#0f8h ;nyalakan led baris 8, 9, 10 acall tunda4 ;beri tunda waktu

mov led1,#0efh ;padamkan led baris 1, 2, 3, 4 mov led2,#0f0h ;nyalakan led baris 7, 8, 9, 10 acall tunda4 ;beri tunda waktu

mov led1,#0ffh ;padamkan led baris 1, 2, 3, 4, 5 mov led2,#0e0h ;nyalakan led baris 6, 7, 8, 9, 10 acall tunda3 ;beri tunda waktu

sjmp awal ;kembali ke settingan awal

4.5.3 Subroutine Cek Tombol

Subroutine cek tombol berfungsi untuk menjalankan jam pasir digital dan mengatur tunda waktu perpindahan led. Jika tombol start ditekan, maka jam pasir bekerja. Jika tombol up ditekan, maka tunda waktu perpindahan aliran led bertambah

’1’ menit. Jika tombol down ditekan, maka tunda waktu perpindahan aliran led berkurang ’1’ menit. Karena semua port yang terhubung dengan tombol dihubungkan dengan ground, maka setiap penekanan tombol berarti berlogika aktif rendah. Jika tombol start, maka tombol up dan tombol down tidak akan berfungsi lagi. Agar masing-masing tombol berfungsi, berikut penggalan program tersebut:

up equ p3.5 ;Inisialisasi tombol up (p3.5) down equ p3.6 ;Inisialisasi tombol down (p3.6) start equ p3.7 ;Inisialisasi tombol start (p3.7) data7s equ 30h ;Simpan data7s ke alamat 30h

dataPB equ 4ah ;Simpan dataPB ke alamat 4ah dataPROSES equ 4bh ;Simpan dataPROSES ke alamat 4bh cektombol:

mov A,dataPB ;salin lokasi memori dataPB ke A subb A,#60 ;rentang tunda waktu

jc tambah ;

jmp selesai ;

tambah:

inc dataPB ;tunda waktu ditambah 1

jmp selesai ;

turun:

jb down,jalankan ;apakah tombol down ditekan ?

jnb down,$ ;jika ditekan, tunggu sampai dilepas!

acall tunda2 ;beri tunda

mov A,dataPB ;salin lokasi memori dataPB ke A cjne A,#00,kurang ;bandingkan dengan batas bawah

jmp selesai ;

mov dataPROSES,dataPB ;salin dataPB ke lokasi dataPROSES ret ;kembali ke program utama

;

selesai:

mov data7s,dataPB ;salin dataPB ke lokasi memori data7s acall tampilan ;panggil ‘tampilan’

sjmp cektombol ;lompat ke ‘cektombol’

4.5.4 Subroutine Tampilan pada seven segment.

Fungsi dari subroutine tampilan seven segment adalah untuk menampilkan tunda waktu. Setiap perubahan tunda waktu akan ditampilkan pada seven segment.

Langkah pertama dalam menampilkan tunda waktu pada seven segment adalah menentukan nilai tiap seven segment. Setelah itu seven segment dinyalakan secara bergantian mulai dari angka satuan, kemudian angka puluhan. Perbandingan antara data tunda waktu dengan seven segment dapat dilihat pada tabel 4.7.

Tabel 4.7 Data Perbandingan Tunda waktu dengan Seven Segment Data Tunda waktu Data Tunda waktu

Desimal Heksa

Seven

segment Desimal Heksa

Seven

Berikut penggalan program scanning seven segment

BCD equ p0 ;inisialisasi BCD (port 0) scan7s1 equ p1.6 ;inisialisasi scan7s1 (p1.6) scan7s2 equ p1.5 ;inisialisasi scan7s2 (p1.5) 7s1 equ 31h ;simpan 7s1 pada alamat 31h 7s2 equ 32h ;simpan 7s2 pada alamat 32h

pengurang equ 40h ;simpan pengurang pada alamat 40h tampilan:

mov 7s1,#00h ;salin nilai 00 pada lokasi memori 7s1 mov A,data7s ;salin data7s ke akumulator

lagi10:

clr C ;buat C menjadi 0

subb A,pengurang ;nilai 7segment pertama dikurangi 10 jc angka1 ;lompat ke ‘angka1’, jika ada carry inc 7s1 ;nilai pada 7segment ditambah 1 sjmp lagi10 ;

angka1:

add A,pengurang ;nilai 7segment kedua ditambah 10

mov 7s2,A ;

mov BCD,7s2 ;masukan data 7segment kedua ke IC BCD clr scan7s2 ;padamkan 7segment kedua

acall tunda1 ;beri tunda

acall tunda1 ;beri tunda

Dokumen terkait