当前位置:
首页 >
51单片机定时/计数器
发布时间:2023/12/20
49
豆豆
生活随笔
收集整理的这篇文章主要介绍了
51单片机定时/计数器
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
定时计数器
什么是定时/计数器以及用处
51单片机有2个16位定时器/计数器:定时器0(T0为P3.4)和定时器1(T1为P3.5)
这里所说的16位是指定时/计数器内部分别有16位计数寄存器。
当工作再定时模式时,每经过一个机器周期,寄存器的值就会加1,当这个寄存器装满时就会溢出。我们可以计算工作再定时模式时最高单次定时时间为65535*1.085 us= 时间(单位us)
当工作再计数器模式时,T0(P3.4引脚),T1(P3.5引脚)每来一个脉冲,计数器加1.
定时器的作用:定时计数器可以用于精确事件定时(比延时函数精确),PWM脉宽调制,波形发生,信号时序测量等方面。
使用定时/计数器的步骤
1.启动定时/计数器(通过TCON控制器)
2.设置定时/计数器工作模式(通过TMOD控制器)
3. 查询定时/计数器是否溢出(读TCON内TF位)
实践
使用定时计数器0的十六位模式
定时器0的初始化
void timer0Init() {TR0 = 1;//启动定时器0TMOD = 0x01;//定时器模式1,16位定时模式TH0 = (65535-46082)/256;TL0 = (65535-46082)%256;//定时50ms}定时时间超过50 ms可在主函数写
unsigned char msec,sec; if(TF0 == 1)//判断是否溢出 {TF0 = 0;//软件清零溢出标志位TH0 = 0x4b;TL0 = 0xfd;//定时50msmsec++;//50ms到if(msec == 20){msec = 0;sec++;//一秒时间到}}定时/计数器的计数模式
TR0 = 1;//启动定时器0TMOD = 0x05;//定时器模式1,16位计数模式总结
以上是生活随笔为你收集整理的51单片机定时/计数器的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: js数组坍塌
- 下一篇: 2020电子设计大赛E题复盘