Laporan Modul 5 [PDF]

  • 0 0 0
  • Suka dengan makalah ini dan mengunduhnya? Anda bisa menerbitkan file PDF Anda sendiri secara online secara gratis dalam beberapa menit saja! Sign Up
File loading please wait...
Citation preview

LAPORAN MODUL 5 PRAKTIKUM SISTEM MIKROPROSESOR STUDI KASUS PEMROGRAMAN MIKROPROSESOR



Disusun Oleh : Nama : Setia Budinugroho NIM



: 12502241015



Kelas : A 3.1



JURUSAN PENDIDIKAN TEKNIK ELEKTRONIKA FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA 2013



A) Kegiatan Belajar



Kegiatan Belajar I : Percobaan program Transfer Data TUJUAN : 



Memahami pemakaian fungsi instruksi transfer data







Menentukan nilai seting inisialisasi data







Menulis program







Memasukkan program (op-code) ke Komputer Mikro MPF-I







Mengeksekusi program







Menganilis hasil eksekusi



 Percobaan I Kasus : Tuliskan program dalam bahasa assembly untuk mengeset isi register-register A=00h, B=01h, C=02h, D=03h, E=04h, H=05h, L=06h dengan menggunakan instruksi transfer data 8 bit. Penyelesaian: a). Algoritma : Langkah pertama buatlah algoritma yang menunjukkan step atau langkah kerja proses kerja program sebagai berikut. STEP 1 2 3 4 5 6 7 8 9



PERINTAH Start Isi register A dengan data 00h Isi register B dengan data 01h Isi register C dengan data 02h Isi register D dengan data 03h Isi register E dengan data 04h Isi register H dengan data 05h Isi register L dengan data 06h Stop



Laporan Mikrokontroler Modul 5



1



b). Flowchart: Langkah kedua yang harus dilakukan adalah membuat flowchart sebagai diagram yang menunjukkan proses aliran kerja program. Perhatikan pemilihan bentuk grafis flowchart harus benar karena akan mewakili kesesuaian pemilihan jenis dan macam instruksi.



c). Penulisan Program : Penulisan program dalam bahasa assembly pertama-tama disarankan membuat table dengan format seperti dibawah ini. Setiap baris isilah nomor 1 sampai dengan ke n. Perhatikan perintah program mulai dari yang ke satu, termasuk kategori apa lalu tetapkan perintah assembly-nya. Tuliskan semua pada kolom Assembly. Cari kode operasi masing-masing perintah menggunakan tabel set instruksi tuliskan ke kolom Kode Operasi. Kemudian berikan alamat sesuai jumbah byte kode operasinya.



Laporan Mikrokontroler Modul 5



2



Addr 1800 1802 1804 1806 1808 180A 180C 180E



Kode Operasi 3E 00 06 01 0E 02 16 03 1E 04 26 05 2E 06



No.



Label 1. 2. 3. 4. 5. 6. 7. 8.



FF



Assembly



Keterangan



LD A , 00H LD B , 01H LD C , 02H LD D , 03H LD E , 04H LD H , 05H LD L , 06H RST 38



d). Pemasukan Program dan Eksekusi Program o Masukkan semua kode operasi program sesuai alamat setiap perintah. o Cek kembali apakah semua kode operasi telah benar dan sesuai dengan posisi alamatnya. o Jika semua sudah benar lanjutkan dengan operasi eksekusi menggunakan eksekusi GO dan baca hasil program di masing-masing register dengan mencatat pada tabel berikut: Register



A



B



C



D



E



H



L



Data



00



01



02



03



04



05



06







Bagaimana dengan hasil eksekusi program saudara apakah sesuai dengan kasus/ permasalahan. Jika tidak sesuai berarti masih ada kesalahan yang harus dicari dan diperbaiki. e). Analisa Data Percobaan di atas adalah contoh dari transfer data immediate 8 bit ke register. Jadi ketika kita ingin memasukkan data ke sebuah register, kita akan memasukkannya secara langsung ke register tersebut tanpa mengolah data tersebut terlebih dahulu. Dari op code dapat dijelaskan bahwa address 1800 berisi op code 3E, hal ini digunakan untuk memanggil register A untuk bersiap menerima data, kemudian address 1801 berisi data 8 bit yang akan dimasukkan ke register A, yaitu 00. Setelah itu berlanjut memanggil register B, dan proses yang terjadi sama, yang berbeda adalah op code yang digunakan untuk memanggil register yang akan digunakan untuk menyimpan data. Setelah selesai maka menggunakan FF sebagai reset atau end program.



Laporan Mikrokontroler Modul 5



3



 Percobaan II Kasus : Tuliskan program dalam bahasa assembly untuk mengeset isi register-register B=BBh, C=CCh, D=DDh, E=EEh, H=FFh, L=00h dengan menggunakan instruksi transfer data 16 bit. Penyelesaian: a) Algoritma : Langkah pertama buatlah algoritma yang menunjukkan step atau langkah kerja proses kerja program sebagai berikut. STEP



PERINTAH



1.



Start



2.



Isi register BC dengan data BBCCh



3.



Isi register DE dengan data DDEEh



4.



Isi register HLdengan data FF00h



5.



Stop b) Flowchart:



Langkah kedua yang harus dilakukan adalah membuat flowchart sebagai diagram yang menunjukkan proses aliran kerja program. Perhatikan pemilihan bentuk grafis flowchart harus benar karena akan mewakili kesesuaian pemilihan jenis dan macam instruksi.



Laporan Mikrokontroler Modul 5



4



c) Penulisan Program : Penulisan program dalam bahasa assembly pertama-tama disarankan membuat table dengan format seperti dibawah ini. Setiap baris isilah nomor 1 sampai dengan ke n. Perhatikan perintah program mulai dari yang ke satu, termasuk kategori apa lalu tetapkan perintah assembly-nya. Tuliskan semua pada kolom Assembly. Cari kode operasi masing-masing perintah menggunakan tabel set instruksi tuliskan ke kolom Kode Operasi. Kemudian berikan alamat sesuai jumbah byte kode operasinya. Addr



Kode Operasi



No.



Labe



Assembly



1800



01 CC DD



1.



LD BC ,BBCCH



1802



11 EE DD



2.



LD DE, DDEEH



1804



21 00 FF



3.



LDHL, FF00H



180e



FF



4.



RST 38



Keterangan



d) Pemasukan Program dan Eksekusi Program 



Masukkan semua kode operasi program sesuai alamat setiap perintah.







Cek kembali apakah semua kode operasi telah benar dan sesuai dengan posisi alamatnya.







Jika semua sudah benar lanjutkan dengan operasi eksekusi menggunakan eksekusi GO dan baca hasil program di masing-masing register dengan mencatat pada tabel berikut : Register Data



BC



DE



HL



BBCC



DDEE



FF00



4). Bagaimana dengan hasil eksekusi program saudara apakah sesuai dengan kasus/ permasalahan. Jika tidak sesuai berarti masih ada kesalahan yang harus dicari dan diperbaiki.



Laporan Mikrokontroler Modul 5



5



e) Analisa Data Hampir sama dengan Percobaan I, ini merupakan implementasi dari transfer data 16 bit ke register. Jadi data yang akan dimasukkan tidak perlu diolah dahulu karena data langsung ditempatkan ke register tujuan. Dari kode operasi dapat dijelaskan bahwa untuk dapat menuju register BC maka diperlukan kode 01 untuk memanggil register tersebut dan data diisi dengan dibuat terbalik ( register C terlebih dahulu ) karena pada waktu mengisi, nantinya register B akan terisi dengan dengan data CC kemudian data akan bergeser secara otomatis ke register C ketika register B mendapat data BB. Begitu juga dengan pengisian data ke register DE dan HL, yang berbeda hanyalah op code yang digunakan. Setelah selesai maka menggunakan FF sebagai reset atau end program.



 Percobaan III Kasus : Tuliskan program dalam bahasa assembly untuk menghapus 50 lokasi isi memori pada alamat 1900H sampai 1931H dengan data 00H. Penyelesaian: a). Algoritma : Langkah pertama buatlah algoritma yang menunjukkan step atau langkah kerja proses kerja program sebagai berikut. STEP



PERINTAH



1.



Start



2.



Isi register B dengan data 32h = 50 desimal



3.



Isi register HL dengan data 1900h



4.



Isi register A dengan data 00h



5.



Isi memori pada alamat sama dengan isi register HL dengan data register A



6.



Tambahkan nilai isi register HL dengan satu



7.



Kurangkan isi register B dengan satu



8.



Apakah isi register BC tidak sama dengan Nol



9.



Jika Ya kembali ke Step 5



10.



Stop



Laporan Mikrokontroler Modul 5



6



b). Flowchart: Langkah kedua yang harus dilakukan adalah membuat flowchart sebagai diagram yang menunjukkan proses aliran kerja program. Perhatikan pemilihan bentuk grafis flowchart harus benar karena akan mewakili kesesuaian pemilihan jenis dan macam instruksi.



c). Penulisan Program : Penulisan program dalam bahasa assembly pertama-tama disarankan membuat table dengan format seperti dibawah ini. Setiap baris isilah nomor 1 sampai dengan ke n. Perhatikan perintah program mulai dari yang ke satu, termasuk kategori apa lalu tetapkan perintah assembly-nya. Tuliskan semua pada kolom Assembly. Cari kode operasi masingmasing perintah menggunakan tabel set instruksi tuliskan ke kolom Kode Operasi. Kemudian berikan alamat sesuai jumbah byte kode operasinya. Addr 1800 1802 1805 1806 1807 1808 1809 180C



Kode Operasi 06 32 21 00 19 AF 77 23 05 C2 FF



No. 1. 2. 3. 4. 5. 6. 7. 8.



Laporan Mikrokontroler Modul 5



Label



ULANG



Assembly LD B, 32H LD HL,1900H XOR A A =00 LD (HL), A INC HL DEC B JPNZ, ULANG RST 38



Keterangan



Loop ke 1806



7



d). Pemasukan Program dan Eksekusi Program 1). Masukkan semua kode operasi program sesuai alamat setiap perintah. 2). Cek kembali apakah semua kode operasi telah benar dan sesuai dengan posisi alamatnya. 3). Jika semua sudah benar lanjutkan dengan operasi eksekusi menggunakan eksekusi GO dan baca hasil program di memori mulai alamat 1900 sampai dengan alamat 1931 dengan mencatat pada tabel berikut : Memori 1900 Data



00



1901 00



1902 00



1903 00



1904 00



dst



1931 00



4). Bagaimana dengan hasil eksekusi program saudara apakah sesuai dengan kasus/ permasalahan. Jika tidak sesuai berarti masih ada kesalahan yang harus dicari dan diperbaiki. e). Analisa Data Pada percobaan ketiga yaitu program penghapusan 50 lokasi isi memori pada alamat 1900 sampai 1931 dengan data 00H. Maka langkah yang diambil untuk yang pertama adalah mengisi register B dengan data 32H (50 desimal) sesuai dengan alamat yang akan dihapus sebagai program counter penghitung perulangan yang akan dilakukan. Kemudian mengisikan register HL dengan alamat 1900H sebagai alamat awal yang akan dihapus datanya dengan 00H. Kemudian isikan register A dengan data 00H sebagai data penghapus yang akan diisikan pada memori. Setelah itu baru dimulai penghapusan data dengan memasukkan data 00H yang ada pada register A ke alamat awal 1900h pada register HL. Lalu alamat pada register HL ditambah dengan satu dengan perintah INC HL yang dimaksutkan untuk menunjuk pada alamat selanjutnya yang akan dihapus datanya. Kemudian register B dikurangi satu dengan perintah DEC B sebagai penghitung langkah kerja program yang kemudian akan di eksekusi dengan perintah keputusan JPNZ. JPNZ akan membaca apakah isi register B sama dengan 0, jika ya maka akan mengulang ke step 5 yaitu mengisikan data 00 ke alamat selanjutnya. Langkah tersebut akan diulang sampai isi register B sama dengan 0, yaitu 50 kali.



Laporan Mikrokontroler Modul 5



8



 Percobaan IV Kasus : Tuliskan program dalam bahasa assembly untuk mengeset data : 00h, 01h, 02h, 03h, 03h, 04h, 05h, 06h, 07h, 08h, 09h, 0Ah, 0Bh, 0Ch, 0Dh, 0Eh, dan 0Fh di memori RWM mulai alamat 1900 sampai 190F. Penyelesaian: a). Algoritma : Langkah pertama buatlah algoritma yang menunjukkan step atau langkah kerja proses kerja program sebagai berikut. STEP



PERINTAH



1.



Start



2.



Isi register B dengan data 10h = 16 desimal



3.



Isi register HL dengan data 1900h



4.



Isi register A dengan data 00h



5.



Isi memori pada alamat sama dengan isi register HL dengan data register A



6.



Tambahkan nilai/isi register HL dengan satu



7.



Tambahkan nilai/isi register A dengan satu



8.



Kurangkan nilai/isi register B dengan satu



9.



Apakah isi register BC tidak sama dengan Nol



10.



Jika Ya kembali ke Step 5



11.



Stop



b). Flowchart: Langkah kedua yang harus dilakukan adalah membuat flowchart sebagai diagram yang menunjukkan proses aliran kerja program. Perhatikan pemilihan bentuk grafis flowchart harus benar karena akan mewakili kesesuaian pemilihan jenis dan macam instruksi.



Laporan Mikrokontroler Modul 5



9



c). Penulisan Program : Penulisan program dalam bahasa assembly pertama-tama disarankan membuat table dengan format seperti dibawah ini. Setiap baris isilah nomor 1 sampai dengan ke n. Perhatikan perintah program mulai dari yang ke satu, termasuk kategori apa lalu tetapkan perintah assembly-nya. Tuliskan semua pada kolom Assembly. Cari kode operasi masing-masing perintah menggunakan tabel set instruksi tuliskan ke kolom Kode Operasi. Kemudian berikan alamat sesuai jumbah byte kode operasinya. Addr 1800 1802 1805 1806 1807 1808 1809 180A 180D



Kode Operasi 06 32 21 00 19 AF 77 23 3C 05 C2 06 18 FF



No. 1. 2. 3. 4. 5. 6. 7. 8. 9



Label



ULANG



Assembly LD B, 32H LD HL,1900H XOR A A =00 LD (HL), A INC HL INC A DEC B JPNZ, ULANG RST 38



Keterangan



Loop ke 1806



d). Pemasukan Program dan Eksekusi Program 1) Masukkan semua kode operasi program sesuai alamat setiap perintah. 2) Cek kembali apakah semua kode operasi telah benar dan sesuai dengan posisi alamatnya.



Laporan Mikrokontroler Modul 5



10



3) Jika semua sudah benar lanjutkan dengan operasi eksekusi menggunakan eksekusi GO dan baca hasil program di memori mulai alamat 1900 sampai dengan alamat 190F dengan mencatat pada tabel berikut : Memori 1900



1901



1902



1903



1904



1905



1906



1907



00



01



02



03



04



05



06



07



Memori 1908



1909



190A



190B



190C



190D



190E



190F



09



0A



0B



0C



0D



0E



0F



Data



Data



08



4) Bagaimana dengan hasil eksekusi program saudara apakah sesuai dengan kasus/ permasalahan. Jika tidak sesuai berarti masih ada kesalahan yang harus dicari dan diperbaiki. e). Analisa Data Pada percobaan 4 yaitu program pengisian data 00h samapi 0Fh di memori RWM mulai dari alamat 1900h sampai 190Fh. Maka untuk langkah pertama yang diambil adalah mengisikan register B dengan data 10h (16 desimal). Kemudian mengisikan register HL dengan alamat 1900h sebagai alamat awal. Kemudian mengisikan register A dengan data 00h sebagai alamat yang akan diisikan pada alamat awal. Setelah itu langkah selanjutnya mengisikan memori awal 1900h dengan data pada register A. Setelah itu alamat pada register HL ditambah dengan satu sebagai penunjuk alamat berikutnya dengan perintah INC HL. Kemudian pada data pada register A juga ditambah dengan satu sebagai data yang akan dimasukkan pada alamat berikutnya dengan perintah INC A. Setelah itu data pada register B dikurang satu untuk mengetahui sudah brapa langkah yang sudah dilakukan. Kemudian dengan perintah JPNZ maka data pada register B akan dibaca, apabila data tidak sama dengan 0 maka akan melompat keperintah 5 yaitu mengisikan data pada register A ke register HL. Jika data peda register B sama dengan 0 maka program akan berhenti.



Laporan Mikrokontroler Modul 5



11



Kegiatan Belajar II: Percobaan Aplikasi Aritmetika “Jumlah-Kurang” a. TUJUAN : 1) Memahami pemakaian fungsi instruksi aritmetika 2) Menentukan nilai seting inisialisasi data 3) Menulis program 4) Memasukkan program (op-code) ke Komputer Mikro MPF-I 5) Mengeksekusi program 6) Menganilis hasil eksekusi b. PERCOBAAN  Percobaan I Kasus. Buatlah Algoritma Program, Flow Chart dan Program untuk menjumlahkan 2 byte bilangan biner yang masing-masing beralamat di 1900H, 1901H, 1902H, 1903H. Simpanlah hasilnya di alamat 1904H, 1905H, 1906H. Program di tulis pada alamat awal program 1800H. Pola masalah : [ 1901 ] [ 1900 ] [ 1903 ] [ 1902 ] + ------------------------------------------------[ 1906 ] [ 1905 ] [ 1904 ] Penyelesaian: a). Algoritma : Langkah pertama buatlah algoritma yang menunjukkan step atau langkah kerja proses kerja program sebagai berikut.



Laporan Mikrokontroler Modul 5



12



STEP 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.



PERINTAH Start Ambil data yang ada pada alamat 1900 dan simpan di Reg. A Jumlahkan data yang ada di register A dengan data yang ada pada alamat 1902 Simpan hasil penjumlahan yang ada di register A pada alamat 1904 Ambil data yang ada pada alamat 1901 dan simpan di Reg. A Jumlahkan data yang ada di register A dengan data yang ada pada alamat 1903 dan sertakan bit Carry Flag Simpan hasil penjumlahan yang ada di register A pada alamat 1905 Ambil bit Carry Flag Simpan pada alamat 1906 Stop



b). Flowchart: Langkah kedua yang harus dilakukan adalah membuat flowchart sebagai diagram yang menunjukkan proses aliran kerja program.



Laporan Mikrokontroler Modul 5



13



c). Penulisan Program : Penulisan program dalam bahasa assembly pertama-tama disarankan membuat table dengan format seperti dibawah ini. Setiap baris isilah nomor 1 sampai dengan ke n. Perhatikan perintah program mulai dari yang ke satu, termasuk kategori apa lalu tetapkan perintah assembly-nya. Tuliskan semua pada kolom Assembly. Cari kode operasi masing-masing perintah menggunakan tabel set instruksi tuliskan ke kolom Kode Operasi. Kemudian berikan alamat sesuai jumbah byte kode operasinya. Addr



Kode Operasi



No.



1800



DD 21 00 19



1.



LD IX , 1900



1804



DD 7E 00



2.



LD A , (IX+00



1807



DD 86 02



3.



ADD A , (IX+02)



180A



DD 77 04



4.



LD (IX+04) , A



180D



DD 7E 01



5.



LD A , (IX+01)



1810



DD 8E 03



6.



ADC A, (IX+03)



1813



DD 77 05



7.



LD (IX+05) , A



1816



3E 00



8.



LD A , 00



1818



8F



9.



ADC A , A



1819



DD 77 06



10.



LD (IX+06) , A



181C



FF



11.



RST 38



Laporan Mikrokontroler Modul 5



Label



Assembly



Keterangan



14



d). Pemasukan Program dan Eksekusi Program : o Masukkan program di atas dan uji menggunakan data seperti tabel berikut ini; o Sebelum dieksekusi masukkan data 1 dan data 2 di memori sesuai alamat satu per satu dari kasus 1 sampai dengan kasus 5. Kasus 1. 2. 3. 4. 5.



Data 1



Data 2



Data 1 + Data 2



[1900]



[1901]



[1902]



[1903]



[1904]



[1905]



[1906]



10 06 8F 2C F4



00 05 9F 7F 2A



03 08 F5 77 7C



02 07 AF 2D C2



13 0E 84 A3 70



02 0C 4F (F = 1D) AC (F = BC) ED (F = 48)



00 00 01 00 (F = 40) 00 (F = 40)



e). Bagaimana dengan hasil eksekusi program saudara apakah sesuai dengan kasus/ permasalahan. Jika tidak sesuai berarti masih ada kesalahan yang harus dicari dan diperbaiki. Konsultasilah dengan Guru atau Tutor saudara jika ada masalah. f). Analisa Data Pertama data yang akan digunakan sebagai angka perkalian dimasukkan ke dalam address 1900 dan angka pengali dimasukkan ke dalam address 1902. Dari address 1900 dimasukkan dan disimpan ke register A. Kemudian data yang ada pada register A dijumlahkan dengan data yang ada pada address 1902 dan hasilnya dimasukkan ke dalam alamat 1904. Hal yang sama dilakukan pada address 1901 yang akan dimasukkan datanya ke register A dan kemudian ditambahkan dengan data yang ada pada address 1903 dan kemudian menaruh hasilnya pada register 1905. Namun pada ini ditambahkan bit carry yang kemudan diletakkan pada address 1906.



Laporan Mikrokontroler Modul 5



15



o Percobaan II Kasus. Buatlah Algoritma Program, Flow Chart dan Program untuk menjumlahkan 2 byte bilangan desimal yang masing-masing beralamat di 1900H, 1901H, 1902H, 1903H. Simpanlah hasilnya di alamat 1904H, 1905H, 1906H. Program di tulis pada alamat awal program 1800H. Pola masalah : [ 1901 ] [ 1900 ] [ 1903 ] [ 1902 ] + ------------------------------------------------[ 1906 ] [ 1905 ] [ 1904 ] Penyelesaian: a). Algoritma : Langkah pertama buatlah algoritma yang menunjukkan step atau langkah kerja proses kerja program sebagai berikut. STEP



PERINTAH



1.



Start



2.



Ambil data yang ada pada alamat 1900 dan simpan di Reg. A



3.



Jumlahkan data yang ada di register A dengan data yang ada pada alamat 1902



4.



Lakukan koreksi DAA



5.



Simpan hasil penjumlahan yang ada di register A pada alamat 1904



6.



Ambil data yang ada pada alamat 1901 dan simpan di Reg. A



7.



Jumlahkan data yang ada di register A dengan data yang ada pada alamat 1903 dan sertakan bit Carry Flag



8.



Lakukan koreksi DAA



9.



Simpan hasil penjumlahan yang ada di register A pada alamat 1905



10.



Ambil bit Carry Flag



11.



Simpan pada alamat 1906



12.



Stop



Laporan Mikrokontroler Modul 5



16



b). Flowchart: Langkah kedua yang harus dilakukan adalah membuat flowchart sebagai diagram yang menunjukkan proses aliran kerja program.



c). Penulisan Program : Penulisan program dalam bahasa assembly pertama-tama disarankan membuat table dengan format seperti dibawah ini. Setiap baris isilah nomor 1 sampai dengan ke n. Perhatikan perintah program mulai dari yang ke satu, termasuk kategori apa lalu tetapkan perintah assembly-nya. Tuliskan semua pada kolom Assembly. Cari kode operasi masing-masing perintah menggunakan tabel set instruksi tuliskan ke kolom Kode Operasi. Kemudian berikan alamat sesuai jumbah byte kode operasinya.



Laporan Mikrokontroler Modul 5



17



Addr



Kode Operasi



No.



Label



Assembly



1800



DD 21 00 19



1.



LD IX , 1900



1804



DD 7E 00



2.



LD A , (IX+00



1807



DD 86 02



3.



ADD A , (IX+02)



180A



27



4.



DAA



180B



DD 77 04



5.



LD (IX+04) , A



180E



DD 7E 01



6.



LD A , (IX+01)



1811



DD 8E 03



7.



ADC A, (IX+03)



1814



27



8.



DAA



1815



DD 77 05



9.



LD (IX+05) , A



1818



3E 00



10.



LD A , 00



181A



8F



11.



ADC A , A



181B



DD 77 06



12.



LD (IX+06) , A



181E



FF



13.



RST 38



Keterangan



KOREKSI



KOREKSI



d). Pemasukan Program dan dan Eksekusi Program : o Masukkan program di atas dan uji menggunakan data seperti tabel berikut ini; o Sebelum dieksekusi masukkan data 1 dan data 2 di memori sesuai alamat satu per satu dari kasus 1 sampai dengan kasus 5. Kasus



Data 1 [1900]



Data 2 [1901]



[1902]



Data 1 + Data 2 [1903]



[1904]



[1905]



[1906]



1. 10 00 03 02 13 02 00 2. 06 05 08 07 0E 0C 00 3. 45 90 25 15 6A A5 00 4. 90 80 77 65 07 E6 00 (F = 00) 5. 64 77 29 21 8D 98 00 (F = 40) e). Bagaimana dengan hasil eksekusi program saudara apakah sesuai dengan kasus/ permasalahan. Jika tidak sesuai berarti masih ada kesalahan yang harus dicari dan diperbaiki. Konsultasilah dengan Guru atau Tutor saudara jika ada masalah.



Laporan Mikrokontroler Modul 5



18



f). Analisa Data Hampir sama dengan percobaan I, namun yang berbeda adalah data yang digunakan adalah bilangan decimal, namun tetap harus diubah dahulu menjadi nilai heksa dahulu. Pertama data yang akan digunakan sebagai angka perkalian dimasukkan ke dalam address 1900 dan angka pengali dimasukkan ke dalam address 1902. Dari address 1900 dimasukkan dan disimpan ke register A. Kemudian data yang ada pada register A dijumlahkan dengan data yang ada pada address 1902 dan hasilnya dimasukkan ke dalam alamat 1904. Hal yang sama dilakukan pada address 1901 yang akan dimasukkan datanya ke register A dan kemudian ditambahkan dengan data yang ada pada address 1903 dan kemudian menaruh hasilnya pada register 1905. Namun pada ini ditambahkan bit carry yang kemudan diletakkan pada address 1906.



 Percobaan III Kasus. Buatlah Algoritma Program, Flow Chart dan Program untuk pengurangan 1 byte bilangan biner yang masing-masing beralamat di 1900H, 1901H. Simpanlah hasilnya di alamat 1902. Program di tulis pada alamat awal program 1800H. Pola masalah : [ 1900 ] [ 1901 ] --------------------------[ 1902 ] Penyelesaian: a). Algoritma : Langkah pertama buatlah algoritma yang menunjukkan step atau langkah kerja proses kerja program sebagai berikut. STEP 1. 2. 3. 4. 5.



PERINTAH Start Ambil data yang ada pada alamat 1900 dan simpan di Reg. A Kurangkan data yang ada di register A dengan data yang ada pada alamat 1901 Simpan hasil pengurangan yang ada di register A pada alamat 1902 Stop



Laporan Mikrokontroler Modul 5



19



b). Flowchart: Langkah kedua yang harus dilakukan adalah membuat flowchart sebagai diagram yang menunjukkan proses aliran kerja program.



c) Penulisan Program : Addr



Kode Operasi



No.



1800



DD 21 00 19



1.



LD IX , 1900



1804



DD 7E 00



2.



LD A , (IX+00)



1807



DD 96 01



3.



SUB , (IX+01)



180A



DD 77 02



4.



LD (IX+2)A,



180D



FF



5.



RST 38



Laporan Mikrokontroler Modul 5



Label



Assembly



Keterangan



20



d). Pengujian Program : Masukkan program di atas dan uji menggunakan data seperti tabel berikut : KASUS



[1900]



[1901]



[1902]



1.



F5



2D



C8



2.



E7



D5



12



3.



8F



F5



9A



Program diatas adalah program pengurangan bilangan biner. Untuk membuat program tersebut bekerja sebagai program pengurangan bilangan desimal maka perlu di tambahkan satu perintah koreksi DAA seperti program berikut : Addr



Kode Operasi



No.



Label



Assembly



1800



DD 21 00 19



1.



LD IX , 1900



1804



DD 7E 00



2.



LD A , (IX+00)



1807



DD 96 01



3.



SUB , (IX+01)



180A



27



4.



DAA



180B



DD 77 02



5.



LD (IX+2)A,



180E



FF



6.



RST 38



Keterangan



Pengujian Program : Masukkan program di atas dan uji menggunakan data seperti tabel berikut : KASUS



[1900]



[1901]



[1902]



1.



80



40



40



2.



90



25



65



3.



55



15



40



Laporan Mikrokontroler Modul 5



21



Program pengurangan dapat dibuat menjadi program penjumlahan dengan menegatifkan bilangan pengurangnya. Program berikut menghasilkan keluaran yang sama. Addr



Kode Operasi



No.



Label



Assembly



1800



DD 21 00 19



1.



LD IX , 1900



1804



DD 7E 00



2.



LD A , (IX+00)



1807



ED 44



3.



NEG



1809



47



4.



LD B, A



180A



DD 7E 00



5.



LD A,(IX+00)



180D



80



180E



27



4.



DAA



180B



DD 77 02



5.



LD (IX+2)A,



180E



FF



6.



RST 38



Keterangan



AAD , B



Pengujian Program : Masukkan program di atas dan uji menggunakan data seperti tabel berikut : [1900]



[1901]



[1902]



80



40



A0



90



25



D1



55



15



A6



e). Analisa Data Pada program pertama, merupakan program pengurangan secara langsung. Hal ini berarti data di masukkan ke alamat 1900 dan kemudian diletakkan dan disimpan pada register A. Kemudian pada register A dikurangkan dengan data yang telah ada pada alamat 1901 dan di register A kemudian dialihkan ke address 1902. Pada program kedua, menggunakan program koreksi DAA sebagai korektor untuk bilangan decimal yang digunakan. Bilangannya adalah 0110, yaitu dengan menambahkan angka tersebut ke bilangan decimal sehingga bilangan dapat ditambahkan, karena pada Z80 tidak dapat mengolah bilangan selain bilangan heksa. Pada program ketiga, menggunakan cara mengubah bilangan pengurang menjadi negasinya kemudian baru mengoperasikannya dan mengoreksinya dengan menggunakan bilangan korektor.



Laporan Mikrokontroler Modul 5



22



Kegiatan Belajar III : Percobaan Aplikasi Aritmetika “Kali-Bagi” Saudara tentu masih ingat bahwa Mikroprosesor Z-80 CPU tidak memiliki instruksi aritmetika perkalian. Operasi perkalian biner tak bertanda dapat dilakukan dengan dua cara yaitu : (1) dengan menggeser bilangan biner ke kiri dan (2) melkukan penjumlahan berulang. Contoh :



Perkalian cara geser bekerja memeriksa bilangan pengali. Jika bit tersebut berlogika 1, bilangan yang dikalikan ditulis sama. Jika bit tersebut adalah 0, tuliskan 0000. Posisi bilangan-bilangan yang disimpan tersebut diatur sehingga bit berorde paling kecil dari bilangan yang dikalikan berada satu garis dengan bit bilangan pengali yang sedang diperiksa. Dalam contoh diatas, bilangan yang dikalikan dengan bilangan pengali adalah 4 bit. Jadi operasi pemeriksaan, penggeseran, dan penjumlahan diulang 4 kali. Untuk perkalian 8 bit operasi diulang 8 kali, dan untuk perkalian 16 bit operasi diulang 16 kali. Perkalian cara penjumlahan berulang , bilangan yang dikalikan dijumlahkan sebanyak bilangan pengalinya.



Laporan Mikrokontroler Modul 5



23



 Percobaan IV Kasus : Kalikan data 8 bit pada register E dengan data 8 bit pada register A. Hasilnya disimpan pada register HL. Penyelesaian: Cara I dengan Metoda Geser Bit a). Algoritma :



Langkah pertama buatlah algoritma yang menunjukkan step atau langkah kerja proses kerja program sebagai berikut. STEP



PERINTAH



1.



Start



2.



Set data pada Register E sebagai data Bilangan yang dikalikan



3.



Set data pada Register A sebagai data Bilangan pengali



4.



Set Register B = 8 sebagai pengulangan 8 kali loop



5.



Set Register D = 00h



6.



Set Register HL = 0000h



7.



Geser kekiri isi Register D (SLA D)



8.



Geser ke kiri isi Register E (SLA E)



9.



Jumlahkan isi Register D dengan 0 sertakan bit Cy



10.



Putar bit Data register A ke kiri (RLC A)



1.



Apakah Cy = 0



12.



Jika Ya lompat ke STEP 14



13.



Jumlahkan isi Register HL dengan isi Register DE



14.



Kurangi isi Register B dengan 1



15.



Apakah Z = 0



16.



Jika Ya kembali ke STEP 7



17.



Stop



Laporan Mikrokontroler Modul 5



24



b). Flowchart: Langkah kedua yang harus dilakukan adalah membuat flowchart sebagai diagram yang menunjukkan proses aliran kerja program.



c). Penulisan Program : Penulisan program dalam bahasa assembly pertama-tama disarankan membuat table dengan format seperti dibawah ini. Setiap baris isilah nomor 1 sampai dengan ke n. Perhatikan perintah program mulai dari yang ke satu, termasuk kategori apa lalu tetapkan perintah assembly-nya. Tuliskan semua pada kolom Assembly. Cari kode operasi masing-masing perintah menggunakan tabel set instruksi tuliskan ke kolom Kode Operasi. Kemudian berikan alamat sesuai jumbah byte kode operasinya.



Laporan Mikrokontroler Modul 5



25



Addr



Kode Operasi



No.



1800



1E XX



1802



Label



Assembly



Keterangan



1.



LDE ,XX



Bil.dikalikan



3E XX



2.



LD A , XX



Bil.pengali



1804



06 08



3.



LDB ,08H



Σ putaran



1806



16 00



4.



LD D, 00H



1808



21 00 00



5.



LD HL, 0000H



180B



Cb 22



6.



180D



CB 23



7.



SLA E



180F



4F



8.



LDC, A



1810



7A



9.



LDA,D



1811



CE 00



10.



ADCA, 00H



1813



57



11.



LD D,A



1814



79



12.



LDA,C



1815



07



13.



RLCA



1816



D2 1A 18



14.



JP NC,MAJU



1819



19



15.



ADD HL,DE



181A



10 EF



16.



DJNZ,LOOP



181C



FF



17.



RST 38



LOOP



ADD HL, HL



d). Pemasukan Program dan Eksekusi Program : o Masukkan program di atas dan uji menggunakan data seperti tabel berikut ini; o Sebelum dieksekusi masukkan nilai Register A dan Register E dengan mengganti OpCode XX sesuai data kasus di bawah ini Kasus



Data 1



Data 2



Data 1 X Data 2



REGISTER A



REGISTER E



REGISTER HL



1.



25



05



0668



2.



45



09



0B64



3.



2C



0A



0410



4.



F5



09



0C4E



5.



D2



0F



08CA



Laporan Mikrokontroler Modul 5



26



e).



Bagaimana



dengan



hasil



eksekusi



program



saudara



apakah



sesuai



dengan



kasus/permasalahan. Jika tidak sesuai berarti masih ada kesalahan yang harus dicari dan diperbaiki. Konsultasilah dengan Guru atau Tutor saudara jika ada masalah. f). Program diatas dapat dibuat lebih sederhana seperti program berikut ini. Addr



Kode Operasi



No.



1800



1E XX



1802



Label



Assembly



Keterangan



1.



LDE ,XX



Bil.dikalikan



3E XX



2.



LD A , XX



Bil.pengali



1804



06 08



3.



LDB ,08H



Σ putaran



1806



16 00



4.



LD D, 00H



1808



21 00 00



5.



LD HL, 0000H



180B



29



6.



180C



07



7.



RLCA



180D



30 01



8.



JR NC , MAJU



1810



19



9.



ADD HL,DE



1810



10 F9



10.



DJN ,LOOP



1812



FF



11.



RST 38



LOOP



ADD HL , HL



STOP



 Analisa Data Program dimulai dengan set data register E sebagai data bilangan yang dikalikan, setelah itu set data pada register A sebagai data bilangan pengali. Masing-masing bilangan yang dikalikan dan dikali terdapat pada tabel kasus. Set register B dengan 8 yaitu sebagai pengulangan 8 kali loop. Register D diisi 00h dan register HL diisi 0000h. Isi register D dan E digeser kiri, kemudian menjumlahkan isi register D dengan 0 dan menyertakan bit Cy. Bit Data register A diputar ke kiri. Kemudian dengan melihat apakah Carry = 0, jika YA lompat ke STEP 14 dengan menjumlahkan isi Register HL dengan isi Register DE. Saat itulah isi Register B dikurangi dengan 1 sampai z = 0 lalu program berhenti, jika z belum menjadi 0, maka perulangan akan terus terjadi dan kembali ke STEP 7.



Laporan Mikrokontroler Modul 5



27



Penyeleasian cara II dengan metode penjumlahan perulangan a) Alogoritma : Langkah pertama membuat program sebagai berikut STEP 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.



PERINTAH



Start Set data pada register E sebagai data bilangan yang dikalikan Set data pada register A sebagai data bilangan untuk dikali Set register D =00h Ser register HL =0000h Jumlah isi register HL dengan register DE Kurangi A dengan 1 Apakah z =0 Jika ya kembali pada step 6 berhenti



b) Flowchart Langhah kedua membuat flow chart



Laporan Mikrokontroler Modul 5



28



c) Penulisan program Penulisan program dalam bahasa asemmbly pertama tama membuat tabel sesuai dibawah ini Addr



Kode



No .



Label



Assembly



Keterangan



operasi 1800



1E XX



1.



LD E,XX



Bil dikalikan



1802



3E XX



2.



LD A,XX



Bil pengali



1804



16 00



3.



LD D,00h



jumlahputaran



1806



21 00 00



4.



LD HL,0000h



1809



19



5.



LOOP



ADD HL ,DE



180A



3D



6.



DEC A



180B



C2 09 18



7.



JP NZ, LOOP



180E



FF



8.



RST 38



d) Pemasukan program dan eksekusi program 



Masukan program di atas dan uji dengan program







Sebelum di eksekusi masukan nilai .Register A dan E dengan mengganti op – code XX sesuai data kusus di bawah ini No .



Data 1



Data 2



Data 1 x data 2



Reg A



Reg B



Reg HL



1



25



05



00B9



2



45



09



0159



3



2C



0A



0168



4



F5



09



089D



5



D2



0F



0C4E



Laporan Mikrokontroler Modul 5



29



e) Bagaiman hasil eksekusi program anda apakah sudah sesuai dengan kasus permasalahan. Jika tidak sesuai berarti masih ada kesalahan yang harus dicari dan diperbaiki. Konsultasilah dengan Guru atau Tutor saudara jika ada masalah f) Analisa Data Sebelumnya set data register E sebagai data bilangan yang dikalikan dan set data pada register A sebagai data bilangan pengali. Setelah itu isi register D dengan 00h dan isi register HL dengan data 0000h. Setelah ituisidari Register HL dijumlahkan denganisi Register DE. Langkah berikutnya mengurangiisi dari Register A dengan 1. Jika hasil dari Z = 0, maka berhenti. Tetapi jika tidak sama dengan 0, maka akan kembalike STEP 6.



 Percobaan V a. Kasus Bagi data 8 bit pada register A dengan data 8 bit pada register E. Hasilnya disimpan pada register C. a) Alogaritma Langkah pertama buatlah algoritma yang menunjukkan step atau langkah kerja proses kerja program sebagai berikut. STEP



PERINTAH



1.



Start



2.



Set data pada Register E sebagai data Bilangan pembagi



3.



Set data pada Register A sebagai data Bilangan yang dibagi



4.



Set Register C = 00h



5.



Bandingkan isi Register A dengan isi Register E



6.



Apakah Cy = 1



7.



Jika Ya lompat ke STEP 11



8.



Kurangkan isi register A dengan isi register E



9.



Tambahkan isi register C dengan 1



10.



Kembali ke STEP 5



11.



Copykan isi register A ke register B



12.



Stop



Laporan Mikrokontroler Modul 5



30



b) Flowchart Langkah kedua yang harus dilakukan adalah membuat flowchart sebagai diagram yang menunjukkan proses aliran kerja program.



c) Penulisan pemrograman Penulisan program dalam bahasa assembly pertama-tama disarankan membuat tabel dengan format seperti dibawah ini. Setiap baris isilah nomor 1 sampai dengan ke n. Perhatikan perintah program mulai dari yang ke satu, termasuk kategori apa lalu tetapkan perintah assembly-nya. Tuliskan semua pada kolom Assembly. Cari kode operasi masing-masing perintah menggunakan tabel set instruksi tuliskan ke kolom Kode Operasi. Kemudian berikan alamat sesuai jumbah byte kode operasinya



Laporan Mikrokontroler Modul 5



31



addr



Kode operasi



No



1800



1E XX



1802



Label



Assembly



Keterangan



1.



LD E ,XX



bil. pembagi



3E XX



2.



LD A ,XX



bil. terbagi



1804



0E 00



3.



LD C ,00H



1806



BB



4.



1807



DA OE 18



5.



JPC ,STOP



1809



93



6.



SUB E



180A



0C



7.



INC C



180B



C3 06 18



8.



JP, LOOP



189E



47



9.



181F



FF



10.



LOOP



CP , E



STOP



LD B ,A RST 38



d) Program dan eksekusi 



masukkan program di atas dan uji menggunakan data seperti tabel berikut ini;







Sebelum dieksekusi masukkan nilai Register A dan Register E dengan mengganti Op-Code XX sesuai data kasus di bawah ini



No



Data 1



Data 2



Data 1 : Data 2



Reg A



Reg B



Reg B



Reg C



1



25



05



EB



07



2



45



09



EB



07



3



2C



0A



EB



04



4



F5



09



EB



16



5



D2



0F



EB



15



.



e) Bagaimana



hasil eksekusi program saudara apakah sesuai dengan kasus/



permasalahan. Jika tidak sesuai berarti masih ada kesalahan yang harus dicari dan diperbaiki. Konsultasilah dengan Guru atau Tutor saudara jika ada masalah



Laporan Mikrokontroler Modul 5



32



f) Analisa Data Sebelumnya mengisi data pada Register E sebagai data Bilangan pembagi dan mengisi data pada Register A sebagai data Bilangan yang dibagi. Register C diisi dengan 00h. Kemudian Isi dari Register A dibandingkan dengan isi Register E. Jika hasilnya Carry = 1, maka lompat ke STEP 11 dan mengisi register B dengan isi dari register A. Tetapi jika Carry = 0 maka isi register A dikurangi dengan isi register E. Lalu menambahkan isi register C dengan 1. Kemudian kembali ke STEP 5 serta mengcopykan isi register A ke register B.



Laporan Mikrokontroler Modul 5



33



Kegiatan Belajar IV : KEYPAD ENCODER Nama Subrutin



: SCAN1



Alamat Awal



: 0624H



Fungsi



: Menyajikan tulisan LED secara multiplek dan melakukan scanning tombol Keypad dalam satu siklus, meliputi 36 buah tombol dan 6 buah LED sevent segment



Jangka Waktu



: 9,97 mili detik



Input Data



: Data karakter penyalaan segment LED berjumlah 6 byte disimpan berurutan pada memori Data Led segment yang paling kanan ditempatkan pada alamat terendah dan Data Led segment yang paling kiri ditempatkan pada alamat tertinggi. Alamat awal tempat simpan data karakter harus dicatat oleh register IX.



Output Data



: Jika tombol tidak ditekan , bit carry flag CY=1. Jika tombol ditekan CY=0 dan memberi kode posisi tombol pada pada register A.



Berikut contoh-contoh penggunaan subrutin SCAN1. Contoh Program 03 Addr



Op-code



No 1



Label



Assembly



keterangan



Program 03 : menyalakan tulisan 123456 selama 1 detik



2 3



SCAN1



EQU 0624H



4



ORG1800



1800



DD 21 0C 18



5



LD IX, ANGKA



1804



06 64



6



LD B, 64H



64H=100D>pengali



7 1806



CD 24 06



8



1809



10 FB



9



Laporan Mikrokontroler Modul 5



Nyala



CALL SCAN1 DJNZ Nyala



34



180B



76



10



HALT



11 180C



12



180D



ANGKA



DB AFH



Data angka 6



13



DB AEH



Data angka 5



180E



14



DB 36H



Data angka 4



180F



15



DB BAH



Data angka 3



1810



16



DB 9BH



Data angka 2



1811



17



DB 30H



Data angka 1



18



END



ANALISA DATA Program 03 : menyalakan tulisan 123456 selama 1 detik SCAN1



Nyala



EQU 0624H



; alamat awal sub rutin SCAN1



ORG1800



; program dimulai dari alamat 1800



LD IX, ANGKA



; IX diisi data nyala segment LED (ANGKA)



LD B, 64H



; kostanta waktu tunda



CALL SCAN1



; menyajikan tulisan LED



DJNZ Nyala



; dec B jump ke Nyala jika Z= 0, lanjut HALT jika Z=1



HALT ANGKA



DB AFH



; data penyalaan LED



DB AEH DB 36H DB BAH DB 9BH DB 30H END



Contoh program 04



Addr



Op-code



No



Laporan Mikrokontroler Modul 5



Label



Assembly



keterangan



35



1



Program 04 : menyalakan tulisan 123456 berkedip tiap



2



1 detik



3



SCAN1



EQU 0624H



4



ORG1800



1800



21 13 18



5



LD HL, ANGKA



1803



E5



6



PUSH HL



1804



DD 21 19 18



7



LD IX, PADAM



1808



DD E3



8



180A



06 64



9



Kedip



EX(SP), IX LD B, 64H



64H=100D>pengali



10 180C



CD 24 06



11



Tampil



CALL SCAN1



180F



10 FB



12



DJNZ Tampil



1811



18 F5



13



JR Tampil



14 1813



AF



15



1814



AE



1815



ANGKA



DB AFH



Data angka 6



16



DB AEH



Data angka 5



36



17



DB 36H



Data angka 4



1816



BA



18



DB BAH



Data angka 3



1817



9B



19



DB 9BH



Data angka 2



1818



30



20



DB 30H



Data angka 1



1819



00



21



DB 00H



Data PADAM



181A



00



22



DB 00H



Data PADAM



181B



00



23



DB 00H



Data PADAM



181C



00



24



DB 00H



Data PADAM



181D



00



25



DB 00H



Data PADAM



181E



00



26



DB 00H



Data PADAM



27



END



PADAM



ANALISA DATA Program 04 : menyalakan tulisan 123456 berkedip tiap 1 detik SCAN1



EQU 0624H



; alamat awal sub rutin SCAN1



ORG1800



; program dimulai dari alamat 1800



LD HL, ANGKA



; HL diisi data nyala segment LED (ANGKA)



Laporan Mikrokontroler Modul 5



36



PUSH HL



; muati lokasi alamat sama dengan isi register SP-1 dengan data dari register HLH dan SP-2 dengan data dari register HLL



LD IX, PADAM Kedip



Tampil



; IX diisi data untuk memadamkan LED(PADAM)



EX(SP), IX LD B, 64H



; kostanta waktu tunda



CALL SCAN1



; menyajikan tulisan LED



DJNZ Tampil



; dec B jump ke Nyala jika Z= 0, lanjut JR Tampil apabila Z=1



JR Tampil



; lompat relatif tanpa syarat ke Tampil



ANGKA DB AFH



; data penyalaan LED



DB AEH DB 36H DB BAH DB 9BH DB 30H PADAM DB 00H



; data untuk memadamkan LED



DB 00H DB 00H DB 00H DB 00H DB 00H END Nama Subrutin



: SCAN



Alamat Awal



: 05FEH



Fungsi



: Menyajikan tulisan LED secara multiplek dan melakukan scanning tombol Keypad dalam satu siklus, meliputi 36 buah tombol dan 6 buah LED sevent segment



Jangka Waktu



: Terus menerus menunggu hingga salah satu tombol ditekan



Input Data



: Data karakter penyalaan segment LED berjumlah 6 byte disimpan berurutan pada memori Data Led segment yang paling kanan ditempatkan pada alamat terendah dan Data Led segment



Laporan Mikrokontroler Modul 5



37



yang paling kiri ditempatkan pada alamat tertinggi. Alamat awal tempat simpan data karakter harus dicatat oleh register IX. Output Data



: Jika tombol tidak ditekan , bit carry flag CY=1. Jika tombol ditekan CY=0 dan memberi kode internal tombol pada pada register A.



Addr



Op-code



No



Label



Assembly



keterangan



1



Program 05: Menyajikan Tulisan SCAN--



2



Penyajian berhenti jika tombol STEP ditekan



3



SCAN



EQU 05FEH



4



ORG1800 LD IX, TULISAN



1800



DD 21 0C 18



5



1804



CD FE 05



6



1807



FE 13



7



CP STEP



1809



20 F9



8



JR NZ, Nyala



180B



76



9



HALT



180C



02



10



180D



02



180E



Nyala



TULISAN



CALL SCAN



DB 02H



Data tulisan -



11



DB 02H



Data tulisan -



23



12



DB 23H



Data tulisan N



180F



BB



13



DB BBH



Data tulisan A



1810



83



14



DB 83H



Data tulisan C



1811



AE



15



DB AEH



Data tulisan S



16



END



ANALISA DATA Program 05: Menyajikan tulisan SCAN--.Penyajian berhenti jika tombol STEP ditekan



Nyala



LDIX,TULISAN



; alamat data untu TULISAN disimpan di register IX



CP STEP



; pembanding dengan penekanan STEP



JRNZ, Nyala



; jika STEP di tekan akan menghasilkan kondisi Z=1 ; program akan continue keperintah HALT



HALT Laporan Mikrokontroler Modul 5



; berhenti 38



TULISAN



DB02H



; data tulisan -



DB02H



; data tulisan -



DB23H



; data tulisan N



DBBBH



; data tulisan A



DB83H



; data tulisan C



DBAEH



; data tulisan S



END



; program selesai



Program 06 Addr



Op-code



No



Label



Assembly



keterangan



1



Program 06 : menyajikan tulisan seperti kakulator , ketikan



2



hanya angka 0 s/d 9 berhenti jika tombol STEP ditekan



3



SCAN



EQU 05FEH



4



BUFDIS



EQU 1A00



5



ORG 1800



1800



DD 21 05 1A



6



LD IX, BUFDIS+5



Membersihkan memori



1804



06 06



7



LD B, 06H



pada alamat 1800-1805



1806



DD 36 00 00



8



LD(IX+00), 00H



sehingga LED pada



180A



DD 2B



9



DEC 1X



awal padam



180C



10 FB



10



DJNZ Hapus



Hapus



11 180E



DD 21 00 1A



12



LD IX, BUFDIS



1812



CD FE 05



13



1815



FE 0A



14



CP 0A



1817



38 07



15



JR C, BC Tabel



Ketik



CALL SCAN



16 1819



FE 13



17



CP STEP



181B



CA 2D 18



18



JPZ, SELESAI



181E



18 F2



19



JR Ketik



Laporan Mikrokontroler Modul 5



39



20 1820



21 F0 07



21



BC Tabel



LD HL, 07F0



1823



85



22



ADD A, I



1824



6F



23



LD L, A



1825



7E



24



LD A, (HL)



1826



DD 2B



25



DEC IX



1828



DD 77 00



26



LD (IX+00), A



182B



18 E5



27



JR Ketik



182D



FF



28



SELESAI



ANALISA DATA Program 06 : menyajikan tulisan seperti kakulator , ketikan hanya angka 0 s/d 9 berhenti jika tombol STEP ditekan LD IX, BUFDIS+5



; membersihkan memori pada alamat 1800 – 1805 sehingga LED pada awal padam



Hapus



LD B, 06H



; Buat cacahan data 06h di register B



LD(IX+00), 00H



; Set data awal dengan 00



DEC 1X



; Kurangi nilai pencatat alamat register IX dengan satu alamat



Ketik



DJNZ Hapus



; Z=0, kembali ke Hapus



LD IX, BUFDIS



; Muat data pada alamat 1A00 ke register IX



CALL SCAN



; Panggil sub rutin SCAN



CP 0A



; Bandingkan isi register A dengan 0



JR C, BC Tabel CP STEP JPZ, SELESAI BC Tabel



: c=1, lompat ke Tabel ; Bandingkan dengan STEP : Z=1, maka lompat ke SELESAI



JR Ketik



; Lompatke Ketik



LD HL, 07F0



; Isi register HL dengan (07F0)



ADD A, I



; Jumlahkan data pada register A dengan 1



LD L, A



; Masukan data pada register A ke register L



Laporan Mikrokontroler Modul 5



40



LD A, (HL)



; Masukan data yang tersimpan di memori tempat simpan data (reg HL) ke register A



DEC IX



; Kurangi register IX dengan 1



LD (IX+00), A



; Masukan data pada register A kealamat awal yang tersimpan di register IX



JR Ketik SELESAI C .



; Lompatke Ketik ; program selesai



KESIMPULAN Pada Kegiatan Belajar V : Keyboard Encoder dapat ditarik kesimpulan bahwa perbedaan dari SCAN1 dengan SCAN adalah SCAN tidak berbataskan oleh waktu sedangkan SCAN1 berbataskan waktu dengan jangka waktu 9,97 mili detik dalam menyajikan tulisan LED secara multiplek dan melakukan scanning tombol Keypad dalam satu siklus, meliputi 36 buah tombol dan 6 buah LED sevent segment.



Laporan Mikrokontroler Modul 5



41



Kegiatan Belajar V : Pemrograman Monitor A.



TUJUAN Memahami pemrograman monitor Komputer Mikro MPF – I



B.



TEORI DASAR MPF-1dilengkapidengan monitor seven segment,keyboard, speaker, memori yang cukupdanI/O untukkeperluan interfacing.Monitor MPF-1 menggunakan 6 buahseven segment dan keyboard menggunakankonfigurasimatrik 6x6 diatassebuah peripheral PPI 8255.



C. ALAT DAN BAHAN 1. Unit Komputer Mikro MPF – I 2. Power Supply



Laporan Mikrokontroler Modul 5



42



D. DATA DAN ANALISA Tabel Data Karakter Penyalaan LED MPF – I :



Laporan Mikrokontroler Modul 5



43



1. Percobaan I: Menyalakan data angka 2 pada LED1 (paling kiri), maka dpat diturunkan data penyalaan dan pemilihan LED, seperti berikut : a. LED 1 paling kiri menyala angka 2 b. LED 2 padam c. LED 3 padam d. LED 4 padam e. LED 5 padam f. LED 6 padam Data penyalaan dan pemilihan LED adalah : a. Data penyalaan angka 2 adalah 9BH b. Data Pemilihan LED1 paling kiri adalah E0H Program :



2. Percobaan II Secara konsep, program sama dengan percobaan I, tetapi ada perbedaan. Perbedaannya adalah seperti berikut : a. Data pemilihan angka 4 adalah 36H b. Data pemilihan LED2 adalah D0H 3. Percobaan III Secara konsep, program sama dengan percobaan I, tetapi ada perbedaan. Perbedaannya adalah seperti berikut : a. Data pemilihan angka 1 adalah 30H b. Data pemilihan LED3 adalah C8H Laporan Mikrokontroler Modul 5



44



4. Percobaan IV Secara konsep, program sama dengan percobaan I, tetapi ada perbedaan. Perbedaannya adalah seperti berikut : a. Data pemilihan angka 9 adalah BEH b. Data pemilihan LED4 adalah C4H 5. Percobaan V Secara konsep, program sama dengan percobaan I, tetapi ada perbedaan. Perbedaannya adalah seperti berikut : a. Data pemilihan angka 6 adalah AFH b. Data pemilihan LED5 adalah C2H 6. Percobaan VI Secara konsep, program sama dengan percobaan I, tetapi ada perbedaan. Perbedaannya adalah seperti berikut : c. Data pemilihan angka 4 adalah 36H d. Data pemilihan LED6 adalah C1H 7. Percobaan VII Penyalaan LED1, LED2, LED3, LED4, LED5, LED6 dengan karakter P. a. LED 1 menyala karakter P b. LED 2 menyala karakter P c. LED 3 menyala karakter P d. LED 4 menyala karakter P e. LED 5 menyala karakter P f. LED 6menyala karakter P Data Pemilihan dan pemilihan LED adalah : a. Data penyalaan karakter P adalah 1FH b. Data pemilihan Semua LED adalah FFH



Laporan Mikrokontroler Modul 5



45



Tujuh contoh program di atas memberi suatu model penyalaan statis yaitu suatu bentuk penyalaan dimana dalam satu waktu hanya ada satu jenis karakter yang dapat disajikan. Hal ini terjadi karena masing-masing segment pada setiap LED terhubung menjadi satu yaitu pada Port B. Agar penyalaan LED dapat menyajikan karakter yang berbeda, maka tiap LED harus dinyalakan secara bergantian dengan perioda nyala tertentu.Jika perioda nyala LED cukup lama maka LED akan Nampak nyala bergantian. Apabila perioda nyala LED dipercepat dengan frekuensi yang cukup maka LED seakan-akan Nampak menyala bersama-sama namun sesungguhnya nyala bergantian. Cara penyalaan LED bergantian dengan perioda yang tepat agar nyala LED cukup terang disebut penyalaan dinamik dan penyalaan tersebut disebut penyalaan secara multiplek. Pola penyalaan multiplek dapat dijelaskan menggunakan algoritma sebagai berikut : a. LED 6 (paling kanan) dinyalakan selama perioda tertentu, sedangkan LED lainnya tetap padam selama perioda itu. b. LED5 dinyalakan selama perioda tertentu sedangkan LED lainnya tetap padam pada perioda itu. c. LED4 dinyalakan selama perioda tertentu sedangkan LED lainnya tetap padam pada perioda itu. d. LED3 dinyalakan selama perioda tertentu sedangkan LED lainnya tetap padam pada perioda itu. e. LED2 dinyalakan selama perioda tertentu sedangkan LED lainnya tetap padam pada perioda itu. f. LED1 dinyalakan selama perioda tertentu sedangkan LED lainnya tetap padam pada perioda itu.



Laporan Mikrokontroler Modul 5



46



Kegiatan Belajar VI : Subrutin Pada MPF-I A.



TUJUAN



Mahasiswa mampu memahami pemakaian fungsi interuksi subrutin HEX7, HEX7SG, RAMCHK, TONE, TONE1K, TONE2K B.



DASAR TEORI Subrutin SCAN dan SCAN1 yang telah dijelaskan adalah subrutin pelayanan yang telah disediakan pada MPF-1. Disamping itu ada subrutin lainnya yaitu : -



SUBROUTINE HEX7 dengan address awal 0689H Fungsi a Output



-



: mengubah data 4 bit terendah di register A menjadi data nyala angka LED. : berada pada register A.



SUBROUTINE HEX7SG dengan address awal 0678H Fungsi



: mengubah data 8 bit (1 byte) di register A menjadi nyala LED.



Output



: berada di memori yang address awal harus dicatat oleh register HL. aaData nyala LED berasal dari nible rendah register A berada di HL dan a nible tinggi berada pada (HL + 1).



-



SUBROUTINE RAMCHK dengan address awal 05F6H Fungsi



: Untuk memeriksa adanya RAM pada suau address denganmenguji pelaksanaan simpannya.



Output



: Jika RAM ada dan pelaksaaan simpannya baik bit zero flag akan menjadi satu. Jika pada address tersebut pelaksanaan simpannya jelek atau tudak ada RAM-nya maka bit zero flagnya menjadi nol.



Cara penggunaaan RAMCHK: LD HL, address awal RAM yang akan diperiksa LB BC, jumlah address RAM yang akan diperiksa Check RAM : CALL RAMCHK; atau call 06F6H JR Z, Check HALT Check



: CP 1 JP PE, Check RAM



Laporan Mikrokontroler Modul 5



47



RST -



SUBROUTINE TONE dengan adddress awal 05E4H Fungsi : Memberikan nada di mana frekunsi dan lamanya dapat kita pilih. Input : Register C sebagai input untuk menentukan frekunsi nada dengan rumusan pendekatan sebagai berikut:  f = 200/10{10+3(isi register C)}KHz  T = {44+13(isi register C)}x2x0.56 mikro detik Register HL diisi dengan bilangan 16 bit dari 0000H sampai maksimum 7FFFH dan isi HL menentukan lama suara yangtimbl pada loudspeker. Output : Nada loudspeaker



-



SUBROUTINE TONE 1K dengan address awal 05DEH Fungsi



: Memberikan nada pada frekunsi 1 KHz dengan lama suara dapat kita pilih.



Input



: Register HL diisi dengan bilangan 0000H hingga 7FFFH untuk menentukan lama suara.



Output



: Nada loudspeaker.



C. DATA DAN ANALISA DATA PROGRAM 7 ADDR



OP-CODE



LABEL



ASSEMBLY



KETERANGAN



Program 07 : Membunyikan Tangga Nada Menggunakan Subrutin TONE TONE



EQU 05E4H ORG 1800



1800



DD 21 1E 18



LD IX, TABEL



Membaca table frekuensi



1804



DD 4E 00



LD C, (IX+00)



nada



1807



21 00 01



180A



CD E4 05



CALL TONE



180D



0E 01



LD C, 01H



Diam untuk sesaat dengan



180F



21 00 01



LD HL, 0100H



frekuensi > 20KHz



1812



CD E4 05



CALL TONE



Bunyi



Laporan Mikrokontroler Modul 5



LD HL, 0100H



48



1815



AF



XOR A



Melanjutkan membaca data



1816



DD 23



INC IX



dan berhenti jika bertemu



1818



DD BE 00



CP (IX+00)



data 00H



181B



20 E7



JRNZ, Bunyi



181D



76



HALT



181E



82 76 86



1821



62 57 6D



1824



45 41 39



1827



33 31 2B



DB 33H, 31H, 2BH



182A



26 21 20



DB 26H, 21H, 20H



182D



20 21 26



DB 20H, 21H, 26H



1830



2B 31 33



DB 2BH, 31H, 33H



1833



39 41 45



TABEL



DB 82H, 76H, 68H DB 62H, 57H, 6DH



SELESA



DB 39H, 41H, 45H



I 1836



4D 57 62



DB 4DH, 57H, 62H



1839



68 76 83



DB 68H, 76H, 83H



183C



00 00



DB 00H, 00H



183C



END



Dari program diatas dapat diketahui bahwa ketika program dijalankan maka akan keluar bunyi : 62H 76H 68H 62H 57H DO



RE



MI



FA



48H 45H 40H



SOL LA



SI



DO



39H 33H 31H 2BH 25H 21H 20H RE



MI



FA



SOL LA



SI



DO



yang tersimpan pada alamat 181E hingga 183B. Lama proses pembacaan dilakukan selama data yang disimpan pada register HL. Dalam contoh program 07 diatas akan dilakukan selama 100H.



Laporan Mikrokontroler Modul 5



49



PROGRAM 8 ADDR



OP-CODE



LABEL



ASSEMBLY



KETERANGAN



Program 08 : Menyajikan Ketikan Angka Seperti Kalkulator Angka Bobot Tinggi Bergeser Kekiri SCAN



EQU 05FEH



HEX7



HEX 0689H ORG 1900



1900



DD 21 F9 18



LD IX, SIMDIS



1904



CD FE 05



1907



CD 89 06



CALL HEX7



190A



DD 2B



DEC IX



190C



DD 77 00



LD (IX+00), A



190F



18 F3



JR Tombol



18F9



00



18FA



00



DB 00H



18FB



00



DB 00H



18FC



00



DB 00H



18FD



00



DB 00H



18FE



00



DB 00H



Tombol



SIMDIS



CALL SCAN



DB 00H



Dari program diatas dapat diketahui bahwa ketika program dijalankan maka tampilan awal seven segment tidak menampilkan angka. Hal ini terjadi karena data yang dibaca pertama kali adalah data yang tersimpan pada alamat 18F9 hingga 18FE. Namun setelah ditekan angka 1, maka akan memunculkan angka 1 begitu pula ketika menekan angka 2 akan menampilkan angka 2 dimana angka 1 akan bergeser kekiri dan seterusnya hingga 6 karakter PROGRAM 9 ADDR



OP-CODE



LABEL



ASSEMBLY



KETERANGAN



Program 08 : Menyajikan Ketikan Angka Seperti Kalkulator Angka Bobot Tinggi Bergeser Kekiri SCAN



EQU 05FEH



HEX7



HEX 0689H



Laporan Mikrokontroler Modul 5



50



ORG 1900 1900



DD 21 F9 18



1904



CD FE 05



1907



LD IX, SIMDIS Tombol



CALL SCAN



Terima ketikan jika tombol



FE 0A



CP 0AH



yang ditekan bukan 0 s/d 9



1909



30 F9



JRNC, Tombol



ulang



190B



CD 89 06



CALL HEX7



190E



DD 2B



DEC IX



1910



DD 77 00



LD (IX+00, A



1813



18 EF



JR Tombol



18F9



00



18FA



00



DB 00H



18FB



00



DB 00H



18FC



00



DB 00H



18FD



00



DB 00H



18FE



00



DB 00H



SIMDIS



DB 00H



Dari program diatas dapat diketahui bahwa ketika program dijalankan maka tampilan awal seven segment tidak menampilkan angka. Hal ini terjadi karena data yang dibaca pertama kali adalah data yang tersimpan pada alamat 18F9 hingga 18FE. Namun setelah ditekan angka 1, maka akan memunculkan angka 1 begitu pula ketika menekan angka 2 akan menampilkan angka 2 dimana angka 1 akan bergeser kekiri dan seterusnya hingga 6 karakter. Setelah 6 karakter ketika ditekan angka lagi maka seven segment paling kiri akan memunculkan angka tersebut dan angka paling kanan akan hilang, begitu pula seterusnya. PROGRAM 10 ADDR



OP-CODE



LABEL



ASSEMBLY



KETERANGAN



Program 11 : Menyajikan Ketikan Kode Internal Tombol SCAN1



EQU 0624H



HEX7S



EQU 0678H



G ORG 1900



Laporan Mikrokontroler Modul 5



51



1900



DD 21 11 19



1904



CD FE 05



1907



LD IX, SIMDAT ScanPos



CALL SCAN



Terima Ketikan Jika tombol



38 FB



JRC, ScanPos



yang ditekan



1909



21 11 19



LD HL, SIMDAT



190C



CD 78 06



CALL HEX7SG



190F



18 F3



JRScanPos



1911



00



SIMDA



DB 00H



T 1912



00



DB 00H



1913



00



DB 00H



1914



00



DB 00H



1915



00



DB 00H



1916



00



DB 00H



Dari program diatas dapat diketahui bahwa ketika program dijalankan maka akan menampilkan ketikan kode posisi tombol. PROGRAM 11 ADD



OP-CODE



LABEL



ASSEMBLY



KETERANGAN



R Program 10 : Menyajikan Ketikan Kode Posisi Tombol SCAN1



EQU 0624H



HEX7SG



EQU 0678H ORG 1900



1900



DD 21 11



LD IX, SIMDAT



19 1904



CD 24 06



1907



ScanPos



CALL SCAN1



Terima Ketikan Jika tombol



38 FB



JRC, ScanPos



yang ditekan



1909



21 11 19



LD HL, SIMDAT



190C



CD 78 06



CALL HEX7SG



190F



18 F3



JRScanPos



Laporan Mikrokontroler Modul 5



52



Dari program diatas dapat diketahui bahwa ketika program dijalankan maka tampilan awal seven segment tidak menampilkan angka. Hal ini terjadi karena data yang dibaca pertama kali adalah data yang tersimpan pada alamat 1911 hingga 1916. Namun setelah ditekan angka 1, maka akan memunculkan angka 01 begitu pula ketika menekan angka 2 akan menampilkan angka 02 dan angka 01 akan hilang, begitu pula seterusnya.



Laporan Mikrokontroler Modul 5



53



 Tugas-tugas 1. Program Tulisan berjalan “PRODI PENDIDIKAN TEKNIK ELEKTRONIKA ANGKATAN 2012 FT UNY” a. Flowchart Start IX ← Huruf D ← 39 B ← 32 SCAN1 B ← B-1



Z=0



YA



IX ← IX + 1 D←D-1



Z=0



Laporan Mikrokontroler Modul 5



YA



54



b. Op-code Addr



Kode Operasi



No Label Assembly Keterangan Menyalakan tulisan berjalan “PRODI PENDIDIKAN TEKNIK ELEKTRONIKA ANGKATAN 2012 FT UNY”



1800 1804 1806



DD 21 3A 19 16 39 06 32



1808 180B 180D 180F 1810 1813



CD 24 06 10 FB DD 2B 15 C2 06 18 C3 00 18



1902 1903 1904 1905 1906 1907 1908 1909 190A 190B 190C 190D 190E 190F 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 191A 191B 191C 191D 191E 191F 1920 1921 1922



B6 23 B5 00 87 0F 00 9B 30 BD 9B 00 23 3F 87 3F 97 AF 23 3F 00 3F 97 30 23 BD 03 87 97 8F 85 8F 00



Laporan Mikrokontroler Modul 5



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44



Ulang Geser



LD IX, Huruf LD D, 39H LD B 32H CALL SCAN1 DJNZ, Tunda DEC IX DEC D JPNZ, Geser JP, Ulang DB B6H DB 23H DB B5H DB 00H DB 87H DB 0FH DB 00H DB 9BH DB 30H DB BDH DB 9BH DB 00H DB 23H DB 3FH DB 87H DB 3FH DB 97H DB AFH DB 23H DB 3FH DB 00H DB 3FH DB 97H DB 30H DB 23H DB BDH DB 03H DB 87H DB 97H DB 8FH DB 85H DB 8FH DB 00H



Data Huruf Y Data Huruf N Data Huruf U PADAM Data Huruf T Data Huruf F PADAM Data Huruf 2 Data Huruf 1 Data Huruf 0 Data Huruf 2 PADAM Data Huruf N Data Huruf A Data Huruf T Data Huruf A Data Huruf K Data Huruf G Data Huruf N Data Huruf A PADAM Data Huruf A Data Huruf K Data Huruf I Data Huruf N Data Huruf O Data Huruf R Data Huruf T Data Huruf K Data Huruf E Data Huruf L Data Huruf E PADAM



55



1923 1924 1925 1926 1927 1928 1929 192A 192B 192C 192D 192E 192F 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 193A 193B 193C 193D 193E 193F



97 30 23 97 8F 87 00 23 3F 97 30 B3 30 B3 23 8F 1F 00 30 B3 BD 03 1F 00 00 00 00 00 00



Laporan Mikrokontroler Modul 5



45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73



Huruf



DB 97H DB 30H DB 23H DB 97H DB 8FH DB 87H DB 00H DB 23H DB 3FH DB 97H DB 30H DB B3H DB 30H DB B3H DB 23H DB 8FH DB 1FH DB 00H DB 30H DB B3H DB BDH DB 03H DB 1FH DB 00H DB 00H DB 00H DB 00H DB 00H DB 00H



Data Huruf K Data Huruf I Data Huruf N Data Huruf K Data Huruf E Data Huruf T PADAM Data Huruf N Data Huruf A Data Huruf K Data Huruf I Data Huruf D Data Huruf I Data Huruf D Data Huruf N Data Huruf E Data Huruf P PADAM Data Huruf I Data Huruf D Data Huruf O Data Huruf R Data Huruf P PADAM PADAM PADAM PADAM PADAM PADAM



56



2. Program Papan Skor regu A, B dan C a. Flowchart Start B ← 06 IX ← 1900



A B ← 02



(IX+00) ← BD



PUSH BC



IX ← IX + 01



SCAN



B←B-1 A



Z=0 IX ← 1900



C=0



SCAN



A



0A



HEX7 IY + 00 ← A



0A



IY ← IY + 1 Z=1 POP BC IY ← 1905 A



B←B-1



0B A



Z=0



Z=1 IY ← 1903 A



0C A Z=1



A



Laporan Mikrokontroler Modul 5



57



b. Op-code Addr 1800 1802 1806 180A 180C 180E 1812 1815 1817 1819 181B 181D 181F 1821 1824 1828 182B 182F 1832 1836 1838 1839 183C 183E 1840 1843 1846 1848 1849 184B 184E



Kode Operasi No Label Assembly Program papan skor regu A, B dan C 06 06 DD 21 00 19 DD 36 00 BD DD 23 10 F8 DD 21 00 19 CD FE 05 FE 0A 28 0B FE 0B 28 0E FE 0C 28 11 C3 0E 18 FD 21 05 19 C3 36 18 FD 21 03 19 C3 36 18 FD 21 01 19 06 02 C5 CD FE 05 FE 0A 30 F9 CD 89 06 FD 77 00 FD 2B C1 10 ED C3 0E 18 FF



Laporan Mikrokontroler Modul 5



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31



Hapus Input



Regu A Regu B Regu C Proses Cetak Baca



LD B, 06 LD IX, 1900 LD(IX+00), BD INC IX DJNZ, Hapus LD IX 1900 CALL SCAN CP 0A JRZ, Regu A CP 0B JRZ, Regu B CP 0C JRZ, Regu C JP Input LD IY, 1905 JP Proses LD IY, 1903 JP Proses LD IY, 1901 LD B, 02 PUSH BC CALL SCAN CP 0A JRNZ, Baca CALL HEX7 LD (IY + 00), A DEC IY POP BC DJNZ, Cetak JP, Input RST 38



Keterangan



BD =Angka 0



58



3. Program Counter 2 digit a. Flowchart



Start IX ← 1900 HL← 1900



A



A ← 00 POP HL POP AF



PUSH AF PUSH HL



A ← A-1



HEX7SG



DAA



SCAN



A



10



A



Z=1



A



A



POP HL POP AF A ← A-1



10



DAA Z=1



Laporan Mikrokontroler Modul 5



A



59



b. Op-Code Addr 1800 1804 1807 1809 180A 180B 180E 1811 1813 1815 1817 1819 181C 181D 181E 1820 1821 1824 1825 1826 1828 1829



Kode Operasi DD 21 00 19 21 00 19 3E 00 F5 E5 CD 78 06 CD FE 05 FE 10 28 07 FE 11 28 0B C3 0E 18 E1 F1 C6 01 27 C3 09 18 E1 F1 D6 01 27 C3 09 18



Laporan Mikrokontroler Modul 5



No Label Assembly Program Counter 2 digit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22



Tampil Baca



Tmbah



Kurang



Keterangan



LD IX, 1900 LD HL, 1900 LD A, 00 PUSH AF PUSH HL CALL HEX7SG CALL SCAN CP 10 JRZ, Tambah CP 11 JRZ, Kurang JP, Baca POP HL POP AF ADD A, 01 DAA JP, Tampil POP HL POP AF SUB 01 DAA JP, Tampil



60



4. Program Counter 4 digit a. Flowchart



A



Start



POP HL



IX ←1900



A←L



HL ←0000



A ← A+1



HL ←0000



DAA



PUSH HL



L←A



HL ←1900



A←H



HEX7SG



A ← A + 00 + Cy



POP HL



DAA



A ←H



H←A



PUSH HL



A



HL ←H1902 POP HL HEX7SG A←L SCAN A ← A+1 A



10 Z=1



A



DAA A



L←A A←H



11



A ← A + 00 + Cy Z=1



B DAA H←A



Laporan Mikrokontroler Modul 5



61



b. Op-code Address Kode Operasi



No



Label



Assembly



1800



1



LDIX, 1900



1804 1807 1808 1809 180B 180E 180F 1810 1811 1814 1817 181A 181C 181F 1822 1825



DD 21 00 18 21 00 00 7D E5 21 00 19 CD 78 06 E1 7C E5 21 02 19 CD 78 06 CD FE 05 FE 10 CA 28 18 FE 11 18 CA 36 18 C3 18 18



2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17



LDHL, 0000 LDA, L PUSH HL LDHL, 1900 CALL HEX7SG POP HL LDA, H PUSH HL LDHL, 1902 CALL HEX7SG CALL SCAN CP 10 JPZ, Tambah CP11 JPZ, Kurang JP, BaCa



1828 1829 182A 182C 182D 182E 182F 1831 1832 1833



E1 7D C6 01 27 6F 7C CE 00 27 6F C3 07 18



18 19 20 21 22 23 24 25 26 27



Tambah



POP HL LDA, L ADDA, 01 DAA LDL, A LDA, H ADC, 00 DAA LDH, A JP Tampil



1836 1837 1838 183A 183B 183C 183D 183F 1840 1841



E1 7D DB 01 27 6F 7C DF 00 27 6F C3 07 18



28 29 30 31 32 33 34 35 36 37



Kurang



POP HL LDA, L SUB 01 DAA LDL, A LDA, H SBC 00 DAA LDH, A JP Tampil



Keterangan



Program 4 digit counter Saat tombol + ditekan maka data akan bertambah dan saat tombol minus ditekan maka data akan berkurang



Laporan Mikrokontroler Modul 5



Tampil



Baca



62