LAMPlRAN
RANGKAIAN LENGKAP
" ""
QZP12'MEG
PROGRAM
$inelude (regSl.inc) motor_ keranjang_on motor_keranjang_arah motor_hopper motor bumbu ssr sel a sel b sel c
bit bit bit bit bit bit bit bit
pO.O pO.1 pO.2 pO.3 pOA pO.S pO.6 pO.7
data adc
equ
pI
data led
equ
p2
rs en up down hold ok ale adc suhu_tujuan level suhu
bit bit bit bit bit bit bit equ equ
p3.0 p3.1 p3.2 p3.3 p3A p3.7 p3.6 30h
org ajmp
rO
OOh start
org SOh ; ---program utama--start: mov ie,#OOh mov sp,#SOh elr motor_keranjang_on elr motor_keranjang_arab elr motor_hopper elr motor bumbu elr ssr elr ale adc mov
level_suhu, #04
mov
suhu_tujuan, #30
acall
inisialisasi
start_lg: acall delaL50ms acall acall
tampilkan_ temperatur present_value
jnb
hold,hold_ dipencet
; hold ga dipencet jnb up,up_ dipencet jnb down,down_ dipencet jnb
ok,mulai---'proses
; Ok dipencet
sJmp
start_lg
; kalo ga dipencet semua
; ------- 0 ---------
; ----- Prosedur HOLD DIPENCET ------hold_ dipencet: setb ssr pemanas nyala loop1: jb acall de1aL50ms
hold,hold_dimatikan
acall acall
present_value ambi1 adc
elr subb JC
c a,#150
cjne
a, #03th, loop1
elr
ssr
lpop1
; jika hold dimatikan kembali ke start
; u1angi terns sampe A >= 03fhex = 150 desimal ; u1angi terns sampe A = 03fhex = 150 desimal ; pemanas mati
loop2: jb acall delay_ 50ms
hold,hold_ dimatikan
; jika hold dimatikan kembali ke start
acall acall
present_value ambil adc
elr subb jnc cJne
c a,#145 loop2 a, #03ah, loop2
; ulangi terus sampe A = 3A hex = 140 desimal
sjmp
hold_dipencet
; pigi ke atas lagi j ika suhu = 140 C
hold dimatikan: elr ssr ajmp starUg ; ----- 0 -------
up_dipencet: inc level suhu cjne level_suhu, #5, lanjutl mov
lanjutl: mov mov mov mul add mov sJmp
level_suhu, #01
£1,#110 a,#10 b,level_suhu ab a, £1 suhu_tujuan, a start_lg
; kalo RO = 5 maka kembali lagi ke 1
down_dipencet: dec level suhu cjne level_suhu, #0, lanjut2 mov
level_suhu, #04
cjne mov
level_suhu, #Oftb, lanjut3 level_suhu, #04
mov mov mov mul add mov
rl,#1l0 a, #10 b, level_suhu ab a, rl suhu_tujuan, a
sjmp
starUg
lanjut2:
lanjut3:
mUlaiyroses: setb ssr
.***************************** , ;tunggu suhu panas
,.***************************** nyala_lagi: acall present_value acall ambil adc elr subb JC cjne
c a, suhu_tujuan
nyala_lagi a, suhu_tujuan, nyala_lagi
,.***************************** ;mulai menggoreng kentang ,.*****************************
;ro<>O
setb motor_hopper
elr
mov r2,#03 acall delay_r2 _detik motor_hopper mov subb mov
a, #10 a, level_suhu r3, a
; a= 10 -level_suhu
jaga_suhuJ3_menit: mov r2,#60 jaga_ suhuJ2 _ detik: acall present_value acall ambil adc elr c subb a, suhu_tujuan jnc suhu_masih---'panas setb ssr sjmp lompat suhu_masih---'panas: elr ssr lompat: acall delay_ldtk djnz r2jaga_suhuJ2 _ detik djnz r3jaga_suhuJ3_menit
;suhu turun => ssr nyala
;suhu masih panas => ssr mati
,.***************************** ;kentang sudah matang .***************************** , setb motor_keranjang_on elr motor_keranj ang_arah mov acall acall acall acall acall elr
;keranjang k atas minyak
r2, #05 delayJ2 _ detik delay_ldtk delay_ldtk delay_ldtk delay_ldtk
motor_keranj ang_on elr motor_keranjang_arah
;keranjang diam
;timer 40dtk
mov r2, #40 acall delay J2 _detik setb motor_ keranj ang_on elr motor_keranjanLarah acall delay_1 dtk acall delay_1dtk acall delay_1 dtk acall delay_1 dtk
;keranjang tumpah
;timer 4 dtk
mov r2, #06 acall delay J2 _detik acall acall acall acall acall
;timer 6dtk
delaL1dtk delay_1dtk delay_1dtk delaLldtk delaL1dtk
elr
motor_keranj ang_on elr motor_ keranj ang_arah
acall acall acall acall
delaL 1dtk delaL 1dtk delay_1 dtk delaL 1dtk
setb motor_keranjang_on setb motor_ keranjang_arah
;keranjang-==kentang jatuh
;timer 4dtk
;keranjang balik awal
mov r2, #08 acall delayJ2 _detik elr elr
motor_ keranjang_on motor_keranjang_arah
acall delay_1 dtk acall delaL 1dtk acall delaL 1dtk acall delay_ldtk acall delaL1dtk
;timer 7 detik
;kembalikan motor ke posisi semula
;timer 6 detik
setb motor bumbu mov r2, #09 acall delaLr2_detik elr
motor bumbu
acall delay_1 dtk acall delay_1 dtk acall delay_1 dtk acall delaL 1dtk acall delaLldtk acall de1aLldtk
;timer 6 detik
ajmp mulatproses
--------------delay_50ms: push push push mov loopdelay2: mov loopdelayl: mov djnz djnz djnz pop pop pop mov mov mov setb jnb elr elr ret
07h 06h 05h r7,#1 r6,#100 r5,#100 r5,$ r6,loopdelay 1 r7,loopdelay2 05h 06h 07h tmo
;aktifkan timer_0 ;matikan timer_ 0
delaLldtk: mov ulang_l dtk: inc acall cJne ret
rl, #OOh
rl delaLSOms rl, #20, ulang_ldtk
delayJ2 _detik: acall delaLldtk acall present value djnz r2, delayJ2 _detik ret delayJ3 _menit: mov r2, #60 acall delaLr2_detik djnz r3, delayJ3 _ menit ret
ambil elr elr setb
adc: sel c sel b sel a nop nop setb ale adc nop nop elr ale adc acall delay_SOms acall delay_SOms mov r7,#255 djnz r7,$ mov a, data_ adc mov b,#4 div ab mov b,#7 mul ab a,#25 add
; delay 1 menit
; selector input 1
; movb,#05 ; mul ab
;a=a*5
Suhu(hex) = data_ade * 5 ret
delay_led: mov delay2: mov djnz djnz ret
r4,#lh r5,#OlOO r5,$ r4,delay2
; -------------1.<:1)---------kirim instruksi: elr mov setb elr aeall ret
rs data_led, a en en delay_led
kirim data: setb mov setb elt aeall ret inisialisasi: mov aeall
rs data lcd, a en en delay-led
a, #38h
kirim instruksi
mov a, #38h aeall kirim instruksi mov a, #38h acall kirim instruksi
; function set, 8 bit - 2 baris - 5x7
mov a, #38h acall kirim instruksi mov a, #06h ;pindah ke kanan atau ke kiri acall kirim instruksi mov a, #Och acall kirim instruksi
;display kontrol
mov a, #Olh ;clear display acall kirim instruksi mov acall
a, #80h ;kembali ke asal mula kirim instruksi
ret
tampilkan_temperatur: mov a, #80h acall kirim instruksi mov acall mov acall mov acall mov acall mov acall mov acall mov acall mov acall mov acall mov acall mov acall
a, #'1' kirim data a, #'N' kirim data a, #'P' kirim data a, #'U' kirim data a, #'T' kirim data a, #" kirim data a, #'8' kirim data a,#'U' kirim data a,#'H' kirim data a, #'U' kirim data a, #':' kirim data
mov
a,level_suhu
cjne
a,#1,bukanJevell
mov acall mov acall mov acall sjmp bukan 1evell: cjne
a, #'1' kirim data a, #'2' kirim data a, #'0' kirim data tampilan_baris2
mov acall mov acall mov acall sjmp bukan 1eve12: CJne
a, #'1' kirim data a, #'3' kirim data a, #'0' kirim data tampi1an_ baris2
mov acall mov acall mov acall sjmp bukan 1eve13: cjne
a, #'1' kirim data a, #'4' kirim data a, #'0' kirim data tampi1an_baris2
mov acall mov acall mov acall sjmp
a,#2,bukan_1eve12
a,#3,bukanJeve13
a,#4,bukanJeve14 a, #'1' kirim data a, #'5' kirint data a, #'0' kirim data tampi1an_baris2
bukan 1eve14: tampi1an_baris2: mov a, #OcOh acall kirim instruksi
mov acall mov acall mov acall mov acall mov acall mov acall mov acall mov acall mov acall mov acall mov acall
a, #'T' kirim data a, #'E' kirim data a,#'M' kirim data a, #'P' kirim data a, #'E' kirim data a, #'R' kirim data a, #'A' kirim data a, #'T' kirim data a, #'U' kirim data a, #'R' kirim data a, #':' kirim data
mov acall
a,#Oceh kirim instruksi
mov acall
a, #Odfh kirim data
mov acall
a, #'C' kirim data
ret present_value: mov a,#Ocdh acall kirim instruksi acall
ambil adc
mov div mov mov add acall
b,#lO ab r6, a a,b a,#30h kirim data
; satuan
=X
END
mav acall
a, #Occh kirim instruksi
mav mav div mav mav add acall
a,r6 b,#10 ab r6, a a,b a,#30h kirim data
mav acall
a, #Ocbh kirim instruksi
mav add acall ret
a,r6 a,#30h kirim data
; puluhan
=X
; ratusan
=X
BIODATA Nama
. ADRIA BUDI LESMANA
NRP
. 5103000018
TempaL Tanggal Lahir: Surabaya, 01 Juli 1982 : JI. Jagalan VII! 11
Alamat
Surabaya
Riwayat Pendidikan: •
Tahun 1994 Lu1us SDK Santa Angela Surabaya
•
Tahun 1997 Lulns SLTPK Stella Maris Surabaya
•
Tahun 2000 Lulus SMUK Frateran Surabaya