当前位置:编程学习 > 汇编语言 >>

51单片机,求用汇编语言编写延时1小时的子程序,要精确到秒级别

追问:定时器肯定用的,还有这段代码你用软件仿真过了,正确?如果没问题的话,我还可以多加20分
答案:延时一小时,这么长,应该要用定时器,不能用循环的方式。
ORG	00H
AJMP	MAIN
ORG	0BH
AJMP	T0INT0
ORG	30H	

MAIN:	
MOV 	SP,#60H
MOV	R4,#20
MOV	TMOD,#01H
MOV	TH0,#3CH	;12M晶振时定时初值取#3CB0H,还可细调如 TL=#0B7H,可以更准 	
MOV	TL0,#0B7H
SETB	EA
SETB	ET0
SETB	TR0
AJMP	$

T0INT0:	
MOV	TH0,#3CH	;定时中断子程序。重装定时常数
MOV	TL0,#0B7H
DJNZ	R4,RTI		;未1S,跳出中断
MOV	R4,#20
INC	26H		;秒+1
MOV	A,26H
CJNE	A,#60,RTI	
MOV	26H,#0
INC	27H		;分+1
MOV	A,27H
CJNE	A,#60,RTI
MOV	27H,#0
INC	28H		;时+1		
MOV	A,28H
CJNE	A,#24,RTI
MOV	28H,#0
RTI:	
RETI

END
其他:单片机时钟,时分秒。
时,即每隔一小时,加一次一。
利用这种程序即可,不用单独编写子程序。 

上一个:用汇编语言编写 简易加密解密程序
下一个:我现在已经学过C语言和数据结构了,感觉学的也还算好。现在想学汇编语言,想请教大家较好的教材?

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,