温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
I2C
总线
芯片
AT24C02
程序设计
精简
I I2 2C C 总线芯片总线芯片 AT24C02AT24C02 程序设计(精简版)程序设计(精简版)#include#define uchar unsigned charsbit sda=P20;sbit scl=P21;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()/应答,在数据传送 8 位后,等待或者发送一个应答信号uchar i;scl=1;delay();while(sda=1)&(i250)i+;scl=0;delay();void init()/初始化函数,拉高 sda 和 scl 两条总线sda=1;scl=1;/*/*根据数据有效性规则,读写数据时必须将 SCL 拉高,然后送入或读出数据,完毕后再将SCL 拉低*/*/void write_byte(uchar date)/写一字节,将 date 写入 AT24C02 中uchar i;scl=0;for(i=0;i8;i+)date=date1;sda=CY;/将要送入数据送入 sdascl=1;/scl 拉高准备写数据delay();scl=0;/scl 拉低数据写完毕delay();uchar read_byte()/读取一字节,从 AT24C02 中读取一个字节uchar i,k;for(i=0;i8;i+)scl=1;/scl 拉高准备读数据delay();k=(k0;a-)for(b=100;b0;b-);/*/*读出与写入数据时必须严格遵守时序要求*/*/void write_add(uchar address,uchar date)/向 AT24C02 中写数据start();write_byte(0 xa0);respons();write_byte(address);respons();write_byte(date);respons();stop();uchar read_add(uchar address)/从 AT24C02 中读出数据uchar date;start();write_byte(0 xa0);respons();write_byte(address);respons();start();write_byte(0 xa1);respons();date=read_byte();stop();return date;void main()init();/初始化 AT24C02write_add(23,0 x55);/在 23 地址处写入数据 0 x55;delay1(100);P1=read_add(23);/读出地址为 23 处的数据while(1);