Data Memori EEPROM dan RAM Instruksi pada Mikrokontroler AT89S8252

13 RST Pin 9 Reset akan aktif dengan memberikan input high selama 2 cycle. ALE PROG Pin 30 Address latch Enable adalah pulsa output untuk me-latch byte low dari alamat selama mengakses memori eksternal. Selain itu, sebagai pulsa input progam PROG selama memprogam Flash. PSEN Pin 29 Progam store enable digunakan untuk mengakses memori progam eksternal. EA Pin 31 Pada kondisi low, pin ini akan berfungsi sebagai EA yaitu mikrokontroler akan menjalankan progam yang ada pada memori eksternal setelah sistem direset. Jika kondisi high, pin ini akan berfungsi untuk menjalankan progam yang ada pada memori internal. Pada saat flash progamming, pin ini akan mendapat tegangan 12 Volt. X TAL 1 Pin 19 Input untuk clock internal. X TAL 2 Pin 18 Output dari osilator.

2.3 Data Memori EEPROM dan RAM

Berbeda dengan mikrokontroler standard MCS-51, mikrokontroler Atmel AT89S8252 juga dilengkapi dengan data memori yang berupa EEPROM Electrically Erasable Programmable Read Only Memori. EEPROM yang ditanamkan ini besarnya 2K byte dan dipakai untuk penyimpanan data. J. Anderson Tampubolon : Pengendalian Pintu Gerbang Menggunakan Mikrokontroler AT89S8252, 2008 USU Repository © 2008 14 EEPROM on-chip ini diakses dengan mengeset bit EEMEN pada register WMCON pada alamat 96H. Alamat EEPROM ini adalah 000H sampai 7FFH. Instruksi movx digunakan untuk mengakses EEPROM internal ini. Namun jika ingin mengakses data memori luar diluar mikrokontroler Atmel AT89S8252 dengan menggunakan instruksi movx ini maka bit EEMEN harus dibuat ‘0’. Bit EEMWE pada register WMCON harus diset ke 1 sebelum sebarang lokasi pada EEPROM dapat ditulis. Program pengguna harus mereset bit EEMWE ke ‘0’ jika penulisan ke EEPROM tidak diperlukan lagi. Proses penulisan ke EEPROM dapat dilihat dengan membaca bit RDYBSY pada SFR WMCON. Jika bit ini berlogika rendah maka berarti penulisan EEPROM sedang berlangsung, jika bit ini berlogika tinggi berarti penulisan sudah selesai dan penulisan lain dapat dimulai lagi. Sedangkan RAM yang ada pada mikrokontroler Atmel AT89S8252 adalah berkapasitas 256 byte.

2.4 Instruksi pada Mikrokontroler AT89S8252

Adapun keuntungan menggunakan mikrokontroler AT89S88252 yaitu dapat membantu kita membuat alat dengan program yang relatif sederhana yang mana mikrokontroler ini menggunakan Downlodable Flash Memory. Bahkan tidak diperlukan komponen apapun untuk memprogram mikrokontroler AT89S8252. Beberapa komponan dasar yang dipakai seperti resistor dan kapasitor sebenarnya hanya untuk menyediakan reset pada catu daya mulai diberikan. Flash memory yang digunakan mampu untuk diisi sampai seribu kali. J. Anderson Tampubolon : Pengendalian Pintu Gerbang Menggunakan Mikrokontroler AT89S8252, 2008 USU Repository © 2008 15 Pada mikrokontroller AT89S8252 terdapat 8K byte in-system reprogramable flash PEROM Code memori dan 2K byte EEPROM Data Memori. Flash PEROM Code Memori digunakan untuk menyimpan program yang telah kita buat. Sedangkan EEPROM Data Memori digunakan untuk menyimpan data. Penulisan program tersebut dengan menggunakan bahasa pemrograman Asembly. Beberapa instruksi yang terdapat dalam pemrograman pada mikrokontroler jenis AT89S8252 adalah sebagai berikut :

1. Add

Instruksi untuk melakukan operasi penjumlahan pada dua buah data yang terdapat pada alamat register yang ditunjuk oleh instruksi. Cth : DD A, Rn Instruksi ini melakukan operasi penjumlahan data pada Akumulator dengan data pada alamat register RN n0...7 dan hasilnya disimpan di Akumulator.

2. Call

Instruksi untuk melakukan panggilan terhadap instruksi yang terdapat di dalam subrutin yang ditunjuk. Setelah menjalankan instruksi-instruksi tersebut, program akan melanjutkan kembali instruksi yang terdapat pada program utama. a. Acall; instruksi ini melakukan panggilan pada subrutin yang ditunjuk dengan jangkauam kurang dari 2 Kbyte. b. Lcall ; Instruksi ini melakukan panggilan pada subrutin yang ditunjuk dengan jangkauan maksimal 64 Kbyte. J. Anderson Tampubolon : Pengendalian Pintu Gerbang Menggunakan Mikrokontroler AT89S8252, 2008 USU Repository © 2008 16

3. Cjne Compare and Jump if Not Equal

Instruksi ini melakukan perbandingan antara data sumber dengan data tujuan. Bila datanya sama maka lanjutkan ke instruksi di bawahnya, bila data tidak sama maka jump ke alamat yang dituju. Format instruksi : Cjne data tujuan, data sumber, alamat input

4. Clr Clear

Instruksi ini memberi data 0 pada alamat register yang ditunjuk. Contoh : Clr A Instruksi ini memberi data 0 pada akumulator.

5. Cpl Complement

Instruksi ini melakukan operasi komplemen pada alamat registeryang ditunjuk. Contoh : Cpl C Data pada arry flag dikomplemenkan.

6. Dec Decremant

Instruksi ini malakukan operasi pengurangan dengan nilai 1 pada data yang terdapat pada alamat register yang ditunjuk oleh instruksi dan menyimpannya pada register tersebut. Contoh : Dec A Data pada akumulator dikurangi dengan 1 dan hasilnya disimpan di akumulator.

7. Div Divide

Instruksi ini melakukan operasi pembangunan pada dua buah data yang terdapat pada alamat register yang ditunjuk oleh instruksi. Contoh : Div AB Data dari akumulator dibagi dengan data pada register B, hasilnya disimpan di akumlator dan sisanya disimpan di register B. J. Anderson Tampubolon : Pengendalian Pintu Gerbang Menggunakan Mikrokontroler AT89S8252, 2008 USU Repository © 2008 17

8. Djnz Decrement and Jump if Not Zero

Instruksi ini melakukan operasi pengurangan pada alamat register serbaguna r0.....R7 yang ditunjukkan dengan nilai 1 dan akan jump bila hasil dari pengurangan itu nilainya tidak sama dengan nol. Contoh : Djnz Rn, subrutin Instruksi ini melakukan operasi pengurangan pada alamat register R0...R7 dengan 1 dan melompat ke subrutin jika hasilnya bukan nol. Akan tetapi jika hasilnya sama dengan nol maka program akan menjalankan instruksi di bawahnya.

9. Inc Increment

Instruksi ini melakukan operasi penjumlahan dengan nilai 1 pada data yang terdapat pada alamat register yang ditunjukkan oleh instruksi dan menyimpannya pada alamat register tersebut. Contoh : Inc A Instruksi ini menjumlahkan data akumulator dengan 1 dan hasilnya disimpan di akumulator.

10. Jb Jump on Bit set

Instruksi ini melakukan pengujian bit pada alamat bit yang ditunjukkan. Jika data bit 1 maka program tersebut akan melompat ke subrutin yang ditunjukolah instruksi. Akan tetapi bila data bit 0 maka program akan menjalankan instruksi di bawahnya atau selanjutnya.

11. Jnb Jump on Not Bit set

Instruksi ini melakukan pengujian bit pada alamat bit yang ditunjuk. Jika data bit bernilai 0 maka program akan melompat ke subrutin yang ditunjukkan oleh instruksi. J. Anderson Tampubolon : Pengendalian Pintu Gerbang Menggunakan Mikrokontroler AT89S8252, 2008 USU Repository © 2008 18 Bila data bit bernilai 1 maka program akan menjalankan instruksi di baahnya atau selanjutnya.

12. Jmp Jump

Instruksi ini melakukan lompatan pada alamat kode yang ditunjuk. a. Ajmp Absolute Jump ; Instruksi ini melakukan lompatan ke subrutin yang ditunjuk sejauh maksimum 11 bit dari alamat yang ditentukan. b. Ljmp Long Jump ; instruksi ini melakukan lompatan ke subrutin yang ditunjuk sejauh maksimum 16 bit dari alamat yang ditentukan. c. Sjmp Short jump ; instruksi ini melakukan lompatan ke subrutin yang ditunjuk sejauh maksimum 128 byte dari alamat yang ditentukan.

13. Jnz Jump if Not Zero

Instruksi ini melakukan pengujian data pada akumulator. Jika data pada akumulator tidak sama dengan 00H maka progam akan melompat ke subrutin yang ditunjuk. Akan tetapi jika data pada akumulator sama dengan 00H maka program akan menjalankan instruksi di bawahnya atau selanjutnya.

14. Jz Jump if Zero

Instruksi ini melakukan pengujian data pada akumulator. Jika data pada akumulator tidak sama dengan 00H maka progrm akan menjalankan instruksi di bawahnya atau selanjutnya, tapi jika data pada akumulator sama dengan ooH maka program akan melompat ke subrutin yan ditunjuk.

15. Mov

Instruksi ini melakukan operasi peminhdahan data dari alamat register satu ke alamat register lainnya. Contoh : Mov A, Rn J. Anderson Tampubolon : Pengendalian Pintu Gerbang Menggunakan Mikrokontroler AT89S8252, 2008 USU Repository © 2008 19 Instruksi ini melakukan operasi pemindahan data dari alamat register Rn n=0…7 ke dalam akumulator.

16. Nop

Instruksi ini akan melakukan delay sebesar 1 cycle atau 1 siklus.

17. Ret Return

Instruksi ini digunakan untuk kembali ke subrutin.

18. Setb

Instruksi ini melakukan operasi set pada bit yang ditunjuk oleh register. Cara mengirimkan program ke dalam mikrokontroler adalah dengan mengambil file heksadesimal dari hasil kompilasi melalui Open File. Tampilannya seperti pada gambar berikut : Gambar 2.2 Software Downloader ISP-Flash Programmer J. Anderson Tampubolon : Pengendalian Pintu Gerbang Menggunakan Mikrokontroler AT89S8252, 2008 USU Repository © 2008 20 Gambar 2.3 Open File Kemudian klik Write untuk mengisikan hasil kompilasi tersebut ke mikrokontroler. Seperti pada gambar 2.4 berikut : J. Anderson Tampubolon : Pengendalian Pintu Gerbang Menggunakan Mikrokontroler AT89S8252, 2008 USU Repository © 2008 21 Gambar 2.4 Pengisian Program ke Mikrokontroler 2.5 TimerCounter Pada mikrokontroler AT89S8252 terdapat tambahan Timer 2. Timer yang lain adalah Timer 0 dan Timer 1 yang terdapat pada standard MCS-51 dimana memilki 2 timer yang dapat dikonfigurasikan beroperasi sebagai timer atau counter. Saat berfungsi sebagai timer, isi register ditambah satu untuk tiap siklus mesin, sedangkan untuk fungsi counter isi register akan bertambah 1 setiap ada transisi sinyal pada pin input eksternal. Pada pemanfaatan sebagai counter, sinyal input yang dimasukan dapat berupa low level atau falling edge trigger. Counter akan mencacah setiap masukan yang ada sesuai dengan inisialisasi harga awal dari counter pada nilai hitungan J. Anderson Tampubolon : Pengendalian Pintu Gerbang Menggunakan Mikrokontroler AT89S8252, 2008 USU Repository © 2008 22 terendah untuk tiap sampling. Inisialisasi harga awal ini berupa nilai preset negatif counter yang diatur sebelum counter dijalankan. Hal yang perlu diperhatikan adalah bahwa TimerCounter dapat digunakan sebagai generator boud rate untuk serial port. Pada standard MCS-51 biasanya digunakan Timer 1 sebagai penghasil baud rate. Nah pada mikrokontroller Atmel AT89S8252 ini selain dapat menggunakan Timer 1 sebagai penghasil baud rate untuk menjaga kompatibilitas dengan MCS-51 juga dapat menggunakan Timer 2 sebagai penghasil baud rate untuk serial port. Timer 2 ini merupakan TimerCounter yang berukuran 16 bit yang dapat beroperasi sebagai Timer dengan detak dari sistem detak mikrokontroler atau dapat beroperasi sebagai penghitung kejadian event counter dengan detak dari luar. Untuk mengatur fungsi ini dilakukan dengan mengatur bit CT2 pada SFR T2CON. Terlihat bahwa jika bit ini tinggi maka akan terpilih fungsi counter C, tetapi jika bit ini rendah maka akan terpilih fungsi Timer 2 T2. Timer 2 ini memiliki 3 mode operasi yaitu capture, auto reload up dan down counting dan baud rate generator. Untuk memilih mode ini dilakukan dengan mengatur bit pada SFR T2CON Timer 2 Control Register. J. Anderson Tampubolon : Pengendalian Pintu Gerbang Menggunakan Mikrokontroler AT89S8252, 2008 USU Repository © 2008 23

2.6 Transistor sebagai Saklar