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

📄 6.asm

📁 我的大学单片机课程案例和ppt
💻 ASM
字号:
	ORG	0H
	LJMP	START
	ORG	30H
START:	MOV	P0,#0FFH
	MOV	P2,#0H	
	MOV	30H,#0
	MOV	31H,#0
	MOV	32H,#0
	MOV	33H,#0
	MOV	DPTR,#TABLE	;将数据表TABLE的首地址赋给DPTR
DISAGAIN:
	MOV	R4,#4
	MOV	R1,#30H
	MOV	R2,#00010000B

DISLOOP:MOV	P1,#0FFH
	CLR	P1.2	;P1.2清0,扫描第1行
	MOV	A,P1	;读键盘至A
	ANL	A,#00000011B
	XRL	A,#00000011B;判断A的低二位是否为1
	JZ	SCANL2	;如果低二位为1,则无按键,转第二行扫描	
	LCALL	DELAY10MS;延时10ms(去抖延时)
	MOV	A,P1	;读键盘至A
	ANL	A,#00000011B
	XRL	A,#00000011B;判断A的低二位是否为1
	JZ	SCANL2	;如果低二位为1,则无按键,转第二行扫描
	MOV	A,P1	;读键盘至A
	ANL	A,#00000011B;保留低二位的结果
	CJNE	A,#00000010B,NOK0;不是K0键,转NOK0
	MOV	30H,#2	;是K0键将30H地址赋值为2
	MOV	31H,#3	;将31H地址赋值为3
	MOV	32H,#2	;是将32H地址赋值为2
	MOV	33H,#3	;将33H地址赋值为3
	LJMP	DISPLAY	;转显示子程序
NOK0:	MOV	30H,#8	;不是K0键,则一定是K1。将30H地址赋值为8
	MOV	31H,#9	;将31H地址赋值为9
	MOV	32H,#8	;将32H地址赋值为2
	MOV	33H,#9	;将33H地址赋值为3
	LJMP	DISPLAY	;转显示子程序
SCANL2 :MOV	P1,#0FFH
	CLR	P1.3	;P1.3清0,扫描第2行
	MOV	A,P1	;读键盘至A
	ANL	A,#00000011B
	XRL	A,#00000011B;判断A的低二位是否为1
	JZ	DISPLAY	;如果低二位为1,则无按键,转DISPLAY
	LCALL	DELAY10MS;延时10ms(去抖延时)
	MOV	A,P1	;读键盘至A
	ANL	A,#00000011B
	XRL	A,#00000011B;判断A的低二位是否为1
	JZ	DISPLAY	;如果低二位为1,则无按键,转DISPLAY
	MOV	A,P1	;读键盘至A
	ANL	A,#00000011B;保留低二位的结果
	CJNE	A,#00000010B,NOK2;不是K2键,转NOK2
	MOV	30H,#6	;是K2键将30H地址赋值为6
	MOV	31H,#8	; 将31H地址赋值为8
	MOV	32H,#6	;将32H地址赋值为6
	MOV	33H,#8	; 将33H地址赋值为8
	LJMP	DISPLAY	;转显示子程序	
NOK2:	MOV	30H,#7	;不是K2,则一定是K3。将30H地址赋值为7
	MOV	31H,#7	;将31H地址赋值为7
	MOV	32H,#1	;将32H地址赋值为1
	MOV	33H,#1	; 将33H地址赋值为1	
DISPLAY:
	MOV	A,@R1		;
	MOVC	A,@A+DPTR	;将(A+DPTR)地址中的值赋给A
	MOV	P2,R2	        ;选择数码管                                   
	MOV	P0,A		;送到P0口数码管显示
	LCALL	DELAY	;显示延时
	MOV	A,R2	;R2的值移位
	RL	A
	MOV	R2,A	
	INC	R1	
	DJNZ	R4,DD
	LJMP	DISAGAIN	;重新开始扫描
DD:	LJMP	DISLOOP
DELAY10MS:
	MOV	R6,#20
D1:	MOV	R7,#200
D2:	DJNZ	R7,D2
	DJNZ	R6,D1
	RET
DELAY:
	MOV	R6,#20
D3:	MOV	R7,#100
D4:	DJNZ	R7,D4
	DJNZ	R6,D3
	RET
TABLE:	DB	0C0H,0F9H,0A4H,0B0H		;0,1,2,3
	DB	99H,92H,82H,0F8H,80H,90H	;4,5,6,7,8,9
	END


⌨️ 快捷键说明

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