51单片机定时器模式2与波特率的应用
一般来说,我们串口通讯用到的都是异步串行通讯,工作的方式为方式1.
方式1即为发送一个完整的信号为10个bit.起始信号为低电平,终止信号为高电平,串口通讯的两根线在平常时候都是处于高电平状态,当一旦有数据要进行转发的时候,电平拉低,通讯芯片马上对信号进行监听。这样子就能正常收发数据了。
一般来说,我们都是采用定时器1的模式2(自动重装模式)来作为波特率发生器的,同理,定时器1的中断也就被我们遗弃了,因为为了波特率产生的时候不会受到干扰(如果定时器1有中断函数,那么处理中断函数会关闭定时器1中断,这时候波特率发生器就处于关闭状态了)。根据STC给我们的文档,定时器1所具有的功能是比定时器2更强大的,所以,我们更倾向于把定时器1作为一个正常的中断定时器使用,而通过定时器是用说明也可以了解,定时器2的三种
51单片机定时器模式2与波特率的应用
用途:
1.捕获模式,简单点说就是检测外部引脚跳变时间,在整个负跳变时期记录下所在数值,然后申请中断,我们人工读取数值,得到波形宽度。
2.自动重装模式。跟定时器01的方式2一样,不过这时候他的定时器范围可以达到2^16,并且这里是用的是硬件重载,所以不存在延迟效果,如果我们要使用在对精度有严格要求,并且苦恼于定时器01只能重装到2^8=256,那这个定时器确实就是很强大的选择。
3.波特率发生器,这里跟定时器1的波特率发生器是一样的,同理,他使用的也是自动重装模式,不过这里是使用的是16位的自动重装,这可能也是他其中的优点之一吧,波特率变动范围很广。
关于波特率:波特率就是用来定义串口通讯时候每秒传送的数据量,用bps表示,像我们定义的波特率为600,即每秒发送600个二进制位,而我们每个字符占用十个二进制位,所以我们一秒一共可以发送6个二进制位。
关于波特率选定:一般来说,我们是选用低一点的波特率来进行通讯,因为高的波特率如果在12MHZ的晶振工作模式下,会产生很大的误差,如果时间长了,会导致数据没有办法对上时钟而导致通讯乱码。并且高的波特率因为传送的数据量大,在线的距离拉长的时候,容易产生很严重的干扰,所以还是优先选择低波特率进行通讯。
关于波特率和定时器2:定时器2作为波特率发生器的时候,是通过状态位的设定,来夺取定时器1的波特率发生器的作用,所以这时候我们可以通过设定,让定时器只是作为我们程序单纯中断的用途,然后定时器2作为专门的波特率发生器,这时候我们不用设定定时器2的中断,而且当初始化之后,就不用去管定时器2的中断了,我们要注意的只是串口中断,即通讯电平拉低那一瞬间所产生的中断请求。同理,串口中断跟定时器2中断是完全不同的,这里我们不需要使用定时器2中断,定时器2溢出的时候,会执行两种功能,一就是产生定时器2中断,另外一个是会向波特率发生器发送溢出信号,这时候发生器接收到这个信号的时候,自动进行时钟校对,产生一个bps的时钟信号,所以波特率发生器是这么来的,定时器2说简单点就是用来决定时钟信号的波形宽度的。溢出率越高,那么同一个时间段里面产生的时钟信号也就越密集,发送数据同步了时钟信号,同理也就能够发送更多的数据。
通过上图可得,在600bps的情况下,T2的自动重装值为FD8F.
通过上图的时序图,我们也可以清晰的得到,在上位机和下位机,下位机的时钟频率是由程序规定的,而上位机的时钟频率是由人工设定的,我们只要知道,两个时钟频率是要完全一致的,不然收发数据没有办法正常进行。
(发送)当send信号拉低的时候,txd也拉低表示要进行数据通讯,这时候发送的数据在每个时钟信号高电平的时候进行变换,在时钟信号电平的时候稳定,这样子发送出去的数据就会严格有固定的电平波长和高电平波长,当上位机进行接收到时候,当他检测到接收端的电平拉低的时候也对时钟信号进行同步,把时钟信号的高电平同步到数据接收端第一次电平拉低时刻,然后在时钟信号的低电平期间进行数据采集,比如第第二个时钟信号低电平表示的是这时候数据端的电平状态表示的是数据的第三个bit正在等待捕获,所以,如果时钟必须严格一致就是这个原因。当整个过程完成的时候,TI置位,表示接收完成,所以我们可以一直监听TI的情况,同理,置位情况下要记得给他人工清零。
(接收)接收会有点不同,虽然他也是在时钟同步的情况下进行,但是他是在shift为高电平期间捕获讯号,(上位机可能也是这种情况,暂时没有找到更明确的资料),每个bit的变换时间很短,稳定时间很长,一般来说他是在时钟信号低电平中间进行信号捕获的。当整个过程完成的时候,RI置位,表示接收完成,所以我们可以一直监听RI的情况,同理,置位情况下要记得给他人工清零。
「硬件小百科」单片机定时器计数器的方式控制字
与定时/计数有关两个特殊功能寄存器
在单片机中有两个特殊功能寄存器与定时/计数有关,这就是TMOD和TCON。
顺便说一下,TMOD和TCON是名称,我们在写程序时就能直接用这个名称来指定它们,当然也能直接用它们的地址89H和88H来指定它们(其实用名称也就是直接用地址,汇编软件帮你翻译一下而已)。
<TMOD结构>
从图1中我们能看出,TMOD被分成两部份,每部份4位。分别用于控制T1和T0,至于这里面是什么意思,我们下面介绍。
<TCON结构>
从图2中我们能看出,TCON也被分成两部份,高4位用于定时/计数器,低4位则用于中断(我们暂不管)。而TF1(0)我们上节课已提到了,当计数溢出后TF1(0)就由0变为1。原来TF1(0)在这儿!那么TR0、TR1又是什么呢?看上节课的图。
计数脉冲要进入计数器还真不不难,有层层关要通过,最起码,就是TR0(1)要为1,开关才能合上,脉冲才能过来。因此,TR0(1)称之为运行控制位,可用指令SETB来置位以启动计数器/定时器运行,用指令CLR来关闭定时/计数器的工作,一切尽在自已的掌握中。
<单片机定时器/计数器结构>
定时/计数器的四种工作方式
工作方式0
当TMOD中的M1,M2设置成0,0时,定时器/计数器就工作在方式0,工作方式0是一种13位定时器/计数器方式。
工作方式1
工作方式1为16位定时器/计数其结构和操作与工作方式0基本相同,唯一的区别是工作方式1的计数器由TL0的8位和TH0的8位共同组成16位的计数器,其定时时间为:
t=(216-T0初值)×时钟周期×12
工作方式2
方式2为8位自动装入时间常数方式,方式0和方式1若用于循环重复定时/计数时(如产生连续脉冲信号),每次计数满后溢出时,寄存器TL0和TH0全部为0,所以第二次计数还得重新装入时间初值。这样不仅麻烦而且影响精度。方式2避免了上述缺陷它的定时时间为:
t=(28-T0初值)×时钟周期×12
工作方式3
方式3:特殊工作方式只适用于T0,除了是用8位寄存器TL0外,其功能和操作与方式0和方式1完全相同,但是,另一个计数器TH0只可以工作在内部定时器模式下。工作方式3为T0增加了一个8位的定时器。
定时器/计数器的定时/计数范围
工作方式0:13位定时/计数方式,因此,最多能计到2的13次方,也就是8192次。
工作方式1:16位定时/计数方式,因此,最多能计到2的16次方,也就是65536次。
工作方式2和工作方式3,都是8位的定时/计数方式,因此,最多能计到2的8次方,也说是256次。
预置值计算:用最大计数量减去需要的计数次数即可。
例:流水线上一个包装是12盒,要求每到12盒就产生一个动作,用单片机的工作方式0来控制,应当预置多大的值呢?对了,就是8192-12=8180。
以上是计数,明白了这个道理,定时也是一样。
以上所有信息仅作为学习交流使用,不作为任何学习和商业标准。若您对文中任何信息有异议,欢迎随时提出,谢谢!
关于云创硬见
云创硬见是国内最具特色的电子工程师社区,融合了行业资讯、社群互动、培训学习、活动交流、设计与制造分包等服务,以开放式硬件创新技术交流和培训服务为核心,连接了超过30万工程师和产业链上下游企业,聚焦电子行业的科技创新,聚合最值得关注的产业链资源, 致力于为百万工程师和创新创业型企业打造一站式公共设计与制造服务平台。
相关问答
【51 单片机 定时计数器工作 方式 疑点 单片机定时器 /计数器的工...[最佳回答]因为51单片机处理数据是按八位进行的,所以给定时器赋初值的时候,不能将一个数直接赋到T0中,而是将这个数先转化为一个十六进制数,将它的高两位数(也...
单片机定时器 在12M晶振下, 方式 二最长可定时多久?怎么算?12M晶振,每个指令周期是1us,采用方式1定时,那么定时公式为:定时时间=(2^16-定时初值)×1us,当初值=0时,最大可以是2^16us=65536us即一次循环最多可以定时...1...
有关 单片机定时器 /计数器的工作 方式 1?单片机定时器/计数器的工作方式0,才是13位计数方式,而方式1,是正常的16位方式。保留方式0的目的,是当初为了与早期的8035,四位单片机相兼容。在实际应用时不...
若 单片机 的振荡频率为6MHZ,设 定时器 工作在 方式 1需要定时1MS,...[最佳回答]工作在方式1,定时时间为1000微秒晶振频率=6MHZ则定时时间T=(2的16次方-X)12/6MHZ=1000解出X=2的16次方-500工作在方式1,定时时间为1000微秒...
8052 单片机定时器 /计数器有哪几种工作模式?定时器0有四种工作方式:方式0:13位定时/计数器模式方式1:16位定时/计数器模式方式2:8位可重装载定时/计数器模式方式3:两个单独8位定时/计数器模式定...
单片机 的 定时器 的四种工作 方式 都是什么?书上看不懂。能不能用容易理解的话解释一下?第一种工作方式0,是2的13次方(13位)定时器或计数器,就是最大能数8192个数的模式,数一个数就是1个机器周期。工作方式1就是2的16次方(16位)定时器或计数器...
80c51 单片机定时器 如何选择工作 方式 ?51单片机的定时计数器可以配置成定时器模式或计数器状态,以及每个状态下的工作模式,这个配置是通过模式寄存器TMOD进行操作的。TMOD的C/T位等于0时,相应的定...
51 单片机 中 定时器 的四种工作 方式 的各自定时范围?工作方式013位计数模式最大范围0-8191工作方式116位计数模式最大范围0-65535工作方式28位自动重装计数模式0-255工作模式3(只有T0)TL0和TH0将被分割...
单片机 常用的三种定时方法 - XgWOfNq2 的回答 - 懂得程序延时,定时中断,定时查询.
51 单片机 T0 定时器 4种 方式 的定时时长分别是多少 - 懂得51单片机最大硬件定时时间,就是定时器能定时的时间,最长时间=65536*TcTc=fosc/12,fosc是单片机的晶振频率。以频率=12M为例吧,Tc=1us最大定时时间=6...