?? 24lc1025.c
字號:
/*==============================================================================
文件(模塊)名:24lc1025.c
日期: 2008年3月14日
公司(作者): 西安澳潤公司
描述和說明: 24lc1025讀寫總線通信程序
===============================================================================*/
#include "F2407REGS_c.h"
#define H_SDA PCDATDIR = PCDATDIR | 0x0001; //IOPC0:H_SDA;
/* 0000,0000,0000,0001 =0x0001
0~~~ ~~~~ ~~~~ ~~~~ [C7DIR] 0:input; 1:output
~0~~ ~~~~ ~~~~ ~~~~ [C6DIR] 0:input; 1:output
~~0~ ~~~~ ~~~~ ~~~~ [C5DIR] 0:input; 1:output
~~~0 ~~~~ ~~~~ ~~~~ [C4DIR] 0:input; 1:output
~~~~ 0~~~ ~~~~ ~~~~ [C3DIR] 0:input; 1:output
~~~~ ~0~~ ~~~~ ~~~~ [C2DIR] 0:input; 1:output
~~~~ ~~0~ ~~~~ ~~~~ [C1DIR] 0:input; 1:output
~~~~ ~~~0 ~~~~ ~~~~ [C0DIR] 0:input; 1:output
~~~~ ~~~~ 0~~~ ~~~~ [IOPC7] 0:low; 1:high
~~~~ ~~~~ ~0~~ ~~~~ [IOPC6] 0:low; 1:high
~~~~ ~~~~ ~~0~ ~~~~ [IOPC5] 0:low; 1:high
~~~~ ~~~~ ~~~0 ~~~~ [IOPC4] 0:low; 1:high
~~~~ ~~~~ ~~~~ 0~~~ [IOPC3] 0:low; 1:high
~~~~ ~~~~ ~~~~ ~0~~ [IOPC2] 0:low; 1:high
~~~~ ~~~~ ~~~~ ~~0~ [IOPC1] 0:low; 1:high
~~~~ ~~~~ ~~~~ ~~~1 [IOPC0] 0:low; 1:high
*/
#define L_SDA PCDATDIR = PCDATDIR & 0xFFFE; //L_SDA;
#define H_SCL PCDATDIR = PCDATDIR | 0x0008; //IOPC3:H_SCL;
/* 0000,0000,0000,1000 =0x0008
0~~~ ~~~~ ~~~~ ~~~~ [C7DIR] 0:input; 1:output
~0~~ ~~~~ ~~~~ ~~~~ [C6DIR] 0:input; 1:output
~~0~ ~~~~ ~~~~ ~~~~ [C5DIR] 0:input; 1:output
~~~0 ~~~~ ~~~~ ~~~~ [C4DIR] 0:input; 1:output
~~~~ 0~~~ ~~~~ ~~~~ [C3DIR] 0:input; 1:output
~~~~ ~0~~ ~~~~ ~~~~ [C2DIR] 0:input; 1:output
~~~~ ~~0~ ~~~~ ~~~~ [C1DIR] 0:input; 1:output
~~~~ ~~~0 ~~~~ ~~~~ [C0DIR] 0:input; 1:output
~~~~ ~~~~ 0~~~ ~~~~ [IOPC7] 0:low; 1:high
~~~~ ~~~~ ~0~~ ~~~~ [IOPC6] 0:low; 1:high
~~~~ ~~~~ ~~0~ ~~~~ [IOPC5] 0:low; 1:high
~~~~ ~~~~ ~~~0 ~~~~ [IOPC4] 0:low; 1:high
~~~~ ~~~~ ~~~~ 1~~~ [IOPC3] 0:low; 1:high
~~~~ ~~~~ ~~~~ ~0~~ [IOPC2] 0:low; 1:high
~~~~ ~~~~ ~~~~ ~~0~ [IOPC1] 0:low; 1:high
~~~~ ~~~~ ~~~~ ~~~0 [IOPC0] 0:low; 1:high
*/
#define L_SCL PCDATDIR = PCDATDIR & 0xFFF7; //IOPC3:L_SCL;
/*
#define Nop() asm(" nop");asm(" nop"); asm(" nop");
asm(" nop");asm(" nop"); */
unsigned int ack;
/*************************************************************************
函數(shù)名稱: void Nop()
函數(shù)功能:
入口參數(shù):
出口參數(shù):
描述和說明:
*************************************************************************/
void Nop()
{
asm(" nop"); //
asm(" nop"); //
asm(" nop"); //
asm(" nop"); //
asm(" nop"); //
}
/******************************************************************************
函數(shù)名稱:void InitIOPort_24LC1025
函數(shù)功能:初始化IIC總線I/O口,針對24LC1025,
IOPC0、IOPC1、IOPC2、IOPC3、IOPC4、IOPC5設(shè)為IO口
入口參數(shù):無
出口參數(shù):無
******************************************************************************/
void InitIOPort_24LC1025()
{
MCRB = MCRB & 0xFFC0; //將IOPC0....IOPC5配置為普通I/O
/* 1111,1111,1100,0000 =0xFFC0
1:primary function 0:I/O function
1~~~ ~~~~ ~~~~ ~~~~ [MCRB.15]1:TMS2; 0:Reserved
~1~~ ~~~~ ~~~~ ~~~~ [MCRB.14]1:TMS; 0:Reserved
~~1~ ~~~~ ~~~~ ~~~~ [MCRB.13]1:TDO; 0:Reserved
~~~1 ~~~~ ~~~~ ~~~~ [MCRB.12]1:TDI; 0:Reserved
~~~~ 1~~~ ~~~~ ~~~~ [MCRB.11]1:TCK; 0:Reserved
~~~~ ~1~~ ~~~~ ~~~~ [MCRB.10]1:EMU1; 0:Reserved
~~~~ ~~1~ ~~~~ ~~~~ [MCRB.9] 1:EMU0; 0:Reserved
~~~~ ~~~1 ~~~~ ~~~~ [MCRB.8] 1:XINT2/ADCSOC; 0:IOPD0
~~~~ ~~~~ 1~~~ ~~~~ [MCRB.7] 1:CANRX; 0:IOPC7
~~~~ ~~~~ ~1~~ ~~~~ [MCRB.6] 1:CANTX; 0:IOPC6
~~~~ ~~~~ ~~0~ ~~~~ [MCRB.5] 1:SPISTE; 0:IOPC5
~~~~ ~~~~ ~~~0 ~~~~ [MCRB.4] 1:SPICLK; 0:IOPC4
~~~~ ~~~~ ~~~~ 0~~~ [MCRB.3] 1:SPISOMI; 0:IOPC3
~~~~ ~~~~ ~~~~ ~0~~ [MCRB.2] 1:SPISIMO; 0:IOPC2
~~~~ ~~~~ ~~~~ ~~0~ [MCRB.1] 1:BIO; 0:IOPC1
~~~~ ~~~~ ~~~~ ~~~0 [MCRB.0] 1:W/R; 0:IOPC0
*/
PCDATDIR = PCDATDIR | 0x3E36; // IOPC1,IOPC2,IOPC3,IOPC4,IOPC5為輸出
// WP1,WP2,SCL,WP3,WP4設(shè)置為輸出
// WP1,WP2,WP3,WP4全禁止寫
/* 0011,1110,0011,0110 =0x3E36
0~~~ ~~~~ ~~~~ ~~~~ [C7DIR] 0:input; 1:output
~0~~ ~~~~ ~~~~ ~~~~ [C6DIR] 0:input; 1:output
~~1~ ~~~~ ~~~~ ~~~~ [C5DIR] 0:input; 1:output
~~~1 ~~~~ ~~~~ ~~~~ [C4DIR] 0:input; 1:output
~~~~ 1~~~ ~~~~ ~~~~ [C3DIR] 0:input; 1:output
~~~~ ~1~~ ~~~~ ~~~~ [C2DIR] 0:input; 1:output
~~~~ ~~1~ ~~~~ ~~~~ [C1DIR] 0:input; 1:output
~~~~ ~~~0 ~~~~ ~~~~ [C0DIR] 0:input; 1:output
~~~~ ~~~~ 0~~~ ~~~~ [IOPC7] 0:low; 1:high
~~~~ ~~~~ ~0~~ ~~~~ [IOPC6] 0:low; 1:high
~~~~ ~~~~ ~~1~ ~~~~ [IOPC5] 0:low; 1:high
~~~~ ~~~~ ~~~1 ~~~~ [IOPC4] 0:low; 1:high
~~~~ ~~~~ ~~~~ 0~~~ [IOPC3] 0:low; 1:high
~~~~ ~~~~ ~~~~ ~1~~ [IOPC2] 0:low; 1:high
~~~~ ~~~~ ~~~~ ~~1~ [IOPC1] 0:low; 1:high
~~~~ ~~~~ ~~~~ ~~~0 [IOPC0] 0:low; 1:high
*/
}
Delay()
{
unsigned int i;
for(i=0;i<15000;i++);
//for(i=0;i<15000;i++);
}
/*******************************************************************
起動總線函數(shù)
函數(shù)原型: void Start_I2c_24lc1025();
功能: 啟動I2C總線,即發(fā)送I2C起始條件.
********************************************************************/
void Start_I2c_24lc1025()
{
PCDATDIR = PCDATDIR | 0x0100; // IOPC0為輸出,SDA
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -