- UID
- 194983
- 阅读权限
- 40
- 推广
-
- 幽默
-
- 注册时间
- 2011-5-8
- 最后登录
- 1970-1-1
|
楼主 |
发表于 2016-5-10 21:41:47
|
显示全部楼层
今天又要给大家增加一个新的内容。那就是定时器(或者叫计数器)。
这个本来不属于单片机的内容,但它在常见的单片机里都集成了这个功能,所以也讲一下。
这里的定时器,在单片机里边只是一个会自动加1的寄存器,但是有了它,又可以玩更多的花样了。
已经说了,这是一个会自动加1的寄存器,那么你可能会问了,它什么时候会加1?嗯,这就是我们要讲的内容。它什么时候加1是可以设置的,方法也是设置另一个寄存器。通过设置不同的值,单片机就可以知道你希望它什么时候自动加1。可以选择当某个管脚上出现一个脉冲的上升沿(或下降沿时)加1,也可以选择系统时钟的整数倍时加1。假设它是在管脚脉冲的上升沿时加1的,我读取这个计数结果,就可以知道这个管脚上收到了多少个脉冲。这相当于在计数。所以这时习惯称之为计数器。如果它是在系统时钟的整数倍时加1,系统的时钟是我们自己选的,它的频率我们是已知的,收到了多少个计数,就知道过去了多长时间,所以这时我们习惯称之为定时器。这里也可以让你看出,同样是一个简单的加1功能,它计数的东西不同,就实现了不同的功能。所以单片机能做什么,全看你怎么用它。
计数功能很简单,没什么要多说的了。我们主要说说计时功能。既然叫它定时器,那么就应该有到了时间提醒你的功能。的确,它是具有这个功能的。
比如我们的系统时钟为1M,那么计数加1就需要1微秒(当然,也可以设为N个时钟计数加1).比如我需要它在1000us(等于1ms)后提醒我,那么我可以设置计数的值为1000,然后让它开始计数.当1000us过去之后,它会产生一个中断.前面说了,当中断之后,程序会打断当前执行的内容去执行这段处理程序.所以单片机可以去做其他的事,当时间到了,它会自动跳过去执行中断处理程序.
我们现在用的电脑,它里边只有一个CPU,它的运行速度很快,都是以G为单位.虽然只有一个CPU,你会发现你的电脑可以一边聊QQ一边看网页,还能一边听听歌,看上去好像是多个程序都在同时执行,而实际上,它们并不是同时执行的,因为CPU同一时间只能执行一个程序.所以电脑的CPU会每过10ms产生一次中断,中断之后就执行另一个程序,由于每秒切换100次,所以你感觉到的就是所有的程序都在同时运行.这就是定时器一个强大的应用:实现任务的切换,让一个CPU完成多个事情的处理.
这部分由于需要对单片机深入接触之后才能感觉得到,所以这里只是提一下,等你们在使用过程中去感受它.
|
|