SISTEM MIKROPROSESOR
NAMA :..............................................................
KELAS :.............................................................
I. Tujuan Praktikum :
Setelah siswa melakukan praktikum diharapkan dapat :
1. Menyebutkan fungsi pelayanan tombol MPF-1 Z-80.
2. Menyebutkan fungsi tombol Hexa dan register MPF-1 Z-80.
Kelompok register utama bersifat identik dengan kelompok register alternatif, akan
tetapi setiap saat yang boleh digunakan hanya salah satu kelompok saja dengan kata
lain bahwa kelompok register itu tidak boleh digunakan bersama-sama. Kelompok
register utama (main register set), terdiri dari :
- Accumullator 8 bit disebut juga register A.
- Register flag 8 bit disebut juga register F.
- Register untuk penggunaan umum atau general purpose register, yang terdiri dari :
~ Register B (8 bit) dan register C (8 bit) yang dapat berpasangan menjadi register
BC (16 bit).
~ Register D (8 bit) dan register E (8 bit) yang dapat berpasangan menjadi register
DE (16 bit).
~ Register H (8 bit) dan register L (8 bit) yang dapat berpasangan menjadi register
HL (16 bit).
Register B, C, D, E, H dan L dapat digunakan secara umum, masing-masing berupa
register 8 bit yang bebas dioperasikan sendiri-sendiri. Isi register itu dapat
dioperasikan aritmatik atau logika terhadap register A. Di samping itu register-register
tersebut dapat dioperasikan berpasangan seperti di atas dan tidak boleh membentuk
pasangan lain. Selain register tersebut di atas ada beberapa register 8 bit untuk
penggunaan khusus, yaitu :
- Register I (Interrupt), register khusus untuk melayani keperluan operasi interupsi.
- Register R (memory refresh), register khusus untuk melayani keperluan operasi
dynamic memory refresh.
Selain register 8 bit ada 4 buah register yang berbentuk register 16 bit, yaitu :
- Register IX atau Index register IX.
- Register IY atau Index register IY.
- Register SP atau Stack pointer.
- Register PC atau Program counter.
S Z - H - P/O N
(sign) (zero) (blank) (halfcarry) (parity/overflow) (non-
carry)
3. Register Umum
Sifat dari register umum adalah sebagai berikut :
- Sekedar untuk menyimpan data 1 byte.
- Isinya dapat dikutipkan dari register yang satu ke register yang lainnya.
- Isinya dapat dioperasikan aritmatik atau logika terhadap isi register A (terha-
dap isi Akumulator)
- Dapat dioperasikan dalam register berpasangan yang mempunyai kemampuan
16 bit.
- Menyimpan data 16 bit.
- Sebagai pencatat address.
- Register HL dapat berfungsi sebagai akumulator untuk operasi aritmatik 16
bit.
*****
SMK NEGERI 53 JAKARTA
Jobsheet 2 Praktikum Deskripsi Fungsi Semester 3
Mikroprosessor. Tombol-tombol pada MPF-1 2 x 60”)
I. Tujuan Praktikum :
Setelah siswa melakukan praktikum diharapkan dapat :
1. Menyebutkan notasi pada setiap tombol MPF-1 Z-80.
2. Menyebutkan fungsi masing-masing tombol beserta contoh pemakaiannya.
SMK NEGERI 53 JAKARTA
Setelah selesai mengetikan program pada MPF-1 lakukan perintah sebagai berikut
berturut-turut dan periksa isi register :
Ulangi program di atas dengan memasukkan data sebagai berikut dan mulai dari
address 1800H:
Register :
A = 20H B = 85H C = 31H D = 51H
E = 34H H = 31H L = 65H
Susunan programnya !
Program II :
Address Op-Code Mnemonic Keterangan
1800 3E LD A, 05H Isikan 05H ke reg. A
1801 05
1802 47 LD B, A Kutip isi reg. A ke reg. B
1803 0E LD C, FFH Isikan FFH ke reg. C
1804 FF
1805 59 LD E, C Kutip isi reg C ke reg. E
1806 63 LD H, E Kutip isi reg E ke reg. H
1807 FF RST 38H Kembali ke display.
Program III :
Address Op-Code Mnemonic Keterangan
1800 06 LD B, 19H Isikan 19H ke reg. B
1801 19
1802 CE LD C, 00H Isikan 00H ke reg. C
1803 00
1804 50 LD D, B Kutip isi reg B ke reg. D
1805 0A LD A, (BC) Kutip isi memori yang
ditunjukkan oleh address
pada reg. BC ke dalam
reg. A.
1806 21 LD HL, 1910H Isikan address memori
1910H pada reg. HL.
1807 10
1808 19
1809 5E LD E, (HL) Kutip isi memori yang
ditunjukkan oleh address
pada reg. HL ke dalam
reg. E.
180A DD LD IX, 1915H Isikan address memori
1915H pada reg. IX.
180B 21
180C 15
180D 19
180E DD LD B, (IX + 0) Kutip isi memori yang
ditunjukkan oleh address
pada reg. (IX + 0) =
1915H ke reg. B.
180F 46
1810 00
1811 DD LD C, (IX + 5) Kutip isi memori yang
ditunjukkan oleh address
pada reg. (IX + 5) =
191AH ke reg. C.
1812 4E
1813 05
1814 FF RST 38 Kembali ke display.
1900 0A
1910 12
1915 45
191A 65
Ulangi Program III tersebut dengan mengganti data-data yang lain sebagai berikut :
Register :
B = 18H C = 50H HL = 1900H IX = 1905H
Address :
1850H = 05H 1900H = 50H 1905H = AEH 190A = 03H
Pada modul pratikum sekarang rancang program pada MPF-1 dengan ketentuan
sebagai berikut :
Data-data address :
1900H = 12H 1905H = 05H 1910H = 0BH
1915H = 02H 1920H = ABH
Setelah program dijalankan maka akan didapat hasil sebagai berikut :
Register : IX = 1900H BC = 1915H HL = 1920H
D = 12H E = 05H A = 0BH
IY = 1930H
Address : 1925H = 02H 1930H = ABH
SMK NEGERI 53 JAKARTA
A. Operasi Aritmatika
I. Tujuan Praktikum : Setelah siswa melakukan praktikum diharapkan dapat :
1. Menjalankan program operasi aritmatika serta mengecek isi setiap register yang
digunakan.
2. Menjalankan program operasi logika serta mengecek isi setiap register yang
digunakan.
Mnemonic dan arti simbolnya pada operasi 16 bit adalah sebagai berikut :
Mnemonic Arti simbol / Simbol operasi
ADD A, S HL HL + ss
ADC A, S HL HL + ss + cy
SBC A, S HL HL - ss – cy
ADD IX, pp IX IX + pp
ADD IY, rr IY IY + rr
INC tt tt tt + 1
DEC tt tt tt - 1
Keterangan :
ss : untuk BC, DE, SP, HL
pp : untuk BC, DE, SP, HL
rr : untuk BC, DE, SP, HL
tt : untuk semua register 16 bit
B. Operasi Logika
Operasi logika itu terdiri dari AND, OR, NOT, EXOR. Adapun tabel kebenaran dari
operasi logika, sbb :
AND OR EXOR
P Q (P x Q) P Q (P + Q) P Q (P Q)
0 0 0 0 0 0 0 0 0
0 1 0 0 1 1 0 1 1
1 0 0 1 0 1 1 0 1
1 1 1 1 1 1 1 1 0
Contoh :
P = 10110010B = B2H P = 10110010B = B2H P = 10110010B = B2H
Q = 01101010B = 6AH Q = 01101010B = 6AH Q = 01101010B = 6AH
------------------------- AND ------------------------ OR -----------------------EXOR
00100010B = 22H 11111010B = FAH 11011000B = D8H
C. Register Flag
Register flag merupakan register pembantu terhadap operasi aritmatik dan operasi
logika. Bentuk bentuannya berupa menyimpan tanda keadaan bilamana terjadi carry, non-
carry, borrow, zero, parity / overflow. Letak difinisi simpan keadaan flag pada register F
dapat dilukiskan sebagai berikut :
Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
S Z - H - P/V N C
Keterangan : S : sign P/V : parity / overflow
Z : zero N : non-carry
H : halfcarry C : carry
Dengan adanya operasi aritmatik atau logika maka kejadian dari register F dapat dibuat tabel
sebagai berikut :
Bit Nama Flag Keterangan
0 C 0 : operasi aritmatik/logika tidak terjadi carry
1 : operasi aritmatik/logika terjadi carry
1 N 0 : operasi yang telah terjadi bukan substract
1 : operasi yang telah terjadi adalah substract
2 P/V 0 : parity even (genap) atau tidak terjadi overflow
1 : parity odd (ganjil) atau terjadi overflow
3 - Tidak digunakan.
4 H 0 : adisi / substract non-carry di bit 4 reg. A
1 : adisi / substract ada carry di bit 4 reg. A
5 - Tidak digunakan.
6 Z 0 : hasil operasi aritmatik / logik tidak nol
1 : hasil operasi aritmatik / logik = nol
7 S 0 : hasil operasi aritmatik / logik adalah positif
1 : hasil operasi aritmatik / logik adalah negatif
Program I :
Address Op-Code Mnemonic Keterangan
1800 3A 20 18 LD A(1820H) A (1820H)
1803 06 09 LD B, 09H B 09H
1805 0E 0A LD C, 0AH C 0AH
1807 16 03 LD D, 03H D 03H
1809 1E 04 LD E, 04H E 04H
180B 80 ADD A, B A A+B
180C 3E 00 LD A, 00H
A 00H
180E CE 00 ADC A, 00H
A A + 00H + cy
1810 A0 AND A, B
1811 3A 21 18 LD A, (1821) A A AND B
1814 B0 OR A, B A (1821)
1815 AF XOR A A A OR B
1816 1C INC E A A XOR A
1817 15 DEC D EE+1
1818 B8 CP B DD–1
1819 D6 02 SUB A, 02H A B, A TETAP
181B DE 01 SBC A, 01H A A – 02H
181D ED 44 NEG A A – 01 – cy
181F 2F CPL A negatif A
1820 FF RST 38H A komplemen A
1821 0A DEFB 0AH KEMBALI KE DISPLAY
Ketikkanlah program tersebut pada MPF-1 dan cek isi dari setiap register yang digunakan
dan terangkan mengenai masing-masing register flagnya yaitu dengan melihat isi dari
register flag setelah terjadi operasi aritmatik / logik jika setelah perintah STEP.
Ketikkan program tersebut pada MPF-1 kemudian cek masing-masing register yang
digunakan dan register F setelah terjadi operasi aritmatik. Cek juga isi dari register HL dan
isi dari address 1810H (bandingkan isinya).
Ubah data pada register E dengan BFH dan isi register D dengan 62H seperti program di
atas.
Program III :
Address Op-Code Mnemonic Keterangan
1800 1E 0A LD E, 0AH E 0AH
1802 16 06 LD D, 06H D 06H
1804 AF XOR A A A XOR A
1805 7B LD A, E A E
1806 9A SBC A, D A A – D – cy
1807 6F LD L, A LA
1808 26 00 LD H, 00H
H 00H
180A 22 0E 18 LD (180EH), HL
(180EH) HL
180D FF RST 38H
KEMBALIKE DISPLAY
Ketikkan program tersebut pada MPF-1 kemudian cek masing-masing register yang
digunakan dan register flagnya. Cek juga isi dari register HL dan isi dari address 180EH.
Ubah isi register E = 08H dan register D = 03H.
Program IV :
Tugas : Buatlah program penjumlahan 2 byte dengan ketentuan sebagai berikut :
- data 1 berada pada address 1850H yaitu 1324H
- data 2 berada pada address 1853H yaitu 2415H
Setelah mencoba dengan data tersebut maka ubah datanya dengan yang lainnya !
SMK NEGERI 53 JAKARTA
Jadi, instruksi PUSH dan POP itu harus digunakan berpasangan. Agar lebih jelas
perhatikan program di bawah ini.
LD SP, 1980H : register SP mencacat address 1980, yaitu address awal stack pointer.
LD DE, 1850H : register DE diisi angka 1850H
LD BC, AAFEH : register BC diisi angka AAFEH
PUSH DE : simpan isi register DE ke stack
PUSH BC : simpan isi register BC ke stack
POP HL : isi stack terakhir dimasukkan ke register HL
POP IX : isi stack terakhir dimasukkan ke register IX
Keterangan program :
i). Sebelum dilakukan instruksi PSH dan POP isi register SP adalah 1980H.
ii). Setelah PUSH DE berlangsung, isi register D tersimpan di memori dengan address
197FH dan isi register E tersimpan di memori dengan address 197EH. Register SP
menggeser isi catatannya sebanyak 2 kali ke bawah sehingga isi register SP menjadi
197EH.
Jadi hasil dari PUSH DE adalah :
- memori yang address-nya 197FH berisi 18H
- memori yang address-nya 197EH berisi 50H
- register SP menjadi berisi 197EH
iii). Setelah PUSH BC berlangsung, isi register B tersimpan di memori dengan address
197DH dan isi register C tersimpan di memori dengan address 197CH. Register SP
menggeser isi catatannya sebanyak 2 kali ke bawah sehingga isi register SP menjadi
197CH.
Jadi hasil dari PUSH BC adalah :
- memori yang address-nya 197DH berisi AAH
- memori yang address-nya 197CH berisi FEH
- register SP menjadi berisi 197CH
iv). Setelah POP HL berlangsung, maka isi register L menjadi FEH dan isi register H
menjadi AAH. Register SP menggeser isi catatannya sebanyak 2 kali ke atas,
sehingga isi register SP menjadi 197FH. Isi memori yang address-nya 197CH dan
197DH sudah berubah dan bukan FEH maupun AAH.
- register HL menjadi berisi AAFEH
- register SP menjadi berisi 197EH
- isi address memori 197FH dan 197EH buan lagi 18H dan 50H
- isi address memori 197DH dan 197CH buan lagi AAH dan FEH
v). Setelah POP IX berlangsung, maka isi register IX menjadi berisi 1850H dan register
SP menggeser catatan kembali berisi 1980H.
Pada MPF Z-80 register SP tidak harus disetm karena pada MPF Z-80 register SP
sudah diset oleh program ROM yang ada pada address 1F9FH.
Setelah mengetikkan program pada MPF-1 maka periksa isi dari register-register dan
address-address yang terlibat pada program di atas dengan instruksi STEP.
Ubah isi dari register SP = 1820H, BC = 1900H, IX = BCDAH dan periksa register-
register maupun address yang bersangutan.
Program II :
Program mengalikan semua data pada address 1900H sampai dengan 1905H
dengan angka 8.
Address Op-Code Label Mnemonic Keterangan
ORG. 1800H
1800 06 05 LD B, 05H B 05H
1802 21 00 19 LD HL, 1900H HL 1900H
1805 C5 Loop PUSH BC SP BC
1806 7E LD A, (HL) A (HL)
1807 06 03 LD B, 03H B 03H
1809 87 Perkalian ADD A, A AA+A
180A 10 FD DJNZ PERKALIAN
180C 77 LD (HL), A (HL) A
180D 23 INC HL HL HL + 1
180E C1 POP BC BC SP
180F 10 F4 DJNZ LOOP
Kembali ke display
1811 FF RST 38H
ORG. 1900H
1900 01 DEFB 01H
1901 02 DEFB 02H
1902 03 DEFB 03H
1903 04 DEFB 04H
1904 05 DEFB 05H
Setelah mengetikkan program pada MPF-1 maka periksa isi masing-masing register
dan address-address yang terlibat pada program di atas dengan instruksi STEP.
Setelah itu ubah data pada address 1900H sampai dengan 1904H dan jalankan
program tersebut dan periksa isi masing-maisng register dan addres yang terlibat.
Program III :
Address Op-Code Label Mnemonic Keterangan
ORG. 1800H
1800 01 20 18 LD BC, 1820H BC – 1820H
1803 11 26 18 LD DE, 1826H DE – 1826H
1806 DD 21 2C 18 LD IX, 182CH IX – 182CH
180A C5 Loop PUSH BC P – BC
180B DD E5 PUSH IX SP – IX
180D D5 PUSH DE SP – DE
180E 06 64 LD B, 64H B – 64H
1820 DD E1 POP IX IX – SP
1822 CD 24 06 Tamp CALL SCAN 1 Menampilkan
1825 10 FB DJNZ TAMP
1827 C1 POP BC BC – SP
1828 D1 POP DE DE – SP
1829 C3 0A 18 JP Loop
ORG. 1830H
1830 30 02 02 UPF – 1
1833 0F 1F 85
1836 3F 6F 85 FISIKA
1839 AE 89 0F
183C 00 00 A7 ITB
183F 87 89 00
SMK NEGERI 53 JAKARTA
Setelah mengetikkan program pada MPF-1 maka perhatikan hasil pada tampilan di
display, dan ubah beberapa kali data yang ada pada address 1850 sampai dengan address
1854.
Program II :
Address Op-Code Label Mnemonic Keterangan
ORG. 1800H
1800 0E 08 LD C, 08H C 08H
1802 DD 21 29 18 LD IX, 1820H IX 1820H
1806 11 06 00 LD DE, 0006H DE 0006H
1809 D6 64 LOOP LD B, 64H B 64H
180B CD 24 06 TAMP CALL SCAN1 ROUT. SCAN1
180E 10 FB DJNZ TAMP
1810 DD 19 ADD IX, DE IX IX + DE
1812 0D DEC C CC–1
1813 20 F4 JRNZ LOOP
1815 C3 09 18 JP LOOP
ORG. 1820
1820 C7 AE 8F 2B 8F AE DEFW SEMEST
1826 9B 97 3F 8F 03 A7 DEFW BREAK2
1832 30 02 02 0F 1F B5 DEFW UPF-1
1838 00 40 A7 3F 85 00 DEFW LAB.
183E 00 3F 97 85 8F 00 DEFW ELKA
1844 3F A7 05 AE 05 0F DEFW FISIA
184A 00 00 A7 67 05 00 DEFW ITB
1850 00 9B BE BE 03 00 DEFW 1992
Setelah mengetikan program pada MPF-1 maka perhatikan tampilan pada display dan
bandingkan dengan program pada instruksi PUSH / POP program sebelumnya.
Program III :
Address Op-Code Label Mnemonic Keterangan
ORG. 1800H
1800 DE 53 LD C, 53H C 53H
1802 DD 21 20 18 LD IX, 1820H IX 1820H
1806 06 64 LOOP LD B, 64H
1808 CD 24 06 TAMP. CALL SCAN1 ROUT.SCAN1
180B 10 FB DJNZ TAMP
180D DD 23 INC IX IX IX + 1
180F 0D DEC C CC–1
1810 20 F4 JRNZ LOOP
1812 C3 00 18 JP 1800H
ORG. 1820H
1820 00 03 8F 87 AE DEFW SEMEST ER
1825 8F 2B 8F AE
1829 00 9B 02 97 DEFW BREAK- 2
182D 3F 8F 03 A7
1831 00 03 A3 AE 8F AE DEFW MIKROP ROSESOR
1837 A3 03 1F A3 03 97
183D 89 2B 00
1840 37 8F 85 A3 00 DEFW OLEH
1844 2B B5 89 03 A3 87 DEFW LABOR ATORIUM
184A 3F 85 A3 A7 3F 85
1850 00 3F 97 89 23 A3 DEFW ELEKTR ONIKA
1856 03 87 97 8F 85 8F
185C 00 3F 97 89 AE 89 0F DEFW FISIKA
1863 00 A7 87 89 00 DEFW ITB
1868 9B BE BE 30 DEFW 1992
Setelah mengetikan program ini maka periksalah tampilan pada display. Setelah
mengerti logika program maka ubah sedikit program di atas agar data yang ditampilkan
itu bergeser ke kanan.
SMK NEGERI 53 JAKARTA
Pada program di atas frekuensi bunyi pertama adalah adalah 320 Hz dan lamanya 25
msec, sedangkan bunyi kedua frekuensinya 480 Hz dan lamanya 25 msec.
Program II :
Address Op-Code Label Mnemonic Keterangan
ORG. 1800H
1800 CD 3A 18 CALL CLEAR SBR. CLEAR
1803 0E 06 LD C, 0AH C 0AH
1805 11 00 00 LD BC, 0000H BC 0000H
1808 21 50 18 LD HL, 1850H HL 1850H
180B DD 21 00 19 LD IX, 1900H IX 1900H
180F 7E LOOP1 LD A, (HL) A (HL)
1810 E5 PUSH HL SP HL
1811 DD 77 00 LD (IX + 0), A (IX) A
1814 DD 21 00 19 LD IX, 1900H IX 1900H
1818 CD 2A 18 CALL TAMPILAN SBR. TAMPILAN
181B CD 3A 18 CALL CLEAR SBR. CLEAR
181E E1 POP HL HL - SP
181F 23 INC HL HL HL + 1
1820 13 INC DE DE DE + 1
1821 DD 19 ADD IX, DE IX IX + DE
1823 0D DEC C CC-1
1824 20 E9 RNZ LOOP1
1826 C3 00 18 JP 1800H
SUBROUTINE TAMPILAN
ORG. 182AH
182A 06 64 LD B, 64H B 64H
182C CD 24 06 TAMP. CALL SCAN1 SBR. SCAN1
182F 10 FB DJNZ TAMP.
1831 C9 RETI KEMNALI KE PRO-
GRAM INDUK.
SUBROUTINE CLEAR
ORG. 183AH
183A 06 10 LD B, 10H B 10H
183C 21 00 19 LD HL, 1900H HL 1900H
183F AF XOR A A A XOR A
1840 77 CLEAR LD (HL), A (HL) A
1841 23 INC HL HL HL + 1
1842 10 FC DJNZ CLEAR
1844 C9 RET KEMNALI KE PRO-
GRAM INDUK.
1850 A7 A7 A7 A7 A7 A7 DEFB DATA
Program di atas adalah menampilkan karakter pada buffer yang address awalnya adalah
1900H. Sebelum menampilkan maka pada address tersebut di clear setelah itu isikan
data yang ada pada register HL ke register IX untuk ditampilkan, lalu dari address
1900H di clear, kemudian reg. IX dan reg. HL di increment, begitu seterusnya.
SMK NEGERI 53 JAKARTA
SUBROUTINE PENJUMLAHAN
ORG. 1830H
1830 7B LD A, E
1831 84 ADD A, E
1832 4F LD C, A
1833 3E 00 LD A, 00
1835 CE 00 ADC A, 00
1837 47 LD B, A
1838 C9 RET
SUBROUTINE PENGURANGAN
ORG. 1839H
1839 7B LD A, E
183A 94 SUB A, H
183B 4F LD C, A
183C 3E 00 LD A, 00
183E DE 00 SBC A, 00
1840 47 LD B, A
1841 C9 RET
SUBROUTINE PERKALIAN
ORG. 1842H
1842 06 00 LD B, 00H
1844 7B LD A, E
1845 83 LOOP4 ADD A, E
1846 4F LD C, A
1847 3E 00 LD A, 00
1849 88 ADC A, B
184A 47 LD B, A
184B 79 LD A, C
184C 25 DEC H
184D 20 F6 JRNZ loop 4
184F C9 RET
SUBROUTINE TAMPILAN
ORG. 1850H
1850 ED 43 00 19 LD (1900), BC
1854 21 00 19 LD HL, 1900
1857 3A 00 19 LD A, (1900)
185A CD 78 06 CALL Hex7SG
185D DD 21 00 19 LD IX, 1900H
1861 CD FE 05 CALL SCAN
1864 76 HALT
ORG. 1900H
1900 00 00 00 00 DEFW Temp. Hasil
1910 B3 23 87 DEFW Slh. Tnd.
1913 77 85 AE DEFW
Program di atas adalah program untuk penjumlahan, pengurangan dan perkalian yang
hasilnya dikonversi ke desimal. Dimana data dimasukkan register H, data 2 dimasukkan
register B dan tanda dimasukkan register D. Jika dalam memasukkan tanda selain
penjumlahan (10H), pengurangan (05H) dan perkalian (01H) maka pada tampilan akan
tampak SLH.TND.
Program II :
Address Op-Code Label Mnemonic Keterangan
ORG. 1800H
1800 AF XOR A A A XOR A
1801 06 24 LD B, 24 B 24H
1803 21 71 18 LD HL, data HL addr.data
1806 36 00 LOOP LD (HL), 00H (HL) 00H
1808 23 INC HL HL HL + 1
1809 10 FB DJNZ Loop
180B AUGEND
180B FD 21 71 18 LD IY, AUGEND IY AUGEND
180F DD 21 7D 18 LD IX, NULL IX NULL
1813 CD FE 05 DISPL1 CALL Scan
1816 FD 77 00 LD (IY + 00H), A (IY + 00H) A
1819 CD 5E 18 CALL Konversi Sbr.Konversi
181C DD 21 7D 18 LD IX, NULL IX NULL
1820 CD FE 05 CALL Scan
1823 FE 10 CP 10H Bandingkan dg.10H
1825 20 F9 JRNZ Displ1
1827 ADDENT
1827 AF XOR A A A XOR A
1828 FD 21 77 18 LD IY, ADDENT IY ADDENT
182C DD 21 7D 18 LD IX, NULL IX NULL
1830 CD FE 05 DISPL2 CALL Scan
1833 FD 77 00 LD (IY + 00H), A (IY + 00H) A
1836 CD 5E 18 CALL Konversi Sbr.Konversi
1839 DD 21 7D 18 LD IX, NULL IX NULL
183D CD FE 05 CALL Scan
1840 FE 12 CP 12H
1842 20 F9 JRNZ Displ2 Bandingkan dg.12H
1844 Kalkulasi
1844 AF XOR A A A XOR A
1845 21 71 18 LD HL, AUGEND HL AUGEND
1848 11 77 18 LD DE, ADDENT DE ADDENT
184B DD 21 83 18 LD IX, SUM1 IX SUM1
184F FD 21 89 18 LD IY, SUM2 IY SUM2
1853 1A LD A, (DE) A (DE)
1854 86 ADD A, (HL) A A + (HL)
1855 DD 77 00 LD (IX + 00H), A (IX + 00H) A
1858 FD 77 00 LD (IY + 00H), A (IY + 00H) A
185B CD 5E 18 CALL Konversi Sbr.Konversi
185E SBR. KONVERSI
185E AF XOR A A A XOR A
185F 21 8F 18 LD HL, Result HL Result
1862 FD 7E 00 LD A, (IY + 00H) A (IY + 00H)
1865 CD 78 06 CALL Hex7SG
1868 DD 21 8F 18 LD IX, Result IX Result
186C CD FE 05 CALL Scan
1970 C9 RET
1871
1871 00 00 00 AUGEND
1877 00 00 00 ADDENT
187D 00 00 00 NULL
1883 00 00 00 SUM1
1889 00 00 00 SUM2
188F 00 00 00 RESULT
Program di atas data1 dan data2 yang akan dijumlahkan dimasukkan langsung dari
display yaitu dengan cara memasukkan data1 lalu tekan (+) dua kali masukkan data2
kemudian tekan GO dua kali maka akan tampak hasilnya. Apabila ingin melakukan
lagi langsung dengan cara yang sama seperti di atas.
SMK NEGERI 53 JAKARTA
0000 ASEG
00C0 ADDE_LED_1 EQU 0C0H
00C1 ADDE_LED_2 EQU 0C1H
00C2 ADDE_LED_3 EQU 0C2H
00C3 ADDE_LED_4 EQU 0C3H
00C4 ADDE_LED_5 EQU 0C4H
00C5 ADDE_LED_6 EQU 0C5H
00C6 ADDE_LED_7 EQU 0C6H
00C7 ADDE_LED_8 EQU 0C7H
1850 DELAY EQU 1850H
ORG. 1800H
1800 AF XOR A
1801 D3 C0 OUT(ADDR_LED_1), A
1803 CD 1850 CALL DELAY ; set lamanya nyala
1806 D3 C1 OUT(ADDR_LED_2), A
1808 CD 1850 CALL DELAY ; set lamanya nyala
180B D3 C2 OUT(ADDR_LED_3), A
180D CD 1850 CALL DELAY ; set lamanya nyala
1810 D3 C3 OUT(ADDR_LED_4), A
1812 CD 1850 CALL DELAY ; set lamanya nyala
1815 D3 C4 OUT(ADDR_LED_5), A
1817 CD 1850 CALL DELAY ; set lamanya nyala
181A D3 C5 OUT(ADDR_LED_6), A
181C CD 1850 CALL DELAY ; set lamanya nyala
181F D3 C6 OUT(ADDR_LED_7), A
1821 CD 1850 CALL DELAY ; set lamanya nyala
1824 D3 C7 OUT(ADDR_LED_8), A
1826 CD 1850 CALL DELAY ; set lamanya nyala
1829 CD 1800 JP 1800 ; kembali ke awal
program.
Subroutin delay
ORG. 1850H
1850 16 FF LD D, 0FFH
1852 06 FB LOOP1: LD B, 0FFH
1854 10 FE LOOP2: DJNZ LOOP2
1856 15 DEC D
1857 20 F9 JRNZ, LOOP1
1859 C9 RET
END
; Subroutine delay:
ORG. 1850H
1850 16 FF LD D, 0FFH
1852 06 FF LOOPA: LD B, 0FFH
1854 10 FE LOOPB: DJNZ LOOPB
1856 15 DEC D
1857 20 F9 JRNZ, LOOPA
1859 16 02 LD D, 02H
185B 7D LD A, L
185C 21 1900 LD HL, BUFF_DATA
185F DD 21 1900 LD IX, BUFF_TAMP
1863 DD 0678 CALL HEX_7SG
1866 06 64 LOOP2: LD B, 64H
1868 CD 0624 CALL SCAN_1
186B 10 FB LOOP3: DJNZ LOOP3
186D 15 DEC D
186E 20 F6 JRNZ, LOOP2
186F C9 RET
; Buffer data dan buffer tampilan
1900 00 00 DEFB 00H, 00H
1902 00 00 00 00 DEFB 00H, 00H, 00H, 00H
END
ORG. 1840H
1840 21 1880 LD HL, BUFF_TAMP
1843 CD 0678 CALL HEX7SG
1846 DD 21 1880 LD IX, BUFF_TAMP
184A CD 0624 CALL SCAN
184D C9 RET
ORG. 1860
1860 0A 02 04 03 DEFB 0AH, 02H, 03H, 04H
1864 05 0B 07 C3 DEFB 05H, 0BH, 07H, 0C3H
1868 AA 01 05 DEFB 0AAH, 01H, 05H
ORG. 1870H
1870 00 00 00 00 DEFB 00H, 00H, 00H, 00H
ORG. 1880H
1880 00 00 00 00 DEFB 00H, 00H, 00H, 00H
1884 00 00 00 00H, 00H, 00H
END
--ooo0000ooo--