Dalam membuat program led berjalan ini sebelumnya dipostingan saya sudah banyak tutorial yang membahas program led berjalan baik itu membuat program led berjalan dengan port paralel, program led berjalan dengan Bascom Avr, maupun program led berjalan dengan Codevisionavr, program led berjalan dengan Assembler MCS-51, tapi khusus kali ini kita akan membahas program led berjalan dengan bahasa mikroprosesor Z80. Berikut programnya :
LD A, 00000001B ; mengisi register A dengan 1
CALL JALAN ; memanggil subfungsi JALAN
HALT ; Berhenti
JALAN : LD B, 8 ; mengisi register B dengan 8
LOOP : OUT (00H), A ; mengeluarkan output register A ke alat (led)
DEC B ; mengurangi regiter B
JRZ, FINISH-$ ; Jika nol maka lompat ke subfungsi FINISH
RLC A ; Geser ke kiri register A
JP LOOP1 ; lompat kembali ke LOOP
FINISH : RET ; return kembali pada program utama
Berikut Tabel Penjelasan Register :
Mneumonic | Register | Flag Zero | Flag Carry |
A | B |
LD A, 00000001B | 00000001 |
|
|
|
LD B, 8 |
| 00001000 |
|
|
OUT (OOH), A | 00000001 |
|
|
|
DEC B |
| 00000111 | 0 |
|
RLC A | 00000010 |
|
| 0 |
OUT (OOH), A | 00000010 |
|
|
|
DEC B |
| 00000110 | 0 |
|
RLC A | 00000100 |
|
| 0 |
OUT (OOH), A | 00000100 |
|
|
|
DEC B |
| 00000101 | 0 |
|
RLC A | 00001000 |
|
| 0 |
OUT (OOH), A | 00001000 |
|
|
|
DEC B |
| 00000100 | 0 |
|
RLC A | 00010000 |
|
| 0 |
OUT (OOH), A | 00010000 |
|
|
|
DEC B |
| 00000011 | 0 |
|
RLC A | 00100000 |
|
| 0 |
OUT (OOH), A | 00100000 |
|
|
|
DEC B |
| 00000010 | 0 |
|
RLC A | 01000000 |
|
| 0 |
OUT (OOH), A | 01000000 |
|
|
|
DEC B |
| 00000001 | 0 |
|
RLC A | 10000000 |
|
| 0 |
OUT (OOH), A | 10000000 |
|
|
|
DEC B |
| 00000000 | 1 |
|
RET |
|
|
|
|
HALT |
|
|
|
|