Kamis, 02 Februari 2012

Membuat Jam Digital dan Running Text menggunakan AT89S52



Membuat sendiri Jam Digital ukuran besar dengan cara mudah dan sederhana

Jam Digital ukuran besar masih sangat menarik untuk dikerjakan dan masih sangat banyak yang berminat untuk memiliki Jam Digital ukuran besar. Foto berikut ini adalah salah satu tempat yang menggunakan Jam Digital yang dijelaskan dalam halaman ini.
Rangkaian dasar yang digunakan adalah rangkaian display running text dengan meletakkan posisi LED sehingga membentuk peraga 7 segment. perbedaannya hanya terletak pada power supply. Power supply untuk jam digital memerlukan tegangan 13.8 volt untuk dapat menyalakan semua LED yang dihubungkan secara seri untuk membentuk segment. Ada 4 IC 4094 digunakan untuk dapat menampilkan jam digital JJ:MM seperti terlihat pada gambar.

Kalau urutan gambar dan penjelasan berikut ini dikerjakan dengan baik, maka membuat jam digital ukuran besar tidaklah begitu sulit. Gambar disebelah adalah gambar pcb dan sejumlah LED yang terpasang secara seri, untuk dapat menyalakan 6 LED berwarna merah yang terpasang secara seri diperlukan tegangan sekitar 13.8 volt dc. Setiap segment terdiri dari dua baris LED yang masing masing ada 6 LED merah disambung secara seri.


Rangkaian dasar dari rangkaian display adalah rangkaian yang dipergunakan pada display matriks running text pada halaman lain. Perhatikan gambar rangkaian diatas, setiap LED yang berhubungan dengan output Q dari IC4094 pada rangkaian jam digital dihubungkan dengan 12 LED yang terdiri dari dua baris dengan masing masing 6 LED dihubungkan seri. Pada gambar diatas, terlihat Katoda dari LED dihubungan dengan Ground, tetapi pada rangkaian jam digital Katoda dari LED yang keenam dihubungkan dengan setiap output Q dari IC 4094 sementara Anodanya dihubungkan dengan power supply sebesar 13.8 volt,. Dengan demikian LED akan menyala jika logika pada Q diberi dengan nilai 0 (LOW).

Foto-foto berikut ini adalah salah satu tempat pemasangan JAM DIGITAL yang dijelaskan cara pembuatannya pada halaman ini.

















Dengan menggunakan display 7 segment ukuran besar, tampilan akan menjadi lebih menarik, tetapi biaya menjadi agak lebih mahal dibanding jika hanya menggunakan LED saja.


Secara keseluruhan berikut driver dan power supply, akan kelihatan sbb:

Untuk keperluan komersil, bagian driver dan bagian power supply diletakkan dibelakang display seven segment biar cantik.


Bagian belakang sebelum dipasang kotak


Bagian belakang setelah dipasang kotak, dan trafo daya juga sudah dipasang



Bagian depan setelah dipasangi kotak, dan gambar berikut ini pada saat selesai


Dan sudah jadi, dan dipamer di ruang tamu, tinggal tunggu siapa yang mau pesan.




Berikutnya kita akan melihat contoh-contoh lain bentuk display 7 segment yang sederhana tetapi tampil cantik.











LED dipasang langsung tanpa ruang












LED disusun dalam ruang sehingga tampilan lebih menyerupai peraga 7S buatan pabrik














Tampilan dengan LED langsung tanpa ruang lebih baik dari pada LED yang disusun dalam ruang, tetapi masing-orang punya selera yang berbeda.

Jam digital dapat digabung dengan running text, sehingga display waktu ditampilkan dalam bentuk led matrix sbb:

























sekalian bisa display kalender hari, tanggal, bulan, dan tahun.

Membuat sendiri Moving Text Display
atau Running Text dengan LED yang disusun dalam bentuk matrix,
Membuat sendiri display text bergerak dengan menggunakan IC shift register 4094, mudah murah dan bagus, foto-foto berikut ini menunjukkan bahwa running text dengan IC4094 dapat menyentuh pasar juga, sama halnya dengan running text mode scanning.
















Rangkaian tambahan yang diperlukan hanya sytem minimum mikrokontroller dan rangkaian power supply, untuk membuat lebih interaktif diperlukan rangkaian konverter PS/2 keyboard sebagai alat untuk mengisi text kedalam memory running text yang telah dibuat, penjelasan berikut ini dapat dengan mudah dikerjakan......,



 Rangkaian display sangat sederhana, yaitu hanya menggunakan IC4094 dan LED yang disambungkan langsung ke pin Q1 sampai Q7, dan seterusnya, perhatikan gambar rangkaiannya. Jam digital juga menggunakan rangkaian yang sama.


































Foto-foto diatas menunjukkan gambar rangkain semasih diatas layar komputer, kemudian dicetak keatas pcb terlihat bagian tembaganya, dan pcb yang sudah dipasangi LED pada tempat-tempat yang bersesuaian, sehingga dengan memperhatikan foto-foto tersebut maka diharapkan setiap pembaca akan dengan mudah dapat membuat sendiri rangkaian bagian display running text yang diperlukan.

kalau mau dibuat panjang, maka bagian-bagian pendek diatas cukup disambung saja sampai batas yang diperlukan.


Foto diatas menunjukkan rangkaian display sudah dibuat sebegitu panjang dan tinggal dimasukkan kedalam kotak yang sudah disediakan, pada foto diatas IC4094 nya dipasang pada pcb yang terpisah dan diletakkan dilapisan dibawahnya agar lebar tampilan layar menjadi lebih simetris kelihatan.
Rangkaian lengkap dengan display pendek (1 block) untuk memudahkan penjelasan dan cara membuat program.

 Berikut ini akan diperlihatkan foto rangkaian minimum dari moving text display juga program sederhana untuk membuat text bergerak pada display yang telah dijelaskan diatas tadi.


Gambar diatas menunjukkan kabel untuk mengendalikan display hanya ada 5, yaitu kabel untuk Vcc, kabel untuk GND, kabel untuk data, clock, dan latch
komponen lain adalah unit adaptor untuk memberikan daya dengan tegangan  5volt, dan rangkaian minimum mikrokontroller.
program berikut ini adalah program sederhana sekedar membuat tampilan di display.
para mahasiswa masing2 group memiliki satu unit tempat latihan membuat sendiri running text seperti pada gambar berikut ini:

Berikut ini adalah sambungan kabel antara 4094 pada rtx dengan trainer


Pin 2 di IC pertama 4094 dihubungkan dengan PORTC.0 warna kabel abu-abu terang, Pin 3 di IC4094 dihubungkan dengan PORTC.1 warna kabel abu-abu gelap, pin 15 di IC4094 dihubungkan dengan PORTC2 warna kabel biru. Selanjutnya kabel hitam adalah ground yang dihubungkan dengan kabel warna coklat pada trainer dan kabel violet adalah Vcc 5 volt DC yang dihubungkan dengan kabel merah pada trainer.
selanjutnya foto2 berikut ini adalah tampilan display pada saat dikirim ke display nilai-nilai 01, 04, 08, 10, 20, 40, dan 80, tidak semua foto ditampilkan tapi foto berikut ini sudah memberikan gambaran yang jelas.




Program yang dikirimkan membentuk posisi diatas adalah
   
         for (idx = 0; idx < 20; idx++) shift_out(0x01);
         PORTD = 0x01;
         delay_ms(5000);

         for (idx = 0; idx < 20; idx++) shift_out(0x02);
         PORTD = 0x02;
         delay_ms(5000);

         for (idx = 0; idx < 20; idx++) shift_out(0x04);
         PORTD = 0x04;
         delay_ms(5000);

         for (idx = 0; idx < 20; idx++) shift_out(0x08);
         PORTD = 0x08;
         delay_ms(5000);

         for (idx = 0; idx < 20; idx++) shift_out(0x10);
         PORTD = 0x10;
         delay_ms(5000);

         for (idx = 0; idx < 20; idx++) shift_out(0x20);
         PORTD = 0x20;
         delay_ms(5000);

         for (idx = 0; idx < 20; idx++) shift_out(0x40);
         PORTD = 0x40;
         delay_ms(5000);

         for (idx = 0; idx < 20; idx++) shift_out(0x80);
         PORTD = 0x80;
         delay_ms(5000);

dengan demikian kita sudah mengetahui nilai posisi setiap baris pada running text sehingga untuk membentuk huruf misalnya huruf r dan m dapat ditiru potongan program berikut ini

void r (void)
{
           shift_out(0xff);
           delay_ms(500);
           shift_out(0x38);
           delay_ms(500);
           shift_out(0x34);
           delay_ms(500);    
           shift_out(0xc3);
           delay_ms(500);         
           shift_out(0x00);
           delay_ms(500);
}


void m (void)
{
           shift_out(0xff);
           delay_ms(500);
           shift_out(0x40);
           delay_ms(500);         
           shift_out(0x80);
           delay_ms(500);    
           shift_out(0x40);
           delay_ms(500);         
           shift_out(0xff);
           delay_ms(500);
           shift_out(0x00);
           delay_ms(500);
}
Dan setelah dijalankan akan kelihatan pada display seperti pada gambar berikut ini :

Dengan memanggil fungtion tersebut pada program utama sbb :

while (1)
      {
      // Place your code here
      
      m();
      r();
       
      };
}
Selanjutnya tinggal kreasi huruf, dan manipulasi program sehingga hasilnya menjadi lebih baik.
gambar berikut ini adalah rangkaian penyambungan kabel pada display dan komponen pendukungnya.


setelah digabung dengan keyboard ps/2 adalah sbb:


DEFINISI DAN PEGERTIAN FUNGSI DAN KEGUNAAN MENGGUNAKAN KOMPONEN IC MIKROKONTROLLER AT89S52

Mikrokontroller merupakan IC yang dapa diprogram dan diprogram ulang karena memiliki RAM dan ROM tersendiri. Mikrokontroller dapat diaplikasikan dalam bentuk “Simulasi Sistem Atap Otomatis Untuk Pelindung Benda Terhadap Hujan Berbasis Mikrokontroler AT89S52”. Simulasi sistem atap otomatis untuk pelindung benda terhadap hujan dalam makalah ini menggunakan sebuah sensor cahaya yaitu LDR (Light Dependent Resistance) yang dipasang untuk menentukan kondisi cahaya di luar rumah dan sensor hujan untuk menentukan keadaan hujan di luar rumah . Simulasi sistem atap otomatis untuk pelindung benda terhadap hujan ini juga menggunakan IC mikrokontroller AT89S52 yang berfungsi sebagai pusat pengendali. Keluaran dari simulasi untuk pelindung benda terhadap hujan adalah atap otomatis . Simulasi sistem atap otomatis untuk pelindung benda terhadap hujan ini bekerja berdasarkan cahaya dan air hujan yang mengenai sensornya.
Mikrokontroler AT89S52 merupakan sebuah Mikrokontroler 8 bit bertenaga rendah dengan teknologi CMOS berkinerja tinggi yang dilengkapi dengan memori flash yang dapat diprogram sebesar 8 Kbyte. Komponen ini dibuat dengan teknologi memori Atmel yang nonvolatile dan berkapasitas tinggi serta kompatibel dengan set intruksi dan kaki out standar industri 80CSI. Flash onchip memungkinkan memori program dapat diprogram ulang dalam system atau dengan pemprograman memori nonvolatile yang konvensinal. Dengan menggunakan CPU 8 bit dengan flash yang diprogram dari sistem dalam sebuah monolitik chip, Atmel AT89S52 adalah sebuah Mikrokontroler yang sangat baik untuk menyelesaikan solusi yang sangat fleksibel dan efektif dalam biaya, untuk banyak masalah aplikasi serta untuk mengontrol modul tambahan. Dalam spesifikasinya AT89S52 menyediakan fitur-fitur standar antara lain:
a. Flash 8 Kbyte
b. 256 bytes RAM
c. Saluran masukan/keluaran (I/O)
d. 3 buah 16 bit timer/counter
e. Port serial full duplex
f. Osilator on-chip dan sirkuit waktu

Mengenal Tentang AT89S52



Mikrokontroler adalah mikroprosessor yang dirancang khusus untuk aplikasi kontrol, dan dilengkapi dengan ROM, RAM dan fasilitas I/O pada satu chip. AT89S52 adalah salah satu anggota dari keluarga MCS-51/52. AT89S52 dirancang oleh Atmel sesuai dengan instruksi standar dan susunan pin 80C5. Mikrokontroler 89S52 merupakan versi terbaru dibandingkan mikrokontroler AT89C51 yang telah banyak digunakan saat ini. Mikrokontroler AT89S52 ialah mikrokomputer CMOS 8 bit dengan 8Kbyte Flash Programmable dan Erasable Read Only Memory (PEROM), yang memungkinkan memori program untuk dapat diprogram kembali. Mikrokontroler berteknologi memori non volatile kerapatan tingi dari Atmel ini kompatibel dengan mikrokontroler standar industri MCS-51 baik pin kaki IC maupun set instruksinya serta harganya yang cukup murah (sekitar 15rb – 20rb, penulis lagi beli sih 19.500). Oleh karena itu, sangatlah tepat jika kita mempelajari mikrokontroler jenis ini bagi pemula. AT89S52 mempunyai kelebihan yaitu mempunyai flash memori sebesar 8Kbyte, RAM 256 byte serta 2 buah data pointer 16 bit.

Spesifikasi dari AT89S52 :
  • Sebuah CPU ( Central Processing Unit ) 8 Bit.
  • Empat buah port I/O, yang masing masing terdiri dari 8 bit
  • 8KBytes In system Programmable (ISP) flash memori dengan kemampuan 1000 kali baca/tulis tegangan kerja 4V-5.0V
  • 256x8 bit RAM ( Random Acces Memory ) internal
  • 32 Jalur I/O dapat diprogram
  • 3 Buah 16 bit Timer/Counter (T0, T1, dan T2)
  • 8 Sumber interrupt
  • Sebuah port serial dengan full duplex UART (Universal Asynchronous Receiver Transmitter).
  • Watchdog timer
  • Dual data pointer
  • Mode pemrograman ISP yang fleksibel (Byte dan Page Mode)
  • Bekerja dengan rentang 0 – 33MHz
  • Kecepatan maksimum pelaksanaan instruksi per siklus adalah 0,5 μs pada frekuensi clock 24 MHz. Apabila frekuensi clock mikrokontroler yang digunakan adalah 12 MHz, maka kecepatan pelaksanaan instruksi adalah 1 μs
Fungsi dari masing-masing pin AT89S52 adalah :
  1. Pin 1 sampai 8 (Port 1)
Merupakan port pararel 8 bit dua arah ( bidirectional) yang dapat digunakan untuk berbagai keperluan ( general purpose).
  1. Pin 9
Merupakan pin reset, reset aktif jika mendapat catuan tinggi. Jika pada pin ini diberi input “1” (HIGH) selama minimal 2 machine cycle, maka sistem akan di-reset dan register internal AT89S52 akan berisi nilai default tertentu. Proses reset merupakan proses untuk mengembalikan sistem kekondisi semula. Reset tidak mempengaruhi internal program memory. Reset terjadi jika pin RST bernilai high selama minimal dua siklus lalu kembali bernilai low. Power on reset merupakan proses reset yang berlangsung secara otomatis pada saat sistem pertama kali diberi suplai. Proses ini mempengaruhi semua register dan internal data memory.
  1. Pin 10 sampai 17 (Port 3)
Adalah port pararel 8 bit dua arah yang memiliki fungsi sebagai berikut :
  • P3.0 (10) : RXD (port serial penerima data)
  • P3.1 (11) : TXD (port serial pengirim data)
  • P3.2 (12) : INT0 (input interupsi eksternal 0, aktif low)
  • P3.3 (13) : INT1 (input interupsi ekstrernal 1, a ktif low)
  • P3.4 (14) : T0 (eksternal input timer / counter 0)
  • P3.5 (15) : T1 (eksternal input timer / counter 1)
  • P3.6 (16) : WR (Write, aktif low) Sinyal kontrol penulisan data dari port 0 ke memori data dan input-output eksternal.
  • P3.7 (17) : RD (Read, aktif low) Sinyal kontrol pembacaan memori data input-output eksternal ke port 0.
  1. Pin 18
Sebagai XTAL 2, keluaran osilator yang terhubung pada kristal. (XTAL2 berfungsi sebagai keluaran dari rangkaian osilasi mikrokontroler).
  1. Pin 19
Sebagai XTAL 1, masukan ke osilator berpenguatan tinggi, terhubung pada kristal. (XTAL1 berfungsi sebagai masukan dari rangkaian osilasi mikrokontroler).
  1. Pin 20
Sebagai Vss, terhubung ke 0 atau ground pada rangkaian.
  1. Pin 21 sampai 28 (Port 2)
Merupakan dual-purpose port (port pararel 8 bit dua arah). Pada desain minimum digunakan sebagai port I/O (Input/Output). Sedangkan pada desain lebih lanjut digunakan sebagai high byte dari address (alamat), dan port ini mengirim byte alamat bila pengaksesan dilakukan pada memori eksternal.
  1. Pin 29
Sebagai PSEN (Program Store Enable) adalah sinyal yang digunakan untuk membaca, memindahkan program memori eksternal (ROM / EPROM) ke mikrokontroler (aktif low). PSEN adalah sinyal kontrol yang mengizinkan untuk mengakses program (code) memori 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.
  1. Pin 30
Sebagai ALE (Address Latch Enable) untuk menahan alamat bawah selama mengakses memori eksternal. Pin ini juga berfungsi sebagai PROG (aktif low) yang diaktifkan saat memprogram internal flash memori pada mikrokontroler (on chip). 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 HIGH sehingga mengizinkan penulisan address (alamat) pada register eksternal. Dan pada setengah paruh berikutnya akan bernilai HIGH)sehingga port 0 dapat digunakan sebagai data bus.
  1. Pin 31
Sebagai EA (External Accesss) untuk memilih memori yang akan digunakan, memori program internal (EA = Vcc) atau memori program eksternal (EA = Vss), juga berfungsi sebagai Vpp (programming supply voltage) pada saat memprogram internal flash memori pada mikrokontroler. Jika EA diberi input HIGH, maka mikrokontroller menjalankan program memori internal saja. Jika EA diberi input LOW, maka AT89S52 menjalankan program memori eksternal (PSEN akan bernilai LOW).
  1. Pin 32 sampai 39 (Port 0)
Merupakan port pararel 8 bit dua arah. Berfungsi sebagai alamat bawah yang dimultipleks den gan data untuk mengakses program dan data memori eksternal. port 0 ini dapat digunakan sebagai port Input/Output (I/O)
  1. Pin 40
Sebagai Vcc, terhubung ke +5 V sebagai catuan untuk mikrokontroler.

Memori:
a.Memori Program
Pada EPROM 8 Kbyte, jika EA (External Access) bernilai tinggi, maka program akan menempati alamat 0000 H sampai 0FFF H secara internal. Jika EA bernilai rendah maka program akan menempati alamat 1000 H sampai FFFF H ke pr ogram eksternal.
Memori program merupakan suatu ruang memori yang digunakan untuk menyimpan kode program dan konstanta yang sifatnya tetap. Memori program hanya bisa dibaca saja (Read Only Memori), dalam artian ketika sedang melakukan eksekusi program memori hanya bersifat di baca saja namun tidak dapat diubah isinya, sebagian memori program terdapat didalam chip mikrokontroler (On-chip) dan sebagian lagi berada diluar (off-chip). Mikrokontroler ATMEL AT89S52 mempunyai kapasitas memori program on-chip sebesar 8 kB.

b.Memori Data
RAM merupakan memori data internal (on-chip). Untuk AT89S52 mempunyai memori sebesar 256 byte. Pada segment data ini dibagi menjadi tiga bagian, dimulai dari alamat 0×00 sampai dengan 0xFh dikenal sebagai register R0 sampai dengan R7 yang diorganisasikan menjadi 4 bank. Pemilihan bank yang dilakukan dengan memberikan kombinasi logika pada register Program Status Word(PSW). Bagian berikutnya adalah mulai alamat 0×20 sampai dengan 0x2f sebanyak 128 bit merupakan lokasi memori yang dapat dimanipulasi perbit (bit addressable) juga dikenal dengan segment bit (BDATA). Bagian berikutnya adalah general purpose RAM mulai alamat 0×30 sampai dengan 0x7fh.

Skema dan Keterangan PIN AT89S52

Mikrokontroler merupakan sistem komputer kecil yang biasa digunakan untuk sistem pengendali atau pengontrol yang dapat diprogram sesuai kebutuhan. Mikrokontroller memiliki 4KB Flash Programmable dan Erasable Read Only Memory (PEROM) didalamnya.
Mikrokontroler AT89S52  merupakan  pengembangan dari mikrokontroler MCS-51. Mikrokontroler ini biasa disebut juga dengan mikrokomputer  CMOS 8 bit dengan  8 Kbyte yang dapat dIprogram sampai 1000 kali pemograman. Selain itu AT89S52 juga mempunyai kapasitas RAM sebesar 256 bytes, 32 saluran I/O, Watchdog timer, dua pointer data, tiga buah timer/counter 16-bit, Programmable UART (Serial Port). Memori Flash digunakan untuk menyimpan perintah (instruksi) berstandar MCS-51, sehingga memungkinkan mikrokontroler ini bekerja sendiri tanpa diperlukan tambahan chip lainnya (single chip operation), mode operasi keping tunggal yang tidak memerlukan external memory dan memori flashnya mampu diprogram hingga seribu kali. Hal lain yang menguntungkan adalah sistem pemogramanan menjadi lebih sederhana dan tidak memerlukan rangkaian yang rumit.
Sebuah mikrokontroler dapat berfungsi/bekerja, apabila telah terisi oleh program. Program terlebih dahulu dimasukan kedalam memori sesuai dengan kebutuhan penggunaaan pengontrolan yang diperlukan dan yang hendak dijalankan. Program yang dimasukkan kedalam mikrokontroler Atmel 89S52 adalah berupa file heksa (Hex File), dan program tersebut berisikan instruksi atau perintah untuk menjalankan sistem kontrol.
Mikrokontroler merupakan single chip computer yang memiliki kemampuan untuk diprogram dan digunakan untuk tugas-tugas yang berorientasi kontrol, Mikrokontroller berkembang dengan dua alasan utama, yaitu kebutuhan pasar (market needed) dan perkembangan teknologi baru.  Dalam perkembangannya sampai saat ini, sudah banyak produk mikrokontroller yang telah diproduksi oleh berbagai perusahaan pembuat IC (Integrated Circuit) diantara salah satunya adalah jenis mikrokontroller yang digunakan dalam perancangan alat ini yaitu mikrokontroller seri 8052 yang dibuat oleh ATMEL, dengan kode produk AT89S52. Secara fisik, mikrokontroler AT89S52 mempunyai 40 pin, 32 pin diantaranya adalah pin untuk keperluan port masukan/keluaran. Satu port paralel terdiri dari 8 pin, dengan demikian 32 pin tersebut membentuk 4 buah portparalel, yang masing-masing dikenal dengan Port 0, Port1, Port2 dan Port3. Dengan keistimewaan di atas perancangan dengan menggunakan mikrokontroler AT89S52 menjadi lebih sederhana dan tidak memerlukan komponen pendukung yang lebih banyak lagi.
2.1.2    Konfigurasi Pin AT89S52
Setiap pin (kaki) dari mikrkontroler AT89S51 mempunyai fungsi masing-masing fungsi. Arsitektur hardware mikrokontroller AT89S52 dari perspektif luar atau biasa disebut pin out digambarkan pada gambar 2.1 di bawah ini
Gambar 2. Konfigurasi Pin Mikrokontroler AT89S52
Berikut adalah penjelasan mengenai fungsi dari tiap-tiap pin (kaki) yang ada pada mikrokontroller AT89S52.
a. Port 0
Merupakan dual-purpose port (port yang memiliki dua kegunaan). Pada disain yang minimum (sederhana), port 0 digunakan sebagai port Input/Output (I/O).. Port 0 terdapat pada pin 32-39.
b. Port 1
Merupakan port yang hanya berfungsi sebagai port I/O (Input/Output). Port 1 terdapat pada pin 1-8.
c. Port 2
Merupakan dual-purpose port. Pada desain minimum digunakan sebagai port I/O (Input/Output). Sedangkan pada desain lebih lanjut digunakan sebagai high byte dari address (alamat). Port 2 terdapat pada pin 21-28.
d. Port 3
Merupakan dual-purpose port. Selain sebagai port I/O (Input/Output), port 3 juga mempunyai fungsi khusus. Fungsi khusus tersebut diperlihatkan
Tabel 2.1 Data Port 3  pin 10 -17
a. PSEN (Program Store Enable)
PSEN adalah sinyal kontrol yang mengizinkan untuk mengakses program (code) memori 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.
a. 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.
b. EA (External Access)
Jika EA diberi input “1” (HIGH), maka mikrokontroller menjalankan program memori internal saja. Jika EA diberi input “0” (LOW), maka AT89S52 menjalankan program memori eksternal (PSEN akan bernilai “0”). EA terdapat pada pin 31.
c. RST (Reset)
RST terdapat pada pin 9. Jika pada pin ini diberi input “1” (HIGH) selama minimal 2 machine cycle, maka sistem akan di-reset dan register internal AT89S52 akan berisi nilai default tertentu. Proses reset merupakan proses untuk mengembalikan sistem kekondisi semula. Reset tidak mempengaruhi internal program memory. Reset terjadi jika pin RST bernilai high selama minimal dua siklus lalu kembali bernilai low. Power on reset merupakan proses reset yang berlangsung secara otomatis pada saat sistem pertama kali diberi suplai. Proses ini mempengaruhi semua register dan internal data memory. Untuk mendapatkan proses ini, maka pin RST harus diberi tambahan rangkaian seperti pada gambar berikut.
Gambar 2.2. Rangkaian reset  AT89S52
  1. a. On-Chip oscillator
AT89S52 telah memiliki on-chip oscillator yang dapat bekerja jika drive menggunakan kristal. Tambahan kapasitor diperlukan untuk menstabilkan sistem. Nilai kristal yang biasa digunakan pada AT89S52 ini adalah 12 MHz. On-chip oscillator tidak hanya dapat di-drive dengan menggunakan kristal, tetapi juga dapat dengan menggunakan TTL Oscillator.
  1. b. XTAL1
XTAL1 berfungsi sebagai masukan dari rangkaian osilasi mikrokontroler. XTAL1 terdapat pada ipin 19
  1. c. XTAL2
XTAL2 berfungsi sebagai keluaran dari rangkaian osilasi mikrokontroler. XTAL2 terdapat pada pin 18
  1. d. VCC
VCC merupakan masukan sumber tegangan  positif bagi mikrokontroler yang terdapat pada pin 40.
2.1.1 Arsitektur dan Blok Diagram Mikrokontroler AT89C51
Mikrokontroler  AT89S52 dibangun berdasarkan arsitektur seperti ditunjukkan gambar dibawah ini. Seluruh bagian yang digambar pada gambar tersebut saling berhubungan melalui internal bus 8 bit menelusuri bagian serpih. Bus tersebut kemudian dihubungkan ke luar melalui input output port  apabila memori  atau expansi diperlukan.
Unit pengolah pusat (CPU) terdiri atas dua bagian, yaitu unit pengendali control unit (CU), serta unit aritmatika dan logika (ALU). Fungsi utama unit pengendali ini adalah mengambil, mengkode,  dan melaksanakan urutan intruksi sebuah  program yang tersimpan dalam memori, unit pengendali juga berfungsi untuk mengatur urutan operasi seluruh sistem. Unit pengendali atau CPU juga menghasilkan dan mengatur sinyal pengendali yang diperlukan untuk menyerempakkan operasi, juga aliran intruksi program. Aliran informasi pada   bus-bus data dan  bus alamat juga diatur oleh unit ini.
Gambar 4. blok digram mikrokontroler AT89S52
2.1.1 Memori Program
Memori program merupakan suatu ruang memori  yang digunakan  untuk  menyimpan kode program dan konstanta yang sifatnya tetap. Memori program hanya bisa dibaca saja (Read Only Memori), dalam artian ketika sedang melakukan eksekusi program memori hanya bersifat di baca  saja namun tidak dapat diubah isinya, sebagian memori program terdapat didalam  chip mikrokontroler (On-chip) dan sebagian lagi  berada diluar (off-chip). Mikrokontroler ATMEL AT89S52 mempunyai kapasitas memori program on-chip sebesar  8 kB.
2.1.2 Memori Data
RAM merupakan memori data internal (on-chip). Untuk  AT89S52  mempunyai memori  sebesar  256 byte. Pada  segment data ini  dibagi menjadi  tiga  bagian,  dimulai dari  alamat 0×00  sampai dengan 0xFh dikenal sebagai  register R0 sampai dengan  R7   yang  diorganisasikan  menjadi 4 bank. Pemilihan  bank yang dilakukan  dengan memberikan  kombinasi  logika  pada register  Program Status Word(PSW). Bagian  berikutnya  adalah mulai alamat  0×20 sampai  dengan 0x2f  sebanyak 128 bit  merupakan  lokasi memori  yang dapat dimanipulasi perbit (bit addressable) juga  dikenal dengan segment bit (BDATA). Bagian berikutnya adalah  general purpose RAM mulai alamat 0×30 sampai dengan 0x7fh.
2.1.3 Interuksi
Terdapat beberapa kelompok fungsi pada instruksi keluarga MCS – 52, yaitu:
  1. 1. Instruksi Aritmatika
Kelompok intruksi ini melakukan operasi aritmatika seperti penjumlahan, pembagian, pengurangan.
Misalnya adalah: add, mul, subb, inc dan dec
Contohnya :     mov     a,#10h
Mov     b,#05h
Mul      ab
Mov a,#10h artinya salin data 10h ke a
Mov b,#05h artinya salin data 05h ke b
Mul  ab artinya kalikan nilai akumulator dengan nilai register b
  1. 2. Instruksi Logika
Intruksi ini melakukan operasi logika seperti and, or, dan exor, clear
Misalnya adalah :anl, orl, xrl, clr
Contohnya : clr            p3.5
Clr p3.5 artinya nolkan p3.5
  1. 3. Instruksi Transfer Data
Kelompok instruksi ini digunakan untuk memindahkan data antara :
  1. Register – register
  2. Memori – memori
  3. Register – memori
  4. Interface – register
  5. Interface – memori
Contoh:
MOV A, R1             : memindahkan isi register R1 ke accumulator
MOV A, @R2         : memindahkan isi memori yang alamatnya
ditunjukkan oleh register R2 ke accumulator.



Mikrokontroler AT89S52


 Fitur Mikrokontroler AT89S52
Mikrokontroler AT89S52 merupakan salah satu keluarga MCS-51 keluaran Atmel yang mempunyai 40 kaki, 32 kaki diantaranya digunakan sebagai port pararel. Satu port pararel terdiri dari 8 kaki dengan demikian 32 kaki membentuk 4 buah port pararel, yang masing-masing dikenal dengan port 0, port 1, port 2, port 3. Jenis mikrokontroler ini pada prinsipnya dapat digunakan untuk mengolah data per bit ataupun data 8 bit secara bersamaan.
Sebuah mikrokontroler dapat berkerja bila dalam mikrokontroler tersebut terdapat sebuah progam yang berisi instruksi-instruksi yang akan digunakan untuk menjalankan system mikrokontroler tersebut. Pada prinsipnya progam mikrokontroler dijalankan secara bertahap, jadi dalam progam itu sendiri terdapat beberapa set instruksi dan tiap instruksi itu dijalankan secara atau berurutan.
Beberapa spesifikasi yang dimiliki oleh mikrokontroler AT89S52 adalah sebagai berikut :
  1. Kompatibel dengan semua produk MCS-51
  2. 8K byte ISP flash memory
  3. 3 level progam memory lock
  4. 256 byte RAM internal
  5. Jalur 1/0 dua arah 32
  6. 3 buah timer/ counter 16-bit
  7. Programmable UART (serial port)
  8. Programmable watchdog timer
  9. Dual data pointer
  10. Frekuensi kerja 0 sampai 33 MHz
  11. Tegangan operasi 4,0 Volt sampai 5,5 Volt