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

📄 iic.txt

📁 AVR单片机C语言程序设计实例精粹
💻 TXT
字号:
/*******************************************************************/
#include <iom16v.h>
#include <macros.h>

//设定读写地址
#define WADD24C04 0xa0	//写字节命令及器件地址(根据地址实际情况改变), 1010 A2 A1 A0 0
#define RADD24C04 0xa1	//读命令字节及器件地址(根据地址实际情况改变), 1010 A2 A1 A0 1

/*-----------------------------------------------------------------
函数名称: void Uart0Init(void) 
函数功能: 串口初始化
		  波特率 600  
参    数: 无
返 回 值: 无
-----------------------------------------------------------------*/
void Uart0Init(void)
{
 	UCSRB = 0x00; 					//关串口
 	UCSRA = 0x02;					   //倍速模式
	UCSRC = BIT(URSEL) | 0x06;		//写UCSRC寄存器,设定8个bit
 	UBRR  = 12;	 	  	   		//设定串口波特率为600
 	UCSRB = 0x98;					//开串口
}

/*-----------------------------------------------------------------
函数名称: void UartRecvData(void)
函数功能: 接收数据
参    数: 无
返 回 值: 无
-----------------------------------------------------------------*/
#pragma interrupt_handler UartRecvData:12
void UartRecvData(void)
{
 	uchar temp1;
 	temp1 = UDR;
}

/*-----------------------------------------------------------------
函数名称: void UartTransmitData(uchar *SendData, uchar len)
函数功能: 发送字符串
参    数: SendData  发送字符串的首地址
	  	   len		   发送字符串的长度
返 回 值: 无
-----------------------------------------------------------------*/
void UartTransmitData(uchar *SendData, uint len)
{
 	uint i;
	for( i = 0; i < len; i++)
	{
  		while(!(UCSRA&0x20));  				//判断数据寄存器是否为空
			UDR = SendData[i];
	}
}

/*-----------------------------------------------------------------
函数名称: void InitDevices(void) 
函数功能: 初始化各种信息
参    数: 无
返 回 值: 无
-----------------------------------------------------------------*/
void InitDevices(void)
{
 	CLI(); 			  					//关全部中断
 	Uart0Init();
 	SEI();   	 	   					//开全中断
}

void main(void)
{ 	
/*第一次写程序*/
/* 	uchar temp[] = "123456789";			//上电初始化24C02中的数据,
	I2C_Write_(WADD24C02,0,temp,8);		//断电后屏蔽初始化程序,打开下面的程序*/
 	uchar i,temp2[8];
	uint j;
	j = 2000;
	InitDevices();
	while(j --);
	{
	 	i = 167;
		while(i--);
	}
	I2C_Read_(WADD24C04,0x00,RADD24C04,temp2,8);
	j = 2000;
	while(j --);
	{
	 	i = 167;
		while(i--);
	}
	
	while(1);
	UartTransmitData(temp2, 8);	
}

⌨️ 快捷键说明

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