Anda di halaman 1dari 55

FREQUENCY COUNTER BERBASIS

MIKROKONTROLER AT89S52

TUGAS AKHIR

AFNIZA
052408102

PROGRAM STUDI D3 FISIKA INSTRUMENTASI


DEPARTEMEN FISIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS SUMATERA UTARA
MEDAN
2008

Afniza : Frequency Counter Berbasis Mikrokontroler AT89S52, 2008.


USU Repository © 2009
FREQUENCY COUNTER BERBASIS
MIKROKONTROLER AT89S52

TUGAS AKHIR

Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh Ahli Madya

AFNIZA
052408102

PROGRAM STUDI D3 FISIKA INSTRUMENTASI


DEPARTEMEN FISIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS SUMATERA UTARA
MEDAN
2008

Afniza : Frequency Counter Berbasis Mikrokontroler AT89S52, 2008.


USU Repository © 2009
PERSETUJUAN

Judul : FREQUENCY COUNTER BERBASIS


MIKROKONTROLER AT89S52
Kategori : TUGAS AKHIR
Nama : AFNIZA
Nomor Induk Mahasiswa : 052408102
Program Studi : DIPLOMA TIGA (D3) FISIKA INSTRUMENTASI
Departemen : FISIKA
Fakultas : MATEMATIKA DAN ILMU PENGETAHUAN
ALAM (FMIPA) UNIVERSITAS SUMATERA
UTARA

Diluluskan di
Medan, Juni 2008

Diketahui
Departemen Fisika FMIPA USU
Ketua Program Studi D3 FIN Pembimbing

Drs. Syahrul Humaidi, M.Sc. Drs. Syahrul Humaidi, M.Sc.


NIP 132050870 NIP 132050870

Afniza : Frequency Counter Berbasis Mikrokontroler AT89S52, 2008.


USU Repository © 2009
PENGHARGAAN

Puji dan syukur penulis panjatkan kepada Allah SWT yang Maha Pengasih dan Maha

Penyayang, dengan limpah karunia-Nya lah penulis dapat menyelesaikan tugas akhir

ini dalam waktu yang telah ditetapkan.

Ucapan terimakasih saya sampaikan kepada Dr. M. Situmorang selaku Ketua

Departemen Fisika. Ucapan terima kasih juga disampaikan kepada Drs. Syahrul

Humaidi, M.Sc, selaku Ketua Program Studi D3 Fisika Instrumentasi dan juga dosen

pembimbing pada penyelesaian tugas akhir ini yang telah membrikan panduan dan

penuh kepercayaan kepada saya untuk menyelesaikan tugas akhir ini. Ucapan terima

kasih juga disampaikan kepada Dr. Eddy Marlianto, selaku Dekan FMIPA. Ucapan

terima kasih juga disampaikan kepada Dra. Yustinon, M.Si, selaku sekretaris jurusan

Departemen Fisika. Seluruh dosen pada Departemen Fisika. Kepada Ayahanda Badrus

Zaman dan Ibunda Nasrah yang telah banyak memberikan dukungan dan semangat

kepada penulis, serta adik Endi Reza, Fery dan Dina yang selalu ada sebagai

penyemangat. Abang Akhyansyah Putra Siregar S.Si, yang telah banyak memberikan

bantuan dan juga masukan kepada penulis. Rekan-rekan Fisika Instrumentasi stambuk

2005 khususnya Laidy, Ayu, Linda dan Yanti makasih ya atas dukungannya.

Afniza : Frequency Counter Berbasis Mikrokontroler AT89S52, 2008.


USU Repository © 2009
ABSTRAK

Frequency counter adalah instrument elektronik, atau sebuah komponen yang


dipergunakan untuk mengukur frekuensi. Berangkat dari defenisi tersebut penulis
membuat frequency counter sederhana menggunakan mikrokontroler AT89S52
dengan memanfaatkan interrupt timer / counter. Frequency counter sederhana dengan
memanfaatkan interrupt timer / counter ini sudah cukup memadai untuk menghitung
pulsa digital dengan level tegangan TTL (0 Volt ~ 5 Volt). Oleh sebab itu frequency
counter ini hanya dapat mengukur masukan pulsa berupa sinyal persegi yang memiliki
amplitudo maksimum 4,5 V – 5 V. Prinsip kerja dari frekuensi counter ini adalah
dengan mencuplik frekuensi dari sinyal yang masuk selama 1 detik, dari cuplikan
tersebut mikrokontoler akan menghitung pulsa yang terjadi dengan memanfaatkan
fungsi counter, hasil dari pengukuran frekuensi akan ditampilkan pada display LCD.

Afniza : Frequency Counter Berbasis Mikrokontroler AT89S52, 2008.


USU Repository © 2009
FREQUENCY COUNTER BERBASIS
MIKROKONTROLER AT89S52

ABSTRACT

Frequency counter is an electronics instrument, or a component which is used for


measuring frequency. With that definition of frequency counter I am as a writer got an
idea to build a simple frequency counter by using ATMEL microcontroller’s product
with the type is AT89S52. This frequency counter use one of the capability from
AT89S52 microcontroller. AT89S52 can counts the pulse within the timer / counter
pin of microcontroller. The principle of this frequency counter is described like this,
first we activated the timer interrupt and switch the function as counter, as the external
pulse interrupt this timer then the counter would be activated. The counting of external
pulse is sampled for 1 second, after 1 second of sampling we can display the counts to
LCD and display it as hertz. This frequency counter is designed for detect digital pulse
with TTL level (0 Volt ~ 5 Volt). Because of that this frequency counter is limited for
DC current with squarewave pulse and maximum amplitude is between 4,5 – 5 Volt.

Afniza : Frequency Counter Berbasis Mikrokontroler AT89S52, 2008.


USU Repository © 2009
DAFTAR ISI

Halaman
Persetujuan ................................................................................................................. i
Penghargaan ............................................................................................................... ii
Abstrak....................................................................................................................... iii
Abstract ...................................................................................................................... iv
Daftar isi .................................................................................................................... v
Daftar Tabel ............................................................................................................... vii
Daftar Gambar............................................................................................................ viii

Bab 1 Pendahuluan ................................................................................................... 1


1.1 Latar Belakang ......................................................................................... 1
1.2 Tujuan ...................................................................................................... 1
1.3 Manfaat .................................................................................................... 2
1.4 Sistematika Penulisan .............................................................................. 2

Bab 2 Landasan Teori............................................................................................... 4


2.1 Perangkat Keras ....................................................................................... 4
2.1.1 Frequency Counter................................................................. 4
2.1.2 Sisten Minimum mikrokontroler AT89S52 ........................... 7
2.1.2.1 Konstruksi AT89S52 ................................................. 9
2.1.2.2 Gambar IC Mikrokontroler AT89S52 ...................... 11
2.1.3 Modul LCD (Liquid Crystal Display) M1632 ....................... 14
2.1.3.1 Kaki-kaki Modul M1632 ........................................... 14
2.1.3.2 Akses ke Register....................................................... 16
2.1.3.3 Struktur Memori LCD................................................ 20
2.2 Perangkat Lunak ..................................................................................... 20
2.2.1 Bahasa BASIC Menggunakan BASCOM-8051 .................... 21
2.2.1.1 Karakter dalam BASCOM ......................................... 21
2.2.1.2 Tipe Data.................................................................... 22
2.2.1.3 Variabel Data ............................................................. 22
2.2.1.4 Alias ........................................................................... 23
2.2.1.5 Konstanta ................................................................... 23
2.2.1.6 Array .......................................................................... 24
2.2.1.7 Operasi-operasi Dalam BASCOM............................. 25
2.2.1.8 Aplikasi dengan LCD (liquid crystal display) ........... 26
2.2.2 Software Downloader (ISP – Flash Programmer 3.0a) ........ 28

Bab 3 Rancangan Sistem .......................................................................................... 30


3.1 Diagram Blok Rangkaian......................................................................... 30
3.2 Rangkaian Sistem Minimum Mikrokontroler AT89S52 ........................ 30
3.3 Rangkaian Pengkondisi Sinyal ................................................................ 32
3.4 Rangkaian LCD (Liquid Crystal Display) ............................................... 33
3.5 Rangkaian Power Supply ......................................................................... 34

Afniza : Frequency Counter Berbasis Mikrokontroler AT89S52, 2008.


USU Repository © 2009
3.6 Diagram Alir Pemrograman..................................................................... 36

Bab 4 Pengujian Rangkaian ..................................................................................... 39


4.1 Pengujian Rangkaian Mikrokontroler AT89S52 ..................................... 39
4.2 Pengujian Rangkaian Pengkondisi Sinyal ............................................... 39
4.3 Pengujian Rangkaian Power Supply ........................................................ 40
4.4 Pengujian Rangkaian secara keseluruhan ................................................ 40

Bab 5 Kesimpulan dan Saran ................................................................................... 42


5.1 Kesimpulan .............................................................................................. 42
5.2 Saran ........................................................................................................ 43

Daftar Pustaka ............................................................................................................ 44


Lampiran A ................................................................................................................ 45

Afniza : Frequency Counter Berbasis Mikrokontroler AT89S52, 2008.


USU Repository © 2009
DAFTAR TABEL

Halaman
Tabel 2.1. Konfigurasi Port 3 Mikrokontroler AT89S52 ..........................................13

Tabel 2.2 Karakter Spesial .........................................................................................21

Tabel 2.3 Tipe data BASCOM..................................................................................22

Tabel 2.4 Tabel Operator Relasi ................................................................................25

Afniza : Frequency Counter Berbasis Mikrokontroler AT89S52, 2008.


USU Repository © 2009
DAFTAR GAMBAR

Halaman

Gambar 2.1 Blok Diagram Fungsional AT89S52...................................................... 8

Gambar 2.2 Konfigurasi Pin Mikrokontroler AT89S52 ............................................ 11

Gambar 2.3 Timing penulisan data ke register perintah mode 4 bit interface ........... 17

Gambar 2.4 Timing diagram pembacaan register perintah mode 4 bit interface....... 18

Gambar 2.5 Timing diagram penulisan data ke register data mode 4 bit interface ... 19

Gambar 2.6 Timing diagram pembacaan data dari register data

mode 4 bit interface ............................................................................... 19

Gambar 2.7 Software Desain PCB (Printed Circuit Board) Eagle 4.13r .................. 28

Gambar 3.1 Diagram blok rancangan frequency counter .......................................... 30

Gambar 3.2 Rangkaian Skematik Sistem Minimum Mikrokontroler AT89S52 ....... 31

Gambar 3.3 Skematik rangkaian Pengkondisi Sinyal................................................ 32

Gambar 3.4 Rangkaian Skematik Konektor yang dihubungkan dari LCD

Mikrokontroler ...................................................................................... 33

Gambar 3.5 Rangkaian Skematik Konektor yang dihubungkan dari LCD ke

Mikrokontroler....................................................................................... 33

Gambar 3.6 Rangkaian Skematik Power Supply ....................................................... 34

Gambar 3.7 Flowchart pemrograman frequency counter .......................................... 36

Afniza : Frequency Counter Berbasis Mikrokontroler AT89S52, 2008.


USU Repository © 2009
Afniza : Frequency Counter Berbasis Mikrokontroler AT89S52, 2008.
USU Repository © 2009
BAB 1

PENDAHULUAN

1.1. Latar Belakang

Frequency counter dipergunakan untuk mengukur frekuensi keluaran dari suatu alat.

Dalam laboratorium frequency counter diperlukan untuk mengukur besarnya keluaran

frekuensi. Pada saat ini Frequency counter dapat dibangun dengan rangkaian yang

sederhana menggunakan fasilitas yang ada pada mikrokontroler, dengan

memanfaatkan fasilitas pada mikrokontroler tersebut kita dapat membangun sebuah

frequency counter yang sederhana. Frequency counter dapat mempermudah kita untuk

menghitung frekuensi sinyal yang masuk.

1.2. Tujuan Penulisan

Penulisan laporan proyek ini bertujuan untuk:

a. Sebagai salah satu syarat untuk dapat menyelesaikan program Diploma Tiga

(D-III) Fisika Instrumentasi FMIPA Universitas Sumatera Utara.

b. Pengembangan kreatifitas mahasiswa dalam bidang ilmu instrumentasi

pengontrolan dan elektronika sebagai bidang diketahui.

c. Untuk mengaplikasikan ilmu pengetahuan yang diperoleh dari perkuliahan

terhadap realita.

Afniza : Frequency Counter Berbasis Mikrokontroler AT89S52, 2008.


USU Repository © 2009
2

d. Membuat dan mengetahui cara kerja frequency counter berbasis

mikrokontroler AT89S52.

1.3. Batasan Masalah

Pembahasan masalah dalam laporan proyek ini hanya mencakup masalah-masalah

sebagai berikut:

a. Cara kerja rangkaian yang meliputi analisis rangkaian pada tiap blok, serta

menguraikan secara umum fungsi masing-masing blok.

b. Masukan berupa sinyal persegi khususnya sinyal DC dengan amplitudo

maksismum 4,5 Volt sampai 6 Volt.

1.4. Sistematika Penulisan

Untuk mempermudah pembahasan dan pemahaman maka penulis membuat

sistematika pembahasan bagaimana sebenarnya prinsip kerja dari frequency counter.

BAB 1 PENDAHULUAN

Dalam hal ini berisikan mengenai latar belakang, tujuan penulisan,

batasan masalah, serta sistematika penulisan.

BAB 2 LANDASAN TEORI

Landasan teori, dalam bab ini dijelaskan tentang teori pendukung yang

digunakan untuk pembahasan dan cara kerja dari rangkaian teori

pendukung itu antara lain tentang mikrokontroler AT89S52 (hardware

dan software), bahasa program yang dipergunakan, serta cara kerja dari

frequency counter dan komponen pendukung.

Afniza : Frequency Counter Berbasis Mikrokontroler AT89S52, 2008.


USU Repository © 2009
3

BAB 3 RANCANGAN SISTEM

Analisa rangkaian dan sistem kerja, dalam bab ini dibahas tentang

sistem kerja perblok diagram.

BAB 4 PENGUJIAN RANGKAIAN

Pembahasan rangkaian dan program yang dijalankan serta pengujian

rangkaian.

BAB 5 KESIMPULAN DAN SARAN

Bab ini merupakan penutup yang meliputi tentang kesimpulan dari

pembahasan yang dilakukan dari laporan proyek ini serta saran apakah

rangkaian ini dapat dibuat lebih efisien dan dikembangkan

perakitannya pada suatu metode lain yang mempunyai sistem kerja

yang sama.

Afniza : Frequency Counter Berbasis Mikrokontroler AT89S52, 2008.


USU Repository © 2009
BAB 2

LANDASAN TEORI

2.1. Perangkat Keras

Perangkat keras merupakan bentuk fisik dari frequency counter yang terdiri dari

modul power supply, sistem minimum AT89S52, pengkondisi sinyal, LCD interface,

LCD display.

2.1.1. Frequency Counter

Frequency counter adalah instrument elektronik, atau sebuah komponen, yang

dipergunakan untuk mengukur frekuensi. Frekuensi didefenisikan sebagai jumlah dari

kejadian yang khusus dan terjadi pada satu periode waktu. Timer dan Counter

merupakan sarana input yang kurang dapat perhatian pemakai mikrokontroler, dengan

sarana input ini mikrokontroler dengan mudah bisa dipakai untuk mengukur lebar

pulsa, membangkitkan pulsa dengan lebar yang pasti, dipakai dalam pengendalian

tegangan secara PWM (Pulse Width Modulation) dan sangat diperlukan untuk aplikasi

remote control dengan infra merah.

Sebagian frequency counter bekerja dengan menggunakan sebuah pencacah

yang mana akumulasi jumlah dari kejadian yang terjadi dalam satu periode dari

waktu. Setelah periode diset (1 detik, untuk contoh), nilai pada counter ditransfer pada

Afniza : Frequency Counter Berbasis Mikrokontroler AT89S52, 2008.


USU Repository © 2009
5

display dan counter reset ke nol. Jika kejadian tersebut diukur berulang maka

stabilitas dari frekuensi yang dihitung haruslah lebih rendah dari pada frekuensi clock

osilator (pembangkit gelombang/pulsa) yang digunakan, ketelitian dari pengukuran

dapat ditingkatkan lebih baik dengan mengukur waktu yang dibutuhkan untuk seluruh

jumlah siklus, daripada menghitung jumlah dari seluruh siklus yang diamati dalam

waktu tertentu (sering disebut sebagai teknik timbal-balik).

Pada dasarnya sarana input yang satu ini merupakan seperangkat pencacah

biner (binary counter) yang terhubung langsung ke saluran-data mikrokontroler,

sehingga mikrokontroler bisa membaca kedudukan pancacah, bila diperlukan

mikrokontroler dapat pula merubah kedudukan pencacah tersebut.

Seperti layaknya pencacah biner, bilamana sinyal denyut (clock) yang diumpankan

sudah melebihi kapasitas pencacah, maka pada bagian akhir untaian pencacah akan

timbul sinyal limpahan, sinyal ini merupakan suatu hal yang penting sekali dalam

pemakaian pencacah.

Osilator (pembangkit gelombang/pulsa) internal yang berfungsi sebagai

penghitung waktu dalam frequency counter disebut sebagai timebase (basis waktu),

dan harus dengan kalibrasi yang sangat akurat.

Jika sesuatu yang dihitung sudah terbentuk dalam bentuk sinyal elektronik,

antarmuka sederhana pada instrumen lebih mudah dilakukan. Sinyal yang lebih

kompleks membutuhkan pengkondisi sinyal agar dapat diproses lebih lanjut ke

rangkaian frequency counter. Pada kebanyakan frequency counter pasti akan

menyediaka fasilitas penguat (amplifier), filtering (penyaring), dan rangkaian

penjernih sinyal pada inpuntnya. Jenis lain dari kejadian berkala yang tidak bersifat

Afniza : Frequency Counter Berbasis Mikrokontroler AT89S52, 2008.


USU Repository © 2009
6

elektronik pada alam akan membutuhkan alat untuk mengkonversikan beberapa

bentuk dari sinyal tersebut dengan menggunakan transduser atau sensor. Sebagai

contoh, kejadian mekanik yang dapat mengatur hidup matinya lampu, dan counter

akan menghitung pulsa yang dihasilkan.

Frequency counter yang dirancang untuk frekuensi radio (RF) juga sama

dalam operasi dan prinsipnya seperti halnya frequency counter yang mencacah

frekuensi yang lebih rendah. Frequency counter mempunyai beberapa batasan

sebelum overflow. Untuk frekuensi yang sangat tinggi, kebanyakan rancangannya

menggunakan prescaler (skala pembanding) untuk mengubahnya menjadi sinyal yang

dapat dicacah oleh sirkuit digital biasa/normal dalam penghitungan frekuensinya.

Display pada instrumen tersebut tetap menampilkan nilai frekuensi yang sebenarnya.

Jika frekuensi yang diukur lebih tinggi daripada skala pembanding (prescaler) yang

tersedia, maka sebuah pemadu sinyal (mixer) dan pembangkit gelombang lokal dapat

memproduksi frekuensi sinyal yang sesuai untuk pengukuran.

Ketelitian dari frequency counter sangat tergantung pada stabilitas dari basis

pewaktunya (timebase). Sirkuit dengan ketelitian yang tinggi dibutuhkan untuk

membangun sebuah timebase dalam instrumen tersebut, biasanya dipergunakan

sebuah osilator (pembangkit gelombang/pulsa) kristal yang terbuat dari quartz crystal

di dalam sebuah ruangan yang terisolasi dengan suhu terkontrol yang biasa disebut

crystal oven atau OCXO (oven controlled crystal oscilator). Untuk pengukuran yang

lebih akurat, sebuah frekuensi dari luar disatukan dengan sebuah osilator (pembangkit

gelombang/pulsa) yang lebih stabil seperti sebuah GPS yang terdiri dari penggetar

rubidium dapat dipergunakan. Jika frekuensi yang ingin diukur tidak membutuhkan

Afniza : Frequency Counter Berbasis Mikrokontroler AT89S52, 2008.


USU Repository © 2009
7

ketelitian yang tinggi, osilator (pembangkit gelombang/pulsa) sederhana dapat

dipergunakan. Teknik pengukuran yang sama dapat diaplikasikan dalam

pemrograman sistem yang terpadu. Contohnya adalah sebuah CPU, sebuah

program/software dapat diatur untuk mengukur frekuensi operasinya sendiri dengan

membandingkan terhadap referensi basis waktu (timebase) yang telah tersedia.

Sinyal denyut yang diumpankan ke pencacah bisa dibedakan menjadi 2

macam, yang pertama ialah sinyal denyut dengan frekuensi tetap yang sudah diketahui

besarnya dan yang kedua adalah sinyal denyut dengan frekuensi tidak tetap.

Jika sebuah pencacah bekerja dengan frekuensi tetap yang sudah diketahui besarnya,

dikatakan pencacah tersebut bekerja sebagai timer, karena kedudukan pencacah

tersebut setara dengan waktu yang bisa ditentukan dengan pasti.

Jika sebuah pencacah bekerja dengan frekuensi yang tidak tetap, dikatakan pencacah

tersebut bekerja sebagai counter, kedudukan pencacah tersebut hanyalah menyatakan

banyaknya pulsa yang sudah diterima pencacah. Untaian pencacah biner yang dipakai,

bisa merupakan pencacah biner menaik (count up binary counter) atau pencacah biner

menurun (count down binary counter).

2.1.2. Sistem Minimum Mikrokontroler AT89S52

Perkembangan teknologi telah maju dengan pesat dalam perkembangan dunia

elektronika, khususnya dunia mikroelektronika. Penemuan silikon menyebabkan

bidang ini mampu memberikan sumbangan yang amat berharga bagi perkembangan

teknologi modern. Atmel sebagai salah satu vendor yang mengembangkan dan

memasarkan produk mikroelektronika telah menjadi suatu teknologi standar bagi para

desainer sistem elektronika masa kini.

Afniza : Frequency Counter Berbasis Mikrokontroler AT89S52, 2008.


USU Repository © 2009
8

Tidak seperti sistem komputer, yang mampu menangani berbagai macam

program aplikasi (misalnya pengolah kata, pengolah angka dan lain sebagainya),

mikrokontroler hanya bisa digunakan untuk satu aplikasi tertentu saja. Perbedaan

lainnya terletak pada perbandingan RAM dan ROM-nya. Pada sistem komputer

perbandingan RAM dan ROM-nya besar, artinya program-program pengguna

disimpan dalam ruang RAM yang relatif besar dan rutin-rutin antarmuka perangkat

keras disimpan dalam ruang ROM yang kecil. Sedangkan pada mikrokontroler,

perbandingan ROM dan RAM-nya yang besar artinya program kontrol disimpan

dalam ROM (bisa Masked ROM atau Flash PEROM) yang ukurannya relatif lebih

besar, sedangkan RAM digunakan sebagai tempat penyimpanan sementara, termasuk

register-register yang digunakan pada mikrokontroler yang bersangkutan.

Gambar 2.1. Blok Diagram Fungsional AT89S52

Afniza : Frequency Counter Berbasis Mikrokontroler AT89S52, 2008.


USU Repository © 2009
9

2.1.2.1. Konstruksi AT89S52

Mikrokontroler AT89S52 hanya memerlukan tambahan 3 buah kapasitor, 1 resistor

dan 1 kristal serta catu daya 5 Volt. Kapasitor 10 mikro-Farad dan resistor 8k2 Ohm

dipakai untuk membentuk rangkaian reset. Dengan adanya rangkaian reset ini

AT89S52 otomatis direset begitu rangkaian menerima catu daya. Kristal dengan

frekuensi maksimum 11,0592 MHz dan kapasitor 30 piko-Farad dipakai untuk

melengkapi rangkaian osilator pembentuk clock yang menentukan kecepatan kerja

mikrokontroler.

Memori merupakan bagian yang sangat penting pada mikrokontroler.

Mikrokontroler memiliki dua macam memori yang sifatnya berbeda. ROM (Read

Only Memory) yang isinya tidak berubah meskipun IC kehilangan catu daya. Sesuai

dangan keperluannya, dalam susunan MCS-51 memori penyimpanan program ini

dinamakan sebagai memori program.

RAM (Random Access Memory) isinya akan sirna begitu IC kehilangan catu

daya, dipakai untuk menyimpan data pada saat program bekerja. RAM yang dipakai

untuk menyimpan data ini disebut sebagai memori data.

Ada berbagai jenis ROM, untuk mikrokontroler dengan program yang sudah

baku dan diproduksi secara massal, program diisikan ke dalam ROM pada saat IC

mikrokontroler dicetak di pabrik IC. Untuk keperluan tertentu mikrokontroler

mengunakan ROM yang dapat diisi ulang atau Programable-Eraseable ROM yang

disingkat menjadi PEROM atau PROM. Dulu banyak dipakai UV-EPROM (Ultra

Afniza : Frequency Counter Berbasis Mikrokontroler AT89S52, 2008.


USU Repository © 2009
10

Violet Eraseable Programable ROM) yang kemudian dinilai mahal dan ditinggalkan

setelah ada flash PEROM yang harganya jauh lebih murah.

Jenis memori yang dipakai untuk memori program AT89S52 adalah Flash

PEROM, program untuk mengendalikan mikrokontroler diisikan ke memori itu lewat

bantuan alat yang dinamakan sebagai AT89S52 Flash PEROM Programmer.

Memori data yang disediakan dalam chip AT89S52 sebesar 128 byte,

meskipun hanya kecil saja tapi untuk banyak keperluan, memori berkapasitas 128 byte

sudah cukup. Sarana Input/Output (I/O) yang disediakan cukup banyak dan bervariasi.

AT89S52 mempunyai 32 jalur Input/Output. Jalur Input/Output paralel dikenal

sebagai Port 1 (P1.0..P1.7) dan Port 3 (P3.0..P3.5 dan P3.7).

AT89S52 dilengkapi UART (Universal Asyncronous Receiver / Transmitter)

yang biasa dipakai untuk komunikasi data secara serial. Jalur untuk komunikasi data

serial (RXD dan TXD) diletakkan berhimpitan dengan P3.0 dan P3.1 di kaki nomor

10 dan 11, sehingga kalau sarana input/ouput yang bekerja menurut fungsi waktu,

clock penggerak untaian pencacah ini bisa berasal dari oscillator kristal atau clock

yang diumpan dari luar lewat T0 dan T1. T0 dan T1 berhimpitan dengan P3.4 dan

P3.5, sehingga P3.4 dan P3.5 tidak bisa dipakai untuk jalur input/ouput parelel kalau

T0 dan T1 terpakai.

AT89S52 mempunyai enam sumber pembangkit interupsi, dua diantaranya

adalah sinyal interupsi yang diumpankan ke kaki INT0 dan INT1. Kedua kaki ini

berhimpitan dengan P3.2 dan P3.3 sehingga tidak bisa dipakai sebagai jalur

input/output paralel kalau INT0 dan INT1 dipakai untuk menerima sinyal interupsi.

Afniza : Frequency Counter Berbasis Mikrokontroler AT89S52, 2008.


USU Repository © 2009
11

Port 1 dan Port 2, UART, Timer 0, Timer 1 dan sarana lainnya merupakan register

yang secara fisik merupakan RAM khusus, yang ditempatkan di Special Function

Register (SFR).

Berikut ini merupakan spesifikasi dari IC AT89S52 :

a. Kompatibel dengan produk MCS-51.

b. 8 Kbyte In-System Reprogammable Flash Memory.

c. Daya tahan 1000 kali baca/tulis.

d. Fully Static Operation : 0 Hz sampai 24 MHz.

e. Tiga level kunci memori program.

f. 128 x 8 bit RAM internal.

g. 32 jalur I/O.

h. Tiga 16 bit Timer/Counter.

i. Enam sumber interupt.

j. Jalur serial dengan UART.

2.1.2.2. Gambar IC Mikrokontroler AT89S52

Gambar 2.2 Konfigurasi Pin Mikrokontroler AT89S52

Afniza : Frequency Counter Berbasis Mikrokontroler AT89S52, 2008.


USU Repository © 2009
12

Deskripsi pin-pin pada mikrokontroler AT89S52:

a. VCC (Pin 40)

Suplai tegangan 5 Volt.

b. GND (Pin 20)

Ground.

c. Port 0 (Pin 39 – Pin 32)

Port 0 dapat berfungsi sebagai I/O biasa, low order multiplex address/data

ataupun penerima kode byte pada saat flash programming Pada fungsinya

sebagai I/O biasa port ini dapat memberikan output sink ke delapan buah TTL

input atau dapat diubah sebagai input dengan memberikan logika 1 pada port

tersebut. Pada fungsinya sebagai low order multiplex address/data, port ini

akan mempunyai internal pull up. Pada saat flash programming diperlukan

eksternal pull up, terutama pada saat verifikasi program.

d. Port 1 (Pin 1 – Pin 8)

Port 1 berfungsi sebagai I/O biasa, pada kaki ke 6, ke 7 dan ke 8 terdapat

Mosi, Miso dan Sck sebagai masukan dari ISP Programmer yang terhubung ke

komputer. Tanpa adanya port ini maka mikrokontroler tidak dapat diprogram

oleh ISP Programmer.

e. Port 2 (Pin 21 – pin 28)

Port 2 berfungsi sebagai I/O biasa atau high order address, pada saat

mengakses memori secara 16 bit. Pada saat mengakses memori 8 bit, port ini

akan mengeluarkan isi dari P2 special function register. Port ini mempunyai

internal pull up dan berfungsi sebagai input dengan memberikan logika 1.

Sebagai output, port ini dapat memberikan output sink ke empat buah input

TTL.

Afniza : Frequency Counter Berbasis Mikrokontroler AT89S52, 2008.


USU Repository © 2009
13

f. Port 3 (Pin 10 – pin 17)

Port 3 merupakan 8 bit port I/O dua arah dengan internal pull up. Port 3 juga

mempunyai fungsi pin masing-masing, yaitu sebagai berikut :

Tabel 2.1 Konfigurasi Port 3 Mikrokontroler AT89S52

Nama Pin Fungsi


P3.0 (Pin 10) RXD (Port Input Serial)
P3.1 (Pin 11) TXD (Port Output Serial)
P3.2 (Pin 12) INTO (Interrupt 0 Eksternal)
P3.3 (Pin 13) INT1 (Interrupt 1 Eksternal)
P3.4 (Pin 14) T0 (Input Eksternal Timer 0)
P3.5 (Pin 15) T1 (Input Eksternal Timer 1)
P3.6 (Pin 16) WR (untuk menulis eksternal data memori)
P3.7 (Pin 17) RD (untuk membaca eksternal data memori)

g. RST (pin 9)

Reset akan aktif dengan memberikan input high selama 2 cycle.

h. ALE/PROG (pin 30)

Address latch Enable adalah pulsa output untuk me-latch byte bawah dari

alamat selama mengakses memori eksternal. Selain itu, sebagai pulsa input

program (PROG) selama memprogram Flash.

i. PSEN (pin 29)

Program store enable digunakan untuk mengakses memori program eksternal.

j. EA (pin 31)

Pada kondisi low, pin ini akan berfungsi sebagai EA yaitu mikrokontroler akan

menjalankan program yang ada pada memori eksternal setelah sistem di-reset.

Jika kondisi high, pin ini akan berfungsi untuk menjalankan program yang ada

pada memori internal. Pada saat flash programming, pin ini akan mendapat

tegangan 12 Volt.

Afniza : Frequency Counter Berbasis Mikrokontroler AT89S52, 2008.


USU Repository © 2009
14

k. XTAL1 (pin 19)

Input untuk clock internal.

l. XTAL2 (pin 18)

Output dari osilator (pembangkit gelombang/pulsa).

2.1.3. Modul LCD (Liquid Crystal Display) M1632

M1632 merupakan modul LCD matrix dengan konfigurasi 16 karakter dan 2 baris

dengan setiap karakternya dibentuk oleh 8 baris pixel dan 5 kolom pixel (1 baris pixel

terakhir adalah kursor). HD44780 ini sudah tersedia dalam Modul M1632 yang

dikeluarkan oleh Hitachi, Hyundai dan modul-modul M1632 lainnya.

HD44780 sebetulnya merupakan mikrokontroler yang dirancang khusus untuk

mengendalikan LCD dan mempunyai kemampuan untuk mengatur proses scanning

pada layar LCD yang terbentuk oleh 16 COM dan 40 SEG sehingga mikrokontroler

/perangkat yang mengakses modul LCD ini tidak perlu lagi mengatur proses scanning

pada layar LCD. Mikrokontroler atau perangkat tersebut hanya mengirimkan data-data

yang merupakan karakter yang akan ditampilkan pada LCD atau perintah yang

mengatur proses tampilan pada LCD saja.

2.1.3.1. Kaki-kaki Modul M1632

Untuk keperluan antarmuka suatu komponen elektronik dengan mikrokontroler, perlu

diketahui fungsi dari setiap kaki yang ada pada komponen tersebut.

Afniza : Frequency Counter Berbasis Mikrokontroler AT89S52, 2008.


USU Repository © 2009
15

a. Kaki 1 (GND)

Kaki ini berhubungan dengan tegangan +5 Volt yang merupakan tegangan

untuk sumber daya dari HD44780 (khusus untuk modul M1632 keluaran

hitachi, kaki ini adalah VCC)

b. Kaki 2 (VCC)

Kaki ini berhubungan dengan tegangan 0 volt (ground) dan modul LCD

(khusus untuk modul M1632 keluaran hitachi, kaki ini adalah GND)

c. Kaki 3 (VEE/VLCD)

Tegangan pengatur kontras LCD, kaki ini terhubung pada V5. Kontras

mencapai nilai maksimum pada saat kondisi kaki ini pada tegangan 0 volt.

d. Kaki 4 (RS)

Register Select, kaki pemilih register yang akan diakses. Untuk akses ke

register data, logika dari kaki ini adalah 1 dan untuk akses ke register perintah,

logika dari kaki ini adalah 0.

e. Kaki 5 (R/W)

Logika 1 pada kaki ini menunjukkan bahwa modul LCD sedang pada mode

pembacaan dan logika 0 menunjukkan bahwa modul LCD sedang pada mode

penulisan. Untuk aplikasi yang tidak memerlukan pembacaan data pada modul

LCD, kaki ini dapat dihubungkan langsung ke ground.

f. Kaki 6 (E)

Enable Clock LCD, kaki ini mengaktifkan clock LCD. Logika 1 pada kaki ini

diberikan pada saat penulisan atau pembacaan data.

Afniza : Frequency Counter Berbasis Mikrokontroler AT89S52, 2008.


USU Repository © 2009
16

g. Kaki 7-14 (D0-D7)

Data bus, kedelapan kaki modul LCD ini adalah bagian dimana aliran data

sebanyak 4 bit atau 8 bit mengalir saat proses penulisan maupun pembacaan

data.

h. Kaki 15 (Anoda)

Berfungsi untuk tegangan positif dari backlight modul LCD sekitar 4,5 volt

(hanya terdapat untuk M1632 yang memiliki backlight).

i. Kaki 16 (Katoda)

Tegangna negatif backlight modul LCD sebesar 0 volt (hanya untuk M1632

yang memiliki backlight).

2.1.3.2. Akses ke Register

Seperti telah dijelaskan sebelumnya, HD44780 yang menjadi pengendali modul

M1632 mempunyai dua buah register, yaitu register data dan register perintah. Berikut

ini akan dijelaskan bagaimana proses terjadinya penulisan maupun pembacaan data

dari kedua register ini.

a. Penulisan Data ke Register Perintah

Penulisan data ke register perintah digunakan untuk memberikan perintah-

perintah pada Modul M1632 sesuai dengan data-data yang dikirimkan ke

register tersebut. Gambar 2.3 menunjukkan proses penulisan data ke register

perintah menggunakan mode 4 bit interface. Kondisi RS berlogika 0

menunjukkan akses data ke register perintah. RW berlogika 0 menunjukkan

proses penulisan data akan dilakukan. Nibble tinggi (bit7 sampai bit 4) terlebih

dahulu dikirimkan dengan diawali pulsa logika 1 pada E Clock, kemudian

Afniza : Frequency Counter Berbasis Mikrokontroler AT89S52, 2008.


USU Repository © 2009
17

nibble rendah (bit 3 sampai bit 0) dikirimkan dengan diawalai pulsa logika 1

pada E Clock lagi.

Gambar 2.3 Timing penulisan data ke register perintah mode 4 bit


interface

Built In Routine

Kirim_Perintah EQU 433H


............................
Lcall Kirim_Perintah

b. Pembacaan Data dari Register Perintah

Proses pembacaan data dari register perintah ini digunakan untuk membaca

status sibuk M1632 dan addres counter saja. RS diatur pada logika 0 untuk

akses ke register perintah dan R/W diatur pada logika 1 yang menunjukkan

proses pembacaan data. Empat bit nibble tinggi dibaca dengan diawali pulsa

logika 1 pada E Clock dan kemudian 4 bit nibble rendah dibaca dengan diawali

pulsa logika 1 pada E clock.

Afniza : Frequency Counter Berbasis Mikrokontroler AT89S52, 2008.


USU Repository © 2009
18

Gambar 2.4 Timing diagram pembacaan register perintah mode 4 bit


interface

c. Penulisan Data ke Register Data

Penulisan data ke register data digunakan dalam proses penulisan data karakter

yang akan ditampilkan ke LCD (DDRAM) atau proses penulisan data pola

karakter ke CGRAM.

Proses diawali dengan adanya logika 1 pada RS yang menunjukkan

akses ke register data. Kondisi R/W diatur pada logika 0 yang menunjukkan

proses penulisan data. Data 4 bit nibble tinggi (bit 7 hingga bit 4) dikirim

dengan diawali dngan pulsa logika 1 pada sinyal E Clock dan kemudian diikuti

4 bit nibble rendah (bit 3 hingga bit 0) yang jugan diawali pulsa logika 1 pada

sinyal E Clock.

Afniza : Frequency Counter Berbasis Mikrokontroler AT89S52, 2008.


USU Repository © 2009
19

Gambar 2.5 Timing diagram penulisan data ke register data mode 4 bit
interface

d. Pembacaan Data ke Register Data

Pembacaan data dari rd dilakukan untuk membaca kembali data yang tampil

pada LCD. Proses dilakukan dengan mengatur RS pada logika 1 yang

menunjukkan adanya akses ke register data . Kondisi R/W diatur pada logika

tinggi yang menunjukkan adanya proses pembacaan data. Data 4 bit nibble (bit

7 hingga bit 4) dibaca dengan diawali adanya pulsa logika 1 pada E Clock dan

dilanjutkan dengan data 4 bit nibble rendah (bit 3 hingga bit 0) yang juga

diawali dengan pulsa logika 1 pada E Clock.

Gambar 2.6 Timing diagram pembacaan data dari register data mode 4
bit interface

Afniza : Frequency Counter Berbasis Mikrokontroler AT89S52, 2008.


USU Repository © 2009
20

2.1.3.3. Struktur Memori LCD

Modul LCD M1632 memiliki beberapa jenis memori yang digunakan untuk

menyimpan atau memproses data-data yang akan ditampilkan pada layar LCD. Setiap

jenis memori mempunyai fungsi-fungsi tersendiri.

a. DDRAM

DDRAM merupakan memori tempat karakter yang ditampilkan berada.

Contohnya, karakter “A” atau 41h yang ditulis pada alamat 00 akan tampil

pada baris pertama dan kolom pertama dari LCD. Apabila karakter tersebut

ditulis di alamat 40h, karakter tersebut akan tampil pada baris kedua kolom

pertama dari LCD.

b. CGRAM

CGRAM adalah memori untuk menggambarkan pola sebuah karakter dan

bentuk karakter dapat diubah-ubah sesuai keinginan. Akan tetapi isi memori

akan hilang saat power supply tidak aktif sehingga pola karakter akan hilang.

c. CGROM

CGROM adalah memori untuk menggambarkan pola sebuah karakter dan pola

tersebut sudah ditentukan secara permanen dari HD44780 sehingga pengguna

tidak dapat mengubah lagi. Oleh karena ROM bersifat permanen, pola karakter

tersebut tidak akan hilang walaupun power suplly tidak aktif.

2.1. Perangkat Lunak

Perangkat lunak merupakan program yang meliputi bahasa pemrograman BASCOM-

8051 untuk pemrograman mikrokontroler AT89S52 dan Eagle untuk perancangan

gambar skematik dari rangkaian.

Afniza : Frequency Counter Berbasis Mikrokontroler AT89S52, 2008.


USU Repository © 2009
21

2.2.1. Bahasa BASIC Menggunakan BASCOM-8051

BASCOM-8051 adalah program BASIC compiler berbasis Windows untuk

mikrokontroler keluarga 8051 seperti AT89C51, AT89C2051, dan yang lainnya.

BASCOM-8051 merupakan pemrograman dengan bahasa tingkat tinggi BASIC yang

dikembangkan dan dikeluarkan oleh MCS Elektronik.

Kita akan membahas penggunaan karakter, tipe data, variable, konstanta,

operasi-operasi aritmatika dan logika, array, dan control program.

2.2.1.1. Karakter dalam BASCOM

Dalam program BASCOM, karakter dasarnya terdiri atas karakter alphabet (A-Z dan

a-z), karakter numeric (0-9), dan karakter special (lihat tabel 2.1).

Tabel 2.2 Karakter Spesial

karakter Nama
Blank
‘ Apostrophe
* Asterisk (symbol perkalian)
+ Plus sign
, Comma
- Minus sign
. Period (decimal point)
/ Slash (division symbol) will be handled as\
: Colon
“ Double quotation mark
; Semicolon
< Less than
= Equal sign (assignment symbol or relational operator)
> Greater than
\ Backspace (integer or word division symbol)

Afniza : Frequency Counter Berbasis Mikrokontroler AT89S52, 2008.


USU Repository © 2009
22

2.2.1.2. Tipe Data

Setiap variabel dalam BASCOM memiliki tipe data yang menunjukkan daya

tampungnya. Hal ini berhubungan dengan penggunaan memori mikrokontroler.

Berikut adalah tipe data pada BASCOM berikut keterangannya.

Tabel 2.3 Tipe data BASCOM

Tipe Data Ukuran (byte) Range


Bit 1/8 -
Byte 1 0 – 255
Integer 2 -32,768 - +32,767
Word 2 0 – 65535
Long 4 -214783648 - +2147483647
Single 4 -
String hingga 254 byte -

2.2.1.3. Variabel

Variabel dalam sebuah pemrograman berfungsi sebagai tempat penyimpanan data atau

penampungan data sementara, misalnya menampung hasil perhitungan, menampung

data hasil pembacaan register, dan lainnya. Variabel merupakan pointer yang

menunjukkan pada alamat memori fisik dan mikrokontroler.

Dalam BASCOM, ada beberapa aturan dalam penamaan sebuah variable:

a. Nama variabel maksimum terdiri atas 32 karakter.

b. Karakter biasa berupa angka atau huruf.

c. Nama variabel harus dimulai dengan huruf.

d. Variabel tidak boleh menggunakan kata-kata yang digunkan oleh BASCOM

sebagai perintah, pernyataan, internal register, dan nama operator (AND, OR,

DIM, dan lain-lain).

Afniza : Frequency Counter Berbasis Mikrokontroler AT89S52, 2008.


USU Repository © 2009
23

Sebelum digunakan, maka variabel harus dideklarasikan terlebih dahulu.

Dalam BASCOM, ada beberapa cara untuk mendeklarasikan sebuah variabel. Cara

pertama adalah menggunakan pernyataan ‘DIM’ diikuti nama tipe datanya. Contoh

pendeklarasian menggunakan DIM sebagai berikut:

Dim nama as byte


Dim tombol1 as integer
Dim tombol2 as word
Dim tombol3 as word
Dim tombol4 as word
Dim Kas as string*10

2.2.1.4. Alias

Dengan menggunakan alias, variabel yang sama dapat diberikan nama yang lain.

Tujuannya adalah mempermudah proses pemrograman. Umumnya, alias digunakan

untuk mengganti nama variabel yang telah baku, seperti port mikrokontroler.

LEDBAR alias P1
Tombol1 alias P0.1
Tombol2 alias P0.2

Dengan deklarasi seperti diatas, perubahan pada tombol akan mengubah

kondisi P0.1. Selain mengganti nama port, kita dapat pula menggunakan alias untuk

mengakses bit tertentu dari sebuah variabel yang telah dideklarasikan.

Dim LedBar as byte


Led1 as LedBar.0
Led2 as LedBar.1
Led3 as LedBar.2

2.2.1.5. Konstanta

Dalam BASCOM, selain variabel kita mengenal pula constant. Konstanta meruupakan

variabel pula. Perbedaannya dengan variabel biasa adalah nilai yang dikandung tetap.

Dengan konstanta, kode program yang kita buat akan lebih mudah dibaca dan dapat

Afniza : Frequency Counter Berbasis Mikrokontroler AT89S52, 2008.


USU Repository © 2009
24

mencegah kesalahan penulisan pada program kita. Misalnya, kita akan lebih mudah

menulis phi daripada menulis 3,14159867. Sama seperti variabel, agar konstanta bias

dikenali oleh program, maka harus dideklarasikan terlebih dahulu. Berikut adalah cara

pendeklarasian sebuah konstanta.

Dim A As Const 5
Dim B1 As Const &B1001
Cara lain yang paling Mudah:

Const Cbyte = &HF


Const Cint = -1000
Const Csingle = 1.1
Const Cstring = “test”

2.2.1.6. Array

Dengan array, kita bisa menggunakan sekumpulan variabel dengan nama dan tipe

yang sama. Untuk mengakses variabel tertentu dalam array, kita harus menggunakan

indeks. Indeks harus berupa angka dengan tipe data byte, integer, atau word. Artinya,

nilai maksimum sebuah indeks sebesar 65535.

Proses pendeklarasian sebuah array hampir sama dengan variabel, namun

perbedaannya kita pun mengikutkan jumlah elemennya. Berikut adalah contoh

pemakaian array;

Dim kelas(10) as byte


Dim c as Integer

For C = 1 To 10
a(c) = c
p1 = a(c)
Next

Program diatas membuat sebuah array dengan nama ‘kelas’ yang berisi 10

elemen (1-10) dan kemudian seluruh elemennya diisikan dengan nilai c yang

berurutan. Untuk membacanya, kita menggunakan indeks dimana elemen disimpan.

Afniza : Frequency Counter Berbasis Mikrokontroler AT89S52, 2008.


USU Repository © 2009
25

Pada program diatas, elemen-elemen arraynya dikeluarkan ke Port 1 dari

mikrokontroler.

2.2.1.7. Operasi-operasi Dalam BASCOM

Pada bagian ini akan dibahas tentang cara menggabungkan, memodifikasi,

membandingkan, atau mendapatkan informasi tentang sebuah pernyataan dengan

menggunakan operator-operator yang tersedia di BASCOM dan bagaimana sebuah

pernyataan terbentuk dan dihasilkan dari operator-operator berikut:

a. Operator Aritmatika

Operator digunakan dalam perhitungan. Operator aritmatika meliputi +

(tambah), - (kurang), / (bagi), dan * (kali).

b. Operator Relasi

Operator berfungsi membandingkan nilai sebuah angka. Hasilnya dapat

digunakan untuk membuat keputusan sesuai dengan program yang kita buat.

Operator relasi meliputi:

Tabel 2.4 Tabel Operator Relasi

Operator Relasi Pernyataan


= Sama dengan X=Y
<> Tidak sama dengan X <> Y
< Lebih kecil dari X<Y
> Lebih besar dari X>Y
<= Lebih kecil atau sama dengan X <= Y
>= Lebih besar atau sama dengan X >= Y

c. Operator Logika

Operator digunakan untuk menguji sebuah kondisi atau memanipulasi bit dan

operasi bolean. Dalam BASCOM, ada empat buah operator logika, yaitu AND,

OR, NOT, dan XOR.

Afniza : Frequency Counter Berbasis Mikrokontroler AT89S52, 2008.


USU Repository © 2009
26

Operator logika bias pula digunakan untuk menguji sebuah byte

dengan pola bit tertentu, sebagai cintih:

Dim A As Byte
A = 63 And 19
PPRINT A
A = 10 or 9
PRTINT A
Output
16
11

d. Operator Fungsi

Operasi fungsi digunakan untuk melengkapi operator yang sederhana.

2.2.1.8. Aplikasi dengan LCD (liquid crystal display)

Salah satu kelebihan yang dimiliki oleh compiler BASCOM adalah program yang

menyediakan rutin-rutin khusus untuk menampilkan karakter menggunakan LCD.

Bahkan, kita pun dapat membuat karakter special dengan fasilitas LCD designer.

Antar muka antara LCD dengan AT89S52 menggunakan mode antarmuka 4

bit. Selain lebih menghemat I/O, mode demikianpun mempermudah proses pembuatan

PCB-nya. Program berikut akan menjalankan beberapa perintah yang berkenaan

dengan LCD.

$regfile = “8052.dat”
$crystal = 12000000

dim x as byte
config LCD = 16*2

Cursor off
do
X = 100
Cls
Lcd “namaku Satih”
Lowerline
Lcd “Nilaiku selalu”; x
Wait 1

Afniza : Frequency Counter Berbasis Mikrokontroler AT89S52, 2008.


USU Repository © 2009
27

Cls
Lcd “<<<< Hebat >>>>”
For x=1 to 16
Shiftlcd left
next
For x=1 to 32
Shiftlcd right
Waitms 200
next
x = 100
cls
lcd hex x

loop

Penjelasan programnya sebagai berikut:

a. Dim x As Byte

Pernyataan di atas merupakan pendeklarasian variable x dengan ukuran byte.

b. Config LCD = 16*2

Oleh karena itu, konfigurasi yang dapat kita lakukan adalah mendeklarasikannya

dilisting program yang kita buat seperti dikontrolkan di atas.

c. CLS

Perintah CLS berfungsi membersihkan atau mengosongkan tampilan LCD.

d. Lowerline

Perintah berfungsi memindahkan kursor ke baris bawah. Karena LCD yang

digunakan adalah LCD 2x16, maka LCD memiliki 2 baris dan kolom.

e. X = 100

Lcd “namaku Satih”


Lowerline
Lcd “Nilaiku selalu”; x

Ketika kita menjalankan perintah di atas, maka keluarannya adalah:

Namaku Satih

Nilaiku selalu 100

Afniza : Frequency Counter Berbasis Mikrokontroler AT89S52, 2008.


USU Repository © 2009
28

Contoh di atas menunjukkan bahwa kita dapat menampilkan isi sebuah variabel

menggunakan LCD hanya dengan menulis:

f. ShiftLCD left/right

Perintah digunakan untuk menggeser tampilan LCD ke kiri atau ke kanan

sebanyak 1 langkah. Perintah berguna untuk menampilkan kalimat yang panjang

dan mebuat animasi di LCD.

g. Lcdhex x

Perintah berfungsi mengirim isi sebuah variabel ke LCD dalam format

hexadecimal. Jika kita menjalankan program, maka hasilnya 64.

2.2.2. Software Downloader (ISP – Flash Programmer 3.0a)

Untuk mengirimkan bilangan-bilangan heksadesimal ini ke mikrokontroler digunakan

software ISP- Flash Programmer 3.0a yang dapat di download dari internet.

Tampilannya seperti gambar 2.7 di bawah ini :

Gambar 2.7 ISP- Flash Programmer 3.a

Afniza : Frequency Counter Berbasis Mikrokontroler AT89S52, 2008.


USU Repository © 2009
29

Cara menggunakannya adalah dengan meng-klik Open File untuk mengambil

file heksadesimal dari hasil kompilasi 8051IDE, kemudian klik Write untuk

mengisikan hasil kompilasi tersebut ke mikrokontroler. Untuk mengecek apakah

mikrokontroler bisa ditulisi atau tidak dapat diketahui dengan dua cara, yaitu dengan

cara meng-klik Signature dan Read. Untuk mengamankan agar program pada

mikrokontroler tidak dapat dibaca oleh orang yang tidak diinginkan, dapat digunakan

Lock Bit-1, Lock Bit-2 dan Lock Bit-3 yang masing-masingnya memiliki tingkat

keamanan yang berbeda. Makin tinggi tingkatan Lock Bitnya maka makin sulit

membongkar programnya. Tetapi apabila telah di lock (dikunci) maka mikrokontroler

tidak dapat lagi ditulisi.

Afniza : Frequency Counter Berbasis Mikrokontroler AT89S52, 2008.


USU Repository © 2009
BAB 3

RANCANGAN SISTEM

3.1. Diagram Blok Rangkaian

Adapun diagram blok dari sistem yang dirancang adalah seperti yang diperlihatkan

pada gambar 3.1 berikut ini:

SINYAL Buffer/pengk Mikrokontroler DISPLAY


INPUT ondisi sinyal AT89S52 LCD

Gambar 3.1 Diagram blok rancangan frequency counter

Masing-masing blok, yaitu sinyal input berupa masukan sinyal segi empat.

Lalu diteruskan melalui rangkaian pengkondisi sinyal (buffer) sehingga input ke

mikrokontroler stabil yaitu 5 Volt. Output dari buffer diteruskan ke port interrupt

timer pada mikrokontroler AT89S52, sinyal masukan pada mikrokontroler dihitung

frekuensinya dengan menggunakan program yang mengaktifkan timer/counter dan

kemudian hasilnya ditampilkan pada display LCD (liquid crystal display)

3.2. Rangkaian Sistem Minimum Mikrokontroler AT89S52

Rangkaian skematik dan layout PCB sistem minimum mikrokontroler AT89S52 dapat

dilihat pada gambar 3.2. di bawah ini:

Afniza : Frequency Counter Berbasis Mikrokontroler AT89S52, 2008.


USU Repository © 2009
31

Gambar 3.2. Rangkaian skematik sistem minimum Mikrokontroler AT89S52

Pin 18 dan 19 dihubungkan ke XTAL 11,0592 MHz dan dua buah kapasitor

30 pF. XTAL ini akan mempengaruhi kecepatan mikrokontroler AT89S52 dalam

mengeksekusi setiap perintah dalam program. Pin 9 merupakan masukan reset (aktif

tinggi). Pulsa transisi dari rendah ke tinggi akan me-reset mikrokontroler ini. Pin 32

sampai 39 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.

Karena fungsi tersebut maka Port 0 dihubungkan dengan resistor array. Jika

mikrokontroler tidak menggunakan memori eksternal, maka penggunaan resistor array

tidak begitu penting. Selain digunakan untuk fungsi diatas resistor array digunakan

sebagai pull up.

Afniza : Frequency Counter Berbasis Mikrokontroler AT89S52, 2008.


USU Repository © 2009
32

Untuk men-download file heksadesimal ke mikrokontroler, Mosi, Miso, Sck,

Reset, Vcc dan Gnd dari kaki mikrokontroler dihubungkan ke RJ45. RJ45 sebagai

konektor yang akan dihubungkan ke ISP Programmer. Dari ISP Programmer inilah

dihubungkan ke komputer melalui port paralel.

Kaki Mosi, Miso, Sck, Reset, Vcc dan Gnd pada mikrokontroler terletak pada

kaki 6, 7, 8, 9, 40 dan 20. Apabila terjadi keterbalikan pemasangan jalur ke ISP

Programmer, maka pemograman mikrokontroler tidak dapat dilakukan karena

mikrokontroler tidak akan bisa merespon.

3.3. Rangkaian Pengkondisi Sinyal

Rangkaian skematik pengkondisi sinyal dapat dilihat pada gambar di bawah ini:

Gambar 3.3 Skematik rangkaian pengkondisi sinyal

Mikrokontroler hanya dapat menghitung pulsa/gelombang dengan puncak

gelombang 5 volt dan dasar gelombang 0 volt. Jadi 1 gelombang penuh terdiri dari 1

sinyal 5 V dan 1 sinyal 0 V, oleh karena itu dibutuhkan sebuah rangkaian yang dapat

Afniza : Frequency Counter Berbasis Mikrokontroler AT89S52, 2008.


USU Repository © 2009
33

mempertahankan kestabilan tersebut. Pada rangkaian pengkondisi sinyal ini

dipergunakan IC 74HC14 yaitu IC inverter yang dimanfaatkan sebagai buffer sinyal

input agar sinyal keluaran berupa sinyal/pulsa digital yang stabil.

3.4. Rangkaian LCD (Liquid Crystal Display)

Rangkaian skematik konektor yang dihubungkan dari LCD (liquid crystal display) ke

mikrokontroler dapat dilihat pada gambar dibawah ini.

Gambar 3.4 Rangkaian skematik konektor yang dihubungkan dari LCD


mikrokontroler

Gambar 3.5 Rangkaian skematik konektor yang dihubungkan dari LCD ke


mikrokontroler

Afniza : Frequency Counter Berbasis Mikrokontroler AT89S52, 2008.


USU Repository © 2009
34

3.5.Rangkaian Power Supply

Rangkaian skematik power supply dapat dilihat pada gambar 3.6 di bawah ini:

Gambar 3.6 Rangkaian skematik power supply

Rangkaian power supply berfungsi untuk mensupplay arus dan tegangan ke

seluruh rangkaian yang ada. Rangkaian power supply ini terdiri dari dua keluaran,

yaitu 5 volt dan 12 volt, keluaran 5 volt digunakan untuk menghidupkan seluruh

rangkaian kecuali rangkaian ADC, sedangkan keluaran 12 volt digunakan untuk

mensupplay tegangan ke rangkaian ADC, karena rangkaian ADC memerlukan

tegangan input sebesar 12 volt agar tegangan referensinya stabil.

Trafo stepdown yang berfungsi untuk menurunkan tegangan dari 220 volt AC

menjadi 12 volt AC. Kemudian 12 volt AC akan disearahkan dengan menggunakan

dua buah dioda, selanjutnya 12 volt DC akan diratakan oleh kapasitor 2200 μF.

Regulator tegangan 5 volt (LM7805CT) digunakan agar keluaran yang dihasilkan

tetap 5 volt walaupun terjadi perubahan pada tegangan masukannya. LED hanya

sebagai indikator apabila PSA dinyalakan. Transistor PNP TIP 32 disini berfungsi

sebagai penguat arus apabila terjadi kekurangan arus pada rangkaian, sehingga

Afniza : Frequency Counter Berbasis Mikrokontroler AT89S52, 2008.


USU Repository © 2009
35

regulator tegangan (LM7805CT) tidak akan panas ketika rangkaian butuh arus yang

cukup besar. Tegangan 12 volt DC langsung diambil dari keluaran jembatan dioda.

Afniza : Frequency Counter Berbasis Mikrokontroler AT89S52, 2008.


USU Repository © 2009
36

3.6. Diagram Alir Pemrograman

Start

Menentukan variabel dan


inisialisasi port
mikokontroler

Set Timer 0 sebagai


counter

Set subrutin untuk


interrupt Timer 0

Aktifkan Interrupt

Hitung pulsa dari sumber


gelombang yang dihitung
pada port 3.4

Delay 1 detik

Ambil nilai yang didapat


setelah 1 detik

Tampilkan hasil
perhitungan pada LCD
sebagai frekuensi

Reset semua variabel

Gambar 3.7 Flowchart pemrograman frequency counter

Afniza : Frequency Counter Berbasis Mikrokontroler AT89S52, 2008.


USU Repository © 2009
37

Di atas diperlihatakan sebuah flowchart program yang akan diisi pada mikrokontroler.

Berikut adalah penjelasannya :

a. Start: Program dimulai

b. Menentukan variabel dan inisialisasi port mikrokontroler: disinilah kita

menuliskan variabel yang kita gunakan dalam program dan sekaligus kita

tentukan port mikrokontroler yang akan digunakan.

c. Set Timer 0 sebagai counter: Pada mikrokontroler AT89S52 di port

3.4 adalah pin yang dinamakan timer 0, kita dapat memanfaatkan interrupt

timer 0 tersebut sebagai timer (pewaktu) ataupun sebagai counter, pada

permasalahan kita saat ini kita men-set timer 0 sebagai counter.

d. Set subrutin untuk timer 0: Pada bagian ini kita membuat subrutin untuk

pengaktifan timer 0.

e. Aktifkan interrupt timer 0: Pada bagian ini interrupt timer 0 diaktifkan,

interrupt tersebut akan aktif bila mendapatkan sinyal dari luar dan apabila

tidak ada sinyal dari luar maka sistem akan tetap menunggu sampai ada sinyal

masuk.

f. Hitung pulsa dari sumber gelombang: Apabila ada sinyal dari luar maka pulsa

dari gelombang tersebut segera dihitung.

g. Delay 1 detik: Untuk mengetahui frekuensi dari gelombang yang masuk maka

kita membutuhkan waktu sampling sebanyak 1 detik untuk mencacah sinyal

yang masuk tersebut.

h. Ambil nilai setelah 1 detik

i. Hasil counting (cacahan) kita tampilkan pada LCD

Afniza : Frequency Counter Berbasis Mikrokontroler AT89S52, 2008.


USU Repository © 2009
38

j. Reset semua variabel: Setelah counting (mencacah) dan hasilnya telah

ditampilkan maka sistem kita rancang untuk mengulang (reset) seluruh

variabel untuk menerima data count (cacahan) yang baru.

Afniza : Frequency Counter Berbasis Mikrokontroler AT89S52, 2008.


USU Repository © 2009
BAB 4

PENGUJIAN RANGKAIAN

4.1. Pengujian Rangkaian Mikrokontroler AT89S52

Untuk mengetahui apakah rangkaian mikrokontroler AT89S52 telah bekerja dengan

baik, maka dilakukan pengujian. Pengujian bagian ini dilakukan dengan memberikan

program pada IC AT89S52, apabila ada sinyal masukan dari rangkaian pengkondisi

sinyal maka sistem minimum akan mengaktifkan interrupt timer 0 dan menghitung

pulsa dari sumber gelombang pada port 3.4.

Setelah penghitungan pulsa selesai maka tampilan akan dikirim ke LCD dan

hasil counter akan ditampilkan dengan satuan Hz (Hertz).

Rangkaian sistem minimum telah sukses dalam menjalankan seluruh operasi

tersebut di atas, maka rangkaian dinyatakan bekerja dengan baik.

4.2. Pengujian Rangkaian Pengkondisi Sinyal

Rangkaian pengkondisi sinyal ini atau rangkaian buffer yang berfungsi sebagai

rangkaian yang dapat mempertahankan kestabilan sinyal yang akan dikirimkan ke

sistem minimum AT89S52. Pada rangkaian ini diberi probe untuk mengukur sinyal

masukan yang berasal dari sinyal function atau alat yang keluarannya berupa sinyal

DC (direct current) dengan kisaran tegangan TTL khususnya segi empat.

Afniza : Frequency Counter Berbasis Mikrokontroler AT89S52, 2008.


USU Repository © 2009
40

Sinyal input akan dikirim ke IC 7414 dan melalui pin 10 maka sinyal dikirim

ke sistem minimum melalui port 3.4, apabila pada sistem minimum sudah dapat

mengcounter nilai dari pengkondisi sinyal, maka rangkaian ini telah bekerja dengan

baik.

4.3. Pengujian Rangkaian Power Supply

Pengujian rangkaian ini dengan mengukur tegangan keluaran dari power supply

menggunakan multimeter digital. Setelah dilakukan pengukuran maka diperoleh

besarnya tegangan keluaran sebesar 5 volt. Setelah itu rangkaian power supply

dihubungkan ke sumber arus listrik dan saklar ON/OFF nya diaktifkan ke posisi ON.

4.4. Pengujian Rangkaian secara keseluruhan

Setelah seluruh rangkaian dihubungkan menggunakan kabel pelangi sesuai dengan

yang telah ditetapkan, lalu diberi arus melalui rangkaian power supply, keluaran dari

power supply berupa tegangan sebesar 5 volt diteruskan ke rangkaian system

minimum dan rangkaian pengkondisi sinyal. Rangkaian system minimum dibuat

dalam keadaan ON. Diberi masukan berupa sinyal masukan yang berasal dari sinyal

fuction atau alat yang keluarannya berupa sinyal DC (direct current) dengan kisaran

tegangan TTL khususnya segi empat.

Sinyal input akan dikirim ke IC 7414 dan melalui pin 10 maka sinyal dikirim

ke sistem minimum melalui port 3.4. Di dalam rangkaian ini masukan dicounter

dengan program yang sudah diberikan pada IC AT89S52, setalah pulsa dicounter

Afniza : Frequency Counter Berbasis Mikrokontroler AT89S52, 2008.


USU Repository © 2009
41

maka hasilnya akan dikirim melalui P1.1 sampai P1.7 lalu kerangkaian konektor yang

dihubungkan ke LCD (liquid crystal display). Pada LCD akan ditampilkan hasil

counter yang diperoleh dalam satuan Hertz (Hz).

Setelah hasil dari counter ditampilkan pada LCD berarti alat frequency counter

ini telah sukses menjalankan seluruh operasi di atas, dan dapat dinyatakan kalau

rangkaian bekerja dengan baik.

Afniza : Frequency Counter Berbasis Mikrokontroler AT89S52, 2008.


USU Repository © 2009
BAB 5

KESIMPULAN DAN SARAN

5.1. Kesimpulan

1. Frequency counter memanfaatkan fasilitas counter pada timer 0

mikrokontroler AT89S52.

2. Sinyal atau pulsa yang diukur merupakan arus searah dengan batasan

maksimum 6 volt.

3. Pengujian frequency counter dengan menggunakan osilator timer 555 sebagai

sumber sinyal, menunjukkan hasil yang sama dalam perhitungannya dengan

frequency counter buatan pabrik.

4. Pengujian frequency counter dengan menggunakan function generator yang

membangkitkan gelombang AC tidak akurat dalam perhitungannya

sedangkan bila menggunakan frequency counter buatan pabrik bisa diketahui

hasilnya.

5. Frequency counter ini bekerja dengan modus synchronus sehingga

penghitungan frekuensi dapat dilakukan dengan melakukan sampling setiap

satu detik, beda halnya dengan modus asynchronus yang dapat menghitung

frekuensi hanya dengan waktu sampling yang lebih singkat.

Afniza : Frequency Counter Berbasis Mikrokontroler AT89S52, 2008.


USU Repository © 2009
43

5.2. Saran

1. Untuk lebih menyempurnakan frequency counter berbasis mikrokontroler

AT89S52 ini dibutuhkan rangkaian pengkondisi sinyal tambahan agar

frekuensi sinyal AC dapat dihitung.

2. Frequency counter ini memerlukan pengembangan lebih lanjut agar lebih

sempurna.

3. Frequency counter ini diharapkan dapat menjadi salah satu contoh dari

berbagai macam jenis frequency counter yang ada di dunia dengan berbagai

macam prinsip kerjanya.

Afniza : Frequency Counter Berbasis Mikrokontroler AT89S52, 2008.


USU Repository © 2009
44

DAFTAR PUSTAKA

Andi, Nalwan Paulus. 2004. Panduan Praktis Penggunaan dan Antarmuka Modul

LCD M1632. Jakarta: PT. Elex Media Komputindo.

Budiharto, Widodo. 2005. Panduan Lengkap Belajar Mikrokontroler Perancangan

Sistem dan Aplikasi Mikrokontroler. Jakarta: PT Elex media Komputindo.

Budioko, Totok. 2005. Belajar dengan Mudah dan Cepat Pemrograman Bahasa C

dengan SDCC (Small Device C Compiler) pada Mikrokontroler

AT89X051/AT89C51/52 Teori, Simulasi dan Aplikasi. Edisi Pertama.

Yogyakarta: Penerbit Gava Media.

Wahyudin, Didin. 2007. Belajar Mudah Mikrokontroler AT89S52 dengan Bahasa

BASIC Menggunakan BASCOM-8051. Yogyakarta: C.V. Andi OFFSET.

http://www.delta-electronic.com/Design/Apnote/HD44780.html. Diakses tanggal 23

April, 2008.

http://en.wikipedia.org/wiki/Frequency_counter. Diakses tanggal 23 April, 2008.

Afniza : Frequency Counter Berbasis Mikrokontroler AT89S52, 2008.


USU Repository © 2009

Anda mungkin juga menyukai