Program Menampilkan Karakter pada LED, MONITOR dan 7 Segment I. TUJUAN PRAKTIKUM Saya dan partner saya dapat mengaplikasikan instruksi untuk pemrograman untuk memfungsikan 7 segment, LED dan monitor
II. -
TEORI DASAR Subrutin Membaca Keyboard Alamat awal: $FF1 Register Output : Register C Contoh : 7200 CALL FF1 RST 1 Go tekan tombol A maka register C akan memunculkan kode ASCII dari tombol yang kita tekan. Menampilkan Karakter Ke Layar Monitor Alamat awal: $FEE Register input : Register C Contoh : 7300 MVI C,49 CALL FEE RST 1 Go maka akan muncul huruf I Jika kita ingin membuat tulisan IBU maka programnya menjadi seperti dibawah ini: MVI C,49 CALL FEE MVI C,42 CALL FEE MVI C,55 CALL FEE RST 1 Maka tulisan IBU akan muncul Bagaimana jika karakter yang dimasukkan ada 100 ? Maka kita akan menggunakan program ini
77000 CALL FF1 CALL FEE JMP 7700 Tekan Go tulis kami sedang belajar pemrograman INTEL 8085 tekan CR tekan tombol panah bawah Unit Peraga 7 Segment Kita akan mencoba untuk memfungsikan kedelapan 7 segment yang ada di midicom. Kedelapan 7 segment hanya bisa difungsikan salah satunya saja dalam satu waktu agar : Supaya menghemat daya Supaya lebih mudah dikontrol Supaya jumlah port yg digunakan cukup 2
Pada unit peraga 7 segment akan terlibat 2 port Port 40: harus diisi kode pola karakter Port 42: harus diisi kode posisi karakter
D7
D6
D5
D4
D3
D2
D1
D0
8
50
8
40
8
10
8
00
8
D0
8
C0
8
90
8
80
Jika kita ingin membuat angka 2 berarti kita harus memberi logik 1 pada segment H 0 G 1 F 0 E 1 5B D 1 C 0 B 1 A 1
Programnya adalah: MVI A,D0 OUT 42 MVI A,5B OUT 40 RST 1 Instruksikan go maka akan muncul akan 2 pada 7 segment.
III.
1.
Soal ini telah terjawab pada landasan teori diatas 2. Buat program untuk decimal up counter modulus 10 yang outputnya berubah setiap setengah detik. Tampilkan pada unit peraga 7 segment secara berulang. Pertama kita akan menyimpan terlebih daulu karakternya dengan memanfaatkan alamat memori ALAMAT MEMORI B000 B001 B002 B003 B004 B005 B006 B007 B008 ASCII OUTPUT 3F 06 5B 4F 66 6D 7D 07 7F B009 6F
0 1 2 3 4 5 6 7 8
FLOWCHART :
Alamat Hex-code Mnemonics 7700 26 B0 MVI H,B0 7702 3E C0 MVI A,C0 7704 DE 42 OUT 42 7706 06 00 MVI B,00 7708 68 MOV L,B 7709 7E MOV A,M 770A D3 40 OUT 40 770C 11 F401 LXI D,01F4 770F CD FA04 CALL 0FFA 7712 04 INR B 7713 78 MOV A,B
7714 FE 0A CPI 0A 7716 C2 0875 JNZ 7508 7719 C3 0675 JMP 7506 Kita akan menggunakan register B sebagai counter, lalu memilih port mana yang akan digunakan dengan memasukkannya ke akumulator. Lalu kita akan memasukkan register B ke register yang selanjutnya digunakan sebagai counter. Karena kita memanfaatkan alamat memori maka kita masukkan 2 bit terakhir yang tadi kita masukkan ke B ke akumulator. Lalu mengembalikan isi akumulator ke port 40. Untuk delaynya kita gunakan instruksi DE 1F4 dan CALL FFA. 1F4 kita dapatkan setelah merubah 0.5 sekon ke dalam bentuk hexa. Agar membentuk up counter maka kita harus menambahkan register B sebagai counter dengan konstanta 1. Lalu kita bandingkan dengan 0A agar B stop menjadi counter ketika menemukan 0A. Kita akan menggunakan untuk mendeteksi hasil instruksi perbandingan.
3.
Buat program untuk decimal up counter modulus 16 yang outputnya berubah setiap setengah detik. Tampilkan pada unit peraga 7 segment secara berulang. Isi memori terlebih dahulu
ASCII OUTPUT 3F 06 5B
4F 66 6D
3 4 5
0 1 2
B006 B007 B008 B009 B00A B00B B00C B00D B00E B00F
7D 07 7F 6F 77 7C 69 53 79 71
6 7 8 9 A b C d E F
FLOWCHART
Analisa flowchart pada nomor 3 ini sama saja dengan nomor dua yang dirubah hanya pada saat membandingkan isi akumulator menjadi dengan 10 karena kita kini menggunakan modulus 16.
Programnya Alamat Hex-code Mnemonics 7700 26 B0 MVI H,B0 7702 3E C0 MVI A,C0 7704 DE 42 OUT 42 7706 06 00 MVI B,00 7708 68 MOV L,B 7709 7E MOV A,M 770A D3 40 OUT 40 770C 11 F401 LXI D,01F4 770F CD FA04 CALL 0FFA
04 78 FE 10 C2 0875 C3 0675
4.
Buat program untuk decimal up counter modulus 16 yang outputnya berubah setiap setengah detik. Tampilkan pada unit peraga 7 segment secara berulang beserta LED FLOWCHART
Analisa pada flowchart ini sama saja dengan flowchart nomor 3 dan 2 hanya saja sebelum delay kita menambahkan 2 instruksi yang selanjutnya kita gunakan untuk
memfungsikan LED. Lalu kita menyisipkan programnya dengan menggunakan menu Z sebagai relocator. Caranya: Z Masukan alamat awal, alamat ahir , alamat dimana program akan disisipkan masukkan program yang akan disisipkan
CR
PROGRAMNYA Alamat Hex-code Mnemonics 7700 26 B0 MVI H,B0 7702 3E C0 MVI A,C0 7704 DE 42 OUT 42 7706 06 00 MVI B,00 7708 68 MOV L,B 7709 7E MOV A,M 770A D3 40 OUT 40 770C 11 F401 LXI D,01F4 770F CD FA04 CALL 0FFA 7712 78 MOV A,B 7713 D3 50 OUT 50 7715 04 INR B 7716 78 MOV A,B 7717 FE 10 CPI 10 7719 C2 0875 JNZ 7508 771C C3 0675 JMP 7506
5.
Buat program untuk decimal up counter modulus 16 yang outputnya berubah setiap setengah detik. Tampilkan pada unit peraga 7 segment secara berulang beserta LED dan Monitor.
Kini kita mempunyai 2 kelompok data yaitu Output 0 1 2 3 4 5 6 7 8 9 A B C D E F Data output + 07 + 30 Data ouput + 30 ASCII
FLOWCHARTNYA
Analisa untuk flowchart ini hampir sama dengan flowchart nomor 4 hanya saja sebelum delay kita menambahkan beberapa instruksi yang akan mengatur pemasukan 2 data berbeda diatas. Pertama kelompok kita data akan memproses yaitu
pertama
kelompok angka register B dimasukan ke akumulator lalu di tambah konstanta 30, lalu kita bandingkan dengan 3A, jika data lebih kecil dari 3A maka carry sama dengan 1 dan akan langsung ke proses menampilkan dan jika data lebih besar maka carry sama dengan 0 dan akan diproses untuk selanjutnya ditambah dengan 07 karena termasuk kelompok data 2 yaitu huruf yang perlu ditambah 07 lagi untuk menghasilkan outputnya.
7702 7704 7706 7708 7709 770A 770C 770D 770F 7711 7714 7713 7717 771A 771D 7720 7721 7723 7724 7725 7727 772A
3E C0 MVI A,C0 DE 42 OUT 42 06 00 MVI B,00 68 MOV L,B 7E MOV A,M D3 40 OUT 40 78 MOV A,B C6 30 ADI 30 FE 3A CPI 3A DA 16 JC C6 07 ADI 07 77 MOV C,A CD EEOF CALL FEE 11 F401 LXI D,01F4 CD FA04 CALL 0FFA 78 MOV A,B D3 50 OUT 50 04 INR B 78 MOV A,B FE 10 CPI 10 C2 0875 JNZ 7508 C3 0675 JMP 7506
6.
Lakukan soal nomor 5 hanya saja output monitor tidak berjalan jadi aktifkan backspace agar data tetap di satu tempat. Programnya Alamat Hex-code Mnemonics 7700 26 B0 MVI H,B0 7702 3E C0 MVI A,C0 7704 DE 42 OUT 42 7706 06 00 MVI B,00 7708 68 MOV L,B 7709 7E MOV A,M 770A D3 40 OUT 40 770C 78 MOV A,B 770D C6 30 ADI 30 770F FE 3A CPI 3A 7711 DA 16 JC 7714 C6 07 ADI 07 7713 77 MOV C,A 7717 CD EEOF CALL FEE 771A 11 F401 LXI D,01F4 771D CD FA04 CALL 0FFA 7720 0E 08 MVI C,08 7722 CD EE0F CALL FEE 7725 78 MOV A,B 7726 D3 50 OUT 50 7728 04 INR B 7729 78 MOV A,B 772A FE 10 CPI 10 772C C2 0875 JNZ 7508 772F C3 0675 JMP 7506
FLOWCHART
Pada analisa kali ini kita hanya menambahkan 2 buah program setelah delay, kita memasukan konstanta 08 ke dalam register C untuk mengaktifkan backspace agar output tetap keluar di tempat yang sama
KESIMPULAN
Kita dapat melihat output di 7 segment, LED maupun monitor dengan menggunakan beberapa instruksi. Kali ini kita harus lebih memahami kode ASCII agar lebih mudah mempelajari subrutin