BAB III METODE PENELITIAN -...

21
41 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 3.1. Gambar 3.1 Blok Diagram rangkaian keseluruhan. KOMPUTER MAX 232 Converter Mikrokontroler Display DOT MATRIK Driver Baris Driver Kolom Serial RTC

Transcript of BAB III METODE PENELITIAN -...

Page 1: BAB III METODE PENELITIAN - repository.dinamika.ac.idrepository.dinamika.ac.id/1474/5/BAB_III.pdf · rangkaian Kalender Digital ini. Pada Tugas Akhir ini digunakan mikrokontroler

41

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 3.1.

Gambar 3.1 Blok Diagram rangkaian keseluruhan.

KOMPUTER

MAX 232 Converter

Mikrokontroler

Display

DOT MATRIK

Driver Baris

Driver Kolom

Serial RTC

Page 2: BAB III METODE PENELITIAN - repository.dinamika.ac.idrepository.dinamika.ac.id/1474/5/BAB_III.pdf · rangkaian Kalender Digital ini. Pada Tugas Akhir ini digunakan mikrokontroler

42

3.1 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:

1. Rangkaian Minimum Sistem AT89S52.

2. Rangkaian Komunikasi Serial RS232.

3. Rangkaian Serial RTC DS1307.

4. Rangkaian Driver Baris (TIP42).

5. Rangkaian Shift Register 74LS164.

6. Rangkaian Display Dot Matrix.

Dalam perancangan perangkat lunak terdapat proses-proses sebagai

berikut: program utama, program interrupt serial, program konversi kalender .

3.1.1 Rangkaian Minimum Sistem AT89S52

Rangkaian mikrokontroler berfungsi sebagai pusat pengontrol dari

rangkaian Kalender Digital ini. Pada Tugas Akhir ini digunakan mikrokontroler

keluaran ATMEL yaitu Mikrokontroler AT89S52. Mikrokontroler ini mempunyai

40 pin dengan 4 jalur port yaitu Port 0, Port 1, Port 2, dan Port 3. Untuk

mengetahui lebih lanjut konfigurasi mikrokontroler sebagai pengendali sistem,

skematik rangkaian terlihat pada Gambar 3.2.

Page 3: BAB III METODE PENELITIAN - repository.dinamika.ac.idrepository.dinamika.ac.id/1474/5/BAB_III.pdf · rangkaian Kalender Digital ini. Pada Tugas Akhir ini digunakan mikrokontroler

43

A10A9

D0

5v

Baris6

XTAL1

D4

Baris1

A11

XTAL2

Y1CRYSTAL 11.0592Mhz

30pF

SCL

30pF

Baris7

XTAL1

U2

AT89S52

11121314151617

1819

20

2122232425262728

29

3031

3233343536373839

40

12345678

9

10

P3.1/TXDP3.2/INT0P3.3/INT1

P3.4/T0P3.5/T1

P3.6/WRP3.7/RD

XTAL2XTAL1

GN

D

P2.0/A8P2.1/A9

P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15

PSEN

ALE/PROGEA/VPP

P0.7/AD7P0.6/AD6P0.5/AD5P0.4/AD4P0.3/AD3P0.2/AD2P0.1/AD1P0.0/AD0

VCC

P1.0/T2P1.1/T2EXP1.2P1.3P1.4/SSP1.5/MOSIP1.6/MISOP1.7/SCK

RST

P3.0/RXD

D3

D7

CLOCK

Baris2

DATA

SDA

Baris8

RN2

R-PACK1

23456789

RN2

R-PACK

23456789

P3.0 Rx

D6

Baris4

WE

Baris3

D2

P3.1 Tx

XTAL2

D5

A8

Baris5

OE

D1

VCC

Gambar 3.2 Minimum sistem Mikrokontroler AT89S52

Pada skematik yang tecantum pada gambar 3.2 terdapat beberapa port

yang berhubungan dengan komponen yang lainnya. Port 0 dihubungkan dengan

komponen 74HC573 yang berfungsi sebagai penyangga data yang diterima dari

mikrokontroler. Port 1 terhubung dengan rangkaian driver baris. Pada port 1 ini

digunakan untuk melakukan scanning 8 baris. Port 3 (P3.4 dan P3.5) masing-

masing 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 232 sebagai konverter.

Pada rangkaian mikrokontroler ini, digunakan komponen XTAL 11,0592

Mhz yang terhubung pada pin XTAL1 dan XTAL2.

A. Rangkaian Programmer

Page 4: BAB III METODE PENELITIAN - repository.dinamika.ac.idrepository.dinamika.ac.id/1474/5/BAB_III.pdf · rangkaian Kalender Digital ini. Pada Tugas Akhir ini digunakan mikrokontroler

44

Penulis menggunakan rangkaian programmer yang terdiri dari sebuah IC

74LS244 yang berguna sebagai buffer dan kabel downloader dengan interface

DB25 yang terhubung pada port LPT1 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 3.3.

P2

CONNECTOR DB25

13251224112310229218207196185174163152141

U11 74LS244

A12

A24

A36

A48

1OE1

Y1 18

Y2 16

Y3 14

Y4 12

VCC

20

GN

D10

A511

A613

A715

A817

Y5 9

Y6 7

Y7 5

Y8 3

2OE19

J1

HEADER 6

123456

Gambar 3.3 Rangkaian kabel downloader pada port LPT

Setelah kabel downloader terhubung ke Port paralel pada PC melalui

DB25 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 3.4.

Page 5: BAB III METODE PENELITIAN - repository.dinamika.ac.idrepository.dinamika.ac.id/1474/5/BAB_III.pdf · rangkaian Kalender Digital ini. Pada Tugas Akhir ini digunakan mikrokontroler

45

Gambar 3.4 Atmel Microcontroller ISP Software

Konektor 6 pin pada Gambar 3.3 dihubungkan terlebih dahulu pada

Mikrokontroler AT89S52 jika akan melakukan proses download program.

Konektor yang terhubung ke mikro seperti pada Gambar 3.5.

TRJ2

downloader

123456

MOSI

SCKMISO

RESET

Gambar 3.5 Konektor downloader pada Mikrokontroler

3.1.2 Rangkaian Komunikasi Serial RS232

Data yang diterima dari komputer melalui serial port adalah berupa

tegangan dengan standar RS-232, yaitu antara -3 sampai -25 Volt untuk kondisi

high dan +3 sampai +25 Volt untuk kondisi low. Sedangkan mikrokontroler

bekerja dalam level tegangan TTL, yaitu +5 Volt untuk kondisi high dan 0 Volt

Page 6: BAB III METODE PENELITIAN - repository.dinamika.ac.idrepository.dinamika.ac.id/1474/5/BAB_III.pdf · rangkaian Kalender Digital ini. Pada Tugas Akhir ini digunakan mikrokontroler

46

untuk kondisi low. MAX232 akan mengubah level tegangan RS-232 menjadi level

tegangan TTL agar dapat diolah oleh mikrokontroler. Demikian pula sebaliknya,

data yang dikirim mikrokontroler akan diubah ke level tegangan RS-232 agar

dapat diolah oleh komputer. Pengiriman data dari program visual di PC ke

mikrokontroler menggunakan komunikasi serial RS232. Diagram skematik dari

rangkaian serial terlihat pada Gambar 3.6.

Gambar 3.6 Rangkaian skematik RS232

Penulis menggunakan komunikasi serial mode 1 dengan baudrate sebesar

9600 bps. Sehingga pengaturan register SCON dan register PCON adalah seperti

pada tabel 3.1 dan tabel 3.2.

Tabel 3.1 Susunan bit dalam register SCON

SM0 SM1 SM2 REN TB8 RB8 TI RI 0 1 0 1 0 0 0 0

Dari tabel 3.1 maka SCON bernilai 0x50 dimana SM0 = 0 dan SM1 = 1

berarti menggunakan mode 1, sedangkan REN = 1 berarti mengaktifkan port

serial untuk menerima data.

VCC U1

MAX232

C1+ 1 C1- 3 C2+ 4 C2- 5

VCC 16

GND 15 V+ 2

V- 6

R1OUT 12 R2OUT 9

T1IN 11 T2IN 10

R1IN 13 R2IN 8

T1OUT 14 T2OUT 7

P1

DB9

5 9

4 8

3 7

2 6

1 +

C1

10u

+ C2

10u

+ C3 10u

+ C4 10u

P3.0 Rx P3.1 Tx

Page 7: BAB III METODE PENELITIAN - repository.dinamika.ac.idrepository.dinamika.ac.id/1474/5/BAB_III.pdf · rangkaian Kalender Digital ini. Pada Tugas Akhir ini digunakan mikrokontroler

47

Tabel 3.2 Susunan bit dalam register PCON

SMOD - - - GF1 GF0 PD IDL 0 0 0 0 0 0 0 0

Dari tabel 3.2 maka PCON bernilai 0 x 00,

3.1.3 Rangkaian Serial RTC DS1307

Real Time Clock DS1307 digunakan untuk merancang jam digital. RTC

ini berkomunikasi secara serial dengan mikrokontroler melalui kaki SDA (serial

data) dan SCL (serial clock). Pada rangkaian ini DS1307 beroperasi sebagai slave

dengan mengirimkan data waktu ke mikrontroler yang berfungsi sebagai master.

Konfigurasi dari pin RTC DS1307 yang digunakan dalam Tugas Akhir ini dapat

dilihat pada Gambar 3.7.

SDA

SCL

U45

DS1307

GN

D4

SQW/OUT 7SDA 5X11

X22

SCL6

VBAT3

VCC8

GND

Y3

32.768kHz

C1

100nFBT2

CR2032 3V

VCC

Gambar 3.7 Rangkaian Real Time Clock DS1307

3.1.4 Rangkaian Driver Baris (TIP42)

Pada rangkaian kontroler memiliki 8 pasang transistor yang berfungsi

sebagai driver baris. Dimana setiap pasang terdiri dari transistor 9013 dan TIP42.

Rangkaian driver baris terhubung ke Port 1 mikrokontroler dan ke baris dot

matrix. Agar lebih jelas mengenai uraian diatas, dapat dilihat skematik driver

baris seperti Gambar 3.8.

Page 8: BAB III METODE PENELITIAN - repository.dinamika.ac.idrepository.dinamika.ac.id/1474/5/BAB_III.pdf · rangkaian Kalender Digital ini. Pada Tugas Akhir ini digunakan mikrokontroler

48

VCC

Q3

Q5AC9013

31

2

VCC

Q11AC9013

31

2

R93

BRS 4

R93

Q6AC9013

31

2

Q3

R93

BARIS4

BARIS2

BRS 7

Q3

B1

Q11AC9013

31

2

VCC

BRS 5

BRS 6

VCC

Q3

BARIS3

R93

BARIS1

Q11AC9013

31

2

BARIS7

VCC

Q3

BRS 2R93

VCC

BARIS5

BRS 1

Q11AC9013

31

2

BARIS8

R93

BARIS6

R93

VCC

BRS 3

VCC

Q11AC9013

31

2

Q4AC9013

31

2

B1

R93

Q3

B1

BRS 8

Q3

Q3

Gambar 3.8 Rangkaian driver baris transistor TIP42

Output dari mikrokontroler tidak cukup kuat untuk menyalakan satu baris

led dot matrix yang terdiri atas 288 led. Dibutuhkan transistor yang berdaya besar

untuk memperkuat arus dari mikrokontroler agar dapat menyalakan atau

mematikan tiap baris led dot matrix.

Penulis menggunakan 2 buah transistor PNP tipe TIP42 dan 9013 yang

dirangkai seperti pada gambar 3.8. Transistor berfungsi sebagai saklar untuk

menyalakan atau mematikan tiap baris dari led dot matrix. Display dot matrix

terdiri dari 8 baris led sehingga digunakan 8 pasang rangkaian dengan setiap

pasang transistor terhubung ke Port P1.0 sampai Port 1.7.

Pin basis pada TIP42 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

Page 9: BAB III METODE PENELITIAN - repository.dinamika.ac.idrepository.dinamika.ac.id/1474/5/BAB_III.pdf · rangkaian Kalender Digital ini. Pada Tugas Akhir ini digunakan mikrokontroler

49

transistor 9013 akan ON, tegangan di kolektor akan menjadi 0 V dan transistor

TIP42 akan OFF, sehingga baris led akan mati. Sebaliknya jika output

mikrokontroler low, maka transistor 9013 akan OFF, tegangan di kolektor 9013

akan menjadi 12 V dan transistor TIP42 akan ON sehingga baris led akan hidup.

3.1.5 Rangkaian Shift Register 74LS164

Rangkaian shift register digunakan sebagai driver kolom pada display dot

matrix. Input pada IC shift register berupa data, clock dan clear dimana masing-

masing terhubung ke Port P3.4, Port P3.5 dan VCC dari mikrokontroler. Output

shift register terhubung pada kolom display dot matrix. Agar lebih jelas tentang

konfigurasi pin dari IC 74LS164, dapat dilihat skematik rangkaian pada Gambar

3.9.

H5

H7H8

H21

H23H24

H17H18H19

H22

H20

H13

H15H16

H9H10H11H12

H14

H29

H31H32H33

H25H26H27H28

H30

U16

74LS164

A1

B2

CLK8

CLR9

QA 3

QB 4

QC 5

QD 6

QE 10

QF 11

QG 12

QH 13

VCC

14G

ND

7

H24

C6

DATA

H16

H8

CLK

VCC

CLK

VCC

CLK

VCC

R28

R25R26R27

R32

R29R30R31

DATA

CLK

VCC

U16

74LS164

A1

B2

CLK8

CLR9

QA 3

QB 4

QC 5

QD 6

QE 10

QF 11

QG 12

QH 13

VCC

14G

ND

7

C6

R4

R1R2R3

R8

R5R6R7

U16

74LS164

A1

B2

CLK8

CLR9

QA 3

QB 4

QC 5

QD 6

QE 10

QF 11

QG 12

QH 13

VCC

14G

ND

7C6

R12

R9R10R11

R16

R13R14R15

VCCCLK

U16

74LS164

A1

B2

CLK8

CLR9

QA 3

QB 4

QC 5

QD 6

QE 10

QF 11

QG 12

QH 13

VCC

14G

ND

7

C6

R20

R17R18R19

R24

R21R22R23

H3H2

H4

H1

H6

Gambar 3.9 Rangkaian Shift Register 74LS164

Pada rangkaian display dot matrix terdiri dari 288 kolom sehingga masing-

masing kolom tidak dapat terhubung langsung ke port mikrokontroler. Shift

Page 10: BAB III METODE PENELITIAN - repository.dinamika.ac.idrepository.dinamika.ac.id/1474/5/BAB_III.pdf · rangkaian Kalender Digital ini. Pada Tugas Akhir ini digunakan mikrokontroler

50

Register digunakan untuk mengatasi masalah ini, dimana cukup dipakai 3 output

dari mikrokontroler untuk mengatur seluruh 288 kolom led.

Shift Register mempunyai 2 input A dan B yang terhubung oleh gerbang

’and’, kedua input ini dihubungkan jadi satu dan dihubungkan ke Port P3.5 dari

mikrokontroler. Output dan Shift Register hanya ada 8 (QA-QH) jadi dipakai 36

buah Shift Register untuk mengatur 288 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 P3.4 dan semua kaki Clear terhubung ke VCC agar semua Shift

Register berjalan secara sinkron. Rangkaian ini menggunakan sistem SIPO (Serial

Input Parallel Output).

3.1.6 Rangkaian Display Dot Matrix

Dalam perancangan kalender digital dengan dot matrix ini, ukuran display

yang digunakan 48x48, dimana mikrokontroler mempunyai display ukuran 8x288.

Pola display tidak memanjang tetapi berbentuk persegi, karena dot matrix yang

disusun ke bawah secara rapat sehingga membentuk suatu display dot matrix

ukuran 48x48. Maksud dari rangkaian display dot matrix diperjelas melalui

skematik seperti pada gambar 3.10.

Page 11: BAB III METODE PENELITIAN - repository.dinamika.ac.idrepository.dinamika.ac.id/1474/5/BAB_III.pdf · rangkaian Kalender Digital ini. Pada Tugas Akhir ini digunakan mikrokontroler

51

H30

J2

DOT MATRIX

1 23 45 67 89 10

11 1213 1415 1617 1819 2021 2223 24

J3

DOT MATRIX

1 23 45 67 89 10

11 1213 1415 1617 1819 2021 2223 24

J4

DOT MATRIX

1 23 45 67 89 10

11 1213 1415 1617 1819 2021 2223 24

J5

DOT MATRIX

1 23 45 67 89 10

11 1213 1415 1617 1819 2021 2223 24

H1

H2BRS1

BRS3

H3BRS2

BRS4

H4

H29

BRS5

BRS7

H31BRS6

BRS8

H32

BRS1

H9

H11BRS2

H10

H12BRS3

BRS4

H13

H14BRS5

BRS7

H15BRS6

BRS8

H16

BRS5

H5

H7BRS6

H6

H8BRS7

BRS8

H25

BRS1

H27BRS2

H26

H28BRS3

BRS4

H17

BRS1

H19BRS2

H18

H20BRS3

BRS4

H21

BRS5

H23BRS6

H22

H24BRS7

BRS8

Gambar 3.10. Rangkaian display dot matrix

3.1 Perancangan Perangkat Lunak

Dalam perancangan perangkat lunak dibagi atas 2 jenis : perancangan

perangkat lunak pada komputer dan perancangan perangkat lunak pada

mikrokontroler.

3.2.1 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

Page 12: BAB III METODE PENELITIAN - repository.dinamika.ac.idrepository.dinamika.ac.id/1474/5/BAB_III.pdf · rangkaian Kalender Digital ini. Pada Tugas Akhir ini digunakan mikrokontroler

52

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 2000 sampai tahun 2099.

Berikut ini algoritma untuk mencari hari dalam kalender :

a = 12

14 month− (3.2)

y = year – a m = month + 12a – 2

Untuk kalender Masehi:

d = (day + y + 4y -

100y +

400y +

12m31 ) mod 7

Dari perhitungan d akan didapatkan nilai sisa pembagian yang memiliki

arti :

0 = Hari Minggu

1 = Hari Senin

2 = Hari Selasa.

3 = Hari Rabu

4 = Hari Kamis

5 = Hari Jumat

6 = Hari Sabtu

Page 13: BAB III METODE PENELITIAN - repository.dinamika.ac.idrepository.dinamika.ac.id/1474/5/BAB_III.pdf · rangkaian Kalender Digital ini. Pada Tugas Akhir ini digunakan mikrokontroler

53

Listing program proses penentuan hari seperti berikut:

begin Dum1 := (14 - Month) DIV 12; Dum2 := Year - Dum1; Dum3 := Month + (12 * Dum1) - 2; Day := (Date + Dum2 + (Dum2 DIV 4) - (Dum2 DIV 100) + (Dum2 DIV 400) + (31*Dum3) DIV 12); Day := Day MOD 7; Case Day of 0 : Label21.Caption := 'Senin'; 1 : Label21.Caption := 'Selasa'; 2 : Label21.Caption := 'Rabu'; 3 : Label21.Caption := 'Kamis'; 4 : Label21.Caption := 'Jumat'; 5 : Label21.Caption := 'Sabtu'; 6 : Label21.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 ((y2>1582) OR((y2=1582) AND (m2>10))OR((y2=1582) AND (m2=10)

AND (d2>14))) then

jd := intPart((1461*(y2+4800+intPart((m2-14)/12)))/4)+

intPart((367*(m2-2-12*(intPart((m2-14)/12))))/12)-

intPart((3*(intPart(

(y2+4900+intPart((m2-14)/12))/100)))/4)+d2-32075

else

jd := 367*y2-intPart((7*(y2+5001+intPart((m2-9)/7)))/4)+

intPart((275*m2)/9)+d2+1729777;

L := jd-1948440+10632;

N := intPart((L-1)/10631);

L := L-10631*n+354;

J := (intPart((10985-L)/5316))*(intPart((50*L)/17719))+

(intPart(L/5670))*(intPart((43*l)/15238));

L := L-(intPart((30-j)/15))*(intPart((17719*j)/50))-

(intPart(j/16))*(intPart((15238*j)/43))+29;

Rm := intPart((24*L)/709);

Rd := l-intPart((709*Rm)/24);

Ry := 30*n+j-30;

// Konversi kalender Masehi ke Cina

Function TForm1.DecodeGregToCNDate (dtGreg: TDateTime): TCNDate;

Page 14: BAB III METODE PENELITIAN - repository.dinamika.ac.idrepository.dinamika.ac.id/1474/5/BAB_III.pdf · rangkaian Kalender Digital ini. Pada Tugas Akhir ini digunakan mikrokontroler

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, -1), wYear, wMonth, wDay);

If (iDayLeave <0) or (iDayLeave> 22295) then Exit;

For i:= Low (cstCNTable) to High (cstCNTable) do begin

WBigSmallDist := cstCNTabel [i];

WLeap := wBigSmallDist shr 12;

If wLeap> 12 then begin

WLeap := wLeap and 7;

WLeapShift := 1;

End else

WLeapShift := 0;

For j:= 1 to 12 do begin

WCount := (wBigSmallDist and 1) + 29;

If j = wLeap then wCount := wCount - wLeapShift;

If iDayLeave <wCount then begin

Result := (i shl 9) + (j shl 5) + iDayLeave + 1;

Exit;

End;

IDayLeave := iDayLeave - wCount;

If j = wLeap then begin

WCount := 29 + wLeapShift;

If iDayLeave <wCount then begin

Result := (i shl 9) + (j shl 5) + iDayLeave + 1 + (1 shl 21);

Exit;

End;

IDayLeave := iDayLeave - wCount;

End;

WBigSmallDist := wBigSmallDist shr 1;

End;

End;

End;

Function TForm1.isCNLeap(cnDate: TCNDate): boolean;

Begin

Result := (cnDate and $200000) <> 0;

End;

Function GetGregDateFromCN (cnYear, cnMonth, cnDay: word; bLeap: Boolean =

False): TDateTime;

Var

I, j: integer;

DayCount: integer;

WBigSmallDist, wLeap, wLeapShift: WORD;

Page 15: BAB III METODE PENELITIAN - repository.dinamika.ac.idrepository.dinamika.ac.id/1474/5/BAB_III.pdf · rangkaian Kalender Digital ini. Pada Tugas Akhir ini digunakan mikrokontroler

55

Begin

DayCount := 0;

If (cnYear <1990) or (cnYear> 2050) then begin

Result := 0;

Exit;

End;

For i := cstCNYearOrg to cnYear-1 do begin

WBigSmallDist := cstCNTabel [i];

If (wBIgSmallDist and $F000) <> 0 then DayCount := DayCount + 29;

DayCount := DayCount + 12 * 29;

For j := 1 to 12 do begin

DayCount := DayCount + wBigSmallDist and 1;

WBigSmallDist := wBigSmallDist shr 1;

End;

End;

WBigSmallDist := cstCNTabel [cnYear];

WLeap := wBigSmallDist shr 12;

If wLeap > 12 then begin

WLeap := wLeap and 7;

WLeapShift := 1; // Tai, in Runru.

End else

WLeapShift := 0;

For j := 1 to cnMonth-1 do begin

DayCount := DayCount + (wBigSmallDist and 1) + 29;

If j = wLeap then DayCount := DayCount + 29;

WBigSmallDist := wBigSmallDist shr 1;

End;

If bLeap and (cnMonth = wLeap) then begin

DayCount := DayCount + 30 - wLeapShift;

Result := DayCount + cstDateOrg + cnDay - 1;

End;

3.2.2 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.

Page 16: BAB III METODE PENELITIAN - repository.dinamika.ac.idrepository.dinamika.ac.id/1474/5/BAB_III.pdf · rangkaian Kalender Digital ini. Pada Tugas Akhir ini digunakan mikrokontroler

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 =f1 (3.1)

= Hz601

≅ 0.0167 s

= 16,7 ms

Sehingga masing-masing baris membutuhkan waktu maksimal sebesar:

8

7,16 = 2.09 ms

Karena dalam satu baris terdapat 288 kolom titik dot matrix, maka untuk

menyalakan masing-masing led dalam dot matrix diberikan waktu sebesar:

ledms

28809.2 = 0.007 ms/led.

Dalam perangkat tugas akhir ini penulis menentukan waktu scanning tiap baris

sebesar 2.09ms. Dengan waktu tersebut mikrokontroler dapat menghasilkan

frekuensi sebesar 61,27 Hz. perhitungannya adalah sebagai berikut:

2.09 x 8 baris = 16.32 ms

F = ms32,16

1

= 61.27 Hz

Page 17: BAB III METODE PENELITIAN - repository.dinamika.ac.idrepository.dinamika.ac.id/1474/5/BAB_III.pdf · rangkaian Kalender Digital ini. Pada Tugas Akhir ini digunakan mikrokontroler

57

Proses scanning baris pada modul mikrokontroler dapat ditunjukkan oleh

diagram alir pada Gambar 3.11.

Start

Matikan semua

transistor baris

Baris = Baris +1

Baris = 9

Baris =1

Baca data baris

Output ke Shift register 74LS164

Aktifkan transistor baris

Y

T

Gambar 3.11. Diagram alir proses scanning baris

Berikut listring program scanning pada baris :

Program EQU 0000h TH0Val_C EQU 0F8h ; nilai timer untuk scanning TL0Val_C EQU 000h; : (65536 - TH0:TL0) * (12 MHz / 11.0592 MHz) JCol_C EQU 200

Page 18: BAB III METODE PENELITIAN - repository.dinamika.ac.idrepository.dinamika.ac.id/1474/5/BAB_III.pdf · rangkaian Kalender Digital ini. Pada Tugas Akhir ini digunakan mikrokontroler

58

DispBuffAddr_C EQU 0h ;-------------------------- ; PORTS ;-------------------------- Clk_P BIT p3.4 Data_P BIT p3.5 Row_P EQU p1 ;-------------------------- Timer_0 ;-------------------------- MOV th0,#TH0Val_C MOV tl0,#TL0Val_C PUSH a PUSH psw PUSH dph PUSH dpl PUSH 7 ; off all transistor MOV Row_P,#0 MOV dptr,#DispBuffAddr_C MOV r7,#JCol_C T0J3 MOVX a,@dptr ; 2 cycles (24 osc.periods) CLR Data_P ; 1 cycle (12 osc.periods) ANL a,BitMask_M ; 1 cycle (12 osc.periods) JZ T0J4 ; 2 cycles (24 osc.periods) SETB Data_P ; 1 cycle (12 osc.periods) T0J4 SETB Clk_P ; 1 cycle (12 osc.periods) CLR Clk_P ; 1 cycle (12 osc.periods) INC dptr ; 2 cycles (24 osc.periods) DJNZ r7,T0J3 MOV Row_P,RowMask_M MOV a,BitMask_M RR a MOV BitMask_M,a MOV a,RowMask_M RL a MOV RowMask_M,a CLR LastRow_F INC ScanCtr_M MOV a,ScanCtr_M CJNE a,#8,T0J1 SETB LastRow_F MOV ScanCtr_M,#0 MOV RowMask_M,#00000001b T0J1 POP 7 POP dpl POP dph POP psw POP a RETI

Page 19: BAB III METODE PENELITIAN - repository.dinamika.ac.idrepository.dinamika.ac.id/1474/5/BAB_III.pdf · rangkaian Kalender Digital ini. Pada Tugas Akhir ini digunakan mikrokontroler

59

B. Proses Update Waktu

Proses set dan update waktu pada modul mikrokontroler dapat ditunjukkan

oleh diagram alir pada Gambar 3.12.

START

Inisialisasi awal Memori, Timer, Serial

Cek RTC valid?

Reset Tanggal &

Waktu

Baca Tanggal Masehi Hijriyah Jawa Cina &

Waktu (Jam, Menit, Detik)

Taruh di Buffer Display (RAM)

Baca tanggal Masehi dan waktu dari RTC

Detik sdh berubah?

Update tanggal jawa Cina & hijriyah di

RTC

Taruh data di Buffer Display (RAM)

Y

Y

T

T

Gambar 3.12. Diagram alir program utama

Penjelasan dari diagram alir program utama pada Gambar 3.12 yaitu pada

saat program pertama kali dijalankan, dilakukan inisialisasi terlebih dahulu yang

Page 20: BAB III METODE PENELITIAN - repository.dinamika.ac.idrepository.dinamika.ac.id/1474/5/BAB_III.pdf · rangkaian Kalender Digital ini. Pada Tugas Akhir ini digunakan mikrokontroler

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 berulang-

ulang 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 3.13.

START

Ambil data dari SBUF

Data sudah di terima Lengkap?

(Jam,Menit, Detik,Tgl,Bln,Thn Masehi,Hijriyah,Jawa,Cina)

Update waktu, tgl Masehi, tgl Hijriyah,

tgl Jawa, tgl CinaRETI

YT

RETI

Gambar 3.13. Diagram alir program serial interrupt

Page 21: BAB III METODE PENELITIAN - repository.dinamika.ac.idrepository.dinamika.ac.id/1474/5/BAB_III.pdf · rangkaian Kalender Digital ini. Pada Tugas Akhir ini digunakan mikrokontroler

61

Penjelasan dari diagram alir program utama pada Gambar 3.13 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.