网上五花八门的单片机教程,到底应该怎么整理学习过程

痴迷单片机技术的屌丝心酸历程

网上五花八门的单片机教程,到底应该怎么整理学习过程_第1张图片

曾经从零基础学习单片机的我,到找到相应开发工作花了大概三四个月的时间,当时还是11年,学习条件没有现在那么好,现在五花八门的入门教程可以用泛滥来形容了,泛滥不代表作者讲的不好,有些作者老师确实讲的很不错,单片机涉及的东西还是比较多的,但是只要有人帮你理清楚,你就会发现一点都不难,很多人之所以觉得难,大概率都是走了弯路,单片机可以控制硬件激发你的兴趣,比单纯的学习代码在黑框里显示冷冰冰的“Hello world”有趣多了。

网上五花八门的单片机教程,到底应该怎么整理学习过程_第2张图片

简单对定时计数器的工作原理做一个总结,定时计数器通常指的T0和T1,8051单片机内部都是两个16位的定时器计数器,之所以称之为是16位定时计数器,指的T0是由TH0和TL0构成的,这两个每一个都是一个八位的寄存器,它们俩构成16位的计数器,T1是由TH1和TL1构成的,也是两个八位的寄存器加到一起构成了一个16位的寄存器,16位指的是它的计数的范围,最大的计数范围是从0开始计数,最大只能寄65536个数,能不能记到这个数由你的工作方式来选择。

TH0和TL0构成的定时计数器T0,TH1和TL1构成的定时计数器T1,定时计数器有两个功能,内部定时和外部计数,定时计数器的实质都是一个加一计数器,无论是定时还是计数,都是对脉冲进行计数,定时功能是对内部的机器周期进行计数,外部的频率测量是对外部引脚上的这个脉冲进行计数,时间和计数是可以相互转换的,每个定时计数器都可以由软件设置定时工作方式,或者接受工作方式,定时计数器T0和T1受特殊功能寄存器TMOD和TCON的控制,定时计数器一旦启动它和CPU之间是并行工作,CPU可以去干其它的事情。

网上五花八门的单片机教程,到底应该怎么整理学习过程_第3张图片

定时计数器一旦启动,过一个机器周期的时间定时计数器会自动的加一,它只有在加满的时候才会去告诉CPU定时时间到,或者计数之满,其它时候它和CPU之间是互不干扰各干各的工作,它对于提高CPU的工作效率,还有简化外围电路会非常有帮助,需要定时的场合特别的多,比如用外部的定时计数器去扩展,现在都已经把定时计数器做到单片机的内部去了,高性能单片机内部定时计数器的个数会做得更多,51单片机虽然只有两个定时计数器,但实际上可以通过软件的办法来扩充很多的定时计数器来使用,它是对内部的机器周期进行计数,内部的机器周期实际上就是经过片内振荡器,12分屏之后它的周期就会变成12倍,定时计数器的值加一直到计数满产生溢出,溢出之后可以通过软件查询或者去申请CPU的中断,两种方式都可以处理。

计数是对外部脉冲计数,需要用到单片机的外部脉冲的输入引脚,也就是P3.4和P3.5,要想使用外部脉冲计数,必须把外部脉冲信号引入到这两个引脚上,分别对应定时计数器0的计数功能和定时计数器1,这个引脚是固定的,不是任何引脚都可以作为外部脉冲计数,当外部脉冲产生由1到0的下降沿的时候,定时计数器里面的TH0或者TL0,或者是TH1和TL1,里面值会进行加一,CPU会去采样这两个引脚上的输入电平,前一个机器周期采样值为高,下一个机器周期采样值为低,计数器就加一。

网上五花八门的单片机教程,到底应该怎么整理学习过程_第4张图片

时钟晶振最大的频率,外部测量的脉冲的频率,要满足什么样的条件定时计数器的计数功能才能够去采样这个信号,要有两个机器周期的时间才能够采样一个频率的数,它要保证前一个周期是高电平,下一个周期为低电频,计数频率比较高的情况下需要做外部的处理,可以做一个分屏然后再引入到I/O口,最高计数频率为振荡频率的1/24,为了保证某个电平在变化之前至少被采样一次,所以要求电平保持时间至少一个完整的机器周期。

这个主要和单片机有关系,单片机采样I/O口的电平状态是要有一个机器周期才能够采样一次,所以这个电平的要保持一致,少一个机器周期的话,变频变化的太快保持着超过一个机器周期的时间才能采到,比如12兆的晶振,一个高电平或者低电平的时间低于一个秒,单面机就采样不到,定时计数器的控制寄存器TCON用的高四位,TMOD定时计数器的工作方式的设定,以及你是使用定时还是计数?工作方式有四种,要选择哪一种?还有这个地方有一个门空位是什么含义?在之后的分享中会专门做一个专栏来给大家分析,有兴趣的朋友可以持续关注一下。

对单片机感兴趣的可以查看往期分享内容希望能帮助大家在学习单片机的路上少走一些弯路想要入门单片机可以持续关注创为单片机编程附加“带我学习”查看更多内容分享

网上五花八门的单片机教程,到底应该怎么整理学习过程_第5张图片

你可能感兴趣的:(嵌入式,单片机入门,C语言,单片机,stm32,51单片机,嵌入式硬件,c语言)