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

📄 text1.asm

📁 课程设计做的基本程序
💻 ASM
字号:
	org	0000h
	ljmp	main
	org     000bh
	ljmp	int
	org	0023h
	ljmp	sint
	org	0100h
main:                           ;初始LED显示零
	mov	70h,	#00
	mov	71h,	#00
	mov	72h,	#00
	mov	73h,	#00
	mov	r0,	#  5		

kaishi:	                         ;初始化
	acall	display
	acall	display
	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

panduan:lcall	keyboard
	mov	76h,	a
	
pana:	
	clr	c
	subb	a,	#10         ;设A为定时加
	jnz	panb
	mov	r4,	#20
	mov	30h,	#1
	mov	31h,	#0
	acall	dingshi
	ajmp	panduan	
panb:
	mov	a,	76h
	clr	c
	subb	a,	#11         ;设B为定时减
	jnz	panc
	mov	r4,	#20
	mov	31h,	#1
	mov	30h,	#0
	acall	dingshi
	ajmp	panduan
panc:	mov	a,	76h
	clr	c
	subb	a,	#12         ;设C为串行口发送数据
	jnz	pand
	acall	chuanxing
	ajmp	kaishi
pand:	mov	a,	76h
	clr	c
	subb	a,	#13         ;设D为接受数据控制键
	jnz	panf
	mov	r0,	#74h
	setb	es
	ajmp	kaishi
panf:	mov	a,	76h
	clr	c
	subb	a,	#15          ;设F为暂停键        
	jnz	pane
	acall	zanting
	acall	panduan
pane:	mov	a,	76h
	clr	c
	subb	a,	#14          ;设E为清零键      
	jnz	hui
	acall	clear
	acall	panduan
hui:	mov	a,	76h		
	lcall	siwei
	lcall	display
	ajmp	kaishi 

keyboard:		
	acall	ks              ;判断有无键按下
	jnz	k_1
	lcall	display
	ljmp	keyboard
k_1:	
	lcall	display         ;消抖             
	acall	ks	
	jz	keyboard
k_2:	
	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	knum			
key1:
	jb	acc.5,	key2		
	mov	a,	#1
	ljmp	knum			
key2:
	jb	acc.6,	key3		
	mov	a,	#2	
	ljmp	knum			
key3:
	jb	acc.7,	next		
	mov	a,	#3		
knum:	
	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,	keyboard		
	rl	a
	mov	r4,	a
	ljmp	key				
ks:	                            ;有无闭合键判断子程序
	mov	p1,	#0f0h		
	nop
	mov	a,	p1
	cpl	a
	anl	a,	#0f0h
	ret
delay:	mov	r6,	#4h	     ;延时子程序	
	mov	r7,	#250
loop:	djnz	r7,	$
	djnz	r6,	loop
	ret

display:
 	mov 	dptr,	#table      ;查表显示
	mov 	r1,	#70h       
	MOV	R2,	#0EFH       ;取最右边一个 
	MOV	R3,	#4
play:
        mov  	a,	@r1
	movc 	a ,	@a+dptr
	mov 	p0,	a
	mov 	p2,	r2
	acall 	delay
	inc 	r1
	mov	a,	r2
	rl 	a
	mov 	r2,	a
	djnz 	r3,	play
	acall	ks
	jz	display
   	ret

siwei:                          ;输入够四位循环
	djnz	r0,	shuchuan			
	mov	r0,	#4
	mov	73h,	#16
	mov	72h,	#16
	mov	71h,	#16
	mov	70h,	a
	ret	
shuchuan:
	mov	73h,	72h
	mov	72h,	71h
	mov	71h,	70h
	mov	70h,	a	
	ret
;=======================================================功能实现
dingshi:   
	setb 	tr0	  
	lcall 	display		
	lcall	ks
	jz	dingshi
	clr	tr0
	setb	p3.4

        ret
 	     
int:
	djnz 	r4,	outz	
	mov 	r4,	#20
	mov	a,	30h
	jnz	zeng
	mov	a,	31h
	jnz	jian
;**************定时加********************		
zeng:	                                    
	inc	70h
	mov	a,	70h
	cjne	a,	#10,	outz
	setb	p3.4

zz0:	inc	71h
	mov	70h,	#00h
	mov	a,	71h
	cjne	a,	#10,	outz
	clr	p3.4
	
zz1:	
	inc	72h
	mov	71h,	#00h
	mov	a,	72h
	cjne	a,	#10,	outz
zz2:	
	inc	73h
	mov	72h,	#00h
	mov	a,	72h
	cjne	a,	#10,	outz
;*******************定时减******************                      
jian:                                
	mov	a,	70h
	cjne	a,#0,PP
	mov	70h,#9
	mov	a,71h
	cjne	a,#0,QQ
	mov	71h,#9
	mov	a,72h
	cjne	a,#0,JJ
	mov	72h,#9
	mov	a,73h
	cjne	a,#0,YY
	mov	73h,#9
	ajmp	outz
PP:	dec	70h
	ajmp	outz
QQ:	dec	71h
	ajmp	outz
JJ:	dec	71h
	ajmp	outz
YY:	dec	73h
	
	
outz:
	mov 	tl0,	#0b0h
	mov 	th0,	#3ch
	reti
   ;***************串行通信********************
chuanxing:
	clr	es
	mov	r0,	#74h
sout:
	dec	r0
	mov	sbuf,	@r0
	jnb	ti,	$
	clr	ti
	cjne	r0,	#70h,	sout
	ret
sint:	
	dec	r0
	mov	@r0,	sbuf
	clr	ri
	cjne	r0,	#70h,	bbbb
	clr	es
bbbb:
	reti
;***************暂停****************************
zanting:
	clr	ea
	acall	kaishi
	ret
;***************清零*****************************
clear:
	MOV	70H,	#0
	MOV	71H,	#0
	MOV	72H,	#0
	MOV	73H,	#0

	ret
;===========================LED段码表
   
table:
	   db   0c0h,	0f9h,	0a4h,	0b0h,	99h,	92h,	82h,	0f8h,	80h,	90h	
	   db	0ffh,	0ffh,	0ffh,	0ffh,	0ffh,	0ffh,	0ffh

	end

⌨️ 快捷键说明

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