Review project lama, deep coding program assembly yang kemudian didownloadkan ke mikrokontroler 8051 untuk menampilkan angka 0 sampai 9 menggunakan seven segmen.

Contoh Program Assembly Display 7 Segmen 0 - 9
Source Code 1:
$MOD51 ; This includes 8051 definitions for the Metalink assembler
; Please insert your code here.
;- BAB3_06.ASM -------------------------------------------------------------------
;
; Menghidupkan display LED 7 segment untuk menampilkan angka 0 s/d 9
; cara 1 : data langsung dikeluarkan ke port yang bersangkutan (Port 0)
; author : bundet.com
;---------------------------------------------------------------------------------
Mulai:
Mov P0,#0C0h ; keluarkan kode angka 0 Port 0
Acall Delay ; lakukan penundaan sesaat...
Mov P0,#0F9h ; keluarkan kode angka 1 Port 0
Acall Delay ; lakukan penundaan sesaat...
Mov P0,#0A4h ; keluarkan kode angka 2 Port 0
Acall Delay
Mov P0,#0B0h ; keluarkan kode angka 3 Port 0
Acall Delay
Mov P0,#99h ; keluarkan kode angka 4 Port 0
Acall Delay
Mov P0,#92h ; keluarkan kode angka 5 Port 0
Acall Delay
Mov P0,#82h ; keluarkan kode angka 6 Port 0
Acall Delay
Mov P0,#0F8h ; keluarkan kode angka 7 Port 0
Acall Delay
Mov P0,#80h ; keluarkan kode angka 8 Port 0
Acall Delay
Mov P0,#90h ; keluarkan kode angka 9 Port 0
Acall Delay
Sjmp Mulai ; ulangi lagi dari awal
;
;-subrutin DELAY------------------------------------------------------------------
;
; subrutin ini hanya sekedar melakukan penundaan sesaat dengan cara
; mengulangi proses (pengurangan isi register) hingga dicapai suatu
; kondisi tertentu
;
;---------------------------------------------------------------------------------
Delay: Mov R0,#2h ; Isi Register R0 dengan 2 (2x ulang)
Delay1: Mov R1,#2h ; Isi Register R1 dengan FF (25x ulang)
Delay2: Mov R2,#0 ; Isi register R2 dengan 0 (26x ulang)
Djnz R2,$
Djnz R1,Delay2
Djnz R0,Delay1
Ret
END
Source Code 2:
$MOD51 ; This includes 8051 definitions for the Metalink assembler
; Please insert your code here.
;- BAB3_07.ASM -------------------------------------------------------------------
;
; Menghidupkan display LED 7 segment untuk menampilkan angka 0 s/d 9
; cara 2 : data diambil dari alamat larik (array) data, program jadi lebih pendek
; author : bundet.com
;---------------------------------------------------------------------------------
Mulai:
Mov R2,#0Ah ; jumlah angka numerik yg akan ditampilkan
Mov DPTR,#Numerik ; register DPTR menunjuk pada lokasi awal data
Nextdata:
Clr A ; persiapkan akumulator
Movc A,@A+DPTR ; salin isi lokasi yg ditunjuk A+DPTR ke A
Mov P0,A ; keluarkan data A ke port 0
Inc DPTR ; ke lokasi data berikutnya
Acall Delay ; lakukan penundaan sesaat...
Djnz R2,Nextdata ; R2=R2-1, jika R2 <> 0 ulangi lagi
Sjmp Mulai ; ulangi lagi dari awal...
;
;-subrutin DELAY------------------------------------------------------------------
;
; subrutin ini hanya sekedar melakukan penundaan sesaat dengan cara
; mengulangi proses (pengurangan isi register) hingga dicapai suatu
; kondisi tertentu
;
;---------------------------------------------------------------------------------
Delay: Mov R0,#2h ; Isi Register R0 dengan 2 (2x ulang)
Delay1: Mov R1,#1h ; Isi Register R1 dengan FF (15x ulang)
Delay2: Mov R2,#0 ; Isi register R2 dengan 0 (15x ulang)
Djnz R2,$
Djnz R1,Delay2
Djnz R0,Delay1
Ret
;
;---------------------------------------------------------------------------------
; Lokasi larik data
; berisi kode-kode untuk menghidupkan 7-segmen: angka 0 s/d 9 secara berturutan
;---------------------------------------------------------------------------------
Numerik:
DB 0C0h,0F9h,0A4h,0B0h,99h,92h,82h,0F8h,80h,90h
END
Demo:
https://youtu.be/ytPzZnJ5Mf8
Anda tidak perlu khawatir tentang bagaimana caranya membuat schematic di atas, karena saya cukup baik hati, sehingga hal semacam itu sudah saya persiapkan. Saya memfasilitasinya dengan link download di bawah ini. Oke, semoga bermanfaat, silakan bereksperimen di rumah atau di kelas, dan selamat belajar! DOWNLOAD SCHEMATIC (102KB)