Anda di halaman 1dari 26

KEGIATAN BELAJAR PRATIKUM -1

( Pemograman output Berbasis Microcontroller )

1. Tujuan kegiatan pembelajaran 1


 Dapat membuat program up-counter dengan output 8 bit
 Dapat menganalisa program up-counter dengan output 8 bit
 Dapat mengoperasikan modul untuk melakukan pengisian program ke IC
microcontroller serta mengaplikasikan pada proses pengontollan.

2. Modul Mikrokontroler (Downloader)


PORT 2
PORT LCD PORT 0

PORT SERIAL
POWER

IC 89S51

PORT 1

PORT PARALEL
(PRINTER PORT) PORT 3

Kit mikrokontroler di atas biasa disebut sebagai downloader. Alat untuk


merekam program dari komputer ke IC AT89S51 sebelum digunakan untuk
mengontrol sebuah rangkaian elektronika.
Pemogram dengan mudah ISP 89SXXX
Pendahuluan
Programmer ISP ini dapat digunakan baik pada mode in system programming atau
dengan mode stand alone untuk IC ATMEL ISP

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

Figure T.1. Programmer AT89S

Figure T.2. Top View Programmer AT89S


Figure T.3. Bottom View Programmer AT89S

Gambar rangkaian modul

Gambar diagram Schematic Programmer dan hubungannnya ke LPT

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

1 89s51 or others family


2 Crystal 12 MHz
3 Capacitor 30 pF Ceramic
4 Push Button Small
5 Diode 1N4148 Germanium
6 Capacitor 10 uF 16 volt
7 Connector Header 8 Pin
Connected to
8 Connector Header 6 Pin
Programmer
9 Resistor 1 K

Download Skematik dan Layout PCB Rangkaian Target

Gambar Rangkaian modul microcontroller


Pemrograman dan Perekaman ke IC
 Sebelum pemograman dilakukan hubungkanlah modul ke komputer
dengan memasangkan socket yang tersedia dengan baik ( terpasang
dengan baik ) Berikut ni diperlihatka Socket penghubung modul
Microcontroller ke PC

Gambar Programmer AT89S51


Gambar padangan atas Programmer AT89S51

Gambar pandangan bawah Programmer AT89S51

 Aktifkan lembar kerja ( editor progam ) yaitu WIN 8051 ( 8051.EXE )


 Program dibuat dengan bahasa assembler mikrokontroler yang
bersangkutan (AT89S51) diketik menggunakan editor ( asembler
atau notepad) kemudian disimpan dengan ekstensi .asm.

Software WIN 8051 ( 8051.EXE )


1. Membuka file baru ( New File )

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:

2. Penulisan program ( Writing a Program )

Untuk mengimplementasikan program, maka harus ditulis program


dalam bahasa emograman assembly pada lembaang yang tersedia
( kosong ). Setelah selesai penulisan program, maka simpanlah program
dengan nama program yang diinginkan. Berikut ini adalah program
yang akan dibuat.

Program Up- Conter


Org 00h
mov a,#00h
mov b,#80h
loop :
mov P1,a
inc a
call tunda
dec b
sjmp loop

tunda:
mov r7,#255
td: mov r6,#255
djnz r6,$
djnz r7,td
ret
end

3. Penyimpanan program ( Save As )

Setelah proga selesai dibuat, kemudian lakukan penyimpanan program


dengan extension *.ASM

4. Kompilasi ( Compiling )

Untuk mengaktifkan program yang telah dibuat, terlebih dahulu program


sengan extension .asm kedalam bentuk file Hex dengan cara meng-
klik perintah assemle

5. Perbaikan kesalahan program ( Troubleshooting Error)

Lakukan pengecekan program, Jika terjadi kesalahan akan ditunjukan seperti


pada tampilan di atas ( assembly errors : .. ) dan harus diperbaiki sebelum
ketahap berikutnya. Bila tidak terjadi kesalahan akan ditunjukan ( Assembly
Errors : 0 )
 Pada gambar berikut terlihat lembaran editor program
6. Aktifkan program ISP ( ATMEL microcontroller ISP Software )

 Lakukan Pemilihan menu options, klik select device, pilih jenis


microconroler yang digunakan aitu AT89S51. Pada lembaran bagian
bawah Device selection terdapat plihan, dengan memilih byte mode, dan
Xtals( mHz) 12, seperti terlihat pada conoh berikut

 Lakukan kembali pemanggilan program yang sudah dikonveskan kedalam


hex, dengan memilih menu File, kemudian pilih load buffer, dan buka
program sebagai contoh ( Coba1.hex ), dan klik open

 Untuk melakukan pengisian program e IC microcontroller dapat dilakuka


dengan cara berikut , memilih Menu Instruction, kemudian memilih menu
Write to Chipt.

 Untuk menjalankan program dapat dilakukan dengan cara memilih menu


Run Target

 Setelah program berjalan dengan benar lepaskan kabel printer port


paraler dari komputer dengan sendirinya kit mikrokontroler akan
menjalankan program yang sudah disimpan ke dalam IC hanya dengan
catu daya 5 volt
 Lakukan untuk program-program yang lain dengan cara yang sama
seperti di atas
Secara keseluruhan bentuk tampilan menu pada masing-masing proses atau
langak yang dilakukan dapat diperlihatkan sebagai berikut

1. Gambar Atmel Microcontroller ISP Software

2. Gambar pemilihan Port ( select Dialaog )

3. Gambar pemilihan Device Select Dialog

4. Gambar Buffer
Windows
5. Gambar Lod Buffer Dialog

6. Gambar Open fil Hex Dialog


7. Gambar Update buffer data

8. Gambar Initialize Device

9. Gambar Auto Programming sub menu


10. Gambar progress Dialog

11. Gambar Gambar Lockbit Manager Dialog

12. Gambar Auto Programming Dialog

13. Gambar Run Target Instruction


14. Gambar Error according to device error

15. Gambar Error according to cable connection.


Catatan

TAHAPAN PENGGUNAAN MODUL PRATIKUM

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

2. Data Register ouput port 0 bagian 2

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

4. Program delay bagian 2

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

5. Data Shift right


org 0h
mov p0,#0h
mov p2,#0h
mov p3,#0h
loop:
mov a,#01h
lompat: mov p1,a
acall Delay
rr a
cjne a,#01h,lompat
sjmp loop
delay:
mov r7,#255
td: mov r6,#255
djnz r6,$
djnz r7,td
ret
end

6. Data shift Left


org 0h
mov p0,#0h
mov p2,#0h
mov p3,#0h
loop:
mov a,#01h
lompat: mov p1,a
acall Delay
rl a
cjne a,#01h,lompat
sjmp loop
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

9. Data memori Output LED


org 0h
mov p1,#0h
mov p2,#0h
mov p3,#0h
start:
mov r0,#0
lp: mov a,r0
acall tampil
mov p0,a
acall tunda1
inc r0
cjne r0,#9,lp
sjmp start
tampil:
inc a
movc a,@a+pc
ret

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

11. Program Gabungan


org 0h
mov p0,#0h
mov p1,#0h
mov p2,#0h
mov p3,#0h

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

PEMOGRAMAN DENGAN KONSEP DASAR


Data stepper motor ( putaran motor stepper arah jarum jam )

Sw3 Sw2 Sw1 Sw0 Data


0 0 1 1 03
0 1 1 0 06
1 1 0 0 0C
1 0 0 0 09

Data stepper motor ( putaran motor stepper berlawanan arah jarum jam )

Sw3 Sw2 Sw1 Sw0 Data


1 0 0 1 09
1 1 0 0 0C
0 1 1 0 06
0 0 1 1 03

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

tunda1: mov r6,#200


tnd: mov r5,#200
Gambar rangkaian pengontrolan Motor Stepper

Anda mungkin juga menyukai