单片机 定时器/计数器
2015-02-09 17:31
232 查看
一、什么是定时器/计数器
在51单片机中,定时器/计数器是用来实现定时功能,并且具有计数的功能,来实现对外部信号的计数。二、定时器/计数器有什么类型
在51单片机中,分为软件定时器,不可编程硬件定时器,可编程定时器。软件定时:CPU每执行一条指令时,是需要固定时间的,所以,通过执行空指令可以达到延时的效果,这样子做的代价是占用CPU时间,所以一般很少这么做。
不可编程硬件定时器:是由电路和硬件来完成定时功能的,一般采用基电路,外接定时部件(电阻和电容),通过改变电阻的阻值和电容的电容值来修改定时值,一量确定后件不能通过软件修改,这样子做的优点是不需要占用CPU时间。
可编程定时器:通软件来确定定时值及其范围,可编程定时器功能强大,灵活性高。这是本文详细讲解的定时器。
三、定时器的内部结构及工作原理
8051单片机有定时器0(T0)和定时器1(T1)两个定时器。定时器0(T0)和定时器1(T1)是两个16位加法计算器。
定时器0是由TH0和TH1两个8位计数器组成的,定时器1也是一样。
定时器内部还有以下寄存器:
8位的方式寄存器(TMOD)
8位控制寄存器(TCON)
选择定时器模式寄存器(C/T)
启动方式寄存器(GATE)
工作方式及发出启动信号寄存器(TR0或TR1)
内部结构如下图:
四、定时器工作方式
定时器的工作方式主要是通过THOD低4位是定时器0的工作方式控制位,高4位为定时器1的工作方式控制方式。均为M1M0工作方式 | M1 | M0 | 功能 |
---|---|---|---|
0 | 0 | 0 | 13位计数器 |
1 | 0 | 1 | 16位计数器 |
2 | 1 | 0 | 8位计数器,初值自动装入 |
3 | 1 | 1 | T0分成两个8位计数器,T1停止工作 |
五、使用定时器
timer_count.c1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | #include<reg52.h> unsigned char i; sbit LED0 = P1^0; void main(void) { TMOD = 0x01; TH0 = 0; TL0 = 0; ET0 = 1; TR0 = 1; EA = 1; while(1); } void t0_delay(void) interrupt 1 { i++; TR0 = 0; TH0 = 0; TL0 = 0; if(i == 20) { i = 0; LED0 = ~LED0; } TR0 = 1; } |
相关文章推荐
- 单片机的定时器/计数器
- 基于proteus的51单片机仿真实例五十七、定时器/计数器T0的定时实例
- 基于proteus的51单片机仿真实例五十八、定时器/计数器T1的定时实例
- 52单片机定时器/计数器编程汇总
- 单片机 计数器与定时器
- 51单片机中定时器/计数器初值的计算
- 单片机_定时器/计数器
- 理解单片机中的计数器和定时器
- 8-《电子入门趣谈》第一章_一切从单片机开始-1.3.5定时器/计数器
- 单片机中定时器与计数器的区别
- 单片机成长之路(51基础篇) - 014 定时器/计数器
- 单片机的定时器与计数器
- 51单片机-定时器/计数器
- 单片机的定时器与计数器
- 单片机的定时器与计数器
- 单片机控制定时器或计数器之模块化编程
- 单片机的定时器与计数器
- 51单片机的定时器/计数器
- 单片机的定时器与计数器
- 51单片机的定时器/计数器概念