Tugas 4 Praktek Microprossesor
Merlin Kusuma Efendi_023 | 22.39 |
Laporan 4
Praktikum Mikroprocessor
“INPUT
DIPSWITCH DENGAN TAMPILAN LED”
Nama Kelompok : 6
- Merlin Kusuma Efendi (1001081023)
Patner :
-
Winarni Sari
(1001081041)
-
Reni Fatimah
(1001081025)
A.
Dasar
Teori
Gambar 1. Aplikasi DIPSWITCH dan
LED
Perhatikan
gambar 1. di atas. DIPSWITCH digunakan sebagai input digit dan mempunyai logika
‘0’ apabila saklar ke arah ON dan ‘1’
jika ke arah OFF.
Resistor
pull up berfungsi untuk :
·
memastikan
logika ‘1’ pada saat DIPSWITCH OFF
·
port 0 bersifat open drain sehingga untuk membuat rangkaian close loop, maka butuh tambahan resistor
A. Alat dan bahan (perangkat lunak) yang digunakan adalah
-
PC
- Proteus 7.8
-
Perangkat lunak Turbo Assamble
B.
Langkah Kerja
Langkah Kerja
- Buatlah program pada DOS editor dengan mengaktifkan DOS prompt dan bukalah folder compiler untuk mcs51.
- Ketiklah program pada DOS teks editor dan simpanlah dalam bentuk namafile.asm

Setelah dihasilkan file dengan ekstension obj, lanjutkanlah meng-compile program dengan instruksi L8051
dan inputkan
nama file yang akan dicompile sehingga
diperoleh
Output format
: Intel Hex
- Cek jumper pada system mikrocontroler yang akan digunakan dengan menempatkan jumper seven segment dengan menghubungkan pin tengah – 0 pada terminal jumper.
- Pada DOS prompt, ketik

- Dari tampilan program AEC_ASP, pilihlah option

- Ketikkan nama file dengan extension hex pada Input file name: yang tampil pada DOS prompt dan selanjutnya akan tampil


Pilih I. Reset sehingga bernilai Low dan lihat
output yang dihasilkan pada LED dengan memberikan input pada dipswitch
Percobaan Pratikum 1
ORG 0H
JMP
START
START:
MOV
P2,P0
SJMP
START
Hasil Output :
Percobaan
Pratikum 2
ORG 0H
JMP START
START:
MOV
r0,P0
CJNE
r0,#03h,STOP
MULAI:
MOV a,#1
MOV R0,#7
KIRI:
MOV p2,a
ACALL DELAY
rl a
DEC R0
CJNE R0,#0,KIRI
mov r0,#7
kanan:
MOV P2,A
ACALL DELAY
RR A
DEC R0
CJNE R0,#0,kanan
SJMP START
DELAY:
MOV R7,#00h
D3:
MOV R6,#00h
D2:
MOV R5,#00h
D1:
INC R5
CJNE R5,#50H,D1
INC R6
CJNE R6,#50H,D2
INC R7
CJNE R7,#50H,D3
RET
STOP:
MOV P2, 00h
SJMP START
Output
:
Tugas 2 Paktek Microprossesor
Merlin Kusuma Efendi_023 | 19.05 |
Laporan 2
Praktikum Mikroprocessor
Pemograman Assambler 2
Nama Kelompok : 6
- Merlin Kusuma Efendi (1001081023)
Patner :
- Winarni Sari (1001081041)
- Reni Fatimah (1001081025)
A. Dasar Teori
Secara umum struktur penulisan suatu segment dapat dilukiskan sebagai berikut:
[Nama Segment] segment
ASSUME CS:[Segment] DS:[Segment] SS:[Segment] ES:[Segment]
Org 100h
[label]: [Program ASM]
-
-
[nama segment] ends
End [label]
Penulisan awal program juga ditentukan oleh ekstensi program COM atau EXE
Pada Penulisan program .COM pemberian Org 100h, merupakan awal mulai menulis program pada alamat 100h. Hal ini hanya berlaku untuk program yang berektensikan com, karena 100h alamat sebelum digunakan untuk PSP (program segment prefiks). Disamping itu juga Org menujuk lokasi memori tertentu dari suatu segment.
Penulisan Assume cukup dituliskan 1 segmen saja, yaitu
Assume CS:Code_Seg
Tetapi bila menuliskan program .EXE, penulisan segmen harus benar-benar menunjukkan arah yang benar, contoh:
Assume CS:Code_Seg DS:Data_Seg SS:Stack_Seg ES:0b800h
Org 0h
Syarat Label:
- Harus unik
- Maksimal 31 karakter
- Karakter yang boleh digunakan:
o Alphabet
o Angka
o Tanda Dollar ($)
o Tanda Tanya (?)
o Titik (.)
o Tanda satuan (@)
- Bukan merupakan suatu perintah assambler
- Label hanya dapat didefinisikan satu kali dalam program
Mendefinisikan variabel
Pada bahasa assambler, variabel dibagi menjadi 2 jenis:
1. variabel yang dapat dimodifikasi isinya
2. variabel yang tidak dapat dimodifikasi isinya
Variabel yang dapat dimodifikasi isinya
Variabel ini adalah variabel yang memakan tempat pada memori.
Adapun besaran-besaran variabel tersebut adalah
- DB (Define Byte), mendefinisikan variabel per Byte
- DW (Define Word), mendefinisikan variabel per Word (2 Byte)
- DD (Define Double Word) mendefinisikan variabel per 2 Word (4 Byte)
Tata penulisan variabel jenis ini adalah
Label (DB/DW/DD) [Isi Variabel]
Contoh
Satu db ‘Aku adalah anak gembala $’
Dua db 1234h
Tiga db 12h
Variabel yang tidak dapat dimodifikasi isinya
Variabel ini digunakan untuk menggantikan besaran tertentu dengan menggunakan kata equ dan variabel ini tidak menggunakan memori.
Contoh penggunaan variabel ini adalah
Satu equ 2190h
Dua equ 2323h
Int 21h service number 09h
Interupt ini digunakan untuk mencetak suatu kalimat, dengan syarat-syarat sebagai berikut
- Masukkan service number interupt pada register AH
- Masukkan segment dari variabel tempat menampung kalimat yang akan dicetak ke register DS dan offsetnya ke register DX.
- Kalimat yang akan dicetak harus diakhiri dengan tanda $ (dollar)
B. Alat dan bahan (perangkat lunak) yang digunakan adalah
- PC
- Perangkat lunak Turbo Assamble
C. Langkah Kerja
- Klik Start -> pada menu Start pilih Run -> pada Run ketikan Cmd (Command Prompt).
- Kemudian pada Command Prompt, edit untuk membuat job.
- Kemudian save job, yang tersimpan dalam bentuk .asm
- Lalu pilih exit untuk kembali ke command.
- Lalu jalankan perintah dengan mengetik : TASM. Nama job.asm
- Dan TLINK /t nama job
- Dan hasilnya akan muncul, kemuadian ketik nama job untuk memasukkan password yang telah disediakan.
Percobaan Pratikum 1
Code_seg segment
Assume CS:Code_seg
Org 100h
Start: jmp hapus
kunci db 'Masukkan Password : $'
betul db 13,10,'Password Anda Betul',13,10,'$'
salah db 13,10,'Password Anda Salah',13,10,'$'
hapus: mov ah,07h
mov ch,00
mov cl,00
mov dh,56
mov dl,100
mov bh,07h
int 10h
input: mov ah,09h
mov dx,offset kunci
int 21h
mov ah,01h
int 21h
cmp al,'A'
je keluar
mov ah,09h
mov dx,offset salah
int 21h
loop input
keluar: mov ah,09h
mov dx,offset betul
int 21h
int 20h
Code_seg Ends
End Start
ð TASM ain.asm dan TLINK /t ain
ð Test password betul
ð Test password salah
Percobaan Pratikum 2
Code_seg segment
Assume CS:Code_seg
Org 100h
Start: Jmp mulai
kata db 'masukkan password: $'
password db 'merlin'
tampung db 6,?,6 dup(?)
kata1 db 13,10,'password anda salah ',13,10,13,10,'$'
kata2 db 13,10,'password anda benar ',13,10,13,10,'$'
mulai: mov ah,09h
mov dx,offset kata
int 21h
mov ah,0ah
mov dx,offset tampung
int 21h
push ds
pop es
mov di,offset password
mov si,offset tampung + 2
mov cx,05h
cld
ulang: cmpsb
jc salah
loop ulang
call betul
int 20h
salah: mov ah,09h
mov dx,offset kata1
int 21h
jmp mulai
betul proc
mov ah,09h
mov dx,offset kata2
int 21h
ret
Code_seg Ends
End Start
ð TASM belajar.asm dan TLINK /t belajar
ð Data, dan menu yang ada pada data yang telah di inputkan
ð Menu 2, muncul hasilnya sebagai berikut
Percobaan Pratikum 3
merlin segment
Assume CS:merlin
Org 100h
Start: Jmp mulai
kata db 13,10,'masukan password: $'
kata2 db '$',13,10,13,10
Jawab1 db 13,10,13,10,'welcome at Merlin Asus ^_^',13,10,13,10,'$'
Jawab2 db 13,10,'pasword salah',13,10,'$'
biodata db 13,10,13,10,'Nama : Merlin Kusuma Efendi',13,10
db 'BP : 1001081023',13,10
db 'Kelas : TK 2 A',13,10
db 'Hobby : ONline',13,10
db 'Kuliah favorite : praktek mikroprosessor',13,10
db 'Alamat E-mail : Merlinkusumaefendi@yahoo.co.id',13,10
db 'Alamat Blog : Merlinkusumaefendi.blogspot.com',13,10
db 'Alamat Facebook : Merlin Kusuma Negara',13,10
db 'Asal : Painan, Pesisir Selatan',13,10,'$'
pnp db 13,10,13,10,'POLITEKNIK NEGERI PADANG',13,10,13,10
db 'Jurusan TI : ',13,10,13,10
db 'Program Study : ',13,10,13,10
db '1. Teknik Komputer',13,10,13,10
db '2. Manajemen Informatika',13,10,'$'
Tanya db 'MENU PILIHAN !',13,10
db '1. Biodata',13,10
db '2. Jurusan TI', 13,10
db '3. exit' ,13,10,13,10
db 'Masukkan Angka (1/2/3) !', 13,10,13,10
db 'Jawaban anda: $'
Mulai: mov ah,09h
mov dx,offset kata
int 21h
Ulang:mov ah,01h
int 21h
cmp al,'0'
je mulai1
jne salah
Mulai1: mov ah,09h
mov dx,offset kata2
int 21h
benar1: mov ah,01h
int 21h
cmp al,'2'
je mulai2
jne salah
Mulai2: mov ah,09h
mov dx,offset kata2
int 21h
benar2: mov ah,01h
int 21h
cmp al,'3'
je benar3
jne salah
salah: mov ah,09h
mov dx,offset jawab2
int 21h
jmp mulai
benar3:mov ah,09h
mov dx,offset jawab1
int 21h
login : mov ah,09h
mov dx,offset tanya
int 21h
pilih : mov ah ,01h
int 21h
cmp al,'1'
je data
cmp al,'2'
je poli
cmp al,'3'
je exit
jne login
data : mov ah,09h
mov dx,offset biodata
int 21h
jmp login
poli : mov ah,09h
mov dx,offset pnp
int 21h
jmp login
exit:int 20h
merlin Ends
End Start
Hasil dari menu percobaan :
D. Kesimpulan
1. Pada pemograman bahasa assembler 1
Mov ah, 02 è untuk memulai program
Pada pemograman bahasa assembler 2
mov ah,09h è untuk memulai program dan menampilkan kata
2. Pada pemograman bahasa assembler1, mov ah,02h untuk memulai program karna yang di gunakan angka hexa.
Sedangkan pada pemograman bahasa assembler2, mov ah,09h untuk memulai program karna yang digunakan offset kata