一、时钟电路
单片机时钟电路有三种办法:

1、单片机内部有一个用于构成振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是此放大器的输入端和输出端,XTAL1和XTAL2需外接上晶体和得当的电容。

2、有的单片机内部也自带时钟电路,用于产生时钟旗子暗记。
3、单片机管脚XTAL2直接接晶振。
二、周期
1、时钟周期
时钟电路产生时钟旗子暗记的周期我们叫时钟周期(振荡周期)。
单片机通电后就产生了固定标称值的脉冲旗子暗记,单片机便是在脉冲旗子暗记的驱动下顺序地从ROM中(程序存储器)取出指令一条一条的顺序实行,然后进行一系列的微操作掌握,来完成各种指定的动作。
2、机器周期
单片机每访问一次存储器的韶光我们把它称为一个机器周期,它是一个韶光基准就象我们日常生活中利用的秒一样。单片机中一个机器周期包括12个振荡周期。振荡周期便是振荡源的周期也便是我们利用的晶振的韶光周期。一个12M的晶振它的韶光周期是1/12微秒,那么利用12M晶振的单片机它的一个机器周期就该当即是121/12微秒,也便是1微秒。
3、指令周期
单片机中有些指令只要一个机器周期而有些指令则须要两个或三个机器周期其余还有两条指令须要4个机器周期。如何衡量指令实行韶光的是非我们就要用到一个新的观点:指令周期,即实行一条指令所需的机器周期。
三、时序
对付芯片开拓利用来说,时序图是较为核心也较为主要的一个知识点。在厂家给出的芯片数据手册中,时序图也是非常主要的参数细节。开拓者拿到一款芯片时,首先须要做的便是阅读其数据手册,对上面的内容进行提取和节制。因此能够顺利的阅读并理解到单片机时序图想要传达的意思是非常关键的。
单片机时序是指单片机实行指令时应发出的掌握旗子暗记的韶光序列。这些掌握旗子暗记在韶光上的相互关系便是CPU的时序。它是一系列具有韶光顺序的脉冲旗子暗记。
CPU发出的时序有两类:一类用于片内各功能部件的掌握,它们是芯片设计师关注的问题,对用户没有什么意义。另一类用于片外存储器或I/O端口的掌握,须要通过器件的掌握引脚送到片外,这部分时序对剖析硬件电路的事理至关主要,也是软件编程遵照的原则,须要负责节制。
CPU发出的时序有两类:一类用于片内各功能部件的掌握,它们是芯片设计师关注的问题,对用户没有什么意义。另一类用于单片机外部芯片的掌握,这部分时序对剖析硬件电路的事理至关主要,也是软件编程遵照的原则。
操作时序永久利用是任何一片IC芯片的最紧张的内容。一个芯片的所有利用细节都会在它的官方器件手册上包含。以是利用一个器件事情,要充分做好的第一件事便是要把它的器件手册上有用的内容提取,节制其事情时序。
在这里我们以液晶1602为例,剖析其操作时序。其基本时序有读状态,写指令,读数据和写数据。
为了方便大家理解,这里以1602为例进行讲解,1602的引脚是很整洁的SIP单列直插封装,以是器件手册只给出了引脚的功能数据表:
这里,我们须要关注1602的几个管脚,分别是RS,RW,E,D0...D7。由上面的解释我们可以知道:
RS:数据/命令(状态)选择端,当此脚为高电平时,可以对1602进行数据字节的传输操作,而此脚为低电平时,进行命令(状态)字节的传输操作。
RW:读写选择端,当此脚为高电平可对LCD1602进行读数据操作,反之进行写数据操作。
E:使能旗子暗记,实在是LCD1602的数据掌握时钟旗子暗记,利用该旗子暗记的上升沿实现对LCD1602的数据传输。
D0...D7:8位并行数据口。
在此,我们剖析两个写时序:写命令和写数据。
1、当我们要写指令字,设置LCD1602的事情办法时:须要把RS置为低电平,RW置为低电平,然后将数据送到数据口D0~D7,末了E引脚一个高脉冲将数据写入。
2、当我们要写入数据字,在1602上实现显示时:须要把RS置为高电平,RW置为低电平,然后将数据送到数据口D0~D7,末了E引脚一个高脉冲将数据写入。
开拓者只须要关注以下几个管脚:
3脚:VL,液晶显示偏压旗子暗记,用于调度LCD1602的显示比拟度,一样平常会外接电位器用以调度偏压旗子暗记,把稳此脚电压为0时可以得到最强的比拟度。
4脚:RS,数据/命令选择端,当此脚为高电平时,可以对1602进行数据字节的传输操作,而此脚为低电平时,则是进行命令字节的传输操作。命令字节,即是用来对LCD1602的一些事情办法作设置的字节;数据字节,即利用以在1602上显示的字节。值得一提的是,LCD1602的数据是8位的。
5脚:R/W,读写选择端。当此脚为高电平可对LCD1602进行读数据操作,反之进行写数据操作。笔者认为,此脚其实用处不大,直接接地永久置为低电平也不会影响其正常事情。但是尚未经由繁芜系统验证,保留此见地。
6脚:E,使能旗子暗记,实在是LCD1602的数据掌握时钟旗子暗记,利用该旗子暗记的上升沿实现对LCD1602的数据传输。
7~14脚:8位并行数据口,使得对LCD1602的数据读写大为方便。
LCD1602的操作时序
在此,可以先不读出它的数据的状态或者数据本身,以是只须要看两个写时序:
①当要写指令字,设置LCD1602的事情办法时:须要把RS置为低电平,RW置为低电平,然后将数据送到数据口D0~D7,末了E引脚一个高脉冲将数据写入。
②当要写入数据字,在1602上实现显示时:须要把RS置为高电平,RW置为低电平,然后将数据送到数据口D0~D7,末了E引脚一个高脉冲将数据写入。
实际上写指令和写数据,差别仅仅在于RS的电平不一样而已。以下是LCD1602的时序图:
只要逐步学会看时序图,要知道操作一个器件的精华便蕴藏在个中,看懂看准了时序,再操控这个芯片就是非常随意马虎的事了。这里利用1602作为例子紧张是由于1602的时序是目前最大略的时序之一。
看时序图须要把稳的问题:
1、把稳韶光轴,从左往右的方向为韶光正向轴,即韶光在增长。
2、时序图最左边一样平常是某一根引脚的标识,表示此行图线表示该引脚的变革,上图分别标明了RS、R/W、E、DB0~DB7四类引脚的时序变革。
3、有线交叉状的部分,表示电平在变革。
4、两条平行线分别对应高低电平,如上图右上角所示。
5、密封的菱形部分,表示数据有效,Valid Data这个词也显示了这点。
6、时序图里各个引脚的电平变革,基于的韶光轴是同等的。一定要严格按照韶光轴的增长方向来精确地不雅观察时序图。要让器件严格的遵守时序图的变革。
7、韶光的标注,也是个十分主要的信息,这些韶光的标注表明了某些状态所要坚持的最短或最永劫光。由于器件的事情速率也是有限的,一样平常都跟不上主控芯片的速率,以是它们直接之间要有时序合营。下面是时序参数表:
须要十分严重把稳的是,时序图里各个引脚的电平变革,基于的韶光轴是同等的,一定要严格按照韶光轴的增长方向来精确地不雅观察时序图,要让器件严格的遵守时序图的变革,在类似于18B20这样的单总线器件对此哀求尤为严格。
韶光标注:
细心的朋友或许把稳到了文中关于韶光的标注,这也是个十分主要的信息,这些韶光的标注表明了某些状态所要坚持的最短或最永劫光。由于器件的事情速率也是有限的,一样平常都跟不上主控芯片的速率,以是它们直接之间要有时序合营。下面是时序参数表:
开拓者要把稳估计主控芯片的指令韶光,可以在官方数据手册上查到MCU的一些级别参数。比如现在用AVRM16做为主控芯片,外部12MHz晶振,(1/12MHz)s是振荡周期,而不是时钟周期,由于时钟周期(状态周期)即是两个振荡周期,换句话说便是对振动频率进行“二分频”的振荡旗子暗记,以是(2/12MHz)s才是晶振为12MHz时的时钟周期。
以上给的韶光参数全部是ns级别的,以是即便在程序里不加延时程序,也该当可以很好的合营LCD1602的时序哀求了。怎么看这个表呢?很大略,在时序图里可以找到TR1,对合时序参数表,可以查到这个是E上升沿/低落沿韶光,最大值为25ns,表示E引脚上的电平变革,必须在最大为25ns之内的韶光完成。
以上先容的这些内容,虽然因此LCD1602为例,但这仅仅是为了帮助大家进行理解,个中提到的参数是大部分单片机都会有的,因此大家可以通过本文中给予的解读办法来套用到其他单片机当中,大部分的单片机时序图都会遵照文中给出的规则,昔时夜家逐渐节制个中的内容后,就可以创造实在看懂单片机的时序图实在并不难。
现在我来解读我对这个时序图的理解:
当要写命令字节的时候,韶光由左往右,RS变为低电平,R/W变为低电平,把稳看是RS的状态先变革完成。然后这时,DB0~DB7上数据进入有效阶段,接着E引脚有一个整脉冲的跳变,接着要坚持韶光最小值为tpw=400ns的E脉冲宽度。然后E引脚负跳变,RS电平变革,R/W电平变革。这样便是一个完全的LCD1602写命令的时序。






