?? 51 c
字號:
/*-----------------------------------------------
名稱:IIC協議 頭文件
論壇:www.doflye.net
編寫:shifang
修改:無
內容:
------------------------------------------------*/
#ifndef __I2C_H__
#define __I2C_H__
#include <reg52.h> //頭文件的包含
#include <intrins.h>
#define _Nop() _nop_() //定義空指令
/*------------------------------------------------
uS延時函數,含有輸入參數 unsigned char t,無返回值
unsigned char 是定義無符號字符變量,其值的范圍是
0~255 這里使用晶振12M,精確延時請使用匯編,大致延時
長度如下 T=tx2+5 uS
------------------------------------------------*/
void DelayUs2x(unsigned char t);
/*------------------------------------------------
mS延時函數,含有輸入參數 unsigned char t,無返回值
unsigned char 是定義無符號字符變量,其值的范圍是
0~255 這里使用晶振12M,精確延時請使用匯編
------------------------------------------------*/
void DelayMs(unsigned char t);
/*------------------------------------------------
啟動總線
------------------------------------------------*/
void Start_I2c();
/*------------------------------------------------
結束總線
------------------------------------------------*/
void Stop_I2c();
/*----------------------------------------------------------------
字節數據傳送函數
函數原型: void SendByte(unsigned char c);
功能: 將數據c發送出去,可以是地址,也可以是數據,發完后等待應答,并對
此狀態位進行操作.(不應答或非應答都使ack=0 假)
發送數據正常,ack=1; ack=0表示被控器無應答或損壞。
------------------------------------------------------------------*/
void SendByte(unsigned char c);
/*----------------------------------------------------------------
字節數據傳送函數
函數原型: unsigned char RcvByte();
功能: 用來接收從器件傳來的數據,并判斷總線錯誤(不發應答信號),
發完后請用應答函數。
------------------------------------------------------------------*/
unsigned char RcvByte();
/*----------------------------------------------------------------
應答子函數
原型: void Ack_I2c(void);
----------------------------------------------------------------*/
void Ack_I2c(void);
/*----------------------------------------------------------------
非應答子函數
原型: void NoAck_I2c(void);
----------------------------------------------------------------*/
void NoAck_I2c(void);
/*----------------------------------------------------------------
向無子地址器件發送字節數據函數
函數原型: bit ISendByte(unsigned char sla,ucahr c);
功能: 從啟動總線到發送地址,數據,結束總線的全過程,從器件地址sla.
如果返回1表示操作成功,否則操作有誤。
注意: 使用前必須已結束總線。
----------------------------------------------------------------*/
bit ISendByte(unsigned char sla,unsigned char c);
/*----------------------------------------------------------------
向有子地址器件發送多字節數據函數
函數原型: bit ISendStr(unsigned char sla,unsigned char suba,ucahr *s,unsigned char no);
功能: 從啟動總線到發送地址,子地址,數據,結束總線的全過程,從器件
地址sla,子地址suba,發送內容是s指向的內容,發送no個字節。
如果返回1表示操作成功,否則操作有誤。
注意: 使用前必須已結束總線。
----------------------------------------------------------------*/
bit ISendStr(unsigned char sla,unsigned char suba,unsigned char *s,unsigned char no);
/*----------------------------------------------------------------
向無子地址器件讀字節數據函數
函數原型: bit IRcvByte(unsigned char sla,ucahr *c);
功能: 從啟動總線到發送地址,讀數據,結束總線的全過程,從器件地
址sla,返回值在c.
如果返回1表示操作成功,否則操作有誤。
注意: 使用前必須已結束總線。
----------------------------------------------------------------*/
bit IRcvByte(unsigned char sla,unsigned char *c);
/*----------------------------------------------------------------
向有子地址器件讀取多字節數據函數
函數原型: bit ISendStr(unsigned char sla,unsigned char suba,ucahr *s,unsigned char no);
功能: 從啟動總線到發送地址,子地址,讀數據,結束總線的全過程,從器件
地址sla,子地址suba,讀出的內容放入s指向的存儲區,讀no個字節。
如果返回1表示操作成功,否則操作有誤。
注意: 使用前必須已結束總線。
----------------------------------------------------------------*/
bit IRcvStr(unsigned char sla,unsigned char suba,unsigned char *s,unsigned char no);
#endif
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -