 DSEG
 

; $include (equdst52.asm)

 CSEG
 Org ROM   ;Reset Vector
 Ajmp Start   ;
 Org ROM+3H   ;External Interrupt 0 Vector
 Reti

 Org ROM+0BH   ;Timer 0 Interrupt Vector
 Reti
 Org ROM+13H   ;External Interrupt 1 Vector
 Reti    ;
 Org ROM+1BH   ;Timer 1 Interrupt Vector
  Reti    ;
 Org ROM+23H   ;Serial Interrupt Vector
 Reti    ;
Start:
 Lcall Init_LCD
Loop:
 Acall Keypad
 Acall KeypadASCII
 Lcall Serial_Out
 Lcall  Kirim_Karakter
 Lcall  Posisi_Awal
 Lcall  Belumdilepas
 Ajmp Loop

Keypad:
 Mov A,#10111111b
 Push ACC
 Mov P1,A
 Mov R7,A
 Mov A,P1
 Anl A,#10101011b
 Mov R6,A
 Cjne A,#10101011b,Ditekan
 Pop ACC

 Mov A,#11101111b
 Push ACC
 Mov P1,A
 Mov R7,A
 Mov A,P1
 Anl A,#10101011b
 Mov R6,A
 Cjne A,#10101011b,Ditekan
 Pop ACC

 Mov A,#11111011b
 Push ACC
 Mov P1,A
 Mov R7,A
 Mov A,P1
 Anl A,#10101011b
 Mov R6,A
 Cjne A,#10101011b,Ditekan
 Pop ACC
 Ajmp Keypad



Ditekan:
 Pop ACC

BelumDilepas:
 Mov A,P1
 Anl A,#10101011b
 Cjne A,#10101011b,BelumDilepas
 Ret

KeypadASCII:
 Cjne R7,#0EFH,BukanKolom1 
;*******************
; '1', '4', '7', '*'
;*******************
 Cjne R6,#8BH,BukanTombol1
 Mov A,#'1'
 Ajmp KeypadBenar 

BukanTombol1:
 Cjne R6,#0AAH,BukanTombol4
 Mov A,#'4'
 Ajmp KeypadBenar

BukanTombol4:
 Cjne R6,#0A9H,BukanTombol7
 Mov A,#'7'
 Ajmp KeypadBenar

BukanTombol7:
 Cjne R6,#0A3H,SalahTekan
 Mov A,#'*'
 Ajmp KeypadBenar

BukanKolom1:
 Cjne R7,#0BFH,BukanKolom2

;*******************
; '2', '5', '8', '0'
;*******************
 Cjne R6,#8BH,BukanTombol2
 Mov A,#'2'
 Ajmp KeypadBenar

BukanTombol2:
 Cjne R6,#0AAH,BukanTombol5
 Mov A,#'5'
 Ajmp KeypadBenar

BukanTombol5:
 Cjne R6,#0A9H,BukanTombol8
 Mov A,#'8'
 Ajmp KeypadBenar

BukanTombol8:
 Cjne R6,#0A3H,SalahTekan
 Mov A,#'0'
 Ajmp KeypadBenar



BukanKolom2:
 Cjne R7,#0FBH,SalahTekan
;*******************
; '3', '6', '9', '#'
;*******************
 Cjne R6,#8BH,BukanTombol3
 Mov A,#'3'
 Ajmp KeypadBenar

BukanTombol3:
 Cjne R6,#0AAH,BukanTombol6
 Mov A,#'6'
 Ajmp KeypadBenar

BukanTombol6:
 Cjne R6,#0A9H,BukanTombol9
 Mov A,#'9'
 Ajmp KeypadBenar

BukanTombol9:
 Cjne R6,#0A3H,SalahTekan
 Mov A,#'#'
 Ajmp KeypadBenar


KeypadBenar:
 Clr C
 Ret

SalahTekan:
 Setb C
 Ret

    End