微波EDA网,见证研发工程师的成长! 2025婵犵數濮烽弫鍛婃叏閹绢喗鍎夊鑸靛姇缁狙囧箹鐎涙ɑ灏ù婊呭亾娣囧﹪濡堕崟顓炲闂佸憡鐟ョ换姗€寮婚敐澶婄闁挎繂妫Λ鍕磼閻愵剙鍔ゆ繛纭风節瀵鎮㈤崨濠勭Ф闂佸憡鎸嗛崨顔筋啅缂傚倸鍊烽懗鑸靛垔椤撱垹鍨傞柛顐f礀閽冪喖鏌曟繛鐐珕闁稿妫濋弻娑氫沪閸撗€妲堝銈呴獜閹凤拷04闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾剧懓顪冪€n亝鎹i柣顓炴閵嗘帒顫濋敐鍛婵°倗濮烽崑鐐烘偋閻樻眹鈧線寮撮姀鈩冩珕闂佽姤锚椤︻喚绱旈弴銏♀拻濞达綀娅g敮娑㈡煕閺冣偓濞茬喖鐛弽顓ф晝闁靛牆娲g粭澶婎渻閵堝棛澧遍柛瀣仱閹繝濡烽埡鍌滃幗闂佸搫娲ㄩ崑娑㈠焵椤掆偓濠€閬嶅焵椤掍胶鍟查柟鍑ゆ嫹27闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾剧懓顪冪€n亝鎹i柣顓炴閵嗘帒顫濋敐鍛婵°倗濮烽崑鐐烘偋閻樻眹鈧線寮撮姀鈩冩珖闂侀€炲苯澧扮紒顕嗙到铻栧ù锝堟椤旀洟姊洪悷鎵憼闁荤喆鍎甸幃姗€鍩¢崘顏嗭紲闂佺粯鐟㈤崑鎾绘煕閵娿儳鍩g€殿喖顭锋俊鎼佸煛閸屾矮绨介梻浣呵归張顒傜矙閹达富鏁傞柨鐕傛嫹 闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾剧懓顪冪€n亝鎹i柣顓炴閵嗘帒顫濋敐鍛婵°倗濮烽崑鐐烘偋閻樻眹鈧線寮撮姀鐘栄囨煕鐏炲墽鐓瑙勬礀閳规垿顢欑紒鎾剁窗闂佸憡顭嗛崘锝嗙€洪悗骞垮劚濞茬娀宕戦幘鑸靛枂闁告洦鍓涢敍娑㈡⒑閸涘⿴娈曞┑鐐诧躬閹即顢氶埀顒€鐣烽崼鏇ㄦ晢濠㈣泛顑嗗▍灞解攽閻樺灚鏆╁┑顔芥尦楠炲﹥寰勯幇顒傦紱闂佽宕橀褔鏌ㄩ妶鍡曠箚闁靛牆瀚崗宀勬煕濞嗗繑顥㈡慨濠呮缁辨帒螣閼姐値妲梻浣呵归敃銈咃耿闁秴鐒垫い鎺嶈兌閸熸煡鏌熼崙銈嗗闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾剧懓顪冪€n亝鎹i柣顓炴閵嗘帒顫濋敐鍛婵°倗濮烽崑鐐烘偋閻樻眹鈧線寮撮姀鈩冩珖闂侀€炲苯澧扮紒顕嗙到铻栧ù锝堟椤旀洟姊洪悷鎵憼闁荤喆鍎甸幃姗€鍩¢崘顏嗭紲闂佺粯鐟㈤崑鎾绘煕閵娿儳鍩g€殿喖顭锋俊鎼佸煛閸屾矮绨介梻浣呵归張顒傜矙閹达富鏁傞柨鐕傛嫹
首页 > 硬件设计 > 嵌入式设计 > 51单片机的at24c02驱动程序

51单片机的at24c02驱动程序

时间:12-01 来源:互联网 点击:
//////////////////////////////////////////////////////// 头文件 /////////////////////////////////////////////////////////////////////////////////////////

/******************************************************************************

* 标题: 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

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top