如何用单片机制作24秒计时器
3个回答
展开全部
也就是倒计时30秒吗?
用内部定时器就可以,
以51为例
60ms*500=30s(每次定时60毫秒
循环500次)
60ms初值
tc=2^16-60000=5536=15a0(h)
org
0000h
ljmp
main
org
000bh
ljmp
to_int
;
org
0100h
main:
mov
ie
,#00h
mov
psw,#00h
mov
sp,#60h
mov
tmod,#01h
mov
th0,#15h
mov
tl0,#0a0h
setb
tr0
mov
ie
,#82h
mov
ip
,#02h
mov
r6,#100
mov
r7,#5
;60s计时
sjmp
$
;
org
0200h
to_int:
mov
th0,#15h
mov
tl0,#0a0h
djnz
r6,t0_0
;不到30s→跳
mov
r6
,#100
djnz
r7,t0_0
;不到30s→跳
mov
r7
,#5
mov
ie,#00h;
30s到关中断
to_0:
reti
end
用内部定时器就可以,
以51为例
60ms*500=30s(每次定时60毫秒
循环500次)
60ms初值
tc=2^16-60000=5536=15a0(h)
org
0000h
ljmp
main
org
000bh
ljmp
to_int
;
org
0100h
main:
mov
ie
,#00h
mov
psw,#00h
mov
sp,#60h
mov
tmod,#01h
mov
th0,#15h
mov
tl0,#0a0h
setb
tr0
mov
ie
,#82h
mov
ip
,#02h
mov
r6,#100
mov
r7,#5
;60s计时
sjmp
$
;
org
0200h
to_int:
mov
th0,#15h
mov
tl0,#0a0h
djnz
r6,t0_0
;不到30s→跳
mov
r6
,#100
djnz
r7,t0_0
;不到30s→跳
mov
r7
,#5
mov
ie,#00h;
30s到关中断
to_0:
reti
end
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
24秒中断一次?
有那么慢的单片机吗?
比如设置500MS中断一次
中断程序给个变量++,变量=48时候就是24秒了
大概意思就是这样
有那么慢的单片机吗?
比如设置500MS中断一次
中断程序给个变量++,变量=48时候就是24秒了
大概意思就是这样
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询