Lampiran 2 Rangkaian Lengkap
Lampiran 1 Program Rangkaian di mikrokontroler AT89S52 bil0 equ 21h bil1 equ 0edh bil2 equ 19h bil3 equ 89h bil4 equ 0c5h bil5 equ 83h bil6 equ 3h bil7 equ 0e9h bil8 equ 01h bil9 equ 81h Kosong equ 0ffh Saklar Bit P1.0 kipas bit p1.1 intrupt bit p3.7 clr Saklar clr intrupt acall tadc setb intrupt nop Cek_Suhu: jb intrupt,$ acall tadc mov a,p2 mov b,#3 subb a,b mov 68h,a mov b,#100 div ab mov 70h,a mov a,b mov b,#10 div ab mov 71h,a mov 72h,b mov r0,70h mov 73h,r1 mov r0,71h mov 74h,r1 mov r0,72h mov 75h,r1
acall kirim Tbl_Bintang: cjne a,#0e7h,cek_suhu Recek_Bintang: cjne a,#0e7h,recek_bintang Utama: clr Saklar acall delay mov sbuf,#kosong mov sbuf,#kosong mov sbuf,#kosong tbl_satu: mov p1,#7fh cjne a,#77h,tbl_nol mov 73h,#bil1 Mov 70h,#1 acall tampil Recek_tbl_Satu: cjne a,#77h,recek_tbl_satu ljmp Tbl_Satu1 Tbl_Nol: cjne a,#0ebh,tbl_satu mov 73h,#bil0 Mov 70h,#0 acall tampil Recek_tbl_Nol: cjne a,#0ebh,recek_tbl_nol Ljmp Tbl_Satu1
tampil: mov sbuf,73h mov sbuf,#kosong mov sbuf,#kosong tbl_satu1: acall ulang acall delay mov p1,#7fh cjne a,#77h,tbl_dua1 mov 74h,#bil1 Mov 71h,#1 Recek_tbl_Satu1: cjne a,#77h,recek_tbl_satu1 ljmp Tbl_Satu2 tbl_dua1: cjne a,#7bh,tbl_tiga1 mov 74h,#bil2 Mov 71h,#2 Recek_tbl_Dua1: cjne a,#7bh,recek_tbl_dua1 ljmp Tbl_Satu2 tbl_tiga1: cjne a,#7dh,tbl_empat1 mov 74h,#bil3 Mov 71h,#3 Recek_tbl_Tiga1: cjne a,#7dh,recek_tbl_tiga1 ljmp Tbl_Satu2 Tbl_Empat1: mov p1,#0bfh cjne a,#0b7h,tbl_lima1
mov 74h,#bil4 Mov 71h,#4 Recek_tbl_Empat1: mov p1,#0bfh cjne a,#0b7h,recek_tbl_empat1 Ljmp Tbl_Satu2 Tbl_Lima1: cjne a,#0bbh,tbl_enam1 mov 74h,#bil5 Mov 71h,#5 Recek_tbl_Lima1: cjne a,#0bbh,recek_tbl_lima1 ljmp Tbl_Satu2 Tbl_Enam1: cjne a,#0bdh,tbl_tujuh1 mov 74h,#bil6 Mov 71h,#6 Recek_tbl_Enam1: cjne a,#0bdh,recek_tbl_enam1 ljmp Tbl_Satu2 Tbl_Tujuh1: mov p1,#0dfh cjne a,#0d7h,tbl_delapan1 mov 74h,#bil7 Mov 71h,#7 Recek_tbl_Tujuh1: mov p1,#0dfh cjne a,#0d7h,recek_tbl_tujuh1 ljmp Tbl_Satu2 Tbl_Delapan1: cjne a,#0dbh,tbl_sembilan1 mov 74h,#bil8 Mov 71h,#8 Recek_tbl_Delapan1: cjne a,#0dbh,recek_tbl_delapan1
ljmp Tbl_Satu2 Tbl_Sembilan1: cjne a,#0ddh,tbl_nol1 mov 74h,#bil9 Mov 71h,#9 Recek_tbl_Sembilan1: cjne a,#0ddh,recek_tbl_sembilan1 ljmp Tbl_Satu2 Tbl_Nol1: cjne a,#0ebh,balik_tbl_satu1 mov 74h,#bil0 Mov 71h,#0 Recek_tbl_Nol1: cjne a,#0ebh,recek_tbl_nol1 Ljmp Tbl_Satu2 Balik_Tbl_Satu1: Ljmp Tbl_Satu1 tampil1: mov sbuf,74h mov sbuf,73h mov sbuf,#kosong Tbl_Satu2: acall ulang acall delay mov p1,#7fh cjne a,#77h,tbl_dua2 mov 75h,#bil1 Mov 72h,#1 Recek_tbl_Satu2:
cjne a,#77h,recek_tbl_satu2 tbl_dua2: cjne a,#7bh,tbl_tiga2 mov 75h,#bil2 Mov 72h,#2 Recek_tbl_Dua2: cjne a,#7bh,recek_tbl_dua2 tbl_tiga2: cjne a,#7dh,tbl_empat2 mov 75h,#bil3 Mov 72h,#3 Recek_tbl_Tiga2: cjne a,#7dh,recek_tbl_tiga2 Tbl_Empat2: mov p1,#0bfh cjne a,#0b7h,tbl_lima2 mov 75h,#bil4 Mov 72h,#4 Recek_tbl_Empat2: mov p1,#0bfh cjne a,#0b7h,recek_tbl_empat2 Ljmp Tbl_Satu3 Tbl_Lima2: cjne a,#0bbh,tbl_enam2 mov 75h,#bil5 Mov 72h,#5 Recek_tbl_Lima2: cjne a,#0bbh,recek_tbl_lima2 Tbl_Enam2: cjne a,#0bdh,tbl_tujuh2 mov 75h,#bil6
Mov 72h,#6 Recek_tbl_Enam2: cjne a,#0bdh,recek_tbl_enam2 Tbl_Tujuh2: mov p1,#0dfh cjne a,#0d7h,tbl_delapan2 mov 75h,#bil7 Mov 72h,#7 Recek_tbl_Tujuh2: mov p1,#0dfh cjne a,#0d7h,recek_tbl_tujuh2 Tbl_Delapan2: cjne a,#0dbh,tbl_sembilan2 mov 75h,#bil8 Mov 72h,#8 Recek_tbl_Delapan2: cjne a,#0dbh,recek_tbl_delapan2 Tbl_Sembilan2: cjne a,#0ddh,tbl_nol2 mov 75h,#bil9 Mov 72h,#9 Recek_tbl_Sembilan2: cjne a,#0ddh,recek_tbl_sembilan2 Tbl_Nol2: cjne a,#0ebh,balik_tbl_satu2 mov 75h,#bil0 Mov 72h,#0 Recek_tbl_Nol2:
cjne a,#0ebh,recek_tbl_nol2 Ljmp Tbl_Satu3 Balik_Tbl_Satu2: Ljmp Tbl_Satu2 tampil2: mov sbuf,75h mov sbuf,74h mov sbuf,73h ulang: reset cjne a,#0eeh,tdk_reset ; tombol # Ljmp Utama Tdk_reset: Tbl_Satu3: acall ulang mov p1,#7fh cjne a,#7eh,tbl_satu3 ; tombol * enter setb Saklar Simpan_Data: mov a,70h mov b,#100 mul ab mov 60h,a mov a,71h mov b,#10 mul ab mov 61h,a mov a,72h mov 62h,a mov a,60h mov b,61h ; nilai ratusan ; nilai puluhan ; Nilai satuan
add a,b mov b,62h add a,b mov 63h,a ; Nilai pembanding ADC clr intrupt acall tadc setb intrupt nop Nilai_Suhu: jb intrupt,$ acall tadc mov a,p2 mov b,#3 subb a,b mov 68h,a mov b,#100 div ab mov 70h,a mov a,b mov b,#10 div ab mov 71h,a mov 72h,b mov r0,70h mov 73h,r1 mov r0,71h mov 74h,r1 mov r0,72h mov 75h,r1 acall kirim ; hasil pembacaan ADC Tbl_Call: mov p1,#0dfh cjne a,#0deh,no_call Recek_tbl_Call: mov p1,#0dfh cjne a,#0deh,recek_tbl_call Clr saklar ljmp Pembanding No_Call: mov a,68h cjne a,63h,cek_carry
Clr Saklar Sjmp Nilai_Suhu Cek_Carry: mov a,psw anl a,#80h cjne a,#80h,cek_carry1 Setb Saklar Sjmp Nilai_Suhu Cek_Carry1: Clr Saklar Sjmp Nilai_Suhu Pembanding: mov a,63h mov b,#100 div ab mov 70h,a mov a,b mov b,#10 div ab mov 71h,a mov 72h,b mov r0,70h mov 73h,r1 mov r0,71h mov 74h,r1 mov r0,72h mov 75h,r1 ; hasil pembanding Nilai_Pembanding: acall kirim Tbl_Back: mov p1,#0bfh cjne a,#0beh,setting_ulang Recek_tbl_Back: mov p1,#0bfh cjne a,#0beh,recek_tbl_back Ljmp Nilai_Suhu Setting_Ulang:
cjne a,#0edh,nilai_pembanding Recek_Setting_Ulang: cjne a,#0edh,recek_setting_ulang Ljmp Utama transfer: cjne r0,#0h,satu mov r1,#bil0 satu: cjne r0,#01h,dua mov r1,#bil1 dua: cjne r0,#02h,tiga mov r1,#bil2 tiga: cjne r0,#03h,empat mov r1,#bil3 empat: cjne r0,#04h,lima mov r1,#bil4 lima: cjne r0,#05h,enam mov r1,#bil5 enam: cjne r0,#06h,tujuh mov r1,#bil6 tujuh: cjne r0,#07h,delapan mov r1,#bil7 delapan: cjne r0,#08h,sembilan mov r1,#bil8 sembilan: cjne r0,#09h,transfer mov r1,#bil9
tampil_nilai: mov sbuf,75h mov sbuf,74h mov sbuf,73h acall Tunda delay: dly: dl: kirim: tunda: tnd: tadc: adc: mov r7,#5 mov r6,#255 mov r5,#255 djnz r5,$ djnz r6,dl djnz r7,dly mov sbuf,75h mov sbuf,74h mov sbuf,73h acall tunda mov r7,#100 mov r6,#100 djnz r6,$ djnz r7,tnd mov r7,#100 mov r6,#100 djnz r6,$
djnz r7,adc end
Lampiran 3 Gambar Alat Prototype Kontrol Temperatur Pada Sebuah Inkubator Penetas Telur