3个回答
展开全部
可以有两种方法,设晶振为12M,则
第一种方法:用延时的方法实现
DELAY: MOV R3,#10;延时子程序,延时1秒
D1: MOV R4,#200
D2: MOV R5,#250
D3: DJNZ R5,D3
DJNZ R4,D2
DJNZ R3,D1
RET
END
第二种方法:用定时器的方法实现
————
MOV R1,#20
————
DLY: MOV TMOD,#00000001B;延时子程序,设定定时器的工作方式
D1: SETB TL0,#176(65536-50000); 15536/256 (余数)
SETB TH0,#60;设置初出溢出值50ms,定时2S (商)
SETB TR0 ;启动定时器
JNB TF0,$;是否溢出,没有溢出等待,溢出走一条指令
CLR TF0;清零溢出
DJNZ R1,D1;走20次,刚好1秒
RET
END
第一种方法:用延时的方法实现
DELAY: MOV R3,#10;延时子程序,延时1秒
D1: MOV R4,#200
D2: MOV R5,#250
D3: DJNZ R5,D3
DJNZ R4,D2
DJNZ R3,D1
RET
END
第二种方法:用定时器的方法实现
————
MOV R1,#20
————
DLY: MOV TMOD,#00000001B;延时子程序,设定定时器的工作方式
D1: SETB TL0,#176(65536-50000); 15536/256 (余数)
SETB TH0,#60;设置初出溢出值50ms,定时2S (商)
SETB TR0 ;启动定时器
JNB TF0,$;是否溢出,没有溢出等待,溢出走一条指令
CLR TF0;清零溢出
DJNZ R1,D1;走20次,刚好1秒
RET
END
展开全部
ORG 00H
START:
MOV TMOD,#01H
MOV R5,#14H
MOV TL0,#0B0H
MOV TH0,#03CH
SETB TR0
DJNZ R7,NEXT
CLR TR0
...
;这里写要处理的程序
...
JMP START
END
NEXT:
MOV TL0,#0B0H
MOV TH0,#03CH
RET
此程序在晶振频率为12MHz下定时一秒
START:
MOV TMOD,#01H
MOV R5,#14H
MOV TL0,#0B0H
MOV TH0,#03CH
SETB TR0
DJNZ R7,NEXT
CLR TR0
...
;这里写要处理的程序
...
JMP START
END
NEXT:
MOV TL0,#0B0H
MOV TH0,#03CH
RET
此程序在晶振频率为12MHz下定时一秒
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
ORG
00H
START:
MOV
TMOD,#01H
MOV
R5,#14H
MOV
TL0,#0B0H
MOV
TH0,#03CH
SETB
TR0
DJNZ
R7,NEXT
CLR
TR0
...
;里写要处理程序
...
JMP
START
END
NEXT:
MOV
TL0,#0B0H
MOV
TH0,#03CH
RET
此程序晶振频率12MHz下定时秒
00H
START:
MOV
TMOD,#01H
MOV
R5,#14H
MOV
TL0,#0B0H
MOV
TH0,#03CH
SETB
TR0
DJNZ
R7,NEXT
CLR
TR0
...
;里写要处理程序
...
JMP
START
END
NEXT:
MOV
TL0,#0B0H
MOV
TH0,#03CH
RET
此程序晶振频率12MHz下定时秒
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询