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.

AddressOpcodeZ80 MnemonicKet.
18003E 82LD A,82Masukan 82 ke reg A
1802D3 43OUT (43),AKirim isi reg A ke addr 43
1804DB 41IN A,(41)Masukan isi port B ke reg A
18063DDEC AKurangi 1 reg A
1807C2 11 18JPNZ 1811JIka Flag=1 atau tidak 0 maka lompat ke addr 1811
180A3E 01LD A,01Isi reg A dengan 01
180CD3 40OUT (40),ATampilkan data reg A di port A
180EC3 04 18JP 1804Lompat ke addr 1804
18113DDEC AKurangi 1 reg A
1812C2 1C 18JPNZ 181CJIka Flag=1 atau tidak 0 maka lompat ke addr 181C
18153E 02LD A,02Isi reg A dengan 02
1817D3 40OUT (40),ATampilkan data reg A di port A
1819C3 04 18JP 1804Lompat ke addr 1804
181C3E 00LD A,00Isi reg A dengan 00
181DD3 40OUT (40),ATampilkan data reg A di port A
191FC3 04 18JP 1804Lompat 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

Comments