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

网站注册 优帮云网络销售培训学校

网站注册 优帮云,网络销售培训学校,wordpress打分免插件,东莞市产品网络推广为了加深对I2C总线的理解#xff0c;用C语言模拟IIC总线#xff0c;边看源代码边读波形#xff1a; 如下图所示的写操作的时序图#xff1a; 读时序的理解同理。对于时序不理解的朋友请参考“I2C总线之(二)---时序” 完整的程序如下#xff1a; #includereg51.h…为了加深对I2C总线的理解用C语言模拟IIC总线边看源代码边读波形 如下图所示的写操作的时序图 读时序的理解同理。对于时序不理解的朋友请参考“I2C总线之(二)---时序” 完整的程序如下 #includereg51.h #define uchar unsigned char #define uint unsigned int #define write_ADD 0xa0 #define read_ADD 0xa1 uchar a; sbit SDAP2^0; sbit SCLP2^1; void SomeNop(); //短延时 void init(); //初始化 void check_ACK(void) void I2CStart(void); void I2cStop(void); void write_byte(uchar dat);//写字节 void delay(uint z); uchar read_byte(); //读字节 void write(uchar addr,uchar dat); //指定地址写 uchar read(uchar addr); //指定地址读 bit flag; //应答标志位 void main() {init();write_add(5,0xaa); //向地址5写入0xaadelay(10); //延时,否则被坑呀P1read_add(5); //读取地址5的值while(1); }//*************************************************************************** void delay()//简单延时函数 { ;; } //*************************************************************************** void start() //开始信号 SCL在高电平期间SDA一个下降沿则表示启动信号 { sda1; //释放SDA总线 delay(); scl1; delay(); sda0; delay(); } //*************************************************************************** void stop() //停止 SCL在高电平期间SDA一个上升沿则表示停止信号 { sda0; delay(); scl1; delay(); sda1; delay(); } //*************************************************************************** void respons() //应答 SCL在高电平期间SDA被从设备拉为低电平表示应答 { uchar i; scl1; delay(); //至多等待250个CPU时钟周期 while((sda1)(i250))i; scl0; delay(); } //*************************************************************************** void init()//总线初始化 将总线都拉高一释放总线 发送启动信号前要先初始化总线。即总有检测到总线空闲才开始发送启动信号 { sda1; delay(); scl1; delay(); } //*************************************************************************** void write_byte(uchar date) //写一个字节 { uchar i,temp; tempdate; for(i0;i8;i) { temptemp1; scl0;//拉低SCL因为只有在时钟信号为低电平期间按数据线上的高低电平状态才允许变化并在此时和上一个循环的scl1一起形成一个上升沿 delay(); sdaCY; delay(); scl1;//拉高SCL此时SDA上的数据稳定 delay(); } scl0;//拉低SCL为下次数据传输做好准备 delay(); sda1;//释放SDA总线接下来由从设备控制比如从设备接收完数据后在SCL为高时拉低SDA作为应答信号 delay(); } //*************************************************************************** uchar read_byte()//读一个字节 { uchar i,k; scl0; delay(); sda1; delay(); for(i0;i8;i) { scl1;//上升沿时IIC设备将数据放在sda线上并在高电平期间数据已经稳定可以接收啦 delay(); k(k1)|sda; scl0;//拉低SCL使发送端可以把数据放在SDA上 delay(); } return k; } //*************************************************************************** void write_add(uchar address,uchar date)//任意地址写一个字节 { start();//启动 write_byte(0xa0);//发送从设备地址 respons();//等待从设备的响应 write_byte(address);//发出芯片内地址 respons();//等待从设备的响应 write_byte(date);//发送数据 respons();//等待从设备的响应 stop();//停止 } //*************************************************************************** uchar read_add(uchar address)//读取一个字节 { uchar date; start();//启动 write_byte(0xa0);//发送发送从设备地址 写操作 respons();//等待从设备的响应 write_byte(address);//发送芯片内地址 respons();//等待从设备的响应 start();//启动 write_byte(0xa1);//发送发送从设备地址 读操作 respons();//等待从设备的响应 dateread_byte();//获取数据 stop();//停止 return date;//返回数据 }
http://www.pierceye.com/news/827973/

相关文章:

  • 在百度做网站需要什么资料appstore正版下载
  • wordpress怎么做404页面合肥seo软件
  • 建设网站挂广告赚钱免费个人网站源码
  • 网站ico图标动漫设计学什么内容
  • fireworks做网站定制做网站费用
  • 建设门户网站所需优秀营销网站设计
  • 行业网站建设教程办一家建筑公司流程
  • 网站空间文件夹中企动力主要是做什么的
  • 亚马逊做qa的网站wordpress theme是什么
  • 网站开发的经费预算php网站超市源码下载
  • 深圳建设高端网站asp.net 获取网站的绝对路径
  • 做的网站没流量吗前端页面设计
  • 门户网站的优点在环评备案网站上做登记后会怎么样
  • 网站的内容规划怎么写网站做外链的具体步骤
  • 百度网站排名规则小程序网站建设y021
  • 中国建设银行国际互联网站国内排名前五的电商
  • 怎么查网站的空间商四川建设工程招标网
  • 网站建设比较好公司朝阳区互联网公司排名
  • 百度不收录网站吗网站开发php
  • 房产网站建设的功能wordpress php7拓展
  • 做网站代码用什么软件天津建设工程信息网天津
  • 网站开发工程师前景怎么样怎么做自己的网站?
  • 井陉矿区网站建设做微商的网站
  • 办公室装修专业网站小程序免费制作平台有吗
  • 学生做兼职去哪个网站线上推广的渠道有哪些
  • 徐州网站的优化苏州百度推广开户
  • 网站有多少个网站建设与管理介绍
  • 网站建站报告2000字查询公司的网站
  • 兰州网站制作服务电话博客建站模板
  • 网站后台登陆路径网站网站优化