📄 drv_9346.c
字号:
/****************************************Copyright (c)**************************************************
**
** 合肥皖仪生物电子公司
**
**
**--------------文件信息--------------------------------------------------------------------------------
**文 件 名: drv_9346.c
**创 建 人: 吴成加
**最后修改日期: 2007年8月12日
**描 述:
**
**--------------历史版本信息----------------------------------------------------------------------------
** 创建人: 吴成加
** 版 本: v1.0
** 日 期: 2007年8月12日
** 描 述: 原始版本
**
**------------------------------------------------------------------------------------------------------
** 修改人:
** 版 本:
** 日 期:
** 描 述:
**
**--------------当前版本修订------------------------------------------------------------------------------
** 修改人:
** 日 期:
** 描 述:
**
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
#include "\inc\system.h"
// ee_write(0x08,0x24); ee_value=ee_read(0x08);
/*********************************************************************************************************
** 函数名称: write_enable()
** 功能描述: 写使能控制
** 输 入:
** 输 出:
** 全局变量:
** 调用模块:
** 作 者: 吴成加
** 日 期: 2007年8月12日
**-------------------------------------------------------------------------------------------------------
** 修 改 人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
void write_enable(void)
{
unsigned char i=0;
unsigned char dump=0xc0; //11******b
C46_CS=1;
MCLK=0;
MOSI=1;
MCLK=1;
MCLK=0;
MOSI=0;
MCLK=1;
MCLK=0;
MOSI=0;
MCLK=1; //begin
for(i=0;i<7;i++)
{
MCLK=0;
if(dump&0x80)MOSI=1;
else MOSI=0;
MCLK=1;
dump=(dump<<1);
}
MCLK=0;
C46_CS=0;
}
/*********************************************************************************************************
** 函数名称: write_disable()
** 功能描述: 写禁止
** 输 入:
** 输 出:
** 全局变量:
** 调用模块:
** 作 者: 吴成加
** 日 期: 2007年8月12日
**-------------------------------------------------------------------------------------------------------
** 修 改 人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
void write_disable(void)
{
unsigned char i=0;
unsigned char dump=0x00; //00000***b
C46_CS=1;
MCLK=0;
MOSI=1;
MCLK=1;
MCLK=0;
MOSI=0;
MCLK=1;
MCLK=0;
MOSI=0;
MCLK=1; //begin
for(i=0;i<7;i++){
MCLK=1;
if(dump&0x80) MOSI=1;
else MOSI=0;
MCLK=0;
dump=(dump<<1);
}
C46_CS=0;
}
/*********************************************************************************************************
** 函数名称: ee_write()
** 功能描述: 向指定的地址单元写入一个数
** 输 入:
** 输 出:
** 全局变量:
** 调用模块: write_enable(),write_disable()
** 作 者: 吴成加
** 日 期: 2007年8月12日
**-------------------------------------------------------------------------------------------------------
** 修 改 人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
void ee_write(unsigned char address , unsigned char data)
{
unsigned char i=0;
write_enable();
C46_CS=1;
MCLK=0;
MOSI=1;
MCLK=1;
MCLK=0;
MOSI=0;
MCLK=1;
MCLK=0;
MOSI=1;
MCLK=1; //begin
for(i=0;i<7;i++){
MCLK=0;
if(address&0x80) MOSI=1;
else MOSI=0;
MCLK=1;
address=address<<1;
}
for(i=0;i<8;i++){
MCLK=0;
if(data&0x80) MOSI=1;
else MOSI=0;
MCLK=1;
data=data<<1;
}
C46_CS=0;
C46_CS=1;
while(1){
MCLK=0;
if(MISO==1) break;
MCLK=1;
}
C46_CS=0;
write_disable();
}
/*********************************************************************************************************
** 函数名称: ee_read()
** 功能描述: 从指定的地址单元读出一个数据
** 输 入:
** 输 出:
** 全局变量:
** 调用模块:
** 作 者:
** 日 期:
**-------------------------------------------------------------------------------------------------------
** 修 改 人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
unsigned char ee_read(unsigned char address)
{
unsigned char dump=0;
unsigned char i=0;
C46_CS=1;
MCLK=0;
MOSI=1;
MCLK=1;
MCLK=0;
MOSI=1;
MCLK=1;
MCLK=0;
MOSI=0;
MCLK=1;
for(i=0;i<8;i++){
MCLK=0;
if(address&0x80) MOSI=1;
else MOSI=0;
MCLK=1;
address=(address<<1);
}
for(i=0;i<8;i++){
MCLK=1;
dump=(dump<<1);
dump|=MISO;
MCLK=0;
}
C46_CS=0;
return dump;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -