首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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

在数字电路里,只有“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();

}

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20171220A0UOOV00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券