JAM DIGITAL SEDERHANA












 KELOMPOK D4

1. Farhan Maulana Y (3.32.19.3.09)

2. Imam Adi P             (3.32.19.3.12)

3. Listiana Nur'aini   (3.32.19.3.14)

INPUT     : Push button 

OUTPUT : LCD Display

LATAR BELAKANG

Jam digital merupakan perangkat elektronik yang digunakan untuk penunjuk waktu. Ada banyak jenis jam yang dijual dipasaran dari mulai jam yang digital sampai jam analog (jarum). Jam digital sendiri ada beberapa versi juga, mulai yang tampilan nya LCD sampai ada yang berupa seven segment maupun LED sampai ada juga yang projector.
Jam digital lebih kelihatan modern karena tampilan nya yang lebih elektronik. Namun mungkin akan ada nilai lebihnya jika jam digital tersebut kita sendiri yang merakitnya. Tentu nilai seni nya akan lebih daripada kita membeli langsung yang sudah jadi.
Rangkaian jam digital ini berfungsi sebagai alat penunjuk waktu yang dapat digunakan oleh kalayak umum. Maka kami membuat alat ini yakni Jam Digital Sederhana.

POWER POINT (DOWNLOAD PPT)























PROGRAM (ASM & HEX )


;=== Deklarasi variabel ===

  karX    equ       R2 ;menyimpan detik satuan     

  posX    equ       11001010b      

  karY    equ       R3 ;menyimmpan puluhan     

  posY    equ       11001001b      


  karZ    equ       R4 ;menyimmpan menit satuan  

  posZ    equ       11000111b     

  karA    equ       R5 ;menyimmpan menit puluhan

  posA    equ       11000110b     



  karB    equ       R6 ;menyimmpan jam satuan 

  posB    equ       11000100b     

  karC    equ       R7 ;menyimmpan jam puluhan

  posC    equ       11000011b     


  lcd     equ       P0            

  RS      equ       P3.5          

  En      equ       P3.7          


  perda   equ       3Ch           

  jeda    equ       20            


;=== Pengesetan Awal ====

ORG 0

MOV R7 ,#30H ; mengeset jam puluhan pada kondisi jam 0,menit 0,detik 0

MOV R6 ,#30H ; mengeset jam satuan pada kondisi jam 0,menit 0,detik 0

MOV R5 ,#30H ; mengeset menit puluhan pada kondisi jam 0,menit 0,detik 0

MOV R4 ,#30H ; mengeset menit satuan pada kondisi jam 0,menit 0,detik 0 

MOV R3 ,#30H ; mengeset detik puluhan pada kondisi jam 0,menit 0,detik 0

MOV R2 ,#30H ; mengeset detik satuan pada kondisi jam 0,menit 0,detik 0                         

awal:

  CALL    init                      


;=== Program Utama ===

JAM2:

  MOV     perda,#posC ;mengeset possisi jam puluhan pada LCD          

  CALL    tulisPerintah         ;perintah

  MOV     perda,karC ;tampilkan karakter jam puluhan       

  CALL    tulisData             ;data  

JAM1:

  MOV     perda,#posB ;mengeset possisi jam satuan pada LCD          

  CALL    tulisPerintah         ;perintah

  MOV     perda,karB ;tampilkan karakter jam satuan       

  CALL    tulisData             ;data  

MENIT1:

  MOV     perda,#posA ;mengeset possisi menit puluhan pada LCD          

  CALL    tulisPerintah         ;perintah

  MOV     perda,karA ;tampilkan karakter menit puluhan       

  CALL    tulisData             ;data  

MENIT:

  MOV     perda,#posZ ;mengeset possisi menit satuan pada LCD          

  CALL    tulisPerintah         ;perintah

  MOV     perda,karZ ;tampilkan karakter menit satuan       

  CALL    tulisData             ;data 

DETIK1:

  MOV     perda,#posY ;mengeset possisi detik puluhan pada LCD          

  CALL    tulisPerintah         ;perintah

  MOV     perda,karY ;tampilkan karakter detik puluhan       

  CALL    tulisData             ;data 

DETIK :

  MOV     perda,#posX ;mengeset possisi detik satuan pada LCD          

  CALL    tulisPerintah         ;perintah

  MOV     perda,karX ;tampilkan karakter detik satuan    

  CALL    tulisData             ;data 


;-----------------------------------------------------------------------

TAMBAHDET:

JB P2.0,TAMBAHMEN  ;menyeting detik

INC R2  ;menambah detik satuan

JMP DET  ;melompat ke detik

TAMBAHMEN:

JB P2.1,TAMBAHJAM  ;menyeting menit

INC R4  ;menambah menit satuan

JMP PROGRAM ;melompat sesuai program

TAMBAHJAM :

JB P2.2,PROGRAM ;menyeting program

INC R6 ;menambah jam satuan

JMP PROGRAM  ;melompat sesuai program 

           

;-----------------------------------------------------------------------

PROGRAM:

CALL DELAY ;memanggil delay

INC R2  ;menambah detik satuan

DET:

CJNE R2, #3AH,MEN ;membandingkan #30h dengan #3Ah,melompat jika tidak sama

INC R3      ;menambah detik puluhan

MOV R2, #30H  ;mengisi R2 dengan karakter 0

CJNE R3, #36H,MEN  ;membandingkan #30h dengan #36h,melompat jika tidak sama

MOV R3, #30H  ;mengisi R3 dengan karakter 0

INC R4    ;menambah menit satuan


MEN:

CJNE R4,#3AH,JA ;membandingkan #30h dengan #3Ah,melompat jika tidak sama

MOV R4,#30H  ;mengisi R4 dengan karakter 0

INC R5        ;menambah menit puluhan

CJNE R5,#36H,JA    ;membandingkan #30h dengan #36h,melompat jika tidak sama

MOV R5,#30H    ;mengisi R5 dengan karakter 0

INC R6  ;menambah jam satuan


JA:

CJNE R7, #32H,JAM    ;membandingkan #30h dengan #32h,melompat jika tidak sama 

CJNE R6, #34H,JAM    ;membandingkan #30h dengan #34h,melompat jika tidak sama

MOV R6,#30H    ;mengisi R6 dengan karakter 0

MOV R7,#30H    ;mengisi R7 dengan karakter 0

JMP JAM2    ;melompat sesuai program 


JAM:

CJNE R6,#3AH,JAM1    ;membandingkan #30h dengan #34h,melompat jika tidak sama

MOV R6,#30H  ;membandingkan #30h dengan #34h,melompat jika tidak sama

INC R7    ;menambah jam puluhan

JMP JAM2    ;melompat sesuai program 



;=== Sub program ===

;- init: inisialisasi tampilan LCD -------------------------------------

init:

;DB5-Set Fungsi       (001D NFxx) D:8bit N:baris0 F:kecil

  MOV     perda,#00111000b

  CALL    tulisPerintah

;DB3-Kontrol Tampilan (0000 1DCB) D:tampilan nyala C:kursor tidak B:berkedip tidak

  MOV     perda,#00001100b

  CALL    tulisPerintah

;DB0-Hapus Layar      (0000 0001)

  MOV     perda,#00000001b

  CALL    tulisPerintah

;DB2-Mode Entri       (0000 01IS) I:inkremen S:geser tidak

  MOV     perda,#00000110b

  CALL    tulisPerintah

RET                                  ;kembali

;-------------------------------------------------------------------------


;- tulisPerintah/Data: menulis perintah / data ke LCD --------------------

tulisPerintah:

  CLR     RS                            ;RS=0 Perintah

  SJMP    tulisPerda

tulisData:

  SETB    RS                            ;RS=1 Data

tulisPerda:

  MOV     LCD,perda                     ;kirim ke LCD <== perda

  SETB    En                            ;buat pulsa Enable sesaat

  CALL    tunda

  CLR     En

RET                                     ;kembali

;---------------------------------------------------------------------------


;- tunda: penunda waktu ----------------------------------------------------

tunda:                                  ;tunda:

  MOV 71h,#1                          ;nilai awal t1 (sesuai jeda)

tunda1:                                 ; tunda1

  MOV 72h,#100                          ;nilai awal t2

tunda2:                                 ; tunda2:

  MOV 73h,#10                           ;nilai awal t3

tunda3:                                 ;diam

  DJNZ 73h,tunda3                       ;balik ke tunda3

  DJNZ 72h,tunda2                       ;balik ke tunda2

  DJNZ 71h,tunda1                       ;balik ke tunda1

RET                    


DELAY:    

 MOV 74h,#255                        ;nilai awal t1 (sesuai jeda)

tunda4:                                 ; tunda1

  MOV 75h,#100                          ;nilai awal t2

tunda5: 

MOV 76h,#17

DJNZ 76h,$

  DJNZ 75h,tunda5                       ;balik ke tunda2

  DJNZ 74h,tunda4

RET              ;kembali

;----------------------------------------------------------------------------

END                                     ;selesai




VIDEO PRESENTASI DAN SIMULASI 







Subscribe to receive free email updates:

1 Response to "JAM DIGITAL SEDERHANA"

  1. AJO_QQ poker (k)
    kami dari agen poker terpercaya dan terbaik di tahun ini
    Deposit dan Withdraw hanya 15.000 anda sudah dapat bermain
    di sini kami menyediakan 9 permainan dalam 1 aplikasi
    - play aduQ
    - bandar poker
    - play bandarQ
    - capsa sunsun
    - play domino
    - play poker
    - sakong
    -bandar 66
    -perang baccarat (new game )
    Dapatkan Berbagai Bonus Menarik..!! :d
    PROMO MENARIK
    di sini tempat nya Player Vs Player ( 100% No Robot) Anda Menang berapapun Kami
    Bayar tanpa Maksimal Withdraw dan Tidak ada batas maksimal
    withdraw dalam 1 hari.Bisa bermain di Android dan IOS,Sistem pembagian Kartu
    menggunakan teknologi yang mutakhir dengan sistem Random
    Permanent (acak) |
    Whatshapp : +855969190856 ;-)

    BalasHapus