2.1.1.4.Defenisi-defenisi Kondisi Bus
Berikut ini adalah defenisi kondisi bus pada sistem komunikasi serial I2C TWI:
1. Bus tidak sibuk bus not busy: menyatakan pada saat ini bus tidak sibuk
yaitu pada saat jalur clock SCL dan jalur data SDA dua-duanya dalam keadaan HIGH.
2. Mulai transfer data start data transfer: ditandai dengan perubahan kondisi
SDA dari HIGH ke LOW ketika SCL dalam kondisi HIGH.
3. Stop transfer data stop data transfer: ditandai dengan perubahan kondisi
SDA dari LOW ke HIGH ketika SCL dalam kondisi HIGH.
4. Data valid: data yang dikirim bit demi bit dianggap valid jika setelah START,
kondisi SDA tidak berubah selama SCL HIGH, baik SDA HIGH maupun SDA LOW tergantung dari bit yang ingin ditransfer. Setiap siklus HIGH SCL baru
menandakan pengiriman bit baru. Duty cycle untuk SCL tidak mesti 50, tetapi frekuensi kemunculannya hanya ada dua macam, yaitu mode standar 100
kHz dan fast mode atau mode cepat 400 kHz. Setelah SCL mengirimkan sinyal HIGH yang kedelapan, arah transfer SDA berubah, sinyal kesembilan pada
SDA ini dianggap sebagai acknowledge dari receiver ke transmitter. DS1307 hanya bisa melakukan transfer pada mode standar 100 kHz.
5. Pemberitahuan Acknowledge: setiap receiver wajib mengirimkan sinyal
acknowledge atau sinyal balasan setiap selesai pengiriman 1-byte 8-bit data. Master harus memberikan ekstra clock atau clock tambahan pada SCL, yaitu
clock kesembilan untuk memberikan kesempatan receiver mengirimkan sinyal acknowledge ke transmitter berupa keadaan LOW pada SDA selama SCL
HIGH. Meskipun master berperan sebagai receiver, ia tetap sebagai penentu
Universitas Sumatera Utara
sinyal STOP. Pada bit akhir penerimaan byte terakhir, master tidak mengirimkan sinyal acknowledge, SDA dibiarkan HIGH oleh receiver dalam
hal ini master, kemudian master mengubah SDA dari LOW menjadi HIGH
yang berarti sinyal STOP. Data Sheet IC Real-Time Clock DS1307.
2.1.1.5.Mode Pengoperasian Transfer Data
Mode pengoperasian transfer data berdasarkan kondisi bit RW, ada dua jenis transfer data yaitu: transfer data dari transmitter master ke receiver slave dan transfer data dari
transmitter slave ke receiver master.
A. Transfer Data dari Transmitter Master ke Receiver Slave
Byte pertama yang dikirimkan oleh master adalah alamat slave, setelah itu master mengirimkan sejumlah byte data. Slave atau receiver mengirimkan sinyal
acknowledge setiap kali menerima 1-byte data. Pada tiap byte, bit pertama yang dikirim adalah MSB dan bit yang terakhir adalah LSB.
B. Transfer Data dari Transmitter Slave ke Receiver Master
Meskipun master berperan sebagai receiver, byte pertama dikirimkan oleh master berupa alamat slave. Setelah itu slave meengirimkan bit acknowledge, dilanjutkan
dengan pengiriman sejumlah byte dari slave ke master. Master mengirimkan bit acknowledge untuk setiap byte yang diterimanya kecuali byte terakhir. Pada akhir
Universitas Sumatera Utara
byte, master mengirimkan sinyal ‘not avknowledge’, setelah itu master mengirimkan sinyal STOP.
Gambar 2.4. Proses transfer data pada I2C data sheet RTC DS1307.
2.1.1.6.Mode Operasi RTC DS1307 Melalui I2CTWI
IC RTC DS1307 beroperasi dalam dua mode, yaitu Slave Receiver Mode Write Mode dan Slave Transmitter Mode Read Mode.
A. Slave Receiver Mode Write Mode:
Mode penerima slave write mode dalam pengiriman sinyal memiliki urutan:
1. Setelah sinyal START, master mengirim byte pertama yang terdiri dari 7-bit
address IC DS1307, yaitu 1101000 dan 1-bit RW, yaitu LOW, karena ini
adalah operasi WRITE. 2.
Hardware pada DS1307 akan membaca address yang dikirimkan oleh master tersebut, kemudian slave, dalam hal ini IC DS1307 akan bit-acknowledge pada
SDA.
Universitas Sumatera Utara
3. Setelah itu master akan mengirimkan address tempat data pertama akan
diakses. Address ini berbeda dengan 7-bit address tadi, ini adalah address “isi” IC DS1307, bukan address dari IC DS1307. Address ini akan disimpan dalam
register pointer oleh DS1307 yang juga mengirim sinyal acknowledge ke master.
4. Setelah itu master dapat mengirimkan sejumlah byte ke slave, dimana setiap
byte dibalas dengan acknowledge oleh slave. Setiap menerima byte baru isi register pointer ditambah satu sehingga register ini menunjuk ke alamat
berikutnya dari lokasi data pada DS1307. Setelah menerima acknowledge terakhir, master akan mengirim sinyal STOP untuk mengakhiri transfer data.
Gambar 2.5. Data write – slave receiver mode Data sheet RTC DS1307.
B. Slave Transmitter Mode Read Mode:
Sama seperti mode write, setelah master memberikan sinyal START, ia mengirimkan
byte pertama yang terdiri dari 7-bit dalam IC DS1307, yaitu 1101000, diikuti 1-bit
RW, yaitu HIGH. Setelah menerima byte pertama ini, slave, dalam hal ini DS1307 akan mengirimkan bit acknowledge pada SDA. Setelah itu slave mulai mengirimkan
Universitas Sumatera Utara
sejumlah byte ke master. Setiap byte pengiriman dibalas dengan 1-bit acknowledge oleh master. Byte pertama yang dikirimkan oleh slave atau DS1307 adalah data yang
alamatnya ditunjuk oleh register pointer pada DS1307. Setiap kali pengiriman byte ke master, secara otomatis isi register pointer ditambah satu. DS1307 akan terus menerus
mengirimkan byte ke master sampai master mengirimkan bit ‘not acknowledge’ diikuti dengan sinyal STOP. Data sheet RTC DS1307.
Gambar 2.6. Data read – slave transmitter mode Data sheet RTC DS1307.
2.1.1.7.Peta Alamat Address Map RTC DS1307
Pemetaan alamat address map pada RTC dimana register-register RTC di tempatkan pada lokasi pengalamatan 00h sampai 07h. sedangkan register-register RAM Random
Access Memory ditempatkan pada lokasi pengalamatan 08h sampai 3Fh.
Khusus alamat 02H, bit-6 LOW untuk siklus jam 00 – 24 dan HIGH untuk
siklus jam 00 – 12. Bit-5 HIGH pada saat PM dan LOW pada saat AM atau angka puluhan jika bit-6 LOW.
Universitas Sumatera Utara
2.1.1.8.Jam dan Kalender
Informasi waktu dan kalender diperoleh dengan membaca byte register yang sesuai. Tabel 2.1 menunjukkan RTC register. Waktu dan kalender diatur atau diawali
dengan menuliskan byte register yang sesuai. Isi waktu dan register kalender dalam format BCD. Pergantian hari dan minggu terjadi pada tengah malam. Nilai-nilai yang
sesuai dengan hari dan minggu yang digunakan harus sekuensial yaitu, jika 1 sama dengan hari Minggu, kemudian 2 sama dengan Senin, dan seterusnya. Ketidaklogisan
waktu dan tanggal hasil entri dalam operasi dapat didefinisikan. Bit 7 dari register 0 adalah penghentian jam CH bit. Bila bit ini di set ke 1, osilator dinonaktifkan. Ketika
diatur ke 0, osilator ini diaktifkan. Pada penerapan listrik pertama ke perangkat, register waktu dan tanggal biasanya diatur ulang ke 010100 01 00:00:00 MM DD
YY Dow HH: MM: SS. Register CH bit pada detik-detik akan ditetapkan ke 1. Jam ini dapat dihentikan setiap kali fungsi ketepatan waktu tidak diperlukan, yang dapat
meminimalkan arus. DS1307 dapat dijalankan baik dalam jam bermodus 12 maupun dengan jam
bermodus 24. Bit 6 dari jam didefinisikan sebagai register bit pada mode pilihan 12- jam atau 24-jam. Ketika tinggi, modus 12-jam dipilih. Pada modus 12-jam, bit 5
adalah bit AM PM dengan logika tinggi menjadi PM. Pada modus 24-jam, bit 5 adalah 10-bit kedua jam 20-23 jam . Nilai jam harus kembali setiap kali masuk
modus bit 1224-jam berubah. Ketika membaca atau menulis waktu dan tanggal register, penggunaan
penyangga digunakan untuk mencegah kesalahan ketika internal register diperbaharui. Ketika membaca waktu dan register saat ini, penggunaan penyangga disinkronisasi ke
Universitas Sumatera Utara
register internal pada setiap I²C START. Informasi waktu dibaca dari register sekunder sementara jam terus berjalan. Hal ini menghilangkan kebutuhan untuk
membaca kembali register dalam kasus register internal update selama membaca. Rantai pembagi diatur ulang setiap kali detik register tertulis. Transfer terjadi pada I²C
dari DS1307. Setelah rantai pembagi diatur ulang, untuk menghindari masalah rollover, waktu yang tersisa dan tanggal register harus ditulis dalam satu detik.
Tabel 2.1. Peta alamat RTC DS1307 Data sheet RTC DS1307
.
2.1.1.9.Register Kontrol Control Register
Register kontrol pada RTC DS1307 digunakan untuk mengontrol operasi pada pin SQWOUT.
Tabel 2.2. Register kontrol control register Data sheet RTC DS1307.
Keterangan bit-bit pada register kontrol:
1. Bit-7: Output Control OUT yaitu jika pin SQWOUT di-disable sehingga
tidak mengeluarkan clock, bit-7 ini menentukan level sinyal yang keluar dari
Universitas Sumatera Utara
pin SQWOUT. Jika bit-7 ini LOW, maka level pin SQWOUT ikut LOW dan
jika bit-7 ini HIGH, maka level pin SQWOUT ikut HIGH. 2. Bit-4: Square-wave Enable digunakan untuk enable disable keluarnya clock
dari pin SQWOUT. HIGH berarti enable dan LOW berarti disable. Frekuensi sinyal clock yang keluar dari pin SQWOUT ditentukan oleh kondisi bit-1 dan
bit-0. 3. Bits 1, 0: Rate Select RS1, RS0 untuk menentukan frekuensi yang keluar
dari pin SQWOUT. Kombinasi nilai RS0, dan RS1 menghasilkan output gelombang kotak dengan nilai frekuensi masing-masing yang ditunjukkan oleh
tabel 2.3. Tabel 2.3. Rate select RS1, RS0 Data sheet RTC DS1307.
2.1.2.Mikrokontroller ATMega8L
Mikrokontroller, sebagai suatu terobosan teknologi mikrokontroller dan mikrokomputer, hadir memenuhi kebutuhan pasar market need dan teknologi baru.
Sebagai teknologi baru, yaitu teknologi semi konduktor dengan kandungan transistor yang lebih banyak namun hanya membutuhkan ruang kecil serta dapat diproduksi
secara massal dalam jumlah banyak sehingga harga menjadi lebih murah dibandingkan mikroprosessor. Sebagai kebutuhan pasar, mikrokontroller hadir untuk
memenuhi selera industri dan para konsumen akan kebutuhan dan keinginan alat-alat bantu dan mainan yang lebih canggih serta dalam bidang pendidikan.
Universitas Sumatera Utara
Tidak seperti sistem komputer, yang mampu menangani berbagai macam program aplikasi misalnya pengolah kata, pengolah angka, dan lain sebagainya,
Mikrokontroller 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, sedangkan rutin-rutin antar muka
perangkat keras disimpan dalam ruang ROM yang kecil. Sedangkan Pada mikrokontroller, perbandingan ROM dan RAM-nya yang besar artinya program
kontrol disimpan dalam ROM yang ukurannya relatif lebih besar, sedangkan RAM digunakan sebagai tempat penyimpanan sederhana sementara, termasuk register-
register yang digunakan pada mikrokontroller yang bersangkutan.
Mikrokontroller ATmega8L merupakan salah satu keluarga dari MCS-51 keluaran Atmel. Jenis mikrokontroller ini pada prinsipnya dapat digunakan untuk
mengolah data per bit ataupun data 8 bit secara bersamaan. Pada prinsipnya program pada mikrokontroller dijalankan bertahap, jadi pada program itu sendiri terdapat
beberapa set instruksi dan tiap instruksi itu dijalankan secara bertahap atau berurutan.
Beberapa fasilitas yang dimiliki oleh mikrokontroller ATmega8L adalah sebagai berikut :
1. Saluran IO sebanyak 23 buah terbagi menjadi 3 port.
2. ADC sebanyak 6 saluran dengan 4 saluran 10 bit dan 2 saluran 8 bit
3. Tiga buah timer counter, dua diantaranya memiliki fasilitas pembanding.
4. CPU dengan 32 buah register.
5. EEPROM sebesar 512 byte.
Universitas Sumatera Utara
6. Empat buah programable port IO yang masing-masing terdiri dari delapan
buah jalur IO. 7.
Memori flash sebesar 8K bytes sistem Self-progamable Flash. 8.
Kemampuan untuk melaksanakan operasi aritmatika dan operasi logika. 9.
Kecepatan dalam melaksanakan instruksi per siklus 1 mikrodetik pada frekuensi 16 MHz.
2.1.2.1.Konstruksi ATMega8L
Mikrokontroller ATmega8L hanya memerlukan tambahan 3 kapasitor, 1 resistor dan 1 kristal serta catu daya 5 volt. Kapasitor 10 micro-fard dan resistor 10 kilo Ohm
dipakai untuk membentuk rangkaian riset. Dengan adanya rangkaian riset ini ATmega8L otomatis diriset begitu rangkaian menerima catu daya. Kristal dengan
frekuensi maksimum 24MHz dan kapasitor 30 mikro-farad dipakai untuk melengkapi rangkaian oscilator pembentuk clock yang menentukan kecepatan kerja
mikrokontroller.
Memori merupakan bagian yang sangat penting pada mikrokontroller. Mikrokontroller memiliki dua macam memori yang sifatnya berbeda. Read Only
Memory ROM yang isinya tidak berubah meskipun IC kehilangan catu daya. Sesuai dengan keperluannya, dalam susunan MCS-51 memori penyimpanan program ini
dinamakan sebagai memori program.
Random Access Memory RAM 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.
Universitas Sumatera Utara
Untuk mikrokontroller dengan program yang sudah baku dan diproduksi secara massal, program diisikan kedalam ROM pada saat IC mikrokontroller dicetak dipabrik
IC. Untuk keperluan tertentu mikrokontroller menggunakan ROM yang dapat diisi ulang atau Programble-Eraseable ROM yang disingkat menjadi PROM PEROM.
Dulu banyak UV-EPROM Ultra Violet Eraseable Programble ROM yang kemudian dinilai mahal dan ditinggalkan setelah ada flash PEROM yang harganya jauh lebih
murah.
Jenis memori yang dipakai untuk memori program ATmega8L adalah flash PEROM, program untuk mengendalikan mikrokontroller diisikan ke memori itu lewat
bantuan alat yang dinamakan sebagai ATmega8L flash PEROM Programmer. ATmega8L dilengkapi UART Universal Asyncronous ReceiverTransmiter yang
biasa dipakai untuk komunikasi data secara seri. Jalur untuk komunikasi data seri RXD dan TXD diletakkan berhimpitan dengan P1.0 dan P1.1. pada kaki nomor 2
dan 3, sehingga kalau sarana inputoutput bekerja menurut fungsi waktu. Clock penggerak untaian pencacah ini bisa berasal dari oscillator kristal atau clock yang
diumpan dari luar lewat T0 dan T1T0 dan T1 berhimpitan dengan P3.4 dan P3.5, sehingga P3.4 dan P3.5 tidak bisa dipakai untuk jalur inputoutput paralel kalau T0
dan T1 dipakai.
ATmega8L mempunyai enam sumber pembangkit interupsi, dua diantaranya adalah sinyal interupsi yang diumpankan ke kaki INT0 dan INT1. Kedua kaki ini
berhimpitan dangan P3.2 dan P3.3 sehingga tidak bisa dipakai sebagai jalur input output paralel kalau INT0 dan INT1 dipakai untuk menerima sinyal interupsi. Port1
dan 2, UART, Timer 0, Timer 1 dan sarana lainnya merupakan yang secara fisik merupakan RAM khusus, yang ditempatkan di Special Function Register SFR.
Universitas Sumatera Utara
2.1.2.2.Pin-Pin pada Mikrokontroller ATMega8L
Deskripsi pin-pin pada mikrokontroller ATmega8L :
Gambar 2.7. IC Mikrokontroler ATmega8L
1. VCC - Merupakan pin yang berfungsi sebagai pin masukan catu daya.
2. GND – Merupakan pin ground.
3. Port B PB0 – PB7 – Merupakan pin IO dua arah dan pin fungsi khusus,
yaitu sebagai TimerCounter, komperator analog dan SPI. 4.
Port C PC0 – PC7 – Merupakan pin IO dua arah dan pin fungsi khusus,
yaitu TWI, komperator analog, input ADC dan Timer Osilator. 5.
Port D PD0 – PD7 – Merupakan pin IO dua arah dan pin fungsi khusus,
yaitu komperator analog, interupsi eksternal dan komunikasi serial. 6.
RESET – Merupakan pin yang digunakan untuk mereset mikrokontoler.
7. XTAL1 dan XTAL2 – Merupakan pin masukan clock eksternal.
8. AVCC – Merupakan pin masukan tegangan untuk ADC.
9. AREF – Merupakan pin tegangan referensi ADC.
Universitas Sumatera Utara
2.1.3.Menentukan lamanya satu detik
Baik jam digital maupun analog pada prinsipnya sama, yaitu frekuensi getaran. Perbedaannya hanya terletak pada sumber getaran frekuensinya. Kalau jam analog
menggunakan ayunan mekanik dan gear dengan kombinasi tertentu sehingga dia mampu untuk menentukan lamanya 1 detik dan menghitung 1 menit = 60 detik.
Skema jam digital sumber frekuensinya dengan detak clock ditunjukkan pada gambar 2.8.
Gambar 2.8. Skema penentuan detik, menit dan jam http:elektroarea.blogspot.com2009_01_13_archive.html
. Sebuah pembangkit getaran sumber detak 1 Hz akan dicacah dengan
menggunakan MOD 60, artinya 1 Hz = 1 detik, setelah melewati MOD 60, maka 60 detik = 1 menit. Begitu pula dengan jam, 60 menit = 1 jam dan 24 jam = 1 hari pukul
00 : 00 : 00. http:elektroarea.blogspot.com2009_01_13_archive.html
.
2.1.3.1.Menentukan satu detik menggunakan osilator kristal
Pembagian suatu sinyal osilator dengan menggunakan frekuensi kristal untuk menghasilkan akurasi 0,01 waktu 1 detik. Dua buah kounter 12 stage CD4040
Universitas Sumatera Utara
membentuk sebuah kounter biner 24 stage dan bit-bit yang sesuai digerbangkan bersama untuk memperoleh hasil yang diinginkan.
Menggunakan sebuah kristal 50 kHz, perhitungan 50000 diperoleh ketika bit- bit yang sesuai dijumlahkan untuk menghasilkan nilai 50000 adalah berlogika high
1. Bit-bit sesuai yang dijumlahkan adalah: bit 15 = 32768 + bit 14 = 16384 + bit 9 = 512 + bit 8 = 256 + bit 6 = 64 + bit 4 = 16. Bit 14 dan 15 adalah stage ke-3
dan ke-4 pada kounter kedua Q3 – pin 6 dan Q4 – pin 5, bit 0 adalah stage pertama pada kounter pertama Q1 – pin 9. Untuk menggunakan kristal 100 kHz, masing-
masing bit digeser ke kanan sebanyak satu kali menjadi: 65536bit 16 + 32768bit 15 + 1024bit 10 + 512bit 9 + 128bit 7 + 32bit 5 = 100.000. Dan jika
menggunakan kristal 1MHz, bit-bit berikut ini akan diperlukan: Bit 19 – Right counter
Q8 – pin 1 Decimal value = 524288
18 Q7 – pin 4
262144 17
Q6 – pin 2 131072
16 Q5 – pin 3
65536 14
Q3 – pin 6 16384
Bit 9 – Left counter Q10 – pin 14
512 6
Q7 – pin 4 64
-------------- 1.000.000
Pada 1 MHz, resistor 330K pada rangkaian osilator dibutuhkan untuk peredaman yang setara dengan kira-kira 15K. Ketika hitungan terminal tercapai,
sebuah pulsa reset 7 uS dibangkitkan oleh inverter Schmitt Trigger yang mengikuti gerbang NAND. Resistor 47K dan kapasitor 470 pF menopang output agar kounter-
Universitas Sumatera Utara
kounternya menghasilkan reset ke nol. Ini kurang dari satu siklus klok pada 50kHz dan tidak menghasilkan error akan menjadi sama dengan 7 siklus pada 1 MHz yang
akan menyebabkan kounter kehilangan 7 mikro sekon waktu dalam setiap detiknya. Ini bukan error yang besar 7 bagian dari 1 juta. Lebar pulsa reset minimum untuk
kounter CMOS kira-kira 1.5 mikro sekon, jadi pulsa reset tidak dapat dibuat terlalu singkat.
Gambar 2.9. Rangkaian skematik untuk menentukan satu detik menggunakan kristal osilator 50 kHz
www.bowdenshobbycircuits.info.com .
2.1.3.2.Menentukan satu detik pada mikrokontroler
Sebuah mikrokontroler mempunyai beberapa port keluaran. Dari port tersebut dapat dikeluarkan isyarat clock dengan frekuensi tertentu. Arus rendah clock dapat
dikeluarkan dengan memberikan logika rendah pada keluaran port tersebut; dan arus tinggi clock dapat dikeluarkan dengan memberikan logika tinggi pada keluaran port
tersebut. Frekuensi tertinggi clock yang dapat dikeluarkan sebuah port tergantung
Universitas Sumatera Utara
pada frekuensi clock yang diberikan kepada mikrokontroler tersebut dan pemilihan instruksi yang tepat.
Pembangkit isyarat clock
Pembangkitan isyarat clock dapat dilakukan minimal dengan tiga cara. Pertama, dengan mengeluarkan data logika tinggi diikuti dengan data logika rendah secara
periodis. Hal ini dapat dilakukan dengan instruksi pemindahan data seperti MOV. Agar dapat diperoleh frekuensi clock cukup tinggi, maka dipilih instruksi yang
mempunyai waktu eksekusi paling kecil yaitu satu siklus. Contoh instruksi tersebut adalah MOV P1, A Atmel Corp., 1997. Jika suatu mikrokontroler dioperasikan
dengan clock 24 MHz, maka dengan instruksi tersebut perubahan logika keluaran port 1 dapat dilakukan setiap 0,5 mikrodetik sekali.
Cara kedua dengan mengeset dan mereset sebuah pin port keluaran. Hal ini dapat dilakukan dengan instruksi SETB pin_port dan CLR pin_port. Cara kedua
ini mempunyai kelebihan tidak terlibatnya data di memori lain. Sedangkan cara ketiga adalah dengan menegasikan logika port keluaran. Dengan menggunakan instruksi
CPL pin_port, maka logika keluaran di suatu pin pada port keluaran dapat dinegasikan setiap satu siklus sekali atau 0,5 mikrodetik sekali.
Pembangkit clock 1 MHz
Dengan mengoperasikan mikrokontroler pada frekuensi 24 MHz, maka satu siklus bahasa mesin yang terdiri dari enam fase dapat dieksekusi dalam waktu 0,5
mikrodetik Atmel Corp., 2007. Dengan menggunakan instruksi CPL P1.0 berturut- turut, maka di pin 0 port 1 akan diperoleh keluaran isyarat clock dengan periode 1
mikrodetik atau berfrekuensi 1 MHz.
Universitas Sumatera Utara
Keluaran pin 0 port 1 diharapkan berbentuk gelombang kotak dengan frekuensi 1 MHz. Namun dengan adanya efek kapasitif pada keluaran port tersebut,
bentuk gelombang berbentuk keluaran mungkin tidak kotak, tapi mendekati keluaran gelombang kotak yang telah melalui untai integrator. Untuk mengembalikan bentuk
tersebut ke gelombang kotak dapat digunakan gerbang dengan pemicu Schmitt, misalnya gerbang NOT dengan pemicu Schmitt 74LS14 Tocci dan Widmer, 1998.
Gambar 2.10. Pembangkitan clock 1 MHz di port 1 pin 0 Teknoin, Volume 13, Nomor 2, Desember 2008, 6-10. ISSN: 0853-8697.
Pembangkit clock kurang dari 1 MHz
Clock dengan frekuensi kurang dari 1 MHz dapat dibentuk dengan menunda pelaksanaan instruksi CPL P1.0 berikutnya. Penundaan dapat dilakukan dengan
menyisipkan instruksi untuk tidak mengerjakan apa-apa, yaitu NOP No operation. Instruksi tersebut membutuhkan waktu eksekusi satu siklus. Penyisipan satu instruksi
NOP di antara dua instruksi CPL P1.0 akan menunda eksekusi instruksi CPL P1.0 berikutnya selama satu siklus. Dengan mengoperasikan mikrokontroler ini pada clock
24 MHz, maka instruksi CPL berikutnya akan tertunda satu siklus atau 0,5 mikrodetik, sehingga selang eksekusi dua instruksi CPL adalah 1 μs.
Universitas Sumatera Utara
Gambar 2.11. Pembangkitan clock 500 kHz Teknoin, Volume 13, Nomor 2, Desember 2008, 6-10. ISSN: 0853-8697
Penyisipan satu instruksi NOP akan membentuk clock dengan periode 2 mikrodetik atau berfrekuensi 500 kHz. Penyisipan dua instruksi NOP akan
membentuk clock dengan frekuensi 333.333 Hz. Jumlah instruksi NOP yang dapat disisipkan dan frekuensi clock keluaran pada tabel 2.4.
Tabel 2.4. Jumlah instruksi NOP yang disisipkan dan frekuensi clock keluaran Teknoin, Volume 13, Nomor 2, Desember 2008, 6-10. ISSN: 0853-8697.
NOP yang disisipkan 1
2 3
4 5
6 7
8 9
fclock kHz 500
333 250
200 167
143 125
111 100
2.1.4.Mikrokontroler AT89C2051
Mikrokontroler AT89C2051 merupakan salah satu keluarga dari MCS-51 keluaran Atmel. Jenis Mikrokontroler ini pada prinsipnya dapat digunakan untuk mengolah
data per bit ataupun data 8 bit secara bersamaan.
Universitas Sumatera Utara
Pada prinsipnya program pada mikrokontroler dijalankan bertahap, jadi pada program itu sendiri terdapat beberapa set instruksi dan tiap instruksi itu dijalankan
secara bertahap atau berurutan. Beberapa fasilitas yang dimiliki oleh mikrokontroler AT89C2051 adalah
sebagai berikut:
1. Sebuah Central Processing Unit 8 bit.
2. Osilator internal dan rangkaian pewaktu.
3. RAM internal 128 byte.
4. Flash memori 2 Kbyte.
5. Lima buah jalur interupsi dua buah interupsi eksternal dan tiga buah interupsi
internal. 6.
Empat buah programable port IO yang masing-masing terdiri dari delapan buah jalur IO.
7. Sebuah port serial dengan kontrol serial full duplex UART.
8. Kemampuan untuk melaksanakan operasi aritmatika dan operasi logika.
9. Kecepatan dalam melaksanakan instruksi per siklus 1 mikrodetik pada frekuensi 12
MHz.
2.1.4.1.Pin-pin pada Mikrokontroler AT89C2051
Deskripsi pin-pin pada Microcontroller AT89C2051 adalah sebagai berikut:
Universitas Sumatera Utara
GND VCC
1 2
3 4
5 6
7 8
20 19
18 17
16 15
14 13
9 10
12 11
Gambar 2.12. Pin IC Mikrokontroller AT89C2051
1. VCC Pin 20 – Supply tegangan.
2. GND Pin 10 – Ground.
3. Port 3 Pin 2, 3, 6 – pin 9, 11 – Port 3 merupakan 7 bit port IO dua arah dengan
internal pullup. Port 3 mempunyai fungsi pin masing-masing yang ditunjukkan pada tabel 2.5.
Tabel 2.5. Fungsi masing-masing pin port 3 mikrokontroler AT89S2051. Data sheet AT89C2051
Port pin Fungsi
P3.0 pin 2 RXD port serial penerima data.
P3.1 pin 3 TXD port serial pengirim data.
P3.2 pin 6 INT0 input interupsi eksternal 0, aktif low.
Universitas Sumatera Utara
P3.3 pin 7 INT1 input interupsi ekstrernal 1, aktif low.
P3.4 pin 8 T0 eksternal input timer counter 0.
P3.5 pin 9 T1 eksternal input timer counter 1.
P3.7 pin 11 RD Read, aktif low Sinyal kontrol pembacaan memori data
input-output eksternal ke port 0.
4. RST pin 1 – Reset akan aktif dengan memberikan input high selama 2 siklus.
5. XTAL1 pin 4 – Input untuk clock internal.
6. XTAL2 pin 5 – Output dari osilator.
2.1.5.IC 4094
IC 4094 adalah suatu IC shift register 8 tingkat yang memiliki register latch untuk setiap bit untuk keperluan memindahkan data dari saluran serial kesaluran paralel
dengan 3 tingkatan pergeseren bit Q0 sampai bit Q7 menuju output. Output paralel dapat dihubungkan langsung dengan jalur data umum. Data digeser pada perubahan
sinyal clock dari Low ke High, selanjutnya data digeser dari register geser keregister penyimpanan, kemudian dengan memberikan logika high pada pin OE akan
menggeser data dari register penyimpangan menuju register output.
Universitas Sumatera Utara
Gambar 2.13. Diagram fungsi register Data Sheet IC 4094
Ada dua serial yang keluar dari IC 4094 yaitu Qs dan Q’s yang disediakan untuk keperluan penyambungan beberapa IC secara serial. Data tersedia pada Qs pada
pergeseran sinyal clock dari logika low ke logika high untuk memungkinkan pergeseran dengan kecepatan tinggi dalam keperluan penyambungan beberapa IC
secara serial. Output pada Q’s akan bergeser pada saat sinyal clock berubah dari logika high ke logika low. Gambar 2.14 menunjukkan posisi dan penamaan pin untuk
IC 4094.
Gambar 2.14. Diagram Pin IC 4094 Data sheet IC 4094.
Universitas Sumatera Utara
Keterangan: D
= data input CP
= clock input STR
= strobe input EO
= ouput enable input Q
S
, Q’
S
= output serial Q
Sd Q
7
= output parallel
2.1.6.Seven Segment
Seven segment merupakan LED yang disusun atas 7 segment yang dipergunakan untuk menampilkan angka 0 sampai 9 dan sejumlah karakter alfabet.
Gambar 2.15. Tampilan seven segmen Seven segment terdiri dari dua konfigurasi, yaitu common anoda dan common katoda.
Pada seven segment tipe common anoda, anoda dari setiap LED dihubungkan menjadi satu kemudian dihubungkan ke sumber tegangan positif dan katoda dari masing-
masing LED berfungsi sebagai input dari seven segment, seperti ditunjukkan pada gambar 2.16.
Gambar 2.16. Konfigurasi seven segment tipe common anoda.
Universitas Sumatera Utara
Sesuai dengan gambar 2.16, maka untuk menyalakan salah satu segmen, maka katodanya harus diberi tegangan 0 volt atau logika low. Misalnya jika segmen a akan
dinyalakan, maka katoda pada segmen a harus diberi tegangan 0 volt atau logika low, dengan demikian maka segmen a akan menyala. Demikian juga untuk segmen
lainnya. Pada seven segment tipe common katoda, katoda dari setiap LED dihubungkan
menjadi satu kemudian dihubungkan ke ground dan anoda dari masing-masing LED berfungsi sebagai input dari seven segment.
Gambar 2.17. Konfigurasi seven segmen tipe common katoda .
Sesuai dengan gambar 2.17, maka untuk menyalakan salah satu segmen, maka anodanya harus diberi tegangan minimal 3 volt atau logika high. Misalnya jika
segmen a akan dinyalakan, maka anoda pada segmen a harus diberi tegangan minimal 3 volt atau logika high, dengan demikian maka segmen a akan menyala. Demikian
juga untuk segmen lainnya.
Universitas Sumatera Utara
2.2. Perangkat Lunak
2.2.1. Pemrograman Bahasa C
Pencipta bahasa C adalah Brian W. Kernighan dan Dennis M. Ritchie pada sekitar tahun 1972. C adalah bahasa pemrograman terstruktur, yang membagi program dalam
bentuk sejumlah blok. Tujuannya adalah untuk memudahkan dalam pembuatan dan pengembangan program. Program yang ditulis dengan mengunakan C mudah sekali
untuk dipindahkan dari satu jenis mesin ke jenis mesin lainnya. Hal ini berkat adanya standarisasi bahasa C yaitu berupa standar ANSI American National Standards
Institute yang dijadikan acuan oleh para pembuat kompiler C. Agus Bejo, 2008.
2.2.1.1. Bentuk Dasar Program C
Sebuah program dalam bahasa C setidaknya harus memiliki sebuah fungsi. Fungsi dasar ini disebut dengan fungsi utama fungsi main dan memiliki kerangka program
sebagai berikut:
void main void
{ pernyataan-pernyataan
}
Jika kita memiliki beberapa fungsi yang lain maka fungsi utama inilah yang memiliki kedudukan paling tinggi dibandingkan fungsi-fungsi yang lain sehingga
setiap kali program dijalankan akan selalu dimulai dari memanggil fungsi utama
Universitas Sumatera Utara