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

📄 time.asm

📁 达盛单片机试验箱
💻 ASM
字号:
$NOMOD51
;
NAME       TIME
;
$NOLIST
$INCLUDE(REG52.INC)
$LIST
;
BUFF		DATA	50H
SSBUF		DATA	51H	

			ORG		0000H
			
			AJMP	MAIN
	
			ORG		002BH
			
			AJMP	TIME
	  
			ORG		0030H	
				
MAIN:		MOV     RCAP2H,#0D8H
			MOV     RCAP2L,#0F0H
			MOV     TH2,#0D8H			;定时时间=(2^16-T0初值)*时钟周期*12
			MOV     TL2,#0F0H			;(2^16-OD8F0H)*1/(12*10^6)*12=10MS
			MOV     IE,#10100000B		;允许中断
			MOV     T2CON,#00001000B	;允许重新装入(外部允许标志)
			MOV		SSBUF,#00H
			MOV		BUFF,#100
			SETB    TR2
LOOP:		ACALL  	DSUP	   
								;启动定时计数器 2
			CALL	DELAY
			AJMP	LOOP
	   
	   
DSUP:		MOV		A,SSBUF				;取秒的低位
			ANL		A,#0FH
			ACALL	SEND				;显示
			MOV		A,SSBUF
			SWAP	A
			ANL		A,#0FH				;取秒的高位
			ACALL	SEND				;显示
			RET

SEND:		MOV		DPTR,#SGTB1
			MOVC	A,@A+DPTR			;取字符
			MOV		SBUF,A
			JNB		TI,$
			CLR		TI					;发送字符
			RET
	
TIME:  		CLR     EA					;关中断
			PUSH    PSW					;保护工作寄存器
			PUSH    ACC
			PUSH    01H
			CLR     TF2
			MOV     A,BUFF 				;取 %1 秒 BUFF 缓冲区的内容
			DEC     A            		;%1 秒 BUFF 缓冲区内容减 1
			MOV     BUFF,A				;%1 秒 BUFF缓冲区内容保存
			CJNE    A,#00H,TIME2		;是否等于 0 秒? 不等于转出	
			MOV     A,#64H				;%1 秒 BUFF 缓冲区送100
			MOV     BUFF,A		   					
			MOV     A,SSBUF				;取秒 SSBUF 缓冲区的内容
         	SUBB    A,#01H				;秒单元内容减 1
	   		JNB     PSW.6,TIME1			;是否有辅助借位
	   		SUBB    A,#06H             	;有借位进行十进制调整
TIME1:		MOV		SSBUF,A		
	   		CJNE    A,#0F8H,TIME2		;是否等于 60 秒? 不等于转出	   	
	   		MOV     A,#59H    			;秒缓冲区送59
	   		MOV     SSBUF,A  				
			AJMP	TIME2
TIME2:		POP     01H					;恢复断点
			POP     ACC
    	    POP     PSW
			SETB	EA  				;开中断
			RETI
			
;*****************************************************************************
;		/*延时子程序*/
;*****************************************************************************		

DELAY:		MOV		R4,#250				;延时
DELAY1:		MOV		R5,#250
			DJNZ	R5,$
			DJNZ	R4,DELAY1
			RET		
				
;*****************************************************************************
;		/*字符编码*/
;*****************************************************************************
				
SGTB1:  	DB	     03H         		;0
			DB	     9FH         		;1
			DB	     25H         		;2
			DB	     0DH         		;3
			DB	     99H          		;4
			DB	     49H          		;5
			DB	     41H          		;6
			DB	     1FH         		;7
			DB	     01H          		;8
			DB	     09H          		;9
			DB	     0FFH				;灭	
			
			END

⌨️ 快捷键说明

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