	org	0h
	jmp	start
start:	mov	sp,#5fh
	mov	dptr,#table
	mov	a,#00000001b	;測7段，一開始為8
	mov	p0,a		;p0接7段，a段接p0.7,應全亮
	jmp	skey
skey:	mov	r0,#4h		;4條鍵盤掃瞄
	mov	r1,#11111110b	;r1為掃瞄位置
rein:	mov	a,r1
	rr	a	;01111111(高位元碼)->10111111->11011111->11101111(高位元碼)
	mov	r1,a
	mov 	p1,a	;keybord的位置p1：CDEF接P1.7,89AB接P1.6
	mov	a,p1
	mov	r2,a
	xrl	a,r1	;互斥或，若相等=0代表未按鍵
	jz	next
	call	iskey
next:	djnz	r0,rein
	jmp	skey
iskey:  
next1:	cjne	r2,#11101110b,ne1
	mov	r3,#0
	jmp 	disp
ne1:	cjne	r2,#11101101b,ne2
	mov	r3,#1
	jmp 	disp
ne2:	cjne	r2,#11101011b,ne3
	mov	r3,#2	
	jmp 	disp
ne3:	cjne	r2,#11100111b,ne4
	mov	r3,#3
	jmp 	disp
ne4:	cjne	r2,#11011110b,ne5
	mov	r3,#4
	jmp 	disp
ne5:	cjne	r2,#11011101b,ne6
	mov	r3,#5
	jmp 	disp
ne6:	cjne	r2,#11011011b,ne7
	mov	r3,#6
	jmp 	disp
ne7:	cjne	r2,#11010111b,ne8
	mov	r3,#7
	jmp 	disp
ne8:	cjne	r2,#10111110b,ne9
	mov	r3,#8
	jmp 	disp
ne9:	cjne	r2,#10111101b,ne10
	mov	r3,#9
	jmp 	disp
ne10:	cjne	r2,#10111011b,ne11
	mov	r3,#10	
	jmp 	disp
ne11:	cjne	r2,#10110111b,ne12
	mov	r3,#11
	jmp 	disp
ne12:	cjne	r2,#01111110b,ne13
	mov	r3,#12
	jmp 	disp
ne13:	cjne	r2,#01111101b,ne14
	mov	r3,#13
	jmp 	disp
ne14:	cjne	r2,#01111011b,ne15
	mov	r3,#14
	jmp 	disp
ne15:	cjne	r2,#01110111b,disp
	mov	r3,#15
disp:	mov	a,r3
	movc	a,@a+dptr
	mov	p0,a
	ret



table:	db	00000011b   	;0
	db	10011111b	;1
	db	00100101b	;2
	db	00001101b	;3
	db	10011001b	;4
	db	01001001b	;5
	db	01000001b	;6
	db	00011011b	;7
	db	00000001b	;8
	db	00001001b	;9
	db	00010001b	;A	
	db	11000001b	;B
	db	01100011b	;c
	db	10000101b	;d
	db	01100001b	;e
	db	01110001b	;f
	end

