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

📄 开关键盘控制显示.txt

📁 51单片机的显示器及键盘
💻 TXT
字号:
	ORG 0000H
MAIN: MOV SP,#70H
	MOV A,#03H;把控制命令放到a中
	MOV DPTR,#0FF20H;控制命令地址
	MOVX @DPTR,A;把对应的控制命令放到81c55
LOOP2:MOV R1,#0FEH;用于一位作用
	MOV R0,#30H;6个数字所在的首地址
LOOP1:MOV DPTR,#TABLE;将要查的数方到dptr中
	MOV A,@R0;把r0的数放到a中
	MOVC A,@A+DPTR;转码所得数方到a中
	MOV DPTR,#0FF22H;把pb口地址方到dptr中
	MOVX @DPTR,A;把要显示的数放到pb口上
	MOV A,R1;把位控制方到a中
	MOV DPTR,#0FF21H;把pa口地址放到dptr中
	MOVX @DPTR,A
	RL A;左移一位
	MOV R1,A;把移位的数方到r1中
	CALL YANCHI;调用延迟程序
	INC R0
	CJNE R0,#36H,LOOP1
	JMP LOOP2
TABLE:DB 0CFH,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H 
YANCHI:
	MOV R6,#0FFH
	MOV A,#0FFH
LOOP:
ACALL KEYP
LOOP3: DEC R6
	MOV R5,A
	MOV A,R6
	CJNE A,00H,LOOP3
	MOV A,R5
	DEC A
	CJNE A,00H,LOOP
RET
KEYP:
	PUSH ACC;对a进行入栈保护
	MOV A,P1;把p1口的地址放到a中
	ORL A,#0C0H;将a的高两位置为11
	CPL A
	JZ  OVER;没有按键被按下
	JNB ACC.0,OVER1;第一位没有被按下
	MOV @R0,#1H
	SJMP OVER
OVER1:JNB ACC.1,OVER2;第二位没有被按下
	MOV @R0,#2H
	SJMP OVER
OVER2:JNB ACC.2,OVER3;第三位没有被按下
	MOV @R0,#3H
	SJMP OVER
OVER3:JNB ACC.3,OVER4;第四位没有被按下
	MOV @R0,#4H
	SJMP OVER
OVER4:JNB ACC.4,OVER5;第五位没有被按下
	MOV @R0,#5H
	SJMP OVER
OVER5:MOV @R0,#6H;定是第六位被按下了
OVER: POP ACC
RET
END

⌨️ 快捷键说明

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