Вы находитесь на странице: 1из 37

1

Tugas Membuat Jurnal Komunikasi Digital

Nama anggota kelompok :


Muhammad Azzam Shabri (P23138113022)
Yoga Purusatama (P23138113039)

PRODI DIV TEKNIK ELEKTROMEDIK


POLTEKKES KEMENKES JAKARTA II 2016
Syringe Pump

Pesawat syringe pump difungsikan untuk memasukkan


cairan yang berupa obat kedalam tubuh pasien. Pesawat syringe
pump ini dapat mengawasi dan mengontrol dirinya sendiri yaitu
mengontrol pemberian obat ke dalam pembuluh darah pasien.
Pesawat syringe pump ini akan diaplikasikan bagi pasien yang
membutuhkan perawatn khusus yaitu pemberian obat harus
sesuai

dengan

tersebut
ditentukan

ketentuan

ditentukan
dengan

waktu.

dalam
resep

Biasanya

ukuran

dokter.

jam,

Karena

ukuran
yang

waktu

tentunya

pemberian

obat

membutuhkan waktu yang cukup lama, maka hanya dengan


menggunakan syringe pump inilah pemberian obat dapat
dikontrol.

Gambar Pesawat Syringe Pump

Pada pesawat syringe pump system operasinya sudah


diprogram dengan system pergerakan motor, maka perawat/
dokter hanya tinggal menentukan dosis (ml/H) yang perlu
diberikan kepada pasien dimana penentuan dosis ini sudah

mengatur

kecepatan

motor

untuk

menekan

syringe

memasukkan obat kedalam tubuh pasien.


Dengan menggunakan pesawat syringe pump, pemberian
obat dapat dikontrol volume penggunaan obat dan waktu
penggunaan obat tersebut.
IC Mikrokontroller adalah komponen produksi Atmel yang
berorientasi pada control dengan level logika CMOS.
Komponen ini termasuk keluarga MCS 51. rangkaian
integrasi tersebut memiliki perlengkapan single chip
Mikrokomputer.

Perlengkapan

yang

dimaksud

adalah

CPU

(Central

Processing Unit) yang terdiri dari komponen yang saling


berhubungan dengan komponen yang lain. Diantaranya
Register, ALU (Aritmatic Logic Unit), Unit Pengendali.
Masing- masing mempunyai fungsi yang berbeda-beda,
antara lain :
a. Register
Register
Beberapa

sebagai
register

memori

sementara

berfungsi

tertentu

di

dalam

seperti

CPU.

program

counter dan kode register, yang lain bersifat lebih umum


seperti akumulator, B register. Tiap-tiap computer memiliki
panjang kata yang merupakan karakteristik dari CPU,
seperti ini besarnya ditentukan oleh bus dan memory
internal, oleh karenanya Mikrokontroller MCS51 memiliki
kemampuan menyimpan data 8 Bit.

b. ALU (Arithmetic Logic Unit)

Dari

namanya

menjalankan

bisa

operasi

diketahui

bahwa

aritmatika

dan

ALU

mampu

logika

dengan

bilangan-bilangan biner. Dalam keluarga MCS51 operasi


ALU datanya terbatas pada jumlah bilangan biner 8 Bit,
tidak

sampai

pada

operasi

floating

point

(angka

mengembang).
c. Unit Pengendali
Unit pengendali digunakan menyerempakkan kerja yang
sangat diperlukan oleh setiap prosesor. Sebuah instruksi
diambil dan di dekode, setelah prosesor mengetahui apa
yang dimaksud instruksi maka unit pengendali memberikan
signal pada aksi yang dimaksud.
Mikrokontroller AT89S51 diatas memiliki beberapa fasilitas
yang

dapat

dipakai

oleh

pengguna,

fasilitas

yang

dimaksud antara lain:


1. Flash program memory ROM internal sebesar 4
kbyte. Dengan flash PEROM ini menyebabkan mikro
kontroler mampu diprogram dan dihapus hingga
1000 kali.
2. Memory data RAM internal sebesar 128 Byte.
3. Kemampuan kerja clock internal dari 0 hingga 24
Mhz.
4. 2 buah timer atau counter yang bisa dipakai hingga
16 bit.
5. Kemampuan mengamati memory program dan data
maksimum 64 Kbytes eksternal.

6. 2 buah tingkat prioritas interupsi.


7. 2 buah interupsi, yaitu 2 interupsi eksternal dan 3
buah interupsi internal.
8. 4 buah I/O masing-masing 8 bit.
9. Port serial full duplex UART (Universal Asincronous
Receive Transmit), dengan kemampuan pendeteksian
kesalahan.
10.Mode pengambilan daya, yaitu :
-

mode idle (daya akan berkurang jika CPU


dikehendaki stand by).

- mode power down (oscillator berhenti yang berarti


daya

akan

berkurang

karena

instruksi

yang

dieksekusi menghendaki power down).


11.Pengembalian ke mode normal setelah power down
karena adanya interupsi
12.Dapat deprogram per bit sehingga pemrograman
akan lebih leluasa dan efektif.
21
22
23
24
25
26
27
28
10
11
12
13
14
15
16
17
30
29

P
P
P
P
P
P
P
P

2 .0 /A
2 .1 /A
2 .2 /A
2 .3 /A
2 .4 /A
2 .5 /A
2 .6 /A
2 .7 /A

8
9
10
11
12
13
14
15

P
P
P
P
P
P
P
P

3 .0 /R XD
3 .1 /T XD
3 .2 /IN T0
3 .3 /IN T1
3 .4 /T 0
3 .5 /T 1
3 .6 /W R
3 .7 /R D

A L E /P R O G
PSEN

P
P
P
P
P
P
P
P

0 .0 /A
0 .1 /A
0 .2 /A
0 .3 /A
0 .4 /A
0 .5 /A
0 .6 /A
0 .7 /A
P
P
P
P
P
P
P
P

D
D
D
D
D
D
D
D

0
1
2
3
4
5
6
7

1 .0
1 .1
1 .2
1 .3
1 .4
1 .5
1 .6
1 .7

XTA L1
XTA L2
E A /V P P
R ST

39
38
37
36
35
34
33
32
1
2
3
4
5
6
7
8
19
18
31
9

AT89S51

Gambar Konfigurasi Pin AT89s5

Gambar Rangkaian Mikrokontroller

LCD adalah sebuah display dot matrix yang difungsikan untuk


menampilkan tulisan berupa angka atau huruf sesuai dengan
yang diinginkan (sesuai dengan program yang digunakan untuk
mengontrolnya). Pada tugas akhir ini penulis menggunakan LCD
dot matrix dengan kharakter 2 x 16, sehingga kaki-kakinya
berjumlah 16 pin.
LCD ini hanya memerlukan daya yang sangat kecil,
tegangan yang dibutuhkan juga sangat rendah yaitu +5 VDC.
Panel TN LCD untuk pengaturan kekontrasan cahaya pada
display dan CMOS LCD drive sudah terdapat di dalamnya.
Semua fungsi display dapat dikontrol dengan memberikan
instruksi dan dapat dengan mudah dipisahkan oleh MPU. Ini

membuat LCD berguna untuk range yang luas dari terminal


display unit untuk mikrokomputer dan display unit measuring
gages.
Tabel 2.1. Fungsi Pin Pada LCD
No

Symbo

Level

Keterangan

.
1

l
Vss

Dihubungkan ke 0 V (Ground)
Dihubungkan dengan tegangan supply

Vcc

+5V dengan toleransi 10%.


Digunakan untuk mengatur

Vee

tingkat

kontras LCD.
Bernilai logika 0 untuk input instruksi

RS

H/L
dan bernilai logika 1 untuk input data.
Bernilai logika 0 untuk proses write

R/W

H/L

dan bernilai logika 1 untuk proses


read.
Merupakan sinyal enable. Sinyal ini akan

aktif pada failing edge dari logika 1 ke

7
8
9
10
11
12
13
14

DB0
DB1
DB2
DB3
DB4
DB5
DB6
DB7

H/L
H/L
H/L
H/L
H/L
H/L
H/L
H/L

logika 0.
Pin data D0
Pin data D1
Pin data D2
Pin data D3
Pin data D4
Pin data D5
Pin data D6
Pin data D7
Back Light pada LCD ini dihubungkan

15

V+BL

dengan tegangan sebesar 4 4,2 V


dengan arus 50 200 mA
Back Light pada LCD ini dihubungkan

16

V-BL

dengan ground

Cara kerja menjalankan LCD :

Langkah 1 : Inisialisasi LCD.


Langkah 2 : Arahkan pada alamat yang dikehendaki (lihat tabel
alamat).
Langkah 3 : Tuliskan data ke LCD, maka karakter akan tampil
pada alamat
Tersebut.
Beberapa fungsi instruksi dari LCD, yaitu :
1. Display Clear.
RS

R/W

DB7

DB6 DB5

Display

Clear

DB4
0

membersihkan

DB3

DB2

DB1

DB0

semua

tampilan

dan

mengembalikan cursor pada posisi semula (address 0). Ruang


kode 20 (heksadesimal) ditulis ke semua alamat dari DD RAM,
dan alamat 0 dari DD RAM diset ke AC (Address Counter). Jika
diubah, display akan kembali ke posisi semula. Setelah perintah
eksekusi pada Display Clear, mode entry akan ditambahkan.

2. Cursor Home.
RS

R/W

DB7

0
0
0
* : invalid bit

DB6 DB5
0

DB4
0

DB3

DB2

DB1

DB0

Cursor Home mengembalikan cursor ke posisi semula


(address 0). DD RAM alamat 0 diset ke AC dan cursor kembali ke
posisi

semula.

Isi

DD RAM jangan dirubah. Jika cursor sedang ON, maka akan


kembali ke sebelah kiri
3. Entry Mode Set.
RS

R/W

DB7

DB6 DB5

DB4

DB3

DB2

DB1

DB0
0

0
0
0
0
0
0
1
I/D
S
Entry Mode Set diset untuk menunjukkan perpindahan

cursor dan apakah display akan dirubah.


I/D : ketika I/D = 1, alamat akan ditambah satu dan cursor
berpindah ke kanan. Ketika I/D = 0, alamat akan dikurangi satu
dan cursor berpindah ke kiri.
S

: ketika S = 1 dan I/D = 1, display berpindah ke kiri.


ketika S = 1 dan I/D = 0, display berpindah ke kanan.
ketika S = 0 , display tak berpindah

4. Display ON/OFF Control.


RS

R/W

DB7

DB6 DB5

DB4

DB3

DB2

DB1

DB0
0

Display ON/OFF Control mengembalikan total dispay dan


cursor ON dan OFF, dan membuat posisi cursor mulai berkedip.
D : ketika D = 1, display ON
ketika D = 0, display OFF
C : ketika C = 1, cursor ditampilkan
ketika C = 0, cursor tidak ditampilkan
B : ketika B = 1, karakter pada posisi cursor berkedip

10

ketika B = 0, karakter pada posisi cursor tidak berkedip.


Contoh : C = 1 (cursor display)

Cursor
B = 1 (blinking)

Gambar Penampakan Cursor pada LCD


5. Cursor/ Display Shift
RS

R/W

DB7

DB6 DB5

DB4

DB3

DB2

DB1

S/C

R/L

DB0
0
0
0
* : invalid bit

Cursor Disply Shift memindah cursor dan mengubah


display tanpa merubah isi dari DD RAM. Berikut ini tabel
penunjukan cursor, yaitu :
Tabel 2.2 Penunjukkan cursor
S/C

R/L

Operasi

0
0
1
1

0
1
0
1

Posisi cursor dipindah ke kiri


Posisi cursor dipindah ke kanan
Semua display dipindah ke kiri dengan cursor
Semua display dipindah ke kanan dengan cursor

10

11

6. Function Set.
RS

R/W

DB7

DB6 DB5

DB4

DB3

DB2

DB1

DB0
0
0
0
* : invalid bit

DL

Function Set digunakan untuk mengeset pemisahan data


length. DL : ketika DL =1, data length diset untuk 8 bit (DB7
sampai DB0). Ketika DL =0, data length diset untuk 4 bit (DB7
sampai DB4). Untuk bit atas ditransfer lebih dulu, kemudian
dilanjutkan bit bawah.

Tabel 2.3 Posisi Karakter Pada LCD Karakter 2 X 16


80 81
C
C

82
C

83
C

84
C

85
C

86
C

87
C

88
C

89
C

8a
C

8b
C

11

8c
Cc

8d
C

8e
C

8f
Cf

12

Gambar Rangkaian LCD

Real Time Clock merupakan suatu chip (IC) yang memiliki fungsi
sebagai penunjuk waktu. RTC DS 1307 memiliki register yg
dapat menunjukkan detik, menit, jam, tanggal, bulan dan tahun.
RTC ini terdiri dari 56 byte untuk media penyimpanan data
berupa nonvolative SRAM.
Karakteristik dari IC RTC DS1307 adalah sebagai berikut :
o

Menggunakan daya rendah

Full bcd clock/calendar

Clock/calendar

menghasilkan

waktu

dari

detik,

otomatis

untuk

menit hingga tahun.


o

Telah

mempunyai

kemampuan

menghitung bulan jika hari telah mencapai 31


termasuk juga pada saat bulan terakhir 12 menjadi
tahun
o

Jam dapat dioperasikan dalam dua operasi yaitu 24


jam dan 12 jam dengan indikator am dan pm

Terintegrasi suatu rangkaian pendeteksi kesalahan


VCC sehingga pada saat daya pada VCC tidak
bernilai tepat atau tidak ada daya pada VCC maka
akan otomatis daya beralih power backup dimana
pada IC ini menggunakan battery untuk power
cadangan

Battery cadangan disini difungsikan untuk menjaga


data dan tetap beroperasinya IC (waktu tetap

12

13

menghitung walaupun tanpa adanya supply pada


VCC).
Proses

pembacaan

waktu

adalah

dengan

membaca

register penyimpanan yang ada pada IC ini melalui komunikasi


serial dengan pin 5(SDA) pada IC ini. SDA merupakan pin pada
IC ini yang digunakan untuk mengirimkan maupun menerima
data menuju mikrokontroller. Dimana untuk sinkronisasi clock
menggunakan pin 6 (SCL).
Pada IC ini juga terdapat pin yang dapat menghasilkan
pulsa oscilator berupa gelombang kotak dengan besar frekuensi
yang dapat diatur. Frekuensi yang dapat dihasilkan antara lain
1Khz, 4Khz, 8Khz dan 32Khz dengan mensetting control register
DS 1307 pada bit 0 dan 1 (RS0 dan RS1).

13

14

Gambar Rangkaian RTC

14

15

Motor

adalah

suatu

mesin

listrik

yang

mempunyai

yang

mengubah suatu daya listrik menjadi daya mekanik. Salah satu


jenis motor adalah motor DC. Motor DC adalah motor yang
mempunyai dua arah putaran yang tergantiung dari fase yang
diberikan. Sumber tegangan yang digunakan adalah DC, putaran
motor dapat dikendalikan dengan pengaturan besar kecilnya
tegangan melalui resistansi. Prinsip dasar dari motor DC adalah
terdapatnya kumparan yang bergerak terhadap medan magnet.

IC L293D
Merupakan IC driver motor DC dimana fungsi pada
rangkaian ini adalah sebagai control motor. Dengan cara kerja
seperti pada tabel dibawah ini:
Tabel Cara kerja motor
Pin Enable
Logika 1
Logika 1
Logika 1

Input
Pin Input1
Logika 1
Logika 0
Logika 0

Fungsi
Pin

Input

2
Logika 0
Logika 1
Logika 0

15

Motor Putar Kanan


Motor Putar Kiri
Motor Berhenti

16

Gambar Rangkaian driver motor DC

Pada rangkaian ini penulis menggunakan optocoupler model u


dengan jenis GP A150HR. Optocoupler disini terdiri dari 4 buah
pin dua pin 1 dan 2 adalah kaki led pada optocoupler dan pin 3
dan 4 adalah kaki transistor pada optocoupler. Jika pada pin 1

16

17

diberikan tegangan dan pin 2 diberikan ground maka led akan


bekerja sehingga transistor pada optocoupler akan saturasi.

Gambar Rangkaian optocoupler

DIAGRAM BLOK ALAT SYRINGE PUMP

SETTING
VOLUME

SETTING
WAKTU

LCD CHARACTER

RTC DS 1307

BUZZER
MIKRO
KONTROLLER
AT89s51
LIMIT
SWITCH

17
DRIVER
MOTOR

MOTOR DC

OPTOCOUPLER

18

CARA KERJA DIAGRAM BLOK


Tegangan dari PLN masuk ke power supply untuk diubah
menjadi tegangan DC digunakan mensupply rangkaian maupun
komponen yang memerlukan tegangan DC.
Untuk menjalankan pesawat ini terlebih dahulu kita
setting

volume obat yang akan dimasukkan dalam proses

injeksi, baru kemudian dilakukan setting waktu berupa setting


tanggal dan setting jam berapa saja kita akan melakukan injeksi.
Data-data tersebut akan masuk dan diolah oleh mikrokontroller,
Mikrokontroler akan mengkontrol rtc agar bekerja mikrokontroller
akan mengambil data secara terus menerus dari RTC dan
membandingkan dengan data setting waktu baik itu tanggal,
jam dan menit. Sehingga pada saat waktu tercapai maka buzzer
akan berbunyi dan mikrokontroler akan mengatur ic L 293 d
sebagai driver motor DC agar memutar motor DC sesuai dengan
setting yang telah dilakukan pada mikrokontroler untuk setting
volume. Dalam hal ini rangkaian optocoupler akan memberikan
counter pada mikrokontroller dan oleh mikro akan dibandingkan
dengan nilai pada setting volume. Jika nilainya sama maka
mikrokontroller akan mengontrol

driver motor agar motor DC

DC berhenti bekerja selanjutnya akan kembali mengambil data


dari RTC dan dibandingkan dengan setting waktu yang kedua.
Proses

yang

kedua

dan

18

ketiga

sama

dengan

proses

19

pertama.Paada saat

motor DC bekerja, maka pergerakkan

motor DC tersebut akan memutar ulir dan menyebabkan slider


bergerak maju untuk mendorong spet dan terjadi injeksi. Limit
switch disini digunakan sebagai pengaman pada saat obat pada
spet telah habis.
DIAGRAM ALIR

N
NO O

B
E
GI
N
SET
TIN
G
VO
B
SET
LU
TIN
ME
G
WA
KTU
TIME TAMPIL
R
VOLUME
JALA (MILILITER)
N
WA
KT
U
VOLUME
Y
SES
BUZ
E
SESUAI
UAI
ZER
S
SESUAI
AK
MOTOR
TIF
YES
DC
JALAN
19 END
B

20

Pesawat

dihidupkan

dengan

menekan

tombol

ON,

kemudian memasukkan data jumlah volume obat yang akan


diinjeksikan kepada pasien antara 9cc, 15cc, 24cc, dan 30cc.
untuk setting obat disini adalah jumlah volume obat yang
dimasukkan dalam satu hari dengan tiga kali penginjeksian
missalnya kita pilih 9cc perhari maka obat akan dimasukkan 3cc
setiap penginjeksian dengan waktu penginjeksian yang bisa
disetting. Contoh obat harus dimasukkan sebanyak tiga kali
sehari dengan waktu pemasukkan adalah jam 6.00, jam 12.00,
dan jam 18.00 maka kita bisa mensettingnya pada setting
waktu.

Kemudian

mengambil

data

dari

RTC

dan

membandingkan dengan setting waktu yang telah diberikan. Jika


waktu

telah

tercapai

maka

buzzer

akan

berbunyi

menandakan waktu injeksi, kemudian motor DC bekerja

yang
dan

optocoupler akan mengcounter putaran dari motor DC tersebut,


kemudian di mikrokontroller akan terjadi proses konversi waktu
kemililiter melalui pembangkitan osilasi frekuensi. Data milliliter
tersebut ditampilkan ke display. Setelah selesai proses injeksi
tersebut kembali ke penyesuaian waktu untuk proses injeksi
selanjutnya.

Hasil Pengukuran
Pengukuran pada alat ini dilakukan pada hasil keluaran
obat dalam ml yang diukur dari spet oleh rangkaian optocoupler

20

21

sehingga akan dihasilkan counter yang kemudian akan dihitung


oleh mikrokontroller. Dengan proses :
Memberikan nilai counter tertentu pada mikrokontroller
melalui program
Nilai counter tersebut

adalah batasan nilai maksimal

counter yang dihitung oleh mikrokontroller


Mula-mula

mikrokontroller

akan

menjalankan

motor

sehingga syringe akan didorong dan menghasilkan tetesan


berupa obnat dalam ukuran mililiter.
Perputaran

motor

tadi

disensor

aleh

rangkaian

opotocoupler sehingga akan dihasilkan data counter yang


kemudian akan diinputakan ke mikrokontroller.
Mikrokontroller akan membandingkan nilai batasan counter
yang telah diinputkan dengan data counter yang sedang
diukur, jika nilainya sama maka mikro akan menghentikan
motor.
Hasil dari tetesan obat yang dikeluarkan oleh syringe pada
saat motor berjalan adalah nilai mililiter dari hasil input
batasan counter yang diberikan.

BLOK RANGKAIAN KESELURUHAN

21

22

Cara Kerja Rangkaian:


Pertama dilakukan setting volume dan setting waktu.
Setting dilakukan dengan menekan tombol up dan down.
Kemudian diproses oleh mikro, ditampilkan ke LCD dan disimpan
di mikrokontroller. Pada saat proses berlangsungdata waktu akan
diambil dari RTC kemudian akan dibandingkan dengan data
setting yang telah disimpan di mikrokontroller. Setelah waktu
setting sesuai dengan waktu pada RTC maka mikrokontroller
akan memberikan logika 0 pada transistor BD 140 sehingga
transistor saturasi dan buzzer akan berbunyi. Setelah buzzer
berbunyi mikrokontroller akan memberikan logika 1 pada P3.2
dan logika 0 pada P3.3 sehingga IC L293d akan aktif dan motor
DC bekerja. Pada saat bersamaan ketika optocoupler terhalang
oleh kipas pada motor maka optocoupler akan menghitung
putaran

motor,

outputan

22

dari

optocoupler

masuk

ke

23

mikrokontroller

dan

dikonversikan

menjadi

mililiter.setelah

volume sesuai dengan settig volume , mikrokontroller akan


memberi logika 0 pada P3.2 dan P3.3 maka IC L293d akan
nonaktif sehingga motor DC akan berhenti berputar. Dan proses
selesai.
6.II

BLOK RANGKAIAN RTC DS 1307


6.1I.1 Rangkaian RTC DS 1307

Gambar 6.1 Rangkaian RTC DS 1307


Cara Kerja Rangkaian:
Pada rangkaian ini menggunakan IC DS 1307 yang
mendapatkan tegangan ( 5 Vdc ). Rangkaian ini berfungsi
sebagai penunjuk waktu yang memiliki register penunjuk ndetik,
menit, jam, tanggal, bulan dan tahun.
Battery cadangan disini difungsikan untuk menjaga data dan
tetap beroperasinya IC (waktu tetap menghitung walaupun
tanpa adanya supply pada VCC).
Proses

pembacaan

waktu

adalah

dengan

membaca

register penyimpanan yang ada pada IC ini melalui komunikasi

23

24

serial dengan pin 5(SDA) pada IC ini. SDA merupakan pin pada
IC ini yang digunakan untuk mengirimkan maupun menerima
data menuju mikrokontroller. Dimana untuk sinkronisasi clock
menggunakan pin 6 (SCL).
Di

bawah

ini

adalah

software

untuk

menjalankan

rangkaian RTC :
;

THIS SUB READS THE CLOCK AND WRITES IT TO THE SCRATCH PAD
MEMORY ;
;

READ_CLOCK:
READ_AGAIN:
MOV R1,#28h ; START OF CLOCK REG IN SCRATCHPAD
MOV BYTECOUNT,#00H ; COUNTER UP TO 8 BYTES FOR CLOCK
CLR LASTREAD ; FLAG TO CHECK FOR LAST READ
LCALL SEND_START ; SEND START CONDITION
MOV A,#DS1307W ; SET POINTER TO REG 00H ON DS1307
LCALL SEND_BYTE
MOV A,#00H
LCALL SEND_BYTE
LCALL SEND_mtr_stop ; SEND mtr_stop CONDITION
LCALL SEND_START ; SEND START CONDITION

24

25

MOV A,#DS1307R ; SEND READ COMMAND TO DS1307


LCALL SEND_BYTE
READ_LOOP:
MOV A,BYTECOUNT ; CHECK TO SEE OF DOING LAST READ
CJNE A,#07H,NOT_LAST
SETB LASTREAD ; SET LASTREAD FLAG
NOT_LAST:
LCALL READ_BYTE ; READ A BYTE OF DATA
MOV @R1,A ; MOVE DATA IN SCRATCHPAD MEMORY
MOV A,BYTECOUNT ; CHECK TO SEE IF READING SECONDS REG
CJNE A,#00H,NOT_FIRST
CLR OSC ; CLR OSC FLAG
MOV A,@R1 ; MOVE SECONDS REG INTO ACC
JNB ACC.7,NO_OSC ; JUMP IF BIT 7 OF IS A 0
SETB OSC ; SET OSC FLAG, BIT 7 IS A 1
CLR ACC.7 ; CLEAR BIT 7 FOR DISPLAY PURPOSES
MOV @R1,A ; MOVE DATA BACK TO SCRATCHPAD
NO_OSC:
NOT_FIRST:
INC R1 ; INC COUNTERS
INC BYTECOUNT
MOV A,BYTECOUNT
CJNE A,#08H,READ_LOOP ; LOOP FOR ENTIRE CLOCK REGISTERS
LCALL SEND_mtr_stop ; SEND 2WIRE mtr_stop CONDITION
ret

25

26

; THIS SUB SENDS THE START CONDITION


;

SEND_START: ;
SETB _2W_BUSY ; INDICATE THAT 2WIRE OPERATION IN PROGRESS
CLR ACK ; CLEAR STATUS FLAGS
CLR BUS_FAULT
JNB SCL,FAULT ; CHECK FOR BUS CLEAR
JNB SDA,FAULT ; BEGIN START CONDITION
SETB SDA ;
LCALL SCL_HIGH ; SDA
CLR SDA
LCALL DELAY ; SCL ^START CONDITION
CLR SCL ;
RET
FAULT:
SETB BUS_FAULT ; SET FAULT STATUS
RET ; AND RETURN
;

; THIS SUB SENDS THE mtr_stop CONDITION

26

27

SEND_mtr_stop:
CLR SDA ; SDA
LCALL SCL_HIGH ;
SETB SDA ; SCL ^mtr_stop CONDITION
CLR _2W_BUSY
RET ;

THIS SUB SENDS ONE BYTE OF DATA TO THE DS1307


;

SEND_BYTE:
MOV BITCOUNT,#08H ; SET COUNTER FOR 8 BITS
SB_LOOP:
JNB ACC.7,NOTONE ; CHECK TO SEE IF BIT 7 OF ACC IS A 1
SETB SDA ; SET SDA HIGH (1)
JMP ONE
NOTONE:
CLR SDA ; CLR SDA LOW (0)
ONE:
LCALL SCL_HIGH ; TRANSITION SCL LOWTOHIGH
RL A ; ROTATE ACC LEFT ONE BIT

27

28

CLR SCL ; TRANSITION SCL HIGHTOLOW


DJNZ BITCOUNT,SB_LOOP ; LOOP FOR 8 BITS
SETB SDA ; SET SDA HIGH TO LOOK FOR ACKNOWLEDGE PULSE
LCALL SCL_HIGH ; TRASITION SCL LOWTOHIGH
CLR ACK ; CLEAR ACKNOWLEDGE FLAG
JNB SDA,SB_EX ; CHECK FOR ACK OR NOT ACK
SETB ACK ; SET ACKNOWLEDGE FLAG FOR NOT ACK
SB_EX:
LCALL DELAY ; DELAY FOR AN OPERATION
CLR SCL ; TRANSITION SCL HIGHTOLOW
LCALL DELAY ; DELAY FOR AN OPERATION
RET
;

; THIS SUB READS ONE BYTE OF DATA FROM THE DS1307


;

READ_BYTE:
MOV BITCOUNT,#008H ; SET COUNTER FOR 8 BITS OF DATA
MOV A,#00H ;
SETB SDA ; SET SDA HIGH TO ENSURE LINE FREE
READ_BITS:
LCALL SCL_HIGH ; TRANSITION SCL LOWTOHIGH
MOV C,SDA ; MOVE DATA BIT INTO CARRY BIT \

28

29

RLC A ; ROTATE CARRY BIT INTO ACC.0


CLR SCL ; TRANSITION SCL HIGHTOLOW
DJNZ BITCOUNT,READ_BITS ; LOOP FOR 8 BITS
JB LASTREAD,ACKN ; CHECK TO SEE IF THIS IS THE LAST READ
CLR SDA ; IF NOT LAST READ SEND ACKNOWLEDGE BIT
ACKN:
LCALL SCL_HIGH ; PULSE SCL TO TRANSIMIT ACKNOWLEDGE
CLR SCL ; OR NOT ACKNOWLEDGE BIT
RET
;

; THIS SUB SETS THE CLOCK LINE HIGH


;

SCL_HIGH:
SETB SCL ; SET SCL HIGH
JNB SCL,$ ; LOOP UNTIL STRONG 1 ON SCL
RET
;

; THIS SUB DELAY THE BUS

29

30

DELAY:
NOP ; DELAY FOR BUS TIMING
RET
;

; THIS SUB DELAYS 4 CYCLES


;

DELAY_4:
NOP ; DELAY FOR BUS TIMING
NOP
NOP
NOP
RET
PENJELASAN PROGRAM
Mikrokontroller mengambil data dari RTc menggunakan
komunikasi data secara serial. Secara serial disini berarti
pengiriman hanya menggunakan 2 jalur data saja. Dua
jalur data ini masuk pada pin scl dan sda pada RTc. Pin scl pada
rtc digunakan untuk sincronisasi clock dan pin sda digunakan
untuk jalur data yang akan dikirim. Caranya adalah mikro akan

30

31

mengkondisikan start ke RTc digunakan untuk proses mulai


pengiriman data.pertama mengkondisikan start, mengirim 0d1
heksa ke RTC agar RTC mengembalikan set pointer pada register
00h, Ack dibangkitlan oleh RTC, menerima data dari detik, mikro
membangkitkan

ack,

membangkitkan

Ack,

membangkitan

Ack,

menerima

data

menerima
menerima

dari

data
data

dari

menit,

mikro

jam,

mkro

tanggal

mikro

mem,bangkitkan

Ack,

menerima

data

bulan,

mkro

membangkitkan

Ack,

menerima

data

tahun,

mkro

membangkitkan N Ack sebagai penanda semua telah diterima,


dan kemudian mengkondisikan stop.

6.II

BLOK RANGKAIAN DRIVER BUZZER

Gambar Blok Rangkaian Driver Buzzer


Cara Kerja Rangkaian:

31

32

Mikrokontroler akan mengoutputkan logika 0 pada driver


buzzer sehingga transistor BD 140 akan saturasi dan tegangan
vcc (5V) akan masuk pada buzzer sehingga buzzer akan bekerja.
Software untuk menjalankan rangkaian buzzer adalah
sebagai berikut :
buzz_ON:

clr buzz

nop
ret
buzz_OFF:

setb buzz

nop
ret
PENJELASAN PROGRAM
Mikro memberikan logika 0 pada P3.0 maka buzzer akan
aktif, kemudian mikro akan member logika 1 pasda P3.0
sehingga buzzer akan mati.

BLOK RANGKAIAN DRIVER MOTOR DC dan BUTTON

Gambar Rangkaian Driver motor DC dan Button

32

33

Cara Kerja Rangkaian:


Pada blok rangkaian ini terdiri dari 2 rangkaian yaitu
rangkaian counter dan rangkaian driver motor DC. Pada
rangkaian counter terdapat sensor optocoupler dimana pada
saat sensor tidak terhalang maka cahaya led pada optocoupler
akan membuat transistor pada optocoupler saturasi sehingga
tegangan vcc akan dikurangi dengan tegangan pada VR + R
(logika1) dan masuk pada pin 3.5 pada mikrokontroler (input
counter mikrokontroler).
Pada saat sensor terhalang maka cahaya led pada
optocoupler akan terhalang sehingga membuat transistor pada
optocoupler cutoff dan tegangan yang masuk adalah tegangan
VR+R (logika 0).
Pada

motor

sendiri

terdapat

kipas

motor

sebagai

penghalang dari optocoupler sehingga pada saat motor bekerja


logika 0 dan logika 1 akan masuk pada input counter pada
mikrokontroler sebagai nilai counter yang akan dihitung.
Pada rangkaian driver motor DC terdapat IC l293d yang
digunakan sebagai driver motor DC. Dengan cara kerja seperti
pada tabel dibawah ini:
Pin Enable

Input
Pin Input1

Logika 1
Logika 1
Logika 1

Logika 1
Logika 0
Logika 0

Fungsi
Pin

Input

2
Logika 0
Logika 1
Logika 0

33

Motor Putar Kanan


Motor Putar Kiri
Motor Berhenti

34

Pada rangkaian ini juga terdapat diode yang berfungsi


sebagai pengaman tegangan balik dari motor pada saat motor
bekerja.
Untuk menjalankan rangkaian driver motor dan rangkaian
optocoupler di adalah sebagai berikut :
mtr_maju :

setb enM
nop
setb DLM
nop
clr DRM
nop
ret

mtr_back :

setb enM
nop
clr DLM
nop
setb DRM
nop
ret

mtr_stop :

setb enM
nop
clr DLM
nop
clr DRM
nop
ret

Counter_ON:

Setb TR1
ret

Counter_OFF:

Clr TR1

34

35

Ret

Procedure Proses motor + counting


;
motor1: mov scn_sign,#2
call buzz_on
call wkt_buzz
call buzz_off
call tls_obat
call mtr_maju
call counter_on
call counter
ajmp proses1
motor2: mov scn_sign,#3
call buzz_on
call wkt_buzz
call buzz_off
call tls_obat
call mtr_maju
call counter_on
call counter
ajmp proses1
motor3: call buzz_on
call wkt_buzz
call buzz_off
call tls_obat

35

36

call mtr_maju
call counter_on
call counter
ljmp proses
counter: mov a,th1
cjne a,setvol,counter_1
call mtr_stop
call counter_off
mov th1,#0
mov tl1,#0
ret

limit:

jb lmt,counter_2
nop
call mtr_stop
ljmp error

counter_1:

sjmp limit

counter_2:

mov b,#9
div ab
call conv
mov r1,#0ceh
call write_inst
mov r1,sat
call write_data
mov r1,#0cdh
call write_inst

36

37

mov r1,pul
call write_data
sjmp counter
error:

call display_clear

error1:

call display_off
call tls_error
call display_on
call lwkt
sjmp error1

PENJELASAN PROGRAM
Komunikasi

data

serial

pada

mikrokontroller

mengeluarkan logika 1 pada En, Dl dan memberikan logika 0


pada Dr sehingga motor akan berjalan maju. Dan mikrokontroller
memberi logika 1 pada En dan logika 0 pada Dl, Dr sehingga
motor berhenti. Pada saat motor bekerja

maka data counter

akan dikirim ke mikrokontroller dan dibandingkan dengan data


setting counter yang telah diinputkan tadi. Pada saat tercapai
maka motor akan berhenti.

37

Вам также может понравиться