4 BAB III METODE PENELITIAN Metode penelitian yang digunakan dalam penelitian tugas akhir ini adalah studi kepustakaan dan melakukan percobaan. Dengan ini penulis berusaha untuk mengumpulkan data, informasi serta materi materi dasar yang bersifat teoritis yang sesuai dengan permasalahan. Hal tersebut diperoleh dari buku, materi kuliah, literatur melalui browsing di internet dan melakukan berbagai percobaan. Dari data-data yang diperoleh penulis berusaha menerapkannya untuk menyelesaikan permasalahan yang ada dalam penelitian ini. Pada sub bab ini akan membahas tentang perancangan sistem secara keseluruhan dari penelitian ini, yaitu tentang perancangan perangkat keras dan perangkat lunak. Keseluruhan sistem pada penelitian ini sesuai dengan blok diagram pada Gambar.. KOMPUTER MAX Converter Mikrokontroler Serial RTC Driver Baris Driver Kolom Display DOT MATRIK Gambar. Blok Diagram rangkaian keseluruhan.
4. Perancangan Perangkat Keras Langkah selanjutnya dalam perancangan perangkat keras pada sistem kalender digital menggunakan dot matrix ini adalah merealisasikan rangkaian pada diagram diatas. Rangkaian-rangkaian yang akan direalisasikan adalah:. Rangkaian Minimum Sistem AT9S5.. Rangkaian Komunikasi Serial RS.. Rangkaian Serial RTC DS0. 4. Rangkaian Driver Baris (TIP4). 5. Rangkaian Shift Register 4LS64. 6. Rangkaian Display Dot Matrix. Dalam perancangan perangkat lunak terdapat proses-proses sebagai berikut: program utama, program interrupt serial, program konversi kalender... Rangkaian Minimum Sistem AT9S5 Rangkaian mikrokontroler berfungsi sebagai pusat pengontrol dari rangkaian Kalender Digital ini. Pada Tugas Akhir ini digunakan mikrokontroler keluaran ATMEL yaitu Mikrokontroler AT9S5. Mikrokontroler ini mempunyai 40 pin dengan 4 jalur port yaitu Port 0, Port, Port, dan Port. Untuk mengetahui lebih lanjut konfigurasi mikrokontroler sebagai pengendali sistem, skematik rangkaian terlihat pada Gambar..
4 RN U Baris Baris Baris Baris4 Baris5 Baris6 Baris Baris 5v 4 5 6 9 RNR-PACK 4 5 6 9 R-PACK XTAL XTAL D0 D D D D4 D5 D6 D 9 6 5 4 4 5 6 9 9 40 P0.0/AD0 P0./AD P0./AD P0./AD P0.4/AD4 P0.5/AD5 P0.6/AD6 P0./AD P.0/T P./TEX P. P. P.4/SS P.5/MOSI P.6/MISO P./SCK XTAL XTAL EA/VPP RST GND P.0/A P./A9 P./A0 P./A P.4/A P.5/A P.6/A4 P./A5 P.0/RXD P./TXD P./INT0 P./INT P.4/T0 P.5/T P.6/WR P./RD PSEN ALE/PROG 4 5 6 0 4 5 6 9 0 SDA SCL A A9 A0 A P.0 Rx P. Tx DATA CLOCK WE OE 0pF XTAL AT9S5 0 Y CRYSTAL.059Mhz 0pF XTAL Gambar. Minimum sistem Mikrokontroler AT9S5 Pada skematik yang tecantum pada gambar. terdapat beberapa port yang berhubungan dengan komponen yang lainnya. Port 0 dihubungkan dengan komponen 4HC5 yang berfungsi sebagai penyangga data yang diterima dari mikrokontroler. Port terhubung dengan rangkaian driver baris. Pada port ini digunakan untuk melakukan scanning baris. Port (P.4 dan P.5) masingmasing berfungsi sebagai input data dan input clock pada shift register. Pin RxD dan TxD berfungsi sebagai penerima dan pengirim data serial ke komputer, terhubung melalui MAX sebagai konverter. Pada rangkaian mikrokontroler ini, digunakan komponen XTAL,059 Mhz yang terhubung pada pin XTAL dan XTAL. A. Rangkaian Programmer
44 Penulis menggunakan rangkaian programmer yang terdiri dari sebuah IC 4LS44 yang berguna sebagai buffer dan kabel downloader dengan interface DB5 yang terhubung pada port LPT pada komputer dalam melakukan proses download program dalam format.hex dari komputer ke mikrokontroler. Sedangkan software yang digunakan adalah Atmel Microcontroller ISP Software. Skematik kabel downloader yang digunakan untuk mendownload program ke mikrokontroler seperti pada Gambar.. P 4 5 6 4 5 6 9 0 9 0 4 5 4 6 5 9 U A A A A4 A5 A6 A A OE OE 4LS44 0 Y 6 Y 4 Y Y4 9 Y5 Y6 5 Y Y GND 0 4 5 6 J HEADER 6 CONNECTOR DB5 Gambar. Rangkaian kabel downloader pada port LPT Setelah kabel downloader terhubung ke Port paralel pada PC melalui DB5 dan terhubung ke mikrokontroler melalui konektor 6 pin. Tahap selanjutnya adalah melakukan download program ke mikro. Penulis menggunakan software Atmel Microcontroller. Antarmuka software dapat dilihat pada Gambar.4.
45 Gambar.4 Atmel Microcontroller ISP Software Konektor 6 pin pada Gambar. dihubungkan terlebih dahulu pada Mikrokontroler AT9S5 jika akan melakukan proses download program. Konektor yang terhubung ke mikro seperti pada Gambar.5. TR MOSI MISO SCK RESET J 4 5 6 downloader Gambar.5 Konektor downloader pada Mikrokontroler.. Rangkaian Komunikasi Serial RS Data yang diterima dari komputer melalui serial port adalah berupa tegangan dengan standar RS-, yaitu antara - sampai -5 Volt untuk kondisi high dan + sampai +5 Volt untuk kondisi low. Sedangkan mikrokontroler bekerja dalam level tegangan TTL, yaitu +5 Volt untuk kondisi high dan 0 Volt
46 untuk kondisi low. MAX akan mengubah level tegangan RS- menjadi level tegangan TTL agar dapat diolah oleh mikrokontroler. Demikian pula sebaliknya, data yang dikirim mikrokontroler akan diubah ke level tegangan RS- agar dapat diolah oleh komputer. Pengiriman data dari program visual di PC ke mikrokontroler menggunakan komunikasi serial RS. Diagram skematik dari rangkaian serial terlihat pada Gambar.6. P.0 Rx P. Tx + C 0u C + 0u C + 0 4 5 6 U 6 RIN ROUT 9 RIN ROUT 4 TIN TOUT TIN TOUT C+ C- C+ C- V+ 5 V- 5 4 P DB9 9 6 0u GND MAX + C4 0u Gambar.6 Rangkaian skematik RS Penulis menggunakan komunikasi serial mode dengan baudrate sebesar 9600 bps. Sehingga pengaturan register SCON dan register PCON adalah seperti pada tabel. dan tabel.. Tabel. Susunan bit dalam register SCON SM0 SM SM REN TB RB TI RI 0 0 0 0 0 0 Dari tabel. maka SCON bernilai 0x50 dimana SM0 = 0 dan SM = berarti menggunakan mode, sedangkan REN = berarti mengaktifkan port serial untuk menerima data.
4 Tabel. Susunan bit dalam register PCON SMOD - - - GF GF0 PD IDL 0 0 0 0 0 0 0 0 Dari tabel. maka PCON bernilai 0 x 00,.. Rangkaian Serial RTC DS0 Real Time Clock DS0 digunakan untuk merancang jam digital. RTC ini berkomunikasi secara serial dengan mikrokontroler melalui kaki SDA (serial data) dan SCL (serial clock). Pada rangkaian ini DS0 beroperasi sebagai slave dengan mengirimkan data waktu ke mikrontroler yang berfungsi sebagai master. Konfigurasi dari pin RTC DS0 yang digunakan dalam Tugas Akhir ini dapat dilihat pada Gambar.. Y U45.6kHz SCL C 00nF X X 6 SCL VBAT BT CR0 V SDA 5 SQW/OUT GND 4 DS0 SDA GND Gambar. Rangkaian Real Time Clock DS0..4 Rangkaian Driver Baris (TIP4) Pada rangkaian kontroler memiliki pasang transistor yang berfungsi sebagai driver baris. Dimana setiap pasang terdiri dari transistor 90 dan TIP4. Rangkaian driver baris terhubung ke Port mikrokontroler dan ke baris dot matrix. Agar lebih jelas mengenai uraian diatas, dapat dilihat skematik driver baris seperti Gambar..
4 BARIS B BARIS5 QA C90 R9 BRS R9 BRS 5 Q Q4A C90 Q BARIS Q5A C90 BARIS6 QA C90 R9 B BRS R9 BRS 6 Q Q BARIS Q6A C90 BARIS QA C90 R9 B BRS R9 BRS Q Q BARIS4 QA C90 BARIS R9 QA C90 BRS R9 BRS 4 Q Q Gambar. Rangkaian driver baris transistor TIP4 Output dari mikrokontroler tidak cukup kuat untuk menyalakan satu baris led dot matrix yang terdiri atas led. Dibutuhkan transistor yang berdaya besar untuk memperkuat arus dari mikrokontroler agar dapat menyalakan atau mematikan tiap baris led dot matrix. Penulis menggunakan buah transistor PNP tipe TIP4 dan 90 yang dirangkai seperti pada gambar.. Transistor berfungsi sebagai saklar untuk menyalakan atau mematikan tiap baris dari led dot matrix. Display dot matrix terdiri dari baris led sehingga digunakan pasang rangkaian dengan setiap pasang transistor terhubung ke Port P.0 sampai Port.. Pin basis pada TIP4 terhubung ke mikrokontroler, pin collector sebagai output yang terhubung ke pin baris pada led dot matrix, sedangkan pin emitter terhubung pada tegangan 5V. Rangkaian driver ini mempunyai karakteristik akan aktif jika mendapat input low. Saat output dari mikrokontroler high, maka
49 transistor 90 akan ON, tegangan di kolektor akan menjadi 0 V dan transistor TIP4 akan OFF, sehingga baris led akan mati. Sebaliknya jika output mikrokontroler low, maka transistor 90 akan OFF, tegangan di kolektor 90 akan menjadi V dan transistor TIP4 akan ON sehingga baris led akan hidup...5 Rangkaian Shift Register 4LS64 Rangkaian shift register digunakan sebagai driver kolom pada display dot matrix. Input pada IC shift register berupa data, clock dan clear dimana masingmasing terhubung ke Port P.4, Port P.5 dan dari mikrokontroler. Output shift register terhubung pada kolom display dot matrix. Agar lebih jelas tentang konfigurasi pin dari IC 4LS64, dapat dilihat skematik rangkaian pada Gambar.9. C6 C6 DATA CLK DATA CLK 9 U6 A B CLK CLR 4 GND QA QB 4 QC 5 QD 6 QE 0 QF QG QH 4LS64 R R R R4 R5 R6 R R H H H H4 H5 H6 H H H CLK 9 U6 A B CLK CLR 4 GND QA QB 4 QC 5 QD 6 QE 0 QF QG QH 4LS64 R9 H9 R0 H0 R H R H R H R4 H4 R5 H5 R6 H6 C6 C6 H6 CLK 9 U6 A B CLK CLR 4 GND QA QB 4 QC 5 QD 6 QE 0 QF QG QH 4LS64 R H R H R9 H9 R0 H0 R H R H R H R4 H4 H4 CLK 9 U6 A B CLK CLR 4 GND QA QB 4 QC 5 QD 6 QE 0 QF QG QH 4LS64 R5 H5 R6 H6 R H R H R9 H9 R0 H0 R H R H H Gambar.9 Rangkaian Shift Register 4LS64 Pada rangkaian display dot matrix terdiri dari kolom sehingga masingmasing kolom tidak dapat terhubung langsung ke port mikrokontroler. Shift
50 Register digunakan untuk mengatasi masalah ini, dimana cukup dipakai output dari mikrokontroler untuk mengatur seluruh kolom led. Shift Register mempunyai input A dan B yang terhubung oleh gerbang and, kedua input ini dihubungkan jadi satu dan dihubungkan ke Port P.5 dari mikrokontroler. Output dan Shift Register hanya ada (QA-QH) jadi dipakai 6 buah Shift Register untuk mengatur kolom LED. Output terakhir dari Shift Register (QH) dihubungkan ke input Shift Register yang berikutnya agar semua data dapat digeser oleh Shift Register. Semua kaki Clock dari Shift Register terhubung ke Port P.4 dan semua kaki Clear terhubung ke agar semua Shift Register berjalan secara sinkron. Rangkaian ini menggunakan sistem SIPO (Serial Input Parallel Output)...6 Rangkaian Display Dot Matrix Dalam perancangan kalender digital dengan dot matrix ini, ukuran display yang digunakan 4x4, dimana mikrokontroler mempunyai display ukuran x. Pola display tidak memanjang tetapi berbentuk persegi, karena dot matrix yang disusun ke bawah secara rapat sehingga membentuk suatu display dot matrix ukuran 4x4. Maksud dari rangkaian display dot matrix diperjelas melalui skematik seperti pada gambar.0.
5 J J H BRS H BRS H BRS H4 BRS4 4 5 6 9 0 4 5 6 9 0 4 H5 BRS5 H6 BRS6 H BRS H BRS H9 BRS H0 BRS H BRS H BRS4 4 5 6 9 0 4 5 6 9 0 4 H BRS5 H4 BRS6 H5 BRS H6 BRS DOT MATRIX J5 DOT MATRIX J4 H BRS H BRS H9 BRS H0 BRS4 4 5 6 9 0 4 5 6 9 0 4 H BRS5 H BRS6 H BRS H4 BRS H5 BRS H6 BRS H BRS H BRS4 4 5 6 9 0 4 5 6 9 0 4 H9 BRS5 H0 BRS6 H BRS H BRS DOT MATRIX DOT MATRIX Gambar.0. Rangkaian display dot matrix. Perancangan Perangkat Lunak Dalam perancangan perangkat lunak dibagi atas jenis : perancangan perangkat lunak pada komputer dan perancangan perangkat lunak pada mikrokontroler... Perangkat Lunak pada Komputer Perancangan perangkat lunak pada komputer berfungsi sebagai interface dan digunakan dalam proses konversi kalender yang selanjutnya digunakan untuk mengirimkan data pada mikrokontroler. Proses-proses utama pada perangkat lunak komputer antara lain proses konversi kalender dan proses menentukan hari dari kalender yang di-input-kan. Pada perancangan perangkat lunak, penulis menggunakan software Borland Delphi 5.0. Software ini berfungsi untuk melakukan konversi sistem penanggalan yang di-input-kan. Kalender Masehi yang akan ditampilkan ke
5 display dot matrix dilakukan proses konversi terlebih dahulu menjadi beberapa macam kalender serta menampilkan hari. A. Proses Penentuan Hari Proses penentuan hari bertujuan untuk mengetahui hari dari kalender yang telah di-input-kan. Hal ini dikarenakan terkadang kita tidak mengetahui hari pada kalender di masa lalu ataupun di masa mendatang. Kalender Masehi yang dijadikan input memiliki rentang waktu dari tahun 000 sampai tahun 099. Berikut ini algoritma untuk mencari hari dalam kalender : a = 4 month y = year a m = month + a (.) Untuk kalender Masehi: y y y m d = (day + y + - + + ) mod 4 00 400 Dari perhitungan d akan didapatkan nilai sisa pembagian yang memiliki arti : 0 = Hari Minggu = Hari Senin = Hari Selasa. = Hari Rabu 4 = Hari Kamis 5 = Hari Jumat 6 = Hari Sabtu
5 Listing program proses penentuan hari seperti berikut: begin Dum := (4 - Month) DIV ; Dum := Year - Dum; Dum := Month + ( * Dum) - ; Day := (Date + Dum + (Dum DIV 4) - (Dum DIV 00) + (Dum DIV 400) + (*Dum) DIV ); Day := Day MOD ; Case Day of 0 : Label.Caption := 'Senin'; : Label.Caption := 'Selasa'; : Label.Caption := 'Rabu'; : Label.Caption := 'Kamis'; 4 : Label.Caption := 'Jumat'; 5 : Label.Caption := 'Sabtu'; 6 : Label.Caption := 'Minggu'; end; end; B. Proses Konversi Kalender Proses konversi kalender ini meliputi konversi dari kalender Masehi ke kalender Hijriyah, kalender Cina, kalender Jawa. Proses konversi kalender tercantum dalam listing program berikut: // Konversi kalender Masehi ke Hijriyah Begin if ((y>5) OR((y=5) AND (m>0))or((y=5) AND (m=0) AND (d>4))) then jd := intpart((46*(y+400+intpart((m-4)/)))/4)+ intpart((6*(m--*(intpart((m-4)/))))/)- intpart((*(intpart( (y+4900+intpart((m-4)/))/00)))/4)+d-05 else jd := 6*y-intPart((*(y+500+intPart((m-9)/)))/4)+ intpart((5*m)/9)+d+9; L := jd-94440+06; N := intpart((l-)/06); L := L-06*n+54; J := (intpart((095-l)/56))*(intpart((50*l)/9))+ (intpart(l/560))*(intpart((4*l)/5)); L := L-(intPart((0-j)/5))*(intPart((9*j)/50))- (intpart(j/6))*(intpart((5*j)/4))+9; Rm := intpart((4*l)/09); Rd := l-intpart((09*rm)/4); Ry := 0*n+j-0; // Konversi kalender Masehi ke Cina Function TForm.DecodeGregToCNDate (dtgreg: TDateTime): TCNDate;
54 Var IDayLeave: Integer; WYear, wmonth, wday: WORD; I, j: integer; WBigSmallDist, wleap, wcount, wleapshift: WORD; Label OK; Begin Result := 0; IDayLeave := Trunc (dtgreg) - cstdateorg; DecodeDate (IncMonth (dtgreg, -), wyear, wmonth, wday); If (idayleave <0) or (idayleave> 95) then Exit; For i:= Low (cstcntable) to High (cstcntable) do begin WBigSmallDist := cstcntabel [i]; WLeap := wbigsmalldist shr ; If wleap> then begin WLeap := wleap and ; WLeapShift := ; End else WLeapShift := 0; For j:= to do begin WCount := (wbigsmalldist and ) + 9; If j = wleap then wcount := wcount - wleapshift; If idayleave <wcount then begin Result := (i shl 9) + (j shl 5) + idayleave + ; Exit; IDayLeave := idayleave - wcount; If j = wleap then begin WCount := 9 + wleapshift; If idayleave <wcount then begin Result := (i shl 9) + (j shl 5) + idayleave + + ( shl ); Exit; IDayLeave := idayleave - wcount; WBigSmallDist := wbigsmalldist shr ; Function TForm.isCNLeap(cnDate: TCNDate): boolean; Begin Result := (cndate and $00000) <> 0; Function GetGregDateFromCN (cnyear, cnmonth, cnday: word; bleap: Boolean = False): TDateTime; Var I, j: integer; DayCount: integer; WBigSmallDist, wleap, wleapshift: WORD;
55 Begin DayCount := 0; If (cnyear <990) or (cnyear> 050) then begin Result := 0; Exit; For i := cstcnyearorg to cnyear- do begin WBigSmallDist := cstcntabel [i]; If (wbigsmalldist and $F000) <> 0 then DayCount := DayCount + 9; DayCount := DayCount + * 9; For j := to do begin DayCount := DayCount + wbigsmalldist and ; WBigSmallDist := wbigsmalldist shr ; WBigSmallDist := cstcntabel [cnyear]; WLeap := wbigsmalldist shr ; If wleap > then begin WLeap := wleap and ; WLeapShift := ; // Tai, in Runru. End else WLeapShift := 0; For j := to cnmonth- do begin DayCount := DayCount + (wbigsmalldist and ) + 9; If j = wleap then DayCount := DayCount + 9; WBigSmallDist := wbigsmalldist shr ; If bleap and (cnmonth = wleap) then begin DayCount := DayCount + 0 - wleapshift; Result := DayCount + cstdateorg + cnday - ;.. Perangkat Lunak pada Mikrokontroler Perancangan perangkat lunak pada mikrokontroler berfungsi sebagai pengendali sistem dan digunakan dalam proses pengujian display dot matrix yang selanjutnya digunakan untuk mengirimkan data. Perangkat lunak yang digunakan adalah bahasa assembly dengan software MIDE. Proses-proses utama pada perangkat lunak mikrokontroler antara lain proses scanning baris, proses update waktu dan proses serial interrupt.
56 A. Proses Scanning Baris Untuk menghasilkan tampilan display dot matrix yang tidak berkedip, maka frekuensi dari scanning baris harus melebihi frekuensi penglihatan mata manusia dalam keadaan normal (60 Hz). Sehingga mikrokontroler harus dapat melakukan proses scanning delapan baris dengan frekuensi diatas 60 Hz. Perhitungannya adalah sebagai berikut: T = f (.) = 60Hz 0.06 s = 6, ms Sehingga masing-masing baris membutuhkan waktu maksimal sebesar: 6, =.09 ms Karena dalam satu baris terdapat kolom titik dot matrix, maka untuk menyalakan masing-masing led dalam dot matrix diberikan waktu sebesar:.09ms led = 0.00 ms/led. Dalam perangkat tugas akhir ini penulis menentukan waktu scanning tiap baris sebesar.09ms. Dengan waktu tersebut mikrokontroler dapat menghasilkan frekuensi sebesar 6, Hz. perhitungannya adalah sebagai berikut:.09 x baris = 6. ms F = 6,ms = 6. Hz
5 Proses scanning baris pada modul mikrokontroler dapat ditunjukkan oleh diagram alir pada Gambar.. Start Matikan semua transistor baris Baris = Baris + Baris = 9 T Baca data baris Y Baris = Output ke Shift register 4LS64 Aktifkan transistor baris Gambar.. Diagram alir proses scanning baris Berikut listring program scanning pada baris : Program EQU 0000h TH0Val_C EQU 0Fh ; nilai timer untuk scanning TL0Val_C EQU 000h; : (6556 - TH0:TL0) * ( MHz /.059 MHz) JCol_C EQU 00
5 DispBuffAddr_C EQU 0h ;-------------------------- ; PORTS ;-------------------------- Clk_P BIT p.4 Data_P BIT p.5 Row_P EQU p ;-------------------------- Timer_0 ;-------------------------- th0,#th0val_c tl0,#tl0val_c PUSH a PUSH psw PUSH dph PUSH dpl PUSH ; off all transistor Row_P,#0 dptr,#dispbuffaddr_c r,#jcol_c T0J X a,@dptr ; cycles (4 osc.periods) CLR Data_P ; cycle ( osc.periods) ANL a,bitmask_m ; cycle ( osc.periods) JZ T0J4 ; cycles (4 osc.periods) SETB Data_P ; cycle ( osc.periods) T0J4 SETB Clk_P ; cycle ( osc.periods) CLR Clk_P ; cycle ( osc.periods) INC dptr ; cycles (4 osc.periods) DJNZ r,t0j Row_P,RowMask_M RR RL CLR INC CJNE SETB a,bitmask_m a BitMask_M,a a,rowmask_m a RowMask_M,a LastRow_F ScanCtr_M a,scanctr_m a,#,t0j LastRow_F ScanCtr_M,#0 RowMask_M,#0000000b T0J POP POP dpl POP dph POP psw POP a RETI
59 B. Proses Update Waktu Proses set dan update waktu pada modul mikrokontroler dapat ditunjukkan oleh diagram alir pada Gambar.. START Inisialisasi awal Memori, Timer, Serial Cek RTC valid? T Reset Tanggal & Waktu Y Baca Tanggal Masehi Hijriyah Jawa Cina & Waktu (Jam, Menit, Detik) Taruh di Buffer Display (RAM) Baca tanggal Masehi dan waktu dari RTC T Detik sdh berubah? Y Update tanggal jawa Cina & hijriyah di RTC Taruh data di Buffer Display (RAM) Gambar.. Diagram alir program utama Penjelasan dari diagram alir program utama pada Gambar. yaitu pada saat program pertama kali dijalankan, dilakukan inisialisasi terlebih dahulu yang
60 meliputi inisialisasi memori, timer dan serial. Dilakukan cek apakah internal clock serial RTC sudah sesuai. Jika internal clock tak sesuai dilakukan reset pada RTC. Sebaliknya jika sesuai dilakukan pembacaan tanggal dan waktu. Setelah di-set data internal clock diletakkan di buffer RAM. Setelah semua proses dilakukan, selanjutnya dilakukan update internal clock RTC. Proses ini dilakukan berulangulang dan setiap selesai update data disimpan pada buffer display pada RAM. C. Proses Serial Interrupt Proses serial interrupt menangani apabila terdapat interrupt dari user untuk mengganti atau melakukan update pada kalender. Proses tersebut ditunjukkan oleh diagram alir pada Gambar.. START Ambil data dari SBUF T RETI Data sudah di terima Lengkap? (Jam,Menit, Detik, Tgl,Bln,Thn Masehi, Hijriyah,Jawa,Cina) Y Update waktu, tgl Masehi, tgl Hijriyah, tgl Jawa, tgl Cina RETI Gambar.. Diagram alir program serial interrupt
6 Penjelasan dari diagram alir program utama pada Gambar. adalah saat terjadi interupsi dari user dengan memberi input tanggal yang lain pada komputer dan melakukan update kalender. Program akan membaca data dari register SBUF. Kemudian program akan melakukan cek apakah data yang dikirimkan sudah diterima dengan lengkap meliputi jam, menit, detik, tanggal, bulan dan tahun Masehi, Hijriyah, Jawa, dan Cina. Seandainya data sudah lengkap akan dilakukan update kalender.