博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[51单片机] EEPROM 24c02 [读取存储多字节]
阅读量:6447 次
发布时间:2019-06-23

本文共 3047 字,大约阅读时间需要 10 分钟。

 

先将数据存进去,然后再读出来显示在数码管上。

除了代码里定义的连线外还要把p0连接到8位数码管的8针上。

1 /*-----------------------------------------------  2 名称:IIC协议 EEPROM24c02  3 内容:此程序用于检测EEPROM性能,测试方法如下:写入24c02一些数据,然后在内存中清除这些数据,  4 掉电后主内存将失去这些信息,然后从24c02中调入这些数据。看是否与写入的相同。  5 函数是采用软件延时的方法产生SCL脉冲,固对高晶振频率要作 一定的修改....(本例是1us机器  6 周期,即晶振频率要小于12MHZ)  7 ------------------------------------------------*/    8 #include 
//头文件的包含 9 #include
10 11 #define _Nop() _nop_() //定义空指令 12 13 // 常,变量定义区 14 unsigned char code dofly_DuanMa[]={
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f, 15 0x77,0x7c,0x39,0x5e,0x79,0x71};// 显示段码值0~F 16 unsigned char code dofly_WeiMa[]={
0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//分别对应相应的数码管点亮,即位码 17 18 sbit LATCH1=P2^2; 19 sbit LATCH2=P2^3; 20 21 sbit SDA=P2^1; //模拟I2C数据传送位 22 sbit SCL=P2^0; //模拟I2C时钟控制位 23 24 bit ack; //应答标志位 25 26 void DelayUs2x(unsigned char t);//函数声明 27 void DelayMs(unsigned char t); 28 /*------------------------------------------------ 29 uS延时函数,含有输入参数 unsigned char t,无返回值 30 unsigned char 是定义无符号字符变量,其值的范围是 31 0~255 这里使用晶振12M,精确延时请使用汇编,大致延时 32 长度如下 T=tx2+5 uS 33 ------------------------------------------------*/ 34 void DelayUs2x(unsigned char t) 35 { 36 while(--t); 37 } 38 /*------------------------------------------------ 39 mS延时函数,含有输入参数 unsigned char t,无返回值 40 unsigned char 是定义无符号字符变量,其值的范围是 41 0~255 这里使用晶振12M,精确延时请使用汇编 42 ------------------------------------------------*/ 43 void DelayMs(unsigned char t) 44 { 45 46 while(t--) 47 { 48 //大致延时1mS 49 DelayUs2x(245); 50 DelayUs2x(245); 51 } 52 } 53 /*------------------------------------------------ 54 启动总线 55 ------------------------------------------------*/ 56 void Start_I2c() 57 { 58 SDA=1; //发送起始条件的数据信号 59 _Nop(); 60 SCL=1; 61 _Nop(); //起始条件建立时间大于4.7us,延时 62 _Nop(); 63 _Nop(); 64 _Nop(); 65 _Nop(); 66 SDA=0; //发送起始信号 67 _Nop(); //起始条件锁定时间大于4μ 68 _Nop(); 69 _Nop(); 70 _Nop(); 71 _Nop(); 72 SCL=0; //钳住I2C总线,准备发送或接收数据 73 _Nop(); 74 _Nop(); 75 } 76 /*------------------------------------------------ 77 结束总线 78 ------------------------------------------------*/ 79 void Stop_I2c() 80 { 81 SDA=0; //发送结束条件的数据信号 82 _Nop(); //发送结束条件的时钟信号 83 SCL=1; //结束条件建立时间大于4μ 84 _Nop(); 85 _Nop(); 86 _Nop(); 87 _Nop(); 88 _Nop(); 89 SDA=1; //发送I2C总线结束信号 90 _Nop(); 91 _Nop(); 92 _Nop(); 93 _Nop(); 94 } 95 /*---------------------------------------------------------------- 96 字节数据传送函数 97 函数原型: void SendByte(unsigned char c); 98 功能: 将数据c发送出去,可以是地址,也可以是数据,发完后等待应答,并对 99 此状态位进行操作.(不应答或非应答都使ack=0 假) 100 发送数据正常,ack=1; ack=0表示被控器无应答或损坏。101 ------------------------------------------------------------------*/102 void SendByte(unsigned char c)103 {104 unsigned char BitCnt;105 106 for(BitCnt=0;BitCnt<8;BitCnt++) //要传送的数据长度为8位107 {108 if((c<

 

转载地址:http://yqowo.baihongyu.com/

你可能感兴趣的文章
Silverlight发布时的优化工作(2)
查看>>
Visual Studio 2010 Ultimate测试体系结构
查看>>
推荐《认知与设计——理解UI设计准则》读书笔记
查看>>
Windows 2003 AD升级至Windows 2012 AD之DHCP服务器迁移
查看>>
创建和管理表
查看>>
手机视频开发包
查看>>
Nagios短信报警功能通过飞信实现
查看>>
活动目录系列之一:基本概念
查看>>
DNS原理介绍和具体搭建DNS
查看>>
MDOP中的诊断和恢复工具——DaRT
查看>>
mysql dba系统学习(17)mysql的备份和恢复的完整实践
查看>>
Flink SQL 功能解密系列 —— 流计算“撤回(Retraction)”案例分析
查看>>
MS虚拟化架构部署XenDesktop5系列五
查看>>
Properties 类的使用
查看>>
iOS开发-UIWebView加载本地和网络数据
查看>>
JQuery利用sort对DOM元素进行排序
查看>>
Ubuntu:带着Android的芯 走着微软的路
查看>>
Android基础:SlidingDrawer知识
查看>>
笔记三、apache搭建gitweb【转】
查看>>
Thinking in Java系列 文档+代码+简评
查看>>