标题:
基于W5500的以太网温度采集程序
[打印本页]
作者:
lww1213
时间:
2017-6-13 21:38
标题:
基于W5500的以太网温度采集程序
基于W5500的以太网温度采集设备,STC12C5A60S2+W5500
0.png
(43.65 KB, 下载次数: 105)
下载附件
2017-6-14 00:29 上传
0.png
(45.47 KB, 下载次数: 118)
下载附件
2017-6-14 00:29 上传
单片机源程序如下:
#include "stc12c5a60s2.h"
#include "W5500.h"
#include <string.h>
unsigned long int ad[2],ad1[2],ad2[2],num1;
unsigned char ch=0;
void Delay(unsigned int d);
void Timer0Init(void);
void Delay4us();
void AD_Init(void);
void Load_Net_Parameters(void)
{
Gateway_IP[0] = 10;
Gateway_IP[1] = 145;
Gateway_IP[2] = 249;
Gateway_IP[3] = 126;
Sub_Mask[0]=255;
Sub_Mask[1]=255;
Sub_Mask[2]=255;
Sub_Mask[3]=0;
Phy_Addr[0]=0x0c;
Phy_Addr[1]=0x29;
Phy_Addr[2]=0xab;
Phy_Addr[3]=0x7c;
Phy_Addr[4]=0x00;
Phy_Addr[5]=0x01;
IP_Addr[0]=10;
IP_Addr[1]=145;
IP_Addr[2]=249;
IP_Addr[3]=10;
S0_Port[0] = 0x13; S0_Port[1] = 0x88;
S0_DIP[0]=10;
S0_DIP[1]=145;
S0_DIP[2]=249;
S0_DIP[3]=19;
S0_DPort[0] = 0x17;
S0_DPort[1] = 0x70;
S0_Mode=TCP_SERVER; }
void W5500_Socket_Set(void)
{
if(S0_State==0)
{
if(S0_Mode==TCP_SERVER)
{
if(Socket_Listen(0)==TRUE)
S0_State=S_INIT;
else
S0_State=0;
}
else if(S0_Mode==TCP_CLIENT)
{
if(Socket_Connect(0)==TRUE)
S0_State=S_INIT;
else
S0_State=0;
}
else//UDP??
{
if(Socket_UDP(0)==TRUE)
S0_State=S_INIT|S_CONN;
else
S0_State=0;
}
}
}
void Process_Socket_Data(SOCKET s)
{
unsigned short size;
size=Read_SOCK_Data_Buffer(s, Rx_Buffer);
memcpy(Tx_Buffer, Rx_Buffer, size);
Write_SOCK_Data_Buffer(s, Tx_Buffer, size);
}
int main(void)
{
unsigned int W5500_Send_Delay_Counter =0;
Load_Net_Parameters();
W5500_Hardware_Reset();
W5500_Initialization();
Timer0Init();
AD_Init();
EADC=1;
while (1)
{
W5500_Socket_Set();
W5500_Interrupt_Process();
if((S0_Data & S_RECEIVE) == S_RECEIVE)
{
S0_Data&=~S_RECEIVE;
Process_Socket_Data(0); }
else if(W5500_Send_Delay_Counter >= 3000)
{
if(S0_State == (S_INIT|S_CONN))
{
S0_Data&=~S_TRANSMITOK;
Tx_Buffer[0]='\r';
Tx_Buffer[1]='\n';
Tx_Buffer[2]=ad[0]/1000%10+'0';
Tx_Buffer[3]='.';
Tx_Buffer[4]=ad[0]/100%10+'0';
Tx_Buffer[5]=ad[0]/10%10+'0';
Tx_Buffer[6]=ad[0]%10+'0';
Tx_Buffer[7]='v';
Tx_Buffer[8]=' ';
Tx_Buffer[9]=' ';
Tx_Buffer[10]=ad[1]/100%10+'0';
Tx_Buffer[11]=ad[1]/10%10+'0';
Tx_Buffer[12]='.';
Tx_Buffer[13]=ad[1]%10+'0';
Tx_Buffer[14]='c';
Tx_Buffer[15]='\r';
Tx_Buffer[16]='\n';
Write_SOCK_Data_Buffer(0, Tx_Buffer, 17); }
W5500_Send_Delay_Counter=0;
}
W5500_Send_Delay_Counter++;
}
}
void Delay(unsigned int x)
{
unsigned int i,j;
for(j=0;j<5;j++)
for(i=0;i<x;i++);
}
void Timer0Init(void)
{
AUXR &= 0x7F;
TMOD &= 0xF0;
TMOD |= 0x01;
TL0 = 0x00;
TH0 = 0xDC;
TF0 = 0;
EA=1;
ET0=1;
TR0=1;
}
void Tinme0User() interrupt 1
{
ad2[0]+=ad1[0];
ad2[1]+=ad1[1];
TL0 = 0x66;
TH0 = 0xFC;
num1++;
if(num1>=1000)
{
num1=0;
ad[0]=ad2[0]*5/1023;
ad[1]=830-ad[0];
ad2[0]=0;
}
}
void AD_Init(void)
{
AUXR1|=0x04;
……………………
…………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
基于W5500的以太网数据采集设备.zip
(31.07 KB, 下载次数: 84)
2017-6-13 21:36 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
admin
时间:
2017-6-14 00:31
谢谢分享不过缺少头文件 能补上吗?
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1