久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5471|回復: 1
收起左側

基于W5500的以太網溫度采集程序

[復制鏈接]
ID:150057 發表于 2017-6-13 21:38 | 顯示全部樓層 |閱讀模式
基于W5500的以太網溫度采集設備,STC12C5A60S2+W5500

0.png 0.png

單片機源程序如下:
  1. #include "stc12c5a60s2.h"
  2. #include "W5500.h"                               
  3. #include <string.h>
  4. unsigned long int ad[2],ad1[2],ad2[2],num1;
  5. unsigned char ch=0;
  6. void Delay(unsigned int d);                       
  7. void Timer0Init(void);
  8. void Delay4us();
  9. void AD_Init(void);
  10. void Load_Net_Parameters(void)
  11. {
  12.         Gateway_IP[0] = 10;
  13.         Gateway_IP[1] = 145;
  14.         Gateway_IP[2] = 249;
  15.         Gateway_IP[3] = 126;

  16.         Sub_Mask[0]=255;
  17.         Sub_Mask[1]=255;
  18.         Sub_Mask[2]=255;
  19.         Sub_Mask[3]=0;

  20.         Phy_Addr[0]=0x0c;
  21.         Phy_Addr[1]=0x29;
  22.         Phy_Addr[2]=0xab;
  23.         Phy_Addr[3]=0x7c;
  24.         Phy_Addr[4]=0x00;
  25.         Phy_Addr[5]=0x01;

  26.         IP_Addr[0]=10;
  27.         IP_Addr[1]=145;
  28.         IP_Addr[2]=249;
  29.         IP_Addr[3]=10;

  30.         S0_Port[0] = 0x13;        S0_Port[1] = 0x88;

  31.         S0_DIP[0]=10;
  32.         S0_DIP[1]=145;
  33.         S0_DIP[2]=249;
  34.         S0_DIP[3]=19;
  35.        
  36.         S0_DPort[0] = 0x17;
  37.         S0_DPort[1] = 0x70;

  38.         S0_Mode=TCP_SERVER; }

  39. void W5500_Socket_Set(void)
  40. {
  41.         if(S0_State==0)     
  42.         {
  43.                 if(S0_Mode==TCP_SERVER)
  44.                 {
  45.                         if(Socket_Listen(0)==TRUE)
  46.                                 S0_State=S_INIT;
  47.                         else
  48.                                 S0_State=0;
  49.                 }
  50.                 else if(S0_Mode==TCP_CLIENT)
  51.                 {
  52.                         if(Socket_Connect(0)==TRUE)
  53.                                 S0_State=S_INIT;
  54.                         else
  55.                                 S0_State=0;
  56.                 }
  57.                 else//UDP??
  58.                 {
  59.                         if(Socket_UDP(0)==TRUE)
  60.                                 S0_State=S_INIT|S_CONN;
  61.                         else
  62.                                 S0_State=0;
  63.                 }
  64.         }
  65. }

  66. void Process_Socket_Data(SOCKET s)
  67. {
  68.         unsigned short size;
  69.         size=Read_SOCK_Data_Buffer(s, Rx_Buffer);
  70.         memcpy(Tx_Buffer, Rx_Buffer, size);                       
  71.         Write_SOCK_Data_Buffer(s, Tx_Buffer, size);
  72. }

  73. int main(void)
  74. {
  75.         unsigned int W5500_Send_Delay_Counter =0;

  76.         Load_Net_Parameters();               
  77.         W5500_Hardware_Reset();               
  78.         W5500_Initialization();               
  79.         Timer0Init();
  80.         AD_Init();
  81.         EADC=1;
  82.         while (1)
  83.         {
  84.                 W5500_Socket_Set();
  85.                
  86.                 W5500_Interrupt_Process();

  87.                 if((S0_Data & S_RECEIVE) == S_RECEIVE)
  88.                 {
  89.                         S0_Data&=~S_RECEIVE;
  90.                         Process_Socket_Data(0);                }
  91.                 else if(W5500_Send_Delay_Counter >= 3000)
  92.                 {
  93.                         if(S0_State == (S_INIT|S_CONN))
  94.                         {
  95.                                 S0_Data&=~S_TRANSMITOK;
  96.                                 Tx_Buffer[0]='\r';
  97.                                 Tx_Buffer[1]='\n';
  98.                                 Tx_Buffer[2]=ad[0]/1000%10+'0';
  99.                                 Tx_Buffer[3]='.';
  100.                                 Tx_Buffer[4]=ad[0]/100%10+'0';
  101.                                 Tx_Buffer[5]=ad[0]/10%10+'0';
  102.                                 Tx_Buffer[6]=ad[0]%10+'0';
  103.                             Tx_Buffer[7]='v';
  104.                                 Tx_Buffer[8]=' ';
  105.                             Tx_Buffer[9]=' ';
  106.                                 Tx_Buffer[10]=ad[1]/100%10+'0';
  107.                                 Tx_Buffer[11]=ad[1]/10%10+'0';
  108.                                 Tx_Buffer[12]='.';
  109.                                 Tx_Buffer[13]=ad[1]%10+'0';
  110.                                 Tx_Buffer[14]='c';
  111.                                 Tx_Buffer[15]='\r';
  112.                                 Tx_Buffer[16]='\n';
  113.                                 Write_SOCK_Data_Buffer(0, Tx_Buffer, 17);                        }
  114.                         W5500_Send_Delay_Counter=0;
  115.                 }
  116.                 W5500_Send_Delay_Counter++;
  117.         }
  118. }

  119. void Delay(unsigned int  x)
  120. {
  121.     unsigned int i,j;

  122.     for(j=0;j<5;j++)
  123.                 for(i=0;i<x;i++);
  124. }


  125. void Timer0Init(void)
  126. {
  127.         AUXR &= 0x7F;               
  128.         TMOD &= 0xF0;               
  129.         TMOD |= 0x01;                       
  130.         TL0 = 0x00;       
  131.         TH0 = 0xDC;
  132.         TF0 = 0;               
  133.         EA=1;
  134.         ET0=1;
  135.         TR0=1;
  136. }


  137. void Tinme0User() interrupt 1
  138. {
  139.                 ad2[0]+=ad1[0];
  140.                 ad2[1]+=ad1[1];

  141.                 TL0 = 0x66;               
  142.                 TH0 = 0xFC;               
  143.                 num1++;
  144.                 if(num1>=1000)
  145.                 {
  146.                         num1=0;
  147.                         ad[0]=ad2[0]*5/1023;
  148.                         ad[1]=830-ad[0];                                    
  149.                         ad2[0]=0;
  150.                 }
  151. }

  152. void AD_Init(void)
  153. {
  154.                 AUXR1|=0x04;
  155. ……………………

  156. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

所有資料51hei提供下載:
基于W5500的以太網數據采集設備.zip (31.07 KB, 下載次數: 84)

評分

參與人數 1黑幣 +5 收起 理由
dgwpx + 5 很給力!

查看全部評分

回復

使用道具 舉報

ID:1 發表于 2017-6-14 00:31 | 顯示全部樓層
謝謝分享不過缺少頭文件 能補上嗎?
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美精品在线播放 | 欧美日韩a | 午夜激情小视频 | 四虎伊人 | 成人一区二区三区 | 91在线观看网址 | 中文字幕国产日韩 | 拍真实国产伦偷精品 | 免费精品 | 中文字幕av在线 | 青青草网站在线观看 | 欧美激情一区二区三级高清视频 | 欧美99久久精品乱码影视 | 日本激情视频网 | 欧美 日本 国产 | 91免费在线 | 福利影院在线看 | 免费一区| 国产一区二区三区视频在线观看 | 欧美在线a | 中文字幕在线中文 | 蜜桃传媒av | 国产精品日韩一区 | 国产九九精品 | 国产精品色哟哟网站 | 国产精品久久久久永久免费观看 | 一区二区三区视频在线免费观看 | 国产精品夜间视频香蕉 | 国产成人精品视频 | 国产91在线视频 | 国产 日韩 欧美 在线 | 亚洲国产一区二区视频 | 免费av一区二区三区 | 国产成人综合av | 美女一区 | 亚洲视频中文字幕 | 久久亚洲视频网 | 欧美一区二区在线观看 | 精品国产成人 | 亚洲综合成人网 | 久久久久久国产精品久久 |