英锐恩单片机论坛,Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流

 找回密码
 立即注册
搜索
电子烟方案单片机单片机开发深圳单片机开发
单片机方案国产单片机8位单片机电子烟方案开发
查看: 3979|回复: 0
打印 上一主题 下一主题

读写24C16的c例子

[复制链接]
跳转到指定楼层
1#
发表于 2009-3-24 16:21:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
////////////////////////////////////////////////////////////////

file://24c16读写驱动程序,
file://=-----------------------------------------------------------------------------
--
/*模块调用:
读数据:read(unsigned int address)
写数据:write(unsigned int address,unsigned char dd)   dd为要写的 数据字节*/
file://------------------------------------------------------------------------------
----
sbit sda=P3^0;
sbit scl=P3^1;
sbit a0=ACC^0;                  file://定义ACC的位,利用ACC操作
速度最快
sbit a1=ACC^1;
sbit a2=ACC^2;
sbit a3=ACC^3;
sbit a4=ACC^4;
sbit a5=ACC^5;
sbit a6=ACC^6;
sbit a7=ACC^7;
file://------------------------------------------------------------------------------
--------
#pragma disable
void s24(void)                 file://起始函数
{
_nop_();
    scl=0;
    sda=1;
    scl=1;
    _nop_();
    sda=0;
    _nop_();
    _nop_();
    scl=0;
     _nop_();
    _nop_();
    sda=1;
}


file://------------------------------------------------------------------------------
-------
#pragma disable
void p24(void)                 file://停止函数
{
sda=0;
    scl=1;
    _nop_();
    _nop_();
    sda=1;
}

file://------------------------------------------------------------------------------
------
#pragma disable
unsigned char rd24(void) /////////////////从24c16读一字节数据
{       ACC=0x00;
sda=1;
scl=1;a7=sda;_nop_();_nop_();_nop_();_nop_();scl=0;
scl=1;a6=sda;_nop_();_nop_();_nop_();_nop_();scl=0;
scl=1;a5=sda;_nop_();_nop_();_nop_();_nop_();scl=0;
scl=1;a4=sda;_nop_();_nop_();_nop_();_nop_();scl=0;
scl=1;a3=sda;_nop_();_nop_();_nop_();_nop_();scl=0;
scl=1;a2=sda;_nop_();_nop_();_nop_();_nop_();scl=0;
scl=1;a1=sda;_nop_();_nop_();_nop_();_nop_();scl=0;
scl=1;a0=sda;_nop_();_nop_();_nop_();_nop_();scl=0;
sda=1;scl=1;_nop_();_nop_();_nop_();_nop_
();scl=0; /// ///////////////24c16的一位回答位。
return(ACC);
}
file://------------------------------------------------------------------------------
----
#pragma disable
void wd24(unsigned char dd) ////////////////向24c16写一字节数据
{      sda=1;
ACC=dd;
sda=a7;scl=1;_nop_();_nop_();_nop_();_nop_();scl=0;
sda=a6;scl=1;_nop_();_nop_();_nop_();_nop_();scl=0;
sda=a5;scl=1;_nop_();_nop_();_nop_();_nop_();scl=0;
sda=a4;scl=1;_nop_();_nop_();_nop_();_nop_();scl=0;
sda=a3;scl=1;_nop_();_nop_();_nop_();_nop_();scl=0;
sda=a2;scl=1;_nop_();_nop_();_nop_();_nop_();scl=0;
sda=a1;scl=1;_nop_();_nop_();_nop_();_nop_();scl=0;
sda=a0;scl=1;_nop_();_nop_();_nop_();_nop_();scl=0;
sda=0;scl=1;//scl=0;(在下面程序中)
}
file://---------------------------------------------------------------------------
#pragma disable
unsigned char read(unsigned int address)
{
unsigned char dd;
    s24();                        ////////////////////////开始条件
    wd24(0xa0);                /////////////////////////写器件地址(写命令)
     _nop_();_nop_();_nop_();_nop_();
     scl=0;                        ///////////////////////////////////接收器件地
址确认信号
    wd24(address);                //////////////////////////// 写数据地址
    _nop_();_nop_();_nop_();_nop_();
    scl=0;
s24
();                             ///////////////////////////////////开始条件
    wd24(0xa1);                 /////////////////////////////写器件地址(读命
令)
    scl=0;
    dd=rd24();              //////////////////////////////////读 一字节
    p24();                   ////////////////////////////////////停止条件
    return(dd);
}
file://------------------------------------------------------------------------------
--
#pragma disable
void write(unsigned int address,unsigned char dd)
{

s24();                        /////////////////开始条件
    wd24(0xa0);            ////////////////////////写器件地址;
    scl=0;
    wd24(address);              /////////////////////写数据地址
    scl=0;
    wd24(dd);                  //////////////////////////写dd数据
    scl=0;
    p24();                      /////////////////////////停止条件;
      
}
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|公司首页|Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流 ( 粤ICP备09008620号 )

GMT+8, 2024-12-25 22:18 , Processed in 0.049648 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表