Counter Digital dengan LDR Sebagai Sensor Objek

Rangkain ini berfungsi sebagai Up Counter, jadi ketika objek menghalangi LDR maka counter akan naik satu digit dan seterusnya. rangkaian ini hanya menggunakan 2 digit seven segmen. untuk pengembangan dengan digit lebih banyak juga dapat dilakukan. berikut skema rangkaian tersebut :

Klik pada gambar untuk ukuran penuh

Rangkaian ini menggunakan IC 4026 (Digital Up Counter) dan seven segmen common katoda. 

Tutorial Mikrokontroler AT89S51

Tutorial Mikrokontroler AT89S51 (Versi Bahasa Assembler)
Dalam tutorial ini dibahas mengenai mikrokontroler keluarga MCS51 yang diwakili oleh AT89S51, karena dalam aplikasinya nanti langkah pemrogramannya akan sama dengan jenis lain AT89Sxx/AT89Sxxxx.

Dasar Teori
Spesifikasi Mikrokontroler AT89S51
Konfigurasi PIN
Rangkaian Clock
Organisasi Memori
Timer dan Counter
Komunikasi Serial












Percobaan :  
Percobaan 1 Display LED
Percobaan 2 Push Button
Percobaan 3 Seven Segmen
Percobaan 4 Relay Driver
Percobaan 5 ADC
Percobaan 6 DAC
Percobaan 7 LCD Character
Percobaan 8 Komunikasi Serial (USART)
Percobaan 9 Motor Stepper
Percobaan 10 PWM

Dokumen Pendukung
Datasheet AT89S51
Datasheet MAX232
Datasheet Karakter LCD 16x2


Software Pendukung
Top View Simulator (Compiler dan Simulator)
USART Tester (serial komunikasi tester) 

Daftar Pustaka 



Percobaan 1 (Kontrol LED)

PERCOBAAN 1
Kontrol LED dengan Mikrokontroler AT89S51


LED (Light Emiting Diode) merupakan dioda yang memancarkan cahaya, saat ini led merupakan alternatif sumber cahaya dan diproduksi dalam berbagai bentuk dan ukuran, led hampir menyingkirkan komponen lain yang menghasilkan sumber cahaya, karena led memiliki daya yang rendah dibandingkan sumber cahaya lain.
Dalam penggunaannya dalam aplikasi mikrokontroler penting halnya untuk memperhatikan batasan arus yang mengalir dalam komponen ini, supaya dapat menghasilkan cahaya yang maksimal dan tidak rusak. Berikut merupakan rumusan dalam menentukan besarnya resistor yang digunakan dalam merangkai led :
 
Dengan parameter tipe led seperti ditunjukan dalam tabel berikut ini :
Karena mikrokontroler jenis AT89S51 ini hanya dapat menghasilkan arus yang rendah pada semua portnya maka pemasangan led hanya bisa dilakukan metode common anoda (mikrokontroler di fungsikan sebagai ground), pernyataan ini akan tampak jelas melalui gambar berikut ini:
 
Dalam seringkali percobaan yang saya lakukan led tidak akan menyala ketika menggunakan metode lain (common katoda) karena arus listrik yang dihasilkan port mikrokontroler sangatlah lemah.

Gambar Percobaan :
 Gambar kontrol led

Langkah Percobaan :
Program 1 : 
Ketikan program berikut ini pada program Top View Simulator dan lakukan simulasi (cara melakukan simulasi klik disini)
$mod51
org    0h               ;Tempatkan memori program pada 0h
start:
mov    P0,#00011100b    ;P0= 00011100b
sjmp start
end

Jika program berjalan dengan baik maka led yang menyala adalah (D1,D2,D6,D7,D8)

Program 2:
Menyalakan led dengan waktu tunda
org    0h
$mod51
start:
mov    p0,#00001111b  ;LED D5-D8 On D1-D4 off
call    delay         ;Panggil Delay (jeda waktu)
mov    p0,#11110000b  ;LED D1-D4 On D5-D8 off
call    delay
sjmp    start         ;kembali ke start
;-------------------------------
;---Sub rutin waktu tunda-------
;-------------------------------
delay: mov R1,#255
ret1: mov R2,#255
ret2: djnz R2,ret2
      djnz R1,ret1
      ret
end
Jika tidak ada masalah maka led akan menyala bergantian (Flip Flop)

Program 3:
Berikut merupakan cara lain dengan metode bit addresing ketika menyalakan led
org    0h
$mod51
setb    p0.0  ; led D1 off
clr     p0.1  ; led D2 on
setb    p0.2  ; led D3 off
clr     p0.3  ; led D4 on
setb    p0.4
clr     p0.5
setb    p0.6
clr     p0.7
end
Program diatas akan menyalakan led dengan perintah "clr".

Percobaan 3 (Seven Segmen)



PERCOBAAN 3
Seven Segmen dengan Mikrokontroler AT89S51

Pada dasarnya seven segmen ialah 8 buah led yang dikemas dalam membentuk digit digital yang dikemas dalam satu kemasan kotak plastik, sehingga dalam pemrograman mikrokontroler perlakuan seven segmen akan sama dengan melakukan pemrograman led.





Dalam aplikasinya sebuah mikrokontroler AT89S51 jika digunakan semua port untuk mengontrol seven segmen secara paralel makan jumlah digit maksimum hanyalah 4digit. disisi lain aplikasi menggunakan lebih dari 4digit, maka diperlukanlah cara lain untuk mengatasi hal ini.

 
Berikut ini merupakan tabel data penggunaan seven segmen :
Untuk menghemat penggunaan port maka diperlukan teknik MULTIPLEXING dalam mengontrol display seven segmen, sehingga digit yang dikontrol bisa lebih dari 4digit tetapi menggunakan port pada mikrokontroler yang minimal. teknik multiplexing ini di tunjukan pada gambar uji coba di bawah ini :

Langkah Percobaan :
Program 1 :
Menampilkan angka 0 pada digit 1 dan angka 0 pada digit 2

 
org    0h
$mod51

start:
mov    p2,#00000001b    ;aktifkan digit 1
mov    p1,#10000001b    ;tampilkan angka 0 pada digit 1 (lihat tabel)
call    delay           ;render
mov    p2,#00000010b    ;aktifkan digit 2
mov    p1,#10011111b    ;tampilkan angka 1 pada digit 2
call    delay           ;render
sjmp    start

;-------------------------------
;---Sub rutin waktu tunda-------
;-------------------------------
delay: mov R1,#255
ret1: mov R2,#255
ret2: djnz R2,ret2
      djnz R1,ret1
      ret
end

Program 2:
Counter 0 - 99