Professional Documents
Culture Documents
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:
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
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
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, #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