8051 (lagi)

digihadiy dzar-01 bisa dipasang mikrokontroler 8051 dengan tambahan adapter (FLAK). dipasang di atas modul dzar-01, dengan melepas chip atmega16/32 nya

kita coba program sederhana

bunyi buzzer di port 3.7

ini program nya:

sok:
CPL    P3.7
CALL    DELAYSTEP
JMP    SOK

DELAYSTEP:
MOV    R0,#60
DS02:    MOV    R1,#50
DJNZ    R1,$
DJNZ    R0,DS02
RET
delayadc:
mov    r0,#10
jmp    ds02
delaystepv:
mov    r0,#100
jmp    ds02
delaypompa:
mov    r0,#5
dp1:    mov    r1,#0
dp2:    mov    r2,#0
djnz    r2,$
djnz    r1,dp2
djnz    r0,dp1
ret
end

save dengan nama file test.asm

kemudian assembly dengan ketik asm test.asm di command prompt

ini hasil kompilasi di listing file nya test.lst

ASEM-51 V1.2                                         Copyright (c) 1996 by W.W. Heinz                                         PAGE 1

MCS-51 Family Cross Assembler   A S E M – 5 1   V 1.2
=====================================================

Source File:    TEST.ASM
Object File:    TEST.HEX
List File:    TEST.LST

Line  I  Addr  Code            Source

1:      0000            sok:
2:      0000    B2 B7            CPL    P3.7
3:      0002    12 00 07        CALL    DELAYSTEP
4:      0005    80 F9            JMP    SOK
5:
6:      0007            DELAYSTEP:
7:      0007    78 3C            MOV    R0,#60
8:      0009    79 32        DS02:    MOV    R1,#50
9:      000B    D9 FE            DJNZ    R1,$
10:      000D    D8 FA            DJNZ    R0,DS02
11:      000F    22            RET
12:      0010            delayadc:
13:      0010    78 0A            mov    r0,#10
14:      0012    80 F5            jmp    ds02
15:      0014            delaystepv:
16:      0014    78 64            mov    r0,#100
17:      0016    80 F1            jmp    ds02
18:      0018            delaypompa:
19:      0018    78 05            mov    r0,#5
20:      001A    79 00        dp1:    mov    r1,#0
21:      001C    7A 00        dp2:    mov    r2,#0
22:      001E    DA FE            djnz    r2,$
23:      0020    D9 FA            djnz    r1,dp2
24:      0022    D8 F6            djnz    r0,dp1
25:      0024    22            ret
26:                end

register banks used:  —

no errors

ASEM-51 V1.2                                         Copyright (c) 1996 by W.W. Heinz                                         PAGE 2

L I S T   O F   S Y M B O L S
=============================

SYMBOL                  TYPE     VALUE    LINE
————————————————————
AC                  BIT          D6
ACC                  DATA          E0
B                  DATA          F0
CY                  BIT          D7
DELAYADC              CODE        0010      12
DELAYPOMPA              CODE        0018      18
DELAYSTEP              CODE        0007       6
DELAYSTEPV              CODE        0014      15
DP1                  CODE        001A      20
DP2                  CODE        001C      21
DPH                  DATA          83
DPL                  DATA          82
DS02                  CODE        0009       8
EA                  BIT          AF
ES                  BIT          AC
ET0                  BIT          A9
ET1                  BIT          AB
EX0                  BIT          A8
EX1                  BIT          AA
EXTI0                  CODE        0003
EXTI1                  CODE        0013
F0                  BIT          D5
IE                  DATA          A8
IE0                  BIT          89
IE1                  BIT          8B
INT0                  BIT          B2
INT1                  BIT          B3
IP                  DATA          B8
IT0                  BIT          88
IT1                  BIT          8A
OV                  BIT          D2
P                  BIT          D0
P0                  DATA          80
P1                  DATA          90
P2                  DATA          A0
P3                  DATA          B0
PCON                  DATA          87
PS                  BIT          BC
PSW                  DATA          D0
PT0                  BIT          B9
PT1                  BIT          BB
PX0                  BIT          B8
PX1                  BIT          BA
RB8                  BIT          9A
RD                  BIT          B7
REN                  BIT          9C
RESET                  CODE        0000
RI                  BIT          98
RS0                  BIT          D3
RS1                  BIT          D4

ASEM-51 V1.2                                         Copyright (c) 1996 by W.W. Heinz                                         PAGE 3

SYMBOL                  TYPE     VALUE    LINE
————————————————————
RXD                  BIT          B0
SBUF                  DATA          99
SCON                  DATA          98
SINT                  CODE        0023
SM0                  BIT          9F
SM1                  BIT          9E
SM2                  BIT          9D
SOK                  CODE        0000       1
SP                  DATA          81
T0                  BIT          B4
T1                  BIT          B5
TB8                  BIT          9B
TCON                  DATA          88
TF0                  BIT          8D
TF1                  BIT          8F
TH0                  DATA          8C
TH1                  DATA          8D
TI                  BIT          99
TIMER0                  CODE        000B
TIMER1                  CODE        001B
TL0                  DATA          8A
TL1                  DATA          8B
TMOD                  DATA          89
TR0                  BIT          8C
TR1                  BIT          8E
TXD                  BIT          B1
WR                  BIT          B6

kemudian bakar ke flas dengan modul digihadiy dan program progisp:

contoh program lain :

org 0000h
sjmp Awal
Awal:
mov p2, #00h ; Menyalakan seluruh LED di Port-2
Cek:
jnb p3.2, Nyala ; Mengecek kondisi Pin3.2, jika = “0”, maka lompat ke label “Nyala”. Jika tidak, lanjutkan.
jnb p3.3, Padam
sjmp Cek
Nyala:
mov p2, #0 ; Membuat seluruh pin pada port-2 = “0” yang berarti seluruh LED akan menyala.
jnb P3.2, $ ; Tunggu sampai dengan tombol P3.2 tidak lagi ditekan.
sjmp Cek ; Lompat kembali ke label “Cek”.
Padam:
mov p2, #255 ; Membuat seluruh pin pada port-2 = “1” yang berarti seluruh LED akan padam.
jnb P3.2, $ ; Tunggu sampai dengan tombol P3.2 tidak lagi ditekan.
sjmp Cek ; Lompat kembali ke label “Cek”

END

DOWNLOAD FILE NYA DI SINI berisi asm.exe , test.asm , test.lst dan test.hex

 

~ by den-wam on October 16, 2010.

4 Responses to “8051 (lagi)”

  1. pak..saya mau tanya untuk coding nya..
    saya abis coba untuk coding yg contoh ke dua..yg LED..
    itu program nyala sama program padam untuk jnb nya sama2 P3.2.
    itu salah gak ya coding nya??atau memang begitu yah program nya?
    soalnya aku uda masukin prog nya waktu di pencet push button nya..
    2 2 nya fungsi nya jadi meyalakan..tidak ada yg mematikan lampunya..
    mohon bantuan nya..

  2. Mau tanya dong..
    Itu yg coding nyala ama padam kok port nya sama yah?
    Sama2 port 3.2.. Emang begitu yah??

  3. mau nanya dong..untuk coding nya..
    unutk yg nyala dan padam..
    apakah penggunaan port nya hanya menggunakan port 3.2??
    tidak menggunakan port 3.3 yah?
    di jnb nya 2 2 nya menggunakan 3.2..

  4. Oke, terimakasih, ketika P3.3 di tekan ke GND, maka lompat ke label PADAM, nah di sini seharusnya ada cek lagi memastikan tombolnya sudah dilepas atau belum, yaitu seharusnya P3.3 (tombol yang sama), akan tetapi terdapat kesalahan yaitu yang ditunggu nya p3.2, tetepi hal ini tidak mempengaruhi pemadaman LED (LED akan tetap padam), karena akan langsung lolos, kecuali kedua tombol ditekan bersamaan, maka LED akan padam setelah P3.2 dilepas. Begitu alur program contoh yang kedua, ini didapat dari source di forum, ada yang nanya kenapa setelah di compile kok nggak jalan
    Terimakasih atas masukannya

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

 
%d bloggers like this: