1. 前言
学习单片机不仅头发会变少,钱包也会变薄。买一套单片机学习套装,加上各式各样的外围器件,动辄就要几百块。然而proteus这款电路仿真软件就很好地照顾到我们穷学生的痛处,妈妈再也不用担心我们没钱学单片机了。
2. I2c介绍
I2c是同步通信,因为主从共用一条SCL时钟线,然后用SDA数据线传信息。
开始信号 | 结束信号 |
---|---|
写/读数据 | 答应从机 |
---|---|
主机向从机发信息 | |
---|---|
主机接收从机信息 | |
中途收发变换 |
从机地址码 |
---|
3. I2c调试器
3.1 i2c调试器位置
在这里可以找到I2C调试器
3.2 打开调试器
当仿真运行时不小心删了窗口,可以这样重新打开
3.3 调试器界面
界面刚开始很小,左右拉一下会有出现其他分栏
(1)界面 是记录数据传输日志,其中箭头表示从机和主机的传输方向XXXXXs 表示时间,S/P/A/N 分别表示开始信号,结束信号,从机的答应和非答应信号
(2) (3) (4) (5)界面 是把i2c调试器当中从机调试用的
3.4 当proteus口中有想要的i2c协议的器件
找到想要的器件(这里以PCF8574A为例)
查找器件的地址
我们选择器件地址是7E(因为他是包括了读写位,最低位先为零以后再作处理)。注意要选择器件的地址范围的最高那个(又例如40h-4Fh的器件,地址选择4E)
然后把调试器的SCL SDA连接好了就可以通过观察(1)界面来判断自己的时序是不是正确的,如果(1)界面啥都没有或者有很多?,那一定是时序错了,回头要去改一下。
出现这样子的就说明通信成功了。
3.5 当proteus口中没有想要的i2c协议的器件
当库里没有想要的器件,我们可以用i2c调试器去模拟
地址1是填写模拟设备的地址 写8位(如7E)读写位留0
连接好SCL 与SDA然后开始仿真
然后一会仿真就会暂停,然后出现一小段日志,这是因为我们还没有写队列,也就是这个用i2c调试器模拟的从机没有给主机发送答应信号,
所以我们可以在2中拉下来选择A 按queue放到了3中,然后继续仿真,就可以通信成功了(1 是预队列,个人感觉没怎么用到)
4. 总结
可能i2c还有更多的用途,但这两个确实很实用,特别是对于刚接触i2c的小伙伴来说,大大节省了debug的时间,但最重要的是够装逼。