首页教程应用教程正文

单片机tr控制,51单片机中定时中断为何要有et寄存器和tr寄存器控制,如果用一个控...

发布时间:2024-03-21 22:03:26 来源:其它 作者:未知

1,51单片机中定时中断为何要有et寄存器和tr寄存器控制,如果用一个控...

1,51单片机中定时中断为何要有et寄存器和tr寄存器控制,如果用一个控...

ET是内部定时器/计数器中断允许位,TR是定时器/计数器启动位,两个的作用是不一样的,一个控制是简单,但就会少一些功能,2个寄存器可以组合出4种情况,1个寄存器最多就2种,就像你不想计数器中断,那ET0,要启动计数器则TR1,相反还有ET1,TR1这种情况等,如果一个寄存器来做明显不合适

2,单片机控制彩灯

2,单片机控制彩灯

D1:JNBP3.3,B1

JNBP3.4,B2

AJMPD1

B1:SETBP0.0

ACALL5S

CLRP0.0

ACALL5S

JBP3.3,D1

AJMPB1

B2:SETBP0.0

ACALL1S

CLRP0.0

ACALL1S

JBP3.4,D1

AJMPB2

1S:1秒延时程序

5S:5秒延时程序

RET

你如果懂得用定时中断的话就很好办,可以设置个基准时间比如10ms,然后拿个寄存器来记LED的翻转时间5s亮一下的话就要记250的数,1s亮两下的话就要记25,然后到达250(25)的时候对P00口取反,并清除寄存器里的数这样一直循环按键的防抖动方面也可以一10ms的时间为基准拿个寄存器来计数,如果按键值变化的话就把寄存器里的数清掉,知道符合防抖动时间,确定按键功能如果你不懂得用定时中断的话,那么我建议你加个10ms的延时程序来当基准时间,在主程序里调用,其他的跟上面是一样的(10ms会有点长,基本上都是在1ms以下,不过这里如果是5s亮一下的话那么正好可以只用一个寄存器就可以完成了)

至于第一个回答的我建议你不要采纳,因为如果像他所描述的那样的话,你的按键会处理不过来的他用的延时是用调用的,也就是说如果LED在工作的话那么IC将在2s或则10s内不会对按键进行响应

我很少用汇编写程序.

所以我说下大概的意思吧.

用两个定时器做,一个定时5S.一个定时1S.

P3.3,P3.4接外部中断上,

当某一中断来的时候.关掉其中一个定时器.(TR00或TR10)

使相应的定时器工作.也就是TR01或TR11

明白否?

文章TAG: tr 寄存器 控制 单片机 中断 单片机tr控制

还没有评论,快来抢沙发吧!

最新发现

相关资讯

新闻热榜

热门游戏

精彩专题