Advertisement

Sabtu, 13 Oktober 2018

Mengenal Lebih Dalam Port Serial pada Mikrokontroler

Umumnya orang selalu menganggap port seri pada MCS51 adalah UART yang bekerja secara asinkron, jarang yang menyadari port seri tersebut bisa pula bekerja secara sinkron, pada hal sebagai port seri yang bekerja secara sinkron merupakan sarana yang baik sekali untuk menambah input/output bagi mikrokontroler.

Dikenal 2 macam cara transmisi data secara seri. Kedua cara tersebut dibedakan oleh sinyal denyut (clock) yang dipakai untuk men-‘dorong’ data seri, kalau clock dikirim bersama dengan data seri, cara tersebut dikatakan sebagai transmisi data seri secara sinkron.

Sedangkan dalam transmisi data seri secara asinkron, clock tidak dikirim bersama data seri, rangkaian penerima data harus membangkitkan sendiri clock pendorong data seri. Port seri MCS51 bisa dipakai dalam 4 mode kerja yang berbeda. Dari 4 mode tersebut, 1 mode diantaranya bekerja secara sinkron dan 3 lainnya bekerja secara asinkron. Secara ringkas ke-empat mode kerja tersebut bisa dibedakan sebagai berikut:

Mode 0
Mode ini bekerja secara sinkron, data seri dikirim dan diterima melalui kaki P3.0 (RxD), dan kaki P3.1 (TxD) dipakai untuk menyalurkan clock pendorong data seri yang dibangkitkan MCS51. Data dikirim/diterima 8 bit sekali gus, dimulai dari bit yang bobotnya paling kecil (bit 0) dan diakhiri dengan bit yang bobotnya paling besar (bit 7). Kecepatan pengiriman data (baud rate) adalah 1/12 frekuensi osilator kristal.

Mode 1
Mode ini dan mode-mode berikutnya bekerja secara asinkron, data dikirim melalui kaki P3.1 (TxD) dan diterima melalui kaki P3.0 (RxD). Pada Mode 1 data dikirim/diterima 10 bit sekaligus, diawali dengan 1 bit start, disusul dengan 8 bit data yang dimulai dari bit yang bobotnya paling kecil (bit 0), diakhiri dengan 1 bit stop.
Pada MCS51 yang berfungsi sebagai penerima bit stop ditampung pada RB8 dalam register SCON. Kecepatan pengiriman data (baud rate) bisa diatur sesuai dengan keperluan. Mode inilah yang umum dikenal sebagai UART (Universal Asynchronous Receiver/Transmitter).

Mode 2
Data dikirim/diterima 11 bit sekali gus, diawali dengan 1 bit start, disusul 8 bit data yang dimulai dari bit yang bobotnya paling kecil (bit 0), kemudian bit ke 9 yang bisa diatur lebih lanjut, diakhiri dengan 1 bit stop. Pada MCS51 yang berfungsi sebagai pengirim, bit 9 tersebut berasal dari bit TB8 dalam register SCON.

Pada MCS52 yang berfungsi sebagai penerima, bit 9 ditampung pada bit RB8 dalam register SCON, sedangkan bit stop diabaikan tidak ditampung. Kecepatan pengiriman data (baud rate) bisa dipilih antara 1/32 atau 1/64 frekuensi osilator kristal. Mode 3 Mode ini sama dengan Mode 2, hanya saja kecepatan pengiriman data (baud rate) bisa diatur sesuai dengan keperluan, seperti halnya Mode 1.

Pada mode asinkron (Mode 1, Mode 2 dan Mode 3), port seri MCS51 bekerja secara full duplex, artinya pada saat yang sama port seri ini bisa mengirim data sekaligus menerima data. Register SBUF merupakan register penghubung port seri. Dalam ke-empat mode di atas, semua instruksi yang mengakibatkan perubahan isi SBUF akan mengakibatkan port seri mengirimkan data keluar dari MCS51.

Agar port seri bisa menerima data, bit REN dalam register SCON harus bernilai ‘1’. Pada mode 0, proses penerimaan data dimulai dengan instruksi CLR RI, sedangkan dalam mode lainnya proses penerimaan data diawali oleh bit start yang bernilai ‘0’. Data yang diterima port seri dari luar MCS51, diambil dengan instruksi MOV A,SBUF. Mengambil data dari SBUF dan menyimpan data ke SBUF sesungguhnya bekerja pada dua register yang berlainan, meskipun nama registernya sama-sama SBUF.

Jumat, 12 Oktober 2018

Mengenal Lebih Dalam Timer Counter pada Mikrokontroler

Timer dan Counter merupakan sarana input yang kurang dapat perhatian pemakai mikrokontroler, dengan sarana input ini mikrokontroler dengan mudah bisa dipakai untuk mengukur lebar pulsa, membangkitkan pulsa dengan lebar yang pasti, dipakai dalam pengendalian tegangan secara PWM (Pulse Width Modulation) dan sangat diperlukan untuk aplikasi remote control dengan infra merah.

Pada dasarnya sarana input yang satu ini merupakan seperangkat pencacah biner (binary counter) yang terhubung langsung ke saluran-data mikrokontroler, sehingga mikrokontroler bisa membaca kedudukan pancacah, bila diperlukan mikrokontroler dapat pula merubah kedudukan pencacah tersebut. MCS-51 mempunyai dua buah register timer/ counter 16 bit, yaitu Timer 0 dan Timer 1.

Fasilitas Timer/Counter
Keluarga mikrokontroler MCS51, misalnya AT89C51 dan AT89Cx051, dilengkapi dengan dua perangkat Timer/Counter, masing-masing dinamakan sebagai Timer 0 dan Timer. Sedangkan untuk jenis yang lebih besar, misalnya AT89C52, mempunyai tambahan satu perangkat Timer/Counter lagi yang dinamakan sebagai Timer 2. Pencacah biner untuk Timer 0 dibentuk dengan register TL0 (Timer 0 Low Byte, memori-data internal nomor $6A) dan register TH0 (Timer 0 High Byte, memori data internal nomor $6C).

Pencacah biner untuk Timer 1 dibentuk dengan register TL1 (Timer 1 Low Byte, memori-data internal nomor $6B) dan register TH1 (Timer 1 High Byte, memori-data internal nomor $6D). Pencacah biner pembentuk Timer/Counter MCS51 merupakan pencacah biner menaik (count up binary counter) yang mencacah dari $0000 sampai $FFFF, saat kedudukan pencacah berubah dari $FFFF kembali ke $0000 akan timbul sinyal limpahan.

Untuk mengatur kerja Timer/Counter dipakai 2 register tambahan yang dipakai bersama oleh Timer 0 dan Timer 1. Register tambahan tersebut adalah register TCON (Timer Control Register, memori-data internal nomor $88, bisa dialamat secara bit) dan register TMOD (Timer Mode Register, memori-data internal nomor $89). Pencacah biner Timer 0 dan 1 TL0, TH0, TL1 dan TH1 merupakan SFR (Special Function Register) yang dipakai untuk membentuk pencacah biner perangkat Timer 0 dan Timer 1.

Kapasitas keempat register tersebut masing-masing 8 bit, bisa disusun menjadi 4 macam Mode pencacah biner. Pada Mode 0, Mode 1 dan Mode 2 Timer 0 dan Timer 1 masing-masing bekerja sendiri, artinya bisa dibuat Timer 0 bekerja pada Mode 1 dan Timer 1 bekerja pada Mode 2, atau kombinasi mode lainnya sesuai dengan keperluan. Pada Mode 3 TL0, TH0, TL1 dan TH1 dipakai bersama-sama untuk menyusun system timer yang tidak bisa di-kombinasi lain.

Kamis, 11 Oktober 2018

Mengenal Lebih Dalam Interupsi pada Mikrokontroler

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.

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.

Sumber interupsi MCS51
AT89S51 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.

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 disatu- 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.

Rabu, 10 Oktober 2018

Percobaan Saklar Push Button Mikrokontroler AT89S51/52

Tujuan:
1. Peserta memahami rangkaian mikrokontroller dengan interface ke saklar
2. Peserta dapat memahami program assembly untuk mengambil data saklar dan mengeluarkan data ke LED.
3. Peserta memahami beberapa instruksi assembly dasar, MOV, Setb, Clr, RL dan RR.

Pada gambar tersebut tampak rangkaian push button, bila saklar ditekan maka
port sesuai dengan bit tersebut akan mendapat logika low ‘0’ dan sebaliknya bila saklar tidak ditekan maka port tersebut akan mendapat logika high ‘1’.

Percobaan 1 Ambil Data Saklar
1. Pada percobaan ini, LED akan nyala bila saklar ditekan sesuai dengan bit tersebut.
2. Ketik program berikut ini:

ORG 0H
MAIN : MOV P3,#0FFH ; MEMBERIKAN LOGIKA HIGH KE PORT3
MOV A,P3 ; MEMBACA PORT 3, APAKAH ADA PENEKANAN TOMBOL
CALL DELAY ; MEMBERI WAKTU DELAY UNTUK MENGURANGI EFEK BOUNCING
MOV P1,A ; MENGELUARKAN KONDISI PEMBACAAN KE PORT 1
SJMP MAIN ; LOMPAT KE AWAL PROGRAM
DELAY : MOV R4,#0 ; ISI R4 DENGAN 0H
DELAY1 : MOV R5,#1H ; ISI R5 DENGAN 1H
DJNZ R5,$ ; TUNGGU R5 SAMPAI 0
DJNZ R4,DELAY1 ; KURANGI R4 DENGAN 1 BILA TIDAK SAMA DENGAN 0 LOMPAT KE
; delay1
RET
END

Percobaan 2 Putar Kanan-Kiri
Pada percobaan ini, LED akan berjalan kekanan atau kekiri mengikuti penekanan tombol P3.2 atau P3.3. Untuk melakukan percobaan ini lakukan beberapa langkah sebagai berikut:

Ketik program berikut ini:
LED_GESER BIT P3.2
LED_BAR BIT P3.3
ORG 0H
LED1 : JB LED_GESER,LED2 ; CEK PENEKANAN TOMBOL1
CALL DELAY ; KURANGI BOUNCING
MOV A,#11111110B ; ISI ACCUMULATOR DENGAN 11111110B
MOV R5,#7H ; ISI R5 DENGAN 8
GSR : MOV P1,A ; KELUARKAN ISI ACCUMULATOR KE PORT1
CALL LDELAY ; PANGGIL FUNGSI DELAY
RL A ; GESER ACCUMULATOR KE KIRI
DJNZ R5,GSR ; ULANGI PROSES DIATAS SAMPAI SEBANYAK R5
MOV R5,#8H ; ISI R5 DENGAN 8
GSR2 : MOV P1,A ; KELUARKAN ACC KE PORT1
CALL LDELAY
RR A ; GESER KANAN DATA DALAM ACC
DJNZ R5,GSR2 ; ULANGI PROSES SEBANYAK R5
LED2 : JB LED_BAR,LED1 ; CEK PENEKANAN TOMBOL
CALL DELAY
MOV A,#11111111B ; ISI ACC DENGAN 111111111B
MOV R5,#8H
BAR : CLR C ; CLEAR BIT CARRY
RLC A ; GESER KIRI ACC DENGAN MELIBATKAN CARRY
MOV P1,A ; KELUARKAN ISI ACC KE PORT1
CALL LDELAY
DJNZ R5,BAR ; ULANGI PROSES SEBANYAK R5
MOV R5,#8H ; ISI R5 DENGAN 8
BAR2 : SETB C ; SET BIT CARRY
RRC A ; GESER KANAN ACC DENGAN MELIBATKAN BIT CARRY
MOV P1,A
CALL LDELAY
DJNZ R5,BAR2 ; ULANGI PROSES SEBANYAK R5
SJMP LED1 ; KEMBALI KE FUNGSI LED1, CEK TOMBOL
DELAY : MOV R2,#0 ; ISI R4 DENGAN 0H
DELAY1: MOV R3,#1H ; ISI R5 DENGAN 1H
DJNZ R3,$ ; TUNGGU R5 SAMPAI 0
DJNZ R2,DELAY1 ; KURANGI R4 DENGAN 1 BILA TIDAK SAMA DENGAN 0
RET ; LOMPAT KE DELAY1
LDELAY : MOV R6,#0H ; ISI R6 DENGAN 0
LDELAY1 : CALL DELAY ; PANGGIL FUNGSI DELAY DI ATAS
DJNZ R6,LDELAY1 ; ULANGI PROSES SEBANYAK R6
RET ; KEMBALI KE PROGRAM PEMANGGILNYA
END

Selasa, 09 Oktober 2018

Percobaan Display LED di Mikrokontroler AT89S51/52


Tujuan:
1. Dapat memahami rangkaian mikrokontroller untuk menghidupkan dan mematikan LED.
2. Dapat memahami program assembly untuk menghidupkan dan mematikan LED.
3. Dapat memahami beberapa instruksi assembly dasar, MOV, Setb, Clr, RL. RR, RLC dan
RRC.
4. Dapat memahami pembuatan instruksi waktu tunda.

Percobaan 1.1. Instruksi RL/ RR ( Rotate Left dan Right )
Pada percobaan ini, sebuah LED akan berjalan dari kiri ke kanan dan sebaliknya, program ini memanfaatkan instruksi RL dan RR.
Ketik program berikut ini:
ORG 0H
MAIN : MOV A,#11111110B
MOV R5,#7H
CF: MOV P1,A
CALL DELAY
RL A
DJNZ R5,CF
MOV A,#01111111B
MOV R5,#7H
CF2 : MOV P1,A
CALL DELAY
RR A
DJNZ R5,CF2
SJMP MAIN
DELAY : MOV R2,#0H
DELAY1 : MOV R3,#90H
DELAY2 : MOV R4,#1
DJNZ R4,$
DJNZ R3,DELAY2
DJNZ R2,DELAY1
RET
END

1. Simpanlah program yang anda ketik dan beri nama : Led01.H51
Pada Command Prompt lakukan kompilasi program dari *.H51 ke *.hex.
2. Lakukan pemrograman mikrokontroller dengan menggunakan Program ISP Software (
Lihat Petunjuk Penggunaan)
3. Lakukan pengamatan pada LED
4. Lakukan perubahan pada program tersebut untuk menjalankan dua buah LED kekiri dan
kekanan, tiga buah LED kekiri dan kekanan , dan seterusnya.

Percobaan 1.2. Instruksi RLC/ RRC ( Rotate Left dan Right )

Pada percobaan ini, sebuah LED akan berjalan dari kiri ke kanan dan sebaliknya dengan bentuk Bar, program ini memanfaatkan instruksi RLC dan RRC. Ketik program berikut ini:
ORG 0H
MAIN : MOV A,#11111111B
MOV R5,#8H
CF : CLR C
RLC A
MOV P1,A
CALL DELAY
DJNZ R5,CF
MOV R5,#8H
CF2 : SETB C
RRC A
MOV P1,A
CALL DELAY
DJNZ R5,CF2
SJMP MAIN
DELAY : MOV R2,#0H
DELAY1 : MOV R3,#0H
DELAY2 : DJNZ R3,DELAY2
DJNZ R2,DELAY1
RET
END

1. Simpanlah program yang anda ketik dan beri nama : Led02.H51.
Pada Command Prompt lakukan kompilasi program dari *.H51 ke *.hex.
2. Lakukan pemrograman mikrokontroller dengan menggunakan Program ISP Software (Lihat Petunjuk Penggunaan).
3. Lakukan pengamatan pada LED.
4. Lakukan perubahan pada program tersebut untuk menjalankan dua buah LED kekiri dan kekanan, tiga buah LED kekiri dan kekanan , dan seterusnya.

Senin, 08 Oktober 2018

Pemrograman Mikrokontroler AT89S51


Pemrograman pada AT89S51 dilakukan dengan membuat file kode sumber (source code) yang ditulis dalam bahasa assembly (dalam pelatihan ini berakhiran *.h51) dengan langkah-langkah sebagai berikut:
1. Ketik Program dengan bantuan NotePad dan Save as dengan nama yang diakhiri dengan ekstensi .h51 (misal: mikro.h51).



2. Compile sumber tersebut dengan bantuan Command Prompt sehingga menjadi file *.obj.
Misalkan sumber disimpan di C:\SDCC, maka untuk mengcompile caranya adalah: Ketikkan di Command Prompt: C:\SDCC>asm51 mikro.h51.


3. Setelah tidak ada error kemudian file object diubah ke bentuk file intel hex dengan command prompt juga C:\SDCC>oh mikro.obj.


4. Kemudian File Hex ini siap dituliskan ke PEROM dalam mikrokontroler menggunakan program uploader (AEC_ISP) dengan urutan sebagai berikut:


 1. Setting Uploader dengan aturan sebagai berikut pada gambar dan kemudian di save. Proses ini hanya dilakukan sekali di awal penggunaan selama tidak ada pengubahan jenis mikrokontroler. 
 2. Setelah disetting, kembali ke menu awal dan ketik “A” atau arahkan pointer ke bagian A, kemudian ketik nama file berekstensi .HEX. 
 3. Kemudian Ketik E atau arahkan pointer ke bagian E untuk mengupload program ke mikrokontroler. Setelah ada pesan dalam bentuk persen hingga 100% maka pengisian ke Mikrokontroler berhasil.
 4. Untuk melihat hasilnya atau proses RUNNING maka Ketik I atau arahkan pointer ke bagian I, dengan Reset dalam keadaan Low. 

Minggu, 07 Oktober 2018

Instruksi Pemanggilan Sub-rutin pada Mikrokontroller

Instruksi sub-rutin yang dimaksudkan adalah proses pemanggilan sduatu fungsi dalamprogram. Beberapa program memiliki suatu fungsi yang sama, oleh karena itu demi mengefisiensi memori program digunakan suatu fungsi yang digunakan bersama. Dalah satu contoh adalah fungsi delay.

Instruksi pemanggilan ini ada tiga jenis:
> ACALL dengan pemanggilan sejauh maximum 2 Kb
> LCALL dengan pemanggilan maximum sejauh 64 Kb
> CALL bisa digunakan mewakili ACALL atau LCALL

Instruksi Lompatan Bersyarat
Satu hal yang perlu diketahui untuk lompatan bersyarat, lompatan bersyarat hanya bisa digunakan untuk melompat maximum sejauh 256 Byte. Di luar jarak tersebut haruslah dibuat program penghubung. Di antaranya lompatan bersyarat adalah:
Instruksi JZ / JNZ
Instruksi JZ (Jump if Zero) dan instruksi JNZ (Jump if not Zero) adalah instruksi JUMPbersyarat yang memantau nilai Akumulator A.
Instruksi JC / JNC
Instruksi JC (Jump on Carry) dan instruksi JNC (Jump on no Carry) adalah instruksi jump bersyarat yang memantau nilai bit Carry di dalam Program Status Word (PSW). Bit Carry merupakan bit yang banyak sekali dipakai untuk keperluan operasi bit, untuk menghemat pemakaian memori-program disediakan 2 instruksi yang khusus untuk memeriksa keadaan bit Carry, yakni JC dan JNC.
Instruksi JB / JNB / JBC
Instruksi JB (Jump on Bit Set), instruksi JNB (Jump on not Bit Set) dan instruksi JBC (Jump on Bit Set Then Clear Bit) merupakan instruksi Jump bersyarat yang memantau nilai-nilai bit tertentu. Bit-bit tertentu bisa merupakan bit-bit dalam register status maupun kaki input mikrokontroler MCS51.

Contoh pemakaian instruksi JB dan JNB sebagai berikut :
JB P1.1,$
JNB P1.1,$

Instruksi-instruksi di atas memantau kedaan kaki IC MCS51 Port 1 bit 1. Instruksi pertama memantau P1.1, jika P1.1 bernilai ‘1’ maka MCS51 akan mengulang instruksi ini, (tanda $ mempunyai arti jika syarat terpenuhi kerjakan lagi instruksi bersangkutan). Instruksi berikutnya melakukan hal sebaliknya, yakni selama P1.1 bernilai ‘0’ maka MCS51 akan tertahan pada instruksi ini.

Instruksi Proses dan Test
Instruksi-instruksi Jump bersyarat yang dibahas di atas, memantau kondisi yang sudah terjadi yang dicatat MCS51. Ada dua instruksi yang melakukan dulu suatu proses baru kemudian memantau hasil proses untuk menentukan apakah harus Jump. Kedua instruksi yang dimaksud adalah instruksi DJNZ dan instruksi CJNE.