tugas keypad

3
 Nama : Pradita Ajeng Wiguna NIM : 4211412011 Tugas : Mikrokontroler Keypad 4x3 untuk Menghandle Display 7 Segment Script Program EDSIM 51 ;PRADITA AJENG WIGUNA ;4211412011 org 0h MOV DPTR, #LUT ; pindahkan data dari LUT ke DPTR MOV A, #11111111B ; pindahkan data #11111111B ke Akumulator CLR P3.4 ; | Handle Display 7 segment D0 CLR P3.3 ; | Handle Display 7 segment D0  BACK: MOV P0, #11111111B ; pindahkan data 11111111b ke P0 CLR P0.0 ; Scan baris 1 low  JB P0.4, NEXT1 ; Cek apakah kolom 1 berlogika LOW dan lompatlah ke NEXT1 jika tidak LOW MOV A, #1 ; isi dengan data 1 jika kolom berlogika LOW (itu artinya tombol # di tekan) Tombol # tampil angka 1 ACALL DISPLAY ; acall DISPLAY subroutine  NEXT1: JB P0.5, NEXT2 ; cek apakah kolom 2 berlogika LOW d an lompatlah ke NEXT2 jika tidak LOW MOV A, #0 ;Tombol 0 ditekan tampil angka 0 ACALL DISPLAY NEXT2: JB P0.6, NEXT4 MOV A, #00000010B ;Tombol * ditekan tampil angka 2 ACALL DISPLAY NEXT4: SETB P0.0 CLR P0.1 ; Scan baris 2 low JB P0.4, NEXT5 MOV A, #00001001B ;Tombol 9 ditekan tampil angka 9  ACALL DISPLAY NEXT5: JB P0.5, NEXT6

Upload: praadiitaa

Post on 04-Nov-2015

21 views

Category:

Documents


2 download

DESCRIPTION

mikrokontroler keypad matrix 3 x 4

TRANSCRIPT

  • Nama : Pradita Ajeng Wiguna

    NIM : 4211412011

    Tugas : Mikrokontroler

    Keypad 4x3 untuk Menghandle Display 7 Segment

    Script Program EDSIM 51

    ;PRADITA AJENG WIGUNA

    ;4211412011

    org 0h

    MOV DPTR, #LUT ; pindahkan data dari LUT ke DPTR

    MOV A, #11111111B ; pindahkan data #11111111B ke Akumulator

    CLR P3.4 ; | Handle Display 7 segment D0

    CLR P3.3 ; | Handle Display 7 segment D0

    BACK: MOV P0, #11111111B ; pindahkan data 11111111b ke P0

    CLR P0.0 ; Scan baris 1 low

    JB P0.4, NEXT1 ; Cek apakah kolom 1 berlogika LOW dan lompatlah ke NEXT1 jika tidak LOW

    MOV A, #1 ; isi dengan data 1 jika kolom berlogika LOW (itu artinya tombol # di tekan) Tombol # tampil angka 1

    ACALL DISPLAY ; acall DISPLAY subroutine

    NEXT1: JB P0.5, NEXT2 ; cek apakah kolom 2 berlogika LOW dan lompatlah ke NEXT2 jika tidak LOW

    MOV A, #0 ;Tombol 0 ditekan tampil angka 0

    ACALL DISPLAY

    NEXT2: JB P0.6, NEXT4

    MOV A, #00000010B ;Tombol * ditekan tampil angka 2

    ACALL DISPLAY

    NEXT4: SETB P0.0

    CLR P0.1 ; Scan baris 2 low

    JB P0.4, NEXT5

    MOV A, #00001001B ;Tombol 9 ditekan tampil angka 9

    ACALL DISPLAY

    NEXT5: JB P0.5, NEXT6

  • MOV A, #00001000B ;Tombol 8 ditekan tampil angka 8

    ACALL DISPLAY

    NEXT6: JB P0.6, NEXT8

    MOV A, #00000111B ;Tombol 7 ditekan tampil angka 7

    ACALL DISPLAY

    NEXT8: SETB P0.1

    CLR P0.2 ;Scan baris 3 low

    JB P0.4, NEXT9

    MOV A, #00000110B ;Tombol 6 ditekan tampil angka 6

    ACALL DISPLAY

    NEXT9: JB P0.5, NEXT10

    MOV A, #00000101B ;Tombol 5 ditekan tampil angka 5

    ACALL DISPLAY

    NEXT10: JB P0.6, NEXT12

    MOV A, #0000100B ;Tombol 4 ditekan tampil angka 4

    ACALL DISPLAY

    NEXT12:SETB P0.2

    CLR P0.3 ;Scan row 4 low

    JB P0.4, NEXT13

    MOV A, #00000011B ;Tombol 3 ditekan tampil angka 3

    ACALL DISPLAY

    NEXT13: JB P0.5, NEXT14

    MOV A, #00000010B ;Tombol 2 ditekan tampil angka 2

    ACALL DISPLAY

    NEXT14: JB P0.6, BACK

    MOV A, #0000001B ;Tombol 1 ditekan tampil angka 1

    ACALL DISPLAY

    LJMP BACK

    DISPLAY: MOVC A,@A+DPTR

    MOV P1, A

    RET

    LUT: DB 11000000B

  • DB 11111001B

    DB 10100100B

    DB 10110000B

    DB 10011001B

    DB 10010010B

    DB 10000010B

    DB 11111000B

    DB 10000000B

    DB 10010000B

    END

    Contoh Tampilan Program (Keypad 5 ditekan)