• Tidak ada hasil yang ditemukan

PERANCANGAN ALAT DAN PROGRAM

3.10. Perancangan Program

;= = = = = = = = = = = = = = = =; ; water level indicator program ; ;= = = = = = = = = = = = = = = =;

; = = initialisasi angka = = ;

bil0 equ 20h

bil1 equ 0ech bil2 equ 18h

bil3 equ 88h bil4 equ 0c4h bil5 equ 82h bil6 equ 02h

; = = = = = = = = = = = ; ; initialisasi port ; ; = = = = = = = = = = = ; ; = = isi = = ; key1 bit p1.0 key2 bit p1.1 key3 bit p1.2 key4 bit p1.3 key5 bit p1.4 key6 bit p1.5 ; = = kosong = = ; key7 bit p1.6 key8 bit p1.7 key9 bit p3.5 key10 bit p3.6 key11 bit p3.7 key12 bit p3.4 ; = = pompa = = ; pompa1 bit p2.1 pompa2 bit p2.0

; = = sensor = = ; sensor1 bit p0.0 sensor2 bit p0.1 sensor3 bit p0.2 sensor4 bit p0.3 sensor5 bit p0.4 sensor6 bit p0.5 utama: clr pompa1 clr pompa2 call angka0 call delay call delay call delay jmp start mulai: start:

jb key1,cek_key2 ; jika ada penekanan pada tombol 1pada keypet

call angka1 ; tampilkan angka 1 pada seven segment

call isi_level1 ; isi sampai level 1

call angka1 ; tampilkan angka 1 pada seven segment

cek_key2:

jb key2,cek_key3 ; jika ada penekanan pada tombol 2pada keypet call angka2 ; tampilkan angka 2 pada seven segment call isi_level2 ; isi sampai level 2

call angka2 ; tampilkan angka 2 pada seven segment

jmp mulai ; lompat ke alamat selanjutnya

cek_key3:

jb key3,cek_key4 ; jika ada penekanan pada tombol 3 pada keypet call angka3 ; tampilkan angka 3 pada seven segment

call isi_level3 ; isi sampai level 3

call angka3 ; tampilkan angka 3 pada seven segment

jmp mulai ; lompat ke alamat selanjutnya

cek_key4:

jb key4,cek_key5 ; jika ada penekanan pada tombol 4 pada keypet

call angka4 ; tampilkan angka 4 pada seven segment

call isi_level4 ; isi sampai level 4

call angka4 ; tampilkan angka 4 pada seven segment

jmp mulai ; lompat ke alamat selanjutnya

cek_key5:

jb key5,cek_key6 ; jika ada penekanan pada tombol 5 pada keypet

call angka5 ; tampilkan angka 5 pada seven segment

call angka5 ; tampilkan angka 5 pada seven segment

jmp mulai ; lompat ke alamat selanjutnya

cek_key6:

jb key6,cek_key12 ; jika ada penekanan pada tombol 6pada keypet

call angka6 ; tampilkan angka 6 pada seven segment

call isi_level6 ; isi sampai level 6

call angka6 ; tampilkan angka 6 pada seven segment jmp mulai ; lompat ke alamat selanjutnya

; = = kosong = = ;

cek_key12:

jb key12,cek_key7 ; jika ada penekanan pada tombol 0 pada keypet call angka0 ; tampilkan angka 0 pada seven segment

call kosong_level1 ; kosongkan sampai level 0

call angka0 ; tampilkan angka 0 pada seven segment

jmp mulai ; lompat ke alamat selanjutnya

cek_key7:

jb key7,cek_key8 ; jika ada penekanan pada tombol 1pada keypet call angka1 ; tampilkan angka 1 pada seven segment call kosong_level1 ; kosongkan sampai level 1

call angka1 ; tampilkan angka 1 pada seven segment

cek_key8:

jb key8,cek_key9 ; jika ada penekanan pada tombol 2 pada keypet

call angka2 ; tampilkan angka 2 pada seven segment

call kosong_level2 ; kosongkan sampai level 2

call angka2 ; tampilkan angka 1 pada seven segment

jmp mulai ; lompat ke alamat selanjutnya

cek_key9:

jb key9,cek_key10 ; jika ada penekanan pada tombol 3pada keypet

call angka3 ; tampilkan angka 3 pada seven segment call kosong_level3 ; kosongkan sampai level 3

call angka3 ; tampilkan angka 3 pada seven segment

jmp mulai ; lompat ke alamat selanjutnya

cek_key10:

jb key10,cek_key11 ; jika ada penekanan pada tombol 4pada keypet

call angka4 ; tampilkan angka 4 pada seven segment

call kosong_level4 ; kosongkan sampai level 4

call angka4 ; tampilkan angka 1 pada seven segment

cek_key11:

jb key11,balik_mulai ; jika ada penekanan pada tombol 5pada keypet

call angka5 ; tampilkan angka 5 pada seven segment

call kosong_level5 ; kosongkan sampai level 5

call angka5 ; tampilkan angka 5 pada seven segment

jmp mulai ; lompat ke alamat selanjutnya

balik_mulai: ljmp mulai

ret

; = =pompa isi = =; isi_level1:

setb pompa2 ; hidupkan pompa isi

jb sensor1,isi_level1 ; isi hingga level 1

clr pompa2 ; matikan pompa isi

isi_level2:

setb pompa2 ; hidupkan pompa isi

jb sensor2,isi_level2 ; isi hingga level 2 clr pompa2 ; matikan pompa isi

ret ; kembali keawal

isi_level3:

setb pompa2 ; hidupkan pompa isi jb sensor3,isi_level3 ; isi hingga level 3 clr pompa2 ; matikan pompa isi ret ; kembali keawal

isi_level4:

setb pompa2 ; hidupkan pompa isi jb sensor4,isi_level4 ; isi hingga level 4 clr pompa2 ; matikan pompa isi ret ; kembali keawal

isi_level5:

setb pompa2 ; hidupkan pompa isi jb sensor5,isi_level5 ; isi hingga level 5 clr pompa2 ; matikan pompa isi ret ; kembali keawal

isi_level6:

setb pompa2 ; hidupkan pompa isi jb sensor6,isi_level6 ; isi hingga level 6 clr pompa2 ; matikan pompa isi

ret ; kembali keawal

; = = pompa kosong = = ; kosong_level1:

setb pompa1 ; hidupkan pompa kosong

jnb sensor1,kosong_level1 ; kosongka hingga level 1 clr pompa1 ; matikan pompa kosong

ret ; kembali keawal

kosong_level2:

setb pompa1 ; kembali keawal

jnb sensor2,kosong_level2 ; kosongka hingga level 2 clr pompa1 ; matikan pompa kosong ret ; kembali keawal

kosong_level3:

setb pompa1 ; kembali keawal

jnb sensor3,kosong_level3 ; kosongka hingga level 3 clr pompa1 ; matikan pompa kosong ret ; kembali keawal

kosong_level4:

setb pompa1 ; kembali keawal

jnb sensor4,kosong_level4 ;kosongka hingga level 4 clr pompa1 ; matikan pompa kosong ret ; kembali keawal

kosong_level5:

setb pompa1 ; kembali keawal

jnb sensor5,kosong_level5 ;kosongka hingga level 1 clr pompa1 ; matikan pompa kosong ret ; kembali keawal

angka0:

mov sbuf,#bil0 ; tampilkam angka 0 pada seven segment jnb ti,$ ; lomapt kalamat tertentu

clr ti ; hapus angka 0 ret ; kembali keawal

angka1:

mov sbuf,#bil1 ; tampilkam angka 1pada seven segment jnb ti,$ ; lomapt kalamat tertentu

clr ti ; hapus angka 1

ret ; kembali keawal angka2:

mov sbuf,#bil2 ; tampilkam angka 2 pada seven segment

jnb ti,$ ; lomapt kalamat tertentu

clr ti ; hapus angka 2 ret ; kembali keawal

angka3:

mov sbuf,#bil3 ; tampilkam angka 3 pada seven segment jnb ti,$ ; lomapt kalamat tertentu

clr ti ; hapus angka 3

ret ; kembali keawal

angka4:

mov sbuf,#bil4 ; tampilkam angka 4 pada seven segment jnb ti,$ ; lomapt kalamat tertentu

clr ti ; hapus angka 4 ret ; kembali keawal

angka5:

mov sbuf,#bil5 ; tampilkam angka 5 pada seven segment jnb ti,$ ; lomapt kalamat tertentu

clr ti ; hapus angka 5 ret ; kembali keawal angka6:

mov sbuf,#bil6 ; tampilkam angka 6 pada seven segment jnb ti,$ ; lomapt kalamat tertentu

clr ti ; hapus angka 5 ret ; kembali keawal

delay:

mov r7,#0ffh ; masukan nilai ff keregister 7

djnz r7,$ ; untuk mengurangi nilai register tertentu

ret ; kembali keawal

BAB 4

Dokumen terkait