单片机对eeprom源程序和头文件 ** PROJEKT, bestehend aus 4 Teilen *** ** Write_EEPROM ** Write_EEPROM.Uv2

源代码在线查看: i2c_lib.h

软件大小: 50 K
上传用户: gsxyndll
关键词: Write_EEPROM bestehend PROJEKT eeprom
下载地址: 免注册下载 普通下载 VIP

相关代码

				//***************************************************************
				// Modulname:    $Source: C:/c51_buecher/Teil2/software/Inc_C51b/rcs/I2c_Lib.h $
				// User:         $Author: MEBA $
				// Version:      $Name: $  $Revision: 1.2 $
				// Datum:        $Date: 2001/06/10 10:06:00Z $
				// Qualit鋞:     $State: Exp $
				//***************************************************************
				// Beschreibung: I2C_LIB.h
				//***************************************************************
				// Historie:
				//==========
				// $Log: I2c_Lib.h $
				// Revision 1.2  2001/06/10 10:06:00Z  MEBA
				// Die Abarbeitungsgeschwindigkeit eines Befehls im Derivat wird jetzt mit 
				// beruecksichtigt.
				// Revision 1.1  2001/06/10 10:04:46Z  MEBA
				// Initial revision
				//***************************************************************
				#ifndef I2C_LIB_H
				  #define I2C_LIB_H
				
				//***************************************************************
				// verwendete Definitionen
				//***************************************************************
				// Definition der Fehler
				#define ERR_FUNK       0xF0
				#define ERR_SEL        0x0F
				#define ERR_SCL_SET    1
				#define ERR_SCL_CLEAR  2
				#define ERR_SDA_SET    3
				#define ERR_SDA_CLEAR  4
				#define ERR_ACK        5
				#define ERR_START_I2C  0x10
				#define ERR_STOP_I2C   0x20
				#define ERR_WRITE_I2C  0x30
				 
				#define I2C_DEV   0 // wird fuer verschiedene Moeglich-
				#define I2C_ADR   1 // keiten schreiben Device-Adr.,
				#define I2C_DATA  2 // Daten-Adr und Daten benoetigt.
				#define RE_START  3
				#define ACK       0
				#define NACK      1
				
				#define READ_I2C  1
				#define WRITE_I2C 0
				
				//***************************************************************
				// Definitionen von Zeit-Makros f黵 100kHz-Uebertragung
				//***************************************************************
				#if (SYSTEM_CLK * MACHINE_CYCLE) 				 #define SCL_SET   do{ btSCL = SET;}   while(!btSCL); 
				 #define SCL_CLEAR do{ btSCL = CLEAR;} while(btSCL);  
				 #define SDA_CLEAR do{ btSDA = CLEAR;} while(btSDA); 
				
				#elif (SYSTEM_CLK * MACHINE_CYCLE) > 8  && (SYSTEM_CLK * MACHINE_CYCLE) 				 #define SCL_SET   do{ btSCL = SET;}   while(!btSCL); _nop_() 
				 #define SCL_CLEAR do{ btSCL = CLEAR;} while(btSCL);  
				 #define SDA_CLEAR do{ btSDA = CLEAR;} while(btSDA);  _nop_()
				
				#elif (SYSTEM_CLK * MACHINE_CYCLE) > 12  && (SYSTEM_CLK * MACHINE_CYCLE) 				 #define SCL_SET   do{ btSCL = SET;}   while(!btSCL); _nop_(); _nop_();_nop_() 
				 #define SCL_CLEAR do{ btSCL = CLEAR;} while(btSCL);  _nop_()
				 #define SDA_CLEAR do{ btSDA = CLEAR;} while(btSDA); _nop_(); _nop_(); _nop_()
				
				#elif (SYSTEM_CLK * MACHINE_CYCLE) > 16  && (SYSTEM_CLK * MACHINE_CYCLE) 				 #define SCL_SET   do{ btSCL = SET;}   while(!btSCL); _nop_(); _nop_();_nop_(); _nop_();_nop_();_nop_() 
				 #define SCL_CLEAR do{ btSCL = CLEAR;} while(btSCL);  _nop_(); _nop_();_nop_();_nop_()
				 #define SDA_CLEAR do{ btSDA = CLEAR;} while(btSDA); _nop_(); _nop_(); _nop_(); _nop_();_nop_();_nop_()
				#else
				      #error Fehler_1001:                          
				      #error   Fuer die angegebene SYSTEM_CLKHZ in GLOBALS.h sind
				      #error   die Makros SCL_SET, SCL_CLEAR und SDA_CLEAR nicht definiert.
				#endif
				
				//***************************************************************
				// Deklarationen von Funktionen und Variablen
				//***************************************************************
				uchar uc_StartI2C(void); // Erzeugen einer Startbedingung
				uchar uc_StopI2C(void);  // Erzeugen einer Stoppbedingung
				uchar uc_WriteI2C(uchar ucAddr, uchar ucValue); // Schreibt einen Wert
				uchar uc_ReadI2C(bit btACK); // Liest einen Wert
				uchar uc_I2C_Dev(uchar ucI2C_Dev); // Ueberprueft eine Adresse
				// Funktionen zum Lesen bzw. Schreiben von Daten in einen Baustein
				uchar uc_Data2I2C(uchar ucI2CDev, uchar ucI2CAddr, uchar *pucSrc);
				uchar uc_I2C2Data(uchar ucI2CDev, uchar ucI2CAddr, uchar *pucDes);
				// Funktionen zum Lesen bw. Schreiben von Daten aus einem IO-Baustein
				uchar uc_IO2I2C(uchar ucI2CDev, uchar *pucDes);
				uchar uc_I2C2IO(uchar ucI2CDev, uchar ucValue);
				uchar uc_Data2I2C_EEPROM(uchar ucI2CDev, uchar ucI2CAddr, uchar *pucSrc);
				
				#endif
							

相关资源