⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 keyread.txt

📁 在Keil里面编写的可以运行于80C51单片机上的计算器程序。可以实现简单的加减乘除运算。
💻 TXT
字号:
      ORG   0000H
      AJMP  START    
      ORG   0030H
START:
	ACALL	KEYREAD
	MOV	B,NEW_KEY
;	ACALL	DISPLAY
	AJMP START



NEW_KEY	EQU	22H
OLD_KEY	EQU	23H
KEYREAD:
	CLR	PSW.5
KEY_AGAIN:
	ACALL	KEY_INPUT
	JNB	PSW.5,	KEY_OVER
	ACALL	KEY_DELAY
	ACALL	KEY_INPUT
	JNB	PSW.5,	KEY_OVER
	MOV	A,	NEW_KEY
	CJNE	A,	OLD_KEY,	KEY_OVER
UPKEY:
	ACALL	KEY_INPUT
	JB	PSW.5,	UPKEY
	ACALL	KEY_INPUT
	JB	PSW.5,	UPKEY
;
	MOV	R0,NEW_KEY
	RET
KEY_INPUT:
      MOV  A,    #00H		;显示0
      MOV   DPTR, #9000H
      MOVX  @DPTR, A	;ZIXING
      ;上面为清除显示
	CLR	F0
	MOV	R1,	#00H
	MOV	R2,	#04H
	MOV	R3,	#01H
KEY_LOOP:
	MOV	A,	R3
	MOV	DPTR,	#8000H
	MOVX	@DPTR,	A
	MOVX	A,	@DPTR

	MOV	R4,	#04H
KEY_LOOP1:
	RRC	A
	JNC	NEXT_KEY
	MOV	OLD_KEY,NEW_KEY
	MOV	A,	R1
	MOV   DPTR, #KEY_TABLE_BCD
	MOVC  A,    @A+DPTR
	MOV	NEW_KEY,	A
	SETB	F0
	AJMP	KEY_OVER_OK
NEXT_KEY:
	INC	R1
	DJNZ	R4,KEY_LOOP1
	MOV	A,	R3
	RL	A
	MOV	R3,	A
	DJNZ	R2,	KEY_LOOP
	AJMP	KEY_OVER_OK
KEY_OVER:
	MOV	22H,#80H
KEY_OVER_OK:
	RET

KEY_DELAY:
	MOV	R0,	#0FFH
	DJNZ	R0,$			
	RET

KEY_TABLE_BCD:
      DB  	07H,08H,09H,10H
      DB	04H,05H,06H,11H
      DB	01H,02H,03H,12H
      DB	00H,20H,40H,13H    

      
      END
    

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -