AT89C51 yang merupakan versi EEPROM dari 8051yang program memorinya dapat diprogram dan dihapus secara elektrik. AT89C51 mempunyai lokasi alamat yang terpisah untuk program memori dan data memori
Pemisahan memori program dan data tersebut membolehkan memori data diakses dengan alamat 8 bit, sehingga dapat dengan cepat dan mudah disimpan dan dimanipulasi oleh CPU 8 bit. Namun demikian, alamat memori data 16-bit bisa juga dihasilkan melalui register DPTR.
Blok Diagram Inti Dari AT89C
Memori Program
Memori program hanya bisa dibaca saja karena bersifat sebagai ROM. Memori ini disimpan dalam Flash PEROM. Memori program yang bisa diakses langsung hingga 64 Kbyte. Pada gambar memori program terdapat strobe (tanda) untuk akses memori program eksternal melalui sinyal (Program Strobe Enable). Mikrokontroler AT89C51 mempunyai 4 Kbyte memori program internal. Bila memakai memori program eksternal, maka pin ` ’ diberi logika Low. Apabila ingin memakai emori program internal pin diberi logika High.
Memori Data
Memori data menempati ruang alamat terpisah. Memori eksternalnya dapat diakses secara langsung hingga 64 Kbyte. CPU akan memberikan sinyal baca dan tulis selama mengakses memori data eksternal.Perincian ruang memori data internal dibagi menjadi tiga blok yaitu, 128 lower, 128 upper, dan Register Fungsi Khusus (Special Function Register = SFR). Pengaksesan langsung dengan alamat diatas 7FH mengakses suatu memori, sedangkan pengaksesan tak langsung dengan alamat di atas 7FH mengakses ruang memori lain yang berbeda. Pada memori data internal 128 byte lower terdapat empat bank dan delapan register (Ro...R7).
Pengalamatan langsung dari 80H sampai FFH tergolong dalam SFR. Berikut fungsi yang terdapat dalam SFR. 1. Program Status Word (PSW) PSW berisi bit-bit status yang berkaitan dengan kondisi CPU saat itu. PSW terletak dalam ruang SFR pada lokasi D0H.
1. Akumulator
ACC atau akumulator menempati lokasi E0H dan digunakan sebagai register untuk penyimpanan data sementara dalam program.
2. Register B
Register B terletak pada lokasi F0H. Register ini digunakan selama operasi perkalian dan pembagian. Saat intstruksi MUL AB terjadi perkalian antara akumulator dengan data yang tersimpan dalam register B dan hasilnya 16 bit disimpan dalam register B dan akumulator (A). Instruksi DIV AB melakukan pembagian antara akumulator dengan data yang tersimpan dalam register B.
3. Stack Pointer (SP)
Register SP terletak pada lokasi 81H. SP merupakan register dengan panjang 8 bit dan digunakan dalam proses simpan dan ambil dari/ke stack.
4. Data Pointer
Register Data Pointer atau DPTR mengandung byte tinggi (DPH) dan byte rendah (DPL) masing masing berada di lokasi 83H dan 82H. DPTR dapat dimanipulasi sebagai dua register 8 bit yang terpisah.
5. Port 0, Port 1, Port 2, Port 3
P0, P1, P2, P3 masing-masing menempati lokasi 80H, 90H, A0H, dan B0H.
6. Register Kontrol (Control Register)
Pada register kontrol terdapat TMOD sebagai pewaktu.
7. Timer Register
Timer register merupakan register pencacah 16 bit. Timer 0 high dan timer 0 low terdapat pada masing-masing 8CH dan 8AH. Timer 1 high dan Timer 1 low terdapat dilokasi 8DH dan 8BH.
Tidak ada komentar:
Posting Komentar