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