Menghidupkan Sebuah Display 7 Segment Led Dengan Bahasa Assembly.


 Circuit diagram:

Program:
;--------------------------------------------------------------
; Menghidupkan display LED 7 segment
;untuk menampilkan angka 0 s/d 9
;cara 1 : data pribadi dikeluarkan ke port yang bersangkutan
;---------------------------------------------------------------


     Org    0h
Mulai:
      Mov   P0,#22h          ;keluarkan isyarat angka 0 port 0
      Acall  Delay            ;panggil sub routine delay
      Mov    P0,#77h         ;keluarkan isyarat angka 1 port 0
      Acall  Delay            ;panggil sub routine delay
      Mov    P0,#0A4h        ;keluarkan isyarat angka 2 port 0
      Acall Delay            ;panggil sub routine delay
      Mov    P0,#25h         ;keluarkan isyarat angka 3 port 0
      Acall  Delay            ;panggil sub routine delay
      Mov    P0,#71h         ;keluarkan isyarat angka 4 port 0
      Acall  Delay            ;panggil sub routine delay






Mov         P0,#29h         ; keluakan isyarat angka 5 port 0
Acall       Delay           ; Panggil sub routine delay
Mov         P0,#28h         ; Keluarkan isyarat anka 6 port 0
Acall       Delay           ; Panggil sub routine delay
Mov         P0,#67h         ; Keluarkan isyarat anka 7 port 0
Acall       Delay           ; Panggil sub routine delay
Mov         P0,#20h         ; Keluarkan isyarat anka 8 port 0
Acall       Delay           ; Panggil sub routine delay
Mov         P0,#21h         ; Keluarkan isyarat anka 9 port 0
Acall       Delay           ; Panggil sub routine delay
SJMP        Mulai           ;Lompat kealamat dengan label mulai

;-----------------
;Sub routine delay
;-----------------
Delay   :  Mov  R0,#0ffh    ; isi Register R0 dengan FF (Hex)    
Delay1  :  Mov  R1,#0ffh    ; isi Register R1 dengan FF (Hex)    
Delay 2 :  DJNZ R1,Delay    ; Kurangi R1 dengan 1, jika hasil
                            ; belum sama dengan 0, maka lompat
                            ; Ke delay 2
     DJNZ R0,Delay1   ; Kurangi R1 dengan 1, jika hasil
                      ; belum sama dengan 0, maka lompat
                      ; ke delay 1
     RET              ; Kembali ke alamat sesudah perintah
                      ; “Acall Delay”
     END

Program cara 2
;
;menghidupkan display LED 7 segment
;untuk menampilakan angka 0 s/d 9 File name HL5,H51
;Cara 2 : data dambil dari alamat data array
;
      Org   0h
Mulai:
      Mov   R2,#10                  ; Jumlah angka numerik
      Mov   DPTR,#Numerik           ;
Next data:
      clr   A
      Movc  A,@A+DPTR
      Mov   P0,A                    ; Keluarkan data A ke
; port 0
inc   DPTR
      Acall Delay                   ; Panggil sub routine
; Delay
      DJNZ  R2,Nextdata             ; kurangi R2 dengan 1,
; jika hasil belum sama ; dengan 0 maka lompat  ; ke nextdata
SJMP mulai                    ; Lompat ke alamat
; dengan label Mulai   
     
;-----------------
;Sub routine delay
;-----------------
Delay :    Mov   R0, #0ffh         ; isi register R0 dengan ff
; (Hex)    
Delay1 :    Mov   R1, #0ffh         ; isi register R1 dengan ff
; (Hex)    
Delay2 :    DJNZ  R2, #Delay        ; kurangi R0 dengan 1, bila
; hasil belum sama dengan 0    ; maka lompat ke Delay1
RET                     ; Kembali ke alamat setelah
; perintah 'Acall Delay'
     
;-----------
;Lokasi data
;-----------
Numerik :
      DB 22h, 77h, 0A4h, 25h, 29h, 67h, 20h, 21h,
      END

Subscribe to receive free email updates:

0 Response to "Menghidupkan Sebuah Display 7 Segment Led Dengan Bahasa Assembly."

Post a Comment