Selasa, 26 April 2016

Aplikasi Kontrol Suhu (Sistem Minimum 8088)

"Postingan ini dibuat dalam rangka memenuhi tugas perkuliahan Mikroprosesor dan Antarmuka"



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