嵌入式学习网_振兴网【官网】
请选择 进入手机版 | 继续访问电脑版

嵌入式学习网_振兴网【官网】

 找回密码
 立即注册

QQ登录

只需一步,快速开始

怎么看懂芯片的时序图?怎么根据时序图编程?

2017-12-20 20:50| 发布者: 振兴| 查看: 950| 评论: 0

摘要: 在数字电路里,只有“0”和“1”的范畴,再复杂的逻辑都是通过0和1的不同组合来实现的。可编程器件的程序编写很复杂,比如路由器、网关等与协议转换相关的产品,其程序动辄十几万行,甚至上百万行。那这么多程序是怎 ...

在数字电路里,只有“0”和“1”的范畴,再复杂的逻辑都是通过0和1的不同组合来实现的。


可编程器件的程序编写很复杂,比如路由器、网关等与协议转换相关的产品,其程序动辄十几万行,甚至上百万行。


那这么多程序是怎么编出来的?有什么依据?


依据当然是有的,任何一个协议都是有协议范本的,协议范本里边都是通过时序图来阐明数据变化的,程序都是根据时序图来编写的。时序图纵使再复杂,万变不离其宗,讲到底还是0和1的不同组合。


通过一副图简单看一下时序。

上图中阐述了,高电平、低电平、电平变化、有效数据等定义。下面通过IIC几个简单的时序来认识一下。


IIC在发送数据时,要先发送起始信号,起始信号如何表示呢?因为IIC是有上拉电阻的,所以没有数据变化时,都默认高电平。通过时序图可以看出SCL在高电平期间,SDA出现下降沿即可模拟起始信号。程序如下:

void IIC_Start(void)

{

SDA = 1; 

delay_us();

SCL = 1

delay_us();

SDA = 0;

delay_us();

}

如果要模拟停止信号,根据时序图只需要在SCL高电平期间,让SDA出现上升沿即可,程序如下:

void IIC_Stop(void)

{

SDA = 0;

delay_us();

SCL = 1

delay_us();

SDA = 1;

delay_us();

}

下面这篇文章分析74HC595的时序图,请点击标题查看。

74HC595驱动数码管


鲜花

握手

雷人

路过

鸡蛋

相关阅读

最新评论

验证问答 换一个

发布主题 联系我们 官方QQ群
返回顶部