51单片机——定时器
为什么使用定时器? 之前我们的led灯每隔1s循环左移点亮的时候,使用的定时方法是在c程序执行若干次空循环,这样会耗费很多cpu资源,因为空轮询。本篇博客将使用51单片机内置的定时器中断
为什么使用定时器? 之前我们的led灯每隔1s循环左移点亮的时候,使用的定时方法是在c程序执行若干次空循环,这样会耗费很多cpu资源,因为空轮询。本篇博客将使用51单片机内置的定时器中断
1. 原理 目前电视机、空调等家电大部分还是采用的红外遥控的,有时项目需要把遥控嵌入到自己的设备中,或者又是物联网需要控制家电,此时就需要智能学习和发送了,红外遥控电路图如下࿱
基于51单片机八路抢答器资料
(1)设定TMOD选择C/T工作方式。 (2)计算C/T中的计数初值,并装入TH和TL。 (3)选择C/T溢出判断方式,查询或中断方式。如选择中断方式,需对中断控制寄存器IE编程。 (4)启动C/T,置位TCON中的TR0或TR1位。
GATE=1时,由外部中断引脚,和TR0,TR1共同来启动定时器。当INT0引脚为高电平 时,TR0置位启动定时器T0;当INT1引脚为高电平时,TR1置位,启动定时器T1. GATE=0时,仅由TR0和TR1置位来启动定时器T0和T1。
四种 方式0方式1方式2方式3 定时器/计数器工作在方式0 (M1M0=00)时,为13位计数器。 定时器/计数器工作在方式1 (M1M0=01)时,为16位计数器。 定时器/计数器工作在方式2 (M1M0=10)时,为8位自动恢复初值的计数器。 方式3 (M1M0=11)时,T0为2个独立8位定时/计数器,T1为1个独立定时/计数器,共计3个定时/计数器。但T1不能工作在方式3(TR1=0,停止计数)。
MC=12/12=1μs 1ms/1μs=1000/1=1000=3E8H (3E8H)补=10000H-3E8H=FC18H
波特率发生器需要在计数值溢出后自动重新赋值,再次开始计数,所以选模式2。 否则溢出后要程序响应中断重新赋值。
工作方式2:自动重新装入计数初值的8位定时器/计数器工作方式。 工作方式2的16位定时器/计数器被拆成两个8位寄存器TH0和TL0,CPU在对它们初始化时必须装入相同的定时器/计数器初值。定时器/计数器启动后,TL0按8位加1计数器计数,当TL0计数溢出时,置位TF0的同时又从预置寄存器TH0中重新获得计数初值并启动计数。如此反复。适合于需要重复计数的应用场合,也可以当做串行数据通信的波特率发生器使用。
TMOD用于控制定时器/计数器T0和T1的工作方式,M1M0为工作方式选择位。 M1M0=00 方式0,13位定时器/计数器; M1M0=01 方式1,16位定时器/计数器; M1M0=10 方式2,自动重新装入计数初值的8位定时器/计数器; M1M0=11 方式3,两个8位定时器/计数器(仅适用于T0)。 为定时方式/计数方式选择位。若设定 =0,则选择定时器工作方式;若设定 =1,则选择计数器工作方式。一个定时器/计数器同一时刻或者作定时用,或者作计数用,不能同时既作定时又作计数用。 GATE:门控位。它的状态决定了定时器/计数器启/停控制取决于TR0还是取决于TR0和 引脚两个条件的组合。若GATE=0,则只由TCON中的启/停控制位TR0控制定时器/计数器的启/停。此时,只要TR0=1,则接通模拟开关,使计数器进行加法计数,定时器/计数器启动工作。而如果TR0=0,则断开模拟开关,定时器/计数器停止工作。若GATE=1,由外部中断请求信号 和TCON中的启/停控制位TR0组合状态控制定时器/计数器的启/停。只有TR0=1,且 引脚也是高电平,才能启动定时器/计数器工作,否则,定时器/计数器停止工作。 定时器/计数器的定时器/计数器范围为: 工作方式0:13位定时器/计数器方式,因此,最多可以计到213,也就是8 192次。 工作方式1:16位定时器/计数器方式,因此,最多可以计到216,也就是65 536次。 工作方式2和工作方式3:都是8位的定时器/计数器方式,因此,最多可以计到28,也说是256次。
TCON:定时器控制寄存器 TMOD:定时器/计数器方式控制寄存器 SCON:串行口控制寄存器 PSW:程序状态字(标志寄存器) IE:中断允许控制寄存器
答:在定时器(C/Tn = ‘0’)方式,为SYSCLK或SYSCLK/12,这取决于CKCON寄存器的相关位的状态。 在计数器(C/Tn = ‘1’)方式,定时器的增加取决与外部引脚电平由高到低的跳变。在此方式,最大频率允许为SYSCLK /4,外部输入信号必须维持至少2个系统时钟周期的高电平,才能确保电平被采样。
来源:网络 时间片轮询法,在很多书
1.systick介绍 Systick就是一个定时器而已,只是它放在了NVIC中,主要的目的是为了给操作系
在51单片机的学习过程中,我们经常会发现中断、计数器/定时器、串口是学习单片机的难点,对于初学者来说,这几部分的内容很难理解。但是我个人觉得这几部分内容是单片机学习的重点,如果在一个学期的课堂学习或者自学中没有理解这几部分内容,那就等于还没有
80C51的中断系统有5个中断源(8052有 6个) ,2个优先级,可实现二级中断嵌套 。MCS-51系列单片机中
在单片机的学习过程中,单片机定时器的合理设置和应用是非常关键的一步,也是刚开始接触单片机知识