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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5503|回復: 1
打印 上一主題 下一主題
收起左側

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

[復制鏈接]
跳轉到指定樓層
樓主
基于W5500的以太網溫度采集設備,STC12C5A60S2+W5500



單片機源程序如下:
  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 很給力!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂1 踩
回復

使用道具 舉報

沙發
ID:1 發表于 2017-6-14 00:31 | 只看該作者
謝謝分享不過缺少頭文件 能補上嗎?
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产日韩欧美一区二区 | 成人精品网 | 欧美一级免费看 | 色婷婷av一区二区三区软件 | 一区欧美| 久久精品99国产精品 | 久久夜视频| 91在线看片 | 手机av网 | 午夜一区二区三区在线观看 | 99成人精品 | 成人免费一区二区三区牛牛 | 色视频免费| 久久久精品网站 | 日韩欧美大片在线观看 | 91精品久久久久久久久久入口 | 噜啊噜在线 | 久久精品视频免费观看 | 天天玩天天干天天操 | 一区二区三区在线免费观看 | se婷婷| 四虎影院久久 | 久久精品97| 久久亚洲一区 | 鲁大师一区影视 | ririsao久久精品一区 | 亚洲精品毛片av | 人妖videosex高潮另类 | 国产欧美一区二区三区在线看 | 国产精品电影网 | 成人深夜福利 | 精国产品一区二区三区 | 国产精品久久精品 | 亚洲精品电影在线观看 | 在线婷婷 | 91精品国产91久久久久久丝袜 | 亚洲高清在线免费观看 | 日韩精品免费视频 | 无毛av| 日韩精品一区二区三区 | 久久国产日韩欧美 |