Mikrokonktroler ini termasuk dalam keluarga mikrokonktroler CISC. Sebagian besar instruksinya dieksekusi dalam 12 siklus clock. Mikrokontroler ini berdasarkan arsitektur Harvard dan meskipun awalnya dirancang untuk aplikasi mikrokontroler chip tunggal, sebuah mode perluasan telah mengizinkan sebuah ROM luar 64KB dan RAM luar 64KB diberikan alamat dengan cara jalur pemilihan chip yang terpisah untuk akses program dan memori data. Salah satu kemampuan dari mikrokontroler 8051 adalah pemasukan sebuah mesin pemroses boolean yang mengijikan operasi logika boolean tingkatan-bit dapat dilakukan secara langsung dan secara efisien dalam register internal dan RAM. Karena itulah MCS51 digunakan dalam rancangan awal PLC (programmable Logic Control). Mikrokontroler memiliki 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 penyimpan sementara, termasuk register -register yang digunakan pada mikrokontroler yang bersangkutan. Penggunaan utama dari mikrokontroler adalah untuk mengontrol operasi dari mesin. Strategi kendali untuk mesin tertentu dimodelkan dalam program algoritma pengaturan yang ditulis dalam bahasa rakitan (assembly language ). Program tersebut selanjutnya dtranslasi ke kode mesin digital yang selanjutnya disimpan di dalam media penyimpan digital yang disebut ROM (Lihat Gambar . Pendekatan disain dari mikrokontroler dan mikroprosesor adalah sama. Jadi mikroprosesor merupakan rumpun dari suatu mikrokontroler. Mikrokontroler terdiri dari fitur - fitur yang terdapat dalam suatu mikroprosesor yaitu ALU, SP, PC dan register - register temasuk fitur dari ROM, RAM, input/output paralel dan input/output pencacah (counter seri). Dalam penyajian mikrokontroler pembahasan akan ditekankan pada mikrokontroler AT89Cx051. Konstruksi dasar AT89Cx051 Mikrokontroler MCS51 adalah Mikrokontroler yang paling populer saat ini. Keluarga ini diawali oleh Intel yang mengenalkan IC Mikrokontroler type 8051 pada awal tahun 1980 - an, 8051 termasuk sederhana dan harganya murah sehingga banyak digemari,
banyak pabrik IC besar lain yang ikut memproduksnya, tentu saja masing-masing pabrik menambahkan kemampuan pada mikrokontroler buatannya meskipun semuanya masih dibuat berdasarkan 8051. Sampai kini sudah ada lebih 100 macam mikrokontroler turunan 8051, sehingga terbentuklah sebuah keluarga besar mikrokontroler dan biasa disebut sebagai MCS51.
Gambar 6.1 memperlihatkan susunan kaki AT89C2051, susunan kaki ini sama persis dengan AT89C1051 dan AT89C4051. Demikian pula ketiga IC mempunyai konstruksi di dalam chip yang sama persis, perbedaannya hanya terletak pada kapasitas Flash PEROM. IC AT89Cx051 hanya memerlukan tambahan 3 kapasitor, 1 resistor dan 1 Xtal serta catu daya 5 Volt. Kapasitor 10 mikro - Farad dan resistor 10 Kilo Ohm dipakai untuk membentuk rangkaian reset, dengan adanya rangkaian reset ini AT89Cx051 otomatis di - reset begitu rangkaian menerima catu daya. Xtal dengan frekuensi maksimum 24 MHz dan 2 kapasitor 30 pico - Farad dipakai untuk melengkapi rangkaian oscilator pembentuk clock yang menentukan kecepatan kerja mikrokontroler. Memori Pada AT89Cx051 Memori merupakan bagian yang sangat penting bagi mikrokontroler, diperlukan 2 macam memori yang sifatnya berbeda. Read Only Memory (ROM) yang isinya tidak berubah meskipun IC kehilangan catu daya, dipakai untuk menyimpan program, begitu di - reset mikrokontroler akan langsung bekerja dengan program dalam ROM tersebut. Sesuai dengan keperluannya, dalam susunan MCS51 memori penyimpan 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. Di samping untuk data, RAM dipakai pula untuk Stack. RAM yang dipakai untuk
menyimpan data ini disebut pula sebagai MEMORI DATA .Memori Data yang disediakan dalam chip AT89Cx051 sebesar 128 byte, meskipun hanya kecil saja tapi untuk banyak keperluan memori kapasitas itu sudah mencukupi. Sarana Input/Output yang disediakan cukup banyak dan bervariasi. AT89Cx051 mempunyai 17 jalur Input/Output paralel. Jalur Input/Output paralel ini dikenal sebagai Port 1 ( P1.0..P1.7 ) dan Port 3 ( P3.0..P3.5 dan P3.7 ). AT89C x051 dilengkapi UART ( Universal Asynchronous Receiver/Transmiter ) yang biasa dipakai untuk komunikasi data secara seri. Jalur untuk komunikasi data seri ( RXD dan TXD ) diletakan berhimpitan dengan P1.0 dan P1.1 di kaki nomor 2 dan 3, sehingga kalau sarana UART ini dipakai maka P1.0 dan P1.1 tidak lagi bisa dipakai untuk jalur input/output paralel. Timer 0 dan Timer 1masing-masing adalah untaian pencacah biner 16 bit (16 bit binary counter) di dalam chip yang dipakai sebagai sarana input/output yang bekerja menurut fungsi waktu. Clock penggerak untaian pencacah ini bisa berasal dari oscilator kristal atau clock yang diumpan dari luar lewat T0dan T1. T0danT1berhimpitan dengan P3.4 dan P3.5, sehingga P3.4 dan P3.5 tidak bisa dipakai untuk jalur input/output paralel kalau T0 dan T1 dipakai. AT89Cx051 mempunyai 5 sumber pembangkit interupsi, 2 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. 3 sumber interupsi yang lain berasal dan sarana komunikasi data seri dan dari sistem Timer 0 dan Timer 1. Port 1, 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). Dasar kerja program Program untuk mengendalikan kerja dari mikrokontroler disimpan di dalam memori program. Program pengendali tersebut merupakan kumpulan dari instruksi kerja mikrokontroler, 1 instruksi MCS51 merupakan kode yang panjangnya bisa satu sampai empat byte. Sepanjang mikrokontroler bekerja, instruksi tersebut byte demi byte diambil ke CPU dan selanjutnya dipakai untuk mengatur kerja mikrokontroler. Proses pengambilan instruksi dari memori program dikatakan sebagai fetch cycles dan saat - saat CPU melaksanakan instruksi disebuat sebagai execute cycles . Semua mikrokontroler maupun mikroprosesor dilengkapi sebuah register yang berfungsi khsus untuk mengatur fetch cycles, register tersebut dinamakan sebagai Program Counter. Nilai Program Counter secara otomatis bertambah satu setiap kali selesai mengambil 1 byte
isi memori program, dengan demikian isi memori program bisa berurutan diumpankan ke CPU. Saat MCS51 di reset, isi Program Counterdi reset menjadi 0000. Artinya sesaat setelah reset isi dari memori program nomor 0 dan seterusnya akan diambil ke CPU dan diperlakukan sebagai instruksi yang akan mengatur kerja mikrokontroler. Dengan demikian, awal dari program pengendali MCS51 harus ditempatkan di memori nomor 0, setelah reset MCS51 menjalankan program mulai dari memori - program nomor 0000, dengan melakukan proses fetch cycles dan execute cycles terus menerus tanpa henti. Jika sarana interupsi diaktipkan, dan tegangan di kaki INT0 (kaki nomor 6) merubah dari 1 sebentar, menjadi 0 , maka proses menjalankan program di atas akan dihentikan mikrokontroler melayani dulu permintaan interupsi, selesai melayani
permintaan interupsi CPU akan melanjutkan mengerjakan program utama lagi. Untuk melaksanakan hal tersebut, pertama - tama CPU menyimpan nilai Program Counter ke Stack ( Stack merupakan satu bagian kecil dari data memori RAM), kemudian mengganti isi Program Counter dengan 0003. Artinya MCS51 akan melaksanakan program yang ditempatkan di memori program mulai byte ke 3 untuk melayani interupsi yang diterima dari kaki INT0 . Adalah tugas programer untuk mengatur agar program yang dipakai untuk melayani interupsi lewat INT0 diletakkan disitu. Selesai melayani interupsi, nilai Program Counter yang tadi disimpan ke dalam Stack akan dikembalikan ke Program Counter, dengan demikian CPU bisa melanjutkan pekerjaan di program Utama. Selain INT0, AT89Cx051 bisa menerima interupsi dari INT1, dari UART dan dari Timer. Agar permintaan interupsi itu bisa dilayani dengan program yang berlainan, maka masing - masing sumber interupsi itu mempunyai nomor awal program untuk layanan interupsi yang berlainan. RAM dan Register dalam AT89Cx051 Bagi mereka yang sudah terbiasa memakai komputer, kapasitas Random Access Memory (RAM) yang dimiliki AT89Cx051 mengerikan karena sangat sedikit, hanya 256 byte! Itupun tidak semuanya bisa dipakai sebagai memori penyimpan biasa, lebih dari setengahnya merupakan memori dengan keperluan khusus yang biasa dikenal sebagai register. Meskipun demikian bagi mikrokontroler kapasitas itu sudah mencukupi. Dalam pengertian MCS51, Random Access Memory dalam chip AT89Cx051 adalah memori-data, yaitu memori yang dipakai untuk menyimpan data, sedangkan Flash PEROM merupakan memori penampung program pengendali AT89Cx051, dikenal
sebagai memori - program. Karena kedua memori itu memang dibedakan dengan tegas, maka kedua memori itu mempunyai penomoran yang terpisah. Memori program dinomori sendiri, pada AT89C2051 mulai dari nomor $0000 sampai $07FF. Sedangkan memori data yang hanya 256 byte dinomori dari nomor $00 sampai $FF. Konfigurasi Kaki-Kaki Mikrokontroler AT89CX051 Mikrokontroler AT89CX051 mempunyai konfigurasi kaki-kaki yang dapat dilihat pada gambar 1. Agar dapat melakukan pemrograman terhadap piranti tersebut diperlukan pengetahuan yang jelas tentang fungsi dan perlakuan terhadap kaki-kaki IC tersebut. Beberapa paragraf berikut akan menjelaskan fungsi beberapa kaki IC yang berkaitan dengan pemrograman IC. Port 1. Port 1 adalah port I/O dwi-arah. P1.2 sampai dengan P1.7 memiliki resistor pullup internal, sedangkan P1.0 dan P1.1 membutuhkan resistor pull-up eksternal. P1.0 dan P1.1 juga berfungsi sebagai masukan komparator analog presisi, dengan P1.0 sebagai masukan positif dan P1.1 sebagai masukan negatif. Pada saat pemrograman dan verifikasi, port 1 berfungsi sebagai jalur untuk menulis dan membaca isi EEPROM dalam mikrokontroler.
2 3 6 7 8 9 11 5 4 1 20 U1 P3.0/RXD P3.1/TXD P3.2/INTO P3.3/INT1 P3.4/T0 P3.5/T1 P3.7 XTAL1 XTAL2 RST/VPP VCC AT89C2051 P1.0/AIN0 P1.1/AIN1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 12 13 14 15 16 17 18 19
XTAL 2 XTAL 1
P1.0
(a)
(b) Gambar 1. Konfigurasi kaki-kaki ATCX051. (a) simbolik (b) tampak atas
Port 3. Kaki-kaki pada port 3 adalah dwi-arah dengan resistor pull-up internal kecuali kaki P3.6. Kaki P3.6 secara internal terhubung dengan keluaran komparator, sehingga tidak dapat diakses dari luar. Selain berfungsi sebagai jalur-jalur I/O dwi-arah, P3.0
sampai dengan P3.5 memiliki fungsi khusus, seperti tertulis pada tabel 1. Port 3 akan menerima beberapa sinyal kendali pada saat pemrograman dan verifikasi data. Tabel 1. Tabel fungsi khusus P3.0 P3.5.
INT 1
T0 (timer 0) T1 (timer 1)
RST. Pemberian logika tinggi pada kaki reset dalam jangka waktu kurang dari 2 siklus mesin (1 siklus mesin = 12 siklus clock) mengakibatkan semua I/O dalam kondisi 1. Pada saat pemrograman, kaki RST diberi tegangan DC 12 volt. PORT PARALEL PRINTER Kegunaan port paralel secara umum yang sering kita jumpai adalah untuk mengendalikan printer. Untuk itulah port paralel ini lebih dikenal dengan nama Line Printer (LPT). Tetapi kalau kita melihat istilah port secara umum, maka sebenarnya port paralel ini merupakan pintu keluar/masuknya data ke/dari piranti eksternal. Penggunaan port paralel untuk keperluan akses data selain printer dapat dilakukan bila kita memiliki pengetahuan tentang jalur-jalur yang ada pada port paralel. Setiap port paralel dari sebuah komputer selalu terdiri dari 3 alamat port, yaitu port data, port status dan port kendali. Ketiga alamat port paralel tersebut menempati alamat yang berurutan. Jika port data berada pada alamat 378h, maka port status menempati alamat 379h dan port kendali pada alamat 37Ah. Adapun fungsi masing-masing kaki
pada port paralel dapat dilihat pada tabel 2. Dan untuk mengetahui konfigurasi kakikaki konektor DB-25 dapat dilihat pada gambar 2. Tabel 2. Tabel deskripsi kaki-kaki port paralel. Nomor kaki 2 3 4 5 6 7 8 9 15 13 12 10 11 1 14 16 D0 D1 D2 D3 D4 D5 D6 D7 S3* Bit data 0 Bit data 1 Bit data 2 Bit data 3 Bit data 4 Bit data 5 Bit data 6 Bit data 7 nError (nFault) S4 S5 S6* S7 C0* C1* C2 Select PaperEnd nAck Busy nStrobe nAutoLF nInit Nama kaki Deskripsi
17 18-25
C3* GND
nSelectIn Ground
Tanda * pada tabel di atas menunjukkan bahwa kaki-kaki tersebut mempunyai logika yang terbalik. Artinya, jika data yang masuk ke port paralel melalui kaki tersebut berlogika 1, maka akan terbaca 0 oleh program, demikian juga sebaliknya. Dan, jika data yang dikeluarkan melalui salah satu dari kaki-kaki tersebut berlogika 1, maka data tersebut terbaca 0 oleh port paralel, demikian juga sebaliknya.
10
11
12 24 25
14
15
16
17
18
19
20
21
22
23
13
DAFTAR PUSTAKA
http://www.uajy.ac.id/jurnal/jti/2000/4/3/doc/2000_4_3_5.doc http://blog.ub.ac.id/faizalabdi/files/2012/07/BabVI_Mikrokontroler.pdf