您当前的位置:五五电子网电子知识单片机-工控设备综合-其它单片机定时计数器、中断和串行口的学习 正文
单片机定时计数器、中断和串行口的学习

单片机定时计数器、中断和串行口的学习

点击数:7779 次   录入时间:03-04 11:54:21   整理:http://www.55dianzi.com   综合-其它

  点击浏览下一页

  《单片机定时器记数器结构》

      结论:只要计数脉冲的间隔相等,则计数值就代表了时间的流逝。由此,单片机中的定时器和计数器是一个东西,只不过计数器是记录的外界发生的事情,而定 时器则是由单片机供给一个非常稳定的计数源。那么供给组定时器的是计数源是什么呢?看图1,原来就是由单片机的晶体震荡器经过12分频后获得的一个脉冲 源。晶体震荡器的频率当然很准,所以这个计数脉冲的时间间隔也很准。问题:一个12M的晶体震荡器,它供给给计数器的脉冲时间间隔是多少呢?当然这很不 难,就是12M/12等于1M,也就是1个微秒。结论:计数脉冲的间隔与晶体震荡器有关,12M的晶体震荡器,计数脉冲的间隔是1微秒。

   

    四、溢出

      让我们再来看水滴的例程,当水持续落下,盆中的水持续变满,最终有一滴水使得盆中的水满了。这个时候如果再有一滴水落下,就会发生什么现象?水会漫出来,用个术语来讲就是“溢出”。

      水溢出是流到地上,而计数器溢出后将使得TF0变为“1”。至于TF0是什么我们稍后再谈。一旦TF0由0变成1,就是产生了变化,产生了变化就会引 发事件,就象定时的时间一到,闹钟就会响一样。至于会引发什么事件,我们下次课再介绍,现在我们来研究另一个问题:要有多少个计数脉冲才会使TF0由0变 为1。

      五、任意定时及计数的办法 刚才已研究过,计数器的容量是16位,也就是最大的计数值到65536,因此计数计到65536就会产生溢出。这个没有问题,问题是我们现实生活中,经常 会有少于65536个计数值的要求,如包装线上,一打为12瓶,一瓶药片为100粒,怎么样来满足这个要求呢?

      提示:如果是一个空的盆要1万滴水滴进去才会满,我在开始滴水之前就先放入一勺水,还需要10000滴嘛?对了,我们采用预置数的办法,我要计 100,那我就先放进65436,再来100个脉冲,不就到了65536了吗。定时也是如此,每个脉冲是1微秒,则计满65536个脉冲需时65.536 毫秒,但现在我只要10毫秒就能了,怎么办?10个毫秒为10000个微秒,所以,只要在计数器里面放进55536就能了。

      17、单片机定时器/计数器的方式

      从上一节我们已经得知,单片机中的定时/计数器都能有多种用途,那么我怎样才能让它们工作于我所需要的用途呢?这就要通过定时/计数器的方式控制字来设置。

      在单片机中有两个特殊功能寄存器与定时/计数有关,这就是TMOD和TCON。顺便说一下,TMOD和TCON是名称,我们在写程序时就能直接用这个 名称来指定它们,当然也能直接用它们的地址89H和88H来指定它们(其实用名称也就是直接用地址,汇编软件帮你翻译一下而已)。

  点击浏览下一页

  《TMOD结构》

      从图1中我们能看出,TMOD被分成两部份,每部份4位。分别用于控制T1和T0,至于这里面是什么意思,我们下面介绍。

  点击浏览下一页

  《TCON结构》

      从图2中我们能看出,TCON也被分成两部份,高4位用于定时/计数器,低4位则用于中断(我们暂不管)。而TF1(0)我们上节课已提到了,当计数溢出后TF1(0)就由0变为1。原来TF1(0)在这儿!那么TR0、TR1又是什么呢?看上节课的图。

      计数脉冲要进入计数器还真不不难,有层层关要通过,最起码,就是TR0(1)要为1,开关才能合上,脉冲才能过来。因此,TR0(1)称之为运行控制 位,可用指令SETB来置位以启动计数器/定时器运行,用指令CLR来关闭定时/计数器的工作,一切尽在自已的掌握中。

  点击浏览下一页

  《单片机定时器/计数器结构》

      定时/计数器的四种工作方式

      工作方式0

      定时器/计数器的工作方式0称之为13位定时/计数方式。它由TL(1/0)的低5位和TH(0/1)的8位组成13位的计数器,此时TL(1/0)的高3位未用。

      我们用这个图来讨论几个问题:

      M1M0:定时/计数器一共有四种工作方式,就是用M1M0来控制的,2位正好是四种组合。

      C/T:前面我们说过,定时/计数器即可作定时用也可用计数用,到底作什么用,由我们根据需要自行决定,也说是决定权在我 们

本文关键字:单片机  计数器  综合-其它单片机-工控设备 - 综合-其它