"Postingan ini dibuat dalam rangka memenuhi tugas Mikroprosesor dan Antarmuka (UTS)"
Aplikasi kontrol sunu ini menggunakan sistem minimum 8088 dengan input berupa keypad dan output berupa 7-segment.
Untuk menjalankan program ini, dibutuhkan aplikasi Emu8088 dan Proteus 8. Aplikasi tersebut dapat diunduh di link Emu8088 dan Proteus 8.
Adapun program yang digunakan adalah sebagai berikut :
; PROGGRAM11.ASM DIGUNAKAN UNTUK INPUT KEYPAD
; DITAMPILKAN KE DISPLAY 7-SEGMENT
CODE_SEG SEGMENT
ASSUME CS:CODE_SEG,DS:CODE_SEG,SS:CODE_SEG
ORG 100H
start: jmp mulai
porta equ 00h
portb equ 01h
portc equ 02h
cw equ 03h
port1a equ 10h
port1b equ 11h
port1c equ 12h
cw1 equ 13h
angka0 equ 00100000B
angka1 equ 01111100B
angka2 equ 00001010B
angka3 equ 01001000B
angka4 equ 01010100B
angka5 equ 01000001B
angka6 equ 00000001B
angka7 equ 01111000B
angka8 equ 00000000B
angka9 equ 01000000B
bintang equ 01011111B
pagar equ 00010010B
awal db ?
kolom db ?
data db ?
data_teks db ?
data_keypad1 db ?
data_keypad2 db ?
data_keypad3 db ?
ratusan db ?
puluhan db ?
satuan db ?
keypad_ke db ?
status db ?
data_setting db ?
dataADC db ?
dataDAC db ?
akhir db ?
mulai:
Mov AX, CS
Mov DS, AX
Xor AX, AX
Mov ES, AX
Mov SS, AX
Lea SI, Awal
Lea CX, Akhir
Mov DI, SI
Sub CX, SI
Cld
Rep Movsb
Mov SP,800h
Xor AX,AX
Mov DS,AX
mov al,82h ; Port A dan Port C =
; output dan Port B = input
mov dx,cw
out dx,al
mov al,82h ;Port A dan Port C = output dan Port B
; = input
mov dx,cw1
out dx,al
call 7-mati
balik:
mov dx,portb
in al,dx
and al,128
cmp al,128
je balik
in al,dx
and al,00001111B
call konversi_keypad_to_bin
call konversi
call display
tunggu:
mov dx,portb
in al,dx
and al,128
cmp al,0
je tunggu
jmp balik
display proc near
mov dx,porta
out dx,al
call pulse
ret
display endp
konversi_keypad_to_bin proc near
cmp al,4
jne keypad1
mov al,1
ret
keypad1:
cmp al,8
jne keypad2
mov al,2
ret
keypad2:
cmp al,12
jne keypad3
mov al,3
ret
keypad3:
cmp al,1
jne keypad4
mov al,4
ret
keypad4:
cmp al,4
jne keypad5
mov al,4
ret
keypad5:
cmp al,5
jne keypad6
mov al,5
ret
keypad6:
cmp al,9
jne keypad7
mov al,6
ret
keypad7:
cmp al,13
jne keypad8
mov al,7
ret
keypad8:
cmp al,2
jne keypad9
mov al,8
ret
keypad9:
cmp al,6
jne keypad0
mov al,9
ret
keypad0:
cmp al,10
jne bintang
mov al,0
ret
bintang:
cmp al,14
jne pagar
mov al,bintang
ret
pagar:
cmp al,3
jne keluar
mov al,pagar
ret
keluar:
ret
konversi_keypad_to_bin endp
konversi proc near
cmp al,0
jne p1
mov al,angka0
ret
p1:
cmp al,1
jne p2
mov al,angka1
ret
p2:
cmp al,2
jne p3
mov al,angka2
ret
p3:
cmp al,3
jne p4
mov al,angka3
ret
p4:
cmp al,4
jne p5
mov al,angka4
ret
p5:
cmp al,5
jne p6
mov al,angka5
ret
p6:
cmp al,6
jne p7
mov al,angka6
ret
p7:
cmp al,7
jne p8
mov al,angka7
ret
p8:
cmp al,8
jne p9
mov al,angka8
ret
p9:
cmp al,9
jne out
mov al,angka9
ret
out:
ret
konversi endp
7-mati proc near
mov cx,8
off:
mov al,01111111B
mov dx,porta
out dx,al
call pulse
loop off
ret
7-mati endp
delay proc near
push cx
mov cx,07fffh
loop $
pop cx
ret
delay endp
pulse proc near
or al,128
out dx,al
ret
pulse endp
ORG 40F0H
DB 0EAH
DW 0100H
DW 0FBF0H
CODE_SEG ENDS
END START
Untuk mengunduh program dan rangkaiannya, klik disini.
Tidak ada komentar:
Posting Komentar