📄 main.lst
字号:
C51 COMPILER V8.02 MAIN 09/21/2006 20:16:30 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <general.h>
2 #include <string.h>
3 struct timer
4 {
5 unsigned char count;
6 unsigned char arrived;
7 };
8 data struct timer D10ms,D1s;
9
10 unsigned char xdata count_connect;
11 unsigned char xdata bConnect;
12 unsigned char xdata bFirst;
13 unsigned char Count10ms;
14 unsigned char xdata IndexOfClient; //客户端套接字序号
15 sbit P10=P1^0;
16 sbit P11=P1^1;
17
18 //外部数据
19 extern xdata union Ethernet_address my_ethernet_address;
20 extern xdata union IP_address my_ip_address;
21 extern xdata union netcard rxdnet;
22 extern xdata union netcard txdnet;
23 extern xdata union IP_address ping_ip_address;
24 extern unsigned long xdata initial_sequence_nr;
25 extern xdata union sw Server_PORT;
26 extern xdata struct connection conxn[NO_CONNECTION];
27 extern xdata union IP_address my_ServerIP;
28
29 #define TIMEH1ms 0xF8
30 #define TIMEL1ms 0x96
31
32 extern void Disp_All(void);
33
34
35 //------------------------------------------------------------------------
36 //函数功能:延时程序
37 //
38 //入参: 无
39 //
40 //返回值: 无
41 //
42 //作者: Mingtree
43 //
44 //注释: Mingtree
45 //日期: 2004-09-19
46 //------------------------------------------------------------------------
47 void Delay10ms()
48 {
49 1
50 1 unsigned int iSmall;
51 1 unsigned char iBig;
52 1 for(iBig = 0; iBig < 10; iBig++)
53 1 for(iSmall = 0; iSmall < 0xFFFF; iSmall++);
54 1 }
55 //------------------------------------------------------------------------
C51 COMPILER V8.02 MAIN 09/21/2006 20:16:30 PAGE 2
56 //函数功能:定时器0,每250us进入一次
57 //
58 //入参: 无
59 //
60 //返回值: 无
61 //
62 //
63 //说明: 每隔250us进入一次,进入后将D1ms减一,减到0后重赋4;减到0时表示已经过了1ms,
64 // 再将D10ms减一,减到0后赋10,表示过了10ms,再将1s的减一.
65 // 该定时器的作用是在主程序中定时地去调用一些函数,实现某些需要定时的功能.
66 // 该定时器实现各种定时的精度取决于将定时时间段分割的大小,比如,将1ms分成了4段,
67 // 最大的误差为250us,因为D1ms的某个数值(比如是4)持续的时间是250us,在主程序中,
68 // 在这250us里去检测该D1ms的植,得到的结果都为4.
69 //作者: Mingtree
70 //
71 //注释: Mingtree
72 //日期: 2004-09-19
73 //------------------------------------------------------------------------
74 void timer0() interrupt 1
75 {
76 1 D10ms.count--;
77 1 if(0==D10ms.count)
78 1 {
79 2 D10ms.arrived=TRUE;
80 2 D10ms.count=10;
81 2 D1s.count--;
82 2 if(0==D1s.count)
83 2 {
84 3 D1s.count=100;
85 3 D1s.arrived=TRUE;
86 3 }
87 2
88 2 }
89 1
90 1 TH0=TIMEH1ms;
91 1 TL0=TIMEL1ms;
92 1 TR0=1;
93 1 }
94
95 //------------------------------------------------------------------------
96 //函数功能:初始化定时器,设置波特率
97 //
98 //入参: 无
99 //
100 //返回值: 无
101 //
102 //
103 //说明:
104 //
105 //作者: Mingtree
106 //
107 //注释: Mingtree
108 //日期: 2004-09-19
109 //------------------------------------------------------------------------
110 void init_Timer()
111 {
112 1 IE=0x00;
113 1 ET0=1; // timer0 interrupt enable
114 1 ES=1; // RS-232 interrupt enable
115 1 EA=1; // all interrupt enable
116 1
117 1 TMOD=0x21; //定时器1用于波特率发生器,定时器0用于定时
C51 COMPILER V8.02 MAIN 09/21/2006 20:16:30 PAGE 3
118 1 TH0=TIMEH1ms;
119 1 TL0=TIMEL1ms;
120 1 D10ms.arrived=FALSE;
121 1 D1s.arrived=FALSE;
122 1 D1s.count=100;
123 1 D10ms.count=10;
124 1
125 1 //启动定时器
126 1 TR0=1;
127 1 }
128
129 //------------------------------------------------------------------------
130 //函数功能:设置PING的IP地址
131 //
132 //入参: 无
133 //
134 //返回值: 无
135 //
136 //作者: Mingtree
137 //
138 //注释: Mingtree
139 //日期: 2004-09-19
140 //------------------------------------------------------------------------
141 void SetPingIP(unsigned char xdata *pBuf)
142 {
143 1 unsigned char i;
144 1 for(i=0;i<4;i++)
145 1 ping_ip_address.bytes[i]=pBuf[i];
146 1
147 1 }
148 //-------------------------------------------------------
149 // -----------main program--------
150 //-------------------------------------------------------
151 void main()
152 {
153 1
154 1 //定义命令数组
155 1 static unsigned char code ComTable[MaxComNum][MaxLenCom+1]={"connect","ping","setsip","setlip",
156 1 "setmac","ipconfig","setsport","setgate","wb05d000","tcpstate"};
157 1
158 1
159 1 unsigned char data State=StatInputCom; //状态
160 1 unsigned char xdata ch;
161 1 unsigned char xdata ComBuf[MaxLenComBuf+1]; /*store '\0'*/
162 1 int i=-1; /*ComBuf pointer*/
163 1 int tem; /*Temp variable*/
164 1 int ComMatchFlag=0; /*Command match flag*/
165 1
166 1 WORDTABLE xdata WordTable;
167 1
168 1 int Matched=0; /*Match flag*/
169 1
170 1 //各项初始化工作,包括定时器工作方式设定,8019初始化,串口初始化
171 1 //---------------------------------
172 1 InitSerial();
173 1 InitSerialBuffer();
174 1
175 1 init_Timer();
176 1
177 1
178 1 //从5045里读各个参数
179 1 ReadGateway();
C51 COMPILER V8.02 MAIN 09/21/2006 20:16:30 PAGE 4
180 1 ReadLIP();
181 1 ReadMAC();
182 1 ReadServerIP();
183 1 ReadServerPort();
184 1 //设置未连接
185 1 bConnect = FALSE;
186 1 count_connect=0;
187 1 bFirst = TRUE;
188 1 //根本未开始请求
189 1 IndexOfClient = 6;
190 1
191 1 //初始化8019as
192 1 init_8019();
193 1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -