📄 read4442.lst
字号:
C51 COMPILER V8.08 READ4442 10/21/2008 15:39:51 PAGE 4
180 1
181 1 i = 300;
182 1 do
183 1 {
184 2 ;
185 2 } while (--i != 0);
186 1 }
187
188 void Lcd2002SendComm(INT8U Command)
189 {
190 1 Lcd2002Delay();
191 1 LCD2002_SEND_COMMAND(Command);
192 1 }
193
194 void Lcd2002SendDate(INT8U Data)
195 {
196 1 Lcd2002Delay();
197 1 LCD2002_SEND_DATA(Data);
198 1 }
199
200 void Lcd2002DispStr(INT8U x, INT8U y, INT8S *Data)
201 {
202 1 if (y == 1) /* 在第一行显示 */
203 1 {
204 2 if (x < (20 + 1)) /* 有效的列号 */
205 2 {
206 3 Lcd2002SendComm(LCD2002_LINE1 - 1 + x); /* 设置显示地址 */
207 3 for( ; x < (20 + 1) && *Data != '\0'; x++) /* 显示到字符串结束 */
208 3 /* 或是行结束 */
209 3 {
210 4 Lcd2002SendDate(*Data++); /* 显示一个字符 */
211 4 }
212 3 if (*Data != '\0') /* 字符串没有结束 */
213 3 {
214 4 x = 1; /* 从第二行第一列 */
215 4 y = 2; /* 继续显示 */
216 4 }
217 3 }
218 2 }
219 1 if (y == 2) /* 在第二行显示 */
220 1 {
221 2 Lcd2002SendComm(LCD2002_LINE2 - 1 + x); /* 设置显示地址 */
222 2 for( ; x < (20 + 1) && *Data != '\0'; x++) /* 显示到字符串结束 */
223 2 /* 或是行结束 */
224 2 {
225 3 Lcd2002SendDate(*Data++); /* 显示一个字符 */
226 3 }
227 2 }
228 1 }
229
230 void Lcd2002DispCha(INT8U x, INT8U y, INT8U Data)
231 {
232 1 if (y == 1) /* 在第一行显示 */
233 1 {
234 2 if (x < (20 + 1)) /* 有效的列号 */
235 2 {
236 3 Lcd2002SendComm(LCD2002_LINE1 - 1 + x); /* 设置显示地址 */
237 3 Lcd2002SendDate(Data); /* 显示一个字符 */
238 3 }
239 2 }
240 1 if (y == 2) /* 在第二行显示 */
241 1 {
C51 COMPILER V8.08 READ4442 10/21/2008 15:39:51 PAGE 5
242 2 Lcd2002SendComm(LCD2002_LINE2 - 1 + x); /* 设置显示地址 */
243 2
244 2 Lcd2002SendDate(Data); /* 显示一个字符 */
245 2 }
246 1 }
247
248 void Lcd2002Clr(INT8U y)
249 {
250 1 INT8U i;
251 1
252 1 if(y==1)
253 1 {
254 2 Lcd2002SendComm(LCD2002_LINE1);
255 2 }
256 1 if(y==2)
257 1 {
258 2 Lcd2002SendComm(LCD2002_LINE2);
259 2 }
260 1 for(i=0;i<20;i++)
261 1 {
262 2 Lcd2002SendDate(' ');
263 2 }
264 1 }
265
266 void Lcd2002Init(void)
267 {
268 1 Lcd2002SendComm(LCD2002_MODE); // 设置LCM模式(系统方式设置)
269 1 Lcd2002SendComm(LCD2002_NO_FLASH); // 打开LCM显示,无光标
270 1 Lcd2002SendComm(LCD2002_NO_SHIFT); // 字符向地址递增,光标移动
271 1 Lcd2002SendComm(LCD2002_SH); // 重新设为光标移动,向右移
272 1 Lcd2002Clr(1); // 清屏
273 1 Lcd2002Clr(2);
274 1 }
275
276
277 void serial_int(void) interrupt SIO_VECTOR using 3
278 {
279 1 uchar c;
280 1 if(_testbit_(RI))
281 1 c = SBUF;
282 1 switch(recv_state)
283 1 {
284 2 case FSA_INIT:
285 2 if (c == 0xEA)
286 2 recv_state = FSA_ADDRESS;
287 2 else
288 2 recv_state = FSA_INIT;
289 2 break;
290 2 case FSA_ADDRESS:
291 2 if (c == address)
292 2 recv_state = FSA_DATA;
293 2 else
294 2 recv_state = FSA_INIT;
295 2 break;
296 2 case FSA_DATA:
297 2 {
298 3 command_buffer_pre[recv_ctr] = c;
299 3 recv_ctr ++;
300 3 if (recv_ctr >= BN)
301 3 {
302 4 message_flag = 1;
303 4 if(message_disp == 1)
C51 COMPILER V8.08 READ4442 10/21/2008 15:39:51 PAGE 6
304 4 memcpy(command_buffer_cur,command_buffer_pre,16);
305 4 recv_state = FSA_INIT;
306 4 recv_ctr = 0;
307 4 }
308 3 else
309 3 recv_state = FSA_DATA;
310 3 // command = compare_command_buffer();
311 3 };
312 2 break;
313 2 }
314 1 }
315
316
317 uchar compare_command_buffer(void) reentrant
318 {
319 1 //uchar compare;
320 1 // uchar i;
321 1 // for(compare=0;compare<6;compare++)
322 1 // {
323 1 // i = strncmp(command_buffer_cur,command_buffer_OK,BN);
324 1 if(!strncmp(command_buffer_cur,command_buffer_OK,16))
325 1 {
326 2 return(0x02);
327 2 }
328 1 // i = strncmp(command_buffer_cur,command_buffer_Pin15ConnectPin16,BN);
329 1
330 1 else if(!strncmp(command_buffer_cur,command_buffer_Pin15ConnectPin16,16))
331 1 {
332 2 return(0x03);
333 2 }
334 1 // i = strncmp(command_buffer_cur,command_buffer_Pin4ConnectPin5,BN);
335 1 else if(!strncmp(command_buffer_cur,command_buffer_Pin4ConnectPin5,16))
336 1 {
337 2 return(0x04);
338 2 }
339 1 // i = strncmp(command_buffer_cur,command_buffer_Pin19ConnectPin20,BN);
340 1 if(!strncmp(command_buffer_cur,command_buffer_Pin19ConnectPin20,16))
341 1 {
342 2 return(0x05);
343 2 }
344 1
345 1 else
346 1 return(0x01);
347 1 // }
348 1 // message_flag=1;
349 1 // return(0x01);
350 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 857 ----
CONSTANT SIZE = 147 ----
XDATA SIZE = 116 4
PDATA SIZE = ---- ----
DATA SIZE = 1 ----
IDATA SIZE = ---- ----
BIT SIZE = 2 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -