📄 netcom.lst
字号:
C51 COMPILER V8.08 NETCOM 05/13/2008 23:42:02 PAGE 1
C51 COMPILER V8.08, COMPILATION OF MODULE NETCOM
OBJECT MODULE PLACED IN netcom.OBJ
COMPILER INVOKED BY: f:\Keil\C51\BIN\C51.EXE netcom.c LARGE BROWSE DEBUG OBJECTEXTEND
line level source
1 #include "uip.h"
2 #include "string.h"
3 #include "STC89C58RD+ FLASH-ISP-IAP.H"
4 #include "modbus.h"
5 #include "uip_arp.h"
6 #include "stdio.h"
7 #include "netcom.h"
8 #include <reg52.h>
9
10 COM_BUF ComBuf;
11 PARA_SET ParaSet;
12 u8 MS_TIMER;
13 u8 Second;
14
15 sfr P4 = 0xe8;
16 sbit P4_0 = P4^0;
17
18 bit SoftResetFlag=0;
19 u8 SoftRstSec;
20
21 static u8 TcpStep=0;
22 static bit ReConnect=0;
23
24 void SoftReset (void)
25 {
26 1 ((void (code *) (void)) 0x0000) ();
27 1 }
28
29 void ParaInit( void )
30 {
31 1 u16 crc;
32 1 P4_0 = 1;
33 1 sequential_read_flash_in_one_sector(0x8000,sizeof(PARA_SET),(u8*)&ParaSet);
34 1 crc = CalCRC( (u8*)&ParaSet, sizeof(PARA_SET)-2 );
35 1 if( crc != ParaSet.CrcVerify || !P4_0 )
36 1 {
37 2 ParaSet.LocalIP[0] = 192;
38 2 ParaSet.LocalIP[1] = 168;
39 2 ParaSet.LocalIP[2] = 1;
40 2 ParaSet.LocalIP[3] = 10;
41 2
42 2 ParaSet.GateWay[0] = 192;
43 2 ParaSet.GateWay[1] = 168;
44 2 ParaSet.GateWay[2] = 1;
45 2 ParaSet.GateWay[3] = 1;
46 2
47 2 ParaSet.NetMask[0] = 255;
48 2 ParaSet.NetMask[1] = 255;
49 2 ParaSet.NetMask[2] = 255;
50 2 ParaSet.NetMask[3] = 0;
51 2
52 2 ParaSet.MacAddr[0] = 0xab;
53 2 ParaSet.MacAddr[1] = 0xcd;
54 2 ParaSet.MacAddr[2] = 0xef;
55 2 ParaSet.MacAddr[3] = 0x12;
C51 COMPILER V8.08 NETCOM 05/13/2008 23:42:02 PAGE 2
56 2 ParaSet.MacAddr[4] = 0x34;
57 2 ParaSet.MacAddr[5] = 0x56;
58 2
59 2 ParaSet.TargetIP[0] = 192;
60 2 ParaSet.TargetIP[1] = 168;
61 2 ParaSet.TargetIP[2] = 1;
62 2 ParaSet.TargetIP[3] = 168;
63 2
64 2 ParaSet.LocalPort = 1000;
65 2
66 2 ParaSet.TargetPort = 2000;
67 2
68 2 ParaSet.BaudRate = 19200;
69 2 ParaSet.VerifyBit = 0;
70 2 ParaSet.DataBit = 8;
71 2 ParaSet.StopBit = 1;
72 2 ParaSet.FrameTime = 2;
73 2
74 2 ParaSet.WorkMode = MODE_TCP_CLIENT;
75 2
76 2 crc = CalCRC( (u8*)&ParaSet, sizeof(PARA_SET)-2 );
77 2 ParaSet.CrcVerify = crc;
78 2 sequential_write_flash_in_one_sector(0x8000,sizeof(PARA_SET),(u8*)&ParaSet);
79 2 }
80 1 }
81
82 u32 SwapLong( u32 temp )
83 {
84 1 u8 ch,cl;
85 1 u16 ih,il;
86 1 PC2MCU51 *Pc2Mcu51Ptr;
87 1 Pc2Mcu51Ptr = (PC2MCU51*)&temp;
88 1 cl = Pc2Mcu51Ptr->L.L2I.IL.CHAR.CL;
89 1 ch = Pc2Mcu51Ptr->L.L2I.IL.CHAR.CH;
90 1
91 1 Pc2Mcu51Ptr->L.L2I.IL.CHAR.CL = ch;
92 1 Pc2Mcu51Ptr->L.L2I.IL.CHAR.CH = cl;
93 1
94 1 cl = Pc2Mcu51Ptr->L.L2I.IH.CHAR.CL;
95 1 ch = Pc2Mcu51Ptr->L.L2I.IH.CHAR.CH;
96 1
97 1 Pc2Mcu51Ptr->L.L2I.IH.CHAR.CL = ch;
98 1 Pc2Mcu51Ptr->L.L2I.IH.CHAR.CH = cl;
99 1
100 1 il = Pc2Mcu51Ptr->L.L2I.IL.b;
101 1 ih = Pc2Mcu51Ptr->L.L2I.IH.c;
102 1
103 1 Pc2Mcu51Ptr->L.L2I.IL.b = ih;
104 1 Pc2Mcu51Ptr->L.L2I.IH.c = il;
105 1
106 1 return temp;
107 1 }
108
109 void ComBufInit( void )
110 {
111 1 ComBuf.SendPtr = 0;
112 1 ComBuf.SendLen = 0;
113 1 ComBuf.SendFlag = 0;
114 1
115 1 ComBuf.RecvPtr = 0;
116 1 ComBuf.RecvLen = 0;
117 1 ComBuf.RecvFlag = 0;
C51 COMPILER V8.08 NETCOM 05/13/2008 23:42:02 PAGE 3
118 1 ComBuf.Com2NetFlag = 0;
119 1 ComBuf.RstRecvFlag = 0;
120 1 }
121
122 void ComInit(void)
123 {
124 1 u32 baud;
125 1 baud = SwapLong( ParaSet.BaudRate );
126 1 switch( baud )
127 1 {
128 2 case 110:
129 2 RCAP2H = 0xe7;
130 2 RCAP2L = 0x76;
131 2 break;
132 2 case 150:
133 2 RCAP2H = 0xee;
134 2 RCAP2L = 0x01;
135 2 break;
136 2 case 200:
137 2 RCAP2H = 0xf2;
138 2 RCAP2L = 0x81;
139 2 break;
140 2 case 300:
141 2 RCAP2H = 0xf7;
142 2 RCAP2L = 0x01;
143 2 break;
144 2 case 600:
145 2 RCAP2H = 0xfb;
146 2 RCAP2L = 0x81;
147 2 break;
148 2 case 1200:
149 2 RCAP2H = 0xfd;
150 2 RCAP2L = 0xc0;
151 2 break;
152 2 case 2400:
153 2 RCAP2H = 0xfe;
154 2 RCAP2L = 0xe0;
155 2 break;
156 2 case 4800:
157 2 RCAP2H = 0xff;
158 2 RCAP2L = 0x70;
159 2 break;
160 2 case 7200:
161 2 RCAP2H = 0xff;
162 2 RCAP2L = 0xa0;
163 2 break;
164 2 case 9600:
165 2 RCAP2H = 0xff;
166 2 RCAP2L = 0xb8;
167 2 break;
168 2 case 14400:
169 2 RCAP2H = 0xff;
170 2 RCAP2L = 0xd0;
171 2 break;
172 2 case 19200:
173 2 RCAP2H = 0xff;
174 2 RCAP2L = 0xdc;
175 2 break;
176 2 case 28800:
177 2 RCAP2H = 0xff;
178 2 RCAP2L = 0xe8;
179 2 break;
C51 COMPILER V8.08 NETCOM 05/13/2008 23:42:02 PAGE 4
180 2 case 38400:
181 2 RCAP2H = 0xff;
182 2 RCAP2L = 0xee;
183 2 break;
184 2 case 57600:
185 2 RCAP2H = 0xff;
186 2 RCAP2L = 0xf4;
187 2 break;
188 2 case 76800:
189 2 RCAP2H = 0xff;
190 2 RCAP2L = 0xf7;
191 2 break;
192 2 case 115200:
193 2 RCAP2H = 0xff;
194 2 RCAP2L = 0xfa;
195 2 break;
196 2 case 230400:
197 2 RCAP2H = 0xff;
198 2 RCAP2L = 0xfd;
199 2 break;
200 2 default:
201 2 RCAP2H = 0xff; //9600
202 2 RCAP2L = 0xb8;
203 2 break;
204 2 }
205 1 switch( ParaSet.VerifyBit )
206 1 {
207 2 case VERY_NONE:
208 2 SCON = 0x50;
209 2 break;
210 2 case VERY_EVEN:
211 2 case VERY_ODD:
212 2 case VERY_LOW:
213 2 case VERY_HIGH:
214 2 SCON = 0xd0;
215 2 break;
216 2 default:
217 2 SCON = 0x50;
218 2 break;
219 2 }
220 1 RCLK = 1;
221 1 TCLK = 1;
222 1 TR2 = 1;
223 1 PS = 1;
224 1 ES = 1;
225 1
226 1 ComBufInit();
227 1 }
228
229 void Timer1Init( void )
230 {
231 1 TH1 = T1_RELOAD >> 8;
232 1 TL1 = T1_RELOAD;
233 1 TMOD |= 0x10;
234 1 ET1 = 1;
235 1 TR1 = 1;
236 1 }
237
238 void NetcomInit( void )
239 {
240 1 struct uip_udp_conn *udp_conn;
241 1 struct uip_conn *tcp_conn;
C51 COMPILER V8.08 NETCOM 05/13/2008 23:42:02 PAGE 5
242 1 struct uip_eth_addr MacAddr;
243 1
244 1 u16_t ipaddr[2];//定义IP类型变量
245 1
246 1 ParaInit();
247 1 ComInit();
248 1 Timer1Init();
249 1
250 1 uip_ipaddr(ipaddr, ParaSet.NetMask[0],ParaSet.NetMask[1],ParaSet.NetMask[2],ParaSet.NetMask[3]);
251 1 uip_ipaddr(ipaddr, 255,255,255,0);
252 1
253 1 uip_ipaddr(ipaddr, ParaSet.LocalIP[0],ParaSet.LocalIP[1],ParaSet.LocalIP[2],ParaSet.LocalIP[3]);
254 1 uip_sethostaddr( ipaddr );
255 1
256 1 //参数设置UDP端口
257 1 uip_ipaddr(ipaddr, ParaSet.TargetIP[0],ParaSet.TargetIP[1],ParaSet.TargetIP[2],ParaSet.TargetIP[3]);
258 1 udp_conn = uip_udp_new(&ipaddr, HTONS(2010));
259 1 uip_udp_bind(udp_conn,HTONS(2008));
260 1
261 1 MacAddr.addr[0] = ParaSet.MacAddr[0];
262 1 MacAddr.addr[1] = ParaSet.MacAddr[1];
263 1 MacAddr.addr[2] = ParaSet.MacAddr[2];
264 1 MacAddr.addr[3] = ParaSet.MacAddr[3];
265 1 MacAddr.addr[4] = ParaSet.MacAddr[4];
266 1 MacAddr.addr[5] = ParaSet.MacAddr[5];
267 1 uip_setethaddr(MacAddr);
268 1
269 1 ParaSet.WorkMode = MODE_TCP_CLIENT;
270 1 switch( ParaSet.WorkMode )
271 1 {
272 2 case MODE_TCP_CLIENT:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -