at89s52 - · pdf filesimbol fungsi tf2 flag overflow ... transisi negatif di pin t2ex...

16
Lab Elektronika Industri Mikrokontroler 1 AT89S52 8kByte In-System Programmable Mikrokontroler I. Fitur AT89S52 Kompatibel dengan produk MCS51 Intel 8kByte Flah Memori dengan In-System Programmable (ISP) dengan ketahanan diprogram ulang hingga 1000 kali. Tegangan kerja 4.0V - 5.5V Frekuensi clock (oscilator) antara 0 - 33MHz Tiga tingkat penguncian memori program 256 x 8 bit RAM internal 32 jalur I/O yang programmable Tiga buah Timer/Counter 16 bit Delapan sumber interupsi Komunikasi serial UART yang full duplex. Mode kerja Idle dan Power Down Kembali dari mode Power Down dengan interupsi Timer penjaga (Watchdog Timer). Dua buah data pointer Tanda (Flag) untuk power off. II. KETERANGAN AT89S52 adalah mikrokontroler 8 bit CMOS yang memerlukan daya listrik rendah, performansi tinggi dengan dilengkapi 8kByte Flash memori yang In-System Programmable. Dengan ini, AT89S52 dapat diprogram ketika telah berada di dalam rangkaian. AT89S52 dibuat dengan teknologi tinggi dengan tingkat kepadatan memori yang tinggi sesuai dengan standard industri yang cocok dengan instruksi keluarga MCS51 Intel dan serba cocok pin-pin IC-nya. Flash memori dalam chip bisa diprogram dengan in-system programming atau dengan pemrogram konvensional. Dengan sistem ini, AT89S52 adalah perangkat yang sangat tepat untuk berbagai aplikasi kontrol. Keterangan Pin IC a. VCC Tegangan supply 5V b. GND Ground atau 0V c. Port 0 Port 0 adalah port I/O 8 bit dua arah dengan drain terbuka. Ketika sebagai output, setiap pin port 0 dapat menarik arus sebesar 3,2mA atau mengeluarkan arus 800µA yang berarti mampu dihubungkan ke 8 input chip TTL. Jika bit 1 diberikan ke port 0, setiap pin dapat digunakan sebagai input berimpedansi tinggi. Port 0 juga berfungsi sebagai saluran data dan alamat byte rendah saat mengakses memori data atau program eksternal. Pada mode ini, port 0 mempunyai resistor pull-up. Iwan B Pratama 5/14/2006

Upload: ngomien

Post on 10-Feb-2018

218 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: AT89S52 - · PDF fileSimbol Fungsi TF2 Flag overflow ... transisi negatif di pin T2EX menyebabkan reload atau capture di Timer 2. Jika EXEN2 = 0, Timer 2 mengabaikan kejadian di pin

Lab Elektronika Industri Mikrokontroler 1

AT89S52 8kByte In-System Programmable Mikrokontroler

I. Fitur AT89S52

• Kompatibel dengan produk MCS51 Intel • 8kByte Flah Memori dengan In-System Programmable (ISP) dengan ketahanan

diprogram ulang hingga 1000 kali. • Tegangan kerja 4.0V - 5.5V • Frekuensi clock (oscilator) antara 0 - 33MHz • Tiga tingkat penguncian memori program • 256 x 8 bit RAM internal • 32 jalur I/O yang programmable • Tiga buah Timer/Counter 16 bit • Delapan sumber interupsi • Komunikasi serial UART yang full duplex. • Mode kerja Idle dan Power Down • Kembali dari mode Power Down dengan interupsi • Timer penjaga (Watchdog Timer). • Dua buah data pointer • Tanda (Flag) untuk power off.

II. KETERANGAN AT89S52 adalah mikrokontroler 8 bit CMOS yang memerlukan daya listrik rendah, performansi tinggi dengan dilengkapi 8kByte Flash memori yang In-System Programmable. Dengan ini, AT89S52 dapat diprogram ketika telah berada di dalam rangkaian. AT89S52 dibuat dengan teknologi tinggi dengan tingkat kepadatan memori yang tinggi sesuai dengan standard industri yang cocok dengan instruksi keluarga MCS51 Intel dan serba cocok pin-pin IC-nya. Flash memori dalam chip bisa diprogram dengan in-system programming atau dengan pemrogram konvensional. Dengan sistem ini, AT89S52 adalah perangkat yang sangat tepat untuk berbagai aplikasi kontrol.

Keterangan Pin IC a. VCC

Tegangan supply 5V b. GND

Ground atau 0V c. Port 0

Port 0 adalah port I/O 8 bit dua arah dengan drain terbuka. Ketika sebagai output, setiap pin port 0 dapat menarik arus sebesar 3,2mA atau mengeluarkan arus 800µA yang berarti mampu dihubungkan ke 8 input chip TTL. Jika bit 1 diberikan ke port 0, setiap pin dapat digunakan sebagai input berimpedansi tinggi. Port 0 juga berfungsi sebagai saluran data dan alamat byte rendah saat mengakses memori data atau program eksternal. Pada mode ini, port 0 mempunyai resistor pull-up.

Iwan B Pratama 5/14/2006

Page 2: AT89S52 - · PDF fileSimbol Fungsi TF2 Flag overflow ... transisi negatif di pin T2EX menyebabkan reload atau capture di Timer 2. Jika EXEN2 = 0, Timer 2 mengabaikan kejadian di pin

Lab Elektronika Industri Mikrokontroler 2

Port 0 juga berfungsi menerima byte kode data pada saat pengisian program ke memori flash dan sekaligus mengeluarkan byte kode data saat proses verifikasi. Resistor pull-up eksternal diperlukan saat proses verifikasi.

d. Port 1

Port 1 adalah port I/O dua arah dengan resistor pull-up internal. Tiap pin port 1 dapat menarik/mengeluarkan arus hingga dapat dihubungkan ke 4 input chip TTL. Atau tiap pin port 1 dapat menarik arus 1,6mA atau mengeluarkan arus 50µA. Jika 1 dituliskan ke port 1, setiap pin port 1 akan ditarik ke VCC oleh resistor pull-up internal sehingga dapat digunakan sebagai input. P1.0 dan P1.1 dapat digunakan untuk input eksternal bagi Timer 2. Port 1 juga dipakai sebagai input byte rendah untuk alamat (address) saat pengisian program ke memori flash atau saat proses verifikasi.

Port 1 Fungsi Alternatif P1.0 T2 (input clock eksternal Timer 2), output clock terprogram pada Timer 2

P1.1 T2EX (input trigger untuk perintah capture/reload Timer 2), kontrol arah

P1.5 MOSI (Master data Out Slave data In) pada mode In-System Programming

P1.6 MISO (Master data In Slave data Out) pada mode In-System Programming

P1.7 SCK (Serial Clock) pada mode In-System Programming

e. Port 2 Port 2 adalah port I/O 8 bit dua arah dengan resistor pull-up internal. Tiap pin port 2 dapat menarik/mengeluarkan arus hingga dapat dihubungkan ke 4 input chip TTL. Atau tiap pin port 2 dapat menarik arus 1,6mA atau mengeluarkan arus 50µA. Jika 1 dituliskan ke port 2, setiap pin port 2 akan ditarik ke VCC oleh resistor pull-up internal sehingga dapat digunakan sebagai input. Port 2 juga berfungsi untuk mengeluarkan alamat (address) byte tinggi ketika membaca program memori eksternal atau ketika mengakses memori data eksternal untuk instruksi dengan address 16 bit (MOVX @DPTR). Pada kondisi ini, port 2 menggunakan resistor pull-up internal yang kuat ketika mengeluarkan logika 1. Ketika mengakses memori data eksternal dengan 8 bit alamat yaitu instruksi MOVX @Ri, port 2 mengeluarkan isi register fungsi khusus P2. Port 2 juga sebagai input (menerima) alamat byte tinggi dan beberapa sinyal kontrol saat mode pengisian memori flash dan proses verifikasi.

f. Port 3

Port 3 adalah port I/O 8 bit dua arah dengan resistor pull-up internal. Tiap pin port 3 dapat menarik/mengeluarkan arus hingga dapat dihubungkan ke 4 input chip TTL. Atau tiap pin port 3 dapat menarik arus 1,6mA atau mengeluarkan arus 50µA. Jika 1 dituliskan ke port 3, setiap pin port 3 akan ditarik ke VCC oleh resistor pull-up internal sehingga dapat digunakan sebagai input. Port 3 juga sebagai port dengan fungsi alternatif seperti pada tabel di bawah. Port 3 juga menerima beberapa sinyal kontrol selama proses pengisian memori flash dan verifikasi.

Port 3 Fungsi Alternatif P3.0 RXD (Penerima data serial pada mode Serial Port)

P3.1 TXD (Pengirim data serial pada mode Serial Port)

P3.2 INT0 (Input interupsi eksternal 0)

P3.3 INT1 (Input interupsi eksternal 1)

P3.4 T0 (Input sumber clock eksternal untuk Timer 0)

P3.5 T1 (Input sumber clock eksternal untuk Timer 1)

P3.6 WR (Sinyal tulis (write strobe) saat mengakses memori data eksternal)

P3.7 RD (Sinyal baca (read strobe) saat mengakses memori data eksternal)

Iwan B Pratama 5/14/2006

Page 3: AT89S52 - · PDF fileSimbol Fungsi TF2 Flag overflow ... transisi negatif di pin T2EX menyebabkan reload atau capture di Timer 2. Jika EXEN2 = 0, Timer 2 mengabaikan kejadian di pin

Lab Elektronika Industri Mikrokontroler 3

g. RST Input reset. Logika 1 pada pin RST selama 2 siklus mesin saat oscilator aktif akan mereset sistem. Pin ini akan memberikan logika 1 selama 96 periode clock oscilator ketika watchdog telah habis. Bit DISRTO pada register AUXR alamat 08EH dipakai untuk mengatur ini. Set ke 1 akan mengaktifkan fungsi sedang reset ke 0 akan mematikan fungsi ini.

h. PROGALE/

ALE (Address Latch Enable, memampukan pengunci alamat) adalah satu pulsa output untuk penguncian (penahan) alamat byte rendah selama pengaksesan memori eksternal. Pin ini adalah pulsa output yang diperlukan untuk dekoder alamat jika digunakan memori eksternal. Pada saat pengisian memori flash, pin ini adalah input untuk mulai memprogram atau PROG . Pada keadaan biasa, pin ini mengeluarkan rentetan pulsa dengan frekuensi 1/6 frekuensi oscilator yang bisa digunakan untuk sumber clock eksternal bagi timer/counter. Namun akan terjadi kehilangan 1 pulsa setiap kali ada perintah untuk mengakses memori eksternal. Jika dihendaki, operasi ALE bisa dihilangkan dengan mengeset bit 0 di register fungsi khusus AUXR alamat 08EH. Dengan mengeset bit ini, ALE hanya akan aktif saat ada instruksi MOVX atau MOVC. Jika tak ada instruksi itu, pin ini akan di-pull-up (tetapi lemah) ke logika 1. Meng-clear ke 0 bit ALE di register AUXR tidak akan berpengaruh pada saat mengakses memori eksternal.

i. PSEN

Program Store Enable (PSEN) adalah pulsa baca (read storbe) bagi memori program eksternal (External ROM).

j. /VPPEA

External Access Enable (EA) yaitu memampukan akses memori eksternal. Pin ini harus dihubungkan ke VCC jika akan mengakses memori program internal (flash ROM) dan dihubungkan ke GND jika akan mengakses memori program eksternal (ROM eksternal). Pin ini harus dihubungkan ke VPP = 12V pada saat pengisian flash ROM.

k. XTAL1 dan XTAL2

XTAL1 adalah hubungan ke kristal quartz atau juga input sumber clock dari luar. XTAL2 adalah hubungan ke kristal quatrz dan dibiarkan terbuka jika memakai sumber clock eksternal.

III. REGISTER FUNGSI KHUSUS Peta register fungsi khusus dan nilai saat reset diperlihatikan pada gambar di bawah. Perlu diperhatikan bahwa tidak semua alamat terpakai oleh register fungsi khusu. Pada alamat yang belum terpakai sebaiknya tidak dicoba untuk diakses. Hampir semua register fungsi khusus akan bernilai 00H saat reset kecuali register untuk port (Port 0, Port 1, Port 2, Port 3) bernilai 0FFH dan SP (Stack Pointer) = 07H. Jenis register fungsi khusus sebagian besar sama seperti pada seri standard AT89C51 seperti: P0, P1, P2, P3, ACC, B, SP, PCON, TMOD, TCON, TH1, TL1, TH0, TL0, PSW, IE, IP, SBUF. Dan pada seri AT89S52 ini ada beberapa rigister tambahan yaitu: Timer 2 (T2MOD, T2CON, TH2, TL2, RCAP2H, RCAP2L), dua register data pointer (DP0L, DP0H, DP1L, DP1H), register tambahan (AUXR, AUXR1), watchdog timer (WDTRST). a. Register Timer 2 Timer 2 atau counter 2 dibangun dari register TH2 dan TL2 dan bekerja seperti timer 2 pada seri AT89C52/55. Untuk mengatur timer 2 digunakan dua register T2CON dan T2MOD. Timer 2 adalah pencacah biner 16 bit yang bisa dioperasikan dalam 3 mode: pencacah 16 bit isi ulang, pencacah 16 bit capture dan pengatur baudrate pada port serial. Sepasang register RCAP2L dan RCAP2H dipakai untuk keperluan isi ulang, capture dan pengatur baudrate.

Iwan B Pratama 5/14/2006

Page 4: AT89S52 - · PDF fileSimbol Fungsi TF2 Flag overflow ... transisi negatif di pin T2EX menyebabkan reload atau capture di Timer 2. Jika EXEN2 = 0, Timer 2 mengabaikan kejadian di pin

Lab Elektronika Industri Mikrokontroler 4

Tabel: Peta Register Fungsi Khusus AT89S52 dan nilai saat Reset.

T2CON :Timer 2 Control Register Alamat : 0C8H Reset : 00H

bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0 TF2 EXF2 RCLK TCLK EXEN2 TR2 T2C/ RL2CP/

Simbol Fungsi

TF2 Flag overflow Timer 2 yang diset hardware ketika Timer 2 terjadi overflow dan harus direset dengan software. TF2 tidak akan diset 1 jika RCLK + TCLK = 1.

EXF2 Flag sumber eksternal Timer 2 yang akan diset jika terjadi capture atau reload yang sisebabkan oleh adanya satu transisi negatif di pin T2EX jika EXEN2 = 1. Jika interupsi Timer 2 dibolehkan, adanya EXF2 = 1 akan menyebabkan CPU lompat ke vektor interupsi layanan interupsi Timer 2. EXF2 harus di-clear ke 0 dengan software. Saat Timer 2 pada mode pencacah naik/turun (DCEN = 1), bit EXF2 = 1 tidak akan menyebabkan interupsi.

RCLK Clock penerimaan data serial port. Jika RCLK = 1 akan menyebabkan serial port menggu-nakan overflow Timer 2 untuk penerimaan data pada serial port mode 1 & 3. Jika RCLK = 0 penerimaan data serial menggunakan overflow Timer 1.

TCLK Clock pengiriman data serial port. Jika TCLK = 1 akan menyebabkan serial port menggu-nakan overflow Timer 2 untuk pengiriman data pada serial port mode 1 & 3. Jika TCLK = 0 pengiriman data serial menggunakan overflow Timer 1.

EXEN2 Pengaturan sumber eksternal untuk Timer 2. Jika EXEN2 = 1 dan Timer 2 tidak untuk pengatur baudrate, transisi negatif di pin T2EX menyebabkan reload atau capture di Timer 2. Jika EXEN2 = 0, Timer 2 mengabaikan kejadian di pin T2EX.

TR2 Start/stop untuk Timer 2. TR2 = 1 akan men-start pencacahan di Timer 2

T2C/ Mengatur sumber clock Timer 2. T2C/ = 0, sumber clock dari 1/12 frekuensi oscilator internal. Jika T2C/ = 1, clock dari eksternal di pin T2 pada transisi negatif.

RL2CP/ Capture/Reload. RL2CP/ = 1 terjadi capture (isi pencacah disalin) pada transisi negatif di pin T2EX jika EXEN2 = 1. RL2CP/ = 0, terjadi reload (isi pencacah diisi ulang) jika ada overflow Timer 2 atau transisi negatif pin T2EX jika EXEN2 = 1. Jika RCLK + TCLK = 1 bit

RL2CP/ diabaikan dan Timer 2 dipaksa untuk reload saat ada overflow pada Timer 2.

Iwan B Pratama 5/14/2006

Page 5: AT89S52 - · PDF fileSimbol Fungsi TF2 Flag overflow ... transisi negatif di pin T2EX menyebabkan reload atau capture di Timer 2. Jika EXEN2 = 0, Timer 2 mengabaikan kejadian di pin

Lab Elektronika Industri Mikrokontroler 5

AUXR :Axiliary Register Alamat : 8EH Reset : 00H bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0

- - - WDIDLE DISRTO - - DISALE

Simbol Fungsi DISALE Disable/Enable ALE. DISALE = 0, pin ALE mengeluarkan clock 1/6 frekuensi oscilator. Jika

DISALE = 1, pulsa ALE terjadi jika ada instruksi MOVX dan MOVC. DISRTO Disable/Enable Reset Out. DISRTO = 0, pin RST diset 1 jika watchdog timer telah berakhir.

Jika DISRTO = 0, pin RST bekerja normal yaitu untuk input saja. WDIDLE Disable/Enable WDT dalam mode Idle. WDIDLE = 0, WDT timer tetap terus dalam mode

Idle. Jika WDIDLE = 1, WDT timer berhenti mencacah pada mode Idle. b. Register Data Pointer (DPTR) Untuk memfasilitasi pengaksesan memori data dan memori program eksternal, ditambahkan 2 data pointer: DP0 (alamat 82H & 83H) dan DP1 (alamat 84H & 85H). Jika DPS = 0, data pointer memakai DP0 dan jika DPS = 1, memakai DP1. Pemrogram harus selalu mengatur bit DPS ini sebelum mengakses sederetan data dengan data pointer. AUXR1:Axiliary 1 Register Alamat : 0A2H Reset : 00H

bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0 - - - - - - - DPS

Simbol Fungsi

DPS Memilih register Data Pointer. DPS = 0, DPTR adalah DP0H, DP0L, Jika DPS = 1, DPTR adalah DP1H, DP1L.

c. Flag Power-On (POF) Flag power-on (POF) berada di bit-4 pada register PCON. POF akan diset 1 jika daya listrik telah dihubungka ke chip. Bit ini dapat diset-direset dengan software dan tidak dipengaruhi input reset (pin RST). IV. ORGANISASI MEMORI Mikrokontrolert MCS51 memisahkan memori data dengan memori program. Memori data dan memori program yang bisa diakses oleh MCS51 masing-masing adalah 64kByte. Ruang memori sebesar 64kByte itu tidak seluruhnya berada di chip (on chip memory), tetapi bisa ditambahkan memori eksternal. Memori Program Jika pin EA dihubungkan ke GND, program yang akan dikerjakan diambil semua dari memori eksternal (ROM eksternal). Jika EA dihubungkan ke VCC, program yang dikerjakan pada alamat 0000H hingga 1FFFH diambil dari memori program internal (on chip flash ROM) dan program dialamat 2000H hingga FFFFH diambil dari memori ROM eksternal. Memori Data AT89S52 memiliki memori data (RAM) sebesar 256 Byte. Memori ini dibedakan menjadi 128 Byte rendah dan 128 Byte atas. Memori data bagian 128 Byte atas mempunyai alamat yang sama dengan Register Fungsi Khusus/Special Function Register (SFR). Hal ini berarti 128 Byte RAM atas dan SFR mempunyai alamat yang sama walaupun keduanya secara fisik terpisah. CPU membedakan memori yang akan diakses dengan cara pengalamatan yang berbeda. Dengan menggunakan pengalamatan tak-langsung (indirect addressing) akan mengakses 128 Byte RAM atas dan dengan pengalamatan langsung (direct addressing) akan mengakses ke SFR. Sebagai contoh: MOV 0A0H, #data ,akan mengakses SFR yaitu P2 karena merupakan pengalamatan langsung.

Iwan B Pratama 5/14/2006

Page 6: AT89S52 - · PDF fileSimbol Fungsi TF2 Flag overflow ... transisi negatif di pin T2EX menyebabkan reload atau capture di Timer 2. Jika EXEN2 = 0, Timer 2 mengabaikan kejadian di pin

Lab Elektronika Industri Mikrokontroler 6

MOV R0, #0A0H MOV @R0, #data ,dua instruksi ini kelihatannya sama yaitu mengisi memori alamat 0A0H

dengan data langsung, tetapi yang ini adalah mengakses memori 128 Byte RAM atas. Ini karena menggunakan pengalamatan tak langsung (indirect addressing).

Instruksi PUSH dan POP yaitu operasi mengakes memori stack adalah menggunakan cara pengalamatan tak-langsung. Sehingga PUSH dan POP dapat menggunakan seluruh ruang RAM baik 128 Byte RAM bawah maupun 128 Byte RAM atas. Timer Watchdog Timer Watchdog (WDT) dimaskudkan untuk memulihkan keadaan ketika CPU terjebak operasi yang tak menentu/berakhir (hang) oleh kesalahan software. WDT terdiri dari pencacah 13 bit dan register fungsi khusus WDTRST (WatchDog Timer Reset). WDT dalam kondisi awal adalah tidak aktif saat reset. Untuk mengaktifkan sistem WDT, software harus mengisikan nilai berurutan 01EH dan 0E1H ke register WDRST (alamat 0A6H) di SFR. Jika WDT telah diaktifkan, isi counter WDT akan dinaikkan setiap satu siklus mesin dan pada saat oscilator berfungsi. Periode waktu WDT akan habis ditentukan oleh frekuensi clock ekternal. Jika WDT telah aktif, tidak cara untuk memetikannya kecuali mereset sistem atau timer WDT telah habis. Jika timer WDT talah babis yang ditandai pencacah WDT overflow, akan memberikan pulsa 1 Reset ke pin RST sehingga sistem akan direset. Penggunaan WDT Dalam penggunaan WDT perlu diperhatikan hal berikut: a. Untuk mengaktifkan WDT perlu mengisikan nilai 01EH dan 0E1H ke register WDTRST. b. Sekali dihidupkan WDT tidak bisa dihentikan dan pencacah WDT akan naik setiap siklus

mesin sampai cacahan maksimum yaitu 1FFFH (8191). c. Untuk menghentikan WDT hanya dengan cara mereset sistem. d. Jika isi pencacah WDT melimpah, WDT akan mereset sistem hardware. e. Untuk menghalangi WDT melimpah dan mereset hardware, sebelum pencacah melimpah

lakukan langkah a diatas sehingga WDT akan menghitung dari awal lagi. Watchdog Selama Mode Power-Down dan Idle Pada mode Power-down, oscilator akan berhenti bekerja dengan demikian WDT juga akan berhenti. Pada mode power-down, software tidak perlu setiap kali mengisi register WDTRST karena WDT berhenti. Ada 2 cara untuk keluar dari mode power-down yaitu dengan mereset sistem atau memberikan interupsi eksternal aktivasi level rendah yang sebelumnya diaktifkan sebelum masuk ke mode power-down. Keluar mode power-down dengan interupsi adalah berbeda. Interupsi dengan memberikan level rendah dari eksternal secara cukup lama sehingga oscilator mulai kerja dan stabil. Jika level interupsi eksternal diubah ke logika 1, maka interupsi akan dilayani. Untuk mencegah WDT mereset sistem ketika sedang memberi level rendah ke interupsi eksternal yang cukup lama tadi, WDT jangan diaktifkan dulu hingga pin interupsi eksternal diubah ke logika 1. Sehingga disarankan untuk mematikan WDT jika ingin keluar dari mode power-down dengan memakai interupsi. Ide yang baik yaitu mereset WDT dulu sesaat sebelum masuk ke mode power-down. Ketika akan masuk ke mode idle, perlu untuk mengatur bit WDIDLE di register AUXR yang menentukan apakah selama mode idle WDT masih terus aktif atau berhenti. Jika bit WDIDLE = 0 maka timer WDT masih terus aktif selama mode idle. Untuk mencegah WDT mereset sistem, maka perlu mengatur timer untuk keluar mode idle, mengisikan nilai 01EH dan 0E1H ke WDTRST untuk mereset WDT, kemudian baru masuk mode idle lagi, dst. Jika bit WDIDLE = 1, WDT akan berhenti mencacah ketika mode idle. Ketika keluar dari mode idle, isi pencacah WDT akan dinolkan lagi. Port Serial (UART) Port serial AT89S52 beroperasi sama dengan pada seri AT89C51/52/55 dll.

Iwan B Pratama 5/14/2006

Page 7: AT89S52 - · PDF fileSimbol Fungsi TF2 Flag overflow ... transisi negatif di pin T2EX menyebabkan reload atau capture di Timer 2. Jika EXEN2 = 0, Timer 2 mengabaikan kejadian di pin

Lab Elektronika Industri Mikrokontroler 7

Timer 0 dan Timer 1 Timer 0 dan Timer 1 pada AT89S52 bekerja sama seperti pada seri AT89C51. Timer 2 AT89S52 terdapat tambahan Timer 2 dan bekerja seperti pada seri AT89C52/55. Interupsi Interupsi pada AT89S52 bekerja persis seperti pada AT89C52/55 V. KARAKTERISTIK OSCILATOR XTAL1 dan XTAL2 adalah input dan output amplifier yang digunakan untuk menghubungkan komponen resonator untuk membangkitkan clock dalam chip. Jenis resonator yang bisa dipakai ada dua yaitu: kristal quartz dan resonator keramik. Jika diinginkan untuk memberikan clock dari luar, clock dimasukkan lewat pin XTAL1 dan biarkan pin XTAL2 tak dihubungkan. Duty cycle dari clock eksternal yang dimasukkan tidak harus 50% karena clock ini akan melewati pembagi dua frekuensi yang membuat duty cycle akan menjadi 50%. Yang perlu diperhatikan adalah level tegangan clock input.

Gbr. 1. Sambungan oscilator Gbr 2. Sumber clock dari luar Mode Idle Pada mode idle, CPU berhenti kerja tetapi periferal dalam chip masih aktif. Mode idle diaktifkan dengan software. Pada mode idle, isi memori RAM dan isi register fungsi khusus tidak berubah. Mode ini bisa diakhiri dengan mengaktifkan interupsi atau mereset hardware. Jika mode idle dihentikan dengan mereset sistem, program akan kembali ke instruksi ketika ditinggalkan dulu. Seteleh terjadi reset, dibutuhkan 2 siklus mesin sebelum kembali melaksanakan instruksi ketika ditinggalkan dulu. Pada mode idle, memori RAM tidak bisa diakses, tetapi port input/output dapat diakses. Untuk menghindari kekeliruan pengaksesan port ketika mode idle, perlu diperhatikan bahwa instruksi yang memulai mode idle tidak diikuti instruksi yang mengakses port atau pengaksesan memori data eksternal. Mode Power-Down Pada mode power-down, oscilator berhenti kerja sehingga instruksi yang memulai mode power-down adalah instruksi terakhir. Isi memori data RAM dan isi register fungsi khusus tidak hilang sampai ketika mode ini diakhiri. Penghentian mode power-down dapat dengan mereset sistem atau dengan interupsi dari eksternal. Jika power-down diakhiri dengan reset, isi memori RAM tidak berubah tetapi isi register fungsi khusus akan direset juga. Sebelum power-down diakhiri

Iwan B Pratama 5/14/2006

Page 8: AT89S52 - · PDF fileSimbol Fungsi TF2 Flag overflow ... transisi negatif di pin T2EX menyebabkan reload atau capture di Timer 2. Jika EXEN2 = 0, Timer 2 mengabaikan kejadian di pin

Lab Elektronika Industri Mikrokontroler 8

dengan reset, perlu diperhatikan bahwa listrik supply harus dikembalikan ke 5V dan oscilator diaktifkan dulu hingga stabil.

VI. MEMPROGRAM FLASH ROM Memprogram Bit Pengunci (Lock Bit) AT89S52 mempunyai 3 mode proteksi pengunci program agar program yang diisikan tidak dapat dibaca orang lain. Ketika memprogram flash dapat saja bit pengunci ini dibiarkan tidak dikunci (U) atau diprogram dengan menyertakan pengunci (P). Lebih jelasnya lihat tabel berikut: Tabel: Mode Bit Pengunci (Lock Bit)

Pengunci Bit Lock Mode LB1 LB2 LB2

Tipe proteksi program

1 U U U Tidak ada proteksi program 2 P U U Instruksi MOVC dari memori program eksternal dimatikan 3 P P U Seperti mode 2 ditambah Verify program dimatikan 4 P P P Seperti mode 2 ditambah akses dari/ke eksternal dimatikan

Memprogram Flash Mode Paralel Ketika AT89S52 dikeluarkan dari pabrik telah siap untuk diprogram. Untuk memprogram flash memori diperlukan interface 12V untuk membolehkan flash diprogram, kemudian kode program diisikan ke flash memori secara byte demi byte. Algoritma pengisian kode: Sebelum diprogram, alamat (address), data dan sinyal kontrol harus diberikan dulu sesuai dengan dua tabel di bawah dan langkah pemrograman adalah sebagai berikut:

1. Sediakan alamat (address) yang sesuai di saluran alamat (Port 1 dan sebagian Port 2) 2. Masukkan data yang sesuai ke saluran data (Port 0) 3. Berikan sinyal kendali yang sesuai 4. Naikkan pin EA /VPP ke 12V 5. Berikan satu pulsa rendah ke pin ALE/ PROG untuk menuliskan 1 byte data ke lokasi

flash. Proses ini akan dilakukan secara self-timed dan biasanya akan berlangsung tidak lebih 50µ detik.

Ulangi langkah 1 hingga 5 dengan setiap kali mengganti alamat dan data hingga seluruh program telah selesai diprogramkan ke flash memori.

Pada saat memprogram, tegangan supply 5V harus telah dihubungkan ke pin 40, dan GND ke pin 20. Pin RST diberi 5V (logika 1). AT89S52 mempunyai 8kByte flash sehingga memerlukan 13 bit saluran alamat yang masuk lewat pin P2.4 – P2.0 dan P1.7 – P1.0 sebagai saluran alamat A12 – A0. Address (alamat) dari 0000H – 1FFFH. Saluran data masuk lewat Port 0.

Polling Data AT89S52 memberikan Data Polling yang mengidikasikan akhir dari penulisan 1 byte ke flash memori. Selama proses penulisan data ke flash memori, usaha pembacaan data yang telah dituliskan sebelumnya akan mendapatkan komplemen data pada P0.7.

Iwan B Pratama 5/14/2006

Page 9: AT89S52 - · PDF fileSimbol Fungsi TF2 Flag overflow ... transisi negatif di pin T2EX menyebabkan reload atau capture di Timer 2. Jika EXEN2 = 0, Timer 2 mengabaikan kejadian di pin

Lab Elektronika Industri Mikrokontroler 9

Setelah siklus penulisan flash selesai, data yang benar dari hasil penulisan akan segera muncul pada saluran data dan siklus penulisan data berikutnya bisa dimulai.

Ready/ Busy Proses penulisan ke flash memori juga dapat dipantau dari sinyal Ready/ Busy di P3.0. Pada saat ALE/ PROG kembali ke logika 1 saat pemrograman flash, P3.0 akan ditarik ke logika rendah untuk menandakan sedang terjadi penulisan ke flash memori atau Busy . Setelah siklus pemrograman selesai, P3.0 akan kembali ke logika 1 untuk menandakan proses penulisan telah selesai dan siap diprogram kembali (Ready).

Iwan B Pratama 5/14/2006

Page 10: AT89S52 - · PDF fileSimbol Fungsi TF2 Flag overflow ... transisi negatif di pin T2EX menyebabkan reload atau capture di Timer 2. Jika EXEN2 = 0, Timer 2 mengabaikan kejadian di pin

Lab Elektronika Industri Mikrokontroler 10

Pengecekan Program (Program Verify) Jika pengunci bit (lock bit) LB1 dan LB2 tidak diprogram, isi kode program di flash memori dapat dicek dengan memberikan alamat (address) dan kode dibaca lewat saluran data. Proses verifikasi dilakukan dengan perintah seperti tabel instruksi di atas.

Pembacaan Byte Signature (Read Atmel ID) Membaca kode signature chip atau identifikasi chip Atmel sama prosedurnya dengan proses verifikasi kecuali kode byte yang dibaca berada di alamat 000H, 100H, dan 200H dengan membuat P3.6 dan P3.7 harus diberi logika 0. Kode yang terbaca akan mempunyai arti sbb: 000H = 1EH : chip dibuat oleh Atmel 100H = 52H : tipe chip AT89S52 200H = 06H Chip Erase Penghapusan isi flash memori diperlukan jika kode program akan diperbarui. Proses penghapusan dengan memberikan kode tertentu seperti pada tabel di atas. Penghapusan flash memori dapat dilakukan pada mode parallel maupun serial. Pada saat proses penghapusan memori, usaha pembacaan data akan memberikan nilai 00H.

Iwan B Pratama 5/14/2006

Page 11: AT89S52 - · PDF fileSimbol Fungsi TF2 Flag overflow ... transisi negatif di pin T2EX menyebabkan reload atau capture di Timer 2. Jika EXEN2 = 0, Timer 2 mengabaikan kejadian di pin

Lab Elektronika Industri Mikrokontroler 11

Memprogram Flash Mode Serial (In-System Programming) Kode program (instruksi) dapat diprogramkan ke dalam flash memori dengan interface ISP (In System Programming) secara serial dengan membuat input pin RST ke logika 1. Interface serial memakai pin SCK (serial clock, P1.7), MISO (Master data In Slave Out, P1.6) dan MOSI (Master data Out Serial In, P1.5). Setelah pin RST = 1, instruksi Programming Enable harus diberikan dahulu untuk mengaktif mode memprogram secara serial ini. Berikutnya instruksi Chip Erase untuk membuat isi flash terhapus dan diisi ulang. Instruksi chip erase akan membuat isi flash berubah ke FFH semua. Pemrograman serial dapat dilakukan dengan memberi clock dari eksternal yang masuk ke pin XTAL1 atau memakai clock internal dengan menghubungkan kristal dan kapasitor ke pin XTAL1 dan XTAL2. Frekuensi serial clock (SCK) haruslah kurang dari 1/6 frekuensi oscilator. Jadi misalnya dipakai kristal 33MHz untuk frekuensi clock, maka frekuensi SCK maksimum adalah 2MHz. Algoritma Memprogram Flash ROM secara Seri Langkah berikut disarankan untuk memprogram dan memeriksa flash ROM AT89S52: 1. Urutan pemberian daya listrik,

• Berikan tegangan 5V ke pin VCC dan 0V ke pin GND • Buat pin RST ke logika 1 • Jika kristal tidak dipakai untuk sumber clock internal, masukkan clock eksternal dengan

frekuensi 3MHz hingga 33MHz ke pin XTAL1 dan tunggu paling tidak selama 10mS. 2. Mampukan AT89S52 untuk mode pemrograman secara serial dengan memberikan instruksi

ke pin MOSI (P1.5) yang sesuai pada Programming Enable seperti di tabel di bawah. Diperlukan 4 byte urutan data yang harus dimasukkan untuk instruksi programming enable ini. Frekuensi clock serial dimasukkan ke pin SCK (P1.7) harus kurang dari 1/16 frekuensi oscilator.

3. Rangkaian kode program dituliskan secara byte demi byte dan disertai dengan alamat dan kode instruksi Write tertentu. Waktu penulisan 1 byte ke dalam flash ROM (waktu siklus) akan diatur sendiri oleh AT89S52 dan biasanya kurang dari 1mS pada tegangan 5V.

4. Sembarang lokasi flash ROM dapat diverifikasi untuk mengecek kode instruksi program yang dituliskan menggunakan instruksi Read. Memberikan instruksi read akan membaca isi flash di alamat yang dipilih dan bisa dibaca secara serial dari pin MISO (P1.6).

Iwan B Pratama 5/14/2006

Page 12: AT89S52 - · PDF fileSimbol Fungsi TF2 Flag overflow ... transisi negatif di pin T2EX menyebabkan reload atau capture di Timer 2. Jika EXEN2 = 0, Timer 2 mengabaikan kejadian di pin

Lab Elektronika Industri Mikrokontroler 12

5. Jika semua kode program telah selesai diisikan, buat pin RST kembali ke logika 0 untuk mengakhiri pengisian dan AT89S52 kembali bekerja ke operasi normal.

6. Urutan mematikan daya listrik (jika diperlukan) • Buat logika 0 pada input XTAL1 jika tidak menggunakan kristal oscilator. • Buat pin RST ke logika 0 • Matikan daya listrik

Polling Data Polling Data juga terjadi pada pengisian program secara seri yaitu pada saat siklus penulisan

kode ke flash usaha pembacaan byte terakhir yang diisikan akan memberikan hasil komplemen dari MSB (bit 7) data yang keluar secara seri lewat pin MISO (P1.6). Set Instruksi Pemrograman Seri Set instruksi untuk memprogramm secara seri adalah memberikan urutan 4 byte protokol seperti pada tabel berikut.

Diagram Waktu Pemrograman Serial Bentuk gelombang waktu pemrograman secara seri dan diagram waktu seperti terlihat pada gambar berikut:

Iwan B Pratama 5/14/2006

Page 13: AT89S52 - · PDF fileSimbol Fungsi TF2 Flag overflow ... transisi negatif di pin T2EX menyebabkan reload atau capture di Timer 2. Jika EXEN2 = 0, Timer 2 mengabaikan kejadian di pin

Lab Elektronika Industri Mikrokontroler 13

Iwan B Pratama 5/14/2006

Page 14: AT89S52 - · PDF fileSimbol Fungsi TF2 Flag overflow ... transisi negatif di pin T2EX menyebabkan reload atau capture di Timer 2. Jika EXEN2 = 0, Timer 2 mengabaikan kejadian di pin

Lab Elektronika Industri Mikrokontroler 14

Iwan B Pratama 5/14/2006

Page 15: AT89S52 - · PDF fileSimbol Fungsi TF2 Flag overflow ... transisi negatif di pin T2EX menyebabkan reload atau capture di Timer 2. Jika EXEN2 = 0, Timer 2 mengabaikan kejadian di pin

Lab Elektronika Industri Mikrokontroler 15

Iwan B Pratama 5/14/2006

Page 16: AT89S52 - · PDF fileSimbol Fungsi TF2 Flag overflow ... transisi negatif di pin T2EX menyebabkan reload atau capture di Timer 2. Jika EXEN2 = 0, Timer 2 mengabaikan kejadian di pin

Lab Elektronika Industri Mikrokontroler 16

Iwan B Pratama 5/14/2006