⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 iic.bak

📁 the iic control demo source for the NEC mcu
💻 BAK
字号:


#pragma sfr

//Format of IIC Control Register 0 (IICC0)
//
#define IIC_Operation_Enable()			IICE0 = 1     // bit 7 
#define IIC_Operation_Disable()			IICE0 = 0

#define IIC_StopCondition_Interrupt_Enable	0x10     // SPIE0         
#define IIC_StopCondition_Interrupt_Disable	0x00

#define IIC_Interrupt_8clock_FallingEdge	0x00      // WTIM0   
#define IIC_Interrupt_9clock_FallingEdge	0x08

#define IIC_Generate_Start_Condition()		STT0 = 1    // bit 1       
#define IIC_NotGenerate_Start_Condition()	STT0 = 0

#define IIC_Wait_Cancel				0x20    // WREL0
#define IIC_Wait_NotCancel			0x00

#define IIC_ACK_Enable				0x04    // ACKE0
#define IIC_ACK_Disable				0x00

#define IIC_Generate_Stop_Condition		0x01    // SPT0      
#define IIC_NotGenerate_Stop_Condition		0x00

#define IIC_Normal_Operation			0x00    // LREL0
#define IIC_Exit_Communication			0x40

//
//Format of IIC Flag Register 0 (IICF0)
//
#define IIC_Start_Condition_WithStopDetect	0x02     // STCEN
#define IIC_Start_Condition_WithoutStopDetect	0x00

#define IIC_Communication_Reservation_Enable	0x00    //  IICRSV
#define IIC_Communication_Reservation_Disable	0x01

#define IIC_StartCondition_Generate_Flag	0x00      // STCF, read-only
#define IIC_StartCondition_Unsuccessful_Flag	0x80

#define IIC_Bus_Release_Status			0x00      // IICBSY, read-only
#define IIC_Bus_Communication_Status		0x40
			

//
//Format of IIC Status Register 0 (IICS0), read-only
//
#define IIC_Master_Communication_Status		0x80   // MSTS0
#define IIC_Slave_Or_CommunicateStandby_Status	0x00

#define IIC_ArbitrationResult_Win_Or_No		0x00   // ALD0
#define IIC_ArbitrationResult_Loss		0x40

#define IIC_Extension_Code_Received		0x20   // EXC0
#define IIC_Extension_Code_NotReceived		0x00

#define IIC_Address_Match			0x10   // COI0
#define IIC_Address_Not_Match			0x00

#define IIC_Receive_Status			0x00   // TRC0
#define IIC_Transmit_Status			0x08

#define IIC_ACK_Detected			0x04   // ACKD0
#define IIC_ACK_Not_Detected			0x00

#define IIC_Start_Condition_Detected		0x02   // STD0
#define IIC_Start_Condition_Not_Detected	0x00

#define IIC_Stop_Condition_Detected		0x01   // SPD0
#define IIC_Stop_Condition_Not_Detected		0x00


//
//Format of IIC Clock Selection Register 0 (IICCL0)
//
#define IIC_SCL0_Pin_LowLevel			0x00      // read-only
#define IIC_SCL0_Pin_HighLevel			0x20

#define IIC_SDA0_Pin_LowLevel			0x00      // read-only
#define IIC_SDA0_Pin_HighLevel			0x10

#define IIC_Operation_HighSpeed_Mode		0x08      // SMC0
#define IIC_Operation_Standard_Mode		0x00

#define IIC_Digital_Filter_Off			0x00     // DFC0
#define IIC_Digital_Filter_On			0x04     // digital filter can be used only in high-speed mode

//
//Format of IIC Function Expansion Register 0 (IICX0)
//
#define IIC_Expansion_Enable()			IICX0 = 0x01
#define IIC_Expansion_Disable()			IICX0 = 0x00

//
// IIC Clock Selection, pls refer to page423 in manual
//
#define IIC_Clk_Select_Standard_1()		IICX0=0x00;SMC0=0;CL01=0;CL00=0;		
#define IIC_Clk_Select_Standard_2()		IICX0=0x00;SMC0=0;CL01=0;CL00=1;
#define IIC_Clk_Select_Standard_3()		IICX0=0x00;SMC0=0;CL01=1;CL00=0;
#define IIC_Clk_Select_Standard_4()		IICX0=0x00;SMC0=0;CL01=1;CL00=1;

#define IIC_Clk_Select_HighSpeed_1()		IICX0=0x00;SMC0=1;CL01=0;
#define IIC_Clk_Select_HighSpeed_2()		IICX0=0x00;SMC0=1;CL01=1;CL00=0;
#define IIC_Clk_Select_HighSpeed_3()		IICX0=0x00;SMC0=1;CL01=1;CL00=1;

#define IIC_Clk_Select_HighSpeed_Extension_1()	IICX0=0x01;SMC0=1;CL01=0;
#define IIC_Clk_Select_HighSpeed_Extension_2()	IICX0=0x01;SMC0=1;CL01=1;CL00=0;


//
//Format of Port Mode Register 6 (PM6)
//
#define IIC_SCL0_Port_Mode			PM6.0
#define IIC_SDA0_Port_Mode			PM6.1
#define IIC_SCL0_Port_Level			P6.0
#define IIC_SDA0_Port_Level			P6.1

//
// INTIIC0 mask setting
//
#define IIC_Interrupt_Enable()			IICMK0 = 0
#define IIC_Interrupt_Disable()			IICMK0 = 1

//
// flag define
//
sreg unsigned char IIC_Flag=0;

#define IIC_Master_Start_Flag		IIC_Flag.0
#define IIC_Slave_Start_Flag		IIC_Flag.1

 
#define output		0
#define low			0

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -