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

怎样上网站dns解析不了大学生学风建设专题网站

怎样上网站dns解析不了,大学生学风建设专题网站,一家公司多个网站备案,失信被执行人名单查询官网51单片机快速入门之 IIC 总线通信 协议: 空闲时 SCL/SDA 为高电平SCL高时 SDA下降沿 为开始信号开始信号之后: SCL高电平时 SDA不能变化 , SCL低电平时 SDA才可变 SDA 传数据时 从高到低按位传输 SCL一个脉冲高电平对应一位数据 4.SCL高电平时 SDA上升沿 为停止信号 数…51单片机快速入门之 IIC 总线通信 协议: 空闲时 SCL/SDA 为高电平SCL高时   SDA下降沿 为开始信号开始信号之后: SCL高电平时 SDA不能变化  , SCL低电平时 SDA才可变   SDA 传数据时 从高到低按位传输  SCL一个脉冲高电平对应一位数据 4.SCL高电平时 SDA上升沿 为停止信号 数据格式: 1.单字节格式: 开始信号数据(高到低)应答(ACK)信号接收方SDA低电平停止信号 2.多字节格式: 开始信号发送设备地址和读写方向应答ACK信号数据传输应答ACK信号接收方SDA低电平停止信号 I2C 元器件  24c02(E^2PROM) 读/写操作:  1.单字节写流程: 开始信号7位地址(1010固 0A 0B 0C)读1/写024C02回复ACK信号发送一个字节ACK信号停止信号 2.页写流程(多字节): 开始信号7位地址(1010固 0A 0B 0C)读1/写024C02回复ACK信号发第一个字节数据地址ACK第一个字节数据ACK第二个字节数据...一直到停止信号 或者16字节 最多可一次写入2-16字节! 超出会自动从初始位置覆盖数据 17时覆盖第一个字节数据,之后还有数据往后递增覆盖 3.立即地址读操作: N范围(0~255)00H~FFH 开始信号7位地址(1010固 0A 0B 0C)读1/写0ack回复读取一个字节数据(上次操作地址N1的数据)停止信号 N255时 下一个跳转读取 0  4.选择读操作: 任选地址读 开始信号7位地址(1010固 0A 0B 0C)读1/写0低0伪写操作ackN字节地址从ack开始信号7位地址(1010固 0A 0B 0C)读1/写0读信号 1从ack获取N地址下的数据停止信号 5.连续读操作: 立即地址读操作 连续 开始信号7位地址读1读取FFH(255)为第一个数据,主ACK00H主ack...直到出现主ack不回复 停下来停止信号才结束本次读取 选择读操作 连续 开始信号7位地址(1010固 0A 0B 0C)读1/写0低0伪写操作ackN字节地址从ack开始信号7位地址(1010固 0A 0B 0C)读1/写0读信号 1从ack获取N地址下的数据ackN1数据ack .....直到停止信号 电路图: 捣鼓了好几天,终于调试通了原来这元器件和书上的不同 所以说还是要多看看元器件数据手册才好,不然出了问题都找不到在哪!  就是这里 地址位我弄错了,书上很模糊所以我理解为 A0 A1 A2  顺序错了 实际上是A2 A1 A0  代码(简单发送): #include STC89C5xRC.H//加载头文件,晶振12MHzsbit SCLP2^0; //时钟线 sbit SDAP2^1; //数据线void delay(unsigned int t); // 延时函数声明 void startI2C();//开始信号 void stopI2C();//停止信号void SendByte(unsigned char dat);//发送字节数据void main() {SendByte(0xA2);//发送从机地址SendByte(0x00);//发送需要存入那个字节的地址 00H~FFHSendByte(0x44); //发送需要存储的数据 P170;模拟环境提示操作成功用 ,实际使用可删除while(1); // 防止程序重复运行 }void startI2C() //开始信号 {SDA1; //首先拉高SDAdelay(10);//给他点时间SCL1; //拉高SCLdelay(10); //1usSDA0; //拉低SDA 触发开始信号delay(10); //1usSCL0; //手动拉低确保时序准确 初始化以接受数据delay(10); //1us }void stopI2C() //停止信号 {if(SCL1SDA0) //只有当SCL1 而且SDA0时才触发 SDA0保证已经接受到ACK回复信号{delay(10); //等一会SDA1; //拉高SDA ,上升沿触发停止信号} else if(SCL0) //当SCL0时,这句没啥用其实 ,防止 SCL0 触发不了停止信号 {delay(10);SCL1; //把scl 拉高if(SDA0) //判断是否接收到ACK回复 {delay(10);SDA1;}}}void SendByte(unsigned char dat)//发送字节数据 {unsigned char bita;startI2C();//发送开始信号for(bita0; bita8; bita) {if((datbita)0x80) //每次根据bita 的值左移 bita位 再和 0x80(1000 0000) 与操作(只保最高位) {SDA1; //如果是1,拉高sda传送一个1 过去} else {SDA0;// 反之给0}delay(10); //让它们稳定一下SCL1;//上升读取 因开始信号已经拉低SCLdelay(10); //稳定时间 SCL0; //下降写入数据 也可以说这是复位delay(10); //稳定时间} SDA1; //8位传完就拉高等待ACK触发SCL0; //下降写入数据 保证循环正确输出8位SCL1; //拉高以配合ACK delay(10);//等待if(SDA!1) //sda0 证明 ack已回复 触发停止信号 {stopI2C();P300; //模拟环境提示操作成功用 ,实际使用可删除} else {P100;//模拟环境提示操作成功用 ,实际使用可删除}}void delay(unsigned int t) // 简单延迟函数 {while(t--); } 运行效果: 程序设置了一个监视,操作成功会拉低P30 代码(简单读取): #include STC89C5xRC.Hsbit SCLP2^0; //时钟线 sbit SDAP2^1; //数据线 sbit DQP2^4;//读取按键 void delay(unsigned int t); // 延时函数声明 void startI2C();//开始信号 void stopI2C();//停止信号 bit x; //用于存储ACK信息 unsigned char u;void SendByte(unsigned char dat);//发送字节数据void main() {SendByte(0xA2);//发送从机地址 最后一位置0 写入x0;SendByte(0x01);//发送字节地址x0;SendByte(0x66); //发送需要存储的数据if(x1) {stopI2C(); //停止信号}P10;x0;while(DQ1);//阻断程序运行,当按钮按下往下执行//按键判断读取并赋值给P1寄存器if(DQ0) {SendByte(0xA3);//发送从机地址 最后一位置1 实际读取if(x1) { //表示读取请求被响应unsigned char red,bint;P330;red0;// 在读取数据的循环之前添加SDA释放if(SDA!1SCL!1) {SDA 1; // 释放SDA线delay(0);}// 读取数据的循环for(bint0; bint8; bint) {delay(20);//延时等待SCL0;//读取数据delay(20);//延时等待SCL1;//delay(20);// 检查SDA状态并更新red的值if(SDA1) { //如果读取到高电平red |1(7 - bint); // 设置对应位为1} else {red |0(7-bint);}delay(10);//延时等待}SCL0;//读取数据delay(10);//延时等待SDA 1; // nackdelay(10);P1red;//把获取到的值直接用到P1中stopI2C(); //停止信号}}while(1); // 防止程序重复运行 }void startI2C() {SDA1;delay(10);SCL1;delay(10); //1usSDA0;delay(10); //1usSCL0; //手动拉低确保时序准确delay(10); //1us }void stopI2C() {if(SCL1SDA0) {delay(10);SDA1;} else if(SCL0) {delay(10);SCL1;if(SDA0) {delay(10);SDA1;}}}void SendByte(unsigned char dat)//发送字节数据 {unsigned char bita;startI2C();//发送开始信号for(bita0; bita8; bita) {if((datbita)0x80) {SDA1;} else {SDA0;}delay(10);SCL1;//上升读取 因开始信号已经拉低SCLdelay(10);SCL0; //下降写入数据delay(10);}SDA1;SCL0; //下降写入数据 保证循环正确输出8位SCL1;delay(10);if(SDA0) {x1; //有回复为1P300;} else {x0; //无回复为0// P100;}}void delay(unsigned int t) // 简单延迟函数 {while(t--); } 读取运行效果 : 由图可以看出,元器件根本没有回复数据(试过选择地址读取,也没效果) 所以就这样吧! 最后更新于2024/10/24 0:01
http://www.dnsts.com.cn/news/243374.html

相关文章:

  • 营销型网站建设原则衡水有做网站的吗
  • 茂名企业网站建设开发适合夜晚直播软件
  • 丰台石家庄网站建设旅游网站开发研究背景
  • 网站建设傲梧州网站设计
  • 网站首页phpcms怎么添加新开传奇网站首区
  • 宁波住房和城乡建设网站注册一个公司需要几个人
  • 网站被刷流量怎么办阿里云建设网站好吗
  • 有什么网站可以做宣传图片建设学校网站的报告
  • 广州建设公司网站北京大兴专业网站建设公司
  • 营销型网站建设域名是个体工商户做网站
  • 泰安正规的网站建设集团门户网站建设公司
  • 工程建设部网站温州企业网站建设费用
  • 有阿里云服务器 怎么做网站明年开春有望摘口罩
  • 中韩双语网站制作价格淄博营销网站建设公司
  • 企业网站php源码亚马逊书店购书官网
  • 自主网站制作红酒网站源码
  • 网站换程序301做淘客网站需要企业的域名
  • 怎么查看网站的空间商网站域名哪看
  • 哪个网站做美食视频网站网站收款即时到账怎么做的
  • 建站系统破解百度地图怎么导航环线
  • 网站建设依据网站的栏目结构简图怎么做
  • 公司做网站找谁公司做网站找谁确定目标是指
  • 珠海东莞网站建设响应式网站研究现状
  • 网站建站推荐南阳响应式网站
  • 17网站一起做网店appwordpress add filter
  • 淡水网站建设哪家便宜WordPress手机用户提示登录
  • 专业做酒类营销的网站建设积分商城网站
  • 如何在阿里云部署网站开商城网站
  • 邢台手机网站建设报价厦门哪里有教网站建设
  • 太原网站制作推广百度网站链接提交页面