3.7 Program Sistem pendeteksi dan pemisah warna
;========================; ; program pembaca warna;
;========================;
rs bit
p2.0 rw
bit p2.1
en bit
p2.2
interrupt bit p3.7
;== start program ==; paling_utama:
lcall clear_screen mov b,38h
lcall data_scan lcall data_penampil
pesan_1: ; = = = kirim karakter = = = ;
mov b,L lcall kirim_data
lcall delay2 mov b,O
lcall kirim_data lcall delay2
mov b,A lcall kirim_data
lcall delay2 mov b,D
lcall kirim_data lcall delay2
mov b,I lcall kirim_data
lcall delay2 mov b,N
lcall kirim_data lcall delay2
mov b,G lcall kirim_data
lcall delay2 mov b,.
lcall kirim_data lcall delay2
mov b,. lcall kirim_data
lcall delay2 mov b,.
lcall kirim_data lcall delay2
lcall clear_screen mulai:
clr interrupt lcall tadc
setb interrupt utama:
jb interrupt, lcall tadc
mov a,p1 mov 62h,a
mov a,62h cjne a,201,cek_merah1
lcall clear_screen lcall pesan_merah
ljmp mulai
;= merah =; cek_merah1:
cjne a,202,cek_merah2 lcall clear_screen
lcall pesan_merah ljmp mulai
cek_merah2: cjne a,203,cek_merah3
lcall clear_screen lcall pesan_merah
ljmp mulai cek_merah3:
cjne a,204, cek_kuning1 lcall clear_screen
lcall pesan_merah ljmp mulai
ljmp mulai ;= kuning =;
cek_kuning1: cjne a,161,cek_kuning2
lcall clear_screen lcall pesan_kuning
ljmp mulai cek_kuning2: cjne a,162,cek_kuning3
lcall clear_screen lcall pesan_kuning
ljmp mulai cek_kuning3:
cjne a,163,cek_kuning4 lcall clear_screen
lcall pesan_kuning ljmp mulai
Universitas Sumatera Utara
cek_kuning4: cjne a,164,cek_ ijo
lcall clear_screen lcall pesan_kuning
ljmp mulai ;= warna ijo =;
cek_ijo: cjne a,139,cek_ijo1
lcall clear_screen lcall pesan_ijo
ljmp mulai cek_ijo1:
cjne a,140,cek_ijo3 lcall clear_screen
lcall pesan_ijo ljmp mulai
cek_ijo3: cjne a,141, cek_itam
lcall clear_screen lcall pesan_ijo
ljmp mulai ;= hitam =;
cek_itam: cjne a,29,cek_itam6
lcall clear_screen lcall pesan_itam
ljmp mulai cek_itam6:
cjne a,30,cek_itam7 lcall clear_screen
lcall pesan_itam ljmp mulai
cek_itam7: cjne
a,31,tidak_ada_warna lcall clear_screen
lcall pesan_itam ljmp mulai
tidak_ada_warna: lcall clear_screen
lcall pesan_blank ljmp mulai
;========= routine pesan ==========;
pesan_merah: mov b,38h
lcall data_scan lcall data_penampil2
;= = = = = = = = = = = = = = ;
mov b,M lcall kirim_data
lcall delay mov b,E
lcall kirim_data lcall delay
mov b,R lcall kirim_data
lcall delay mov b,A
lcall kirim_data lcall delay
mov b,H lcall kirim_data
lcall delay ;= = = tulis baris bawah = = =;
mov b,0c1h lcall data_scan
; = = = = = = = = = = = = = = ; mov b,F
lcall kirim_data lcall delay
mov b,r lcall kirim_data
lcall delay mov b,e
lcall kirim_data lcall delay
mov b,k lcall kirim_data
lcall delay mov b,.
lcall kirim_data lcall delay
mov b,4 lcall kirim_data
lcall delay mov b,0
lcall kirim_data lcall delay
mov b,2 lcall kirim_data
lcall delay mov b,0
lcall kirim_data lcall delay
mov b,0 lcall kirim_data
lcall delay mov b,
lcall kirim_data lcall delay
mov b,H lcall kirim_data
lcall delay mov b,z
lcall kirim_data lcall delay
lcall delay lcall delay
ret
Universitas Sumatera Utara
pesan_kuning: mov b,38h
lcall data_scan lcall data_penampil2
;= = = = = = = = = = = = = = ; mov b,K
lcall kirim_data lcall delay
mov b,U lcall kirim_data
lcall delay mov b,N
lcall kirim_data lcall delay
mov b,I lcall kirim_data
lcall delay mov b,N
lcall kirim_data lcall delay
mov b,G lcall kirim_data
lcall delay ;= = = tulis baris bawah = = =;
mov b,0c1h lcall data_scan
; = = = = = = = = = = = = = = ; mov b,F
lcall kirim_data lcall delay
mov b,r lcall kirim_data
lcall delay mov b,e
lcall kirim_data lcall delay
mov b,k lcall kirim_data
lcall delay mov b,.
lcall kirim_data lcall delay
mov b,3 lcall kirim_data
lcall delay mov b,2
lcall kirim_data lcall delay
mov b,2 lcall kirim_data
lcall delay mov b,0
lcall kirim_data lcall delay
mov b,0 lcall kirim_data
lcall delay mov b,
lcall kirim_data lcall delay
mov b,H lcall kirim_data
lcall delay mov b,z
lcall kirim_data lcall delay
lcall delay lcall delay
ret pesan_ijo:
mov b,38h lcall data_scan
lcall data_penampil2 ;= = = = = = = = = = = = = = ;
mov b,H lcall kirim_data
lcall delay mov b,I
lcall kirim_data lcall delay
mov b,J lcall kirim_data
lcall delay mov b,A
lcall kirim_data lcall delay
mov b,U lcall kirim_data
lcall delay ;= = = tulis baris bawah = = =;
mov b,0c1h lcall data_scan
; = = = = = = = = = = = = = = ; mov b,F
lcall kirim_data lcall delay
mov b,r lcall kirim_data
lcall delay mov b,e
lcall kirim_data lcall delay
mov b,k lcall kirim_data
lcall delay mov b,.
lcall kirim_data lcall delay
mov b,2 lcall kirim_data
lcall delay mov b,7
lcall kirim_data lcall delay
mov b,8
Universitas Sumatera Utara
lcall kirim_data lcall delay
mov b,0 lcall kirim_data
lcall delay mov b,0
lcall kirim_data lcall delay
mov b, lcall kirim_data
lcall delay mov b,H
lcall kirim_data lcall delay
mov b,z lcall kirim_data
lcall delay lcall delay
lcall delay ret
pesan_itam: mov b,38h
lcall data_scan lcall data_penampil2
;= = = = = = = = = = = = = = ; mov b,H
lcall kirim_data lcall delay
mov b,I lcall kirim_data
lcall delay mov b,T
lcall kirim_data lcall delay
mov b,A lcall kirim_data
lcall delay mov b,M
lcall kirim_data lcall delay
;= = = tulis baris bawah = = =; mov b,0c1h
lcall data_scan ; = = = = = = = = = = = = = = ;
mov b,F lcall kirim_data
lcall delay mov b,r
lcall kirim_data lcall delay
mov b,e lcall kirim_data
lcall delay mov b,k
lcall kirim_data lcall delay
mov b,. lcall kirim_data
lcall delay mov b,5
lcall kirim_data lcall delay
mov b,8 lcall kirim_data
lcall delay mov b,0
lcall kirim_data lcall delay
mov b,0 lcall kirim_data
lcall delay mov b,
lcall kirim_data lcall delay
mov b,H lcall kirim_data
lcall delay mov b,z
lcall kirim_data lcall delay
lcall delay lcall delay
ret
pesan_blank: mov b,38h
lcall data_scan lcall data_penampil2
;= = = = = = = = = = = = = = ; mov b,.
lcall kirim_data lcall delay
mov b,. lcall kirim_data
lcall delay mov b,.
lcall kirim_data lcall delay
mov b,. lcall kirim_data
lcall delay mov b,.
lcall kirim_data lcall delay
mov b,.
Universitas Sumatera Utara
lcall kirim_data lcall delay
mov b,. lcall kirim_data
lcall delay mov b,?
lcall kirim_data lcall delay
mov b,? lcall kirim_data
lcall delay mov b,?
lcall kirim_data lcall delay
mov b,? lcall kirim_data
lcall delay mov b,?
lcall kirim_data lcall delay
mov b,? lcall kirim_data
lcall delay ret
;= penampil display =; data_penampil:
mov b,0ch lcall data_scan
mov b,06h lcall data_scan
mov b,80h lcall data_scan
ret data_penampil2:
mov b,0ch lcall data_scan
mov b,06h lcall data_scan
mov b,81h lcall data_scan
ret clear_screen:
mov b,01h lcall data_scan
ret data_scan:
mov p0,bclr rs clr rw
setb end lcall delay
clr end lcall delay
ret kirim_data:
mov p0,b setb rs
clr rw setb en
lcall delay clr en
lcall delay ret
delay: mov r7,98
dly: mov r6,200
djnz r6, djnz r7,dly
ret delay2:
mov r7,255 dly2:
mov r6,255 djnz r6,
djnz r7,dly2 ret
tadc: mov r7,100
adc: mov r6,100
djnz r6, djnz r7,adc
ret end
Universitas Sumatera Utara
BAB 4
PENGUJIAN RANGKAIAN DAN PEMBAHASAN SISTEM
4.1 Pengujian Rangkaian 4.1.1 pengujian rangkaian mikrokontroller AT89S51