| Pelatihan
Mikrokontroller
89S51
Microcontroller Kits
Programmer and
Target 89s51
Simple
Mikrokontroller 89s51 Trainer
Standart
Mikrokontroller 89s51 Trainer
Super
Mikrokontroller Trainer 89s51
Dot
matrix Trainer
ATMEGA8
All Kits
+
Programmer
via USB Port
|
|
( Click
here: for English version )
Simple Microcontroller Trainer
Rp. 220.000
Include Programer via USB New
( READY STOCK
)
Belajar pemrograman 8051 dan mengembangkan kode dengan cepat dan
mudah, dengan simple mikrokontroller traniner board. Simple mikrokontroller
8051 traniner board memanfaatkan sebuah AT89s51 ATMEL Microcontroler
dengan 4k In-System Flash Memory, yang mana dapat diprogram dan diprogram
ulang dengan mudah dengan menggunakan standard download ATMEL ISP
software.
Semua port I/O's telah tersedia dengan koneksi ke male headers, standard
plugs dapat digunakan. Program Run switch juga telah tersedia. Sebuah
reset pushbutton juga disiapkan untuk melakukan reset ke mikrokontroller.

Gambar 1. Simple Mikrokontroller Trainer Kit
Include:
a. Programmer ISP via USB port

Gambar 2. Programmer ISP via USB Port
b. Kabel USB, CD dan Kabel Power Supply

c. Copy Compiler ASM ke HEX atau C ke HEX
- MIDE51

Gambar 3. M-IDE Studio MCS-51 ( Editor, Compiler )
d. Copy Downloader Software - PROGISP Ver
1.68

Gambar 4. ATMEL Mikrokontroller ISP Software ( Downloader
)
Catatan: Catatan:
Pada setiap pembelian, power supply tidak disertakan. Catu daya yang
diperlukan sebesar 5 volt dc teregulasi
Fitur
• Includes AT89S51 dengan 4kb internal Flash Program Memory
• Crystal(12.MHz)
• Semua I/O pins terkoneksi ke header untuk mempermudah koneksi
eksternal.
• AT89S51 dapat diprogram secara on-board, dengan kabel pemrograman
disertakan
• Circuit Schematic disertakan
Setiap pembelian akan disertakan:
1. CD Copy Software Microcontroller ATMEL ISP ( Download Software )
dan MIDE-51 ( Editor, assembler, compiler dan debug dapat digunakan
untuk pemrograman C)
2. Petunjuk Penggunaan Trainer Kit
3. Kabel downloader/ programmer : 1 meter
4. Rangkaian skematik
5. Beberapa contoh percobaan sederhana
Fitur Printed Circuit Board (PCB)
• 100mm x 150mm
• PCB dari bahan Fiber
Untuk menggunakan trainer ini deperlukan:
Komputer dengan minimum CPU Pentium 64M RAM dengan
CDROM drive dan Parallel Port, berjalan dibawah Windows 98® atau
diatasnya.
M IDE-51® atau Editor / assembler / Compiler yang sama - Free Provided.
ATMEL ISP Software - Free Provided by ATMEL Corp.
Perlu 5v DC regulated power supply 500mA atau lebih besar dengan 2 pin
header female connector.
Cara Pembelian:
1. Langsung
Rumah: Jl. Ngagel Rejo Utara V/24, Surabaya
Kampus: Laboratorium Mikrokontroller, Jurusan Teknik Elektromedik
Politeknik Kesehatan Surabaya, Jl. Pucang Jajar Timur No.10, Surabaya.
Hubungi telp/ SMS:
Triwiyanto, Home/Flexi: 031-77406013, HP:081-55126883
2.Online ( Pembayaran via: ATM/ Internet/ M-Banking
)
 |
BCA Cabang Pucang Anom, Surabaya
No.Rekening:0640444517
A/N: Triwiyanto |
|
BNI Cabang Urip Sumoharjo, Surabaya
No.Rekening: 0049517502
A/N: Triwiyanto |
Setelah menyelesaikan proses pembayaran, jangan lupa
untuk melakukan konfirmasi pembayaran melalui SMS, Email, disertai alamat
pengiriman barang:
Email: [email protected]
Phone: Flexi: 031-7740601, HP: 081-55126883
Catatan (untuk pembelian online):
Tambahkan Rp. 50.000* untuk biaya pengiriman Luar P. Jawa
Tambahkan Rp. 40.000* untuk biaya pengiriman P. Jawa
*Pengiriman barang menggunakan Jasa TIKI, biaya jasa pengiriman tersebut
dapat berubah disesuaikan dengan KG barang + kemasan dan lokasi pemesan,
dengan waktu pengiriman paling lama 4 hari untuk Luar P.Jawa.
Dapatkan discount untuk pembelian
dengan jumlah 10 kit |
1.4. Interupsi
8051 mempunyai 5 buah sumber interupsi. Dua buah interupsi
eksternal, dua buah interupsi timer dan sebuah interupsi port serial.
Meskipun memerlukan pengertian yang lebih mendalam, pengetahuan mengenai
interupsi sangat membantu mengatasi masalah pemrograman mikroprosesor/mikrokontroler
dalam hal menangani banyak peralatan input/output. Pengetahuan mengenai
interupsi tidak cukup hanya dibahas secara teori saja, diperlukan contoh
program yang konkrit untuk memahami.
Saat kaki RESET pada IC mikroprosesor/mikrokontroler menerima sinyal
reset (pada MCS51 sinyal tersebut berupa sinyal ‘1’ sesaat,
pada prosesor lain umumnya merupakan sinyal ‘0’ sesaat),
Program Counter diisi dengan sebuah nilai. Nilai tersebut dinamakan
sebagai vektor reset (reset vector), merupakan nomor awal memori-program
yang menampung program yang harus dijalankan.
Pembahasan di atas memberi gambaran bahwa proses reset merupakan peristiwa
perangkat keras (sinyal reset diumpankan ke kaki Reset) yang dipakai
untuk mengatur kerja dari perangkat lunak, yakni menentukan aliran program
prosesor (mengisi Program Counter dengan vektor reset).
Program yang dijalankan dengan cara reset, merupakan program utama bagi
prosesor.
Peristiwa perangkat keras yang dipakai untuk mengatur
kerja dari perangkat lunak, tidak hanya terjadi pada proses reset, tapi
terjadi pula dalam proses interupsi.
Dalam proses interupsi, terjadinya sesuatu pada perangkat keras tertentu
dicatat dalam flip-flop khusus, flip-flop tersebut sering disebut sebagai
‘petanda’ (flag), catatan dalam petanda tersebut diatur
sedemikian rupa sehingga bisa merupakan sinyal permintaan interupsi
pada prosesor. Jika permintaan interupsi ini dilayani prosesor, Program
Counter akan diisi dengan sebuah nilai. Nilai tersebut dinamakan sebagai
vektor interupsi (interrupt vector), yang merupakan nomor awal memori-program
yang menampung program yang dipakai untuk melayani permintaan interupsi
tersebut.
Program yang dijalankan dengan cara interupsi, dinamakan sebagai program
layanan interupsi (ISR - Interrupt Service Routine). Saat prosesor menjalankan
ISR, pekerjaan yang sedang dikerjakan pada program utama sementara ditinggalkan,
selesai menjalankan ISR prosesor kembali menjalankan program utama,
seperti yang digambarkan dalam Gambar 1.
Gambar 1.8 Bagan kerja prosesor melayani interupsi
Sebuah prosesor bisa mempunyai beberapa perangkat keras
yang merupakan sumber sinyal permintaan interupsi, masing-masing sumber
interupsi dilayani dengan ISR berlainan, dengan demikian prosesor mempunyai
beberapa vektor interupsi untuk memilih ISR mana yang dipakai melayani
permintaan interupsi dari berbagai sumber. Kadang kala sebuah vektor
interupsi dipakai oleh lebih dari satu sumber interupsi yang sejenis,
dalam hal semacam ini ISR bersangkutan harus menentukan sendiri sumber
interupsi mana yang harus dilayani saat itu.
Jika pada saat yang sama terjadi lebih dari satu permintaan interupsi,
prosesor akan melayani permintaan interupsi tersebut menurut perioritas
yang sudah ditentukan, selesai melayani permintaan interupsi perioritas
yang lebih tinggi, prosesor melayani permintaan interupsi berikutnya,
baru setelah itu kembali mengerjakan program utama.
Saat prosesor sedang mengerjakan ISR, bisa jadi terjadi permintaan interupsi
lain, jika permintaan interupsi yang datang belakangan ini mempunyai
perioritas lebih tinggi, ISR yang sedang dikerjakan ditinggal dulu,
prosesor melayani permintaan yang perioritas lebih tinggi, selesai melayani
interupsi perioritas tinggi prosesor meneruskan ISR semula, baru setelah
itu kembali mengerjakan program utama. Hal ini dikatakan sebagai interupsi
bertingkat (nested interrupt), tapi tidak semua prosesor mempunyai kemampuan
melayani interupsi secara ini.
1.4.1. Sumber interupsi MCS51
Seperti terlihat dalam Gambar 2, AT89C51 mempunyai 6 sumber interupsi,
yakni Interupsi External (External Interrupt) yang berasal dari kaki
INT0 dan INT1, Interupsi Timer (Timer Interrupt) yang berasal dari Timer
0 maupun Timer 1, Interupsi Port Seri (Serial Port Interrupt) yang berasal
dari bagian penerima dan bagian pengirim Port Seri.
Di samping itu AT89C52 mempunyai 2 sumber interupsi lain, yakni Interupsi
Timer 2 bersumber dari Timer 2 yang memang tidak ada pada AT89C51.
Bit IE0 (atau bit IE1) dalam TCON merupakan petanda
(flag) yang menandakan adanya permintaan Interupsi Eksternal. Ada 2
keadaan yang bisa meng-aktip-kan petanda ini, yang pertama karena level
tegangan ‘0’ pada kaki INT0 (atau INT1), yang kedua karena
terjadi transisi sinyal ‘1’ menjadi ‘0’ pada
kaki INT0 (atau INT1). Pilihan bentuk sinyal ini ditentukan lewat bit
IT0 (atau bit IT1) yang terdapat dalam register TCON.
1. Kalau bit IT0 (atau IT1) =’0’ maka bit IE0 (atau IE1)
dalam TCON menjadi ‘1’ saat kaki INT0=’0’.
2. Kalau bit IT0 (atau IT1) =’1’ maka bit IE0 (atau IE1)
dalam TCON menjadi ‘1’ saat terjadi transisi sinyal ‘1’
menjadi ‘0’ pada kaki INT0.
Menjelang prosesor menjalankan ISR dari Interupsi Eksternal, bit IE0
(atau bit IE1) dikembalikan menjadi ‘0’, menandakan permintaan
Interupsi Eksternal sudah dilayani. Namun jika permintaan Interupsi
Ekternal terjadi karena level tegangan ‘0’ pada kaki IT0
(atau IT1), dan level tegangan pada kaki tersebut saat itu masih =’0’
maka bit IE0 (atau bit IE1) akan segera menjadi ‘1’ lagi!
Bit TF0 (atau bit TF1) dalam TCON merupakan petanda
(flag) yang menandakan adanya permintaan Interupsi Timer, bit TF0 (atau
bit TF1) menjadi ‘1’ pada saat terjadi limpahan pada pencacah
biner Timer 0 (atau Timer 1).
Menjelang prosesor menjalankan ISR dari Interupsi Timer, bit TF0 (atau
bit TF1) dikembalikan menjadi ‘0’, menandakan permintaan
Interupsi Timer sudah dilayani.
Interupsi port seri terjadi karena dua hal, yang pertama
terjadi setelah port seri selesai mengirim data 1 byte, permintaan interupsi
semacam ini ditandai dengan petanda (flag) TI=’1’. Yang
kedua terjadi saat port seri telah menerima data 1 byte secara lengkap,
permintaan interupsi semacam ini ditandai dengan petanda (flag) RI=’1’.
Petanda di atas tidak dikembalikan menjadi ‘0’ menjelang
prosesor menjalankan ISR dari Interupsi port seri, karena petanda tersebut
masih diperlukan ISR untuk menentukan sumber interupsi berasal dari
TI atau RI. Agar port seri bisa dipakai kembali setelah mengirim atau
menerima data, petanda-petanda tadi harus di-nol-kan lewat program.
Petanda permintaan interupsi (IE0, TF0, IE1, TF1, RI
dan TI) semuanya bisa di-nol-kan atau di-satu-kan lewat instruksi, pengaruhnya
sama persis kalau perubahan itu dilakukan oleh perangkat keras. Artinya
permintaan interupsi bisa diajukan lewat pemrograman, misalnya permintaan
interupsi eksternal IT0 bisa diajukan dengan instruksi SETB IE0.
1.4.2 Mengaktifkan Interupsi
Semua sumber permintaan interupsi yang di bahas di atas, masing-masing
bisa di-aktip-kan atau di-nonaktip-kan secara tersendiri lewat bit-bit
yang ada dalam register IE (Interrupt Enable Register).
Bit EX0 dan EX1 untuk mengatur interupsi eksternal INT0 dan INT1, bit
ET0 dan ET1 untuk mengatur interupsi timer 0 dan timer 1, bit ES untuk
mengatur interupsi port seri, seperti yang digambarkan dalam Gambar
2. Di samping itu ada pula bit EA yang bisa dipakai untuk mengatur semua
sumber interupsi sekali gus.
Setelah reset, semua bit dalam register IE bernilai ‘0’,
artinya sistem interupsi dalam keadaan non-aktip. Untuk mengaktipkan
salah satu sistem interupsi, bit pengatur interupsi bersangkutan diaktipkan
dan juga EA yang mengatur semua sumber interupsi. Misalnya instruksi
yang dipakai untuk mengaktipkan interupsi ekternal INT0 adalah SETB
EX0 disusul dengan SETB EA.
MSB |
|
LSB |
EA |
X |
X |
ES |
ET1 |
EX1 |
ET0 |
EX0 |
BIT |
SYMBOL |
FUNCTION |
| IE.7 |
EA |
Disables all interrupts. If EA=0, no interrupt
will be acknowledged. If EA=1, each interrupt source is individually
enabled or disabled by setting or clearing its enable bit. |
| IE.6 |
- |
- |
| IE.5 |
- |
- |
| IE.4 |
ES |
Enables or disables the Serial Port interrupt.
If ES=0, the Serial Port interrupt is disabled. |
| IE.3 |
ET1 |
Enables or disables the Timer 1 Overflow
interrupt. If ET1=0, the Timer 1 interrupt is disabled. |
| IE.2 |
EX1 |
Enables or disables External Interrupt 1.
If EX1=0, External interrupt 1 is disabled. |
| IE.1 |
ET0 |
Enables or disables the Timer 0 Overflow
interrupt. If ET0=0, the Timer 0 interrupt is disabled. |
| IE.0 |
EX0 |
Enables or disables External interrupt 0.
If EX0=0, External interrupt 0 is disabled. |
1.4.3 Vektor Interupsi
Saat MCS51 menanggapi permintaan interupsi, Program
Counter diisi dengan sebuah nilai yang dinamakan sebagai vektor interupsi,
yang merupakan nomor awal dari memori-program yang menampung ISR untuk
melayani permintaan interupsi tersebut. Vektor interupsi itu dipakai
untuk melaksanakan inststuksi LCALL yang diaktipkan secara perangkat
keras.
Vektor interupsi untuk interupsi eksternal INT0 adalah $0003, untuk
interupsi timer 0 adalah $000B, untuk interupsi ekternal INT1 adalah
$0013, untuk interupsi timer 1 adalah $001B dan untuk interupsi port
seri adalah $0023.
Jarak vektor interupsi satu dengan lainnya sebesar 8, atau hanya tersedia
8 byte untuk setiap ISR. Jika sebuah ISR memang hanya pendek saja, tidak
lebih dari 8 byte, maka ISR tersebut bisa langsung ditulis pada memori-program
yang disediakan untuknya. ISR yang lebih panjang dari 8 byte ditulis
ditempat lain, tapi pada memori-program yang ditunjuk oleh vektor interupsi
diisikan instruksi JUMP ke arah ISR bersangkutan
Source |
Vector Address |
IE0 |
0003H |
TF0 |
000BH |
IE1 |
0013H |
TF1 |
001BH |
RI + TI |
0023H |
1.4.4 Tingkatan Perioritas
Masing-masing sumber interupsi bisa ditempatkan pada
dua tingkatan perioritas yang berbeda. Pengaturan tingkatan perioritas
isi dilakukan dengan bit-bit yang ada dalam register IP (Interrupt Priority).
Bit PX0 dan PX1 untuk mengatur tingkatan perioritas interupsi eksternal
INT0 dan INT1, bit PT0 dan PT1 untuk mengatur interupsi timer 0 dan
timer 1, bit PS untuk mengatur interupsi port seri, seperti yang digambarkan
dalam Gambar 2.
Setelah reset, semua bit dalam register IP bernilai ‘0’,
artinya semua sumber interupsi ditempatkan pada tingkatan tanpa perioritas.
Masing-masing sumber interupsi bisa ditempatkan pada tingkatan perioritas
utama dengan cara men-‘satu’-kan bit pengaturnya. Misalnya
interupsi timer 0 bisa ditempatkan pada tingkatan perioritas utama dengan
instruksi SETB PT1.
Sebuah ISR untuk interupsi tanpa perioritas bisa diinterupsi oleh sumber
interupsi yang berada dalam tingkatan perioritas utama. Tapi interupsi
yang berada pada tingkatan perioritas yang sama, tidak dapat saling
meng-interupsi.
Jika 2 permintaan interupsi terjadi pada saat yang bersamaan, sedangkan
kedua interupsi tersebut terletak pada tingkatan perioritas yang berlainan,
maka interupsi yang berada pada tingkatan perioritas utama akan dilayani
terlebih dulu, setelah itu baru melayani interupsi pada tingkatan tanpa
perioritas.
Jika kedua permintaan tersebut bertempat pada tingkatan perioritas yang
sama, perioritas akan ditentukan dengan urutan sebagai berikut : interupsi
eksternal INT0, interupsi timer 0, interupsi ekternal INT1, interupsi
timer 1 dan terakhir adalah interupsi port seri.
Bagan Lengkap Sistem Interupsi MCS51
Meskipun sistem interupsi MCS51 termasuk sederhana dibandingkan dengan
sistem interupsi MC68HC11 buatan Motorola, tapi karena menyangkut 5
sumber interupsi yang masing-masing harus diatur secara tersendiri,
tidak mudah untuk mengingat semua masalah tersebut, terutama pada saat
membuat program sering dirasakan sangat merepotkan membolak-balik buku
untuk mengatur masing-masing sumber interupsi tersebut.
Gambar 2 menggambarkan sistem interupsi MCS51 selangkapnya, berikut
dengan masing-masing bit dalam register-register SFR (Special Function
Register) yang dipakai untuk mengatur masing-masing sumber interupsi.
Saklar yang digambarkan dalam Gambar 2 mewakili bit dalam register yang
harus diatur untuk mengendalikan sumber interupsi, kotak bergambar bendera
kecil merupakan flag (petanda) dalam register yang mencatat adanya permintaan
interupsi dari masing-masing sumber interupsi. Kedudukan saklar dalam
gambar tersebut menggambarkan kedudukan awal setelah MCS51 di-reset.
Gambar ini sangat membantu saat penulisan program menyangkut interupsi
MCS51.
Interrupt Priority Register ( IP )
| MSB |
|
LSB |
X |
X |
X |
PS |
PT1 |
PX1 |
PT0 |
PX0 |
Note:
BIT |
SYMBOL |
FUNCTION |
IP.7 |
- |
- |
IP.6 |
- |
- |
IP.5 |
- |
- |
IP.4 |
PS |
Defines the Serial Port interrupt priority
level. PS=1 programs it to the higher priority level. |
IP.3 |
PT1 |
Defines the Timer 1 interrupt priority level.
PT1=1 programs it to the higher priority level. |
IP.2 |
PX1 |
Defines the External Interrupt 1 priority
level. PX1=1 programs it to the higher priority level. |
IP.1 |
PT0 |
Enables or disables the Timer 0 interrupt
priority level. PT0=1 programs it to the higher priority level. |
IP.0 |
PX0 |
Defines the External Interrupt 0 priority
level. PX0=1 programs it to the higher priority level. |
|