单片机怎么学,先从哪入手开始学,怎么开始入门
无论是对于新手还是已经在行内的朋友,学习单片机技术,实战动手能力十分重要,如果只知道从网络上的视频以及配套教材来入手开始学,很肯定的说,你永远也学不会。为何?单片机的学习最重要的一点是需要去动手实战实操,单单只看培训教材,也许看的时候能懂一些,但过了一段时间就会遗忘得一干二净,中国有句成语交“纸上谈兵”,经常用来嘲讽一些完全没有实践过的人,单凭从书上了解的知识就胸有成竹的长篇大论。
在这里建议大家,一定要给自己构建一个合适的动手实战试验场所,结合具体的实操对象就很容易理解单片机的电路组态原理,以及理解单片机的程序编制原理,对于入行不深的人,建议给自己出一道居家智能化的物联网课题,采用单片机作为主控单位,给家里构建出满意的智能化效果,很肯定的说,通过实操学习比读一百遍网络视频都强,如果能有一对一的人带着,会少走很多弯路。
分享80C51单片机的定时计数器的结构和工作原理一些相关知识点给大家,定时计数器是单片机系统当中一个比较重要的一个外设,它的工作方式比较灵活,编程简单,主要用来做定时控制,精确延时频率测量、脉宽测量、信号发生信号检测等,除此之外定时计数器还可以作为串行通信时候波特率的信号发生器。
简单回顾之前分享的时钟周期和机器周期的概念,时钟周期是单片机当中持续的一个最小的时间单位,跟时钟当中的秒差不多一个意思,它指的是时钟源的倒数,比如时钟晶振是11.059,时钟周期就是11.059毫分之一秒,所以时钟周期也称之为振荡周期,是振荡频率的倒数,周期和频率是成反比的,有了时钟周期的概念就可以定义机器周期的概念,80C51单片机一个机器周期定义为12个时钟周期,在这12个时钟周期里面CPU可以完成最基本的操作,机器周期也称之为CPU完成一个基本操作的一个最短时间。
时钟周期有了之后,机器周期时间就比较容易计算了,比如12兆的晶振,时钟周期就是12兆分之一秒,一个机器周期就是12倍的时钟周期,12乘以1/12是一个微秒,如果是6兆的时钟晶振,时钟周期就是6兆分之一秒,时机器周期就是12倍的时钟周期,就是12乘以1/6是2秒,了解这个之后便于讲后面的定时计数器的定时功能。
51单片机的定时计数器有两个,T0定时计数器和定时计数器T1,定时打了个斜杠计数器,所以它有两个功能,定时功能和计数功能,到底是使用定时功能还是使用计数功能,单片机内部所有资源的控制,都是通过对特殊功能寄存器的控制达到它的控制目的,要想使用定时计数器,必然要选择是定时功能还是计数功能,这个由特殊功能寄存器来设置,使用定律之前要先初始化,也就是究竟选择定时功能还是选择计数功能。
C/T位如果设置成0,就代表你选择的是定时功能,设置成1就代表选择的是计数功能,也就是说它有两个功能,一个是定时功能,一个是计数功能,但无论是定时功能还是计数功能,80C51的定时计数器的实质都是一个加一计数器,如果是做定时功能,就是在这个位给它赋一个0,选择的是定时功能,这个时候定时计数器是一个加一计数器,它是对内部的机器周期进行加一,以12兆的晶振为例,一个机器周期的时间就是12兆分之一乘以12一个微秒,也就是说它是一个加一计数器,每过一个机器周期,每来一个机器周期的一个脉冲,这个定时计数器TH0和TL0它会加一,所以它的实质是加一计数器,这两个寄存器实际上也是特殊功能寄存器,分别是8位的构成了一个16位的定时计数器。
单片机上电复位的时候,TH0和T20里面的值都是0,每过一个机器周期的时间里面的值会加一,把里面的值加满的时候,它会产生一个动作,也就是它会溢出叫做定时计数器的溢出,可以发现它是一个16位的定时器计数器,所以它的最大的计数的范围就能够确定下来,也就是说从0开始计数,每来一个机器周期的脉冲,它里面加一,当它加到TH0和TL0都是FF的时候再来一个机器周期的脉冲,也就是说再过一个机器周期的时间这里面的值再加一,这个时候就会溢出,溢出之后会使TCON这个特殊功能寄存器当中的TF0硬件至1,也就是说它会产生一个标志位,可以通过查询这个标志位或者说设置中断方式来知道个定时时间到了,这就是它的定时的功能。