📄 iic.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 + -