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

📄 klock.a51

📁 gsm based sms using microntroller. contains some important subroutine were i was tested.
💻 A51
字号:

 KEYS	EQU	P1

ROW1	EQU	P1.4
ROW2	EQU	P1.3
ROW3	EQU	P1.2
ROW4	EQU	P1.1
COL1	EQU	P1.7
COL2	EQU	P1.6
COL3	EQU	P1.5

L1		EQU	P3.1	;3.7
L2		EQU	P3.0

ALRM	EQU	P3.4


dseg
ORG 20H

KEY:	DS	1
N1:	DS	1
N2:	DS	1
N3:	DS	1
N4:	DS	1
COUNT:	DS	1
CSEG

ORG 0000H

		CLR L1
		CLR L2
		CLR ALRM
		MOV R3,#01H
		MOV COUNT,#00H

KEYBOARD:
	MOV KEY,#00H	
	SETB COL1
	SETB COL2
	SETB COL3
K11:	CLR ROW1
	CLR ROW2
	CLR ROW3
	CLR ROW4
	MOV A,KEYS
	ANL A,#11100000B
	CJNE A,#11100000B,K11		;check till all keys released
K2:	ACALL DEALAY            	;call 20 msec delay
	MOV A,KEYS			;see if any key is pressed
	ANL A,#11100000B		;mask unused bits
	CJNE A,#11100000B,OVER		;key pressed, await closure
	SJMP K2
OVER:	ACALL DEALAY
	MOV A,KEYS
	ANL A,#11100000B
	CJNE A,#11100000B,OVER1
	SJMP K2
OVER1:	MOV A,KEYS
	ORL A,#11111110B
	MOV KEYS,A
	CLR ROW1
	MOV A,KEYS
	ANL A,#11100000B
	CJNE A,#11100000B,ROW_1
	MOV A,KEYS
	ORL A,#11111110B
	MOV KEYS,A
	CLR ROW2
	MOV A,KEYS
	ANL A,#11100000B
	CJNE A,#11100000B,ROW_2
	MOV A,KEYS
	ORL A,#11111110B
	MOV KEYS,A
	CLR ROW3
	MOV A,KEYS
	ANL A,#11100000B
	CJNE A,#11100000B,ROW_3
	MOV A,KEYS
	ORL A,#11111110B
	MOV KEYS,A
	CLR ROW4
	MOV A,KEYS
	ANL A,#11100000B
	CJNE A,#11100000B,ROW_4
	LJMP K2


ROW_1:	RLC A
	JC MAT1
	MOV KEY,#01H
	AJMP K1
MAT1:	RLC A
	JC MAT2
	MOV KEY,#02H
	AJMP K1
MAT2:	RLC A
	JC K1
	MOV KEY,#03H
	AJMP K1

ROW_2:	RLC A
	JC MAT3
	MOV KEY,#04H
	AJMP K1
MAT3:	RLC A
	JC MAT4
	MOV KEY,#05H
	AJMP K1
MAT4:	RLC A
	JC K1
	MOV KEY,#06H
	AJMP K1

ROW_3:	RLC A
	JC MAT5
	MOV KEY,#07H
	AJMP K1
MAT5:	RLC A
	JC MAT6
	MOV KEY,#08H
	AJMP K1
MAT6:	RLC A
	JC K1
	MOV KEY,#09H
	AJMP K1

ROW_4:	RLC A
	JC MAT7
	MOV KEY,#0AH
	MOV COUNT,#00H
	MOV R3,#01H
	AJMP KEYBOARD
MAT7:	RLC A
	JC MAT8	
	MOV KEY,#0BH			;for 0
	AJMP K1
MAT8:	RLC A
	JC K1
	MOV KEY,#0CH

K1:

	
		CJNE R3,#01H,G1
		INC R3
		MOV N1,KEY
		AJMP KEYBOARD
G1:	CJNE R3,#02H,G2
		INC R3
		MOV N2,KEY
		AJMP KEYBOARD
G2:	CJNE R3,#03H,G3
		INC R3
		MOV N3,KEY
		AJMP KEYBOARD
G3:	CJNE R3,#04H,G4
		MOV R3,#01H
		MOV N4,KEY
G4:	
		
	
		MOV A,N1
		SWAP A
		ORL A,N2
		MOV N2,A				;HIGHER DIGITSS IN N2
		MOV A,N3
		SWAP A
		ORL A,N4
		MOV N4,A				;LOWER DISITS IN N4
		
		MOV A,N2
		CJNE A,#12H, BV1
		MOV A,N4
		CJNE A,#79H,BV1
		CPL L1
		CLR ALRM
		MOV COUNT,#00H
		AJMP KEYBOARD
BV1:	MOV A,N2
		CJNE A,#12H, BV2
		MOV A,N4
		CJNE A,#71H,BV2
		CPL L2
		CLR ALRM
		MOV COUNT,#00H
		AJMP KEYBOARD	

BV2:	INC COUNT	
		MOV A,COUNT
		CJNE A,#03H,HH1
		SETB ALRM
		MOV COUNT,#00H	 
HH1:	AJMP KEYBOARD
	

;((((((((((((((((((((((((((((((((
DEALAY:
	MOV R1,#50
REPP2:	NOP
	DJNZ R1,REPP2
	RET
;((((((((((((((((((((((((((((((((	

END

⌨️ 快捷键说明

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