Anda di halaman 1dari 12

L A P O R A N S E M E N T A R A

SISTEM MIKROPROSESOR
PERAGA 7-SEGMENT PADA AT89S51

DISUSUN OLEH:
IAN SINAMBELA
1805062030
TK-4D

PRODI TEKNIK TELEKOMUNIKASI


JURUSAN TEKNIK ELEKTRO
POLITEKNIK NEGERI MEDAN
2020
MEDAN
TUGAS :
1. Ubah data segment sehingga tampilannya adalah “ HorAS-“
JAWABAN:

PROGRAM
ORG 00
SJMP START
ORG 30H
START: MOV P0,#00
MOV P2,#00
MOV P0,#40H
CALL DELAY
MOV P0,#00
MOV P2,#01
MOV P0,#6DH
CALL DELAY
MOV P0,#00
MOV P2,#02
MOV P0,#77H

2
CALL DELAY
MOV P0,#00
MOV P2,#03
MOV P0,#50H
CALL DELAY
MOV P0,#00
MOV P2,#04
MOV P0,#5CH
CALL DELAY
MOV P0,#00
MOV P2,#05
MOV P0,#76H
CALL DELAY
MOV P0,#00
SJMP START
DELAY:
MOV R7,#5H
TUNG1: MOV R6,#0FFH
TUNG2: NOP
DJNZ R6,TUNG2
DJNZ R7,TUNG1
RET
END

3
2. Ubah data trace sehingga tampilannya terbalik menjadi “513270”
JAWABAN:

PROGRAM
ORG 00
SJMP START
ORG 30H
START: MOV 30H,#3FH
MOV 31H,#07H
MOV 32H,#5Bh
MOV 33H,#4FH
MOV 34H,#06H
MOV 35H,#6DH
MOV P0,#00 ;Padamkan 7-segment
MOV R0,#30H
MOV DPTR,#0210H
MOV R1,#00
ULANG: MOV P0,#00
MOV A,R1
MOVC A,@A+DPTR

4
MOV P2,A
MOV A,@R0
MOV P0,A
CALL DELAY
INC R1
INC R0
CJNE R0,#36H,ULANG
SJMP START
DELAY:
MOV R7,#5H
TUNG1: MOV R6,#0FFH
TUNG2: NOP
DJNZ R6,TUNG2
DJNZ R7,TUNG1
RET

ORG 210H
DB 00H,01H,02H,03H ;Data Trace
DB 04H, 05H
END
3. Ubah Data trace dan isi memori display sehingga tampilan pada peraga adalah”PoltEc”
JAWABAN:

5
PROGRAM
ORG 00
SJMP START
ORG 30H
START: MOV 30H,#58H ;Isikan memori display
MOV 31H,#79H ; dengan nilai segement
MOV 32H,#78h ; dari yang akan ditampilkan
MOV 33H,#30H
MOV 34H,#5CH
MOV 35H,#73H
MOV P0,#00 ;Padamkan 7-segment
MOV R0,#30H ;Tandai memori display
MOV DPTR,#0210H ; Set alamat Data Trace
MOV R1,#00
ULANG: MOV P0,#00 ;Padamkan 7-Segment
MOV A,R1
MOVC A,@A+DPTR;Ambil Data Trace

6
MOV P2,A ;Berikan ke port 74LS138
MOV A,@R0 ;Ambil isi memori display
MOV P0,A ;Keluarkan ke 7-segment
CALL DELAY ;Delay sesaat
INC R1 ;Naikkan alamat data trace
INC R0 ;Naikkan alamat memori display
CJNE R0,#36H,ULANG; Periksa apakah telah maksimum
SJMP START ;jika sudah maksimum ulangi ke awal
DELAY:
MOV R7,#5H
TUNG1: MOV R6,#0FFH
TUNG2: NOP
DJNZ R6,TUNG2
DJNZ R7,TUNG1
RET

ORG 210H
DB 00H,01H,02H,03H ;Data Trace
DB 04H, 05H
END

4. Ubah tampilan peraga 7-segment 072315 menjadi 346789


JAWABAN:

7
ORG 00
SJMP START

ORG 30H
START: CALL CLEAR_DISP
ULANG: MOV R0,#30H
MOV A,#89H
CALL SEGMENT
MOV R0,#32H
MOV A,#67H
CALL SEGMENT
MOV R0,#34H
MOV A,#34H
CALL SEGMENT
MOV R5,#0FFH
UL_TAMPIL: CALL OUT_DIS
DJNZ R5,UL_TAMPIL
SJMP ULANG

SEGMENT: MOV DPTR,#200H


MOV R1,A
ANL A,#0FH ;Ambil Low-Niblle
MOVC A,@A+DPTR;Ubah ke nilai Segment
MOV @R0,A ;Simpan ke buffer display
MOV A,R1 ;Ambil kenbali data waktu
RR A ;Geser 4 kali ke kanan sehingga
RR A ;High niblle ke low nibble
RR A
RR A
ANL A,#0FH ;Ambil Low-Niblle

8
MOVC A,@A+DPTR;Ubah ke nilai Segment
INC R0 ;Naikkan alamat buffer display
MOV @R0,A ;Simpan ke buffer display
RET

OUT_DIS: MOV R0,#30H ;set alamat awal buffer


MOV DPTR,#220H ;Set alamat awal data Trace
UL_DISP: MOV P0,#00 ;Clear display
CLR A ;Ambil data trace
NOP
MOVC A,@A+DPTR
MOV P2,A ;Berkan ke Tr
MOV A,@R0 ;Ambil data
MOV P0,A ;Tampilkan ke 7-segment
MOV 27H,#05 ;Delay sesat
DJNZ 27H,$
INC DPTR ;Naikkan alamat data trace
INC R0 ;Naikkan alamat buffer display
CJNE R0,#36H,UL_DISP ;Ulangi jika alamat data bukan
terakhir
MOV P0,#00 ;Padamkan 7-segment
RET

CLEAR_DISP:MOV R0,#30H
UL_kOSONG:MOV A,#00
MOV @R0,A
INC R0
CJNE R0,#34H,UL_kOSONG
RET

ORG 200H
DB 3FH,06H,5BH,4FH ; 0;1;2;3
DB 66H,6DH,7DH,07H ; 4;5;6;7
DB 7FH,67H,77H,7CH ; 8;9;A;B
DB 39H,5EH,79H,75H ; C;D;E;F

ORG 220H
DB 00H,01H,02H,03H ;Data Trace
DB 04H, 05H
END
5. Ubah program utama sehingga hanya menampilkan 1 3 - - 6 7 (digit 2 dan 3 kosong)
JAWABAN:

9
PROGRAM
ORG 00
SJMP START

ORG 30H
START: CALL CLEAR_DISP
ULANG: MOV R0,#30H
MOV A,#67H
CALL SEGMENT

MOV R0,#34H
MOV A,#13H
CALL SEGMENT
MOV R5,#0FFH
UL_TAMPIL: CALL OUT_DIS
DJNZ R5,UL_TAMPIL
SJMP ULANG

SEGMENT: MOV DPTR,#200H


MOV R1,A
ANL A,#0FH ;Ambil Low-Niblle
MOVC A,@A+DPTR;Ubah ke nilai Segment
MOV @R0,A ;Simpan ke buffer display
MOV A,R1 ;Ambil kenbali data waktu
RR A ;Geser 4 kali ke kanan sehingga
RR A ;High niblle ke low nibble
RR A
RR A
ANL A,#0FH ;Ambil Low-Niblle
MOVC A,@A+DPTR;Ubah ke nilai Segment
INC R0 ;Naikkan alamat buffer display

10
MOV @R0,A ;Simpan ke buffer display
RET

OUT_DIS: MOV R0,#30H ;set alamat awal buffer


MOV DPTR,#220H ;Set alamat awal data Trace
UL_DISP: MOV P0,#00 ;Clear display
CLR A ;Ambil data trace
NOP
MOVC A,@A+DPTR
MOV P2,A ;Berkan ke Tr
MOV A,@R0 ;Ambil data
MOV P0,A ;Tampilkan ke 7-segment
MOV 27H,#05 ;Delay sesat
DJNZ 27H,$
INC DPTR ;Naikkan alamat data trace
INC R0 ;Naikkan alamat buffer display
CJNE R0,#36H,UL_DISP ;Ulangi jika alamat data bukan
terakhir
MOV P0,#00 ;Padamkan 7-segment
RET

CLEAR_DISP:MOV R0,#30H
UL_kOSONG:MOV A,#00
MOV @R0,A
INC R0
CJNE R0,#34H,UL_kOSONG
RET

ORG 200H
DB 3FH,06H,5BH,4FH ; 0;1;2;3
DB 66H,6DH,7DH,07H ; 4;5;6;7
DB 7FH,67H,77H,7CH ; 8;9;A;B
DB 39H,5EH,79H,75H ; C;D;E;F

6. Ubah tampilan peraga 7-segment “SAYA”

11
JAWABAN :

PROGRAM :

ORG 00
SJMP START

ORG 30H
START: MOV P2,#0FH ; Padamkan semua 7-segment
MOV P0,#00H
MOV P2,#80H
MOV P0,#77H
MOV P2,#00H
MOV P0,#6EH
MOV P2,#40H
MOV P2,#00H
MOV P0,#77H
MOV P2,#20H
MOV P2,#00H
MOV P0,#6DH
MOV P2,#10H
SJMP $
END
7.

12

Anda mungkin juga menyukai