Eksperimen Laboratorium
Eksperimen 5-1 Kontrol Tampilan LED
Eksperimen ini menunjukkan bahwa port I/O 2 mengontrol paket LED D5 pada MTS-5TDTrainer.
Ketika bit P2 adalah I , LED yang sesuai akan AKTIF. Ketika P2 bit adalah 0, LED yang sesuai
dimatikan. Lihat diagram skema yang ditunjukkan pada Gambar 4-2-2 dan tempatkan SW2-4
pada posisi ON.
Sumber Program:
ORG OOOH
MOV A, #10000000B
NEXT:
MOV P2, A
CALL DELAY
DELAY.
MOV R6, #200
DL1
MOV R7, #249
DJNZ
DJNZ R6, DLI
RET
END
Deskripsi Program :
Awalnya isi akumulator A dimuat dengan 10000000B dan kemudian ditulis ke port 2, oleh
karena itu LED paling kiri dihidupkan: Delay subrutin penundaan digunakan untuk
mempertahankan status keluaran selama 0,1 detik. Kemudian isi A diputar ke kanan satu bit
dan menjadi 01000000B, CPU kembali ke label NEXT, dan mengulangi urutan tindakan o output,
delay, dan right rotate.
Penundaan perangkat lunak biasanya diperlukan untuk menahan data keluaran pada waktu
yang tepat karena CPU berjalan dengan kecepatan tinggi. Penundaan dilakukan dengan
mengeksekusi instruksi yang tidak berpengaruh pada data keluaran.
Perhitungan Penundaan
Keterlambatan subrutin penundaan sama dengan produk dari siklus mesin total dan waktu
siklus mesin sebagai berikut :
Dua register R6 dan R7 digunakan dalam loop bersarang. Ini diperlukan penundaan 0,5 detik,
nilai awal penghitung R9_mus diatur ke lima seperti yang tercantum di bawah ini :
Deskripsi Program:
Pertama, memuat A dengan 000000001B dan memutarnya dengan benar dengan instruksi RR.
Isi A, 10000000B, kemudian ditulis ke P2 untuk menyalakan LED paling kiri selama 0,1 detik.
Tindakan putar dan tulis diulang hingga iS LED paling kanan menyala. Dalam hal ini, isi register A
diputar ke kiri (instruksi RL) satu bit dan kemudian ditulis ke P2.
Program ini memutar instruksi RR dan RL untuk mengubah isi A. Instruksi lompat bersyarat
CJNE digunakan untuk menentukan arah pergeseran. Selain itu, setiap status pada LED harus
mempertahankan setidaknya 1/15 detik untuk perubahan yang terlihat.