历史上的今天
返回首页

历史上的今天

今天是:2024年12月20日(星期五)

正在发生

2021年12月20日 | 扫盲:什么是单片机时序,如何看懂时序图

2021-12-20 来源:eefocus

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


一、时钟电路

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

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的几个管脚,分别是RS,RW,E,D0…D7。由上面的说明我们可以知道:

RS:数据/命令(状态)选择端,当此脚为高电平时,可以对1602进行数据字节的传输操作,而此脚为低电平时,进行命令(状态)字节的传输操作。

RW:读写选择端,当此脚为高电平可对LCD1602进行读数据操作,反之进行写数据操作。

E:使能信号,其实是LCD1602的数据控制时钟信号,利用该信号的上升沿实现对LCD1602的数据传输。

D0…D7:8位并行数据口。

在此,我们分析两个写时序:写命令和写数据。

1、当我们要写指令字,设置LCD1602的工作方式时:需要把RS置为低电平,RW置为低电平,然后将数据送到数据口D0~D7,最后E引脚一个高脉冲将数据写入。


void WriteCommandLCD(unsigned char WCLCD,BuysC) //BuysC为0时忽略忙检测

{

if (BuysC) ReadStatusLCD(); //根据需要检测忙

LCD_Data = WCLCD; //将要写的命令放在数据线上

LCD_RS = 0; //RS为低表明要写的为命令

LCD_RW = 0; //RS为低表明执行的是写操作

LCD_E = 0;

LCD_E = 0;

LCD_E = 1; //以上三条语句引入一个高脉冲

}

2、当我们要写入数据字,在1602上实现显示时:需要把RS置为高电平,RW置为低电平,然后将数据送到数据口D0~D7,最后E引脚一个高脉冲将数据写入。


void WriteDataLCD(unsigned char WDLCD)

{

ReadStatusLCD(); //检测忙

LCD_Data = WDLCD; //将要写的命令放在数据线上

LCD_RS = 1; //RS为高表明要写的为数据

LCD_RW = 0; //RS为低表明执行的是写操作

LCD_E = 0;

LCD_E = 0;

LCD_E = 1; //以上三条语句引入一个高脉冲

}


写指令和写数据,差别仅仅在于RS的电平不一样而已。以下是LCD1602的时序图,大家写驱动代码的时候一定要充分理解器件的时序图(配合文字说明),否则写不出合格的驱动代码,器件也就不能工作。大家可以将上面的代码对照下图,看是不是一回事。

在这里插入图片描述

看时序图需要注意的问题:

1、注意时间轴,从左往右的方向为时间正向轴,即时间在增长。

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

3、有线交叉状的部分,表示电平在变化。

4、两条平行线分别对应高低电平,如上图右上角所示。

5、密封的菱形部分,表示数据有效,Valid Data这个词也显示了这点。

6、时序图里各个引脚的电平变化,基于的时间轴是一致的。一定要严格按照时间轴的增长方向来精确地观察时序图。要让器件严格的遵守时序图的变化。

7、时间的标注,也是个十分重要的信息,这些时间的标注表明了某些状态所要维持的最短或最长时间。因为器件的工作速度也是有限的,一般都跟不上主控芯片的速度,所以它们直接之间要有时序配合。下面是时序参数表

在这里插入图片描述

推荐阅读

史海拾趣

FerriShield公司的发展小趣事

在快速发展的同时,FerriShield始终不忘履行社会责任。公司积极参与环保事业,推动绿色生产和可持续发展。此外,FerriShield还设立了奖学金和助学金,支持贫困地区的青少年接受教育。这些举措体现了FerriShield作为行业领导者的责任与担当。

以上五个故事均基于FerriShield公司的发展历程和事实描述,展现了其在电子行业中的成长和进步。

HARTING公司的发展小趣事

在国内市场取得一定成绩后,FerriShield开始将目光投向国际市场。公司积极参加国际电子展,展示其先进的技术和产品。同时,FerriShield还与国际知名电子品牌建立了合作关系,为其提供定制化的电磁屏蔽解决方案。通过这些努力,FerriShield的产品逐渐打入国际市场,并赢得了良好的口碑。

福声科技(FUET)公司的发展小趣事

福声科技(FUET)的初创可以追溯到几年前,当时电子产业正蓬勃发展,对高质量电声元器件的需求日益增长。公司创始人凭借在电声领域的深厚积累,决定成立一家专注于电声产品研发、生产和销售的企业。初期,福声科技聚焦于贴片式无源蜂鸣器、高分贝报警器等产品,凭借其高性价比和稳定的性能,迅速在家电、移动通讯设备等领域获得市场认可,为公司的后续发展奠定了坚实基础。

Capital Advanced Technologies公司的发展小趣事

面对未来电子行业的发展趋势和市场变化,CAT制定了明确的发展战略和布局。公司将继续加大研发投入,推动技术创新和产业升级;同时,积极拓展新的应用领域和市场空间,寻求与更多合作伙伴的共赢发展。此外,CAT还将注重人才培养和团队建设,为公司的长远发展提供坚实的人才保障。

通过以上五个故事,我们可以看到Capital Advanced Technologies公司在电子行业里发展起来的艰辛与辉煌。他们凭借技术创新、市场拓展、品质管理和战略布局等方面的不断努力,逐渐成为了电子行业的领军企业。

CUI公司的发展小趣事

随着环保意识的逐渐提升,电子行业开始寻求更加环保的CUI材料和生产工艺。一些公司投入大量研发资金,成功开发出低挥发性有机化合物(VOC)含量的CUI涂料,不仅降低了生产过程中的环境污染,还提高了产品的环保性能。

DLG Hanbit公司的发展小趣事

为了保证产品的品质,DLG Hanbit公司建立了严格的质量管理体系,并引进了国际先进的质量检测设备。公司还积极参与国际标准制定,与全球知名电子企业建立了合作关系。通过不断提升产品品质和服务水平,DLG Hanbit公司的产品在国际市场上获得了认可,公司也逐渐实现了国际化战略。

问答坊 | AI 解惑

预祝2010年新年快乐啦~~

今年测了十几块板子 ,解决了很多问题,借本宝地,预祝自己及帮助过的网友新年快乐! …

查看全部问答>

介绍一款INTERSIL 的矩阵开关芯片

本帖最后由 jameswangsynnex 于 2015-3-3 19:59 编辑 介绍一款INTERSIL 的矩阵开关芯片 …

查看全部问答>

大赛基本知识

本帖最后由 paulhyde 于 2014-9-15 09:21 编辑 什么是阻尼二极管 1 .阻尼二极管的特点及应用   阻尼二极管类似于高频、高压整流二极管,其特点是具有较低有电压降和较高的工作频率,且能承受较高的反向击穿电压和较大的峰值电流。   阻 ...…

查看全部问答>

如何用单片机编写音符程序,还有就是。。。。。

大家好:    如何用单片机编写音符程序,我不是很懂,有没有什么好的软件,把曲子转换成十六进字,…

查看全部问答>

我是新手,哪位大虾帮我看看啊!!

npc1210要求1mA的恒流源输入,我给它的输入口串了一个5K的电阻,并加了5V的恒压源,为什么我用万用表测电压源和输入引脚间的电阻是大约5K,可电流测出来却只有0.6mA左右!!!…

查看全部问答>

液晶屏 横竖屏切换 怎么修改?

如题! 修改驱动么? Thanks in  advance!…

查看全部问答>

使用仿真器的时候如何让串口输出调试信息?

在使用仿真器的时候, 单步跟踪的情况下, 串口不能输出信息?就算你处于运行状态也不行,是否 仿真器的JTAG 将 串口传输给处理了呢? 如何让使用仿真器的时候串口输出调试信息?…

查看全部问答>

为国赛做点什么吧

本帖最后由 paulhyde 于 2014-9-15 09:45 编辑 明年的大学生电子大赛是全国大赛,虽然现在的电子大赛中充斥着一些不好的现象,但是我想还是有很多同学们和我一样,希望能借此机会多学些东西,能靠自己的真正实力来参赛,因此希望大家能为此多提供 ...…

查看全部问答>

想开发#NFC#相关的应用,却不知从何下手?

想开发#NFC#相关的应用,却不知从何下手?恩智浦前不久在大陆和台湾地区启动的NFC合作伙伴项目就可以帮到有志于开发NFC的创新企业和个人。另外在上月的台北#Computex#期间,恩智浦发言人详细介绍了其NFC技术在移动领域的创新应用,以及#GoogleWalle ...…

查看全部问答>

高手来看看这个电阻值咋求啊

ADC采样,一个电路不知道该怎么求电阻了,高手来看看…

查看全部问答>