You are on page 1of 11

Penulisan Program Teknik penulisan program diawali dengan menulis program dengan program EDITOR atau dengan program

Turbo Pascal atau dengan program Editor TVDEMO. Tulis program dengan bahasa assembly MCS '51 ( lihat pada intuction set AT89C51). Program yang telah selesai ditulis dengan baik maka berilah nama file dengan ekstensi .ASM, misalnya : diberi nama file LATIH.ASM. Dalam melakukan penulisan yang perlu dihindarkan antara lain: Pemberian nama file menggunakan -/_ untuk menghubungkan . Misalnya : file LATIH-01.ASM ATAU LATIH_01.ASM Penulisan file ini salah karena Matrix tidak bisa mengkonversi nama file dengan penghubung -/_ dan lebih baik ditulis dengan LATIH01.ASM. Melakukan Ketikan <ENTER> setelah penulisan program selesai misalnya :

Program1 ORG 00H ; Penulisan Awal Program START :MOV A,#09H ; SJMP START END ; Tanda selesai penulisan Program

<ENTER> ; penekanan setelah END dengan tombol ; <ENTER> tidak dibenarkan . Penulisan Program harus diakhiri dengan penulisan END seperti pada contoh diatas .

D. Mengubah File ASM menjadi HEX file Langkah pertama adalah menulis program dengan program editor dan beri nama file dengan ektensi *. ASM., misalnya dengan nama file Latih.ASM . Kemudian ubah file tersebut menjadi berektensi *.OBJ dengan cara : C:\>cd aec

C:\AEC>asm51 latih.asm DOS 7.10 (038-N) MCS-51 MACRO ASSEMBLER, V2.2 Copyright 1979, 1983, 1986 Intel Corporation ASSEMBLY COMPLETE, NO ERRORS FOUND

C:\AEC>

Catatan : Program diatas berada di folder AEC, dan kemudian ditulis C:\AEC>asm51 latih.asm , maka akan muncul file dengan nama latih.OBJ . Selanjutnya ubah file *.OBJ menjadi file *.HEX dengan cara :

C:\AEC>OH latih.obj to Latih.hex DOS 7.10 (038-N) OH V1.0 Copyright 1986 Intel Corporation

Maka akan muncul file berektensi *.HEX dan Sekaligus *.LST yang digunakan untuk melakukan cek kesalahan jika ada kesalahan penulisan program.

Contoh-Contoh Program.
Contoh Program 1 ; Program penyalaan lampu pada port 0 sebagai ; flip-flop ORG 00H

MULAI:

MOV P0, #00FH

ACALL TUNDA MOV P0, #0F0H ACALL TUNDA SJMP MULAI ; Sub Routine Tunda TUNDA: MOV R0, #05H

TUNDA1: MOV R1, #0FFH TUNDA2: MOV R2, #0FFH TUNDA3: NOP DJNZ R2 ,TUNDA3 DJNZ R1 ,TUNDA2 DJNZ R0 ,TUNDA1 RET END

Contoh Program 2 ; Program penyalaan lampu jalan dengan nyala ; tiap dua lampu secara berurutan ORG 00H MULAI: MOV P0, #0FCH

ACALL TUNDA MOV P0, #0F3H ACALL TUNDA

MOV P0, #0CFH ACALL TUNDA MOV P0, #03FH ACALL TUNDA SJMP MULAI ; Sub Routine Tunda TUNDA: MOV R0, #003H TUNDA1: MOV R1, #0FFH TUNDA2: MOV R2, #0FFH TUNDA3: NOP DJNZ R2, TUNDA3 DJNZ R1, TUNDA2 DJNZ R0, TUNDA1 RET END

Contoh Program 3 ; Program penyalaan lampu jalan pada port 0 ; dari kiri ke kanan secara berurutan dengan ; nyala 1 lampu ORG 00H

MOV A, #FEH MULAI: MOV P0, A

ACALL TUNDA RL A SJMP MULAI ; Sub Routine Tunda TUNDA: MOV R0, #03H TUNDA1: MOV R1, #0FFH TUNDA2: MOV R2, #0FFH TUNDA3: NOP DJNZ R2, TUNDA3 DJNZ R1, TUNDA2 DJNZ R0, TUNDA1 RET END

Contoh Program 4 ; Program penyalaan lampu berjalan pada Port 0 ; dari pinggir ke tengah ; secara berurutan ORG 00H MULAI: MOV P0, #07EH

ACALL TUNDA MOV P0, #0BDH ACALL TUNDA MOV P0, #0DBH

ACALL TUNDA MOV P0, #0E7H ACALL TUNDA SJMP MULAI ; Sub Routine Tunda TUNDA: MOV R0, #01H TUNDA1: MOV R1, #0FFH TUNDA2: MOV R2, #0FFH TUNDA3: NOP DJNZ R2, TUNDA3 DJNZ R1, TUNDA2 DJNZ R0, TUNDA1 RET END

Contoh Program 5 ; Program penyalaan lampu berjalan pada Port 0 ; dari tengah ke tepi secara berurutan ORG 00H MULAI: MOV P0, #0E7H

ACALL TUNDA MOV P0, #0DBH

ACALL TUNDA MOV P0, #0BBH ACALL TUNDA MOV P0, #07EH ACALL TUNDA SJMP MULAI ; Sub Routine Tunda TUNDA: MOV R0, #001H TUNDA1: MOV R1, #0FFH TUNDA2: MOV R2, #0FFH TUNDA3: NOP DJNZ R2, TUNDA3 DJNZ R1, TUNDA2 DJNZ R0, TUNDA1 RET END

Contoh Program 6 ; Program lampu jalan pada Port 0 secara ; gabungan baik berjalan dari tengah ke tepi ; dan dari tepi ketengah secara bergantian ORG 00H MULAI: MOV P0, #07EH ACALL TUNDA

MOV P0, #0BDH ACALL TUNDA MOV P0, #0DBH ACALL TUNDA MOV P0, #0E7H ACALL TUNDA MOV P0, #0E7H ACALL TUNDA MOV P0, #0DBH ACALL TUNDA MOV P0, #0BDH ACALL TUNDA MOV P0, #07EH ACALL TUNDA SJMP MULAI ; Sub Routine Tunda TUNDA: MOV R0, #01H TUNDA1: MOV R1, #0FFH TUNDA2: MOV R2, #0FFH TUNDA3: NOP DJNZ R2, TUNDA3 DJNZ R1, TUNDA2 DJNZ R0, TUNDA1 RET

END

Contoh Program 7 ; Program menghidupkan lampu pada Port 0 ; dengan cara menekan tombol 1 pada Port 1 ; dan mematikan dengan cara menekan tombol 2 ; pada port 1 ORG 00H MULAI: MOV A, P1

CJNE A, #0FEh, LONCAT MOV P0, #00H SJMP MULAI LONCAT: CJNE A, #0FDh, MULAI MOV P0, #0FFh SJMP MULAI END

Contoh Program 8 ; Program menghidupkan lampu pada Port 1 ; dengan menekan tombol 1 untuk menghidup ; kan lampu 1, tombol 2 untuk menghidupkan ; lampu 2 dan seterusnya . ORG 00H MULAI: MOV A, P1

CJNE A, #0FEH ,LONCAT01 MOV P0, #0FEH SJMP MULAI LONCAT01: MOV P0, #0FDH SJMP MULAI LONCAT02: MOV P0, #0FBH SJMP MULAI LONCAT03: MOV P0, #0F7H SJMP MULAI LONCAT04: MOV P0, #0EFh SJMP MULAI LONCAT05: MOV P0, #0DFH SJMP MULAI LONCAT06: MOV P0, #0BFH SJMP MULAI LONCAT07: MOV P0, #07FH SJMP MULAI CJNE A, #07FH, MULAI CJNE A, #0BFH, LONCAT07 CJNE A, #0DFH, LONCAT06 CJNE A, #0EFh, LONCAT05 CJNE A, #0F7H, LONCAT04 CJNE A, #0FBH, LONCAT03 CJNE A, #0FDH, LONCAT02

END

You might also like