Anda di halaman 1dari 37

AT89S51

Atmel AT89SXX

4 Kbyte ROM (Factory Mask Programmed) 128 Byte RAM Four 8-bit I/O(Input/Output) Ports Two 16 bit timers Serial Interface 64Kbyte External Code Memory Space 64Kbyte External data memory space Boolean Processor (operate on single bits) 210 bit addressable location 4 s multiply/divide

Atmel AT89SXX

Blok Diagram Konfigurasi Pin Organisasi Memory Set Instruksi Metode Pengalamatan

Original 8051 Microcontroller


Oscillator and timing 4096 Bytes Program Memory 128 Bytes Data Memory Two 16 Bit Timer/Event Counters

8051 CPU

Internal data bus

64 K Byte Bus Expansion Control


subsystem interrupts
External interrupts Control

Programmable I/O

Programmable Serial Port Full Duplex UART Synchronous Shifter


Serial Output Serial Input
ECE/CS-352: Embedded Microcontroller Systems

Parallel ports Address Data Bus I/O pins

Blok Diagram

Atmel AT89SXX

Konfigurasi Pin.

Atmel AT89S51
Pin 18 (P1.0 P1.7) Port 1 merupakan port I/O dua arah 8 bit dengan resistor pull-up internal. Port 1 Juga digunakan sebagai jalur saat melakukan pemograman flash dan verifikasi program (proses pengunduhan program ke mikrokontroller) melalui pin P1.5 (MOSI), P1.6 (MISO) dan P1.7(SCK) In system programming/ ISP. Pin 9 : Reset (CPU mulai eksekusi dari lokasi 0000H)

Atmel AT89S51

Pin 10.17 (P3.0 P3.7) Port 3, merupakan port I/O dua arah 8 bit dengan resistor tarik internal. Port 3 menerima beberapa sinyal kendali untuk pemograman flash dan verifikasi program. Fungsi alternatif : P3.0 : RXD (port masukan data serial) P3.1 : TXD (port keluaran data serial)

Atmel AT89S51
Fungsi alternatif : P3.2 : INT0 (Interupsi 0 Eksternal) P3.3 : INT1 (Interupsi 1 Eksternal) P3.4 : T0 (Masukan waktu eksternal 0) P3.5 : T1 (Masukan waktu eksternal 1) P3.6 : WR (Write/ Jalur penulisan memory data eksternal. P3.7: RD (Read/ Jalur pembacaan memory data eksternal)

Atmel AT89S51

Pin 18 : Xtal1 Masukan untuk penguat osilator pembalik dan masukan untuk clock internal rangkaian operasi. Pin 19 : Xtal2 Keluaran dari penguat osilator pembalik. Pin 20 : GND (Ground).

Atmel AT89S51

Pin 2128 (P2.0 P2.7) Port 2 merupakan port I/O dua arah 8 bit dengan resistor tarik internal. Pin 29 : PSEN (Program Store Enable) Jalur untuk pembacaan memory program eksternal. Pin 30 : ALE/PROG

Atmel AT89S51

Pin 31 : EA/VPP - EA/VPP harus dihubungkandgn GND, jika digunakan untuk mengakses memory program eksternal dengan lokasi alamat 000h-fffh. - EA/VPP dihubungkan dengan Vcc, jika digunakan untuk mengeksekusi program internal dan sebagai teganan (VPP) pada pemograman flash (+12 Volt).

Atmel AT89S51

Pin 32..39 (P0.0 P0.7) Port 0, merupakan port I/O dua arah 8 bit dengan resistor pull-up internal. Pin 40 : Vcc Dihubungkan dengan catu daya +5 Volt

Atmel AT89S51
Organisasi Memory MCS-51
Harvard Address Bus Fetch Bus CPU Address Bus Data Bus Data
Memory

Program

Atmel AT89S51
Pemisahan memory program dan data mengizinkan memory data untuk diakses, dengan pengalamatan 8 bit yang cepat dan dapatdisimpan serta dimanipulasi dengan CPU 8 bit. Pengalamatan memory data 16 bit juga dapat dibangkitkan melalui register DPTR. Memory program (ROM, EPROM, dan FLASH) hanya dapat dibaca.

Atmel AT89S51
Memori program dapat mencapai sampai 64K byte. Pada 89S51, 4K byte memori program terdapat didalam chip. Untuk membaca memori program eksternal mikrokontroller mengirim sinyal PSEN (

program store enable )

Atmel AT89S51
Memori data ( RAM ) menempati ruang alamat yang terpisah dari memori program. Pada keluarga 8051, 128 byte terendah dari memori data berada didalam chip. RAM eksternal (maksimal 64K byte). Dalam pengaksesan RAM Eksternal, mikrokontroller mingirimkan sinyal RD ( baca ) dan WR ( tulis ).

Atmel AT89S51

Atmel AT89S51
Memory Program

Ex: Peta Interupsi

Atmel AT89S51
Gambar diatatas peta bagian bawah dari memori program. Setelah reset CPU mulai melakukan eksekusi dari lokasi 0000H. Interupsi menyebabkan CPU untuk melompat ke lokasi dimana harus dilakukan suatu layanan tertentu.

Atmel AT89S51
Interupsi Eksternal 0, sebagi contoh, menempatai lokasi 0003H. Jika Interupsi Eksternal 0 akan digunakan, maka layanan rutin harus dimulai pada lokasi 0003H. Jika interupsi ini tidak digunakan, lokasi layanan ini dapat digunakan untuk berbagai keperluan sebagai Memori Program.

Atmel AT89S51
Memory Data

Registers
1F

Bank 3
18 17

Four Register Banks Each bank has R0-R7

Bank 2
10 0F

Register Bank selected by : PSW (Program Status Word) RS0 & RS1

Bank 1
08 07 06 05 04 03 02 01 00 R7 R6 R5 R4 R3 R2 R1 R0

Bank 0

Bit Addressable Memory


2F 7F 2E 2D 78

20h 2Fh (16 locations X 8-bits = 128 bits)

2C
2B 2A 29 28 27 26 25 24 23 22 21 20 0F 07 06 05 04 03 02 01 1A 10 08 00

Bit addressing: - mov C, 1Ah or

- mov C, 23h.2

Special Function Registers

DATA registers
CONTROL registers Timers Serial ports Interrupt system Analog to Digital converter Digital to Analog converter Etc. Addresses 80h FFh Direct Addressing used to access SFRs

Special Function Registers

Special Function Registers

Register Accumulator (A) ACC atau Akumulator yang menempati lokasi 0E0H digunakan sebagai register un menyimpan data sementara, dalam program instruksi mengacunya sebagai register A (bukan ACC)

Special Function Registers

Register B Register B (lokasi F0H) digunakan selama operasi perkalian dan pembagian, untuk instruksi lain dapat digunakan sebagai register scratch pad (papan corat-coret), maupun sebagai tempat penyimpanan data sementara.

Special Function Registers

Program Status Word (PSW) Register PSW (lokasi D0H) berisikan informasi status program, ditandai dengan 8 bit flag yang tergabung didalamnya, sebagai flag register atau register penanda dari status program yang dieksekusi..
CY AC F0 RS1 RS0 OV P

Special Function Registers

Stack Pointer (SP) Register SP atau Stack pointer merupakan register dengan panjang 8 bit, digunakan dalam proses simpan dan ambil dari / ke stack. Nilainya akan dinaikkan sebelum data disimpan dan ambil dari / ke stack. Adapun penggunaannya dengan instruksi PUSH dan CALL.

Special Function Registers


Walau stack bisa menempati lokasi di mana saja dalam RAM, register SP akan selalu diinisialisasi ke 07H setelah adanya Reset, hal ini menyebabkan stack berawal di lokasi 08H.

Special Function Registers

Data Pointer (DPTR) Register Data Pointer berupa DPTR untuk Byte tinggi (DPH) dan byte rendah (DPL)yang masing-masing berada di lokasi 83H dan 82H bersama-sama membentuk register yang mampu menyimpan alamat 16 bit, sehingga dapat di manipulasi sebagai register 16-bit ataupun sebagai dua register 8-bit yang terpisah.

Special Function Registers

Register DPTR

Special Function Registers

P0 P3 P0, P1, P2, P3 masing-masing menempati alamat awal 80H, 90H, A0H dan B0H merupakan pengunci-pengunci (latches), yang digunakan untuk menyimpan data yang akan dibaca atau ditulis dari / ke port, untuk masingmasing port 0, port 1, port 2 dan port 3.

Special Function Registers

SBUF (Serial Data Buffer)

SBUF atau serial data buffer (lokasi 99H) terdiri dari 2 buah register yang terpisah, yaitu register penyangga pengirim (transmit buffer) dan penyangga penerima (receive buffer). Pada saat data disalin ke SBUF. Maka dua data sesungguhnya dikirim ke penyangga pengirim dan sekaligus mengawali transmisi data serial. Sedangkan pada saat data disalin dari SBUF, maka sebenarnya data tersebut berasal dari penyangga penerima.

Special Function Registers

Timer Register Memiliki pasangan register yakni (TH0,TL0) di lokasi 8CH dan 8AH, (TH1, TL1) di lokasi 8DH dan 8BH. Yang merupakan register pencacah 16 bit untuk mode timer 0 dan timer 1.

Special Function Registers

Control Register Register kontrol meliputi IP (Interrupt Priority, IE (Interrupt Enable), TMOD (Timer Mode), TCON (Timer Control), SCON (Serial Control) dan PCON (Power Control) berisi bit-bit kontrol dan status untuk sistem interupsi, pencacah / pewaktu dan port serial.

On-Chip Memory: Program/Data

Prof. Cherrice Traver

ECE/CS-352: Embedded Microcontroller Systems