24C02的C控制程序

贵州家电维修网 http://www.gz112.cn 2008-4-8 11:49:17 来源:贵阳蓝天整理



24C02的C控制程序

#define uchar unsigned char

#define uint unsigned int

#include <reg52.h>

#include <stdio.h>

#include <absacc.h>

sbit scl=P3^5;  //24c02 SCL

sbit sda=P3^4;  //24c02 SDA

sbit DOG=P1^7;  //狗

uchar x24c02_read(uchar address);  //从24c02的地址address中读取一个字节数据

void x24c02_write(uchar address,uchar info);  //向24c02的address地址中写入一字节数据info

void x24c02_init();   //24c02初始化子程序

void delay1(uchar x);

void flash();

void x24c01_init();

void start();

void stop();

void writex(uchar j);

uchar readx();

void clock();

void delay1(uchar x)

{

   uint i;

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

   DOG=~DOG;

}

void flash()

{

   uchar u;

   DOG=~DOG;

}

void x24c02_init()

{

   scl=1; flash(); sda=1; flash();

}

void start()

{

   sda=1; flash(); scl=1; flash(); sda=0; flash(); scl=0; flash();

}

void stop()

{

   sda=0; flash(); scl=1; flash(); sda=1; flash();

}

void writex(uchar j)

{

   uchar i,temp;

   temp=j;

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

      temp=temp<<1; scl=0; flash(); sda=CY; flash(); scl=1; flash();

   }

   scl=0; flash(); sda=1; flash();

}

uchar readx()

{

   uchar i,j,k=0;

   scl=0; flash(); sda=1;

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

      flash(); scl=1; flash();

      if (sda==1) j=1;

      else j=0;

      k=(k<<1)|j; scl=0;

   }

   flash(); return(k);

}

void clock()

{

   uchar i=0;

   scl=1; flash();

   while ((sda==1)&&(i<255))i++;

   scl=0; flash();

}

uchar x24c02_read(uchar address)

{

   uchar i;

   start(); writex(0xa0);

   clock(); writex(address);

   clock(); start();

   writex(0xa1); clock();

   i=readx(); stop();

   delay1(10);

   return(i);

}

void x24c02_write(uchar address,uchar info)

{

   EA=0;

   start(); writex(0xa0);

   clock(); writex(address);

   clock(); writex(info);

   clock(); stop();

   EA=1;

   delay1(50);

}
】 【返回上一页】 【打 印】 【  
更多关于“学院”的新闻
学院评论:(评论内容只代表网友观点,与本站立场无关!)

用户名: 查看更多评论

分 值:100分 85分 70分 55分 40分 25分 10分 0分

内 容:

         (注“”为必填内容。) 验证码: 验证码,看不清楚?请点击刷新验证码

版权及免责声明:


1 .贵州家电维修网所有内容的版权均属于作者或页面内声明的版权人。未经贵州家电维修网的许可,任何其他个人或组织均不得以任何形式将贵州家电维修网的各项资源转载、复制、编辑或发布使用于其他任何场合。

2 .已经本网授权使用作品的,应在授权范围内使用,并注明 “ 来源:贵州家电维修网” 。

3 .本网注明“ 来源:XXX (非贵州家电维修网)” 的作品,均转载自其他媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

4 .因作品内容、版权和其他问题需要同本网联系的,请 30日内进行。

报修热线0851-5531551  
蓝天电器:是贵州家电维修网指定家电维修单位。蓝天电器技术人员均经过专业培训,对家电维修知识有着坚实的基础,并取得了维修家用电器的资格证书。多年来我部在各社区和单位的维修中赢得了社会各界的广泛认可。源于顾客的厚爱,蓝天电器本着“技术取胜 服务社会”的宗旨,对产品的维修质量有保证,服务有跟踪。为便捷顾客,蓝天电器提供上门服务,让顾客更省心、放心。
服务项目:各种彩电、功放、影碟、录象机等家庭影院。冰柜、空调、冷库、电冰箱等制冷设备。电脑、音箱、软件、显示器等电脑相关。风扇、电饭煲、洗衣机、微波炉、电热水器等家用电器。