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