3.4. Perancangan Rangkaian Mikrokontroler AT89S51
Rangkaian mikrokontroler ini berfungsi sebagai pusat kendali dari seluruh rangkaian yang ada pada alat ini. Gambar rangkaian mikrokontroler AT89S51
ditunjukkan pada gambar 3.3 berikut ini :
Gambar 3.3. Rangkaian Mikrokontroler AT89S51 Mikrokontroler ini memiliki 32 port IO, yaitu port 0, port 1, port 2 dan port 3.
Pin 40 dihubungkan ke sumber tegangan 5 volt. Dan pin 20 dihubungkan ke ground. Rangkaian mikrokontroler ini menggunakan komponen kristal 12 MHz sebagai
sumber clocknya. Nilai kristal ini akan mempengaruhi kecepatan mikrokontroler dalam mengeksekusi suatu perintah tertentu.
Pada pin 9 dihubungkan dengan sebuah kapasitor 10 uF yang dihubungkan ke positip dan sebuah resistor 10 Kohm yang dihubungkan ke ground. Kedua komponen
ini berfungsi agar programpada mikrokontroler dijalankan beberapa saat setelah power aktip. Lamanya waktu antara aktipnya power pada IC mikrokontroler dan
aktipnya program adalah sebesar perkalian antara kapasitor dan resistor tersebut. Jika dihitung maka lama waktunya adalah :
Universitas Sumatera Utara
10 10
1 det t
R x C K
x F
m ik
µ
= =Ω =
Jadi 1 mili detik setelah power aktip pada IC kemudian program aktip.
Pin 17 yang merupakan P3.7 dihubungkan dengan transistor dan sebuah LED. Ini dilakukan hanya untuk menguji apakan rangkaian minimum mikrokontroller
AT89S51 sudah bekerja atau belum. Dengan memberikan program sederhana pada mikrokontroller tersebut, dapat diketahui apakah rangkaian minimum tersebut sudah
bekerja dengan baik atau tidak. Jika LED yang terhubug ke Pin 17 sudah bekerja sesuai dengan perintah yang diberikan, maka rangkaian minimum tersebut telah siap
digunakan. Namun setelah seluruh rangkaian disatukan, LED yang terhubung ke in 17 ini tidak digunakan lagi.
3.5. Perancangan Rangkaian Display Seven segmen
Untuk menampilkan angka dari setiap penekanan tombol, maka dibutuhkan sebuah display untuk menampilkannya. Pada alat ini, display yang digunakan adalah
display seven segmen, yang terdiri dari 4 buah seven segmen, sehingga display ini dapat menampilkan 4 digit bilangan.
Display seven segmen ini akan diaktipkan oleh IC 4094 yang merupakan IC serial to paralel serial in paralel out. Jadi data dimasukkan ke dalam IC ini dengan
mengirimkan data serial. Keluaran dari IC 4094 ini langsung dihubungkan ke seven segmen, sehingga data serial yang diterima oleh input IC ini akan ditampilkan nilainya
pada seven segmen.
Universitas Sumatera Utara
Rangkaian ini terhubung ke P3.0 dan P3.1, yang mempunyai fungsi khusus sebagai pengiriman data secara serial. Sehingga nilai yang akan tampil pada display
seven segmen akan dapat dikendalikan oleh mikrokontroler AT89S51.
3. 6 Perancangan Rangkaian Password
Rangkaian password terdiri dari 13 tombol, dimana 10 tombol merupakan tombol angka, yaitu dari angka 0 sampai angka 9. Dan tiga tombol yang lainnya
merupakan tombol setting, tombol run dan tombol untuk mengganti password.
Rangkaian password ini dihubungkan dengan port 1 dan port 2. Pada port 1 terdapat 8 tombol dan pada port 2 terdapat 5 tombol. Dalam kondisi biasa, port 1 dan
port 2 mendapatkan logika high 1, saat terjadi penekanan salah satu tombol, maka pin yang terhubung ke tombol tersebut akan terhubung ke ground, sehingga
mengirimkan sinyal low 0. Perubahan kondisi dari high 1, menjadi low 0 inilah yang merupakan tanda adanya penekanan pada salah satu tombol.
Seterusnya mikrokontroler akan menampilkan nilai dari tombol yang ditekan pada display seven segmen, kemudian membandingkannya dengan nilai password
yang benar, jika benar maka pintu akan terbuka.
Universitas Sumatera Utara
Rangkaian keypad ditunjukkan pada gambar berikut ini :
Tbl 1 Tbl 2
Tbl 3 Tbl A P2.0
P2.1 P2.2
P2.3 P2.4
P2.5 P2.6
P2.7
Gambar 3.4 Rangkaian keypad Rangkaian keypad yang digunakan adalah rangkaian keypad yang telah ada
dipasaran. Keypad ini terdiri dari 13 tombol yang hubungan antara tombol-tombolnya seperti tampak pada gambar di atas. Rangkaian ini dihubungkan ke port 2
mikrokontroler AT89S51. Untuk membuka pintu, maka password yang diberikan harus benar, jika tidak
benar, maka pintu tidak akan terbuka. Rangkaian password ini terdiri dari 13 tombol, seperti gambar di bawah ini.
Universitas Sumatera Utara
Gambar 3.5 Rangkaian Password Rangkaian password ini terhubung ke Port 2 dan port 1, dimana P1.7
merupakan tombol setting, P2.4 merupakan tombol 1, P2.3 merupakan tombol 2, P2.2 merupakan tombol 3, P2.1 merupakan tombol 4, P2.0 merupakan tombol 5, P1.0
merupakan tombol 6, P1.1 merupakan tombol 7, P1.2 merupakan tombol 8, P1.3 merupakan tombol 9, P1.4 merupakan tombol 0, P1.5 merupakan tombol untuk
mengganti password, P1.6 merupakan tombol Run. Jika tombol setting ditekan maka P1.7 akan terhubung ke ground, menyebabkan P1.7 mendapatkan sinyal low. Sinyal
low inilah yang merupakan indikasi bahwa ada penekanan pada tombol setting. Cara kerja yang sama juga berlaku pada ketiga belas tombol lainnya.
P1.7 A T89S51 P2.4 A T89S51
P2.3 A T89S51 P2.2 A T89S51
P2.1 A T89S51 P2.0 A T89S51
P1.0 A T89S51 P1.1 A T89S51
Tombol Setting Tombol 1
Tombol 2 Tombol 3
Tombol 4 Tombol 5
Tombol 6 Tombol 7
P1.2 A T89S51 P1.3 A T89S51
P1.4 A T89S51 P1.5 A T89S51
P1.6 A T89S51 Tombol 8
Tombol 9 Tombol 0
Tombol Ganti Tombol Run
Universitas Sumatera Utara
Program untuk mengetahui penekanan pada tombol password adalah sebagai berikut :
Tbl_Setting Bit P1.7 Tbl_1 Bit P2.4
Tbl_2 Bit P2.3 Tbl_3 Bit P2.2
Tbl_4 Bit P2.1 Tbl_5 Bit P2.0
Tbl_6 Bit P1.0 . . . . .
Tbl_Ganti Bit P1.5 Tbl_Run Bit P1.6
Di awal program dibuat inisialisasi tombol, dimana inisialisasi ini akan berguna untuk mempermudah mengingat hubungan tiap-tiap tombol dengan pin pada mikrokontroler.
Jb Tbl_Setting, Perintah di atas akan merupakan perintah untuk menunggu penekanan pada tombol
setting dan akan terus menunggu sampai ada penekanan pada tombol setting. mov 60h,Bil0
mov 61h,Bil0 mov 62h,Bil0
mov 63h,Bil0 Acall Display
Perintah-perintah di atas akan memasukkan nilai 0 ke alamat 60h yang merupakan alamat untuk mengisi nilai ribuan, memasukkan nilai 0 ke alamat 61h yang
merupakan alamat untuk mengisi nilai ratusan, memasukkan nilai 0 ke alamat 62h
Universitas Sumatera Utara
yang merupakan alamat untuk mengisi nilai puluhan dan memasukkan nilai nol ke alamat 63h yang merupakan alamat untuk mengisi nilai satuan. Sehingga dengan
demikian akan tampil pada display nilai 0000. Cek_no11:
Jb Tbl_1,Cek_no21 mov 70h,1
mov 60h,bil1 Acall Display
Jnb Tbl_1, Acall Tunda
Ljmp Cek_Password2 Cek_no21:
Jb Tbl_2,Cek_no31 mov 70h,2
mov 60h,bil2 Acall Display
Jnb Tbl_2, Acall Tunda
Ljmp Cek_Password2 Program di atas akan mengecek penekanan pertama dari masing-masing
tombol password, yaitu penekanan pada tombol 1, tombol 2, tombol 3 sd tombol 0. Jika tidak ada penekanan pada tombol 1, maka program akan mengecek tombol 2, jika
tombol 2 juga tidak ditekan, maka program akan mengecek tombol 3, dan seterusnya. Jika terjadi penekanan pada tombol 1, maka program akan memasukkan nilai 1 ke
alamat 70h. Nilai ini yang nantinya akan dibandingkan dengan nilai password yang
Universitas Sumatera Utara
benar untuk nilai password pertama. Kemudian program akan memasukkan nilai bil1
ke alamat 60h agar tampil di display angka 1. Selanjutnya program akan melanjutkan untuk mengecek penekanan kedua dari tombol password
Namun jika tombol yang ditekan adalah tombol 2, maka program akan memasukkan nilai 2 ke alamat 70h. Nilai ini yang nantinya akan dibandingkan
dengan nilai password yang benar untuk nilai password pertama. Kemudian program akan memasukkan nilai
bil2 ke alamat 60h agar tampil di display angka 2.
Selanjutnya program akan melanjutkan untuk mengecek penekanan kedua dari tombol password
Demikian juga halnya yang terjadi jika tombol yang ditekan adalah tombol 3, 4, 5 dan seterusnya.
Cek_Password2: Jb Tbl_1,Cek_no22
mov 71h,1 mov 61h,bil1
Acall Display1 Jnb Tbl_1,
Acall Tunda Ljmp Cek_Password3
Cek_no22: Jb Tbl_2,Cek_no32
mov 71h,2 mov 61h,bil2
Acall Display1 Jnb Tbl_2,
Universitas Sumatera Utara
Acall Tunda Ljmp Cek_Password3
Program di atas akan mengecek penekanan password kedua dari masing-masing tombol password. Sama seperti sebelumnya, jika tidak ada penekanan pada tombol 1,
maka program akan mengecek tombol 2, jika tombol 2 juga tidak ditekan, maka program akan mengecek tombol 3, dan seterusnya. Jika terjadi penekanan pada
tombol 1, maka program akan memasukkan nilai 1 ke alamat 70h. Nilai ini yang nantinya akan dibandingkan dengan nilai password yang benar untuk nilai password
kedua. Kemudian program akan memasukkan nilai bil1
ke alamat 60h agar tampil di display angka 1. Selanjutnya program akan melanjutkan untuk mengecek penekanan
ketiga dari tombol password Namun jika tombol yang ditekan adalah tombol 2, maka program akan
memasukkan nilai 2 ke alamat 70h. Nilai ini yang nantinya akan dibandingkan dengan nilai password yang benar untuk nilai password kedua. Kemudian program
akan memasukkan nilai bil2
ke alamat 60h agar tampil di display angka 2. Selanjutnya program akan melanjutkan untuk mengecek penekanan ketiga dari tombol
password Demikian juga halnya yang terjadi jika tombol yang ditekan adalah tombol 3,
4, 5 dan seterusnya. Dan juga penekanan untuk penekanan ketiga dan keempat dari tombol password.
Universitas Sumatera Utara
3.7 Perancangan Rangkaian Driver Motor Stepper