单片机模拟I2C总线读写EEPROM(24CXX)程序一

发布者:落霞与孤鹜最新更新时间:2016-08-06 来源: eefocus关键字:单片机  模拟I2C总线  读写EEPROM 手机看文章 扫描二维码
随时随地手机看文章
下面是一个最简单的读写程序,可以用来检测线路状况。先附上程序和电路,后面附有说明。

电路:

单片机模拟I2C总线读写EEPROM(24CXX)程序一 - 江南雨 - 江南雨的博客

说明:P2口的LED都是我用来检测电路执行到哪一步的,个人觉得一目了然。

程序:

#include
#define unit unsigned int
#define uchar unsigned char
int ok;
sbit scl=P0^0;          
sbit sda=P0^1;
sbit led0=P2^0;
sbit led1=P2^1;
sbit led2=P2^2;
sbit led3=P2^3;
sbit led4=P2^4;
sbit led5=P2^5;
sbit led6=P2^6;
sbit led7=P2^7;

delay(void)               //delay

  int i;
  led1=1;
  for(i=0;i<1;i++) led1=0;
}

start(void)            //start
{
  sda=1;
  scl=1;
  delay();
  sda=0;
  delay();
  scl=0;
  led0=0;
}

stop(void)         //stop
{
  sda=0;
  scl=1;
  delay();
  sda=1;
  delay();
  scl=0;
}

checkanswer(void)       //check answer
{
  sda=1;
  scl=1;
  if(sda==1)
  {
  F0=1;
  led7=0;
  }
  scl=0; 
  led3=0;
}

sendabyte(int temps)       //send a byte
{
  uchar n=8;
  while(n--)
  {
    led2=1;
    if((temps&0x80)==0x80)
 {
   sda=1;
   scl=1;
   delay();
   scl=0;
 }
 else
 {
   sda=0;
   scl=1;
   delay();
   scl=0;
 }
 temps=temps<<1;
 led2=0;
  }
}

reciveabyte()           //recive a byte
{
  uchar n=8,tempr;
  while(n--)
  {        //uchar idata *abyte
   scl=1;
 tempr=tempr<<1;
 if(sda==1)
   tempr=tempr|0x01;
 else
   tempr=tempr&0xfe;
 scl=0;
  }
  ok=tempr;
  return(ok);
}

main(void)         //MAIN
{
start();

sendabyte(0xa0);
checkanswer();
if(F0==1) return;

sendabyte(0x00);
checkanswer();
if(F0==1) return;

sendabyte(0x11);
checkanswer();
if(F0==1) return;
/*-----------------------*/
start();

sendabyte(0xa0);
checkanswer();
if(F0==1) return;

sendabyte(0x00);
checkanswer();
if(F0==1) return;

start();

sendabyte(0xa1);
checkanswer();
if(F0==1) return;

reciveabyte();
if(ok==0x11) led6=0;
stop();
}

说明:

1、写驱动程序之前建议了解清楚24CXX系列芯片的读写时序,中文资料可以到我的网盘下载,免注册下载链接:http://wdpvip.qupan.com/6293600.html

2、程序功能:先在地址0x00写入一个数据0x11,然后再读出来,若写入的数据和读出的数据一样就点亮led6。

关键字:单片机  模拟I2C总线  读写EEPROM 引用地址:单片机模拟I2C总线读写EEPROM(24CXX)程序一

上一篇:单片机模拟I2C总线读写EEPROM(24CXX)程序二
下一篇:程序状态字寄存器PSW介绍

推荐阅读最新更新时间:2024-03-16 15:04

51单片机使用点滴
8051单片机是我们最常见的一种单片机,我用8051已经很久了,也教过一段时间的单片机课程,在这里把自己的心得与大家分享一下。 一、硬件部分 1、一定要记得接晶振和复位电路。很多学生在Proteus上仿真成功后,焊板子的时候总是不记得把晶振和复位电路接上,这样板子是不会工作的。 2、一般没有特殊要求的话,选用11.0592MHZ的晶振。这样有利于得到没有误差的波特率。特别是当与PC机进行通信的话,选用这种晶振比较好。 3、复位电路的电容可以选择10uF或者22uF。如果是10uF的话,充电电阻R的值要高于4K欧姆,如果你的单片机工作速度很慢,可以选择8.2K欧姆。 4、每个大规模的数字IC旁边都
[单片机]
单片机串行外围接口电路的三线式结构设计
SPI总线接口芯片为完成单片机的常规外围电路扩展设计带来了机遇,可扩展的外围电路包括A/D与D/A转换器、显示、时钟、存储器、监视复位、I/O、显示等。本文利用国内目前较为流行的I2C,SPI串行通信协议实现单片机外围电路的A/D转换、D/A转换、时钟、I/O扩展、E2PROM以及LED驱动器件的扩展功能,实现了单片机系统功能模块化,电路集成化的目的。 1 SPI集成接口芯片功能及应用 1.1 A/D转换器 单片机应用系统中典型的应用模式是通过传感器采集现场的微弱信号参数,经过滤波放大处理后再通过A/D模数转换送至单片机系统实现各种工业调节和控制,在此过程中A/D转换电路的设计尤其重要。早期的A/D转换器与CPU接口一
[单片机]
51单片机学习:静态数码管实验
实验名称:静态数码管实验 接线说明: 实验现象:下载程序后“数码管模块”最左边数码管显示数字0 注意事项: ***************************************************************************************/ #include reg52.h typedef unsigned int u16; //对系统默认数据类型进行重定义 typedef unsigned char u8; #define SMG_A_DP_PORT P0 //使用宏定义数码管段码口 //共阴极数码管显示0~F的段码数据 u8 gsmg_code ={0x3f,0x06,0x5b,0
[单片机]
MCS-51单片机实现与Internet 的交互
实现MCS-51 单片机嵌入式接入Internet 技术。单片机通过ATL8019AS 以太网控制器实现与Internet 的交互。利用开源代码的TCP/IP 协议栈uIP 实现对底层设备的驱动,同时通过uIP 协议的应用程序接口实现各种应用服务。给出了硬件设计图,编写了单片机主程序。应用此技术实现了一个城市中心停车监测系统。 近年来以单片机(MICroComputer Unit,MCU)为代表的嵌入式系统在工业探测系统、智能仪器、安防系统、智能家电和信息家电领域得到了广泛应用。 如果嵌入式系统能够连接到Internet 上,则用户可以方便、快捷、低廉地通过网络进行远程控制、监测和信息传送。Internet 技术和嵌入
[单片机]
MCS-51<font color='red'>单片机</font>实现与Internet 的交互
基于单片机和DS18B20的数字温度计
温度测量是从金属(物质)的热胀冷缩开始,常用的检测方法有电阻式、热电偶式、PN结型、辐射型、光纤式及石英谐振型等。这些检测方法都是基于温度变化引起其物理参数(如电阻值,热电势等)变化的原理。随着大规模集成电路工艺的提高,出现了多种集成的数字化温度传感器。 这里提出一种基于MSP430单片机翻的小型测温系统设计方案,主控制器采用MSP430单片机,数字温度传感器DS18B20通过单总线(1-wire)与单片机连接,系统结构简单,抗干扰能力强,适合于恶劣环境下澍量现场温度,可应用于仓库测温、楼宇空调控制和生产过程监控等领域。 1 数字式温度计的总体设计 该系统以单片机为数字温度计的主控制器,以集成数字温度传感器为温度信息
[单片机]
基于<font color='red'>单片机</font>和DS18B20的数字温度计
东芝将为多功能一体机和打印机等电机控制应用提供新型微控制器
东芝公司今天宣布,该公司已经为多功能一体机和打印机等设备的电机控制应用推出了基于ARM Cortex™-M4F内核的新TX04系列微控制器:“TMPM462F15FG”、“TMPM462F10FG”、“TMPM461F15FG”和 “TMPM461F10FG”。样品将从2013年11月开始提供, 预计到2014年春季开始批量生产。 开发多功能一体机和打印机等设备的尖端电机控制应用,要求微控制器拥有大容量闪存ROM、多个通信通道和内置高分辨率传感器的接口。 即将推出的新型微控制器最多可整合1.5Mbyte闪存ROM、193Kbyte SRAM、20个串行接口通道和1个20通道12位高分辨率模拟/数字转换器。这确保通过单个
[单片机]
51单片机的寻址方式
学习汇编程序设计,要先了解CPU的各种寻址法,才能有效的掌握各个命令的用途,寻址法是命令运算码找操作数的方法。 指令的寻址方式 MOV P1,#0FFH这条指令,第一个词MOV是命令动词,也就是决定做什么事情的,MOV是MOVE少写了一个E,所以就是 传递 ,这就是指令,规定做什么事情,数据传递必须要有一个 源 也就是你要送什么数,必须要有一个 目的 ,也就是你这个数要送到什么地方去,显然在上面那条指令中,要送的数(源)就是0FFH,而要送达的地方(目的地)就是P1这个寄存器。 寻址方式:指定操作数所在单元的方法。 注意:源操作数、目的操作数都有各自的寻址方式。 掌握指令的7种寻址方式的作用以及不同寻址方式所查询的存储空间及范围
[单片机]
51<font color='red'>单片机</font>的寻址方式
基于C8051f020单片机和UDP/IP协议实现地震勘测传感器网络的设计
随着地震勘测技术向着精细测量方向发展,有必要对频带宽、灵敏度高、失真度小的地震检波技术进行深入的研究。同时,在勘测现场要按一定方式放置一组检波器,将这一组检波器的数据进行综合分析,从而得出相应的勘测结果。 本文根据地震勘测原理,提出一种构建地震勘测传感器网络的方案:将各节点信息传输到监控PC机,采用虚拟仪器技术,使用Labview编写运行在PC机上的测控软件,进行相应的数据分析和处理;基于全光纤迈克尔逊干涉系统,采用交流相位跟踪零差检测技术(PTAC),实现对待测信号的精确检测和误差信号的补偿,减小信号漂移对系统的影响;采用C8051f020单片机对解调后的信号进行采样,并将相关数据通过UDP/IP协议进行网络传输。方案实现了
[单片机]
基于C8051f020<font color='red'>单片机</font>和UDP/IP协议实现地震勘测传感器网络的设计
热门资源推荐
热门放大器推荐
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(16)
    ARM有很多东西要学习,那么中断,就肯定是需要学习的东西。自从CPU引入中断以来,才真正地进入多任务系统工作,并且大大提高了工作效率。采 ...
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved