• Tidak ada hasil yang ditemukan

PERANCANGAN SISTEM SENSOR PENDETEKSI JARAK MENGGUNAKAN INFRA MERAH DAN ULTRASONIK

N/A
N/A
Protected

Academic year: 2021

Membagikan "PERANCANGAN SISTEM SENSOR PENDETEKSI JARAK MENGGUNAKAN INFRA MERAH DAN ULTRASONIK"

Copied!
33
0
0

Teks penuh

(1)

PERANCANGAN SISTEM SENSOR PENDETEKSI JARAK

MENGGUNAKAN INFRA MERAH DAN ULTRASONIK

TUGAS AKHIR

Diajukan Sebagai Salah Satu Syarat untuk Mencapai Gelar Sarjana

pada Program Studi Fisika Institut Teknologi Bandung

oleh

Hafidz Mabruri

NIM 10203075

PROGRAM STUDI FISIKA

FAKULTAS MATEMATIKA DAN ILMU PENEGETAHUAN ALAM

INSTITUT TEKNOLOGI BANDUNG

(2)

PERANCANGAN SISTEM SENSOR PENDETEKSI JARAK

MENGGUNAKAN INFRA MERAH DAN ULTRASONIK

TUGAS AKHIR

Diajukan untuk memenuhi salah satu syarat kelulusan tahap sarjana

pada Program Studi Fisika Institut Teknologi Bandung

Oleh :

Hafidz Mabruri

10203075

Telah diperiksa dan disahkan oleh Dosen Pembimbing,

Dr.-Ing. Mitra Djamal

NIP: 131 471 335

PROGRAM STUDI FISIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

INSTITUT TEKNOLOGI BANDUNG

(3)

i

Abstrak

Kemampuan deteksi keadaan sekitar oleh suatu robot navigasi merupakan

kebutuhan mutlak bagi robot tersebut. Kemampuan deteksi keadaan sekitar yang

paling utama adalah mendeteksi posisi benda-benda di sekitarnya disamping

deteksi kandungan udara atau deteksi suhu dan sebagainya. Untuk pendeteksian

jarak tersebut, berbagai metoda dikembangkan, yang diantaranya memanfaatkan

sifat fisis dari gelombang bunyi dan gelombang cahaya (EM). Berkaitan dengan

sifat fisis bagi masing-masing gelombang, kedua metode tersebut memiliki

kelemahan yang ditutupi satu sama lain, infra merah baik untuk pendeteksian

jarak dekat, sedangkan ultrasonik baik untuk pengukuran jarak yang cukup jauh.

Dengan mengetahui dan mengerti perilaku fisis dari gelombang EM maupun

gelombang bunyi, maka dapat dirancang suatu piranti yang dapat memanfaatkan

sifat fisis kedua gelombang tersebut untuk mendeteksi jarak. Untuk keperluan

tersebut, digunakanlah mikrokontroller sebagai otak dari sistem yang dirancang.

Kata kunci : Ultrasonik, infra merah, mikrokontroller, fototransistor,

piezoelektrik

(4)

ii

KATA PENGANTAR

Atas izin serta rahmat dan berkah Allah Yang Maha Pengasih dan Maha

Penyayang, skripsi/tugas akhir dengan judul “Perancangan Sistem Sensor

Pendeteksi Jarak Menggunakan Infra Merah dan Ultrasonik” dapat terselesaikan.

Puji dan syukur yang dangat dalam penulis panjatkan ke hadirat Allah Yang Maha

Kuasa sebagai wujud rasa syukur atas selesainya tugas akhir ini atas izin dan

kuasaNya.

Skripsi ini merupakan salah satu syarat kelulusan tahap sarjana penulis di

Program Studi Fisika, Fakultas Matematika dan Ilmu Pengetahuan Alam, Institut

Teknologi Bandung pada tahap kelulusan termin ke-tiga tahun 2007. Skripsi ini

juga merupakan laporan studi dan penelitian serta pengembangan alat ukur jarak

menggunakan infra merah dan ultrasonik. Dalam perkembangan pengerjaan tugas

akhir ini, telah terjadi banyak sekali perubahan atas ide-ide serta perancangan

sistem yang dibuat. Perubahan dan perbaikan itu sendiri muncul sebagai inspirasi

dan masukan dari berbagai pihak yang telah banyak membantu dalam proses

perampungan tugas akhir ini. Sebagai wujud syukur atas bantuan dan dukungan

tesebut dan juga untuk dukungan penyelesaian studi tahap sarjana ini, penulis

mengucapkan terima kasih kepada pihak-pihak berikut :

1.

Bapak Dr. Ing. Mitra Djamal, selaku dosen pembimbing; atas

masukan-masukan yang sangat bermanfaat yang telah diberikannya selama proses

pengerjaan tugas akhir ini

(5)

iii

2.

Dosen-dosen : Bapak Suparno, dan Bapak Gunawan dan Bapak Pepen

Arifin atas dukungannya dalam pengujian tugas akhir, serta

masukan-masukan dan didikan yang telah diberikan selama saya studi.

3.

Bapak Daniel Kurnia, atas ilmu mikroprosessor PIC yang telah

membukakan jalan bagi saya menyelesaikan tugas akhir ini dengan

mikroprosessor PIC 16F87x.

4.

Bapak, Ibu, kakak dan adik sekeluarga yang menjadi motivasi sekaligus

tempat rileks sehingga penulis tetap memiliki semangat mengerjakan

tugas akhir ini.

5.

Keluarga di Cipadung, di Sindang Sari, Bojong Raya, Pekalongan dan

Citopeng yang juga memberikan support dan bantuan yang tiada terukur

6.

Kawan-kawan T3 Fisika, Martin, Opik, Atep, Zaki, Badai, Dian, Puput,

Kaswandhi, Luan, Bogel dll.... gak ada lo gak rame.... Terutama untuk

Martin, Ferdi dan Harri Sapto teman seperjuangan, Puput yang sudah

banyak membantu dan Dian , makasih HP nya..

7.

Yusuf, Mulki, Wali, Sena, Septian; sekali sahabat tetap sahabat. Dan

semua sahabat B-champ-π-one. Ini untuk kalian.

8.

Kawan-kawan 2003 di Fisika maupun di Kimia, Matematika dan

Astronomi. Juga kawan-kawan HIMAFI 1998-2005, hidup adalah

pilihan, setiap pilihan mengandung konsekuensi...

9.

Pak Freddy P. Zen, Pak Waris, Pak Freddy Haryanto, Pak Enjang, Pak

Bagus, Pak Rizal, Bu Neni, Pak Yeye, Pak Ohin, Pak Dede, Bu Ratna

(6)

iv

dan semua yang telah mendidik dan membantu saya selama studi di

Fisika.

10.

Kawan-kawan alumni OSIS SMUN 13 Bandung, siswa-siswi PKBM

Kuncup Mekar, serta semua yang pernah saya bantu dan saya

kecewakan ☺

11.

Anak-anak kecil di sekitarku, Aqil, Aris, Fian, Teguh, Arul, Egif, Dila,

yang selalu jadi terapi saat penat... ☺

12.

Terima kasih terutama juga penulis ucapkan kepada Rika Nita Utami

yang menjadi sumber motivasi dan inspirasi yang telah mewarnai tiap

langkah penulis selama sekitar 3 tahun ini.

Atas semua bantuan, dukungan dan nasehat yang telah diberikan, penulis menjadi

sangat terbantu baik secara materiil maupun moril. Yang mampu penulis berikan

kepada mereka hanyalah ucapan terima kasih serta Do’a semoga setiap kebaikan

yang telah mereka berikan dibalas berlipat ganda oleh Allah SWT. Harapan

penulis semoga karya ini dapat kemudian bermanfaat baik untuk keperluan studi

maupun pengembangan. Terima kasih.

Bandung, September 2007

Penulis dan penyusun

(7)

v

DAFTAR ISI

Judul

Lembar Pengesahan

Abstrak... i

KATA PENGANTAR... ii

DAFTAR ISI... v

DAFTAR GAMBAR... viii

DAFTAR LAMPIRAN... x

BAB I

PENDAHULUAN... 1

1.1

Latar Belakang dan Rumusan Masalah... 1

1.1.1

Latar Belakang... 1

1.1.2

Rumusan Masalah... 1

1.2

Ruang Lingkup Kajian... 2

1.3

Tujuan Penulisan... 2

1.4

Anggapan Dasar... 2

1.5

Hipotesis... 3

1.6

Metode dan Teknik Pengumpulan Data... 3

1.6.1

Metode... 3

1.6.2

Teknik Pengumpulan Data... 3

(8)

vi

BAB II

TEORI DASAR DETEKSI JARAK MENGGUNAKAN

INFRA MERAH DAN ULTRASONIK... 6

2.1

Infra Merah... 9

2.1.1

Sumber Infra Merah da Detektor Infra Merah... 13

2.1.1.1 LED infra merah... 13

2.1.1.2 Fototransistor infra merah... 17

2.1.2

Deteksi Jarak Menggunakan Transmitter dan Receiver Infra Merah 21

2.2

Sensor Ultrasonik... 23

BAB III

PERANCANGAN DAN PEMBUATAN SISTEM DETEKSI

JARAK MENGGUNAKAN INFRA MERAH DAN ULTRASONIK.... 29

3.1

Sistem Deteksi Jarak Menggunakan Infra Merah... 29

3.1.1

Sistem Deteksi Infra Merah... 29

3.1.2

Pengiriman Sinyal Infra Merah... 32

3.1.3

Pengolah Sinyal... 34

3.1.4

Display... 34

3.1.5

Power Supply... 35

3.1.6

Pengolahan Sinyal... 36

3.2

Sistem Deteksi Jarak Menggunakan Ultrasonik... 39

3.2.1

Receiver Untuk Sinyal Ultrasonik... 42

3.2.2

Transmitter Sinyal Ultrasonik... 48

3.2.3

Display System... 49

3.2.4

Kalibrator Temperatur... 50

(9)

vii

3.2.6

Power Supply... 51

3.2.7

Pengolahan Sinyal... 52

3.2.7.1 Inisialisasi... 54

3.2.7.2 Proses interupsi... 55

3.2.7.3 Proses pengiriman sinyal ultrasonik... 56

3.2.7.4 Proses interupsi penangkapan sinyal... 57

3.2.7.5 Proses tampilan di LED... 59

BAB IV

ANALISIS DATA PENGUKURAN JARAK

MENGGUNA-KAN INFRA MERAH DAN ULTRASONIK... 60

4.1

Karakteristik Infra Merah... 60

4.2

Karakteristik Ultrasonik... 69

4.3

Analisis Infra Merah... 74

4.4

Analisis Ultrasonik... 77

BAB V

KESIMPULAN DAN SARAN... 80

5.1

Kesimpulan... 80

5.2

Saran... 82

DAFTAR PUSTAKA... 80

(10)

viii

DAFTAR GAMBAR

Gambar 2.1

Kinerja robot ... 7

Gambar 2.2

Spektrum cahaya tampak... 9

Gambar 2.3

Pergeseran Wien... 11

Gambar 2.4

Absorpsi dan emisi foton... 12

Gambar 2.5

LED infra merah... 13

Gambar 2.6

Cara kerja dioda... 14

Gambar 2.7

Fototransistor beserta simbolnya... 17

Gambar 2.8

Osilasi pegas... 23

Gambar 2.9

Spektrum akustik... 25

Gambar 2.10

Penampang samping sensor ultrasonik dari NICCERA

... 26

Gambar 2.11

Prinsip kerja sensor ultrasonik... 26

Gambar 2.12

Pola intensitas radiasi dari sensor ultrasonik... 28

Gambar 3.1

Fototransistor L14G3... 29

Gambar 3.2

Karakteristik elektronik dari fototransistor L14G3 (Fairchild

Semiconductor)... 30

Gambar 3.3

Skema rangkaian detektor infra merah... 31

Gambar 3.4

Skema rangkaian lengkap untuk deteksi jarak menggunakan

infra merah...32

Gambar 3.5

Skema rangkaian transmitter infra merah... 32

Gambar 3.6

Skema rangkaian display 7-segmen... 34

(11)

ix

Gambar 3.8

Flowchart deteksi jarak menggunakan infra merah....36

Gambar 3.9

Cara kerja sensor ultrasonik... 39

Gambar 3.10

Skema rangkaian deteksi jarak menggunakan ultrasonik

... 41

Gambar 3.11

Penampang sensor ultrasonik... 42

Gambar 3.12

Bentuk-bentuk sensor dari NICCERA... 43

Gambar 3.13

Receiver dan penguatan 1000 kali... 44

Gambar 3.14

Dioda dan penyearah...45

Gambar 3.15

LM358 dan komparator... 45

Gambar 3.16

IC 4011 dan RS-FF... 47

Gambar 3.17

IC 4069 dan transmitter ultrasonik... 48

Gambar 3.18

Sistem 7 segmen dan TR A1015... 49

Gambar 3.19

Proses penyesuaian nilai terukur... 50

Gambar 3.20

Power supply beserta IC 7805 dan 78L09... 51

Gambar 3.21

Proses kerja perangkat lunak untuk ultrasonik... 53

Gambar 3.22

Proses transmisi-deteksi... 54

Gambar 4.1

Konfigurasi deteksi intensitas terhadap jarak... 60

Gambar 4.2

Kurva linearitas nilai tegangan dan hasil konversi ADC

... 61

Gambar 4.3

Kurva hubungan jarak terukur dengan tegangan

fototransistor ... 63

(12)

x

Gambar 4.5

Sinyal deteksi yang ditangkap menggunakan osiloskop

dengan skala 2 Volt/DIV ... 69

Gambar 4.6

Posisi sensor terhadap target di depannya... 71

Gambar 4.7

Sinyal untuk jarak kurang dari 1,5 meter... 71

Gambar 4.8

Konfigurasi karakterisasi sudut... 72

Gambar 4.9

Kurva respon sensor terhadap pergeseran pada arah radial

sinyal sensor... 73

Gambar 4.10

Visualisasi sinyal... 77

DAFTAR LAMPIRAN

LAMPIRAN 1

Assembler Pengukur Intensitas Infra Merah...xi

LAMPIRAN 2

Assembler Pengukur Jarak Menggunakan Infra Merah...xvii

(13)

xi

LAMPIRAN

LAMPIRAN 1

Assembler Pengukur Intensitas Infra Merah

;******************************************************** ;

; Infra red counter ;

;******************************************************** list p=pic16f876

include p16f876.inc

__config _XT_OSC & _WDT_OFF & _PWRTE_ON & _LVP_OFF ;**************** Label Definition ******************** cblock h'20' s_count s_adj s_adj_count s_digit hasilh hasill hasilh1 hasill1 p_countl count digit_cnt disp_ha disp_u disp_t disp_h disp_x seg7_ha seg70 seg71 seg72 seg73 seg74 seg75 seg76 seg77 seg78 seg79 seg7a seg7b endc ccp1 equ h'02' seg7_0 equ b'01000000' seg7_1 equ b'01111001' seg7_2 equ b'00100100' seg7_3 equ b'00110000' seg7_4 equ b'00011001' seg7_5 equ b'00010010' seg7_6 equ b'00000010' seg7_7 equ b'01111000' seg7_8 equ b'00000000' seg7_9 equ b'00010000' seg7_a equ b'01111111' seg7_b equ b'00100011'

(14)

xii

;**************** Program Start *********************** org 0 goto init org 4 goto int ;**************** Initial Process ********************* int init movlw d'4' movwf s_adj movlw d'5' subwf s_adj,0 goto hai hai movlw d'4' subwf s_adj,0 goto hai2 hai2 movlw d'3' subwf s_adj,0 ;*** Port initialiZation bsf STATUS,RP0 movlw b'00000001' movwf TRISA clrf TRISB movlw b'00000100' movwf TRISC

;*** A/D converter initialiZation

bcf STATUS,RP0 movlw b'01000001' movwf ADCON0 bsf STATUS,RP0 movlw b'00001110' movwf ADCON1 bcf STATUS,RP0

;*** Display initialiZation (Timer2)

movlw disp_u movwf disp_ha movlw h'0a' movwf disp_u movwf disp_t movwf disp_h movlw d'3' movwf digit_cnt movlw seg70 movwf seg7_ha movlw seg7_0 movwf seg70 movlw seg7_1 movwf seg71 movlw seg7_2 movwf seg72 movlw seg7_3 movwf seg73 movlw seg7_4 movwf seg74 movlw seg7_5 movwf seg75 movlw seg7_6 movwf seg76 movlw seg7_7

(15)

xiii

movwf seg77 movlw seg7_8 movwf seg78 movlw seg7_9 movwf seg79 movlw seg7_a movwf seg7a movlw seg7_b movwf seg7b movlw b'00011110' movwf T2CON bsf STATUS,RP0 movlw d'157' movwf PR2 bsf PIE1,TMR2IE bcf STATUS,RP0 clrf s_adj_count

;*************** Pulse send-out Process **************** send

bcf INTCON,T0IF

clrf TMR0

;*** 40KHz pulse send ( 1,2 msec )

hehe movlw d'4'

movwf disp_u

hehe2 movlw d'255'

movwf s_digit ;Set count

lagi movlw d'61' movwf s_count movlw d'30' movwf p_countl s_loop1 call pulse decfsz s_count,1 goto s_loop1 ;*** Jedanya niiihhh... clrf disp_u clrf disp_t clrf disp_h goto $+2 goto $+2 goto $+2 goto $+2 bsf ADCON0,GO test btfsc ADCON0,GO goto test movfw ADRESH movwf hasilh1 bsf STATUS,RP0 movfw ADRESL bcf STATUS,RP0 movwf hasill1 movfw hasilh1 movfw hasill1 btfsc hasill,7 call dua

(16)

xiv

btfsc hasill,6 call satu goto ratus satu movlw d'1' addwf disp_x,1 return dua movlw d'2' movwf disp_x return ratus movlw d'250' subwf hasilh,0 btfss STATUS,C goto puluh movlw d'250' subwf hasilh,1 incf disp_u goto ratus puluh movlw d'25' subwf hasilh,0 btfss STATUS,C goto satu1 movlw d'25' subwf hasilh,1 incf disp_t goto puluh satu1 bcf STATUS,C rlf hasilh rlf hasilh satu2 movlw d'10' subwf hasilh,0 btfss STATUS,C goto satu3 movlw d'10' subwf hasilh,1 incf disp_h,1 goto satu2

satu3 movfw hasilh

addwf disp_x,1 goto boleh zero btfss STATUS,Z decfsz p_countl,0 goto boleh movfw hasilh movwf disp_u movwf disp_t movlw b'11110000' andwf disp_u,1 swapf disp_t movlw b'11110000' andwf disp_t,1 movfw hasill movwf disp_h boleh movlw d'4' movwf s_count

(17)

xv

led_cont incf s_adj_count,1 movfw digit_cnt movwf s_digit decfsz s_digit,1 goto d_check1 bsf PORTA,1 bsf PORTA,2 bsf PORTA,3 bcf PORTA,4 goto c_digit d_check1 decfsZ s_digit,f goto d_check2 bsf PORTA, bsf PORTA,2 bcf PORTA,3 bsf PORTA,4 goto c_digit d_check2 decfsZ s_digit,f goto d_check3 bsf PORTA,1 bcf PORTA,2 bsf PORTA,3 bsf PORTA,4 goto c_digit d_check3 bcf PORTA,1 bsf PORTA,2 bsf PORTA,3 bsf PORTA,4 c_digit decf digit_cnt,w addwf disp_ha,w movwf FSR movfw INDF addwf seg7_ha,w movwf FSR movfw INDF movwf PORTB decfsZ digit_cnt,f goto timeg movlw d'4' movwf digit_cnt goto timeg timeg movlw d'255' movwf s_adj tunggu goto $+1 goto $+1 goto $+1 decfsz s_adj,1 goto tunggu btfss s_adj_count,1

(18)

xvi

goto led_cont decfsz s_count,1 goto timeg decfsz p_countl,1 goto hehe movlw d'4' movwf p_countl goto hehe

;*************** Pulse send-out Process **************** pulse movlw b'11111000' movwf PORTC movfw s_count sublw d'30' btfsc STATUS,Z goto adc call t12us balik clrf PORTC nop nop nop nop balik2 nop return t12us nop nop return adc bsf ADCON0,GO nop clrf PORTC nop nop movlw d'3' movwf s_adj

time decfsz s_adj,1

goto time

movlw b'11111000'

movwf PORTC

movlw d'3'

movwf s_adj

time2 decfsz s_adj,1

goto time2 clrf PORTC nop movfw ADRESH movwf hasilh bsf STATUS,RP0 movfw ADRESL bcf STATUS,RP0 movwf hasill return end

(19)

xvii

LAMPIRAN 2

Assembler Pengukur Jarak Menggunakan Infra Merah

;******************************************************** ;

; Infra red meter ;

;******************************************************** list p=pic16f876

include p16f876.inc

__config _XT_OSC & _WDT_OFF & _PWRTE_ON & _LVP_OFF ;**************** Label Definition ******************** cblock h'20' deltah deltal counter deldet detek divder s_count s_adj s_adj_count s_digit hasilh hasill hasilh1 hasill1 p_countl count digit_cnt disp_ha disp_u disp_t disp_h disp_x seg7_ha seg70 seg71 seg72 seg73 seg74 seg75 seg76 seg77 seg78 seg79 seg7a seg7b buff_u buff_t buff_h wadc endc ccp1 equ h'02' maxh equ b'01000111' maxl equ b'11000000' seg7_0 equ b'01000000' seg7_1 equ b'01111001' seg7_2 equ b'00100100' seg7_3 equ b'00110000'

(20)

xviii

seg7_4 equ b'00011001' seg7_5 equ b'00010010' seg7_6 equ b'00000010' seg7_7 equ b'01111000' seg7_8 equ b'00000000' seg7_9 equ b'00010000' seg7_a equ b'01111111' seg7_b equ b'00100011' ;**************** Program Start *********************** org 0 goto init org 4 goto int ;**************** Initial Process ********************* int init movlw d'4' movwf s_adj movlw d'4' subwf s_adj,1 ;*** Port initialiZation bsf STATUS,RP0 movlw b'00000001' movwf TRISA clrf TRISB movlw b'00000100' movwf TRISC

;*** A/D converter initialiZation

bcf STATUS,RP0 movlw b'01000001' movwf ADCON0 bsf STATUS,RP0 movlw b'00001110' movwf ADCON1 bcf STATUS,RP0

;*** Display initialiZation (Timer2)

movlw disp_u movwf disp_ha movlw h'0a' movwf disp_u movwf disp_t movwf disp_h movlw d'3' movwf digit_cnt movlw seg70 movwf seg7_ha movlw seg7_0 movwf seg70 movlw seg7_1 movwf seg71 movlw seg7_2 movwf seg72 movlw seg7_3 movwf seg73 movlw seg7_4 movwf seg74 movlw seg7_5 movwf seg75 movlw seg7_6 movwf seg76

(21)

xix

movlw seg7_7 movwf seg77 movlw seg7_8 movwf seg78 movlw seg7_9 movwf seg79 movlw seg7_a movwf seg7a movlw seg7_b movwf seg7b movlw b'00011110' movwf T2CON bsf STATUS,RP0 movlw d'157' movwf PR2 bsf PIE1,TMR2IE bcf STATUS,RP0 clrf s_adj_count

;*************** Pulse send-out Process **************** send

bcf INTCON,T0IF

clrf TMR0

;*** 40KHz pulse send ( 1,2 msec )

hehe movlw d'4'

movwf disp_u

hehe2 movlw d'255'

movwf s_digit ;Set count

lagi movlw d'30' movwf s_count movlw d'30' movwf p_countl s_loop1 call pulse decfsz s_count,1 goto s_loop1 ;*** Jedanya niiihhh... movlw d'57' movwf count

tungg decfsz count,1

goto tungg decfsz wadc,0 goto lanj bsf ADCON0,GO adc2 btfsc ADCON0,GO goto adc2 movfw ADRESH movwf hasilh1 bsf STATUS,RP0 movfw ADRESL bcf STATUS,RP0 movwf hasill1 clrf hasilh1

start decfsz wadc,1

goto lanj movlw d'10' movwf wadc lanj clrf disp_u clrf disp_t clrf disp_h

(22)

xx

clrf deldet movfw hasilh1 movwf counter movfw hasill1 sublw maxl btfss STATUS,C decf counter,1 movwf deltal movfw counter sublw maxh movwf deltah movlw d'3' movwf count movlw b'10100000' movwf divder

kont movfw divder

subwf deltah,0 btfss STATUS,C goto geser movwf deltah bcf STATUS,C rrf divder,1 incf deldet,1 bcf STATUS,C rlf deldet,1

konti decfsz count,1

goto kont goto last1 yuhu2 movlw d'2' movwf count goto geser1 geser bcf STATUS,0 rrf divder,1 rlf deldet,1 goto konti

last1 movfw divder

subwf deltah,0 btfss STATUS,C goto yuhu2 movwf deltah incf deldet,1 goto yuhu2 geser1 bcf STATUS,C rlf deltal,1 rlf deltah,1 movfw divder subwf deltah,0 btfss STATUS,C goto geser2 movwf deltah bsf STATUS,C rlf deldet,1 konti2 decfsz count,1 goto geser1 goto beres geser2 bcf STATUS,0 rlf deldet,1 goto konti2

beres movfw hasilh1

movwf counter

(23)

xxi

subwf hasill,0 btfss STATUS,C incf counter,1 movwf deltal movfw counter subwf hasilh,0 movwf deltah clrf count clrf counter tambah incf count,1 bcf STATUS,C rlf deldet,1 btfss STATUS,C goto tambah rrf deldet,1 decf count,1

kont1 movfw deldet

subwf deltah,0 btfss STATUS,C goto geser3 movwf deltah bcf STATUS,C rrf deldet,1 incf counter,1 bcf STATUS,C rlf counter,1 konti1 decfsz count,1 goto kont1 goto last yuhu movlw d'2' movwf count goto geser4 geser3 bcf STATUS,0 rrf deldet,1 rlf counter,1 goto konti1

last movfw deldet

subwf deltah,0 btfss STATUS,C goto yuhu movwf deltah incf counter,1 goto yuhu geser4 bcf STATUS,C rlf deltal,1 rlf deltah,1 movfw deldet subwf deltah,0 btfss STATUS,C goto geser5 movwf deltah bsf STATUS,C rlf counter,1 konti3 decfsz count,1 goto geser4 goto beres2 geser5 bcf STATUS,0

(24)

xxii

rlf counter,1 goto konti3 beres2 movfw counter movwf disp_u clrf counter movfw deltah movwf deltal movlw d'9' movwf count multip movfw deltah addwf deltal,1 btfsc STATUS,C incf counter decfsz count,1 goto multip ;++++++++++++++++++++++++ movfw disp_u movwf count clrf disp_u clrf disp_t clrf disp_h movfw count sublw d'20' btfss STATUS,C goto eror movwf count

naik incf disp_t,1

movlw d'10' subwf disp_t,0 btfsc STATUS,C goto skip1 decfsz count,1 goto naik goto boleh

skip1 incf disp_u,1

clrf disp_t decfsz count,1 goto naik goto boleh eror movlw h'b' movwf disp_u movwf disp_t movwf disp_h goto boleh decfsz p_countl,0 goto boleh movfw hasilh movwf disp_u movwf disp_t movlw b'11110000' andwf disp_u,1 swapf disp_t movlw b'11110000' andwf disp_t,1 movfw hasill movwf disp_h boleh movlw d'4' movwf s_count

(25)

xxiii

led_cont incf s_adj_count,1 movfw digit_cnt movwf s_digit decfsz s_digit,1 goto d_check1 bsf PORTA,1 bsf PORTA,2 bsf PORTA,3 bcf PORTA,4 goto c_digit d_check1 decfsZ s_digit,f goto d_check2 bsf PORTA,1 bsf PORTA,2 bcf PORTA,3 bsf PORTA,4 goto c_digit d_check2 decfsZ s_digit,f goto d_check3 bsf PORTA,1 bcf PORTA,2 bsf PORTA,3 bsf PORTA,4 goto c_digit d_check3 bcf PORTA,1 bsf PORTA,2 bsf PORTA,3 bsf PORTA,4 c_digit decf digit_cnt,w addwf disp_ha,w movwf FSR movfw INDF addwf seg7_ha,w movwf FSR movfw INDF movwf PORTB decfsZ digit_cnt,f goto timeg movlw d'4' movwf digit_cnt goto timeg timeg movlw d'255' movwf s_adj tunggu decfsz s_adj,1 goto tunggu btfss s_adj_count,1 goto led_cont decfsz s_count,1 goto timeg

(26)

xxiv

decfsz p_countl,1 goto hehe movlw d'4' movwf p_countl goto hehe

;*************** Pulse send-out Process **************** pulse movlw b'11111000' movwf PORTC movfw s_count sublw d'30' btfsc STATUS,Z goto adc call t12us balik clrf PORTC nop nop nop nop balik2 nop return t12us nop nop return adc bsf ADCON0,GO nop clrf PORTC nop movlw d'3' movwf s_adj

time decfsz s_adj,1

goto time

movlw b'11111000'

movwf PORTC

movlw d'3'

movwf s_adj

time2 decfsz s_adj,1

goto time2 clrf PORTC movfw ADRESH movwf hasilh bsf STATUS,RP0 movfw ADRESL bcf STATUS,RP0 movwf hasill return end

(27)

xxv

LAMPIRAN 3

Assembler Pengukur Jarak Menggunakan Ultrasonik

;******************************************************** ;

; Ultrasonic Range Meter ;

;******************************************************** list p=pic16f877

include p16f877.inc

__config _XT_OSC & _WDT_OFF & _PWRTE_ON & _LVP_OFF ;**************** Label Definition ******************** cblock h'20' s_count s_adj s_adj_count s_digit g_time1 g_time2 p_countl p_counth digit_cnt disp_ha disp_u disp_t disp_h seg7_ha seg70 seg71 seg72 seg73 seg74 seg75 seg76 seg77 seg78 seg79 seg7a seg7b endc ra1 equ h'01' ra2 equ h'02' ra3 equ h'03' ra5 equ h'05' ccp1 equ h'02' seg7_0 equ b'01000000' seg7_1 equ b'01111001' seg7_2 equ b'00100100' seg7_3 equ b'00110000' seg7_4 equ b'00011001' seg7_5 equ b'00010010' seg7_6 equ b'00000010' seg7_7 equ b'01111000' seg7_8 equ b'00000000' seg7_9 equ b'00010000' seg7_a equ b'01111111' seg7_b equ b'00100011'

(28)

xxvi

;**************** Program Start *********************** org 0 goto init org 4 goto int ;**************** Initial Process ********************* init movlw d'10' movwf s_adj movlw d'8' subwf s_adj,1 ;*** Port initialiZation bsf STATUS,RP0 movlw b'00000001' movwf TRISA clrf TRISB movlw b'00000100' movwf TRISC

;*** Ultrasonic sending period initialiZation (Timer0) movlw b'11010111'

movwf OPTION_REG bcf STATUS,RP0 clrf TMR0

;*** Capture mode initialiZation (Timer1) movlw b'00000001'

movwf T1CON clrf CCP1CON ;*** A/D converter initialiZation movlw b'01000001' movwf ADCON0 bsf STATUS,RP0 movlw b'00001110' movwf ADCON1 bcf STATUS,RP0 ;*** Display initialiZation (Timer2) movlw disp_u movwf disp_ha movlw h'0a' movwf disp_u movwf disp_t movwf disp_h movlw d'3' movwf digit_cnt movlw seg70 movwf seg7_ha movlw seg7_0 movwf seg70 movlw seg7_1 movwf seg71 movlw seg7_2 movwf seg72 movlw seg7_3 movwf seg73 movlw seg7_4 movwf seg74 movlw seg7_5 movwf seg75 movlw seg7_6 movwf seg76

(29)

xxvii

movlw seg7_7 movwf seg77 movlw seg7_8 movwf seg78 movlw seg7_9 movwf seg79 movlw seg7_a movwf seg7a movlw seg7_b movwf seg7b movlw b'00011110' movwf T2CON bsf STATUS,RP0 movlw d'157' movwf PR2 bsf PIE1,TMR2IE bcf STATUS,RP0 ;*** Interruption control movlw b'11100000' movwf INTCON wait goto $ ;*************** Interruption Process ***************** int movfw PIR1 btfsc PIR1,CCP1IF goto capture btfsc PIR1,TMR2IF goto led_cont movfw INTCON btfsc INTCON,T0IF goto send ;*************** Illegal interruption ***************** illegal movlw h'0b' addwf seg7_ha,w movwf FSR movfw INDF movwf PORTB bcf PORTA,ra1 bcf PORTA,ra2 bcf PORTA,ra3 goto $

;************ END of Interruption Process ************** int_end

retfIE

;*************** Pulse send-out Process **************** send

bcf INTCON,T0IF clrf TMR0 ;*** Received Pulse detection check movfw PORTC btfsc PORTC,ccp1 goto detect_off movlw h'0a' movwf disp_u

(30)

xxviii

movwf disp_t

movwf disp_h ;*** Receive pulse detector off detect_off bcf PORTA,ra5 ;*** Capture start clrf TMR1H clrf TMR1L clrf CCPR1H clrf CCPR1L movlw b'00000101' movwf CCP1CON bsf STATUS,RP0 bsf PIE1,CCP1IE bcf STATUS,RP0 bcf PIR1,CCP1IF ;*** 40KHz pulse send ( 0.5 msec ) movlw d'20'

movwf s_count ;Set count s_loop

call pulse decfsz s_count,f goto s_loop ;*** Get adjustment data

bsf ADCON0,GO ad_check btfsc ADCON0,GO goto ad_check movfw ADRESH movwf s_adj movlw d'5' movwf s_adj_count ad_rotate rrf s_adj,f decfsZ s_adj_count,f goto ad_rotate movfw s_adj andlw b'00000111' addlw d'54' movwf s_adj

;*** Capture guard timer ( 1 milisecound ) movlw d'2' movwf g_time1 g_loop1 movlw d'124' movwf g_time2 g_loop2 nop decfsZ g_time2,f goto g_loop2 decfsZ g_time1,f goto g_loop1 ;*** Receive pulse detector on bsf PORTA,ra5 goto int_end

(31)

xxix

;*************** Pulse send-out Process ****************

pulse movlw b'11110000' movwf PORTC call t12us clrf PORTC goto $+1 goto $+1 return ;*************** 12 microseconds timer ***************** t12us goto $+1 goto $+1 goto $+1 return ;****************** Capture Process ******************** capture bcf PIR1,CCP1IF clrf p_countl clrf p_counth clrf CCP1CON division movfw s_adj subwf CCPR1L,f btfsc STATUS,Z goto division2 btfsc STATUS,C goto division1 goto division3 division1 movlw d'1' addwf p_countl,f btfss STATUS,C goto division incf p_counth,f goto division division2 movfw CCPR1H btfss STATUS,Z goto division1 movlw d'1' addwf p_countl,f btfss STATUS,C goto digit_set incf p_counth,f goto digit_set division3 movfw CCPR1H btfss STATUS,Z goto division4 goto digit_set division4 decf CCPR1H,f movlw d'255' addwf CCPR1L,f incf CCPR1L,f goto division1

(32)

xxx

;**************** Digit Set Process ********************

digit_set clrf disp_u clrf disp_t clrf disp_h ;*** 100th digit digit_h movlw d'100' subwf p_countl,f btfsc STATUS,Z goto digit_h2 btfsc STATUS,C goto digit_h1 goto digit_h3 digit_h1 incf disp_h,f goto digit_h digit_h2 movfw p_counth btfss STATUS,Z goto digit_h1 incf disp_h,f goto digit_t digit_h3 movfw p_counth btfss STATUS,Z goto digit_h4 movlw d'100' addwf p_countl,f goto digit_t digit_h4 decf p_counth,f movlw d'255' addwf p_countl,f incf p_countl,f goto digit_h1 ;*** 10th digit digit_t

;*** Range over check

movfw disp_h sublw d'9' btfsc STATUS,Z goto digit_t0 btfsc STATUS,C goto digit_t0 movlw h'0a' movwf disp_u movwf disp_t movwf disp_h goto int_end digit_t0 movlw d'10' subwf p_countl,f btfsc STATUS,Z goto digit_t1 btfsc STATUS,C

(33)

xxxi

goto digit_t1 goto digit_t2 digit_t1 incf disp_t,f goto digit_t digit_t2 movlw d'10' addwf p_countl,f goto digit_u ;*** 1st digit digit_u movfw p_countl movwf disp_u goto int_end

;**************** LED display control ***************** led_cont bcf PIR1,TMR2IF movfw digit_cnt movwf s_digit decfsZ s_digit,f goto d_check1 bsf PORTA,ra1 bsf PORTA,ra2 bcf PORTA,ra3 goto c_digit d_check1 decfsZ s_digit,f goto d_check2 bsf PORTA,ra1 bcf PORTA,ra2 bsf PORTA,ra3 goto c_digit d_check2 bcf PORTA,ra1 bsf PORTA,ra2 bsf PORTA,ra3 c_digit decf digit_cnt,w addwf disp_ha,w movwf FSR movfw INDF addwf seg7_ha,w movwf FSR movfw INDF movwf PORTB decfsZ digit_cnt,f goto int_end movlw d'3' movwf digit_cnt goto int_end ;******************************************************** ; END of Ultrasonic Range Meter

;******************************************************** end

Referensi

Dokumen terkait

masing-masing piksel memiliki warna tertentu, warna tersebut adalah merah (red), hijau (green) dan biru (blue). Karena jumlah bit yang diperlukan untuk setiap piksel, gambar

mencapai break even point ? 2) Apa saja kendala yang dihadapi oleh industri percetakan ( digital printing ) di Kecamatan Tembilahan Kabupaten Indragiri

Surat undangan ini disamping dikirimkan melalui e-mail juga ditempatkan dalam pojok berita website LPSE Provinsi Jawa Tengah, oleh karenanya Panitia Pengadaan Pekerjaan

(2) Sumpah sebagaimana dimaksud pada ayat (1) berbunyi sebagai berikut "Demi Allah saya bersumpah bahwa saya akan memenuhi kewajiban hakim dengan sebaik-baiknya

Pada saat yang sama juga terjadi kevakuman pada ruang disebelah kanan torak, sehingga katub masuk sebelah kanan terbuka dan udara dari saringan akan masuk ke ruang disebelah

Dari pernyataan tersebut berarti bahwa Ho diterima Ha ditolak, sehingga hipotesis III yang menyatakan tidak ada perbedaan pengaruh pemberian intervensi long axis

Rancangan sistem pakar yang dibuat ini bertujuan untuk membantu wanita dalam menentukan jenis kulit wajahnya, agar dapat memilih produk kosmetik yang tepat sesuai dengan jenis

Penelitian ini menguji faktor- faktor yang mempengaruhi kualitas prosedur pengendalian internal dalam memoderasi hubungan antara persepsi. keadilan organisasi terhadap