n久前的51单片机4*4键盘加4数码管显示汇编程序

KEYBUF	EQU	30H
DISPBUF	EQU	31H
DISPBIT	EQU	35H

COLKEY:
	MOV	P1,#0F0H
	MOV	A,P1
	ANL	A,#0F0H
	XRL	A,#0F0H
	JZ	NOKEY
	LCALL	DELAY
	MOV	A,P1
	ANL	A,#0F0H
	XRL	A,#0F0H
	JZ	NOKEY
	MOV	A,P1
	ANL	A,#0F0H
	CJNE	A,#070H,NCK1
	MOV	KEYBUF,#0
	AJMP	ROWKEY
NCK1:	CJNE	A,#0B0H,NCK2
	MOV	KEYBUF,#1
	AJMP	ROWKEY
NCK2:	CJNE	A,#0D0H,NCK3
	MOV	KEYBUF,#2
	AJMP	ROWKEY
NCK3:	CJNE	A,#0E0H,NCK4
	MOV	KEYBUF,#3
	AJMP	ROWKEY
NCK4:	NOP
ROWKEY:	
	MOV	P1,#0FH
	MOV	A,P1
	ANL	A,#0FH
	MOV	R1,A
	MOV	A,KEYBUF
	CJNE	R1,#0EH,NRK1
	ADD	A,#0
	AJMP	DK
NRK1:	CJNE	R1,#0DH,NRK2
	ADD	A,#4
	AJMP	DK
NRK2:	CJNE	R1,#0BH,NRK3
	ADD	A,#8
	AJMP	DK
NRK3:	CJNE	R1,#07H,NRK3
	ADD	A,#12
	AJMP	DK
NRK4:	NOP
DK:
	MOV	KEYBUF,A
LOOP:
	MOV	A,P1
	ANL	A,#0FH
	XRL	A,#0FH
	JZ	NOKEY
	LCALL	VALUE
	LCALL	DISP
	LJMP	LOOP
NOKEY:
	LCALL	VALUE
	LCALL	DISP
	LJMP	COLKEY			


DELAY:	MOV	R5,#5
D1:	MOV	R6,#248
	DJNZ	R6,$
	DJNZ	R5,D1
	RET

VALUE:
	MOV	A,KEYBUF
	MOV	B,#10
	DIV	AB
	MOV	DISPBUF,A
	MOV	A,B
	MOV	DISPBUF+1,A
	MOV	A,#16
	MOV	DISPBUF+2,A
	MOV	A,KEYBUF
	MOV	DISPBUF+3,A
	RET

DISP:
	MOV	A,#DISPBUF
	ADD	A,DISPBIT
	MOV	R0,A
	MOV	A,@R0
	MOV	DPTR,#TABLE
	MOVC	A,@A+DPTR
	MOV	P3,#0FFH	;消影
	MOV	P2,A
	MOV	A,DISPBIT
	MOV	DPTR,#TAB
	MOVC	A,@A+DPTR
	MOV	P3,A
	INC	DISPBIT
	MOV	A,DISPBIT
	CJNE	A,#04H,DISP
	MOV	DISPBIT,#00H	
	RET

TABLE:	DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H,40H
TAB:	DB 0FEH,0FDH,0FBH,0F7H	
END		

效果:


  • 9
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值