51单片机的中断系统(六)

这里说说定时器/计数器中断


一,CPU时序相关知识:

    1,震荡周期:一次震荡时间。比如我们常用的12M HZ的晶振,表示1s震荡12M次,即1s钟震荡12 x 1000 000 次,那么震荡一次需要的时常为(1 / 12000000 )s,这样(1/12000000 )s就是12M晶振的一个震荡周期。

    2,状态周期:两个震荡周期的时长为一个状态周期。比如12M晶振下为(2 / 12000000 )s

    3,机器周期:1个机器周期包含6个状态周期,也就是12个震荡周期。比如12M晶振下为(12 / 12000000 )s

    4,指令周期:完成一条指令所占用的时间,它是以机器周期为单位


二,定时计数器:

    51单片机有两组定时计数器

    定时器/计数器和单片机CPU是相互独立的,工作是自动完成,CPU不会参与

    定时器/计数器会根据机器内部时钟/外部脉冲对寄存器数据进行加1 操作。

    定时器/计数器可以在CPU之外独立工作,减轻CPU负担。

    工作方式:定时计数器工作时候,会随着机器时钟/外部脉冲进行+1操作,有两个计数器(比如计时器0中的TL0,TH0)计数,两个字节一共16位,如果计数器全部为1的时候,再输入一个脉冲,计数器就会清零,同时计数器使对应的中断标志位(比如TF0)置为1,然后向CPU发起中断请求,中断函数响应。定时模式下的中断发生,表示时间到了;计数模式下的中断发生,表示计数值已满。

如果需要进行计时操作;为了精准控制,就需要我们对计数器的初始值(比如TH0,TL0)进行准确设置。


三,TMOD寄存器

    TMOD寄存器可以控制T0和T1的启动,停止,也可以设置溢出标志。

    TMOD寄存器一共8位它的结构:

    GATE | C/T | M1 | M0 | GATE | C/T | M1 | M0    <-TMOD

    左边高4位控制T1,低四位控制T0

    TMOD门控位,如果位0时候控制定时器启动是否受外部中断信号影响,这时候只要软件设置TR0 / TR1为1就可以启动计时器。如果GATE为1,要软件设置TR0/TR1为1,

同时INT0/1引脚也是高电平,才可以启动计时器。所以平时简单设置,都是用0;

    C/T:定时模式选择,0表示定时模式,1表示计数模式

    M1 M0:工作方式选择。00,13位定时器/计数器;01,16位定时器/计数器;10,8位自动重装定时器/计数器;11,T0分成两个独立的8位定时器/计数器


四,TCON寄存器

    也是8位:

    TF1 | TR1 | TF0 | TR0 |   |   |   |     <-TCON

    TF1: T1中断请求标记

    TR1:T1启动停止控制位

    TF0:T0中断请求标记

    TR0:T0启动停止控制位


五,代码流程:

    1,设置TMOD,确定控制方式

    2,设置TH0,TL0或者TH1,TL1初始值

    3,设置IE寄存器,允许中断发生

    4,设置TR0/TR1启动/关闭计时器


  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值