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

📄 课程设计.txt

📁 用keil做的课程设计
💻 TXT
字号:
	JIA	BIT	00H	;标志位
	JIAN	BIT	01H	;标志位
	ORG	0000H
	AJMP	MAIN
	ORG	000BH
	AJMP	INT
	ORG	0023H
	AJMP	chuan	    
	ORG	0100H
;*****************************主程序*******************************				
MAIN:	
	MOV	SP,	#80H
	MOV	70H,	#0
	MOV	71H,	#0
	MOV	72H,	#0
	MOV	73H,	#0
	CLR	JIA
	CLR	JIAN
kaishi:
	lcall	disp
	mov	r4,	#20      
	mov 	tmod,	#21h
	mov	tl0,	#0b0h
	mov 	th0,	#3ch
	mov	tl1,	#0f3h
	mov	th1,	#0f3h
	mov	scon,	#50h
	setb	tr1
	setb 	et0
	setb 	ea
	MOV	75H,	#4
	

MM:	ACALL	keybord		   	
	CJNE	A,	#0AH,	K1	;按键A,加法
	SETB	JIA
	CLR	JIAN
	SETB	TR0
	AJMP	kaishi
K1:	
	CJNE	A,	#0BH,	K2	;按键B,减法
	SETB	JIAN
	CLR	JIA
	SETB	TR0
	AJMP	kaishi
K2:
	CJNE	A,	#0CH,	K3	;按键C,清零
	ACALL	CLEAR
	AJMP	kaishi
K3:	
	CJNE	A,	#0DH,	K4	;按键D,暂停
	ACALL	ZANTING
	AJMP	kaishi
K4:
	CJNE	A,	#0EH,	K5	;设E为串行口发送数据
	clr	es
	acall	 sout
	ajmp	kaishi
k5:	
	CJNE	A,	#0FH,	k6 	;设F为接受数据控制键
	mov	r1,	#6fh
	setb	es
	ajmp	kaishi	
k6:		
	lcall	kong
	lcall	disp
	ajmp	kaishi
;启用r4,r5
;**************************键盘扫描********************************
keybord:		
	acall	ks
	jnz	kM
	lcall	DISP
	ljmp	keybord
kM:	
	lcall	DISP
	acall	ks	
	jz	keybord
	mov	r5,	#00h		;行初值
	mov	r4,	#0feh		;逐行扫描初值
key:	
	mov	p1,	r4		;逐行扫描	
	mov	a,	p1		;读入列值
	anl	a,	#0f0h		;屏蔽行
key0:	
	jb	acc.4,	key1		;检测第一列
	mov	a,	#0	
	ljmp	zhi
key1:
	jb	acc.5,	key2		;检测第二列
	mov	a,	#1
	ljmp	zhi			;有键按下
key2:
	jb	acc.6,	key3		;检测第三列
	mov	a,	#2	
	ljmp	zhi			;有键按下
key3:
	jb	acc.7,	next		;检测第四列
	mov	a,	#3		;有键按下

zhi:
	add	a,	r5
	push	acc
halt:
	acall	delay
	acall	ks
	jnz	halt
	pop	acc
	ret
next:	

	mov	a,	r5
	add	a,	#4		;扫描下一行
	mov	r5,	a
	mov	a,	r4
	jnb	acc.3,	keybord		;检测是否溢出
	rl	a
	mov	r4,	a
	ljmp	key

ks:
	mov	p1,	#0f0h		;检测是否有键按下
	nop
	mov	a,	p1
	anl	a,	#0f0h
	cpl	a
	anl	a,	#0f0h
	ret
;启用r3
;****************************中断服务子程序****************************		
INT:
	DJNZ	R3,	S4		
	MOV	R3,	#20
	ACALL	JIAFA
	ACALL	JIANFA
S4:	MOV	TH0,	#0B0H
	MOV	TL0,	#3CH		
JJ:	RETI
;******************************清零*************************************
CLEAR:
	MOV	70H,	#0
	MOV	71H,	#0
	MOV	72H,	#0
	MOV	73H,	#0
	CLR	JIA
	CLR	JIAN
	ACALL	DISP
	RET
;****************************自增子程序*********************************	
JIAFA:			
	JNB	JIA,	JIA_OUT
	MOV	A,	73H		;个位
	INC	A
	CJNE	A,	#10,	S1
	CLR	A
	INC	72H
S1:	
	MOV	73H,	A 

	MOV	A,	72H		;十位
	CJNE	A,	#10,	S2
	CLR	A
	INC	71H
S2:
	MOV	72H,	A
	MOV	A,	71H		;百位
	CJNE	A,	#10,	S3
	CLR	A
	INC	70H
S3:	MOV	71H,	A

	MOV	A,	70H		;千位
	CJNE	A,	#10,	S4
	CLR	A
	MOV	70H,	A
	CLR	P3.4			;报警
JIA_OUT:
	RET	
;*****************************自减子程序*****************************
JIANFA:				
	JNB	JIAN,	JIAN_OUT
	MOV	A,	73H		;个位
	DEC	A
	CJNE	A,	#255,	L1
	MOV	A,	#9
	DEC		72H
L1:	
	MOV	73H,	A 
	MOV	A,	72H		;十位
	CJNE	A,	#255,	L2
	MOV	A,	#9
	DEC	71H
L2:
	MOV	72H,	A
	MOV	A,	71H		;百位
	CJNE	A,	#255,	L3
	MOV	A,	#9
	DEC	70H
L3:	
	MOV	71H,	A
	MOV	A,	70H		;千位
	CJNE	A,	#255,	S4
	MOV	A,	#9
	MOV	70H,	A
	CLR	P3.4			;报警
JIAN_OUT:
	RET

;*************************串行通讯中断服务程序*******************************

chuan:
	inc	r1
	mov	@r1,	sbuf
	clr	ri
	cjne	r1,	#73h,	aa
	clr	es
aa:
	reti
sout:
	mov	r0,	#6fh	
bb:
	inc	r0
	mov	sbuf,	@r0
	jnb	ti,	$
	clr	ti
	cjne	r0,	#73h,	bb
	ret
;*********************** 暂停程序 ***************************
ZANTING:
	CLR	JIA
	CLR	JIAN
	ACALL	DISP
	RET
;*************控制输出***************
kong:
	mov	r0,	#73h
	mov	70h,	71h
	mov	71h,	72h
	mov	72h,	73h
	mov	@r0,	a
	ret
;R0,R2,R5显示
;*************************显示子程序*****************************	
				
DISP:
	MOV	R0,	#70H
	MOV	R2,	#7FH
	MOV	R5,	#4
	MOV	DPTR,	#TAB
TT:	MOV	A,	@R0
	MOVC	A,	@A+DPTR	
	MOV	P0,	A
	MOV	P2,	R2
	INC	R0
	MOV	A,	R2
	RR	A
	MOV	R2,	A
	ACALL	DELAY1
	DJNZ	R5,	TT
	RET
;R6,R7延时
;************************延时20ms*********************************					
DELAY:	MOV	R6,	#20
LOOP1:	MOV	R7,	#250
		DJNZ	R7,	$
		DJNZ	R6,	LOOP1
		RET
;************************延时2ms*********************************					
DELAY1:	MOV	R6,	#4
LOOP2:	MOV	R7,	#250
		DJNZ	R7,	$
		DJNZ	R6,	LOOP2
		RET
;***********************共阳段码表*******************************
TAB:	DB	0C0H,0F9H,0A4H,0B0H,99H
		DB	92H,82H,0F8H,80H,90H,88H
		DB	83H,0C6H,0A1H,86H,08EH 
		END

⌨️ 快捷键说明

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