/*用I2C通信实现点亮一盏小灯*/

#include#define uchar unsigned char

sbit scl = P3^7;

sbit sda = P3^6;

sbit ADDR0=P1^0;

sbit ADDR1=P1^1;

sbit ADDR2=P1^2;

sbit ENLED1=P1^4;

sbit ENLED2=P1^3;

uchar a;

void delay()

{ ;; }

void start() //开始信号

{

sda=1;

delay();

scl=1;

delay();

sda=0;

delay();

}

void stop() //停止

{

sda=0;

delay();

scl=1;

delay();

sda=1;

delay();

}

void respons() //应答

{

uchar i;

scl=1;

delay();

while((sda==1)&&(i<250))i++; //收到应答SDA=0 或超过时间就不等待了

scl=0;

delay();

}

void init()

{

sda=1;

delay();

scl=1;

delay();

}

void write_byte(uchar date)

{

uchar i,temp;

temp=date;

for(i=0;i<8;i++)

{

temp=temp<<1;

scl=0;

delay();

sda=CY;

delay();

scl=1;

delay();

//scl=0;

// delay();

}

scl=0;

delay();

sda=1;

delay();

}

uchar read_byte()

{

uchar i,k;

scl=0;

delay();

sda=1;

delay();

for(i=0;i<8;i++)

{

scl=1;

delay();

k=(k<<1)|sda;

scl=0;

delay();

}

return k;

}

void delay1(uchar x)

{

uchar a,b;

for(a=x;a>0;a--)

for(b=100;b>0;b--);

}

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();

date=read_byte();

stop();

return date;

}

void main()

{ENLED1=0;

ENLED2=1;

ADDR0=0;

ADDR1=1;

ADDR2=1;

init();

write_add(23,0x01);

delay1(100);

P0=read_add(23);

P0=~P0;

while(1);

}

有问题希望大家可以留言,谢谢

I2C通信基本原理以及使用C语言实现,用I2C通信实现点亮一盏小灯(包含应答)---c语言...相关推荐

  1. 单片机c语言小灯闪烁,单片机c语言闪烁灯程序.doc

    单片机c语言闪烁灯程序 1. 闪烁灯 1. 实验任务 如图4.1.1 所示:在P1.0 端口上接一个发光二极管L1,使L1 在不停地一亮 灭,一亮一灭的时间间隔为0.2 秒. 2. 电路原理图 图4. ...

  2. 8盏流水灯反向闪烁c语言,课程设计(论文)_利用8255A芯片实现流水灯闪烁设计.doc...

    课程设计(论文)_利用8255A芯片实现流水灯闪烁设计 利用8255A芯片实现流水灯闪烁设计 27 - 目录 摘要··········································· ...

  3. 大牛教学 | 在51单片机上用C语言实现循环点亮8盏LED灯

    大家好,最近很多同学都在找分享,也有许多同学问我单片机问题. 在此,在CSDN平台开设账号,分享平时给同学们的案例.希望能帮到更多的人.谢谢 首先是循环点亮LED灯 原理图 如上图,我们有8颗LED等 ...

  4. 调节小灯亮度的c语言程序,需要一个用按键控制一个LED灯亮度的C语言程序

    匿名用户 1级 2012-02-21 回答 /**52系列单片机,晶振12MHz,P1.0输出100Hz方波(即周期10ms),方波由T0定时器产生 P1.3接按键 K1,每按一次按键,方波占空比改变 ...

  5. 【51单片机】在51单片机上用C语言实现循环点亮8盏LED灯

    标题[51单片机] 提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 代码如下(示例): #include <REGX52.H> //sbit LED = P2^0; vo ...

  6. c语言delay_利用C语言编程单片机,制作可以根据环境光照调整亮度的智能灯

    上一节,我们利用C语言编程单片机仿制了达文西的"古怪手电筒",达成了"在有光的时候就会亮,在没有光的情况下绝对不会亮!"的目标. 其实在此基础上,C语言还能做些 ...

  7. 小冲哥c语言视频自学网,C语言二级教学视屏课件_51自学网_小冲哥.doc

    C语言二级教学视屏课件_51自学网_小冲哥.doc C语言二级教学视屏课件(51自学网 小冲哥)1. 第一章设计语言的讲解2. 第一章程序的算法与结构设计.3. 第二章C程序的设计初步了解.4. 第二 ...

  8. Java 网络通信必备之socket通信基本原理介绍

    Java socket通信基本原理介绍 Java socket通信在不断的进行相关代码的开发,下面我们就看看如何才能更好的使用有关技术为我们的编程工作带来一定的帮助. 作者:佚名来源:互联网|2010 ...

  9. 串口通信基本原理介绍

    串口通信基本原理介绍 一. 什么是串口通信? 串行通信是指仅用一根接收线和一根发送线就能将数据以位进行传输的一种通讯方式.尽管串行通信的速度比按字节传输的并行通信慢,但是串口可以在仅仅使用两根线的情况 ...

  10. 共享内存 传一个类指针_大神是如何学习 Go 语言之为什么使用通信来共享内存...

    为什么这么设计(Why's THE Design)是一系列关于计算机领域中程序设计决策的文章,我们在这个系列的每一篇文章中都会提出一个具体的问题并从不同的角度讨论这种设计的优缺点.对具体实现造成的影响 ...

最新文章

  1. 天津商业大学计算机科学与技术分数线,天津商业大学录取分数线2021是多少分(附历年录取分数线)...
  2. 风险项目投资选择与管理
  3. tomcat启动项目内存溢出问题
  4. Supervisor 守护你的进程
  5. springboot jar服务器运行后无法请求_Spring Boot微服务中Chaos Monkey的应用
  6. 《js高级程序设计》6.1.1-6.1.3——数据属性、访问器属性
  7. (chap6 Http首部) 通用首部字段 Connection
  8. 昨天添加的clustrMaps,忘了截屏,今天补上,就作为我在园子里的奠基。
  9. linux中如何改IP
  10. 计算机专业学生创新创优创业情况,高校计算机专业学生创新创业教育模式研究...
  11. 15年程序员老兵的40条编程技巧,句句都是血泪史!
  12. 信息论与编码_学术动态 | “中大网络信息理论与编码研讨会”成功举办
  13. matlab 声纹识别,识别模型论文,关于基于MATLAB的声纹识别系统软件的设计相关参考文献资料-免费论文范文...
  14. 申请谷歌地图API介绍
  15. SoftICE使用(2)-网络远程调试zz xfocus
  16. win10开机的微软服务器,win10系统开机登录微软账户的操作方法
  17. Linux 校准时间命令及其方法
  18. ESP32 入门笔记06: WIFI时钟 + FreeRTOS+《两只老虎》 (ESP32 for Arduino IDE)
  19. 苹果11怎么录屏_苹果11突然黑屏是怎么回事?
  20. matlab踩坑 自带surf 函数找不了 surf 作为函数执行

热门文章

  1. SQL Server数据库简繁体数据混用的问题
  2. 教你如何查询对方来电!
  3. python抓取天气预报_抓取天气预报的代码(Python)
  4. linux vnc开启防火墙,[转载]CentOS 6.0 下 VNC 配置方法(带防火墙配置)
  5. python哈希类型_python 入门之 – hash(十七)
  6. 单体 soa 微服务 区别_程序员必须要知道的SOA和微服务的区别
  7. 合肥工贸高级技工学校计算机系,合肥工贸高级技工学校扎实推进“新技工系统培养”民生工程...
  8. c语言循环重新输入Y,大佬们帮帮忙 帮我改改 怎样能在输入Y后 再次进行for循环...
  9. MySQL(6)-----数据类型
  10. BZOJ1862: [Zjoi2006]GameZ游戏排名系统