Senin, 17 Maret 2008

led_scrolling_text_display.jpg

This is cool project to pay attention to. It can be used for PC modding or elsewhere where scrolling text effects are needed. Display is built of 50×7 LEDs that is controlled by AVR AT90S2313 microcontroller (may be substituted by ATtiny2313).

Text can be sent from computer via RS232 port or displayed from external EEPROM 2k memory where 768 characters can be stored. Fonts set of 256 different characters can also be programmed and mast be written to EEPROM before sending text to display. Hardware project with 3mm LEDs can be downloaded here. And latest firmware here. There might be minor changes are needed to adapt to newer WinAVR and ATtiny2313 microcontroller. [via]

Scrolling text effect on a LED matrix display - [Link]
Kecerdasan buatan

Kecerdasan Buatan (bahasa Inggris: Artificial Intelligence atau AI) didefinisikan sebagai kecerdasan yang ditunjukkan oleh suatu entitas buatan. Sistem seperti ini umumnya dianggap komputer. Kecerdasan diciptakan dan dimasukkan ke dalam suatu mesin (komputer) agar dapat melakukan pekerjaan seperti yang dapat dilakukan manusia. Beberapa macam bidang yang menggunakan kecerdasan buatan antara lain sistem pakar, permainan komputer (games), logika fuzzy, jaringan syaraf tiruan dan robotika.

Banyak hal yang kelihatannya sulit untuk kecerdasan manusia, tetapi untuk Informatika relative tidak bermasalah. Seperti contoh: mentransformasikan persamaan, menyelesaikan persamaan integral, membuat permainan catur atau Backgammon. Di sisi lain, hal yang bagi manusia kelihatannya menuntut sedikit kecerdasan, sampai sekarang masih sulit untuk direalisasikan dalam Informatika. Seperti contoh: Pengenalan Obyek/Muka, bermain Sepakbola.

Walaupun AI memiliki konotasi fiksi ilmiah yang kuat, AI membentuk cabang yang sangat penting pada ilmu komputer, berhubungan dengan perilaku, pembelajaran dan adaptasi yang cerdas dalam sebuah mesin. Penelitian dalam AI menyangkut pembuatan mesin untuk mengotomatisasikan tugas-tugas yang membutuhkan perilaku cerdas. Termasuk contohnya adalah pengendalian, perencanaan dan penjadwalan, kemampuan untuk menjawab diagnosa dan pertanyaan pelanggan, serta pengenalan tulisan tangan, suara dan wajah. Hal-hal seperti itu telah menjadi disiplin ilmu tersendiri, yang memusatkan perhatian pada penyediaan solusi masalah kehidupan yang nyata. Sistem AI sekarang ini sering digunakan dalam bidang ekonomi, obat-obatan, teknik dan militer, seperti yang telah dibangun dalam beberapa aplikasi perangkat lunak komputer rumah dan video game.

'Kecerdasan buatan' ini bukan hanya ingin mengerti apa itu sistem kecerdasan, tapi juga mengkonstruksinya.

Tidak ada definisi yang memuaskan untuk 'kecerdasan':

1. kecerdasan: kemampuan untuk memperoleh pengetahuan dan menggunakannya
2. atau kecerdasan yaitu apa yang diukur oleh sebuah 'Test Kecerdasan'

Faham Pemikiran

Secara garis besar, AI terbagi ke dalam dua faham pemikiran yaitu AI Konvensional dan Kecerdasan Komputasional (CI, Computational Intelligence). AI konvensional kebanyakan melibatkan metoda-metoda yang sekarang diklasifiksikan sebagai pembelajaran mesin, yang ditandai dengan formalisme dan analisis statistik. Dikenal juga sebagai AI simbolis, AI logis, AI murni dan AI cara lama (GOFAI, Good Old Fashioned Artificial Intelligence). Metoda-metodanya meliputi:

1. Sistem pakar: menerapkan kapabilitas pertimbangan untuk mencapai kesimpulan. Sebuah sistem pakar dapat memproses sejumlah besar informasi yang diketahui dan menyediakan kesimpulan-kesimpulan berdasarkan pada informasi-informasi tersebut.
2. Petimbangan berdasar kasus
3. Jaringan Bayesian
4. AI berdasar tingkah laku: metoda modular pada pembentukan sistem AI secara manual

Kecerdasan komputasional melibatkan pengembangan atau pembelajaran iteratif (misalnya penalaan parameter seperti dalam sistem koneksionis. Pembelajaran ini berdasarkan pada data empiris dan diasosiasikan dengan AI non-simbolis, AI yang tak teratur dan perhitungan lunak. Metoda-metoda pokoknya meliputi:

1. Jaringan Syaraf: sistem dengan kemampuan pengenalan pola yang sangat kuat
2. Sistem Fuzzy: teknik-teknik untuk pertimbangan di bawah ketidakpastian, telah digunakan secara meluas dalam industri modern dan sistem kendali produk konsumen.
3. Komputasi Evolusioner: menerapkan konsep-konsep yang terinspirasi secara biologis seperti populasi, mutasi dan “survival of the fittest” untuk menghasilkan pemecahan masalah yang lebih baik.

Metoda-metoda ini terutama dibagi menjadi algoritma evolusioner (misalnya algoritma genetik) dan kecerdasan berkelompok (misalnya algoritma semut)

Dengan sistem cerdas hibrid, percobaan-percobaan dibuat untuk menggabungkan kedua kelompok ini. Aturan inferensi pakar dapat dibangkitkan melalui jaringan syaraf atau aturan produksi dari pembelajaran statistik seperti dalam ACT-R. Sebuah pendekatan baru yang menjanjikan disebutkan bahwa penguatan kecerdasan mencoba untuk mencapai kecerdasan buatan dalam proses pengembangan evolusioner sebagai efek samping dari penguatan kecerdasan manusia melalui teknologi.
Sejarah

Pada awal abad 17, René Descartes mengemukakan bahwa tubuh hewan bukanlah apa-apa melainkan hanya mesin-mesin yang rumit. Blaise Pascal menciptakan mesin penghitung digital mekanis pertama pada 1642. Pada 19, Charles Babbage dan Ada Lovelace bekerja pada mesin penghitung mekanis yang dapat diprogram.

Bertrand Russell dan Alfred North Whitehead menerbitkan Principia Mathematica, yang merombak logika formal. Warren McCulloch dan Walter Pitts menerbitkan "Kalkulus Logis Gagasan yang tetap ada dalam Aktivitas " pada 1943 yang meletakkan pondasi untuk jaringan syaraf.

Tahun 1950-an adalah periode usaha aktif dalam AI. Program AI pertama yang bekerja ditulis pada 1951 untuk menjalankan mesin Ferranti Mark I di University of Manchester (UK): sebuah program permainan naskah yang ditulis oleh Christopher Strachey dan program permainan catur yang ditulis oleh Dietrich Prinz. John McCarthy membuat istilah "kecerdasan buatan " pada konferensi pertama yang disediakan untuk pokok persoalan ini, pada 1956. Dia juga menemukan bahasa pemrograman Lisp. Alan Turing memperkenalkan "Turing test" sebagai sebuah cara untuk mengoperasionalkan test perilaku cerdas. Joseph Weizenbaum membangun ELIZA, sebuah chatterbot yang menerapkan psikoterapi Rogerian.

Selama tahun 1960-an dan 1970-an, Joel Moses mendemonstrasikan kekuatan pertimbangan simbolis untuk mengintegrasikan masalah di dalam program Macsyma, program berbasis pengetahuan yang sukses pertama kali dalam bidang matematika. Marvin Minsky dan Seymour Papert menerbitkan Perceptrons, yang mendemostrasikan batas jaringan syaraf sederhana dan Alain Colmerauer mengembangkan bahasa komputer Prolog. Ted Shortliffe mendemonstrasikan kekuatan sistem berbasis aturan untuk representasi pengetahuan dan inferensi dalam diagnosa dan terapi medis yang kadangkala disebut sebagai sistem pakar pertama. Hans Moravec mengembangkan kendaraan terkendali komputer pertama untuk mengatasi jalan berintang yang kusut secara mandiri.

Pada tahun 1980-an, jaringan syaraf digunakan secara meluas dengan algoritma perambatan balik, pertama kali diterangkan oleh Paul John Werbos pada 1974. Tahun 1990-an ditandai perolehan besar dalam berbagai bidang AI dan demonstrasi berbagai macam aplikasi. Lebih khusus Deep Blue, sebuah komputer permainan catur, mengalahkan Garry Kasparov dalam sebuah pertandingan 6 game yang terkenal pada tahun 1997. DARPA menyatakan bahwa biaya yang disimpan melalui penerapan metode AI untuk unit penjadwalan dalam Perang Teluk pertama telah mengganti seluruh investasi dalam penelitian AI sejak tahun 1950 pada pemerintah AS.

Tantangan Hebat DARPA, yang dimulai pada 2004 dan berlanjut hingga hari ini, adalah sebuah pacuan untuk hadiah $2 juta dimana kendaraan dikemudikan sendiri tanpa komunikasi dengan manusia, menggunakan GPS, komputer dan susunan sensor yang canggih, melintasi beberapa ratus mil daerah gurun yang menantang.
Filosofi

Perdebatan tentang AI yang kuat dengan AI yang lemah masih menjadi topik hangat diantara filosof AI. Hal ini melibatkan filsafat pemikiran dan masalah pikiran-tubuh. Roger Penrose dalam bukunya The Emperor's New Mind dan John Searle dengan eksperimen pemikiran "ruang China" berargumen bahwa kesadaran sejati tidak dapat dicapai oleh sistem logis formal, sementara Douglas Hofstadter dalam Gödel, Escher, Bach dan Daniel Dennett dalam Consciousness Explained memperlihatkan duukungannya atas fungsionalisme. Dalam pendapat banyak pendukung AI yang kuat, kesadaran buatan dianggap sebagai urat suci (holy grail) kecerdasan buatan.
Fiksi sains

Dalam fiksi sains, AI umumnya dilukiskan sebagai kekuatan masa depan yang akan mencoba menggulingkan otoritas manusia seperti dalam HAL 9000, Skynet, Colossus and The Matrix atau sebagai penyerupaan manusia untuk memberikan layanan seperti C-3PO, Data, the Bicentennial Man, the Mechas dalam A.I. atau Sonny dalam I, Robot. Sifat dominasi dunia AI yang tak dapat dielakkan, kadang-kadang disebut "the Singularity", juga dibantah oleh beberapa penulis sains seperti Isaac Asimov, Vernor Vinge dan Kevin Warwick. Dalam pekerjaan seperti manga Ghost in the Shell-nya orang Jepang, keberadaan mesin cerdas mempersoalkan definisi hidup sebagai organisme lebih dari sekedar kategori entitas mandiri yang lebih luas, membangun konsep kecerdasan sistemik yang bergagasan. Lihat daftar komputer fiksional(list of fictional computers) dan daftar robot dan android fiksional (list of fictional robots and androids).

Seri televisi BBC Blake's 7 menonjolkan sejumlah komputer cerdas, termasuk Zen (Blake's 7), kompuer kontrol pesawat bintang Liberator (Blake's 7); Orac, superkomputer lanjut tingkat tinggi dalam kotak perspex portabel yang mempunyai kemampuan memikirkan dan bahkan memprediksikan masa depan; dan Slave, komputer pada pesawat bintang Scorpio.

Logika Fuzzy adalah peningkatan dari logika Boolean yang berhadapan dengan konsep kebenaran sebagian. Di mana logika klasik menyatakan bahwa segala hal dapat diekspresikan dalam istilah binary (0 atau 1, hitam atau putih, ya atau tidak), logika fuzzy menggantikan kebenaran boolean dengan tingkat kebenaran.

Logika Fuzzy memungkinkan nilai keanggotaan antara 0 dan 1, tingkat keabuan dan juga hitam dan putih, dan dalam bentuk linguistik, konsep tidak pasti seperti "sedikit", "lumayan", dan "sangat". Dia berhubungan dengan set fuzzy dan teori kemungkinan. Dia diperkenalkan oleh Dr. Lotfi Zadeh dari Universitas California, Berkeley pada 1965.

Jaringan saraf tiruan (JST) (Bahasa Inggris: artificial neural network (ANN), atau juga disebut simulated neural network (SNN), atau umumnya hanya disebut neural network (NN)), adalah sekelompok jaringan saraf (neuron) buatan yang menggunakan model matematis atau komputasi untuk pemrosesan informasi berdasarkan pendekatan terhubung pada komputasi. Pada kebanyakan kasus, JST merupakan sistem adaptif yang merubah strukturnya berdasarkan informasi eksternal maupun internal yang mengalir melalui jaringan tersebut.

Istilah yang lebih praktis untuk jaringan syaraf adalah bahwa dia merupakan alat pemodelan data statistik non-linier. JST dapat digunakan untuk memodelkan hubungan yang kompleks antara input dan output untuk menemukan pola-pola data.

Dewasa ini sistem kecerdasan buatan dalam usahanya menirukan intelegensi manusia, belum mengadakan pendekatan dalam bentuk fisiknya melainkan dari sisi yang lain. Pertama-tama diadakan studi mengenai teori dasar mekanisme proses terjadinya intelegensi. Bidang ini disebut ‘Cognitive Science’. Dari teori dasar ini dibuatlah suatu model untuk disimulasikan pada komputer, dan dalam perkembangannya yang lebih lanjut dikenal berbagai sistem kecerdasan buatan yang salah satunya adalah jaringan syaraf tiruan. Dibandingkan dengan bidang ilmu yang lain maka, jaringan syaraf tiruan relatif masih baru. Sejumlah literatur menganggap bahwa konsep jaringan syaraf tiruan bermula pada makalah Waffen McCulloch dan Walter Pitts pada tahun 1943. Dalam makalah tersebut mereka mencoba untuk memformulasikan model matematis sel-sel otak. Metode yang dikembangkan berdasarkan sistem syaraf biologi ini, merupakan suatu langkah maju dalam industri komputer.

Elemen yang paling mendasar dari jaringan syaraf adalah sel syaraf. Sel-sel syaraf inilah membentuk bagian kesadaran manusia yang meliputi beberapa kemampuan umum. Pada dasarnya sel syaraf biologi menerima masukan dari sumber yang lain dan mengkombinasikannya dengan beberapa cara, melaksanakan suatu operasi yang non-linear untuk mendapatkan hasil dan kemudian mengeluarkan hasil akhir tersebut.

Dalam tubuh manusia terdapat banyak variasi tipe dasar sel syaraf, sehingga proses berpikir manusia menjadi sulit untuk direplikasi secara elektrik. Sekalipun demikian, semua sel syaraf alami mempunyai empat komponen dasar yang sama. Keempat komponen dasar ini diketahui berdasarkan nama biologinya yaitu, dendrites, soma, axon, dan synapses. Dendrites merupakan suatu perluasan dari soma yang menyerupai rambut dan bertindak sebagai saluran masukan. Saluran masukan ini menerima masukan dari sel syaraf lainnya melalui sinapsis. Soma dalam hal ini kemudian memproses nilai masukan menjadi sebuah output yang kemudian dikirim ke sel syaraf lainnya melalui axon dan sinapsis.

Penelitian terbaru memberikan bukti lebih lanjut bahwa sel syaraf biologi mempunyai struktur yang lebih kompleks dan lebih canggih daripada sel syaraf buatan yang kemudian dibentuk menjadi jaringan syaraf buatan yang ada sekarang ini. Ilmu biologi menyediakan suatu pemahaman yang lebih baik tentang sel syaraf sehingga memberikan keuntungan kepada para perancang jaringan untuk dapat terus meningkatkan sistem jaringan syaraf buatan yang ada berdasarkan pada pemahaman terhadap otak biologi.

Sel syaraf-sel syaraf ini terhubung satu dengan yang lainnya melalui sinapsi. Sel syaraf dapat menerima rangsangan berupa sinyal elektrokimiawi dari sel syaraf-sel syaraf yang lain. Berdasarkan rangsangan tersebut, sel syaraf akan mengirimkan sinyal atau tidak berdasarkan kondisi tertentu. Konsep dasar semacam inilah yang ingin dicoba para ahli dalam menciptakan sel tiruan.

Suatu jaringan syaraf tiruan memproses sejumlah besar informasi secara paralel dan terdistribusi, hal ini terinspirasi oleh model kerja otak biologis. Beberapa definisi tentang jaringan syaraf tiruan adalah sebagai berikut di bawah ini.

Hecht-Nielsend (1988) mendefinisikan sistem neural buatan sebagai berikut:

"Suatu neural network (NN), adalah suatu struktur pemroses informasi yang terdistribusi dan bekerja secara paralel, yang terdiri atas elemen pemroses (yang memiliki memori lokal dan beroperasi dengan informasi lokal) yang diinterkoneksi bersama dengan alur sinyal searah yang disebut koneksi. Setiap elemen pemroses memiliki koneksi keluaran tunggal yang bercabang (fan out) ke sejumlah koneksi collateral yang diinginkan (setiap koneksi membawa sinyal yang sama dari keluaran elemen pemroses tersebut). Keluaran dari elemen pemroses tersebut dapat merupakan sebarang jenis persamaan matematis yang diinginkan. Seluruh proses yang berlangsung pada setiap elemen pemroses harus benar-benar dilakukan secara lokal, yaitu keluaran hanya bergantung pada nilai masukan pada saat itu yang diperoleh melalui koneksi dan nilai yang tersimpan dalam memori lokal".

Menurut Haykin, S. (1994), Neural Networks: A Comprehensive Foundation, NY, Macmillan, mendefinisikan jaringan syaraf sebagai berikut:

“Sebuah jaringan syaraf adalah sebuah prosesor yang terdistribusi paralel dan mempuyai kecenderungan untuk menyimpan pengetahuan yang didapatkannya dari pengalaman dan membuatnya tetap tersedia untuk digunakan. Hal ini menyerupai kerja otak dalam dua hal yaitu: 1. Pengetahuan diperoleh oleh jaringan melalui suatu proses belajar. 2. Kekuatan hubungan antar sel syaraf yang dikenal dengan bobot synaptic digunakan untuk menyimpan pengetahuan.

Dan menurut Zurada, J.M. (1992), Introduction To Artificial Neural Systems, Boston: PWS Publishing Company, mendefinisikan sebagai berikut:

“Sistem syaraf tiruan atau jaringan syaraf tiruan adalah sistem selular fisik yang dapat memperoleh, menyimpan dan menggunakan pengetahuan yang didapatkan dari pengalaman”.

Sistem pakar adalah suatu program komputer yang mengandung pengetahuan dari satu atau lebih pakar manusia mengenai suatu bidang spesifik. Jenis program ini pertama kali dikembangkan oleh periset kecerdasan buatan pada dasawarsa 1960-an dan 1970-an dan diterapkan secara komersial selama 1980-an. Bentuk umum sistem pakar adalah suatu program yang dibuat berdasarkan suatu set aturan yang menganalisis informasi (biasanya diberikan oleh pengguna suatu sistem) mengenai suatu kelas masalah spesifik serta analisis matematis dari masalah tersebut. Tergantung dari desainnya, sistem pakar juga mamupu merekomendasikan suatu rangkaian tindakan pengguna untuk dapat menerapkan koreksi. Sistem ini memanfaatkan kapabilitas penalaran untuk mencapai suatu simpulan.

Algoritma genetik adalah teknik pencarian yang di dalam ilmu komputer untuk menemukan penyelesaian perkiraan untuk optimisasi dan masalah pencarian. Algoritma genetik adalah kelas khusus dari algoritma evolusioner dengan menggunakan teknik yang terinspirasi oleh biologi evolusioner seperti warisan, mutasi, seleksi alam dan rekombinasi (atau crossover)

Algoritma Genetik pertama kali dikembangkan oleh John Holland pada tahun 1970-an di New York, Amerika Serikat. Dia beserta murid-murid dan teman kerjanya menghasilkan buku berjudul "Adaption in Natural and Artificial Systems" pada tahun 1975.

Algoritma Genetik khususnya diterapkan sebagai simulasi komputer dimana sebuah populasi representasi abstrak (disebut kromosom) dari solusi-solusi calon (disebut individual) pada sebuah masalah optimisasi akan berkembang menjadi solusi-solusi yang lebih baik. Secara tradisional, solusi-solusi dilambangkan dalam biner sebagai string '0' dan '1', walaupun dimungkinkan juga penggunaan penyandian (encoding) yang berbeda. Evolusi dimulai dari sebuah populasi individual acak yang lengkap dan terjadi dalam generasi-generasi. Dalam tiap generasi, kemampuan keseluruhan populasi dievaluasi, kemudian multiple individuals dipilih dari populasi sekarang (current) tersebut secara stochastic (berdasarkan kemampuan mereka), lalu dimodifikasi (melalui mutasi atau rekombinasi) menjadi bentuk populasi baru yang menjadi populasi sekarang (current) pada iterasi berikutnya dari algoritma.
Prosedur Algoritma Genetik

Algoritma genetik yang umum menyaratkan dua hal untuk didefinisikan: (1) representasi genetik dari penyelesaian, (2) fungsi kemampuan untuk mengevaluasinya.

Representasi baku adalah sebuah larik bit-bit. Larik jenis dan struktur lain dapat digunakan dengan cara yang sama. Hal utama yang membuat representasi genetik ini menjadi tepat adalah bahwa bagian-bagiannya mudah diatur karena ukurannya yang tetap, yang memudahkan operasi persilangan sederhana. Representasi panjang variabel juga digunakan, tetapi implementasi persilangan lebih kompleks dalam kasus ini. Representasi seperti pohon diselidiki dalam pemrograman genetik dan representasi bentuk bebas diselidiki di dalam HBGA.

Fungsi kemampuan didefinisikan di atas representasi genetik dan mengukur kualitas penyelesaian yang diwakili. Fungsi kemampuan selalu tergantung pada masalah. Sebagai contoh, jika pada ransel kita ingin memaksimalkan jumlah benda (obyek) yang dapat kita masukkan ke dalamnya pada beberapa kapasitas yang tetap. Representasi penyelesaian mungkin berbentuk larik bits, dimana tiap bit mewakili obyek yang berbeda, dan nilai bit (0 atau 1) menggambarkan apakah obyek tersebut ada di dalam ransel atau tidak. Tidak setiap representasi seperti ini valid, karena ukuran obyek dapat melebihi kapasitas ransel. Kemampuan penyelesaian adalah jumlah nilai dari semua obyek di dalam ransel jika representasi itu valid, atau jika tidak 0. Dalam beberapa masalah, susah atau bahkan tidak mungkin untuk mendefinisikan lambang kemampuan, maka pada kasus ini digunakan IGA.

Sekali kita mendefinisikan representasi genetik dan fungsi kemampuan, algoritma genetik akan memproses inisialisasi populasi penyelesaian secara acak, dan memperbaikinya melalui aplikasi pengulangan dengan aplikasi operator-operator mutasi, persilangan, dan seleksi.

Secara sederhana, algoritma umum dari algoritma genetik ini dapat dirumuskan menjadi beberapa langkah, yaitu:

1. Membentuk suatu populasi individual dengan keadaan acak
2. Mengevaluasi kecocokan setiap individual keadaan dengan hasil yang diinginkan
3. Memilih individual dengan kecocokan yang tertinggi
4. Bereproduksi, mengadakan persilangan antar individual terpilih diselingi mutasi
5. Mengulangi langkah 2 - 4 sampai ditemukan individual dengan hasil yang diinginkan


SOFTCOMPUTING

Softcomputing merupakan metode yang dapat mengolah data-data yang bersifat tidak pasti, impresisi dan dapat diimplementasikan dengan biaya yang murah (low-cost solution). Beberapa metode yang termasuk dalam kategori softcomputing misalnya fuzzy logic, artificial neural network, probabilistyc reasoning.

Softcomputing bukanlah suatu metode yang berjalan sendiri dalam menyelesaikan masalah, melainkan lebih pada kerjasama serasi antara metode-metode di atas, sehingga segi positif tiap metode dapat berkontribusi secara aktif.

DEFINISI SOFTCOMPUTING

Berbagai macam definisi softcomputing diberikan oleh para ahli. Salah satu definisinya adalah sebagaimana disampaikan oleh pencetus softcomputing, yaitu Prof. Lotfi A. Zadeh, di homepage BISC [2], sbb.

“Berbeda dengan pendekatan konvensional hardcomputing, softcomputing dapat bekerja dengan baik walaupun terdapat ketidakpastian, ketidakakuratan maupun kebenaran parsial pada data yang diolah. Hal inilah yang melatarbelakangi fenomena dimana kebanyakan metode softcomputing mengambil human-mind sebagai model.”.

Mengapakah human-mind merupakan model yang menarik bagi pengembangan softcomputing ? Kunci dari pertanyaan ini sebenarnya terletak pada struktur dan fungsi dari otak manusia. Otak manusia merupakan mesin molekuler, yang terdiri dari dua jenis sel: neuron dan glia. Dalam otak kita terdapat sekitar 1011 sel neuron, sedangkan sel glia sekitar 3 sampai 4 kali lipatnya. Sel neuron

berfungsi sebagai pemroses informasi yang diterima oleh otak. Sel neuron terhubung antara satu dengan yang lain dengan benang-benang panjang. Berat otak manusia saat lahir sekitar 400 gram, sedangkan saat dewasa sekitar 1500 gram. Pertambahan berat ini disebabkan oleh bertambahpanjangnya benang-benang tersebut, disamping pertambahan sel glia.

Pertambahan panjang ini berkaitan erat dengan proses pembelajaran yang dialami oleh manusia. Hal ini merupakan ide awal bagi pengembangan metode softcomputing: artificial neural network, yang memiliki kemampuan pembelajaran terhadap informasi yang telah diterima. Selain kemampuan pembelajaran, otak manusia juga memiliki kemampuan untuk mengambil keputusan walaupun informasi mengandung unsur ketakpastian dan kekurangtegasan, seperti “manis”, “pahit”,

“tinggi”, “rendah”, dsb. Hal ini merupakan konsep yang mendasari pengembangan metode fuzzy, yang mencerminkan cara berfikir manusia. Selain neural network dan fuzzy, masih banyak lagi jenis-jenis metode softcomputing, yang ide awalnya bersumber dari otak manusia maupun mekanisme biologi yang terdapat di alam semesta.

METODE-METODE SOFTCOMPUTING

Mengacu pada definisi yang diberikan oleh Zadeh, metode-metode dalam softcomputing dapat dikategorikan ke dalam tiga kategori besar:

· Fuzzy Logic (FL)

· Neural Network Theory (NN)

· Probabilistic Reasoning (PR)

Metode-metode ini sebenarnya bukanlah sesuatu yang baru diadakan setelah konsep softcomputing dirumuskan. Yang terjadi justru sebaliknya. Metode-metode Fuzzy Logic, Neural Network maupun Probabilistic Reasoning telah ada lebih dahulu. Fuzzy Logic telah berkembang sejak tahun 1965. Konsep-konsep dasar neural network telah digali sejak tahun 1940-an. Probabilistic Reasoning juga bukanlah hal yang baru sama sekali. Karena itu, Zadeh menyebut softcomputing sebagai reinkarnasi dari metode-metode di atas.

Lebih lanjut lagi, dalam konsep softcomputing, ketiga jenis metode ini ibarat pilar, saling mendukung dan bekerjasama dalam memecahkan suatu permasalahan. Keunggulan yang diperoleh dari kerjasama metode-metode itu lebih ditekankan daripada keunggulan individual salah satu daripadanya. Kekurangan satu metode akan ditutup dengan kelebihan metode yang lain. Keunggulan satu metode disumbangkan, sehingga segi-segi positif dari metode yang ada tersebut dapat dimanfaatkan secara optimal.

Berikut diuraikan konsep dan gambaran mengenai masing-masing pilar dalam softcomputing.

a. Fuzzy Logic (FL)

Fuzzy merupakan representasi suatu pengetahuan yang dikonstruksikan dengan if-then rules. Karakteristik dari metode ini adalah

· pemecahan masalah dilakukan dengan menjelaskan sistem bukan lewat angka-angka, melainkan secara linguistik, atau variable-variable yang mengandung ketakpastian/ketidaktegasan.

· Pemakaian if-then rules untuk menjelaskan kaitan antara satu variable dengan yang lain.

· Menjelaskan sistem memakai algoritma fuzzy

Berawal dari paper-paper Zadeh di tahun1965 mengenai fuzzy-sets, ilmu ini berkembang pesat, dan mulai menemukan aplikasinya di bidang control pada tahun 1974. Pada saat itu, Mamdani memperkenalkan aplikasi fuzzy sebagai alat kontrol steam-engine. Hal ini merupakan momentum penting, sebagai awal bagi teknologi fuzzy untuk menemukan lading aplikasi di dunia industri.

Fuzzy memiliki kelebihan-kelebihan, diantaranya

· Dapat mengekspresikan konsep yang sulit untuk dirumuskan, seperti misalnya “suhu ruangan yang nyaman”

· Pemakaian membership-function memungkinkan fuzzy untuk melakukan observasi obyektif terhadap nilai-nilai yang subyektif. Selanjutnya membership-function ini dapat dikombinasikan untuk membuat pengungkapan konsep yang lebih jelas.

· Penerapan logika dalam pengambilan keputusan

Dewasa ini, fuzzy merupakan salah satu metode memiliki aplikasi luas di bidang kontrol. Hal ini disebabkan a.l.

· kontrol memiliki potensi aplikasi yang sangat luas dan dibutuhkan di berbagai bidang

· kuantitas suatu materi dalam system kontrol sangat jelas, dan dapat diekspresikan dengan istilah-istilah yang fuzzy seperti “besar”, “banyak”

· aturan dalam kontrol mudah untukm didefinisikan memakai kata-kata. Misalnya “jika suhu dalam ruangan terlalu dingin, naikkan suhu penghangat”

· perkembangan teori fuzzy sangat pesat, sehingga batas-batasnya dapat dirumuskan dengan jelas.

b. Neural Networks (NN)

Neural Networks (Jaringan Saraf Tiruan) menurut Haykin didefinisikan sebagai berikut :

“Sebuah neural network (JST: Jaringan Saraf Tiruan) adalah prosesor yang terdistribusi paralel, terbuat dari unit-unit yang sederhana, dan memiliki kemampuan untuk menyimpan pengetahuan yang diperoleh secara eksperimental dan siap pakai untuk berbagai tujuan. Neural network ini meniru otak manusia dari sudut : 1) Pengetahuan diperoleh oleh network dari lingkungan, melalui suatu proses pembelajaran. 2) Kekuatan koneksi antar unit yang disebut synaptic weights, berfungsi untuk menyimpan pengetahuan yang telah diperoleh oleh jaringan tersebut.”

Pada tahun 1943, Mc.Culloch dan Pitts memperkenalkan model matematika yang merupakan penyederhanaan dari struktur sel saraf yang sebenarnya (lihat gambar 1).

Gambar 2 McCulloch & Pitts neuron model

Gambar 2 memperlihatkan bahwa sebuah neuron memiliki tiga komponen:

· synapse (w1 , w2 ,…,wn) T

· alat penambah (adder)

· fungsi aktifasi (f)

Korelasi antara ketiga komponen ini dirumuskan pada persamaan (1)

Signal x berupa vektor berdimensi n (x1 , x2 ,…,xn)T akan mengalami penguatan oleh synapse w (w1, w2 ,…,wn)T. Selanjutnya akumulasi dari penguatan tersebut akan mengalami transformasi oleh fungsi aktifasi f.

Fungsi f ini akan memonitor, bila akumulasi penguatan signal itu telah melebihi batas tertentu, maka sel neuron yang semula berada dalam kondisi “0”, akan mengeluarkan signal “1”. Berdasarkan nilai output tersebut (=y), sebuah neuron dapat berada dalam dua status: “0” atau “1”. Neuron disebut dalam kondisi firing bila menghasilkan output bernilai “1”.

Sebuah neural network dapat dianalisa dari dua sisi:

· bagaimana neuron-neuron tersebut dirangkaikan dalam suatu jaringan (arsitektur)

· bagaimana jaringan tersebut dilatih agar memberikan output sesuai dengan yang dikehendaki (algoritma pembelajaran).

Algoritma pembelajaran ini menentukan cara bagaimana nilai penguatan yang optimal diperoleh secara otomatis. Berdasarkan arsitekturnya, neural network dapat dikategorikan, antara lain, single-layer neural network, multilayer neural network, recurrent neural network dsb. Berbagai algoritma pembelajaran antara lain Hebb’s law, Delta rule, Backpropagation algorithm, Self Organizing Feature Map, dsb.

Berawal dari diperkenalkannya model matematika neuron oleh McCulloch & Pitts, penelitian di bidang neural network berkembang cukup pesat, dan mencapai puncak keemasan pertama pada era tahun 60, dan puncak kedua pada pertengahan tahun 80-an.

Penelitian dalam bidang ini, dapat dibagi dalam tiga kategori:

· Riset untuk meneliti proses informasi yang terjadi pada otak dan jaringan saraf. Tema ini merupakan porsi penelitian para ahli medis dan neuroscientist.

· Penelitian teoritis untuk mendalami konsep dasar proses informasi pada otak. Kategori ini memerlukan ketajaman analisa matematika untuk menggali dasar-dasar teori dari proses tersebut.

· Penelitian yang bertujuan memanfaatkan teori-teori yang telah ada untuk aplikasi. Dalam hal ini, perlu sekali memperhatikan tingkat akurasi sistem, dan menekan biaya serendah mungkin (low cost solution).

Dewasa ini, neural network telah diaplikasikan di berbagai bidang. Hal ini dikarenakan neural network memiliki kelebihan-kelebihan sbb.

· Dapat memecahkan problema non-linear yang umum dijumpai di aplikasi

· Kemampuan memberikan jawaban terhadap pattern yang belum pernah dipelajari (generalization)

· Dapat secara otomatis mempelajari data numerik yang diajarkan pada jaringan tersebut

c. Probabilistic Reasoning (PR) dan Genetic Algorithm (GA)

Reasoning berarti mengambil suatu keputusan atas suatu alasan atau sebab tertentu. Dua jenis reasoning adalah logical reasoning dan probabilistic reasoning. Salah satu kelebihan probabilistic reasoning dibandingkan logical reasoning terletak pada kemampuan untuk mengambil keputusan yang rasional, walaupun informasi yang diolah kurang lengkap atau mengandung unsur ketidakpastian. Termasuk dalam kategori PR antara lain teori Chaos, Belief Networks, Genetic Algorithm. Diskusi dalam makalah ini difokuskan pada salah satu metode dalam PR, yaitu Genetic Algorithm (GA).

Gambar 3 Urutan proses pada GA

Dasar-dasar GA digali oleh John Holland pada pertengahan tahun 70-an. GA adalah metode komputasi yang meniru proses evolusi dan seleksi alam. Metode ini sering dimanfaatkan untuk mencari nilai optimal suatu fungsi/permasalahan.

Gambar 3 menunjukkan urutan tahapan dalam GA. Untuk mencari nilai optimal tersebut, pertama-tama parameter-parameter permasalahan ditransfer kedalam bentuk genetik sebuah kromosom individu yang disebut genotype. Kromosom ini terdiri dari sederetan string (misalnya angka “0” dan

“1”) yang merupakan analogi dari rantai DNA: A, T, G dan C yang sebenarnya, pada tubuh makhluk hidup. Selanjutnya suatu populasi yang terdiri dari ribuan kromosom individu ini mengalami proses seleksi, crossover (persilangan) dan mutasi yang meniru proses biologi yang terjadi di alam.

Operasi ini diulang-ulang, dari satu generasi ke generasi berikutnya. Kualitas suatu individu ditunjukkan oleh nilai fitness, yang diukur dengan suatu kriteria yang mencerminkan sejauh mana kromosom individu tersebut mendekati nilai optimal yang diinginkan. Kriteria ini menjadi alat kontrol bagi proses evolusi, agar kondisi fitness generasi yang mendatang lebih baik daripada generasi-generasi sebelumnya. Setelah melewati ratusan atau mungkin ribuan generasi, proses evolusi ini akan menghasilkan individu-individu dengan nilai fitness yang tinggi. Hal ini mencerminkan diperolehnya jawaban yang merupakan pendekatan terhadap nilai optimal yang diinginkan.

Beberapa keunggulan yang dimiliki oleh GA adalah sbb.

· GA memiliki kemampuan untuk mencari nilai optimal secara paralel, melalui proses kerjasama antara berbagai unit, yang disebut kromosom individu.

· GA tidak memerlukan perhitungan matematika yang rumit seperti differensial yang diperlukan oleh algoritma optimisasi yang lain.

Namun demikian GA memiliki juga kelemahan dan keterbatasan.

· Tidak memiliki rumusan yang pasti, bagaimana mentransfer parameter permasalahan ke dalam kode genetik. Dengan kata lain, hal ini memerlukan pengalaman dan wawasan dari desainer.

· Banyak parameter yang perlu diset secara baik agar proses evolusi dalam GA berjalan sesuai dengan yang diharapkan.

· Penentuan rumus menghitung fitness merupakan hal yang sangat penting dan mempengaruhi proses evolusi pada GA. Sayangnya tidak ada prosedur yang baku bagaimana menentukan rumus tsb.

Dalam hal ini pengalaman dari desainer memegang peranan penting. Terlepas dari kendala yang ada, GA merupakan alternatif solusi yang dikenal cukup handal dalam berbagai masalah optimisasi.

4. RISET DAN APLIKASI SOFTCOMPUTING

Dewasa ini penelitian di bidang softcomputing berkembang dengan pesat dan aplikasinya dapat ditemukan di berbagai bidang. Hal ini disebabkan softcomputing menawarkan solusi yang sangat sesuai dengan karakteristik informasi pada real-life domain yang senantiasa diikuti dengan factor impresisi, ketidakpastian, dan memerlukan kemampuan pembelajaran.

Berawal dari pemakaiannya untuk alat kontrol mesin uap, dewasa ini fuzzy memiliki wilayah aplikasi yang luas terutama dalam bidang kontrol, robotika, pattern recognition, sistem cerdas, dll. Selain paper dan artikel yang dipublikasikan oleh berbagai journal ilmiah, diskusi mengenai fuzzy ini dapat diikuti di berbagai milis, maupun newsgroup seperti comp.ai.fuzzy.

Arsip posting newsgroup ini dapat dibaca lewat http://groups.google.com/ dengan mengetikkan “comp.ai.fuzzy” pada kotak pencarian.

Neural Network memiliki aplikasi yang sangat luas di bidang pattern recognition, seperti voice recognition, character recognition maupun aplikasi-aplikasi pada bidang ekonomi, bisnis dan bioteknologi. Salah satu forum diskusi virtual (newsgroup) yang terkenal di bidang ini adalah comp.ai.neural-nets yang arsipnya dapat dilihat di google, dengan cara sama sebagaimana uraian sebelumnya. Kumpulan dari materi diskusi yang berlangsung sejak 1994 di forum ini, kemudian dirangkumkan oleh Warren Sale sebagai FAQ (Frequently Asked Questions) yang dapat dilihat arsipnya di ftp://ftp.sas.com/pub/neural/FAQ.html

Aplikasi Genetic Algorithm dapat ditemukan di problem optimisasi seperti job-scheduling, optimisasi rute mobil, penentuan kandidat gen yang memiliki potensi kedokteran dan farmasi pada bidang bioinformatika. Salah satu forum diskusi yang cukup hangat mengenai riset di bidang GA adalah comp.ai.genetic (newsgroup). Arsip diskusi pada forum ini dapat dicari dengan cara sebagaimana diuraikan di atas. Selain itu, informasi mengenai Genetic Algorithm ini dapat juga dilihat pada situs http://www.aic.nrl.navy.mil/galist/ Salah satu journal yang didedikasikan untuk mempublikasikan penelitian di bidang softcomputing di antaranya adalah “Soft Computing - Fusion of Foundations, Methodologies and Applications” terbitan Springer-Verlag Heidelberg. Journal lain

adalah Applied Soft Computing yang diterbitkan oleh Elsevier. Disamping itu, paper mengenai teori dan aplikasi softcomputing dapat dibaca pada journal-journal IEEE, IEICE, maupun proseding seminar-seminar internasional dalam bidang tsb.

Ciri khas dari softcomputing adalah penekanan pada partnership atau kerjasama yang saling menguntungkan dari berbagai metode yang ada. Tiap metode memiliki segi positif yang dapat disumbangkan secara komplementer, menutupi kekurangan dari metode yang lain. Contoh populer dari kerjasama komplementer ini adalah system neurofuzzy. Aplikasi dari kombinasi kedua metode ini dapat dimanfaatkan untuk system control pada AC, mesin cuci dan berbagai macam alat kebutuhan sehari-hari konsumen. Kombinasi lain dapat ditemukan pada system neuroGA, dimana GA dimanfaatkan untuk menentukan struktur yang optimal dari suatu neural network.

Rabu, 27 Februari 2008

Wednesday, March 7, 2007
BLUETOOTH ( BlueSoleil )

Cara penggunaan :

1. Masukkan Bluetooth pada USB
Icon Bluetooth berubah menjadi warna biru berarti sudah terbaca oleh PC dan siap digunakan

2. Aktifkan Bluetooth pada HP, usahakan dalam kondisi no hidden

3. Klik icon BlueSoleil

4. Klik gambar matahari untuk mencari koneksi dengan HP sampai muncul gambar HP.

5. Klik dua kali gambar HP

6. Masukkan password pada HP bila diminta, begitu juga pada komputer dengan password yang sama.

7. Klik Bluetooth File Transfer Service

8. File yang akan didownload tinggal copy paste

Selasa, 26 Februari 2008

Alarm clock/timer kit
Overview | Ordering | Troubleshooting | Programming

Image 1
Image 2
Image 3
Image 4
Image 5
Image 6
Image 7
Image 8
Image 9
Image 10
Image 11

A kit to build the countdown timer is available. Now featuring a fully functional alarm clock and stopwatch, these kits are not only fun to build but also provide a practical device for everyday use.

Features:

* 12/24 hour clock
* 24 hour 1 event alarm clock
* 10 minute snooze function - a full minute longer than other alarm clocks!
* Stopwatch to 99 hours 99 minutes 99 seconds
* Countdown from 99 hours 99 minutes 99 seconds
* Lap counter/clock freeze
* Counts below 1 hour display minutes, seconds and 1/100th seconds (MM:SS:hh)
* Countdown/stopwatch can run concurrently with clock and alarm
* Time/alarm/countdown is easily set through the numeric keypad
* 3 levels of display brightness
* Low power mode (display off) for extended battery operation
* 2.1mm centre positive barrel socket for external 6v power supply (not supplied)
* PCB connection for in-circuit programming (external programmer required)
* PCB conenction for additional hardware
* Doesn't do what you want it to? Then why not reprogram it?

The clock is designed to be mounted on a PJ996 6v lantern battery (not supplied).

Senin, 11 Februari 2008

Perancangan Jam Alarm

PERANCANGAN SISTEM ALARM JAM KULIAH PADA POLITEKNIK MANDIRI BINA PRESTASI MEDAN
BERBASIS
MIKROKONTROLLER AT89S51

LAPORAN TUGAS AKHIR
Disusun Sebagai Salah Satu Syarat Kelulusan Diploma III Jurusan Elektro Program Studi Elektronika Komunikasi Komputer (EKK) Politeknik Mandiri Bina Prestas
i

Oleh
Melki Guslow
Nim : 035305046

JURUSAN ELEKTRO
PROGRAM STUDI ELEKTRONIKA KOMUNIKASI KOMPUTER
POLITEKNIK MANDIRI BINA PRESTASI
MEDAN

LEMBAR PENGESAHAN I

Yang bertanda tangan dibawah ini, pembim-bing jurusan dan ketua jurusan elektronika Politeknik Mandiri Bina Prestasi Medan menyatakan bahwa laporan tugas akhir dari :
Nama : Melki Guslow
NIM : 035305546
JURUSAN : TEKNIK ELEKTRO
PROGRAM STUDI : ELEKTRONIKA KOMUNIKASI KO MPUTER
Dengan judul :
PERANCANGAN SISTEM ALARM JAM KULIAH PADA POLITEKNIK MANDIRI BINA PRESTASI MEDAN BERBASIS MIKROKONTROLLER AT89S51.

Telah diperiksa dan dinyatakan selesai, serta dapat diajukan dalam Sidang Ujian.
Disetujui Oleh :
Medan, September 2007


Morlan pardede, MT
Pembimbing jurusan

Diketahui Oleh :
Medan, Septembert 2007


Mardaus purba, ST
Ketua Jurusan Teknik Elektro

LEMBAR PENGESAHAN II


Judul : Perancangan Sistem Alarm Jam Kuliah Pada
Politeknik Mandiri Bina Prestasi Medan
Berbasis Mikrokontroller At89s51

Nama : Melki Guslow
Nim : 035305046
Progra.Studi : Elektronika Komunikasi Komputer

Disetujui Oleh :
Medan, September 2007


Pembimbing Ketua Jurusan


Morlan Pardede, MT Mardaus Purba, ST

KATA PENGANTAR

Puji dan syukur penulis panjatkan kepada Tuhan Yang Maha Esa atas segala Rahmat dan Karunia-Nya yang telah memberikan kesehatan, pengetahuan, keterampilan, pengalaman yang senantiasa diberikan kepada penulis, sehingga penulis dapat menyelesaikan laporan tugas akhir ini dengan cukup baik.
Laporan tugas akhir ini berjudul ” PERANCANGAN SISTEM ALARM JAM KULIAH POLITEKNIK MANDIRI BINA PRESTASI MEDAN BERBASIS MIKROKONTROLLER AT89S51” dimana penulisannya secara informative dan analisa agar dapat menggambarkan proses dan cara kerja rangkaian serta system pengontrolan yang merupakan suatu syarat untuk menyelesaikan program Diploma-III Jurusan Teknik Elektonika Progran Studi Elektronika Komunikasi Komputer, Politeknik Mandiri Bina Prestasi Medan.

Selama proses perancangan, pembuatan dan pengujian system hingga dalam tahap penyusunan laporan ini penulis banyak menerima bantuan, bimbingan dan pengarahan dari berbagai pihak baik material, spiritual, informasi dan masukan saran. Pada kesempatan ini penulis mengucapkan terimakasih kepada :
1. Kedua Orang Tua A.SIagian dan D. Pangaribuan atas doa restu, cinta, kasih sayang serta pengorbanannya yang penulis terima.
2. Bapak Anggiat P. Simbolon, SE, Direktur Politeknik Mandiri Bina Prestasi Medan.
3. Bapak Mardaus Purba, ST, Ketua Jurusan Teknik Elektronika Politeknik Mandiri Bina Prestasi Medan.
4. Bapak Morlan Pardede, MT, Dosen pembimbing dan penulis di Politeknik Mandiri Bina Prestasi Medan.
5. Bapak Kurnia Sitepu, Ssi, Dosen pemograman Pascal Politeknik Mandiri Bina Prestasi Medan.
6. Bapak Ahmadi, A.Md, Staff dan Dosen Politeknik Mandiri Bina Prestasi Medan.
7. Seluruh Staf Pengajar Jurusan Elektronika Komunikasi Komputer dan staf serta pegawai di lingkungan Politeknik Mandiri Bina Prestasi Medan.
8. Abang Alex Reston, S terima kasih atas kesabaran, nasehat, bantuannya dan dukungannya selama ini.
9. Adik adikku, Nelly, Dina, Dahlia, Srywanjetika
10. Seluruh rekan - rekan di Politeknik Mandiri Bina Prestasi Medan.

Dalam penulisan laporan tugas akhir ini penulis menyadari sepenuhnya, walaupun penulis telah berupaya memberikan yang terbaik, penulisan ini masih jauh dari kesempurnaan baik isi, sistematika maupun redaksinya, maka penulis mengharapkan saran dan kritik yang bersifat membangun untuk kesempurnaan pengembangan laporan dalam perancangan Jam Kuliah ini nantinya.

Akhir kata penulis berharap semoga penulisan ini bermanfaat dan selanjutnya dapat dikembangkan, berguna bagi pihak yang membacanya dan tak lupa pula saya ucapkan Syukur kepada Tuhan Yang Maha Esa dimana akhirnya penulis dapat menyelesaikan Program Diploma III Politeknik Mandiri Bina Prestasi Medan.

Medan, September 2007
Penulis


Melki Guslow

DAFTAR ISI

HAL
LEMBAR PENGESAHAN I
LEMBAR PENGESAHAN II
KATA PENGANTAR i
DAFTAR ISI iv
DAFTAR GAMBAR vii
DAFTAR TABEL x
BAB 1 PENDAHULUAN 1
1.1. Latar Belakang 1
1.2. Batasan Dan Perumusan Masalah 2
1.2.1. Batasan Masalah 2
1.2.2. Perumusan Masalah 3
1.3. Tujuan Dan Manfaat 3
1.3.1. Tujuan 3
1.3.2. Manfaat 4
1.4. Metode Penelitian 4
1.5. Sistematika Penulisan 5
BAB 2 DASAR TEORI 9
2.1. Mikrokontroler At89s51 9
2.1.1. Pena-Pena Mikrokontroler At89s51 11
2.1.2. On – Chip Osilator Pada Versi Cmos 16
2.1.3. Diagram Blok Mikrokontroler At89s51 17
2.1.4. Organsisasi Memori 18
2.1.5. Struktur Pengoperasian Port 21
2.1.5.1. Port Input Output 21
2.1.5.2. Timer Counter 23
2.1.6. Sistem Interupsi 28
2.1.6.1. Perangkat Lunak Mikrokontroler At89s51 31
2.1.6.2. Instruksi Transfer Data 31
2.1.6.3. Instruksi I Aritmatika (Interupsi Perhitungan) 32
2.1.6.4. Instruksi I Logika 33
2.1.6.5. Instruksi Transfer Kendali 34
2.2. Ic Buffer Oktal Inverter 74ls204 36
2.3. Transistor 37
2.3.1. Transistor Sebagai Saklar 37
BAB 3 PERANCANGAN SISTEM 41
3.1. Blok Diagram Rangkaian 41
3.2. Perancangan Perangkat Keras (Hardware) 41
3.2.1. Unit Display 42
3.2.2. Unit Driver 43
3.2.3. Unit Pengaturan/Pengesetan Waktu 46
3.2.4. Unit Alarm 48
3.2.5. Unit Pengendali 49
3.3. Perancangan Perangkat Lunak (Software) 50
3.3.1. Program Tampil Waktu 50
3.3.2. Program Set Waktu 52
3.3.3. Program Naik Waktu 53
3.3.4. Sub-Program Periksa Alarm 55
BAB 4 PENGUJIAN DAN ANALISA 58
4.1. Pengujian Unit Display 58
4.2. Pengujian Unit Driver 59
4.2.1. Pengujian Ic Buffer 60
4.2.2. Pengujian Transistor Sebagai Saklar 66
4.3. Pengujian Unit Pengatur/Pengesetan Waktul 67
4.4. Pengujian Unit Alarm 68
4.5. Pengujian Unit Pengendali 69
BAB 5 PENUTUP 71
5.1. Kesimpulan 71
5.2. Saran 71
Daftar Pustaka 72
Lampiran-Lampiran

DAFTAR GAMBAR

Hal
1. Gambar 2.1. Konfigurasi Mikrokontroller At89s51 11
2. Gambar 2.2. On-Chip Osilator Pada Versi Cmos 17
3. Gambar 2.3. Blok Diagram At89s51 17
4. Gambar 2.4. Pemisahan Memori Program Dengan Memori Data 18
5. Gambar 2.5. Memori Mikrokontroller At89s51 19
6. Gambar 2.6. Memori Data Internal 19
7. Gambar 2.7. Bagian Bawah Internal Ram 256 Byte 19
8. Gambar 2.8. Bagian Atas Internal Ram 256 20
9. Gambar 2.9. Ruang Special Function Register 20
10. Gambar 2.10. Konfigurasi Bit Register Tcon 23
11. Gambar 2.12. Timer/Counter 1 Modus 0 26
12. Gambar 2.13. Timer/Counter Mode 2 27
13. Gambar 2.14. Timer/Counter Mode 3 27
14. Gambar 2.15. Konfigurasi Bit Register Ie 28
15. Gambar 2.17. Konfigurasi Bit Register Ip 29
16. Gambar 2.18. Konfigurasi Bit Register Smod 30
17. Gambar 2.19. Konfigurasi Bit Register Pcon 30
18. Gambar 2.20. Diagram Pin74ls240 36
19. Gambar 2.21. Karakteristik Transistor 38
20. Gambar 2.22. Transistor Sebagai Saklar 39
21. Gambar 2.23. Transistor Sebagai Saklar Off 40
22. Gambar 3.1. Diagram Blok Jam Digital 41
23. Gambar 3.2. Rangkaian Display Menggunakan Seven Segment 42
24. Gambar 3.3. Pengukuran Jatuh Tegangan Pada Led 42
25. Gambar 3.5. Rangkaian Driver Jam Digital 44
26. Gambar 3.6. Ekivalen Rangkaian Driver 44
27. Gambar 3.7. Rangkaian Driver Dengan Unit Display 46
28. Gambar 3.8. Rangkaian Pengatur/Pengesetan Waktu 47
29. Gambar 3.9. Rangkaian Clock Alarm 48
30. Gambar 3.10. Rangkaian Pengendali At89s51 49
31. Gambar 3.11. Proses Peragaan Waktu 50
32. Gambar 3.12. Diagram Alir Tampil Waktu 52
33. Gambar 3.13. Diagram Alir Set Waktu 53
34. Gambar 3.14. Naik Waktu 55
35. Gambar 3.15. Periksa Alarm 57
36. Gambar 4.1. Pengukuran Rangkaian Display 58
37. Gambar 4.2. Seven Segmen 59
38. Gambar 4.3. Pengujian Rangkaian Driver 60
39. Gambar 4.4. Pengujian Rangkaian Buffer 62
40. Gambar 4.5. Pengukuran Vol Ic 74ls240 64
41. Gambar 4.6. Pengujian Transistor Sebagai Saklar 66
42. Gambar 4.7. Pengujian Rangkaian Pengatur Jam Dengan Voltmeter 67
43. Gambar 4.8. Pengujian Rangkaian Clock Alarm Dengan Voltmeter 68
44. Gambar 4.9. Pengujian Rangkaian Pengendali Dengan Logic Probe 69

DAFTAR TABEL

Hal
1. Tabel 2.1. Keluarga Mikrokontroller Mcs- 51 10
2. Tabel 2.2. Fungsi Pengganti Dari Port 3 13
3. Tabel 2.3. Nilai Register Setelah Di-Reset/ 16
4. Tabel 2.4. Tabel Port 3 22
5. Tabel 2.5. Fungsi Bit Register Tcon 24
6. Tabel 2.6. Alamat Rutin Interupsi 29
7. Tabel 2.7. Tabel Kebenaran 74ls240 37
8. Tabel 3.1. Konversi Nilai Segmen 51
9. Tabel 4.1. Data Unit Display 59
10. Tabel 4.2. Hasil Pengujian Rangkaian Driver 61
11. Tabel 4.3. Pengujian Rangkaian Buffer 63
12. Tabel 4.4. Hasil Pengukuran Vol 74ls240 65
13. Tabel 4.5. Hasil Pengujian Transistor 67
14. Tabel 4.6. Hasil Pengukuran Pada Rangkaian Pengatur Jam 68
15. Tabel 4.7. Hasil Pengukuran Pada Rangkaian Pengatur Jam 69
16. Tabel 4.2. Hasil Pengujian Port 1 70
17. Tabel 4.2. Hasil Pengujian Port 1 70

BAB 1
PENDAHULUAN

1.1 Latar Belakang
Penandaan waktu dalam kehidupan modern saat ini sangatlah penting, dimana penandaan waktu ini bisa menandakan awal dan berakhirnya suatu kegiatan. Dengan perkembangan teknologi mikroprosesor/mikrokontroler penanda waktu ini dapat kita rancang sendiri biasanya awal dan berakhirnya suatu kegiatan ini ditandai dengan suatu bunyi alarm.
Berdasarkan pengamatan kami awal akhirnya suatu kegiatan masih berdasarkan jam umum yang di buat dikampus Politeknik MBP dan jam pribadi yang dikenakan dosen dan tidak menghasilkan indikasi pergantian (alarm pergantian perkuliahan) .
Melihat hal diatas penulis ingin merancang dan membuat suatu alat jam digital berikut alarm pergantian waktu belajar, dengan judul Tugas Akhir “ PERANCANGAN SISTEM ALARM JAM KULIAH PADA POLITEKNIK MANDIRI BINA PRESTASI MEDAN BERBASIS MIKROKONTROLLER AT89S51”
Mikrokontroller AT89S51 digunakan sebagai pusat pengaturan dari pada sistem jam digital. Peragaan waktu di aplikasikan pada sevent segment, sedangkan referensi waktu dihasilkan oleh timer 0 (nol) dari mikrokontroller dimana sumber Cloknya berasal dari Crystal mikrokontroler yang berkapasitas 12MHz,

pengesetan waktu dilakukan melalui toggle switch dan penambahan menit, jam pada saat pengesetan dilakukan dengan penekanan tombol.
Alat ini juga dirancang dalam dua pilihan waktu jam perkuliahan diantaranya : Waktu perkuliahan saat kuliah dalam keadaan normal, dan saat waktu kuliah dalam keadaan puasa.
Diharapkan alat ini dapat mengingatkan mulai dan berakhirnya suatu kegiatan atau waktu masuk dan berakhirnya suatu kegiatan terutama pada Kampus Politeknik Mandiri Bina Prestasi Medan.

1.2 Batasan dan Perumusan Masalah
1.2.1 Batasan Masalah
Dalam perancangan pembuatan Tugas Akhir ini penulis membuat batasan masalah yaitu : jam alarm hanya menampilkan menit dan jam sedangkan indikasi detik dilakukan dengan di indikasikan pada dot 7- segment . (segment H), alat yang dirancang tidak mengindikasikan hari tanggal, bulan dan tahun. Alarm pergantian jam kuliah berdasarkan jam perkuliahan normal Politeknik MBP dan jam perkuliahan saat bulan puasa pengaturan jam alarm digital diset melalui program yang menggunakan Mikrokontroller AT89S51, pada intinya Mikrokontroller AT89S51 yang merupakan inti (otak) dari Jam Alarm Digital tersebut.


1.2.2. Perumusan Masalah
Dari permasalahan yang diuraikan diatas dapat diambil beberapa rumusan masalah yaitu :
1. Bagaimana mengindikasikan waktu 1 (satu) detik dengan timer mikrokontroller.
2. Bagaimana menampilkan waktu jam menit yang dihasilkan timer pada peraga 7- segment.
3. Bagaimana mengaktifkan alarm pada saat waktu sesuai dengan jam mulai dan berakhirnya suatu perkuliahan.
Sesuai dengan permasalahan yang dihadapi dalam perancangan jam alarm tersebut maka penulis memberikan pemecahan masalah tersebut, yakni : Agar alarm dapat berfungsi secara otomatis maka rangkaian jam alarm digital ini dilengakapai dengan suatu alat yang dapat menyimpan data (program untuk menjalankan rangkaian jam alarm digital tersebut).

1.3 Tujuan dan Manfaat
1.3.1 Tujuan
Tujuan pembuatan proyek ini adalah :
1. Untuk memenuhi salah satu persyaratan guna menyelesaikan program Dipoloma III Jurusan Elektro Program Studi Elektronika Komunikasi Komputer pada Politeknik Mandiri Bina Prestasi Medan.
2. Untuk menerapkan ilmu yang didapat penulis selama dalam bangku perkuliahan.
3. Untuk membuat suatu alat jam alarm digital.

1.3.2 Manfaat
Adapun manfaat yang diberikan alat ini adalah :
1. Tersedianya alat untuk referensi pada teknisi sebagai cara membuat jam digital
2. Memberikan kepada pembaca bagaimana membuat suatu alarm jam digital Alat ini bisa mengatur suatu alarm berbunyi menjadi otomatis sesuai dengan program yang telah di isikan pada alat ini, selain dari situ juga diharapkan, proyek Tugas Akhir ini menambah sarana bagi Kampus, terutama untuk Laboratorium Politeknik Mandiri Bina Prestasi Medan.

1.4 Metode Penelitian
Dalam penulisan karya yang bersifat ilmiah, harus ada suatu metode studi yang siap dipakai untuk membantu penelitian dalam memperoleh data-data yang diperlukan untuk mengidentifikasi dan menguji kebenaran suatu ilmu pengetahuan. Metode studi yang digunakan yaitu :
1. Kepustakaan ( library research ), yakni :
Pencarian yang berdasarkan perpustakaan meliputi hal-hal sebagai berikut:
a. Membaca buku-buku literatur, majalah-majalah, artikel - artikel, materi perkuliahan dan lain sebagainya yang ada hubunganya dengan masalah analisa system Komunikasi.
b. Ulasan-ulasan yang memperkuat makalah, maka diadakan pula pengutipan terhadap beberapa pendapat dari para ahli atau sarjana untuk dijadikan dasar didalam melakukan penelitian.
2. Pengamatan Lapangan ( filed research ), yakni :
Pengamatan yang langsung dilakukan pada obyek yang dipilih. Data dan informasi yang dibutuhkan diperoleh dengan mengadakan wawancara terhadap pihak-pihak yang dapat memberikan informasi yang diperlukan dalam obyek pengamatan.

1.5 Sistematika penulisan
Adapun sitematika penulisan Tugas Akhir ini adalah sebgai berikut :

BAB 1 PENDAHULUAN
1.1. Latar Belakang
1.2. Batasan dan Perumusan Masalah
1.2.1. Batasan Masalah
1.2.2. Perumusan Masalah
1.3. Tujuan dan Manfaat
1.3.1 Tujuan
1.3.2 Manfaat
1.4 Metode Penelitian
1.5 Sistematika Penulisan

BAB 2 DASAR TEORI
2.1. Mikrokontroler AT89S51
2.1.1 Pena-pena Mikrokontroler AT89S51
2.1.2 On – Chip Osilator pada Versi CMOS
2.1.3 Diagram Blok Mikrokontroler AT89S51
2.1.4 Organsisasi Memori
2.1.5 Struktur Pengoperasian Port
2.1.5.1 Port input output
2.1.5.2 Timer counter
2.1.6 Sistem Interupsi
2.1.6.1 Perangkat Lunak Mikrokontroler AT89S51
2.1.6.2 Instruksi transfer data
2.1.6.3 Instruksi i aritmatika (Interupsi perhitungan)
2.1.6.4 Instruksi i logika
2.1.6.5 Instruksi transfer kendali
2.2. IC Buffer Oktal Inverter 74LS204
2.3. Transistor
2.3.1 Transistor sebagai saklar

BAB 3 PERANCANGAN SISTEM
3.1. Blok Diagram Rangkaian
3.2. Perancangan Perangkat Keras (Hardware)
3.2.1 Unit Display
3.2.2 Unit Driver
3.2.3 Unit Pengaturan/Pengesetan Waktu
3.2.4 Unit Alarm
3.2.5 Unit Pengendali
3.3 Perancangan Perangkat Lunak (Software)
3.3.1 Program Tampil Waktu
3.3.2 Program Set Waktu
3.3.3 Program Naik Waktu
3.3.4 Sub-Program Periksa Alarm

BAB 4 PENGUJIAN DAN ANALISA
4.1 Pengujian Unit Display
4.2 Pengujian Unit Driver
4.2.1 Pengujian Ic Buffer
4.2.2 Pengujian Transistor Sebagai Saklar
4.3 Pengujian Unit Pengatur/Pengesetan Waktu
4.4 Pengujian Unit Alarm
4.5 Pengujian Unit Pengendali

BAB 5 PENUTUP
5.1 Kesimpulan
5.2 Saran
Daftar pustaka
Lampiran-lampiran


BAB 2
DASAR TEORI

2.1 Mikrokontroller AT89S51
Dengan memadukan arsitektur perangkat keras keluarga mikrokontroller MCS-51 dan teknologi flash memory, dihasilkan AT89S51 sebagai sebuah mikrokontroller dengan fasilitas timer, port serial, 32 Programmable I/O lines, RAM dan Flash Memory untuk keperluan penyimpanan program.
AT89S51 merupakan versi yang dilengkapi dengan ROM (internal) yaitu berupa EEPROM. Mikrokontroller AT89S51 adalah low power high performance CMOS 8 bit, 8 Kbyte Flash Programable and Erasable Read Only Memory (PEROM). IC mikrokontroller kompatibel dengan standart MCS-51 baik dari instruksi maupun pena-penanya yang dapat diaplikasikan sebagai Embedded Controller.
Disamping itu terdapat RAM Internal dengan kapasitas 128 x 8 bit. Dan frekuensi pengoperasian hingga 24 MHz. Mikrokontroler ini juga memiliki 32 port I/O yang terbagi menjadi 4 buah port dengan 8 jalur I/O, kemudian terdapat pula Sebuah port serial dengan kontrol serial full duplex, tiga timer/counter 16 bit dan sebuah osilator internal dan rangkaian pewaktu(timer). Keluarga mikrokontroller MCS-51 dapat dilihat pada table berikut :


Tabel 2.1 Keluarga Mikrokontroller MCS- 51
Type Type tanpa
EPROM Type dengan EROM ROM RAM
(byte) I/O


8051 8031 - 4K 128 4
8051 AH 8031 AH 8751 H 1K 128 4
- - 8751 BH - - -
8052 AH 8032 AH 8752 BH 8K 256 4
80C51 BH 8032 BH 87C51 2K 128 4
83C51 FA 80C51 FA 87C51 FA 8K 256 4
83C51 FB 80C51 FB 8751 FB 16K 256 5

Berikut ini adalah kemampuan yang dimiliki oleh mikrokontroller AT89S51:
1. Kompatibel dengan keluarga MCS-51
2. 8 Kbyte ReProgrammable Flash Memory (PEROM) didalam chip yang dapat ditulis dan dihapus sampai 1000 kali.
3. Dapat beroperasi pada frekuensi 0 Hz sampai 24 MHz.
4. 3 level program kunci memory.
5. 128 x 8-bit RAM internal.
6. 32 jalur I/O.
7. 4 port I/O 8-bit
8. 3 buah timer/counter 16 bit.
9. 8 buah jalur interupsi
10. Hemat catu daya dan memiliki power down modes.
11. Kemampuan pengalamatan memory
- 128 K – ROM
12. Pelaksanaan instruksi dalam 0,3 μS.
13. Tersedia dengan kemasan :
- 40-pin DIP
- 44-pin PLCC
- 44-pin PQFP

2.1.1. Pena-pena Mikrokontroller AT89S51
Susunan pena-pena Mikrokontroller AT89S51 diperlihatkan pada gambar 2.1

Gambar 2.1 Konfigurasi Mikrokontroller AT89S51
Mikrokontroler ini memiliki 40 konfigurasi pin seperti digambarkan pada gambar 2.1 Fungsi dari tiap – tiap pin dapat dikelompokkan menjadi sumber tegangan, kristal, kontrol, dan input - output.
Disamping itu mikrokontroller ini dapat ditambahkan sebuah minimum memori eksternal atau komponen eksternal lain. Dari kedelapan line dapat digunakan sebagai suatu unit yang berhubungan ke perangkat paralel seperti printer, pengubah digital ke analog, dan sebagainya, atau tiap line dapat mengoperasikan sendiri ke perangkat single bit seperti saklar, LED, transistor, selenoid, motor, dan speaker. Sedangkan fungsi pin dari mikrokontroler seperti berikut ini :
1. Pin 1 sampai 8
Ini adalah port 1 yang merupakan saluran/bus I/O 8 bit dua arah. Dengan internal pull-up yang dapat digunakan untuk berbagai keperluan. Pada port ini juga digunakan sebagai saluran alamat pada saat pemograman dan verifikasi.
2. Pin 9
Merupakan masukan reset (aktif tinggi), pulsa transisi dari rendah ke tinggi akan me-reset mikrokontrokller ini.
3. Pin 10 sampai 17
Ini adalah port 3 merupakan saluran/bus I/O 8 bit dua arah dengan internal pull up yang memiliki fungsi pengganti. Fungsi pengganti meliputi TxD, RxD, INT0, INT1, T0, T1, WR, RD,. Bila fungsi pengganti tidak dipakai pin-pin ini dapat dipakai sebagai port parallel serbaguna.


4. Pin 18 dan 19
Ini merupakan masukan ke penguat osilator berpenguat tinggi. Pada mikrokontroler ini memiliki seluruh rangkaian osilator yang diperlukan pada serpih yang sama (on chip) kecuali rangkaian kristal yang mengendalikan frekuensi osilator. Karenanya 18 dan 19 sangat diperlukan untuk dihubungkan dengan kristal. Selain itu XTAL 1 dapat juga sebagai input untuk inverting oscilator amplifier dan input ke rangkaian internal clock sedangkan XTAL 2 merupakan output dari inverting oscilator amplifier.
Tabel 2.2 Fungsi pengganti dari port 3
Bit Nama Alamat Bit Fungsi Alternatif
P3.0 RXD B0H Untuk menerima data port serial
P3.1 TXD B1H Untuk mengirim data port serial
P3.2 INT0 B2H Interupsi eksternal 0
P3.3 INT1 B3H Interupsi eksternal 1
P3.4 T0 B4H Input Eksternal waktu/pencacah 0
P3.5 T1 B5H Input Eksternal waktu/pencacah 1
P3.6 WR B6H Jalur menulis memori data eksternal
P3.7 RD B7H Jalur membaca memori data eksternal

5. Pin 20
Merupakan ground sumber tegangan yang diberi simbol GND.
6. Pin 21 sampai 28
Ini adalah port 2 yang merupakan saluran/bus I/O 8 bit dua arah dengan internal pull up. Saat pengambilan data dari program memori eksternal atau selama mengakses data memori eksternal yang menggunakan alamat 16 bit (MOVX @ DPTR), port 2 berfungsi sebagai saluran/bus alamat tinggi (A8 – A15). Sedangkan pada saat mengakses ke data memori eksternal yang menggunakan alamat 8 bit (MOVX @ R1), port 2 mengeluarkan isi dari P2 pada Special Function Register.
7. Pin 29
Program Strore Enable (PSEN) merupakan sinyal pengontrol untuk mengakses program memori eksternal masuk ke dalam bus selama proses pemberian/pengambilan instruksi (fetching).
8. Pin 30
Address Latch Enable (ALE)/PROG merupakan penahan alamat memori eksternal (pada port 1) selama mengakses ke memori eksternal. Pena ini juga sebagai pulsa/sinyal input pemograman (PROG) selama proses pemograman.
9. Pin 31
Eksternal Access Enable (EA) merupakan sinyal control untuk pembacaan memori program. Apabila diset rendah (L) maka mikrokontroller akan melaksanakan seluruh instruksi dari memori program eksternal, Sedangkan apabila diset tinggi (H) maka mikrokontroller akan melaksanakan instruksi dari memori program internal ketika isi program counter kurang dari 4096. Ini juga berfungsi sebagai tegangan pemograman (Vpp = +12V) selama proses pemograman.
10. Pin 32 sampai 39
Ini adalah port 0 yang merupakan saluran/bus I/O 8 bit open collector, dapat juga digunakan sebagai multipleks bus alamat rendah dan bus data selama adanya akses ke memori program eksternal. Pada saat proses pemograman dan verifikasi port 0 digunakan sebagai saluran/bus data. Eksternal pull up diperlukan selama proses verifikasi.
11. Pin 40
Pin 40 merupakan Vcc yang dihubungkan ke tegangan + 5 V.
PSEN (Program Store Enable)
PSEN adalah sinyal control yang mengizinkan untuk mengakses program (code) memri eksternal. Pin ini dihubungkan ke pin OE (Output Enable) dari EPROM. Sinyal PSEN akan “0” (LOW) pada tahap fetch (penjemputan) instruksi. PSEN akan selalu bernilai “1” (HIGH) pada pembacaan program memori internal. PSEN terdapat pada pin 29.
ALE (Address Latch Enable)
ALE digunakan untuk men-demultiplex address (alamat) dan data bus. Ketika menggunakan program memori eksternal, port 0 akan berfungsi sebagai address (alamat) dan data bus. Pada setengah paruh pertama memori cycle ALE akan bernilai “1” (HIGH) sehingga mengizinkan penulisan address (alamat) pada register eksternal. Dan pada setengah paruh berikutnya akan bernilai “1” (HIGH) sehingga port 0 dapat digunakan sebagai data bus. ALE terdapat pada pin 30.
EA (External Access)
Jika EA diberi input “1” (HIGH), maka mikrokontroller menjalankan program memori internal saja. Jika EA diberi input “0” (LOW), maka AT89C51 menjalankan program memori eksternal (PSEN akan bernilai “0”). EA terdapat pada pin 31.
RST (Reset)
RST terdapat pada pin 9. Jika pada pin ini diberi input “1” (HIGH) selama minimal 2 machine cycle, maka system akan di-reset dan register-register internal AT89C51 akan berisi nilai default tertentu. Nilai default setelah sistem reset tersebut terlihat pada table 2.3.
Tabel 2.3 Nilai register setelah di-reset
REGISTER ISI
Program Counter 0000H
Accumulator 00H
B Register 00H
PSW 00H
SP 07H
DPTR 0000H
Port 0 - 3 FFH
IP XXX00000B
IE 0XX00000B
Timer Register 00H
SCON 00H
SBUF 00H
PCON (HMOS) 0XXXXXXXB
PCON (CMOS) 0XXX0000B

2.1.2. On - Chip Osilator pada versi CMOS
Rangkaian osilator pada chip untuk AT89S51 terdiri dari inverter satu tingkat yang digunakan untuk mengontrol kristal, clock yang digunakan adalah internal clock. Gambar 2.5 menunjukkan penggunaan on-chip osilator dengan menghubungkan pin XTAL1 dan XTAL2 dengan kristal atau kapasitor keramik. Untuk kristalnya dapat digunakan frekuensi dari 6 sampai 12 MHz. Sedangkan untuk kapasitor dapat bernilai antara 27 pF sampai 33 pF. Bila digunakan eksternal clock, pin ATAL1 dihubungkan dengan output eksternal clock tersebut.

Gambar 2.2. On-Chip Osilator pada Versi CMOS
2.1.2. Diagram Blok Mikrokontroller AT89S51
Diagram blok Mikrokontroller AT89S51 diperlihatkan pada gambar2.3.

Gambar 2.3 Blok Diagram AT89S51
Dengan keistimewaan gambar di atas, pembuatan alat menggunakan AT89S51 menjadi lebih sederhana dan tidak memerlukan IC pendukung yang banyak. Jadi mikrokontroler ini juga mempunyai keistemewaan dari segi perangkat keras.

2.1.4. Organisasi Memori
Seluruh anggota MCS-51 mempunyai alamat program dan memori data terpisah seperti ditunjukkan pada gambar 2.6. data. Lebar memori data adalah 8 bit dan 16 bit (register DPTR).

Gambar 2.4 Pemisahan Memori Program dengan Memori data
Memory program hanya dapat dibaca, tidak dapat dituliskan. Pada mikrokontroler AT89C51, 8K Byte memori program terendah terdapat dalam chip (internal). Sinyal untuk membaca memori program internal PSEN. CPU membangkitkan sinyal baca, RI dan sinyal tulis WR yang diperlukan pada saat akses data memori data eksternal dengan instruksi MOVX.

Gambar 2.5 Memori Mikrokontroller AT89S51
Ruang memori terlihat dalam blok, yang disebut sebagai lower 256, upper 256 dan ruang SFR. Internal memori data dialamati dengan lebar 1 byte. Lower 256 (alamat 00H-7Fh) terdapat pada semua anggota keluarga MCS-51.

Gambar 2.6 Memori data internal


Gambar 2.7. Bagian bawah internal RAM 256 Byte
Gambar 2.7 merupakan bagian atas dari internal RAM. Sebanyak 32 byte terendah terbagi atas 4 bank dari 8 register disebut sebagai R0-R7. Dua bit dari register PSW memilih bank mana yang digunakan. Kemudian 16 byte diatas bank register membentuk blok memori yang dapat dialamati per-bit. Upper 256 tidak tersedia di 8031. Special Function Register atau SFRs adalah register yang befungsi khusus misalnya lacth port, timer, control pheripheral dsb.

Gambar 2.8. Bagian atas internal RAM 256

Gambar 2.9. Ruang special function register

2.1.5. Struktur Pengoperasian Port
2.1.5.1. Port Input/Output
One chip mikrokontroler memiliki 32 jalur port yang dibagi menjadi 8 port bit. Masing – masing port ini bersifat bidirectional sehingga dapat digunakan sebagai input port atau output port. Pada blok diagram AT89C51 dapat dilihat lacth tiap bit pada keempat port : port 0, port 1, port 2, port 3. Masing – masing jalur port terdiri dari lacth , output driver dan input buffer port 0 dan port 2 dapat digunakan sebagai saluran data alamat sekaligus yang dimultipleks. Untuk mengakses memori eksternal, port 0 akan mengeluarkan alamat bawah memori eksternal yang dimultipleks dengan data yang dapat dibaca dan ditulis, sedangkan port 2 mengeluarkan bagian atas memori eksternal sehingga total alamat semuanya 16 bit.
Khususnya untuk port 3 mempunyai fungsi yang lain diluar sebagai port. Port 3 adalah input/ output 8-bit dua arah. Port 3 juga berfungsi melayani fungsi-fungsi dari berbagai fitur-fitur spesial dari AT89C51, seperti yang ditunjukkan oleh tabel di bawah. Port 3 juga menerima beberapa signal kontrol untuk pemrograman flash dan verifikasi.

Tabel 2.4. Tabel port 3
Pin Port Fungsi alternatif
P3.0 RXD (port input serial)
P3.1 TXD (port output serial)
P3.2
INT0 (eksternal interupsi 0)
P3.3
INT1 (eksternal interupsi 1)
P3.4 T0 (input timer 0 eksternal)
P3.5 T1(input timer 1 eksternal)
P3.6
WR (memori data eksternal write strobe)
P3.7
RD (memori data ekternal read strobe)

Latch yang digunakan dapat dipresentasikan dengan flip-flop D. Data dari bus internal di latch saat CPU memberi sinyal tulis ke latch dan output latch diberikan ke bus internal sebagai respon dari sinyal baca pin dari CPU.
Beberapa intruksi yang berfungsi membaca port mengaktifkan sinyal baca latch dan yang lain mengaktifkan sinyal baca pin. Port 1, port 0, port 3 mempunyai pull-up internal sedangkan port 0 dengan output open drain. Masing-masing jalur I / O dapat digunakan sebagai input ataupun output. Bila digunakan sebagai input, port latch harus 1. Untuk port 1, 2 dan 3 pin-pin akan di pull-up tinggi oleh pull-up internal, dan bias juga di pull-up rendah dengan sumber external.
Port 0 tidak mempunyai pull-up internal, pull-up fet hanya akan digunakan saat akses external memori. Jika isi latch diatur pada keadaaan 1, maka port ini akan berfungsi sebagai impedansi tinggi dan jika sebagai output akan versifat open drain. Demikian halnya dengan port 2 yang digunakan untuk multiplex data dan alamat 16 bit sebesar 16 Kbyte mempunyai konfigurasi yang sama dengan yang dimiliki oleh port 0 sedangkan pada port 3 yang biasa dimanfaatkan untuk kaki control mempunyai pengaturan fungsi output saja. Pada port ini juga dilengkapi dengan rangkaian pull-up internal. Penggunaan port 3 dapat dialamati langsung sebagai control langsung pada suatu tugas yang dilakukan oleh fungsi yang dimiliki oleh port ini.

2.1.5.2. Timer/Counter
Timer/Counter 0 dan Timer/Counter 1 merupakan timer 16-bit yang mempunyai pasangan register 16-bit yaitu THx, TLx. Setiap pasangan register dapat diprogram secara terpisah melalui software. Penggunaan dari Timer/counter ditentukan melalui dua register 8-bit yaitu TMOD (Timer Mode) dan TCON (Timer Control). Register TMOD dan TCON diset dengan program. Konfigurasi bit dari Register TCON ditunjukkan pada gambar 2.7. dan konfigurasi register TMOD ditunjukkan pada gambar 2.8.
MSB LSB
TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
Gambar 2.10. Konfigurasi bit Register TCON

Tabel 2. 5 Fungsi bit Register TCON
Simbol Posisi Fungsi
TF1 TCON.7 Timer 1 overflow flag. diset oleh perangkat saat Timer/Counter menghasilkan overflow
TR1 TCON.6 Bit untuk menjalankn Timer1.Diset/clear melalui
software
TF0 TCON.5 Timer 0 ovefrflow flag. Diset oelh perangkat keras
TR0 TCON.4 Bit untuk menjalankan Timer 0. diset/clear oleh software untuk membuat timer on atau off.
IE1 TCON.3 External interupt 1 (edge flag). Diset oleh hardware apabila tepi sinyal interupsi eksternal telah terdeteksi, dan direset kembali oleh hardware apabila interupsi telah diproses.
IT1 TCON.2 Interrupt 1 type control bit. Diset/direset oleh software untuk menetapkan jenis trigger tepi negatif/level rendah dari interupsi eksternal 1.
IE0 TCON.1 Eksternal Interupt 0 (edge flag).
IT0 TCON.0 Interupt 0 type control bit


MSB LSB
GATE C/T
M1 M0 GATE C/T
M1 M0


Gambar 2.11. Konfigurasi bit Register TMOD
Gate : Apabila TRx pada register TCON diset dan GATE =1, maka Timer/Counter akan bekerja ketika pin INT x memperoleh keadaan high (Hardware control), dan apabila GATE=0, Timer/Counter x akan berjalan hanya apabila Trx=1 (software control).
C/T : Pemilih Timer atau Counter, bila diset logika 1 maka Timer/Counter x berfungsi sebagai counter dan jika logika 0 Timer/conter x berfungsi sebagai timer.
M0,M1 : Pemilih modus 0, 1 atau 2.
Timer/counter pada 8031 dapat diprogram sesuai dengan kebutuhan. Perhitungan waktu oleh timer ditentukan frekuensi osilator yang digunakan, dimana frekuensi kerja timer adalah besar frekuensi kristal dibagi 12. Sebagai contoh, jika frekuensi kristal sebesar 12MHz maka timer akan bertambah setiap satu mikro detik (1s). Apabila periode waktu tertentu telah dilalui, timer/counter segera menginterupsi CPU untuk memberitahu bahwa perhitungan periode waktu telah selesai dilaksanakan. Periode waktu timer/counter secara umum ditentukan persamaan berikut:

a. Sebagai timer 8-bit:
T= (255-TLx) x 1 s ...............................................1)
dimana Tlx adalah isi register TL0 atau TL1
b. Sebagai timer 16-bit :
T=(65.535 x-THxTLx) x 1s .................................2)
dimana THx adalah isi register TH0 atau TH1, TLx adalah isi register TL0 atau TL1.
Timer/counter dari 8031 dapat diset pada 3(tiga) modus yaitu modus 0, modus 1, modus 2 dan modus 3.
Mode 0: Pada mode 0 register timer disusun sebagai register 13-bit. Setelah semua perhitungan selesai, mikrokontroler akan men-set Timer interupt Flag (TF1). Dengan membuat Gate=1, timer dapat dikontrol oleh masukan eksternal INT 1.



Gambar 2.12. Timer/Counter 1 Modus 0

Mode 1: Mode 1 sama dengan mode 0 kecuali register timer bekerja dalam 16-bit.
Mode 2: Mode 2 menyusun timer sebagai 8-bit counter. Limpahan (overflow) dari TL1 selain men-set TF1 juga mengisi TL1 dengan isi TH1 yang diatur secara software. Pengisian ini tidak mengubah TH1.

Gambar 2.13. Timer/Counter Mode 2

Mode 3: Timer 1 dalam mode 3 hanya untuk memegang hitungan. Efeknya sama seperti men-set TR1=0. Timer 0 dalam mode 3 menetapkan TL0 dan TH0 sebagai dua counter terpisah. TL0 menggunakan kontrol bit timer 0 yaitu C/T, Gate, TR0, INT0, dan TF0. TH0 ditetapkan sebagai fungsi timer.




Gambar 2.14. Timer/Counter Mode 3
2.1.6.2. Sistem Interupsi
Mikrokontroler AT89C51 mempunyai lima sumber interupsi. Dua sumber merupakan sumber external INT0 dan INT1. Kedua interupsi external dapat aktif level atau aktif transisi tergantung isi IT 0 dan IT 1 pada register TCON. Interupsi timer 0 dan timer 1 aktif pada saat timer yang sesuai mengalami rollover. Interupsi serial dibangkitkan dengan melakukan operasi OR pada R1. Tiap-tiap sumber interupsi dapat enable atau disable secara software melalui register IE. Untuk mengenabelkan interupsi EA diberi logika 1, dan memberikan logika 1 pada bit yang sesuai.
Register Interupsi Enable (IE)

MSB LSB
EA - - ES ET1 EX1 ET0 EX0

Gambar 2.15. Konfigurasi bit Register IE

EX0= Untuk mengenabelkan INT0
EX1= Untuk mengenabelkan INT1
ET0=Untuk mengenabelkan interupsi Timer 0
ET1=Untuk mengenabelkan interupsi Timer 1
ES=Untuk mengenabelkan interupsi Serial Komunikasi


Tabel 2.6 Alamat Rutin Interupsi
Nama Lokasi Alat Interupsi
Reset 00H Power On
Int 0 03H INT 0
Timer 0 0BH Timer 0
Int 1 13H INT 1
Timer 1 1BH Timer 1
Sint 23H Port I/O serial

Tingkat prioritas semua sumber interupsi dapat diprogram dengan set atau clear bit pada IP( Interupt Priority). Interupsi tingkat rendah dapat diinterupsi oleh interupsi yang mempunyai tingkat lebih tinggi tidak bisa menginterupsi sumber interupsi yang lain.
Perioritas Interupsi
MSB LSB
- - - PS PT1 PX1 PT0 PX0
Gambar 2.17 Konfigurasi bit Register IP

Perioritas bit=1 menandakan perioritas tertinggi
Perioritas bit=0 menandakan perioritas rendah

Port Serial
Sebelum menggunakan port serial terlebih dahulu diset modus dan fungsinya melalui register SMOD. Susunan bit dari register SMOD ditunjukkan pada gambar …berikut.
MSB LSB
SM0 SM1 SM2 REN TB8 RB8 T1 RI
Gambar 2.18 Konfigurasi bit Register SMOD

SM0 SM1 Mode Keterangan Baud Rate
0 0 0 Shift Register Fre.osc/12
0 1 1 8 bit UART Variable
1 0 2 9 bit UART Frek.Osc/64 atau Frek.osc/32

MSB LSB
SMOD - - - GF1 GF0 PD IDL
Gambar 2.19 Konfigurasi bit Register PCON

Pengaturan kecepatan transmisi diset melalui timer 1 dan bit SMOD dari PCON sebagai berikut:

Baud rate atau
Baud rate mode x timer 1 overflow rate atau
TH1

2.1.6.3. Perangkat Lunak Mikrokontroller AT89S51
Sebuah mikrokontroler tidak akan bekerja bila tidak diberikan program kepadanya. Program tersebut memberitahu mikrokontroler apa yang dilakukan sebuah mikrokontroler yang telah bekerja baik dengan suatu program, tidak akan bekerja lagi bila programnya diganti.
Instruksi-intruksi perangkat lunak berbeda untuk masing-masing jenis mikrokontroler. Instruksi-intruksi ini hanya bisa dipahami oleh jenis mikrokontroler yang bersangkutan. Sebuah mikrokontroler tidak dapat memahami instruksi-instruksi yang berlaku pada mikrokontroler lain. Sebagai contoh, mikrokontroler buatan intel dengan mikrokontroler buatan motorolla memiliki perangkat instruksi yang berbeda. Instruksi-instruksi inilah yang dikenal sebagai bahasa pemrograman system mikrokontroler.

2.1.6.4. Instruksi Transfer Data
Perangkat lunak adalah seperangkat instruksi yang disusun menjadi sebuah program untuk memerintahkan computer melakukan sesuatu pekerjaan. Sebuah instruksi selalu berisi kode pengoperasian (op-code), kode pengoperasian inilah yang disebut dengan bahasa mesin yang dapat dimengerti oleh computer. Instruksi-instruksi yang digunakan dalam memprogram suatu program yang diisikan pada IC AT89C51 adalah instruksi bahasa pemrograman assembler atau sama dengan instruksi pemrograman pada IC mikrokontroller 8031 dan MCS-51.
Instruksi transfer data terbagi menjadi dua kelas sebagai berikut :
• Transfer data utama (general purpuse transfer) yaitu : MOV, PUSH, dan POP
• Transfer spesifik akumulator (accumulator specific transfer) yaitu : XCH, ACHD, dan MOVC
Instruksi transfer data adalah instruksi pemindahan / pertukaran data berupa antara operand sumber dengan operand tujuan, operandnya dapat berupa register, memori atau lokasi suatu memori.
Deskripsi instruksi transfer data tersebut dijelaskan dibawah ini :
MOV : transfer bit atau byte dari operand sumber ke operand tujuan.
PUSH : transfer bit atau byte dari operand sumber ke suatu lokasi dalam stack yang alamat ditunjukan oleh register penunjuk (stack pointer)
POP : transfer byte dari dalam stack ke operand tujuan.
XCH : pertukaran data antara operand akumulator dengan operand sumber
XCHD: pertukaran nibble orde rendah, antara RAM internal (lokasinya ditunjukkan ( lokasinya ditunjukkan oleh R0 dan R1 ).

2.1.6.5. Instruksi Aritmatika (Instruksi perhitungan)
Operasi dasar aritmatika seperti penjumlahan, pengurangan, perkalian, dan pembagian dimiliki oleh mikrokontroler AT89C51 dengan mnemonic : INC, ADD, ADDC, DA, SUBB, DEC, MUL dan DIV. Deskripsi operasi mnemonic tersebut dijelaskan sebagai berikut :
INC : menambahkan satu isi sumber operand dan menyimpan hasilnya ke operand tersebut.
ADD : penjumlahan antara akumulator dengan sumber operand dan hasilnya disimpan di akumulator..
ADDC : hasil dari instruksi ADD ditambah satu bila cy diset.
SUBB : pengurangan akumulator dengan sumber operand, lalu dikurangi satu bila cy diset dan hasilnya disimpan dalam operand tersebut.
DEC : mengurangi sumber operand dengan satu dan hasilnya disimpan dalam operand tersebut.
MUL : perkalian antara akumulator dengan register B.
DIV : pembagian antara akumulator dengan register B dan hasilnya disimpan dalam akumulator, sisanya diregister B.

2.1.6.6. Instruksi Logika
Mikrokontroler AT89C51 dapat melalukan operasi logika bit maupun operasi logika byte. Operasi logika tersebut dibagi atas dua bahagian yaitu : operasi logika tunggal yang terdiri dari CLR, SETB, CPL, RL, RLC, RR, RRC dan SWAB. Operasi logika dua operand seperti ANL, ORL, dan XRL.
Operasi yang dilakukan oleh AT89C51 dengan pembacaan instruksi logika tersebut dapat dijelaskan sebagai berikut :
CLR : menghapus bit atau byte menjadi satu.
SETB : mengeset bit atau byte menjadi satu.
CPL : mengkomplemenkan akumulator.
RL : rotasi akumulator 1 bit kekanan dan bit 1 digeser melalui flag carry.
SWAB : pertukaran nibble orde tinggi.
ANL : operasi logika AND dan hasilnya disimpan dalam operand pertama.
ORL : operasi logika OR dan hasilnya disimpan dalam operand pertama.
XRL : operasi logika XOR dan hasilnya disimpan dalam operand pertama.

2.1.6.7. Instruksi Transfer Kendali
Instruksi transfer data kendali (control tranfer) terdiri dari 3 kelas operasi yaitu :
1. Lompatan tidak bersyarat (unconditional jump) seperti ACALL, AJMP, LJMP, dan SJMP.
2. Lompatan bersyarat (conditional jump) seperti JZ, JNZ, JB, CJNE dan DJNZ.
3. Interupsi seperti RET 1 dan RET.
Deskripsi instruksi transfer kendali dijelaskan sebagai berikut. Lompatan untuk percabangan maksimum 2 Kbyte untuk :
ACALL : instruksi pemanggilan subroutine bila alamat subroutine tidak lebih dari 2 Kbyte.
LCALL : pemanggilan subroutine yang mempunyai alamat antara 2 Kbyte sampai 64 Kbyte.
AJMP : lompatan untuk percabangan maksimum 2 Kbyte.
LJMP : lompatan untuk percabangan maksimum 64 Kbyte.
JMP@+DPTR : instruksi percabangan ke suatu lokasi yang ditunjukkan oleh DPTR + isi akumulator.
JNB : percabangan bila bit tidak diset
JZ : percabangan akan dilakukan jika acumulator adalah 0
JNZ : percabangan akan dilakukan jika akumulator tidak 0
JC : percabangan terjadi jika cy diset 1.
CJNE : operasi perbandingan operand pertama dengan operand ke dua, jika sama akan dilakukan percabangan.
DJNZ : mengurangi isi operand sumber dan percabangan akan dilakukan apabila isi operand tersebut tidak 0.
RET : kembali ke subroutine.
RET 1 : instruksi kembali ke program interupsi utama.
Sebagai operand dari perlengkapan insteruksi tersebut dapat dijelaskan sebagai berikut :
Rn : register R0-R7 yang dipilih dari tumpukan register.
Data : lokasi alamat data internal 8 bit, yang dilokasikan pada data RAM internal (0-127) SFR pada 128-255 (I/O port, register pengontrol, register status)
@Ri : data RAM internal lokasi 0 – 255 8 bit, yang dialamati secara tidak langsung melalui R0 dan register R1.
#data 8 : yang diisikan ke dalam instruksi adalah 8 bit.
#data16 : yang diisikan ke dalam instruksi adalah 16 bit.
Addr 16 : untuk tujuan alamat 16 bit.digunakan pada operasi LCALL dan LJMP yang dilakukan dimana saja dalam 64 Kbyte daerah alamat program memori.
Addr 11 : 11 bit alamat tujuan dipakai oleh operasi ACALL dan AJMP percabangan dapat dilakukan dimana saja dalam 2 Kbyte daerah program.

2.2 IC Buffer Oktal Inverter 74LS240
IC 74LS240 merupakan sebuah IC buffer saluran yang terdiri dari delapan inverter dengan output tri-state yang dirancang untuk digunakan sebagai pendorong(driver) saluran alamat, data, clock dari sistem mikioprosesor. Gambar diagram pin IC 74LS240 ditunjukkan pada gambar 2.20 dan tabel kebenarannya ditunjukkan pada tabel 2.7

Gambar 2.20 Diagram pin 74 LS 240.
Tabel 2.7 Tabel Kebenaran 74LS240

Pemberian logika tinggi pada masukan enable ( ) akan mengakibatkan output pada keadaan impedansi tinggi atau tri-state (Z). Jika masukan enable ( ) mendapat logika 0, keluaran setiap output(Y) merupakan kebalikan logika dari masukannya (A).

2.1 Transistor
2.2.1 Transistor sebagai saklar
Transistor merupakan salah satu komponen aktif yang dapat digunakan pada rangkaian untuk memperkuat sinyal, sebagai saklar, alarm dll.
Didalam pemakaiannya, transistor dipakai sebagai komponen saklar (switching), dengan memanfaatkan daerah penjenuhan (saturasi) dan daerah penyumbatan (Cut off) yang ada pada karakteristik transistor. Bila transistor dalam keadaan jenuh (saturasi) transistor identik dengan saklar dalam keadaan tertutup (On) dan Cut off sama dengan terbuka (Off).
Untuk mendapatkan keadaan tersebut kita dapat memperhatikan suatu karakteristik transistor, hal ini dapat dilihat pada gambar karakteristik transistor pada gambar 2.15.


Gambar 2.21. Karakteristik Transistor

Pada daerah penjenuhan ( saturasi ), nilai resistansi persambungan kolektor an emiter secara ideal sama dengan nol, atau kolektor dan emiter terhubung langsung (short). Keadaan ini meyebabkan tegangan kolektor emiter ( Vce = 0 Volt ) pada keadaan ideal, tetapi kenyataannya Vce bernilai 0,3 V. Dengan menganalogikan transistor sebagai saklar, transistor tersebut dalam keadaan On seperti gambar dibawah ini. Saturasi pada transistor terjadi apabila arus basis menyebabkan arus pada kolektor menjadi maksimum. Untuk mencari besar arus basis agar transistor saturasi dengan menggunakan rumus berikut :
(2.1)
(2.2)
(2.3)

Gambar 2.22 Transistor sebagai saklar

Hubungan antara tegangan basis ( Vb ) dan arus basis ( IB ) adalah: (2.4)
(2.5)
(2.6)
Jadi bila tegangan VBB telah mencapai , transistor akan saturasi dengan Ic mencapai maksimum. Pada daerah penyumbatan ( Cut off ), nilai resistansi persambungan kolektor emitor secara ideal dengan tidak terhingga atau terminal kolektor dan emitor terbuka ( open ).
Keadaan ini menyebabkan tegangan kolektor – emiter ( VCE ) sama dengan tegangan sumber ( Vcc ), tetapi pada kenyataannya VCE pada saat ini kurang dari Vcc karena terdapat arus bocor dari kolektor dan emitor. Dengan demikian transistor tersebut dalam keadaan Off, seperti pada gambar 2.17.

Gambar 2.23 Transistor sebagai saklar Off

BAB 3
PERANCANGAN SISTEM

3.1. Blok Diagram Rangkaian
Diagram blok merupakan gambaran dasar dari rangkaian yang akan di rancang . Adapun diagram blok rangkaian adalah seperti diperlihatkan pada gambar 3.1 .

Gambar 3.1 Diagram blok Jam Digital

3.2 Perangcangan Perangkat Keras (Hardware)
Perancangan perangkat keras adalah bagian dari perancangan sistem Jam Digital yang terdiri dari :
1. Unit Display
2. Unit Driver
3. Unit Pengatur/Pengesetan Waktu
4. Unit Alarm
5. Unit Pengendali

3.2.1 Unit Display
Unit Display dirancang menggunakan seven segment common anoda . Unit ini berfungsi sebagai tampilan daripada Jam Digital yang dirancang memakai seven segment dan dihubungkan secara parallel seperti ditunjuk pada gambar 3.2.

Gambar 3.2 Rangkaian display menggunakan seven segment

Sebelum unit display dihubungkan ke-unit driver, terlebih dahulu diukur jatuh tegangan pada seven segment menggunakan “LED” untuk hidup dan matinya seven segment ini. Untuk itu perlu diukur jatuh tegangan pada seven segment seperti diperlihatkan pada gambar 3.3.

Gambar 3.3 Pengukuran jatuh tegangan pada led
Adapun langkah untuk mengukur jatuh tegangan pada LED adalah sebagai berikut :
1. Hubungkan tahanan sebesar 68 pada LED
2. Hubungkan Ampmeter seperti gambar 3.3
3. Siapkan Catu Daya
Setelah dihubungkan sesuai dengan gambar 3.3 maka akan terbaca pada Ampmeter arus yang mengalir pada rangkaian sebesar 19mA. Berdasarkan hukum tegangan Kirchhoff pada loop tertutup dari gambar 3.3 maka di nyatakan sebagai berikut :





3.2.2 Unit Driver
Pada unit driver ini penulis menggunakan Ic 74LS240, resistor dan transistor. Untuk pemilihan Ic dan transistor ditentukan dari seven segment yang digunakan unit display. Disebabkan karena seven segment common anoda maka dipilih Ic 74LS240 sebagai buffer dan transistor Bc327 (PNP) seperti diperlihatkan pada gambar 3.4.


Gambar 3.5 Rangkaian driver Jam Digital

Dari gambar 3.5 bila diekivalenkan akan membentuk rangkaian seperti diperlihatkan pada gambar 3.6.


Gambar 3.6 Ekivalen rangkaian driver
Sesuai dengan Gambar 3.6, maka dapat dirumuskan dengan hukum tegangan Kirchhoff pada loop tertutup.


Diketahui dari masing – masing datasheet bahwa jatuh tegangan pada masing-masing komponen adalah:
Vcesat : 0,4V , Vd : 3.7V , Vol : 0,5V
Arus yang dibutuhkan 160 mA
Vcc : 5 V
Maka tahanan dapat dicari , melalui rumus diatas sebagai berikut :


Besar tahanan yang dipakai pada Unit Driver adalah 68 , sehingga dapat dirancang kembali rangkaian lengkap Unit Driver dan Unit Display seperti diperlihatkan pada gambar 3.7.

Gambar 3.7 Rangkaian driver dengan unit display

Unit driver ini dikontrol melalui Port 1 dan Port 0. Bila salah satu Port 1 aktif high dan salah satu Port 0 aktif low , maka unit display akan menyala pada led tertentu yang diaktifkan.

3.2.3 Unit Pengatur/Pengesetan Waktu
Pada unit ini penulis menggunakan 2 switch dan 2 tombol push yang berfungsi untuk set jam, set jadwal , atur jam dan menit.

Gambar 3.8 Rangkaian pengatur/pengesetan waktu

Unit pengatur/pengesetan ini berfungsi untuk set jam, set jam kuliah di bulan puasa, atur jam dan atur menit . Ketika switch set jam di tekan maka data berlogika low akan masuk ke port 2.7 sehingga jam digital dapat mengatur jam dan menit. Setelah diatur jam dan menit maka bila switch dikembalikan seperti posisi semula atau berlogika high maka jam digital sudah bekerja dan tidak dapat diatur kembali baik jam maupun menit. Switch untuk mengatur jadwal bulan puasa dihubungkan pada port 2.4. Prinsip kerjanya sama dengan switch set jam.
Kedua tombol push dihubungkan ke port 2.6 dan port2.5 . Kedua tombol bila ditekan akan menghasilkan data logika low yang berfungsi untuk mengatur jam dan menit.
Unit pengatur set jam ini menggunakan tahanan sebesar 4K7 . Resistor ini berfungsi sebagai penahan arus agar tidak berlebih ketika masuk ke unit pengendali (AT89S51). Berdasarkan datasheet karakteristik AT89S51 pada port 2 diketahui bahwasanya Vol = 0.45V dengan benaman arus maksimum 1,6mA ketika output low. Dari keterangan ini maka dapat dihitung tahanan yang digunakan sebagai pull-up.

Pemasangan tahanan sesuai dengan perhitungan diatas adalah 3 KΩ . Tetapi ini adalah nilai minimum pemasangan tahanan untuk arus maksimum 1,6mA, sehingga dipilih tahanan senilai 4K7 agar arus benaman pada port 2 AT89S51 lebih kecil.

3.2.4 Unit Alarm
Unit alarm seperti gambar 3.9 berfungsi untuk mengaktifkan alarm apabila waktu yang ditentukan telah sampai.


Gambar 3.9 Rangkaian clock alarm
Unit ini menggunakan tahanan sebesar 4k7 yang berfungsi sebagai pembatas arus, ketika port 3.7 berlogika data high, maka alarm akan berbunyi.

3.2.5 Unit Pengendali
Pada unit pengendali penulis menggunakan AT89S51 sebagai pengendali atau pengontrol semua sistem unit rancangan agar dapat menerima akses. Penulis menggunakan Port 0, Port 1, Port 2, Port 3 untuk semua unit rancangan. Sesuai dengan gambar 3.9, Port 0.0 s/d Port 0.3 dipakai untuk data trace. Port 1.0 s/d Port 1.7 dipakai untuk memegang data seven segmen. Port 2.4 s/d Port 2.7 dipakai untuk data tombol dan switch. Port 3.7 dipakai untuk data clock alarm.

Gambar 3.10 Rangkaian Pengendali AT89S51
3.3 Perancangan Perangkat Lunak (Software)
Untuk mempermudah membuat program jam digital, terlebih dahulu dibuat program bagian per bagian yaitu program menampilkan waktu, program set waktu, program alarm.

3.3.1 Program Tampil Waktu
Program ini berfungsi menampilkan isi memori 41H dan 42H ke peraga 7-segment dimana isi memori RAM alamat 41H adalah nilai Menit dan isi memori RAM alamat 42H adalah nilai Jam. Adapun algoritma dari untuk menampilkan waktu ini dijelaskan sebagai seperti gambar 3.11

Gambar 3.11 Proses Peragaan Waktu

Nilai Menit (isi memori 41H) diubah ke nilai segment dan nilai segment tersebut disimpan pada memori display. Konversi nilai segment ini sesuai dengan tabel 3.1 Dimana angka 8 nilai segmentnya adalah 3FH angka 2 mempunyai nilai segment 5BH, angka 4 mempunyai nilai segment 66H, dan angka 1 mempunyai nilai segment 06H. Pengkonversian ini dilakukan dengan look up table dimana nilai angka ditambahkan ke alamat awal tabel dan kemudian membaca isi tabel tersebut sebagai nilai segmentnya.
Tabel 3.1 konversi nilai segmen
Masukan Basis Masukan 74LS240
Tampilan 7-segment
TR3 TR2 TR1 TR0 2A4 2A3 2A2 1A4 1A3 1A2 1A1

0
1
1
1
0
0
0
0
1
1
0


1
0
1
1
0
1
1
0
1
1
0


1
1
0
1
0
1
0
1
0
1
1


1
1
1
0
1
1
1
1
1
1
1


Diagram alir dari penampilan waktu ini ditunjukkan pada gambar 3.12

Gambar 3.12 Diagram alir tampil waktu

3.3.2 Program Set Waktu
Program ini berfungsi untuk mengubah isi memori 41H (Menit) dan 42H(Jam) dengan cara menaikkan isi memori tersebut. Program akan menjalankan Setwaktu jika tombol Set waktu (port P2.7) diberi logika 1, dan menit akan bertambah setiap 0,5 kira-kira detik jika tombol set menit ditekan atau P2.6 diberi logia 1, dan Jam akan bertambah 1 jika tombol set jam ditekan atau P2.5 diberi logika 1. Program akan keluar dari set waktu jika P2.7 diberi logika 0. Diagram alir dari set waktu ditunjukkan pada gambar 3.12.


Gambar 3.13 Diagram alir set waktu

3.3.3 Program Naik Waktu
Penghasilan 1 detik dilaksanakan dengan menggunakan Timer 0, dimana Timer 0 diset menghasilkan interupsi setiap 0,05 detik sebanyak 20 kali. Untuk itu Timer 0 diset sebagai berikut: Modus kerja modus 1, bekerja sebagai timer. Frekuensi kristal yang digunakan sebagai sumber clock adalah 11,059200 MHz dengan demikian frekuensi kerja mikrokontroler adalah sebesar 0,921600MHz dengan demikian periode kerja adalah 1.085069µS. Untuk menghasilkan interupsi setiap 0,05 detik maka Timer 0 diset pada 65.535-(50000µS / 1.085069µS)= 65.535-46.080= 19455 atau 4BFFH dengan demikian TL0 diisi FFH dan TH0 diisi 4BH. Dengan demikian sub-program inisialisasi ditunjukkan pada berikut ini.
Sub-Program Inisialisasi:

INISIAL: MOV IE,#82H ;Set interupsi Timer 0
MOV TMOD,#01H ;set T0=16-bit
MOV TH0,#4BH ;PEMBAGI
MOV TL0,#0FFH ;Set Timer T0= 0,05dtk
MOV TCON,#10H ;Enable timer 1 dan T0
MOV 24H,#00 ;clear indiksi 1 dtk
MOV 20H,#00 ;counter indikasi 0,05 dtk
RET

Agar waktu bertambah setiap 0,05 detik maka alamat vektor interupsi diisikan dengan perintah melompat ke program penambahan 0,05 detik, dengan demikian alamat 0BH diisi dengan SJMP NAIKTIMER. Diagram alir untuk menaikkan waktu setiap 0,05 detik dan menaikkan waktu detik setelah 1 detik ditunjukkan gambar 3.14 dan programnya ditunjukkan pada program Naik-Waktu


Gambar 3.14 naik waktu

3.3.4 Sub-Program Periksa Alarm
Program Periksa alaram ini berfungsi untuk memeriksa apakah waktu masuk, pergantian dan berakhirnya perkuliahan telah dicapai yang diindikasikan dengan bunyi alaram. Data waktu alaram dibagi atas dua yaitu waktu perkuliahan normal dan waktu perkuliahan saat bulan Puasa. Pemilihan waktu perkuliahan normal dan saat bulan puasa dilaksanakan dengan melalui port P2.4 dimana waktu saat normal diset dengan P2.4 diberi logika 1 dan waktu perkuliahan saat puasa P2.4 logika 0. Alaram diaktivkan dengan memberikan logika 0 pada port P3.7. Waktu perkuliahan Pokiteknik MBP normal adalah sebagi berikut:
07.30-09.00,
09.00-10.30,
10.30-12.00,
12.30-14.00,
14.00-15.30,
15.30-17.00,
17.00-18.30,
19.00-20.30
Waktu perkuliahan Pokiteknik MBP saat bulan Puasa adalah sebagai berikut:
07.30-08.40,
08.40-10.10,
10.10-11.30,
13.00-14.20,
14.20-15.40,
15.40-17.00,
17.00-18.20,
19.00-20.20
Diagram alir periksa alaram ini ditunjukkan pada gambar 3.15 dan programnya ditunjukkan pada program Periksa alarm.

Gambar 3.15 Periksa alarm


BAB 4
PENGUJIAN DAN ANALISA

4.1 Pengujian Unit Display
Pengujian unit display dilakukan memakai catu daya 5 V dan sebuah tahanan sebesar 50 Ω

Gambar 4.1 Pengukuran rangkaian display

Pengujian dilakukan satu persatu mulai dari LSB s/d MSB dan dari Tr1 s/d Tr4. Dari pengujian unit ini, maka akan didapat data logika untuk menampilkan angka 0 s/d 9 dan perpindahan dari segmen berikutnya.
Setelah pengujian ini penulis melakukan pengujian memakai bit switch. Bit switch merupakan komponen pengujian yang dirangkai dari switch dan tahanan yang dihubungkan secara pull-up sehingga dapat menghasilkan logika high dan low. Dengan cara ini penulis dapat mencatat logika untuk unit display.


Gambar 4.2 Seven segmen

Tabel 4.1 Data unit display
Seven Segmen Common Anoda Tampilan
Data
Trace h g f e d c b a Angka
h h h l l l l l l 0
h h h h h h l l h 1
h h l h l l h l l 2
h h l h h l l l l 3
h h l l h h l l h 4
h h l l h l l h l 5
h h l l l l l h h 6
h h h h h h l l l 7
h h l l l l l l l 8
h h l l h h l l l 9


4.2 Pengujian Unit Driver
Pengujian unit driver dilakukan memakai bit switch. Hal ini dilakukan agar unit driver yang terpasang nantinya akan berfungsi dengan baik sehingga arus yang mengalir pada rangkaian tidak berlebih dan juga tidak kurang dari yang di harapkan.


4.2.1 Pengujian Ic Buffer


Gambar 4.3 Pengujian rangkaian driver

Sebelum dilakukan pengujian sebaiknya datasheet yang berhubungan dengan komponen unit driver di lampirkan. Ic 74LS240 merupakan Ic buffer yang mampu mengeluarkan maksimum 24 mA dalam keadaan low dan maksimum jatuh tegangan 0,5 Volt. Ic ini juga mempunyai karakteristik sebagai invers yang mana input dan output selalu bertolak belakang. Bila input adalah logika low maka output akan high dan begitu juga sebaliknya.
Hasil dari pengujian Ic 74LS240 diperlihatkan pada tabel 4.2. Pengujian dilakukan dengan memakai alat bantu bit switch sebagai pemberi logika (High =5Vdan logika low =0V).

Tabel 4.2 Hasil pengujian rangkaian driver
Bit Switch (Trace) Output Tcare Bit Switch (seven segmen) Output Seven Segmen
Bit 3 Bit 2 Bit 1 Bit 0 Tr 4 Tr 3 Tr 2 Tr 1 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 h g f e d c b a
H H H L OFF OFF OFF ON L L L L L L L H OFF OFF OFF OFF OFF OFF OFF ON
H H H L OFF OFF OFF ON L L L L L L H L OFF OFF OFF OFF OFF OFF ON OFF
H H H L OFF OFF OFF ON L L L L L H L L OFF OFF OFF OFF OFF ON OFF OFF
H H H L OFF OFF OFF ON L L L L H L L L OFF OFF OFF OFF ON OFF OFF OFF
H H H L OFF OFF OFF ON L L L H L L L L OFF OFF OFF ON OFF OFF OFF OFF
H H H L OFF OFF OFF ON L L H L L L L L OFF OFF ON OFF OFF OFF OFF OFF
H H H L OFF OFF OFF ON L H L L L L L L OFF ON OFF OFF OFF OFF OFF OFF
H H H L OFF OFF OFF ON H L L L L L L L ON OFF OFF OFF OFF OFF OFF OFF

Sementara transistor yang digunakan sebagai switch adalah komponen yang bekerja apabila di beri low. Dari data yang ada maka dapat dilakukan pengujian melalui pengukuran pada jalur output dari unit driver.

Gambar 4.4 Pengujian rangkaian buffer

Dari gambar 4.4 penulis dapat menguji unit driver tersebut. Pemberian tahanan pada unit ini berfungsi sebagai penahan arus sehingga jatuh tegangan pada Ic tidak berlebih sesuai dengan datasheet Ic 74LS240 sebesar 0,5 Volt ketika keadaan low. Hasil dari pengujian rangkaian buffer diperlihatkan pada tabel 4.3.
Pengujian dilakukan dengan memakai alat bantu bit switch sebagai pemberi logika (High =5Vdan logika low =0V).

Tabel 4.3 Pengujian rangkaian buffer
Bit Switch (Trace) Output Tcare Bit Switch (74LS240)
Bit 3 Bit 2 Bit 1 Bit 0 Tr 4 Tr 3 Tr 2 Tr 1 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
H H H L OFF OFF OFF ON L L L L L L L H
H H H L OFF OFF OFF ON L L L L L L H L
H H H L OFF OFF OFF ON L L L L L H L L
H H H L OFF OFF OFF ON L L L L H L L L
H H H L OFF OFF OFF ON L L L H L L L L
H H H L OFF OFF OFF ON L L H L L L L L
H H H L OFF OFF OFF ON L H L L L L L L
H H H L OFF OFF OFF ON H L L L L L L L

Catatan :
Logika high pada Ic 74LS240 mengakibatkan led menyala

Untuk kebenaran dari unit ini dalam pemakaian tahanan maka dilakukan sekali pengujian pengukuran pada output Ic sebelum tahanan.

Gambar 4.5 Pengukuran Vol Ic 74LS240

Dari gambar 4.5 maka penulis dapat mengukur Vol Ic 74LS240 yaitu sebesar 0,47 V. Sehingga angka tersebut dibawah nilai maksimum dari Vol Ic sesuai dengan datasheetnya. Untuk itu pemakaian tahanan pada unit ini sudah benar. Hasil pengukuran diperlihatkan pada table 4.4.


Tabel 4.4 Hasil pengukuran Vol 74LS240
Bit Switch (Trace) Bit Switch (seven segmen) Vol 74LS240 (volt)
Bit 3 Bit 2 Bit 1 Bit 0 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Pin 3 Pin 5 Pin 7 Pin 9 Pin 12 Pin 14 Pin 16 Pin 18
H H H L L L L L L L L H 4.9 4.9 4.9 4.9 4.9 4.9 4.9 0.28
H H H L L L L L L L H L 4.9 4.9 4.9 4.9 4.9 4.9 0.28 4.9
H H H L L L L L L H L L 4.9 4.9 4.9 4.9 4.9 0.28 4.9 4.9
H H H L L L L L H L L L 4.9 4.9 4.9 4.9 0.28 4.9 4.9 4.9
H H H L L L L H L L L L 4.9 4.9 4.9 0.28 4.9 4.9 4.9 4.9
H H H L L L H L L L L L 4.9 4.9 0.28 4.9 4.9 4.9 4.9 4.9
H H H L L H L L L L L L 4.9 0.28 4.9 4.9 4.9 4.9 4.9 4.9
H H H L H L L L L L L L 0.28 4.9 4.9 4.9 4.9 4.9 4.9 4.9


4.2.2 Pengujian Transistor sebagai saklar
Transistor sebagai saklar dalam pengujian ini adalah BC 327. Transistor jenis ini mempunyai penguatan hampir 300 kali menurut datasheet BC327.


Gambar 4.6 Pengujian transistor sebagai saklar

Bila logika low diberikan pada basis maka transistor bekeja sebagai switch. Pengukuran dapat dilakukan dengan voltmeter dengan melihat adanya tegangan pada kolektor. Ini membuktikan bahwa arus mengalir dari emitter ke kolektor. Logika high pada basis membuat transistor tidak bekerja dan pada pengukuran tidak terdapat adanya tegangan atau arus tidak mengalir pada kolektor.
Hasil dari pengujian transistor sebagai saklar diperlihatkan pada tabel 4.5.
Pengujian dilakukan dengan memakai alat bantu bit switch sebagai pemberi logika (High =5Vdan logika low =0V).

Tabel 4.5 Hasil pengujian transistor
VBB IB(Sat) IC(Sat) VCE Status Led
5 0 0mA 2.3V OFF
0 2mA 16mA 0.049V ON


4.3 Pengujian Unit Pengatur/Pengesetan Waktu
Pengujian unit dilakukan dengan pengukuran memakai voltmeter. Hal ini dilakukan agar unit tombol yang terpasang nantinya akan berfungsi dengan baik sehingga arus yang mengalir pada rangkaian tidak berlebih atau kurang dari yang di harapkan.


Gambar 4.7 Pengujian rangkaian pengatur jam dengan voltmeter

Bila tombol ditekan maka arus mengalir ke ground dan voltmeter akan mengukur tegangan yang sangat rendah sehingga dapat dikatakan dalam keadaan low. Dalam keadaan tombol tidak ditekan arus mengalir ke unit pengendali. Hasil dari rangkaian pengatur jam diperlihatkan pada tabel 4.6.
Pengujian dilakukan dengan memakai alat bantu bit switch sebagai pemberi logika (High =5Vdan logika low =0V).
Tabel 4.6 Hasil pengukuran pada rangkaian pengatur jam
Status tombol V.Out
Ditekan 0
Tidak Ditekan 5


4.4 Pengujian Unit Alarm


Gambar 4.8 Pengujian rangkaian clock alarm dengan voltmeter

Logika high akan mengakibatkan arus mengalir pada clock alarm dan dapat di ukur melalui voltmeter. Hasil dari rangkaian pengatur jam diperlihatkan pada tabel 4.7. Pengujian dilakukan dengan memakai alat bantu bit switch sebagai pemberi logika (High =5Vdan logika low =0V).


Tabel 4.7 Hasil pengukuran pada rangkaian pengatur jam
Data logika Vout Status Alarm
High (5V) 5 Mengeluarkan Sinyal Suara
Low (0V) 0 Tidak Mengeluarkan Sinyal Suara


4.5 Pengujian Unit Pengendali
Pengujian dilakukan dengan memasukkan program untuk mengeluarkan data 55H pada port 1 .
MOV P1,#55 H
Selanjutnya dilakukan pengujian dengan menggunakan logic probe pada port 1.

Gambar 4.9 Pengujian rangkaian pengendali dengan logic probe
Pengujian dilakukan dari P1.1 sampai P1.7. hasil dari pengujian dapat dilihat pada table 4.2.
Tabel 4.2 Hasil Pengujian Port 1
Port P1.7 P1.6 P0.5 P1.4 P1.3 P1.2 P1.1 P1.0
Logic Probe L H L H L H L H


Tabel 4.2 Hasil Pengujian Port 1
Port P1.7 P1.6 P0.5 P1.4 P1.3 P1.2 P1.1 P1.0
Voltmeter 0.2 3.7 0.2 3.7 0.2 3.7 0.2 3.7

Dari hasil pengujian tabel 4.2 dapat disimpulkan bahwa unit pengendali telah bekerja dengan benar, dimana perintah yang diberikan adalah menghasilkan logika 010101012 pada port P1.


BAB V
PENUTUP
5.1 Kesimpulan
Setelah melalui tahap perancangan dan pengujian system maka dapat diambil kesimpulan sebagai berikut :
1. Perancangan ini sangat bagus untuk aplikasi pengaturan jadwal pada kantor, kampus dan sekolah.
2. Dengan fungsi Jam Alarm Digital ini memungkinkan keakuratan waktu yang lebih tepat dalam penjadwalan kegiatan perkuliahan.
3. Dengan menggunakan interupsi timer, perhitungan waktu sangat tepat sebab sumber clock adalah sebuah crystal yang stabil.
4. Dengan mengggunakan mikrokontroller AT89S51 penandaan waktu pergantian jam kuliah dapat lebih sederhana dan pengubahan waktu alarm dapat dilakukan dengan mengubah data waktu pada program dan pengesetan waktu dapat dilakukan dengan pengesetan tombol.

5.2 Saran
Dalam penyelesaian laporan tugas akhir ini diharapkan kepada pembaca untuk lebih mengembangkan lagi bagi pengguna system penambahan rangkaian penunjang maupun pengembangan program dan penambahan rangkaian yang lebih efisien. Untuk pengembangan jam digital ini disarankan untuk menggunakan alarm yang lebih besar dan tampilan display seven segmen yang lebih besar juga, dan alat ini dapat dihubungkan dengan computer.
DAFTAR PUSTAKA

1. Malvino Barmawi (1996) Prinsip-prinsip Elektronika. Edisi 2 Jilid 1,2. Jakarta, Penerbit Erlangga.
2. Malvino Barmawi (1996) Prinsip-prinsip Elektronika. Edisi 3 Jilid 1,2. Jakarta, Penerbit Erlangga.
3. Albert paul Malvino (1983) Elektronika Komputer Digital, Pengantar Mikrokomputer Edisi 2, Itb, Penerbit Erlangga.
4. Wasito Suyono (1992) Data sheet Book 1, data IC Linier, TTL dan CMOS : (kumpulan data penting komponen elektronika) Cet. 2. Jakarta, Penerbit PT. Elex Media komputindo,
5. Richard Blocher, Dipl. Phys (2004) Dasar Elektronika, Penerbit Andi Yogyakarta.
6. Milman dan Halkias (1993) Elektronika Terpadu, Jilid 1. Penerbit Erlangga.
7. www.atmel.com
8. www.maxim-ic.com
9. www.DatasheetCatalog.com
10. www.Design-NET.com


Proram untuk menjalankan Jam alarm perkuliahan
ORG 00
SJMP START;

ORG 30H
START: CALL CLEAR_DISP
MOV 25H,#80H
MOV 41H,#00
MOV 42H,#00
ULANG:
JB P2.7,TERUS ;Jika logik 0 set waktu
CALL SET_WAKTU
TERUS: MOV A,41H
MOV R0,#30h
CALL SEGMENT
MOV A,42H
MOV R0,#32h
CALL SEGMENT
MOV R7,#05H
DEL2: MOV R6,#0FFH
DEL1: CALL TAMPIL ;Tampilkan
DJNZ R6,DEL1
DJNZ R7,DEL2
SJMP ULANG

SET_WAKTU: MOV A,P2 ;Periksa port P2
ANL A,#0E0H
CJNE A,#20H,T_NMNT
MOV A,42H ;Naik Jam
ADD A,#01
DA A
MOV 42H,A
CJNE A,#24H,T_SET
MOV 42H,#00
SJMP T_SET
T_NMNT: CJNE A,#40H,T_SET
MOV A,41H ;Naik Menit
ADD A,#01
DA A
MOV 41H,A
CJNE A,#60H,T_SET
MOV 41H,#00
T_SET: MOV R0,#30h
MOV A,41H ;Ubah ke Segment
CALL SEGMENT
MOV A,42H
MOV R0,#32h
CALL SEGMENT
MOV R7,#10H
DEL_SET2: MOV R6,#0FFH
DEL_SET1: CALL TAMPIL ;Tampilkan
DJNZ R6,DEL_SET1
DJNZ R7,DEL_SET2
JNB P2.7,SET_WAKTU
RET


CLEAR_DISP: MOV R0,#30H
UL_kOSONG: MOV A,#00
MOV @R0,A
INC R0
CJNE R0,#34H,UL_kOSONG
RET

SEGMENT: MOV DPTR,#100H
MOV R1,A
ANL A,#0FH ;Ambil Low-Niblle
MOVC A,@A+DPTR
MOV @R0,A ;Simpan ke buffer
MOV A,R1
RR A
RR A
RR A
RR A
ANL A,#0FH
MOVC A,@A+DPTR
INC R0
MOV @R0,A
RET

TAMPIL: MOV R0,#30H ;set alamat awal buffer
MOV DPTR,#110H ;Set alaat awal data Trace
UL_DISP: MOV P1,#00 ;Clear display
MOV R5,#03 ;Delay
DJNZ R5,$
CLR A ;Ambil data trace
MOVC A,@A+DPTR
MOV P0,A ;Berkan ke Tr
MOV A,@R0 ;Ambil data
ORL A,25H ;Aktifkan dot
MOV P1,A ;Tampilkan
MOV R5,#03 ;Delay
DJNZ R5,$
INC DPTR
INC R0
CJNE R0,#34H,UL_DISP
MOV P1,#00
RET


ORG 100H

DB 3FH,06H,5BH,4FH ; 0;1;2;3
DB 66H,6DH,7DH,07H ; 4;5;6;7
DB 7FH,67H,77H,7CH ; 8;9;A;B
DB 39H,5EH,79H,75H ; C;D;E;F


ORG 110H
DB 07H,0BH,0DH,0EH ;Data Trace

ORG 00
SJMP START;
ORG 0BH
AJMP NAIKTIMER

ORG 30H
START: CALL INISIAL
CALL CLEAR_DISP
CLR P3.7 ;Alaram off
MOV 40H,#50H ;set waktu 07.30.30
MOV 41H,#30H
MOV 42H,#07
ULANG: JB P2.7,TERUS
CALL SET_WAKTU
TERUS: MOV A,24H
CJNE A,#01,TERUS2
CALL NAIK_WAKTU
TERUS2: MOV A,41H ;Ambil nilai menit
MOV R0,#30H ;Set digit 0,1
CALL SEGMENT
MOV A,42H ;Ambil nilai jam
MOV R0,#32H ;Set digit 2,3
CALL SEGMENT
CALL TAMPIL ;Tampilkan
CALL CHEK_ALARAM
SJMP ULANG

SET_WAKTU:MOV A,P2 ;Periksa port P2
ANL A,#0E0H
CJNE A,#20H,T_NMNT
MOV A,42H ;Naik Jam
ADD A,#01
DA A
MOV 42H,A
CJNE A,#24H,T_SET
MOV 42H,#00
SJMP T_SET
T_NMNT: CJNE A,#40H,T_SET
MOV A,41H ;Naik Menit
ADD A,#01
DA A
MOV 41H,A
CJNE A,#60H,T_SET
MOV 41H,#00
T_SET: MOV R0,#30h
MOV A,41H ;Ubah ke Segment
CALL SEGMENT
MOV A,42H
MOV R0,#32h
CALL SEGMENT
MOV R7,#10H
DEL_SET2: MOV R6,#0FFH
DEL_SET1: CALL TAMPIL ;Tampilkan
DJNZ R6,DEL_SET1
DJNZ R7,DEL_SET2
JNB P2.7,SET_WAKTU
RET

NAIK_WAKTU: MOV A,40H ;Ambil nilai dtk
CLR C
SUBB A,#60H ;Periksa apakah >=60
JC KEL_NAIK ;Keluar jika tdk
CJNE A,#60H,KEL_NAIK;
MOV 40H,#00 ;Jika >atau =60, Set dtk =lebihnya
MOV 40H,A
MOV A,41H ;Naikkan menit
ADD A,#01
DA A ;Desimalkan
MOV 41H,A
CJNE A,#60H,KEL_NAIK ;Periksa apakah telah 60
MOV 41H,#00 ;Jika ya set 00
MOV A,42H ;Naikkan jam
ADD A,#01
DA A ;Desimalkan
MOV 42H,A
CJNE A,#24H,KEL_NAIK ;Periksa apakah sdh 24
MOV 42H,#00
KEL_NAIK: MOV 24H,#00 ;Clear indikasi 1 dtk
RET

NAIKTIMER: INC 20H ;Naikkan indikasi 0,05dtk
MOV R5,20H
CJNE R5,#0AH,LMPT ;Periksa apakah sdh 0,5dtk?
MOV 20H,#00
MOV A,25H
CJNE A,#80H,SET ;Periksa indikasi kedip
MOV 25H,#00 ; jika 01 set jadi 00
SJMP LMPT_NAIK
SET: MOV 25H,#80H ;Jika 00 set 01
LMPT_NAIK: INC R2
CJNE R2,#02,LMPT
MOV R2,#00 ;Clear count 0,5dtk
MOV A,40H ;Naikkan detik
ADD A,#01H
DA A ;Desimalkan
MOV 40H,A
MOV 24H,#01H ;Set indikasi 1dtk
LMPT: MOV TH0,#3CH ; Menghasilkan interupt setiap
MOV TL0,#0AFH ; 0,05 detik
MOV IE,#82H ; Interupsi T0 dan serial enable
RETI


;
INISIAL: MOV IE,#82H ;Set interupsi Timer 0
MOV TMOD,#01H ;set T0=16-bit
MOV TH0,#3CH ;Baud rate 9600bps dgn 11.0592MHz
MOV TL0,#0AFH ;Set Timer T0= 0,05dtk
MOV TCON,#10H ;Enable timer 1 dan T0
MOV 24H,#00 ;clear indiksi 1 dtk
MOV 20H,#00 ;counter indikasi 0,05 dtk
MOV 25H,#00 ;indikasi dot detik
MOV R2,#00 ;counter indikasi 0,5 dtk
RET

CLEAR_DISP: MOV R0,#30H
UL_kOSONG: MOV A,#00
MOV @R0,A
INC R0
CJNE R0,#34H,UL_kOSONG
RET

SEGMENT: MOV DPTR,#200H
MOV R1,A
ANL A,#0FH ;Ambil Low-Niblle
MOVC A,@A+DPTR
MOV @R0,A ;Simpan ke buffer
MOV A,R1
RR A
RR A
RR A
RR A
ANL A,#0FH
MOVC A,@A+DPTR
INC R0
MOV @R0,A
RET

TAMPIL: MOV R0,#30H ;set alamat awal buffer
MOV DPTR,#210H ;Set alamat awal data Trace
UL_DISP: MOV P1,#00 ;Clear display
CLR A ;Ambil data trace
NOP
MOVC A,@A+DPTR
MOV P0,A ;Berkan ke Tr
MOV A,@R0 ;Ambil data
ORL A,25H ;Aktifkan dot
MOV P1,A ;Tampilkan
MOV 27H,#05 ;Delay
DJNZ 27H,$
INC DPTR
INC R0
CJNE R0,#34H,UL_DISP
MOV P1,#00
RET

CHEK_ALARAM: MOV DPH,#02H ;Set alamat awal tabel alaram
MOV R3,#20H ;Alamat alaram menit
MOV R4,#30H ;Alamat alaram jam
CHEK_ALRM: MOV DPL,R3
CLR A
MOVC A,@A+DPTR
CJNE A,41H,LAIN ;Bandingkan menit
MOV DPL,R4
CLR A
MOVC A,@A+DPTR
CJNE A,42H,LAIN ;Bandingkan menit
SETB P3.7 ;Jika sama menit dan jam alaram ON
MOV R7,#01H
DELAY_ALARAM2: MOV R6,#01H
DELAY_ALARAM1: NOP
DJNZ R6,DELAY_ALARAM1
DJNZ R7,DELAY_ALARAM2
SJMP KEL_ALARAM
LAIN: INC R3
INC R4
CJNE R3,#2BH,CHEK_ALRM
KEL_ALARAM: CLR P3.7
RET

ORG 200H

DB 3FH,06H,5BH,4FH ; 0;1;2;3
DB 66H,6DH,7DH,07H ; 4;5;6;7
DB 7FH,67H,77H,7CH ; 8;9;A;B
DB 39H,5EH,79H,75H ; C;D;E;F


DB 0C0H,0F9H,0A4H,0B0H ; 0;1;2;3
DB 99H,92H,82H,0F8H ; 4;5;6;7
DB 80H,90H,88H,43H ; 8;9;A;B
DB 0C6H,0A1H,86H,8EH ; C;D;E;F

ORG 210H
DB 07H,0BH,0DH,0EH ;Data Trace

ORG 220H
DB 30H,00H,30H,00H,30H,00H,30H,00H,30H,00H,30H ;Data menit alaram

ORG 230H
DB 07H,09H,10H,12H,12H,14H,15H,17H,18H,19H,20H ;Data jam alaram


ORG 00
SJMP START;

START: CALL CLEAR_DISP
MOV 41H,#23H
MOV 42H,#15H
MOV A,41H ;Ambil nilai menit
MOV R0,#30H ;Set digit 0,1
CALL GET_SEGMENT
MOV A,42H ;Ambil nilai jam
MOV R0,#32H ;Set digit 2,3
CALL GET_SEGMENT
TERUS2: CALL TAMPIL ;Tampilkan
SJMP START


CLEAR_DISP: MOV R0,#30H
UL_kOSONG: MOV A,#00
MOV @R0,A
INC R0
CJNE R0,#34H,UL_kOSONG
RET

GET_SEGMENT: MOV DPTR,#100H
MOV R1,A
ANL A,#0FH ;Ambil Low-Niblle
MOVC A,@A+DPTR
MOV @R0,A ;Simpan ke buffer
MOV A,R1
RR A
RR A
RR A
RR A
ANL A,#0FH
MOVC A,@A+DPTR
INC R0
MOV @R0,A
RET

TAMPIL: MOV R0,#30H ;set alamat awal buffer
MOV DPTR,#110H ;Set alamat awal data Trace
UL_DISP: MOV P1,#00 ;Clear display
MOV R5,#01 ;Delay
DJNZ R5,$
CLR A ;Ambil data trace
MOVC A,@A+DPTR
MOV P0,A ;Berikan ke Tr
MOV A,@R0 ;Ambil data
MOV P1,A ;Tampilkan
MOV R5,#05H ;Delay
DJNZ R5,$
INC DPTR
INC R0
CJNE R0,#34H,UL_DISP
MOV P1,#00
RET

ORG 100H

DB 3FH,06H,5BH,4FH ; 0;1;2;3
DB 66H,6DH,7DH,07H ; 4;5;6;7
DB 7FH,67H,77H,7CH ; 8;9;A;B
DB 39H,5EH,79H,75H ; C;D;E;F


ORG 110H
DB 07H,0BH,0DH,0EH ;Data Trace