You are on page 1of 6

PRAKTIKUM

MIKROPROSESOR & INTERFACE

Percobaan VIII
JUDUL:
EPROM PROGRAMMING (1):
PROSES DESAIN PROGRAM SAMPAI BURNING KE EPROM
UNTUK SISTEM RANGKAIAN BERBASIS MIKROPOSESOR Z80

OBYEKTIF:
Memberikan pengetahuan kepada praktikan tentang tata cara
memproses program dari disain sampai langkah pemrograman EPROM
melalui EPROM PROGRAMMER. Setelah percobaan ini selesai, diharapkan
praktikan dapat melakukan sendiri tata cara disain program sampai jadi
dan diuji di sistem minumumnya.

PERALATAN :
1.
2.
3.
4.
5.
6.

Modul FZ80 CPU, Modul FZ80If & FZ80 I/O untuk pengujian program
Seperangkat Komputer IBM PC
Paket program compiler ; ZAS.EXE, OBJTOHEX.EXE & M.EXE
EPROM programmer PALLETE-1 atau programmer yang lain
EPROM Eraser
DC Regulator Power Supply

PROGRAM PERCOBAAN:
;
;*
;*
;*
;*
;*
;*
;*
;

PROGRAM : PROGRAM APLIKASI DI SM-Z80


JUDUL
: METODE START RUN DENGAN NMI
<** loading data berstruktur **>
STRUKTUR PROGRAM KONVENSIONAL : NMI START
NAMA PROGRAM : DIGIT-06.AS VERSI 1.00
P/D/A : EEPIS/94/05/05 ep94

_6_

_
*
*
*
*
*
*
*

PPIA
equ
80h
PPIB
equ
81h
;_______________________
_
PPIC
equ
82h
;_ Alamat Kerja PPI 8255
_
PPICW equ
83h
;_______________________
_
INIT
equ
10001011B
COUNT equ
78
;data counter dalam decimal
;
;***********************PAGE0 Definition*********************
;
org

0h

;versi EPROM RUN

im
id
jp

1
sp, 0000h
main

org
reti

38h

;Dummy Interrupt Mode 1

org
jp

66h
start

;
_____
;* Disini JUMP ke START *
;

;
;***************** rutin insialisasi PPI8255 ****************
;
PPINIT:
ld
a,INIT
;inisialisasi PPI8255
out
(PPICW),a
;A-out, B-in, C-in/Mode 0
ret
;****************** END of PAGE0 Definition *****************
;
;
org
100h
;Main Program dimulai di
;alamat 0100h
;
;********************** MAIN PROGRAM ************************
main:
call
PPINT
;
ld
c, PPIPA; Alamat output Port
halt
;________________________________
;*PROGRAM HALTED <seperti PAUSE>*
;*Menunggu tombol NMI ditekan.*
;
__________________________
********************** INTI MAIN PROGRAM ********************
start:
ld
b,COUNT ;Konstanta Counter
ld
hl,data1 ;Pointer data display
loop: outi
;(C)<-(HL), HL <- HL + 1, B <- B-1
call
tscan
jr
nz,loop ;Ulang bila data belum habis
halt
;Bila satu kali looping terpenuhi
;program di-halt/pause, menunggu
;NMI ditekan kembali
;
****************** END of INTI MAIN PROGRAM *****************
;
;------------------------subroutine tscan (timer & scanning)tscan: push
hl ;________________________________
push
de ;* Simpan semua status register *
push
af ;________________________________
push
bc

;
in
a, (PPIB)
cp
80h
jr
nz,s10
ld
de,013fh
jp
timer
;
S10:
cp
40h
jr
nz,s20
ld
de,023fh
jp
timer
;
S20:
cp
20h
jr
nz,s30
ld
de,033fh
jp
timer
;
S30:
cp
10h
jr
nz,s40
ld
de,043fh
jp
timer
;
S40:
cp
08h
jr
nz,s50
ld
de,053fh
jp
timer
;
S50:
cp
04h
jr
nz,s60
ld
de,063fh
jp
timer
;
S60:
cp
02h
jr
nz,s70
ld
de,073fh
jp
timer
;
S70:
cp
01h
jr
nz,s80
ld
de,083fh
jp
timer
;
S80:
ld
d,h
;Pemberian nilai parameter
Ld
e,l
;pada timer
************************* rutin timer ************************
timer:
ld
h,d
ld
l,e
t10:
ld
b,0ffh
u1:
djnz
u1

ret
;
data1: defb
defb
defb
defb
defb
defb
defb
defb
defb
defb
defb
defb
defb
defb
defb
defb
defb
defb
defb
defb
defb
defb
defb
defb
defb
defb
defb
defb
defb
defb
defb
defb
defb
defb
defb
defb
defb
defb
defb
defb

dec
d
jr
nz,t10
;
pop
bc
pop
af
;________________________________
pop
de
;_ Return semua status register _
pop
hl
;________________________________
;******** end of rutin timer & scanning *********
10000000B
11000000B
11100000B
11110000B
01111000B
00111100B
00011110B
00001111B
00000111B
00000011B
00000001B
00000011B
00000111B
00001111B
00011110B
00111100B
01111000B
11110000B
11100000B
11000000B
10000000B
11000000B
11100000B
11110000B
11111000B
11111100B
11111110B
11111111B
01111111B
00111111B
00011111B
00001111B
00000111B
00000011B
00000001B
00000001B
00000010B
00000100B
00001000B
00010000B

;1
;2
;3
;4
;5
;6
;7
;8
;9
;10
;11
;12
;13
;14
;15
;16
;17
;18
;19
;20
;21
;22
;23
;24
;25
;26
;27
;28
;29
;30
;31
;32
;33
;34
;35
;36
;37
;38
;39
;40

defb
defb
defb
defb
defb
defb
defb
defb
defb
defb
defb
defb
defb
defb
defb
defb
defb
defb
defb
defb
defb
defb
defb
defb
defb
defb
defb
defb
defb
defb
defb
defb
defb
defb
defb
defb
defb
defb

00100000B
01000000B
10000000B
10000001B
10000010B
10000100B
10001000B
10010000B
10100000B
11000000B
11000001B
11000010B
11000100B
11001000B
11010000B
11100000B
11100001B
11100010B
11100100B
11101000B
11110000B
11110001B
11110010B
11110100B
11111000B
11111001B
11111010B
11111100B
11111101B
11111110B
11111111B
01111111B
00111111B
00011111B
00001111B
00000111B
00000011B
00000001B

;41
;42
;43
;44
;45
;46
;47
;48
;49
;50
;51
;52
;53
;54
;55
;56
;57
;58
;59
;60
;61
;62
;63
;64
;65
;66
;67
;68
;69
;70
;71
;72
;73
;74
;75
;76
;77
;78

;
;*********************** end of datas ************************

PROSEDUR:
1. Ketiklah program diatas dengan text editor M.EXE (atau yang lain) di
computer IBM PC. Simpanlah dengan nama DIGIT-06.AS
2. Bila selesai dan telah disimpan, lakukan kompilasi dengan
menggunakan ZAS.EXE dengan cara sebagai berikut:
ZAS DIGIT-06.AS
<cr>
Proses kompilasi diatas, kalau benar akan menghasilkan file DIGIT-06.OBJ

3. Berikutnya lakukan konversi object file ini kedalam hexadecimal file


dengan cara sebagai berikut
OBJTOHEX DIGIT-06.OBJ DIGIT-06.HEC
<cr>
4. Kirimkan file heksa ini ke EPROM PROGRAMMER. (Langkah ini akan
ditunjukan oleh asisten/instruktur)
5. Siapkan sebuah EPROM 2764 yang sudah dalam keadaan kosong. Bila
belum kosong, lakukan penghapusan program dengan menggunakan
EPROM eraser. Programkan file ini kedalam EPROM. Bila berhasil ujilah
EPROM ini di modul FZ80 yang sudah terangkai lengkap.
6. Pengujian dilakukan dengan menekan tombol
mulai running.

di FZ80IF untuk