Bestly J.H Sianga : Pembuatan Running Text Untuk Display Jembatan Angkat Otomatis Berbasis Mikrokontroler AT89S51, 2010.
3.5.1 Perancangan Flowchart Program
3.5.2. Sub program untuk aba-aba menunggu.
Initialisasi port untuk running text1.
sensor_masuk bit p2.6 sensor_keluar bit p2.7
alarm bit p2.5 lampu_merah bit p2.4
Bestly J.H Sianga : Pembuatan Running Text Untuk Display Jembatan Angkat Otomatis Berbasis Mikrokontroler AT89S51, 2010.
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
setb running_text2 call turun_jembatan
call buka_palang sjmp utama
Bestly J.H Sianga : Pembuatan Running Text Untuk Display Jembatan Angkat Otomatis Berbasis Mikrokontroler AT89S51, 2010.
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: mov p1,00h
buka_palang: mov p1,a
Bestly J.H Sianga : Pembuatan Running Text Untuk Display Jembatan Angkat Otomatis Berbasis Mikrokontroler AT89S51, 2010.
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
djnz r6, djnz r7,dly
ret delay1:
Bestly J.H Sianga : Pembuatan Running Text Untuk Display Jembatan Angkat Otomatis Berbasis Mikrokontroler AT89S51, 2010.
mov r5,45 rojan:
mov r4,45 djnz r4,
djnz r5,rojan ret
end
Untuk sub routine running text untuk perintah ataupun aba-aba menunggu, 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
jnb ti, : lompat jika tidak ada bit
clr ti : hapus ti
Bestly J.H Sianga : Pembuatan Running Text Untuk Display Jembatan Angkat Otomatis Berbasis Mikrokontroler AT89S51, 2010.
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 d3fin:
db 80h,7fh,7fh,0eh,1ch,0eh,7fh,7fh,80h ;M db 80h,3eh,7fh,63h,63h,7fh,3eh,80h ;O
db 80h,7fh,7fh,08h,08h,7fh,7fh,80h ;H db 80h,3eh,7fh,63h,63h,7fh,3eh,80h ;O
db 80h,7fh,7fh,0eh,18h,7fh,7fh,80h ;N 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,7fh,7fh,1ch,36h,63h,41h,80h ;K
Bestly J.H Sianga : Pembuatan Running Text Untuk Display Jembatan Angkat Otomatis Berbasis Mikrokontroler AT89S51, 2010.
db 80h,7ch,7eh,19h,19h,7eh,7ch,80h ;A db 80h,7fh,7fh,09h,09h,06h,80h ;P
db 80h,7ch,7eh,19h,19h,7eh,7ch,80h ;A db 80h,7fh,7fh,60h,60h,60h,80h ;L
db 00h,00h,00h db 80h,26h,67h,49h,49h,73h,32h,80h ;S
db 80h,7fh,7fh,49h,49h,49h,80h ;E db 80h,7fh,7fh,41h,41h,3eh,80h ;D
db 80h,7ch,7eh,19h,19h,7eh,7ch,80h ;A db 80h,7fh,7fh,0eh,18h,7fh,7fh,80h ;N
db 80h,7fh,7fh,49h,49h,79h,80h ;G db 00h,00h,00h
db 80h,7fh,7fh,60h,60h,60h,80h ;L 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,55
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.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