Bestly J.H Sianga : Pembuatan Running Text Untuk Display Jembatan Angkat Otomatis Berbasis Mikrokontroler AT89S51, 2010.
Gambar 3.4 Sub program aba-aba untuk menunggu. Setelah program selesai ditulis, kemudian di-save dan kemudian di-Assemble
di-compile. Pada saat di-assemble akan tampil pesan peringatan dan kesalahan. Pesan kesalahan akan ditampilkan pada task bar output dapat dilihat dar gambar
jika masih terdapat kesalahan pada program maka akan terlihat pesan Error pada task bar
out put , jika benar maka pesan error tidak akan ditampilkan pada task bar out put dan program siap dijalankan. Program dapat dijalankan dengan simulasi , jika kita
menjalankan program dengan cara simulasi maka akan terlihat beberapa perubahan yang tampak pada taskbar register dan taskbar port. Pada taskbar register
memperlihatkan register mana yang sedang kita pakai jalankan sedangkan pada taskbar port memperlihatkan port mana yang kita pakai.
3.5.3. Sub program untuk aba-aba untuk lewat kembali
Initialisasi port untuk running text2.
Bestly J.H Sianga : Pembuatan Running Text Untuk Display Jembatan Angkat Otomatis Berbasis Mikrokontroler AT89S51, 2010.
sensor_masuk bit p2.6 sensor_keluar bit p2.7
alarm bit p2.5 lampu_merah bit p2.4
lampu_hijau bit p2.3 batas_tutup bit p2.2
batas_buka bit p2.0 batas_tutup1 bit p3.2
batas_buka1 bit p3.1 Running_text1 bit 3.3
Running_text1 bit 3.4
utama: setb lampu_hijau
clr lampu_ merah clr alarm
mov p0,0h mov a,11h
mulai: jnb sensor_masuk,cek_keluar
setb alarm setb lampu_merah
setb running_text1 call tutup_palang
call angkat_jembatan jmp cek_keluar
cek_keluar: jnb sensor_keluar,mulai
setb alarm setb lampu_merah
Bestly J.H Sianga : Pembuatan Running Text Untuk Display Jembatan Angkat Otomatis Berbasis Mikrokontroler AT89S51, 2010.
setb running_text2 call turun_jembatan
call buka_palang sjmp utama
angkat_jembatan: mov p0,a
call delay rr a
jb batas_buka1,angkat_jembatan ret
turun_jembatan: mov p0,a
call delay rl a
jb batas_tutup1,turun_jembatan ret
hidup_alarm: setb alarm
call tunda_alarm clr alarm
call tunda_alarm setb alarm
call Tunda_alarm clr alarm
call tunda_alarm ret
stop:
Bestly J.H Sianga : Pembuatan Running Text Untuk Display Jembatan Angkat Otomatis Berbasis Mikrokontroler AT89S51, 2010.
mov p1,00h
buka_palang: mov p1,a
call delay1 rr a
jb batas_buka,buka_palang ret
tutup_palang: mov p1,a
call delay1 rl a
jb batas_tutup,tutup_palang ret
tunda_alarm: mov r3,200
tnd_alr: mov r2,60
td: mov r1,10
djnz r1, djnz r2,td
djnz r3,tnd_alr ret
delay: mov r7,45
dly: mov r6,45
Bestly J.H Sianga : Pembuatan Running Text Untuk Display Jembatan Angkat Otomatis Berbasis Mikrokontroler AT89S51, 2010.
djnz r6, djnz r7,dly
ret delay1:
mov r5,45 rojan:
mov r4,45 djnz r4,
djnz r5,rojan ret
end
Untuk sub routine running text untuk perintah ataupun aba-aba lewat kembali, adapun program yang diisikan adalah sebagai berikut:
ulang:
mov dptr,d3fin : isikan ke dalam register dptr nilai d3fin
acall lagi : panggil lagi
lagi: clr a : bersihkan isi register a
mov a,a+dptr : isikan register a jika 1 tambah ke daftar
cjne a,55h,lanjut : kurangi isi register a jika 55 heksa maka lanjut
sjmp ulang : lompat ke ulang
lanjut: acall kirim
: panggil untuk kirim
acall tunda : pangil tunda
inc dptr : tambahkan nilai register dptr
sjmp lagi kirim: mov sbuf,a
: isikan buffer dengan nilai a
Bestly J.H Sianga : Pembuatan Running Text Untuk Display Jembatan Angkat Otomatis Berbasis Mikrokontroler AT89S51, 2010.
jnb ti, : lompat jika tidak ada bit
clr ti : hapus ti
ret : mengakhiri sub rutin
tunda: mov R7,90h : tunda isikan ke dalam register r7 nilai 90 heksa
tnd: mov R6,90h : isikan ke dalam register r6 nilai 90 heksa
djnz R6, : kurangi lompatan jika tidak nol, isikan nilai yang
terdapat pada register dengan
djnz r7,tnd : kurangi lompatan jika tidak nol
ret : mengakhiri sub rutin
d3fin: db 80h,03h,03h,7fh,7fh,03h,03h,80h ;T
db 80h,7fh,7fh,49h,49h,49h,80h ;E db 80h,7fh,7fh,19h,29h,66h,40h,80h ;R
db 80h,41h,7fh,7fh,41h,80h ;I db 80h,7fh,7fh,0eh,1ch,0eh,7fh,7fh,80h ;M
db 80h,7ch,7eh,19h,19h,7eh,7ch,80h ;A db 80h,7fh,7fh,1ch,36h,63h,41h,80h ;K
db 80h,7ch,7eh,19h,19h,7eh,7ch,80h ;A db 80h,26h,67h,49h,49h,73h,32h,80h ;S
db 80h,41h,7fh,7fh,41h,80h ;I db 80h,7fh,7fh,08h,08h,7fh,7fh,80h ;H
db 00h,00h,00h db 80h,03h,03h,7fh,7fh,03h,03h,80h ;T
Bestly J.H Sianga : Pembuatan Running Text Untuk Display Jembatan Angkat Otomatis Berbasis Mikrokontroler AT89S51, 2010.
db 80h,7fh,7fh,49h,49h,49h,80h ;E db 80h,7fh,7fh,60h,60h,60h,80h ;L
db 80h,7ch,7eh,19h,19h,7eh,7ch,80h ;A db 80h,7fh,7fh,08h,08h,7fh,7fh,80h ;H
db 00h,00h,00h db 80h,7fh,7fh,0eh,1ch,0eh,7fh,7fh,80h ;M
db 80h,7fh,7fh,49h,49h,49h,80h ;E db 80h,7fh,7fh,0eh,18h,7fh,7fh,80h ;N
db 3fh,7fh,40h,40h,40h,7fh,3fh, ;U db 80h,7fh,7fh,0eh,18h,7fh,7fh,80h ;N
db 80h,7fh,7fh,49h,49h,79h,80h ;G db 80h,7fh,7fh,49h,49h,79h,80h ;G
db 3fh,7fh,40h,40h,40h,7fh,3fh, ;U db 00h,00h,00h
db 80h,26h,67h,49h,49h,73h,32h,80h ;S db 80h,41h,7fh,7fh,41h,80h ;I
db 80h,7fh,7fh,60h,60h,60h,80h ;L db 80h,7ch,7eh,19h,19h,7eh,7ch,80h ;A
db 80h,7fh,7fh,08h,08h,7fh,7fh,80h ;H db 80h,7fh,7fh,1ch,36h,63h,41h,80h ;K
db 80h,7ch,7eh,19h,19h,7eh,7ch,80h ;A db 80h,7fh,7fh,0eh,18h,7fh,7fh,80h ;N
db 00h,00h,00h db 80h,7fh,7fh,60h,60h,60h,80h ;L
Bestly J.H Sianga : Pembuatan Running Text Untuk Display Jembatan Angkat Otomatis Berbasis Mikrokontroler AT89S51, 2010.
db 80h,7fh,7fh,49h,49h,49h,80h ;E db 80h,7fh,7fh,38h,1ch,38h,7fh,7fh,80h ;W
db 80h,7ch,7eh,19h,19h,7eh,7ch,80h ;A db 80h,03h,03h,7fh,7fh,03h,03h,80h ;T
db 00h,00h,00h db 80h,7fh,7fh,1ch,36h,63h,41h,80h ;K
db 80h,7fh,7fh,49h,49h,49h,80h ;E db 80h,7fh,7fh,0eh,1ch,0eh,7fh,7fh,80h ;M
db 80h,7fh,7fh,49h,49h,3eh,80h ;B db 80h,7ch,7eh,19h,19h,7eh,7ch,80h ;A
db 80h,7fh,7fh,60h,60h,60h,80h ;L db 80h,41h,7fh,7fh,41h,80h ;I
db 00h,00h,00h,55h jika kita menuliskan program di atas tersebut maka akan tampil tampilan seperti
gambar dibawah ini:
Bestly J.H Sianga : Pembuatan Running Text Untuk Display Jembatan Angkat Otomatis Berbasis Mikrokontroler AT89S51, 2010.
Gambar 3.5 Sub program aba-aba untuk lewat kembali
3.5.4 Sub program delay jeda Untuk sub routine program delay, adapun program yang diisikan adalah sebagai
berikut delay:
mov r7,100 : isikan kedalam register 7 nilai 100
dly: mov r6,90
: isikan kedalam register 6 nilai 90 djnz r6,
: kurangi nilai pada register 6 sampai 0 djnz r7,dly
: jika nilai register 6 = 0 maka kurangi 1 nilai pada register 7
: kembali kurangi register 6 Ret
: ke routine pemanggil End
: selesai jika di eksekusi akan tampil hasilnya sebagai berikut:
Bestly J.H Sianga : Pembuatan Running Text Untuk Display Jembatan Angkat Otomatis Berbasis Mikrokontroler AT89S51, 2010.
Gambar 3.6 Tampilan sub program delay
Program di atas gunanya untuk memberikan jeda waktu perpindahan satu perintah ke perintah yang lainnya, nilai 255 berarti kita telah memberikan waktu jeda
selama 255 mdet. Pada program delay di atas kita mengguakan nilai 255 sebanyak dua kali pada r7 dan r6 dengan demikian kita telah menunda perpindahan satu perintah
yang lainnya selama 650 mdet. 3.5.5 Rangkaian lengkap simulasi running text
Bestly J.H Sianga : Pembuatan Running Text Untuk Display Jembatan Angkat Otomatis Berbasis Mikrokontroler AT89S51, 2010.
Bestly J.H Sianga : Pembuatan Running Text Untuk Display Jembatan Angkat Otomatis Berbasis Mikrokontroler AT89S51, 2010.
Ke MCU1 P.3.3 Ke MCU1 P.3.4
Bestly J.H Sianga : Pembuatan Running Text Untuk Display Jembatan Angkat Otomatis Berbasis Mikrokontroler AT89S51, 2010.
BAB 4 PENGUJIAN ALAT DAN PROGRAM