资料介绍
嵌入式系统论文
单时钟完成多点分别计时的实现和应用
摘要:本文通过介绍只有双时钟的单片机系统,在多个事件需要分别定时或延时的时候
,解决一个时钟完成多个计时延时的有效方法,通过这种方法可以达到对多个被控事件
统一自动控制目的。
关键词:单片机、定时器、机器周期、分频
一、引言
单片机作为嵌入式系统的微控制器,已经不是新鲜的事情,作为单片机的定时/计数器的
使用可以说没有什么难度,但对于需要多个独立计时的事件,单片机的两个时钟显得有
点不能满足要求,其实不然,合理的运用内存和标志位可以实现一个定时器充当多个计
时时钟的效果,本文以51系列单片机为例,实现一个时钟控制8个独立马达的运行过程中
,时间分别统计方法。
二、单片机计数/定时器的基本原理简介
本文以51系列单片机为例介绍定时器的用法,定时/计数器的原理可以分为定时和计数两
部分,定时器的原理是通过设定8位或16位的定时器单元,通过给定定时器单元的初值,
然后启动定时器,于是定时器开始从初值开始累计,每增加一个数需要特定的时间,这
个特定的时间是累加指令的机器周期,是由MCU的晶振的频率决定。对于51系列的单片机
机器周期是时钟周期的1/12,也就是晶振频率的12分频。单片机的定时器原理上相当于
一个16位的内存单元,通过TMOD可以设定定时/计数器的工作方式。计数值从初值计到全
“1”,如果是16位方式则计数单元变成FF,此时并不产生中断,当下一个计数指令加1,
导致存储单元溢出,在中断控制寄存器允许的情况下产生中断,通过中断服务程序执行
特定的任务。计数器的原理不同之处在于,不是单纯的加指令,而是对外部的脉冲计数
,常用来测量脉冲的宽度。
三、时钟对多事件分别计数的具体途径
对于实时性要求不是很高的时间可以通过如下方式实现。在完成基本的定时器工作方式
设定以后,也就是设定定