Struktur port dan cara kerja port pada IC AT89C51/52






Pada dasarnya mikrokontroler atmel keluarga 51/52 mempunyai 2 kelompokintruksi untuk mengeluarkan data ke 7port pararel (tanda 'X' artinya sama seperti program sebelumnya) :

●  kelompok intruksi pertama bekerja pada port seutuhnya artinya 8 jalur dari port bersangkutan, misalnya MOV P3,#FFh membuat ke delapan jalur port 0 semuanya dalam kondisi logika '1' (atau isinya 1111 1111 dalam biner)

● kelompok intruksi ke dua hanyai berpengaruh pada salah satu jalur atau bit dari port, misalnya intrukai SETB P3.4 artinya men-set bit-4 dari port 3 (bit 4 dari port 3 = 1>xxx1 xxxx) atau intruksi CLR.P3 di gunakan untuk me-nolkan bit 3 dari port 3 (bit 3 dari port 3 =0> xxxx 0xxx)

Selain itu port pararel bisa pula di pakai untuk menerima sinyal digital dari luar microkontroler :

○ intruksi MOV A,P3 digunakan untuk membaca data (digital) pada seluruh bit (bit 0 hingga 7=8bit)port 1 kemudian menyimpanya dalam akumulator.

○ pembacaan data bisa juga dilakukan hanya pada satu bit port saja,misalnya intruksi JNB P3.7,$ digunakan untuk memantau bit P3.7,jika P3.7=0,mikrokontroler akan kembali melaksanakan intruksi tersebut (lompat ke label '$' artinya lompat ke lokasi tersebut lagi),mikrokontroler akan meneruskan kembali intruksi berikutnya jika P3.7=1 (catatan:intruksi yang berlawanan dengan JNB adalah JB).

Satu hal yang perlu di perhatikan,agar data dari luar dapat di baca dengan benar,sebelumnya, jalur port yang bersangkutan harus di inisialisasi terlebih dahulu dengan cara mengisi dengan logika '1'.
Port 0,port 2,dan port 3 bisa berpungsi ganda,selain dipakai sebagai port pararel bisa juga di gunakan untuk keperluan antara lain :

1. kegunaan lain dari port 0 adalah sebagai saluran data (bus data D0-D7)dan setengah saluran alamat bus (bus alamat A0-A7)yang di pakai dalam pengaksesan memori data atau program eksternal.

2. kapasitas memori eksternal bisa mencapai 64Kbyte sehingga memerlukan 16 jalur saluran alamat,jalur alamat A0-A7 dilewatkan melalui Port 0, sedangkan setengah saluran alamat yang lain (A8-A15) dilewatkan melalui Port 2.

3. selain untuk port pararel,Port3 juga di pakai untuk berbagai keperluan sarana I/O yang khusus seperti pewaktu (timer),pencacah (counter)dan interupsi akan di bahas lain kali masss brooo.

Keempat port pada keluarga 51/52 tersebut bersipat dwi arah dan masing masing memiliki sebuah pengancing (lacth),yang di acu dalam program sebagai register fungsi khusus (RFK atau SFR) sebagai P0,P1,P2 dan P3. Selain itu juga mempunyai penggerak pengeluaran (output driver) dan sebuah penyangga masukan (input buffer)pada masing masing kaki port.

Penggerak penggerak keluaran port 0 dan 2 serta penyangga masukan dari port 0 digunakan dalam mengakses memori eksternal. Pada aplikasi semacam ini , port 0 mengeluarkan byte rendah alamat memori eksternal,dimultipleks secara waktu dengan byte yang akan di tuliskan atau di baca (ke/dari memori eksternal). Port 2 mengeluarkan byte tinggi dari alamt memori eksternal jika lebar alamatnya 16-byte,selain itu kaki" port 2 tetap meneruskan menghasilkan isi SFR dari P2.

Semua kaki kaki port3 dan dua kaki port 1 (pada keluarga 51 yang tipe 52 memiliki 3 pewaktu)memiliki ragam pungsi. Kaki kaki port tersebut tidak hanya sekedar kaki kaki port, namun juga menyediakan beberapa fungsi husus yang terlihat pada gambar 2.

Fungsi fungsi alternatif tersebut,hanya dapat di aktifkan jika bit bit pengancing (latch)port yang bersangkutan berisi '1', selain itu kaki kaki port akan tetap terkirim '0'. Mengapa? Jika flip flop pengancing mendapatkan data '1',maka gerbang NAND selalu menginversi data dari fungsi keluaran alternatif,jika datanta '1', maka data keluaran NAND adalah '0', sehingga mematikan transistor FET,dengan demikian keluaran kaki port langsung tersambungke Vcc alias terkirim '1'(sesuai data yang di tuliskan ke port). Jika sekarang isi dari pengancing adalah '0',maka keluaran dari gerbang NAND akan selalu '1', sehingga selalu menghidupkan transistor FET, akibatnya keluaran dari kaki kaki port akan slalu terkirim '0'(tidak peduli data yang di tuliskan ke port).untuk pembacaan port secara alternatif tidak ada masalah,data masukan melalui kaki kaki port kemudian masuk melalui penyangga pertamadan di teruskan sebagai fungsi keluaran alternatif.

Comments