当前位置: 首页 > news >正文

网站建设简单案例联系我们_网站制作公司

网站建设简单案例,联系我们_网站制作公司,小程序短链接生成,网页设计师单片机——I2C 宗旨#xff1a;技术的学习是有限的#xff0c;分享的精神是无限的。 UART 属于异步通信#xff0c;比如电脑发送给单片机#xff0c;电脑只负责把数据通过TXD 发送出来即可#xff0c;接收数据是单片机自己的事情。而 I2C 属于同步通信#xff0c; SCL 时…单片机——I2C 宗旨技术的学习是有限的分享的精神是无限的。 UART 属于异步通信比如电脑发送给单片机电脑只负责把数据通过TXD 发送出来即可接收数据是单片机自己的事情。而 I2C 属于同步通信 SCL 时钟线负责收发双方的时钟节拍 SDA 数据线负责传输数据。 I2C 的发送方和接收方都以 SCL 这个时钟节拍为基准进行数据的发送和接收。 I2C总线包括SCL,SDA 两根信号线其中SCL是时钟线SDA是数据线。 1、起始信号 UART 通信是从一直持续的高电平出现一个低电平标志起始位而 I2C 通信的起始信号的定义是 SCL 为高电平期间 SDA 由高电平向低电平变化产生一个下降沿表示起始信号。 2、数据传输 UART 是低位在前高位在后而 I2C 通信是高位在前低位在后。UART 通信数据位是固定长度波特率分之一一位一位固定时间发送完毕就可以了。而 I2C 没有固定波特率但是有时序的要求要求当 SCL 在低电平的时候 SDA 允许变化。 3、停止信号 UART 通信的停止位是一位固定的高电平信号 而 I2C 通信停止信号的定义是 SCL 为高电平期间 SDA 由低电平向高电平变化产生一个上升沿表示结束信号。 4、写完从器件之后等待从器件的应答 在主器件完成对从器件的写操作时候每次会有一个字节的数据主器件会等待从器件发送指示信号这个指示信号是说从器件已经接受到了主器件的数据这是由从器件的硬件来完成的不需要主器件来软件操作只需要等待 5、主器件读完数据后向从器件发送应答信号 这其实包括两种情况一种是主器件读完后还要继续读就要发送一个继续读的信号其实就是发送0另一种就是不再继续读了就要发送停止读信号其实就是发送1。 6、I2C寻址模式 I2C 通信的起始信号(Start)后首先要发送一个从机的地址这个地址一共有 7位紧跟着的第 8 位是数据方向位(R/W)“ 0”表示接下来要发送数据写‘“ 1”表示接下来是请求数据读。第九位 ACK应答。  #includereg52.h #includeintrins.h#define I2CDelay() {_nop_();_nop_();_nop_();_nop_();} sbit I2C_SCL P3 ^ 7; sbit I2C_SDA P3 ^ 6;/* 产生总线起始信号 */ void I2CStart() {I2C_SDA 1; //首先确保SDA、SCL都是高电平I2C_SCL 1;I2CDelay();I2C_SDA 0; //先拉低SDAI2CDelay();I2C_SCL 0; //再拉低SCL } /* 产生总线停止信号 */ void I2CStop() {I2C_SCL 0; //首先确保SDA、SCL都是低电平I2C_SDA 0;I2CDelay();I2C_SCL 1; //先拉高SCLI2CDelay();I2C_SDA 1; //再拉高SDAI2CDelay(); } /* I2C总线写操作dat-待写入字节返回值-从机应答位的值 */ bit I2CWrite(unsigned char dat) {bit ack; //用于暂存应答位的值unsigned char mask; //用于探测字节内某一位值的掩码变量for (mask 0x80; mask ! 0; mask 1) //从高位到低位依次进行{if ((mask dat) 0) //该位的值输出到SDA上{I2C_SDA 0;}else{I2C_SDA 1;}I2CDelay();I2C_SCL 1; //拉高SCLI2CDelay();I2C_SCL 0; //再拉低SCL完成一个位周期}I2C_SDA 1; //8位数据发送完后主机释放SDA以检测从机应答I2CDelay();I2C_SCL 1; //拉高SCLack I2C_SDA; //读取此时的SDA值即为从机的应答值I2CDelay();I2C_SCL 0; //再拉低SCL完成应答位并保持住总线return (~ack); //应答值取反以符合通常的逻辑//0不存在或忙或写入失败1存在且空闲或写入成功 } /* I2C总线读操作并发送非应答信号返回值-读到的字节 */ unsigned char I2CReadNAK() {unsigned char mask;unsigned char dat;I2C_SDA 1; //首先确保主机释放SDAfor (mask 0x80; mask ! 0; mask 1) //从高位到低位依次进行{I2CDelay();I2C_SCL 1; //拉高SCLif(I2C_SDA 0) //读取SDA的值{dat ~mask; //为0时dat中对应位清零}else{dat | mask; //为1时dat中对应位置1}I2CDelay();I2C_SCL 0; //再拉低SCL以使从机发送出下一位}I2C_SDA 1; //8位数据发送完后拉高SDA发送非应答信号I2CDelay();I2C_SCL 1; //拉高SCLI2CDelay();I2C_SCL 0; //再拉低SCL完成非应答位并保持住总线return dat; } /* I2C总线读操作并发送应答信号返回值-读到的字节 */ unsigned char I2CReadACK() {unsigned char mask;unsigned char dat;I2C_SDA 1; //首先确保主机释放SDAfor (mask 0x80; mask ! 0; mask 1) //从高位到低位依次进行{I2CDelay();I2C_SCL 1; //拉高SCLif(I2C_SDA 0) //读取SDA的值{dat ~mask; //为0时dat中对应位清零}else{dat | mask; //为1时dat中对应位置1}I2CDelay();I2C_SCL 0; //再拉低SCL以使从机发送出下一位}I2C_SDA 0; //8位数据发送完后拉低SDA发送应答信号I2CDelay();I2C_SCL 1; //拉高SCLI2CDelay();I2C_SCL 0; //再拉低SCL完成应答位并保持住总线return dat; }
http://www.zqtcl.cn/news/574635/

相关文章:

  • 即墨网站建设招聘企业类网站有哪些
  • 汕头网站建设开发软件开发属于哪个专业
  • 企业网站建设规划书阿里云虚拟机怎么做多个网站
  • 营销平台网站建设做视频怎么做
  • 吉林房地产网站开发icp网站授权函
  • 深圳公司网站建设哪家好郑州短视频培训机构
  • 网络培训班答案百度seo收录软件
  • 中核工建设集团有限公司网站网站建设管理中se是什么意思
  • 网站如何做关键词引流网站怎么快速做收录
  • 网站建设文案网站设计要学哪些
  • 品牌网站建设gs平台搭建工具
  • 怎么把自己做的网站弄到域名上柳州游戏网站建设
  • 做衣服类网站策划书高端建设网站企业
  • 珠海网站建设公司有哪些代替做网站推广
  • 泰安的网站建设公司旅游网站建设规划报告怎么写
  • 如何建设淘宝客网站什么是网络营销常用的网络营销方法有哪些
  • 大连华南网站建设深圳网站建设公司的外文名是
  • 做招投标网站云南昆明网站建设价格
  • 越秀区网站建设公司微网站菜单
  • vs2017网站开发广州网站建设易得
  • 长沙企业网站建设价格陕西省门户网站建设政策
  • 龙华营销型网站制作wordpress最近评论
  • 嘉兴微信网站做一个招聘信息的网站_用什么做网站的软件
  • 各种购物网站大全上海市建设工程检测网
  • 网站推广沈阳php网站开发接口开发
  • 莱芜 做网站 公司官网开发
  • tomcat做网站做自媒体查找素材的网站
  • 信阳建设企业网站公司软件开发平台公司
  • 营销型网站建设营销型设计家官网视频
  • 部门网站建设目的加猛挣钱免费做网站软件