产品选型

单片机的时序图 技术文章—教你快速读懂单片机时序图

小编 2024-10-12 产品选型 23 0

技术文章—教你快速读懂单片机时序图

我们都知道在学校是通过铃声来控制所有班级的上下课时间,那个单片机是通过什么样的办法进行取指令,执行指令和其它操作的呢?在这里引入了一个时序的概念:

一、时钟电路

单片机时钟电路有三种方式:

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

2、有的单片机内部也自带时钟电路,用于产生时钟信号。

3、单片机管脚XTAL2直接接晶振。

二、周期

1、时钟周期

时钟电路产生时钟信号的周期我们叫时钟周期(振荡周期)。

单片机通电后就产生了固定标称值的脉冲信号,单片机就是在脉冲信号的驱动下顺序地从ROM中(程序存储器)取出指令一条一条的顺序执行,然后进行一系列的微操作控制,来完成各种指定的动作。

2、机器周期

单片机每访问一次存储器的时间我们把它称为一个机器周期,它是一个时间基准就象我们日常生活中使用的秒一样。单片机中一个机器周期包括12个振荡周期。振荡周期就是振荡源的周期也就是我们使用的晶振的时间周期。一个12M的晶振它的时间周期是1/12微秒,那么使用12M晶振的单片机它的一个机器周期就应该等于12*1/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写命令的时序。

搞定单片机时序图,这几招教给你!

对于“时序”,大家一定都不陌生,因为操作时序永远是使用任何一片IC芯片的最主要的内容。一个芯片的所有使用细节都会在它的官方器件手册上包含。所以使用一个器件事情,要充分做好的第一件事就是要把它的器件手册上有用的内容提取,掌握。

介于中国目前的芯片设计能力有限,所以大部分的器件都是外国几个IC巨头比如TI、AT、MAXIM这些公司生产的,器件资料自然也是英文的多,所以,英文的基础要在阅读这些数据手册时得到提高哦。即便有中文翻译版本,还是建议看英文原版,看不懂时不妨再参考中文版,这样比较利于提高。

我们首先来看1602的引脚定义,1602的引脚是很整齐的SIP单列直插封装,所以器件手册只给出了引脚的功能数据表:

我们只需要关注以下几个管脚:

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的时序是我见过的一个最简单的时序:

1、 注意时间轴,如果没有标明(其实大部分也都是不标明的),那么从左往右的方向为时间正向轴,即时间在增长。

2、 上图框出并注明了看懂此图的一些常识:

(1).时序图最左边一般是某一根引脚的标识,表示此行图线体现该引脚的变化,上图分别标明了RS、R/W、E、DB0~DB7四类引脚的时序变化。

(2).有线交叉状的部分,表示电平在变化,如上所标注。

(3).应该比较容易理解,如上图右上角所示,两条平行线分别对应高低电平,也正好吻合(2)中电平变化的说法。

(4).上图下,密封的菱形部分,注意要密封,表示数据有效,Valid Data这个词也显示了这点。

3、 需要十分严重注意的是,时序图里各个引脚的电平变化,基于的时间轴是一致的。一定要严格按照时间轴的增长方向来精确地观察时序图。要让器件严格的遵守时序图的变化。在类似于18B20这样的单总线器件对此要求尤为严格。

4、 以上几点,并不是LCD1602的时序图所特有的,绝大部分的时序图都遵循着这样的一般规则,所以大家要慢慢的习惯于这样的规则。

也许你还注意到了上面有许多关于时间的标注,这也是个十分重要的信息,这些时间的标注表明了某些状态所要维持的最短或最长时间。因为器件的工作速度也是有限的,一般都跟不上主控芯片的速度,所以它们直接之间要有时序配合。话说现在各种处理器的主频也是疯狂增长,日后搞不好出现个双核单片机也不一定就是梦话。下面是时序参数表:

大家要懂得估计主控芯片的指令时间,可以在官方数据手册上查到MCU的一些级别参数。比如我们现在用AVR M16做为主控芯片,外部12MHz晶振,指令周期就是一个时钟周期为(2/12MHz)s,所以至少确定了它执行一条指令的时间是us级别的。

我们看到,以上给的时间参数全部是ns级别的,所以即便我们在程序里不加延时程序,也应该可以很好的配合LCD1602的时序要求了。怎么看这个表呢?很简单,我们在时序图里可以找到TR1,对应时序参数表,可以查到这个是E上升沿/下降沿时间,最大值为25ns,表示E引脚上的电平变化,必须在最大为25ns之内的时间完成。大家看是不是这个意思?

现在来解读对这个时序图的理解:

当要写命令字节的时候,时间由左往右,RS变为低电平,R/W变为低电平,注意看是RS的状态先变化完成。然后这时,DB0~DB7上数据进入有效阶段,接着E引脚有一个整脉冲的跳变,接着要维持时间最小值为tpw=400ns的E脉冲宽度。然后E引脚负跳变,RS电平变化,R/W电平变化。这样便是一个完整的LCD1602写命令的时序。

相关问答

如何弄懂 单片机时序 ?

单片机时序,我的理解是依据时钟信号,遵循标准,传输数据的过程。那么如果要弄清楚单片机时序,首先需要先弄清楚单片机的时钟信号,时钟信号驱动内核、外设工作...

请问 单片机 中的 时序 有什么用?-ZOL问答

怎么看时序图在这里没办法说清楚,还是建议你通过更多的学习来掌握吧。至于时序的作用,简单地说,数字电路,是工作在一个统一的时钟下的,从时序图上可以清楚地得...

对于51 单片机 上电后,各I/O口的状态是什么?-ZOL问答

51单片机上电复位后,各输出口的状态都是1。当执行指令MOVX@DPTR,A时,这是51单片机写,对应的WE为0;当执行指令MOVXA,@DPTR时,这是51单片机读,对应的RD为0;.....

单片机 写命令与写数据的区别?

1计算机、单片机与I/O接口芯片的信息传递分为四种情况:(1)向I/O接口芯片送控制字(2)读I/O接口芯片的状态(3)向I/O接口芯片写数据(4)读I/O接口芯...1计...

单片机 上的ds18b20温度传感器是什么工作原理?

DS18B20是使用一根数据线进行通信,首先你要先向它发送一系列脉冲信号。一般我们用的步骤大致为:初始化--跳过ROM操作--启动温度转换--(延时)--初始化--跳过RO...

电气电子专业有哪些常用的专业软件? 申请方

EE专业这么广。。。不同方向锁涉猎的内容不同,电脑上装的东西肯定是不同的。我就尽我所知挑几个常见的说一说吧。1.VC,作为C语言的基本工具,这个对...

dht11温湿度传感器怎么接到探索者STM32?

DHT11是一个温湿度传感器,根据DHT11的引脚图,将DHT11数据线DATA接到单片机的IO口,并将DHT11的电源供电3.3-5V,地线与单片机共地,NC脚悬空。然后软件部分,...

SPI怎么和SDA进行数据通讯?

SDA和SCL是IIC/I2C中用到的两个线,一根是数据线,一根是时钟线。SPI也是一种通讯方式,一般为三线或者四线制。IIC和SPI都是非常常用的近距离通讯总线,一般芯片...

24C02是什么集成块-ZOL问答

24C02是一款常见的EEPROM芯片,使用I²C接口,容量为256Byte。你这是两个芯片,你是不是想问STM32里是否带内部EEPROM?查stm32f407芯片手册你的程序...

帮个忙在座的朋友,谁能赐教,关于机械手原理?

[回答]机械手主要是靠凸轮机构,有时序图,一般都是3个信号,一个刹车,一个原点,一个持刀,靠接近开关感应来控制机械手的位置注塑机械手是为注塑生产自动化...

猜你喜欢