RANCANG B ANGUN
SIST M AB NSI DE
    E    SE      NGAN
M ROK
  IK    ONT ROL R DAN
               E
RF P
   ID ADA P B RB
            C E ASIS
     GNU/ INUX OS
         L
                 Disusun Oleh :
             Afrizal Setiawan

                2006010334
PENDAHULUAN
Latar Belakang Masalah
Sistem Absensi Karyawan Menggunakan RFID, bekerja cukup sederhana sehingga sangat
bermanfaat untuk Instansi yang memiliki jumlah karyawan cukup banyak agar bisa memantau
dan memeriksa keterlambatan (disiplin) setiap karyawan. Alat ini bisa membantu pekerjaan
dalam mengumpulkan data karyawan untuk di nilai dari kehadiran setiap harinya. Dengan
dukungan LINUX sebagai sistem operasi, sangat menekan biaya dari pengadaan Sistem
absensi untuk sebuah Instansi yang sedang berkembang. Itulah yang membuat alat ini layak
untuk dikembangan terutama di Indonesia.

Tujuan Perancangan
• Merancang dan membuat alat sistem absensi dengan teknologi RFID berbasis
   mikrokontroler MCS-51 dengan tampilan PC pada Linux OS.
• Mengaplikasikan alat yang telah dibuat untuk melakukan proses absensi agar dapat
   bekerja sesuai dengan yang diinginkan.
• Membantu dalam menangani absensi di Instansi dengan jumlah karyawan yang banyak.
• Memaksimalkan sistem operasi Linux selain dari sistem operasi Windows yang umum
   digunakan, sehingga dapat memangkas biaya operasional.
PENDAHULUAN
Batasan Masalah
• Agar dalam proses pengerjaannya menjadi lebih optimal dan maksimal, ada beberapa
   batasan masalah dalam perancangan alat ini. Diantaranya adalah sebagai berikut :
• Alat ini menampilkan nama karyawan dan jam masuk saat pengambilan data dari tag
   RFID pada PC dalam bentuk Graphic User Interface (GUI).
• LCD akan menampilkan waktu real time sama dengan waktu yang ditunjukan di PC dan
   menampilakan kode RFID pada saat RFID reader membaca ID tag yang aktif untuk
   kemudian mengirimkannya ke PC melalui port serial.
• Menggunakan Operating System berbasis Linux, yaitu Linux Mint 13 MAYA dengan
   Desktop Environment MATE dan Perangkat lunak Gambas for Linux IDE.
• Pembahasan RFID hanya sebagai aplikasi tanda pengenal pada masukan dan digunakan
   oleh user yang terdaftar terlebih dahulu.
• Tag RFID yang digunakan mewakili data satu karyawan, dan dalam tugas akhir ini
   terdapat 3 tag yang mewakili 3 data karyawan.
LANDASAN TEORI
RFID (Radio Frequency Identification)
atau Identifikasi Frekuensi Radio adalah sebuah metode identifikasi dengan menggunakan
sarana yang disebut label RFID atau transponder untuk menyimpan dan mengambil data jarak
jauh. Label atau kartu RFID adalah sebuah benda yang bisa dipasang atau dimasukkan di dalam
sebuah       produk, hewan atau     bahkan manusia dengan       tujuan       untuk    identifikasi
menggunakan gelombang radio. Label RFID berisi informasi yang disimpan secara elektronik
dan dapat dibaca hingga beberapa meter jauhnya. Sistem pembaca RFID tidak memerlukan
kontak langsung seperti sistem pembaca barcode. RFID menawarkan keunggulan dibandingkan
sistem manual atau penggunaan barcode. Label dapat dibaca jika melewati dekat
pembaca label, bahkan jika pembaca tertutup oleh objek atau tidak terlihat. Label dapat dibaca di
dalam sebuah wadah, karton, kotak atau lainnya. Label RFID dapat membaca ratusan pada satu
waktu, sedangkan barcode hanya dapat dibaca satu per satu.
LANDASAN TEORI
RFID dapat digunakan dalam berbagai aplikasi, seperti:
•Manajement Akses
•Pelacakan barang
•Pengumpulan dan pembayaran toll tanpa kontak langsung
•Mesin pembaca dokumen berjalan
•Pelacakan identitas untuk memverifikasi keaslian
•Pelacakan bagasi di bandara
•Sistem Absensi dan perparkiran

Ada empat macam RFID tag yang sering digunakan bila dikategorikan berdasarkan
frekuensi radio, yaitu:
•Low frequency tag (antara 125 ke 134 kHz)
•High frequency tag (13.56 MHz)
•UHF tag (868 sampai 956 MHz)
•Microwave tag (2.45 GHz)
KOMUNIKASI SERIAL
              MIKROKONTROLER AT89S51
AT89S51 memiliki komunikasi data serial yang terdiri dari register SBUF, Register Serial Port
Control (SCON), dan register Power Mode Control (PCON). Register SBUF untuk menahan
data dan merupakan bit dalam register SFR. Register Serial Port Control (SCON). Dalam
komunikasi serial AT89S51 terdapat dua jenis transmisi serial :
•Synchronous, yaitu detak (clock) yang dikirim bersama dengan data serial itu sendiri.
•Asynchronous, yaitu detak dibangkitkan oleh masing-masing sistem, baik pengirim maupun
penerima.



Untuk perhitungan efisiensi pengiriman data serial secara Asinkron dapat dihitung dengan
rumus Efisiensi (η) berikut :    Data sebenarnya
                              η=                 ×100%
                               Data yang dikirim
                                             8
                           η untuk 1 data = ×100% = 80%
                                            10
                                             5×8
                           η untuk 5 data =        × 100% = 80%
                                            5 × 10
KOMUNIKASI SERIAL
             MIKROKONTROLER AT89S51
Inisialisai UART
Dalam proses inisialisasi ada beberapa buah register yang perlu ditentukan nilainya, yaitu
TMOD, SCON, dan PCON. TMOD merupakan register 8 bit yang berfungsi untuk mengatur
kerja Timer/Counter. Dengan memanfaatkan bit TMOD.5 dan TMOD.1 (Timer 1) atau dengan
TMOD.4 dan TMOD.0 (Timer 0), dapat memilih mode operasi pencacah biner yang
diinginkan. Dengan bantuan register SCON, dapat menentukan besarnya baud rate yang
diinginkan dengan memanfaatkan bit SCON.7 dan SCON.6 untuk memilih mode jenis baud
rate. Perhitungan baud rate dari mode 1 adalah:
                                       SMOD
                                      2 × Fosc
                     TH1 = 256 -
                                 384 × Baud Rate
                                 20 × 11059200
                     TH1 = 256 -
                                   384 × 9600
                                 11059200
                     TH1 = 256 -
                                  3686400
                     TH1 = 256 - 3 = 253(Desimal)/0xFD(Heksa)
SEJARAH LINUX
SEJARAH LINUX
• Awalnya dibuat oleh mahasiswa Finladia yang bernama : Linus Tovalds
• Inspirasi dari MINIX yaitu sistem UNIX kecil yang dikembangkan oleh Andrew Tanenbaum.
• Agustus 1991 keluar LINUX versi 0.01 dan 5 Oktober 1991, Linus mengumumkan versi
resmi LINUX yaitu versi 0.02 yang hanya dapat dijalankan SHELL BASH (GNU Bourne Again
Shell) dan GCC (GNU C compiler).
• Saat ini LINUX adalah sistem UNIX yang sangat lengkap, bisa digunakan untuk jaringan,
pengembangan software, dan bahkan untuk pekerjaan sehari-hari.
• LINUX bisa diperoleh dalam berbagai distribusi (sering disebut DISTRO).
• DISTRO adalah bundel dari kernel LINUX, beserta sistem dasar LINUX, program instalasi,
tools basic dan program-program lain yang bermanfaat sesuai dengan tujuan pembuatan
DISTRO.

Distro Linux yang terkenal diantaranya RedHat, Slackware, Debian, Ubuntu,
OpenSUSE, dan PCLinuxOS serta beberapa distro Linux buatan anak Bangsa
seperti BlankON, IGOS Nusantara, dsb.
GAMBAS IDE
Beberapa Kelebihan Gambas
•Memiliki tampilan interface GUI yang familiar dan simpel
•Memiliki license sama dengan linux, yaitu free dan opensource
•Lingkungan kerja gambas dibuat dengan Gambas itu sendiri
•Gambas dapat dijadikan debugger yang baik
•Gambas sangat mudah diterjemahkan ke bahasa apapun
•Mendukung database Postgree,SQL Mysql, SQLite
Blok Diagram Sistem Absensi
           RFID
Prinsip Kerja
          Setiap RFID tag memiliki ID yang berbeda, kode tersebut kemudian dideteksi
oleh RFID reader dengan jarak baca 5-10 cm dari pemancarnya. Karena RFID tag yang
digunakan bersifat pasif, sehingga harus didekatkan kepemancar agar bisa dikenali
sebagai masukan berupa gelombang frekuensi. Kemudian diproses oleh RFID reader dan
dikirimkan ke Mikrokontroler melalui Port P3.0 (Rx)/Pin 10 pada IC AT89S51, dalam format
data ASCII (UART/RS-232) dan menampilkannya pada LCD, tampilan di layar LCD berupa
kode pembacaan RFID reader yang sudah diterjemahkan oleh Mikrokontroler untuk
menandakan bahwa RFID tag sudah terbaca dengan baik yang diikuti dengan suara buzer.
COM Serial berfungsi sebagai jalur komunikasi antara perangkat keras (mesin absensi)
dengan PC berbasis Linux OS, berbeda dengan Windows pada Linux port serial diberi
nama dengan “/dev/ttyS0”. Antarmuka pada Linux OS menggunakan software Gambas,
dengan bahasa program BASIC akan menampilkan masukan yang sudah diterima dari port
serial yang berasal dari mikrokontroler. Sehingga memudahkan dalam pembacaan dan
pembuatan laporan untuk absensi karyawan dengan jumlah besar karna hasilnya berupa
teks yang bisa dibaca oleh manusia. Selain untuk absensi RFID tag juga bisa difungsikan
banyak hal seperti kartu mahasiswa, kartu parkir kendaraan, kartu anggota perpustakaan
dsb. Dengan mengintegrasikannya pada sebuah pusat informasi database kegunaan RFID
bisa lebih luas dan kompleks untuk memudahkan bertukar informasi serta
memperbaharuinya.
Flow Chart
Rangkaian Keseluruhan
Program Utama
;Program Utama
         org 00000h                 jb sw_reset,prog2   ;Inisialisasi Sistem
                                    mov dat_detik,#0    init_sys:   mov dat_sts,#0
main:    mov sp,#050h                                               mov tmod,#020h
                                    acall set_time
         ajmp prog                                                  mov th1,#0fdh
                                    acall set_jam                   mov scon,#050h
                                    acall set_menit                 setb tr1
         org 00023h                 acall set_detik                 setb lamp_lcd
                                    acall get_time                  acall set_lcd
         acall ser_int
                                    acall dsp_welcome               acall get_time
         setb sts_ser                                               acall clr_reg
                                    acall dly_key
         reti                                                       acall dsp_utm
                                    acall dly_key                   acall dly_key
                                    ajmp prog1                      setb es
         org 00030h        prog2:   acall get_clock                 acall clr_lcd
                                    acall cek_clock                 ret
prog:    acall init_sys
                                    jnb sts_ser,prog1   uji_rfid:   mov a,37h
         acall dsp_utm                                              acall ser_out
                                    acall uji_rfid
         acall dsp_welcome                                          mov a,38h
                                    acall dly_key                   acall ser_out
Prog1:   setb ea                    acall dsp_utm                   mov a,39h
         nop                        acall uji_ser                   acall ser_out
                                    clr sts_ser                     mov a,3ah
         nop                                                        acall ser_out
                                    acall dly_key
         nop                                                        mov a,3bh
                                    acall dly_key
         nop                                                        acall ser_out
                                    acall dly_key                   mov a,3ch
         nop                        acall dsp_utm                   acall ser_out
         nop                        acall dsp_welcome               mov a,3dh
                                    ajmp prog1                      acall ser_out
         clr ea                                                     ret
cek_clock:   jb sw_menit,clc01
                                           acall add_menit
                              clc01:       jb sw_jam,exit_clc
                                                                   set_lcd:    clr rw_lcd
clr_reg:   mov r7,#jum_reg                 acall add_jam
                                                                               mov a,#00001100b
           mov r0,#addr_reg   exit_clc:    ret
                              add_menit:   inc dat_menit                       acall clk_ctrl
reg1:      mov @r0,#020h                                                       mov a,#00111000b
                                           mov a,dat_menit
           inc r0                          cjne a,#60,mnt01                    acall clk_ctrl
           djnz r7,reg1                    mov dat_menit,#0                    ret
           ret                mnt01:       acall set_time          dsp_utm:    acall c_home
ser_out:   mov r0,a                        acall set_jam                       mov dptr,#tab_utm
           mov sbuf,r0                     acall set_menit                     mov r2,#0
halt:      jnb ti,halt                     acall get_time                      mov r3,#7
           clr ti                          acall dsp_utm                       acall display
           ret                             acall dly_key
                                                                               mov a,dat_jam
ser_int:   mov dat_loop,#0                 ret
                                                                               acall two_dat
           mov r1,#addr_reg   add_jam:     inc dat_jam
                                           mov a,dat_jam                       mov a,#':'
           mov r7,#jum_reg                                                     acall one_clk
                                           cjne a,#24,jam01
loop2:     acall dly_ser                   mov dat_jam,#0                      mov a,dat_menit
           jnb ri,sys_ser     jam01:       acall set_time                      acall two_dat
           acall rcv_dat                   acall set_jam                       mov a,#':'
           mov @r1,dat_ser                 acall set_menit                     acall one_clk
           inc r1                          acall get_time                      mov a,dat_detik
           inc dat_loop                    acall dsp_utm                       acall two_dat
           djnz r7,loop2                   acall dly_key                       mov dptr,#tab_utm
sys_ser:   clr ti                          ret
                                                                               mov r2,#15
           ret                get_clock:   jnb clock,sys_clk
                                                                               mov r3,#27
rcv_dat:   push psw                        setb led_run
                                           jb sts_clock,exit_clk               acall display
           push acc                                                            ret
                                           acall get_time
           mov r0,sbuf                     acall dsp_utm           dsp_welcome: mov dptr,#tab_welcome
           clr ri                          setb sts_clock                      mov r2,#0
           mov dat_ser,r0                  ajmp exit_clk                       mov r3,#16
           pop acc            sys_clk:     clr led_run                         acall display
           pop psw                         clr sts_clock                       ret
           ret                exit_clk:    ret
display:    mov a,r2               clk_ctrl:   clr rs_lcd       set_time:    mov r1,#11010000b
            movc a,@a+dptr                     acall send_lcd                mov r2,#00000111b
            acall clk_lcd                      setb e_lcd
            inc r2                             acall send_lcd                mov r3,#10010000b
            djnz r3,display                                                  lcall wr_eprom
                                               lcall dly_ctrl
            ret                                                              mov r1,#11010000b
                                               clr e_lcd
tab_utm:     db ' TIME XX:XX:XX'               acall send_lcd                mov r2,#0
             db '             '                setb rs_lcd                   mov a,dat_detik
tab_welcome: db '    WELCOME  '                acall send_lcd                lcall unconv_rtc
clr_lcd:    mov a,#00000001b                   lcall dly_ctrl                lcall wr_eprom
            acall clk_ctrl                     ret
            ret                    send_lcd:   mov b,a                       inc r2
c_home:     mov a,#00000010b                   mov a,ctrl_lcd                mov a,dat_menit
            acall clk_ctrl                     acall out_lcd                 lcall unconv_rtc
            ret                                mov a,b                       lcall wr_eprom
on_cur:     mov a,#00001111b                   push acc
            acall clk_ctrl                                                   inc r2
                                               acall conv_lcd
            ret                                                              mov a,dat_jam
                                               acall out_lcd                 lcall unconv_rtc
off_cur:    mov a,#00001100b                   setb str_lcd                  lcall wr_eprom
            acall clk_ctrl                     clr str_lcd                   ret
            ret                                pop acc          set_detik:   mov r2,#0
backspace: mov a,#00010000b                    ret
            acall clk_ctrl         out_lcd:    mov r4,#8                     mov a,dat_detik
            ret                    lcd01:      rlc a                         ajmp sys_set
clk_lcd:    setb rs_lcd                        mov dat_lcd,c    set_menit:   mov r2,#1
            setb e_lcd                         setb clk_lcd                  mov a,dat_menit
            acall send_lcd                                                   ajmp sys_set
                                               clr clk_lcd
            clr e_lcd                                           set_jam:     mov r2,#2
                                               djnz r4,lcd01
            acall send_lcd                                                   mov a,dat_jam
                                               ret              sys_set:     mov r1,#11010000b
            clr rs_lcd
                                                                             lcall unconv_rtc
            acall send_lcd
                                                                             lcall wr_eprom
            ret
PERANCANGAN PROGRAM GAMBAS
PERANCANGAN PROGRAM GAMBAS
SEKIAN
    DAN
TERIMA KASIH

Sistem Absensi RFID

  • 1.
    RANCANG B ANGUN SISTM AB NSI DE E SE NGAN M ROK IK ONT ROL R DAN E RF P ID ADA P B RB C E ASIS GNU/ INUX OS L Disusun Oleh : Afrizal Setiawan 2006010334
  • 2.
    PENDAHULUAN Latar Belakang Masalah SistemAbsensi Karyawan Menggunakan RFID, bekerja cukup sederhana sehingga sangat bermanfaat untuk Instansi yang memiliki jumlah karyawan cukup banyak agar bisa memantau dan memeriksa keterlambatan (disiplin) setiap karyawan. Alat ini bisa membantu pekerjaan dalam mengumpulkan data karyawan untuk di nilai dari kehadiran setiap harinya. Dengan dukungan LINUX sebagai sistem operasi, sangat menekan biaya dari pengadaan Sistem absensi untuk sebuah Instansi yang sedang berkembang. Itulah yang membuat alat ini layak untuk dikembangan terutama di Indonesia. Tujuan Perancangan • Merancang dan membuat alat sistem absensi dengan teknologi RFID berbasis mikrokontroler MCS-51 dengan tampilan PC pada Linux OS. • Mengaplikasikan alat yang telah dibuat untuk melakukan proses absensi agar dapat bekerja sesuai dengan yang diinginkan. • Membantu dalam menangani absensi di Instansi dengan jumlah karyawan yang banyak. • Memaksimalkan sistem operasi Linux selain dari sistem operasi Windows yang umum digunakan, sehingga dapat memangkas biaya operasional.
  • 3.
    PENDAHULUAN Batasan Masalah • Agardalam proses pengerjaannya menjadi lebih optimal dan maksimal, ada beberapa batasan masalah dalam perancangan alat ini. Diantaranya adalah sebagai berikut : • Alat ini menampilkan nama karyawan dan jam masuk saat pengambilan data dari tag RFID pada PC dalam bentuk Graphic User Interface (GUI). • LCD akan menampilkan waktu real time sama dengan waktu yang ditunjukan di PC dan menampilakan kode RFID pada saat RFID reader membaca ID tag yang aktif untuk kemudian mengirimkannya ke PC melalui port serial. • Menggunakan Operating System berbasis Linux, yaitu Linux Mint 13 MAYA dengan Desktop Environment MATE dan Perangkat lunak Gambas for Linux IDE. • Pembahasan RFID hanya sebagai aplikasi tanda pengenal pada masukan dan digunakan oleh user yang terdaftar terlebih dahulu. • Tag RFID yang digunakan mewakili data satu karyawan, dan dalam tugas akhir ini terdapat 3 tag yang mewakili 3 data karyawan.
  • 4.
    LANDASAN TEORI RFID (RadioFrequency Identification) atau Identifikasi Frekuensi Radio adalah sebuah metode identifikasi dengan menggunakan sarana yang disebut label RFID atau transponder untuk menyimpan dan mengambil data jarak jauh. Label atau kartu RFID adalah sebuah benda yang bisa dipasang atau dimasukkan di dalam sebuah produk, hewan atau bahkan manusia dengan tujuan untuk identifikasi menggunakan gelombang radio. Label RFID berisi informasi yang disimpan secara elektronik dan dapat dibaca hingga beberapa meter jauhnya. Sistem pembaca RFID tidak memerlukan kontak langsung seperti sistem pembaca barcode. RFID menawarkan keunggulan dibandingkan sistem manual atau penggunaan barcode. Label dapat dibaca jika melewati dekat pembaca label, bahkan jika pembaca tertutup oleh objek atau tidak terlihat. Label dapat dibaca di dalam sebuah wadah, karton, kotak atau lainnya. Label RFID dapat membaca ratusan pada satu waktu, sedangkan barcode hanya dapat dibaca satu per satu.
  • 5.
    LANDASAN TEORI RFID dapatdigunakan dalam berbagai aplikasi, seperti: •Manajement Akses •Pelacakan barang •Pengumpulan dan pembayaran toll tanpa kontak langsung •Mesin pembaca dokumen berjalan •Pelacakan identitas untuk memverifikasi keaslian •Pelacakan bagasi di bandara •Sistem Absensi dan perparkiran Ada empat macam RFID tag yang sering digunakan bila dikategorikan berdasarkan frekuensi radio, yaitu: •Low frequency tag (antara 125 ke 134 kHz) •High frequency tag (13.56 MHz) •UHF tag (868 sampai 956 MHz) •Microwave tag (2.45 GHz)
  • 6.
    KOMUNIKASI SERIAL MIKROKONTROLER AT89S51 AT89S51 memiliki komunikasi data serial yang terdiri dari register SBUF, Register Serial Port Control (SCON), dan register Power Mode Control (PCON). Register SBUF untuk menahan data dan merupakan bit dalam register SFR. Register Serial Port Control (SCON). Dalam komunikasi serial AT89S51 terdapat dua jenis transmisi serial : •Synchronous, yaitu detak (clock) yang dikirim bersama dengan data serial itu sendiri. •Asynchronous, yaitu detak dibangkitkan oleh masing-masing sistem, baik pengirim maupun penerima. Untuk perhitungan efisiensi pengiriman data serial secara Asinkron dapat dihitung dengan rumus Efisiensi (η) berikut : Data sebenarnya η= ×100% Data yang dikirim 8 η untuk 1 data = ×100% = 80% 10 5×8 η untuk 5 data = × 100% = 80% 5 × 10
  • 7.
    KOMUNIKASI SERIAL MIKROKONTROLER AT89S51 Inisialisai UART Dalam proses inisialisasi ada beberapa buah register yang perlu ditentukan nilainya, yaitu TMOD, SCON, dan PCON. TMOD merupakan register 8 bit yang berfungsi untuk mengatur kerja Timer/Counter. Dengan memanfaatkan bit TMOD.5 dan TMOD.1 (Timer 1) atau dengan TMOD.4 dan TMOD.0 (Timer 0), dapat memilih mode operasi pencacah biner yang diinginkan. Dengan bantuan register SCON, dapat menentukan besarnya baud rate yang diinginkan dengan memanfaatkan bit SCON.7 dan SCON.6 untuk memilih mode jenis baud rate. Perhitungan baud rate dari mode 1 adalah: SMOD 2 × Fosc TH1 = 256 - 384 × Baud Rate 20 × 11059200 TH1 = 256 - 384 × 9600 11059200 TH1 = 256 - 3686400 TH1 = 256 - 3 = 253(Desimal)/0xFD(Heksa)
  • 8.
    SEJARAH LINUX SEJARAH LINUX •Awalnya dibuat oleh mahasiswa Finladia yang bernama : Linus Tovalds • Inspirasi dari MINIX yaitu sistem UNIX kecil yang dikembangkan oleh Andrew Tanenbaum. • Agustus 1991 keluar LINUX versi 0.01 dan 5 Oktober 1991, Linus mengumumkan versi resmi LINUX yaitu versi 0.02 yang hanya dapat dijalankan SHELL BASH (GNU Bourne Again Shell) dan GCC (GNU C compiler). • Saat ini LINUX adalah sistem UNIX yang sangat lengkap, bisa digunakan untuk jaringan, pengembangan software, dan bahkan untuk pekerjaan sehari-hari. • LINUX bisa diperoleh dalam berbagai distribusi (sering disebut DISTRO). • DISTRO adalah bundel dari kernel LINUX, beserta sistem dasar LINUX, program instalasi, tools basic dan program-program lain yang bermanfaat sesuai dengan tujuan pembuatan DISTRO. Distro Linux yang terkenal diantaranya RedHat, Slackware, Debian, Ubuntu, OpenSUSE, dan PCLinuxOS serta beberapa distro Linux buatan anak Bangsa seperti BlankON, IGOS Nusantara, dsb.
  • 9.
    GAMBAS IDE Beberapa KelebihanGambas •Memiliki tampilan interface GUI yang familiar dan simpel •Memiliki license sama dengan linux, yaitu free dan opensource •Lingkungan kerja gambas dibuat dengan Gambas itu sendiri •Gambas dapat dijadikan debugger yang baik •Gambas sangat mudah diterjemahkan ke bahasa apapun •Mendukung database Postgree,SQL Mysql, SQLite
  • 10.
    Blok Diagram SistemAbsensi RFID
  • 11.
    Prinsip Kerja Setiap RFID tag memiliki ID yang berbeda, kode tersebut kemudian dideteksi oleh RFID reader dengan jarak baca 5-10 cm dari pemancarnya. Karena RFID tag yang digunakan bersifat pasif, sehingga harus didekatkan kepemancar agar bisa dikenali sebagai masukan berupa gelombang frekuensi. Kemudian diproses oleh RFID reader dan dikirimkan ke Mikrokontroler melalui Port P3.0 (Rx)/Pin 10 pada IC AT89S51, dalam format data ASCII (UART/RS-232) dan menampilkannya pada LCD, tampilan di layar LCD berupa kode pembacaan RFID reader yang sudah diterjemahkan oleh Mikrokontroler untuk menandakan bahwa RFID tag sudah terbaca dengan baik yang diikuti dengan suara buzer. COM Serial berfungsi sebagai jalur komunikasi antara perangkat keras (mesin absensi) dengan PC berbasis Linux OS, berbeda dengan Windows pada Linux port serial diberi nama dengan “/dev/ttyS0”. Antarmuka pada Linux OS menggunakan software Gambas, dengan bahasa program BASIC akan menampilkan masukan yang sudah diterima dari port serial yang berasal dari mikrokontroler. Sehingga memudahkan dalam pembacaan dan pembuatan laporan untuk absensi karyawan dengan jumlah besar karna hasilnya berupa teks yang bisa dibaca oleh manusia. Selain untuk absensi RFID tag juga bisa difungsikan banyak hal seperti kartu mahasiswa, kartu parkir kendaraan, kartu anggota perpustakaan dsb. Dengan mengintegrasikannya pada sebuah pusat informasi database kegunaan RFID bisa lebih luas dan kompleks untuk memudahkan bertukar informasi serta memperbaharuinya.
  • 12.
  • 13.
  • 14.
    Program Utama ;Program Utama org 00000h jb sw_reset,prog2 ;Inisialisasi Sistem mov dat_detik,#0 init_sys: mov dat_sts,#0 main: mov sp,#050h mov tmod,#020h acall set_time ajmp prog mov th1,#0fdh acall set_jam mov scon,#050h acall set_menit setb tr1 org 00023h acall set_detik setb lamp_lcd acall get_time acall set_lcd acall ser_int acall dsp_welcome acall get_time setb sts_ser acall clr_reg acall dly_key reti acall dsp_utm acall dly_key acall dly_key ajmp prog1 setb es org 00030h prog2: acall get_clock acall clr_lcd acall cek_clock ret prog: acall init_sys jnb sts_ser,prog1 uji_rfid: mov a,37h acall dsp_utm acall ser_out acall uji_rfid acall dsp_welcome mov a,38h acall dly_key acall ser_out Prog1: setb ea acall dsp_utm mov a,39h nop acall uji_ser acall ser_out clr sts_ser mov a,3ah nop acall ser_out acall dly_key nop mov a,3bh acall dly_key nop acall ser_out acall dly_key mov a,3ch nop acall dsp_utm acall ser_out nop acall dsp_welcome mov a,3dh ajmp prog1 acall ser_out clr ea ret
  • 15.
    cek_clock: jb sw_menit,clc01 acall add_menit clc01: jb sw_jam,exit_clc set_lcd: clr rw_lcd clr_reg: mov r7,#jum_reg acall add_jam mov a,#00001100b mov r0,#addr_reg exit_clc: ret add_menit: inc dat_menit acall clk_ctrl reg1: mov @r0,#020h mov a,#00111000b mov a,dat_menit inc r0 cjne a,#60,mnt01 acall clk_ctrl djnz r7,reg1 mov dat_menit,#0 ret ret mnt01: acall set_time dsp_utm: acall c_home ser_out: mov r0,a acall set_jam mov dptr,#tab_utm mov sbuf,r0 acall set_menit mov r2,#0 halt: jnb ti,halt acall get_time mov r3,#7 clr ti acall dsp_utm acall display ret acall dly_key mov a,dat_jam ser_int: mov dat_loop,#0 ret acall two_dat mov r1,#addr_reg add_jam: inc dat_jam mov a,dat_jam mov a,#':' mov r7,#jum_reg acall one_clk cjne a,#24,jam01 loop2: acall dly_ser mov dat_jam,#0 mov a,dat_menit jnb ri,sys_ser jam01: acall set_time acall two_dat acall rcv_dat acall set_jam mov a,#':' mov @r1,dat_ser acall set_menit acall one_clk inc r1 acall get_time mov a,dat_detik inc dat_loop acall dsp_utm acall two_dat djnz r7,loop2 acall dly_key mov dptr,#tab_utm sys_ser: clr ti ret mov r2,#15 ret get_clock: jnb clock,sys_clk mov r3,#27 rcv_dat: push psw setb led_run jb sts_clock,exit_clk acall display push acc ret acall get_time mov r0,sbuf acall dsp_utm dsp_welcome: mov dptr,#tab_welcome clr ri setb sts_clock mov r2,#0 mov dat_ser,r0 ajmp exit_clk mov r3,#16 pop acc sys_clk: clr led_run acall display pop psw clr sts_clock ret ret exit_clk: ret
  • 16.
    display: mov a,r2 clk_ctrl: clr rs_lcd set_time: mov r1,#11010000b movc a,@a+dptr acall send_lcd mov r2,#00000111b acall clk_lcd setb e_lcd inc r2 acall send_lcd mov r3,#10010000b djnz r3,display lcall wr_eprom lcall dly_ctrl ret mov r1,#11010000b clr e_lcd tab_utm: db ' TIME XX:XX:XX' acall send_lcd mov r2,#0 db ' ' setb rs_lcd mov a,dat_detik tab_welcome: db ' WELCOME ' acall send_lcd lcall unconv_rtc clr_lcd: mov a,#00000001b lcall dly_ctrl lcall wr_eprom acall clk_ctrl ret ret send_lcd: mov b,a inc r2 c_home: mov a,#00000010b mov a,ctrl_lcd mov a,dat_menit acall clk_ctrl acall out_lcd lcall unconv_rtc ret mov a,b lcall wr_eprom on_cur: mov a,#00001111b push acc acall clk_ctrl inc r2 acall conv_lcd ret mov a,dat_jam acall out_lcd lcall unconv_rtc off_cur: mov a,#00001100b setb str_lcd lcall wr_eprom acall clk_ctrl clr str_lcd ret ret pop acc set_detik: mov r2,#0 backspace: mov a,#00010000b ret acall clk_ctrl out_lcd: mov r4,#8 mov a,dat_detik ret lcd01: rlc a ajmp sys_set clk_lcd: setb rs_lcd mov dat_lcd,c set_menit: mov r2,#1 setb e_lcd setb clk_lcd mov a,dat_menit acall send_lcd ajmp sys_set clr clk_lcd clr e_lcd set_jam: mov r2,#2 djnz r4,lcd01 acall send_lcd mov a,dat_jam ret sys_set: mov r1,#11010000b clr rs_lcd lcall unconv_rtc acall send_lcd lcall wr_eprom ret
  • 17.
  • 18.
  • 19.
    SEKIAN DAN TERIMA KASIH