PORT SERIAL
POWER
IC 89S51
PORT 1
PORT PARALEL
(PRINTER PORT) PORT 3
Hardware
Rangkaian programmer ini dapat dibuat dengan cara yang sangat sederhana. Anda hanya
membutuhkan sebuah IC yang digunakan sebagai buffer 74244. Koneksikan rangkaian
ini ke port printer/ LPT untuk melakukan pemrograman pada rangkaian target.
No Component Discription
1 Connector DB 25 / USB
2 6 Parallel Cable about 0.5 meter
3 Connector Header 6 pin
4 House Connector DB 25
5 74LS244
6 PCB about 5 x 5 cm
Rangkaian target merupakan otak dari sistem yang akan kita buat, rangkaian terget ini,
dikemas dengan 4 buat input output dengan menggunakan konektor, yang dapat
digunakan untuk berbagai macam keperluan.
Discription
No Component
Untuk membuat file yang baru ( a new file ), klik menu File, kemudian
pilih menu New. Kemudian Program sudah dapat dtulis pada editor
program yang tersedia. Tuslah program berikut:
tunda:
mov r7,#255
td: mov r6,#255
djnz r6,$
djnz r7,td
ret
end
4. Kompilasi ( Compiling )
4. Gambar Buffer
Windows
5. Gambar Lod Buffer Dialog
WIN 8051
8051.EXE
FILE
New
Tulis program
Assemble
Check ada kesalahan atau tidak
Jika ada perbaiki sampai program benar
ATMEL
Option
Selct device
AT89S51
Byte mode
XTAL 12
File
Load buffer
Buka file ( Coba1.hex )
Instruction
Write to Chipt
Target Run
1. Data Register ouput port 0 bagian 1
org 0h
mov p1,#0h
mov p2,#0h
mov p3,#0h
loop:
mov p0,#18h
sjmp loop
end
org 0h
mov p0,#0h
mov p1,#0h
mov p2,#0h
mov p3,#0h
loop:
mov p0,#18h
acall tunda
mov p0,#24h
acall tunda
mov p0,#42h
acall tunda
mov p0,#81h
acall tunda
mov p0,#42h
acall tunda
mov p0,#24h
acall tunda
mov p0,#18h
acall tunda
sjmp loop
tunda: mov r7,#255
tnd: mov r6,#255
djnz r6,$
djnz r7,tnd
ret
end
3. Program delay bagian 1
org 0h
mov p0,#18h
acall delay
mov p0,#24h
acall delay
delay:
mov r7,#255
djnz r7,$
ret
end
org 0h
mov p0,#18h
acall delay
mov p0,#24h
acall delay
delay:
mov r7,#255
td: mov r6,#255
djnz r6,$
djnz r7,td
ret
end
7. Data Counter Up
org 0h
mov p0,#0h
mov p2,#0h
mov p3,#0h
loop:
mov a,#00h
lompat: mov p1,a
acall Delay
inc a
cjne a,#60h,lompat
sjmp loop
delay:
mov r7,#255
td: mov r6,#255
djnz r6,$
djnz r7,td
ret
end
8. Data Counter Down
org 0h
mov p0,#0h
mov p2,#0h
mov p3,#0h
loop:
mov a,#70h
lompat: mov p1,a
acall Delay
dec a
cjne a,#0h,lompat
sjmp loop
delay:
mov r7,#255
td: mov r6,#255
djnz r6,$
djnz r7,td
ret
end
db 01h,02h,04h,08h,010h,020h,040h,080h,0h
tunda1:mov r6,#200
tnd: mov r5,#200
djnz r5,$
djnz r6,tnd
ret
end
Program 10
;-----program utama----------
mainloop:
mov R4,#8
mov dptr,#Tabeldata
loop: clr a
movc a,@a+dptr
mov P1,a
inc dptr
acall delay
djnz R4,loop
sjmp mainloop
;-----sub program------------
delay:
mov R7,#20
l1: mov R6,#50
l2: mov R5,#50
l3: djnz R5,l3
djnz R6,l2
djnz R7,l1
ret
;-----tabel data --------
Tabeldata:
db 11111110b
db 11111101b
db 11111011b
db 11110111b
db 11101111b
db 11011111b
db 10111111b
db 01111111b
;----------------------------
end
mulai:
acall left
acall back
acall right
sjmp mulai
ret
left:
mov a,#0feh
mov p0,a
rl a
acall time
cjne a,#7fh,left
ret
right:
mov a,#7fh
mov p0,a
rr a
acall time
cjne a,#0feh,right
ret
back:
mov r4,#8
mov p0,#0
acall time
mov p0,#0ffh
acall time
djnz r4,back
ret
time:
mov r7,#30
tm1: mov r6,#255
tm2: mov r5,#255
tm3: djnz r5,tm3
djnz r6,tm2
djnz r7,tm1
Program 12 Program Gabungan
Org 0h
;program utama
loop: acall GeserKiri
acall GeserKanan
acall Kedipkan
sjmp loop
GeserKiri:
mov a,#0FEH
geki: mov P1,a
rl a
acall delay
cjne a,#7FH,geki
ret
GeserKanan:
mov a,#7FH
mov R4,#7
geka: mov P1,a
rl a
acall delay
djnz R4,geka
ret
Kedipkan:
mov R4,#8
kdp: mov P1,#0
acall delay
mov P1,#0FFH
acall delay
djnz R4,kdp
ret
delay:
mov R7,#10
l1: mov R6,#255
l2: mov R5,#255
l3: djnz R5,l3
djnz R6,l2
djnz R7,l1
ret
end
PROGRAM APLIKASI
PENGONTROLAN STEPPER MOTOR
Data stepper motor ( putaran motor stepper berlawanan arah jarum jam )
Program dasar 1
( berputar searah jarum jam ) Program dasar2 ( putar kekanan
org 0h menggunakan instruksi shift )
mov p1,#0h org 0h
mov p2,#0h mov p0,#0h
mov p3,#0h mov p2,#0h
loop: mov p3,#0h
mov p0,#03h loop:
acall tunda mov a,#33h
mov p0,#06h mov p1,a
acall tunda acall Delay
mov p0,#0Ch rr a
acall tunda sjmp loop
mov p0,#09h delay:
acall tunda mov r7,#255
mov p0,#00h td: mov r6,#255
acall tunda djnz r6,$
sjmp loop djnz r7,td
tunda: mov r7,#255 ret
tnd: mov r6,#255 end
djnz r6,$
djnz r7,tnd
ret
end
djnz r5,$
djnz r6,tnd
Program dasar3 ret
Putar kekanan sejumlah 20h step end
org 0h
mov p0,#0h Program pengontrollan motor putar
mov p2,#0h kekiri dan kekanan
mov p3,#0h Org 0h
mov b,#20h loop: acall putarkiri
loop: acall putarkanan
mov a,#33h sjmp loop
mov p1,a
acall Delay putarkiri :
rr a mov b,#00h
djnz b,loop mov a,#033H
end puki: mov P1,a
delay: rl a
mov r7,#255 acall delay
td: mov r6,#255 inc b
djnz r6,$ cjne b,#30,puki
djnz r7,td ret
ret
putarkanan:
Program dasar 4 mv R4,#00h
org 0h mov a,#33h
mov p1,#0h puka: mov P1,a
mov p2,#0h rr a
mov p3,#0h acall delay
start: inc,r4
mov r0,#0 sjmp r4,#20h,puka
lp: mov a,r0 ret
acall tampil delay:
mov p0,a mov R7,#10
acall tunda1 l1: mov R6,#255
inc r0 l2: mov R5,#255
cjne r0,#9,lp l3: djnz R5,l3
sjmp start djnz R6,l2
tampil: djnz R7,l1
inc a ret
movc a,@a+pc end
ret
db 03h,06h,0Ch,09h,00h