51单片机的at24c02驱动程序
/******************************************************************************
* 标题: at24c02 e2prom驱动程序 *
* 文件: at24c02.h at24c02.c *
* 日期: 2010-3-11 *
* 版本: 1.10(试验通过版)可用xl600单片机综合试验仪试验 *
* 邮箱: acsdf139@163.com qq:526083029 *
* 网站: 无 *
*******************************************************************************
* 描述: *
* 用法:首先在主程序内添加头文件#include"at2402.c" *
* 填充 fillbyte(72,0x00); *
* 写入wratbyte(7, 55); *
* 读取a=readrandom(25); *
* *
*******************************************************************************
*自己参照网上,朋友,以及书本资料上写的,所以没有版权 *
*此程序,可用于学习,参考及实际设计中,欢迎转载复制以及建议批评 *
*qq:526083029 小张 *
******************************************************************************/
#ifndef _AT2402_H_
#define _AT2402_H_
#include
#include
#define delayNOP(); {_nop_();_nop_();_nop_();_nop_();};
#define uchar unsigned char
#define atwrite 0xa0 // 器件地址以及写入操作
#define atread 0xa1 // 器件地址以及读取操作
extern void delayms(uchar ms);
extern void atstart();
extern void atstop();
extern bit atack(void);
extern uchar atmcu();
extern bit mcuat(uchar wratdata);
extern void wratbyte(uchar addr, uchar wratdata);
extern void fillbyte(uchar fillsize,uchar filldata);
extern uchar reatbyte();
extern uchar readrandom(uchar random_addr);
#endif
///////////////////////////////////////////////////////////////////////c程序/////////////////////////////////////////////////
#include
#include"at2402.h"
#include
sbit SDAat=P3^7;
sbit SCLat=P3^6;
/*************************************
函数名:delayms
函数功能:延时
参数:ms(时间)
返回:无
备注:无
*************************************/
void delayms(uchar ms)
{
uchar k;
while(ms--)
{
for(k = 0; k < 120; k++);
}
}
/*************************************
函数名:atstart
函数功能:开始位
参数:无
返回:无
备注:无
*************************************/
void atstart()
{
SDAat= 1;
SCLat= 1;
delayNOP();
SDAat = 0;
delayNOP();
SCLat = 0;
}
/*************************************
函数名:atstop
函数功能:停止位
参数:无
返回:无
备注:无
*************************************/
void atstop()
{
SDAat = 0;
delayNOP();
SCLat = 1;
delayNOP();
SDAat = 1;
}
/*************************************
函数名:atack
函数功能:应答
参数:无
返回:ackbit
备注:无
*************************************
bit atack(void)
{
bit ackbit;
SDAat = 1; // 读取应答
delayNOP();
SCLat = 1;
delayNOP();
ackbit = SDAat;
SCLat = 0;
return ackbit;
}
/*************************************
函数名:atmcu
函数功能:从AT24C02移出数据到MCU
参数:无
返回:reatdata
备注:无
*************************************/
uchar atmcu()
{
uchar i,reatdata;
for(i = 0; i < 8; i++)
{
SCLat = 1;
reatdata <= 1;
reatdata |= SDAat;
SCLat = 0;
}
return(reatdata);
}
/*************************************
函数名:m
51单片机at24c02驱动程 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)