今天来聊聊一篇关于单片机定时器和计数器的区别,单片机定时器的文章,网友们对这件事情都比较关注,那么跟随小编一起往下看看吧。
1、 学习计时器,首先要学会中断,而不是中断计时器。比如这里有一个任务:在执行行灯的同时,检测按键,在数码管上输出键值。要完成这个任务,可以使用定时器(即同时执行两个任务,对数码管的动态扫描很有帮助)。
2、 首先,连接电路板并打开keil。自己做按键和数码管(做不好就别学定时器了,先看基础!)
3、 之后,我们来看看计时器系统。
4、 51单片机中有两个16位可编程定时器,定时器T0和T1。52单片机内部有一个T2定时器。它们既有定时器功能又有计数功能。您可以通过设置与之相关的特殊功能寄存器来选择启用定时器功能或计数功能,因此定时器通常称为计数器。当单片机内部的CPU设置定时器启动时,定时器会在晶体振荡器的作用下自动开始计时。定时器的计数器满了,就会被中断,所以没有中断我是学不会定时器的。
5、 先说寄存器。
6、 定时器的本质是加1个16位的计数器。它由两个寄存器组成,高8位和低8位。TMOD是定时器的工作模式寄存器,用于确定定时器的工作模式和功能。TCON是一个控制寄存器,控制两个定时器溢出后的启动、停止和中断。
7、 接下来,让我们再给你看看TMOD的登记簿:
8、 TCON注册:
9、 原则是这样的。
10、 这里介绍到此结束。我的最后一个代码,这是定时器中断控制运行灯:
11、 #includereg52.h
12、 #includeintrins.h
13、 #定义uchar无符号字符
14、 uchar n,a=0xfe
15、 void main()
16、 {
17、 TMOD=1;
18、 TH0=76//刚才的公式是计算出来的。
19、 TL0=208
20、 EA=1;
21、 ET0=1;
22、 TR0=1;
23、 while(1)
24、 {
25、 If(n==20)//1秒如果你不明白,仔细看看我写的原理。
26、 {
27、 n=0;
28、 P1=a;
29、 a=_crol_(a,1);
30、 }
31、 }
32、 }
33、 无效时间()中断1
34、 {
35、 TH0=76//安装初始值
36、 TL0=208
37、 n;
38、 }
本文到此结束,希望对大家有所帮助。