Membatasi Bit Keluaran Port A Berbasis Mikroprosessor Zilog Z80

Ada kalanya kita menginginkan membatasi bit keluaran pada port A, misalkan hanya bit 0 sampai dengan bit 1 saja yang keluar. Apabila bit 0 pada port B ditekan (bernilai 1) maka bit 0 pada port A bernilai 1, dan apabila bit 1 pada port B ditekan (bernilai 1) maka bit 1 pada port A bernilai 1, tetapi apabila bit 2 sampai dan bit 7 pada pada port B ditekan (bernilai 1), maka bit 0 dan bit 1 pada port A akan bernilai 0.

Untuk mendapatkan hasil seperti ini maka buat dulu diagram alur seperti berikut.

Dari diagram alur tersebut apabila kita buat program di mikroprosessor Zilog Z80 maka hasilnya sebagai berikut.

Address Opcode Z80 Mnemonic Ket.
1800 3E 82 LD A,82 Masukan 82 ke reg A
1802 D3 43 OUT (43),A Kirim isi reg A ke addr 43
1804 DB 41 IN A,(41) Masukan isi port B ke reg A
1806 3D DEC A Kurangi 1 reg A
1807 C2 11 18 JPNZ 1811 JIka Flag=1 atau tidak 0 maka lompat ke addr 1811
180A 3E 01 LD A,01 Isi reg A dengan 01
180C D3 40 OUT (40),A Tampilkan data reg A di port A
180E C3 04 18 JP 1804 Lompat ke addr 1804
1811 3D DEC A Kurangi 1 reg A
1812 C2 1C 18 JPNZ 181C JIka Flag=1 atau tidak 0 maka lompat ke addr 181C
1815 3E 02 LD A,02 Isi reg A dengan 02
1817 D3 40 OUT (40),A Tampilkan data reg A di port A
1819 C3 04 18 JP 1804 Lompat ke addr 1804
181C 3E 00 LD A,00 Isi reg A dengan 00
181D D3 40 OUT (40),A Tampilkan data reg A di port A
191F C3 04 18 JP 1804 Lompat ke addr 1804

Maka hasil yang akan diperoleh :

Jika b0 = 1, maka port A = 00000001

Jika b1 = 1, maka port A = 00000010

Jika b0=0 dan b1=0, maka A=00000000

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *