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

📄 main.c

📁 AT24c01存储器与单片机stc89C58硬件通讯
💻 C
字号:
#include <stdio.h>
#include "stc89c58.h"
#include <intrins.h>
#include "iic.h"
#include "cpu.h"
typedef union
{
 	float f[4];
	char buf[16];
}fc;
void init(void)
{
	IE=0x00;
	TMOD=0X20;
	SCON=0X50;
	TH1=0XFA;
	TL1=0XFA;
	TR1=1;
	  
	PCON=0X80;
	TI=1;
}
void main()
{
   	xdata INT32U i;  
	xdata INT8U val[16];
	xdata INT8U at24c01_add =0x04; 
	xdata fc FtoCH;	
	float fl;		 
	init();
	FtoCH.f[0] = -150.1329;
  	FtoCH.f[1] = 377.1837;
  	FtoCH.f[2] = -301.1051;
  	FtoCH.f[3] = 76.0731;
	while(1)
	{	
		for(i=0;i<10000;i++);
		fl=	*(float*)FtoCH.buf;
		printf("buf = %5.4f\n",fl);

		fl=*((float*)(FtoCH.buf+4));
		printf("buf = %5.4f\n",fl);

		fl=*((float*)(FtoCH.buf+8));
		printf("buf = %5.4f\n",fl);

		fl=*((float*)(FtoCH.buf+12));
		printf("buf = %5.4f\n",fl);

		for(i=0;i<10000;i++);
		ISendStr(0xA0,at24c01_add,FtoCH.buf,4);
		for(i=0;i<10000;i++);
		ISendStr(0xA0,at24c01_add+4,(FtoCH.buf+4),4);
		for(i=0;i<10000;i++);
		ISendStr(0xA0,at24c01_add+8,(FtoCH.buf+8),4);
		for(i=0;i<10000;i++);
		//ISendStr(0xA0,at24c01_add+12,(FtoCH.buf+12),4);
		//for(i=0;i<10000;i++);

		IRcvStr(0xA0,at24c01_add,val,8);
	//	IRcvStr(0xA0,at24c01_add+4,val+4,4);
		IRcvStr(0xA0,at24c01_add+8,val+8,8);
//		IRcvStr(0xA0,at24c01_add+12,val+12,4);
		/*printf("result = %5.4f %5.4f\n %5.4f %5.4f\n",
		*(float*)val,*((float*)(val+4)),*((float*)(val+8)),*((float*)(val+12))); */
		printf("result = %5.4f\n",*(float*)val);
		printf("result = %5.4f\n",*((float*)(val+4)));
		printf("result = %5.4f\n",*((float*)(val+8)));
		printf("result = %5.4f\n",*((float*)(val+12)));
 /**/
	}
}

⌨️ 快捷键说明

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