Tunda: mov r7,255
2 Tnd: mov r6,255 2
djnz r6, 255 x 2 = 510 x 255 = 130.054 = 130.058
= 130.059
d
djnz r7,loop3 2
djnz r2,loop8 2
ret
1
Jadi waktu yang dibutuhkan untuk mengerjakan program di atas adalah
130.059
detik atau 0,
130059
detik dan dapat dibulatkan menjadi 0,13 detik. Jika program tersebut diisikan ke mikrokontroller AT89S51, kemudian
mikrokontroller dapat berjalan sesuai dengan program yang diisikan, maka rangkaian minimum mikrokontroller AT89S51 telah bekerja dengan baik
4.3 Pengujian Rangkaian Driver Motor Stepper
Rangkaian driver motor stepper ini terdiri dari empat masukan dan empat keluaran, dimana masing-masing masukan dihubungkan dengan mikrokontroler AT89S51 dan
keluarannya dihubungkan ke motor stepper. Rangkaian ini akan bekerja memutar motor stepper jika diberi sinyal high 1 secara bergantian pada ke-4 masukannya.
Rangkaiannya seperti gambar di bawah ini :
Universitas Sumatera Utara
Gambar 4.1 Rangkaian driver motor stepper
Gambar 4.1 Rangkaian Driver Motor Stepper
Rangkaian ini terdiri dari 4 buah transistor NPN TIP 122. Masing-masing transistor dihubungkan ke P0.0, P0.1, P0.2 dan P0.3 pada mikrokontroler AT89S51.
Basis dari masing-masing transistor diberi tahanan 1 Kohm untuk membatasi arus yang masuk ke basis pada transistor. Kolektor dihubungkan dengan kumparan yang
terdapat pada motor stepper, kemudian kumparan dihubungkan dengan sumber tegangan 12 volt.dan emitor dihubungkan ke ground.
Universitas Sumatera Utara
Jika P0.0 diberi logika high 1, yang berarti basis pada transistor TIP 122 mendapat tegangan 5 volt, maka transistor akan aktip. Hal ini akan menyebabkan
terhubungnya kolektor dengan emitor, sehingga kolektor mendapatkan tegangan 0 volt dari ground. Hal ini menyebabkan arus akan mengalir dari sumber tegangan 12 volt ke
kumparan, sehingga kumparan akan menghasilkan medan magnet. Medan magnet ini akan menarik logam yang ada pada motor, sehingga motor mengarah pada kumparan
yang memiliki medan magnet tesebut. Jika kemudian P0.0 di beri logika low 0, yang berarti transistor tidak aktip
dan tidak ada arus yang mengair pada kumparan, sehingga tidak ada medan magnet pada kumparan. Dan disisi lain P0.1 diberi logika high 1, sehingga kumparan yang
terhubung ke P0.1 akan menghasilkan medan magnet. Maka motor akan beralih kearah kumparan yang terhubung ke P0.1 tersebut. Seterusnya jika logika high
diberikan secara bergantian pada input dari driver motor stepper, maka motor stepper akan berputar sesuai dengan arah logika high 1 yang diberikan pada inputnya.
Untuk memutar dengan arah yang berlawanan dengan arah yang sebelumnya, maka logika high 1 pada input driver motor stepper harus diberikan secara
bergantian dengan arah yang berlawanan dengan sebelumnya.
Tabel 4.1 Sinyal masukan pada motor stepper
P0 P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0
1 1
1 1
1 1
1 1
Universitas Sumatera Utara
Tabel 4.2 Data masukan high 1 dan low 0 pada motor buka dan motor tutup.
Program yang diberikan pada driver motor stepper untuk memutar motor stepper adalah sebagai berikut :
mov a,11h putar:
mov P0,a acall tunda
Rl a jmp putar
Sensor 1 Sensor 2
Motor buka Motor tutup
1 1
00000000 00000000
1 10000000
01000000 00100000
00010000 00001000
00000100 00000010
00000001 00000000
00000000 00000000
00000000 00000000
00000000 00000000
00000000 1
00000000 00000000
00000000 00000000
00000000 00000000
00000000 00000000
00000001 00000010
00000100 00001000
00010000 00100000
01000000 10000000
Universitas Sumatera Utara
Program diawali dengan memberikan nilai 11h pada pada accumulator a, kemudian program akan memasuki rutin buka pintu. Nilai a diisikan ke port 0, sehingga
sekarang nilai port 0 adalah 11h. ini berarti P0.0 dan P0.4 mendapatkan logika high sedangkan yang lainnya mendapatkan logika low, seperti table di bawah ini,
P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0 P0
1 1
Program dilanjutkan dengan memanggil rutin tunda. Lamanya tunda akan mempengaruhi kecepatan perputaran motor. Semakin lama maka tunda, maka
perputaran motor akan semakin lambat. Perintah berikutnya adalah Rl a,perintah ini akan memutar nilai yang ada pada accumulator a, seperti tampak pada table di
bawah ini,
a
1 1
Rl
a 1
1 Dst..................
Nilai pada accumulator a yang awalnya 11h, setelah mendapat perintah Rl a, maka nilai pada accumulator a akan merubah menjadi 22h. Kemudian program akan
melihat apakah kondisi sensor buka pintu dalam keadaan high 1 atau low 0. Jika high 1, Nilai yang ada pada accumulator a, akan kembali diisikan ke port 0, maka
nilai di port 0 akan berubah menjadi 22h, ini berarti P0.1 dan P0.5 mendapatkan logika high sedangkan yang lainnya mendapatkan logika low, seperti table di bawah
ini,
Universitas Sumatera Utara
P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0 P0
1 1
Sebelumnya telah dibahas bahwa P0.0, P0.1, P0.2, dan P0.3 dihubungkan ke masukan driver motor stepper, dengan program di atas maka P0.0, P0.1, P0.2, dan P0.3 akan
mendapatkan nilai high 1 secara bergantian. Hal ini menyebabkan motor stepper akan berputar membuka pintu.Hal yang sama juga berlaku ketika motor berputar
kaearah sebaliknya, perbedaannya hanya pada perintah rotate. Jika pada perintah berlawanan arah jarum jam digunakan rotate left Rl , maka pada perintah searah
jarum jam digunakan perintah rotate right Rr. Perputaran perintah Rr diperlihatkan pada table berikut,
a 1
1 R r
a
1 1
Dst...................
4.4 Pengujian Rangkaian Sensor