📄 lcd1602.lst
字号:
208 3 {
209 4 RI=0;
210 4 Uart_putchar('y');
211 4 len=Uart_get_uint();
212 4 floatDisplay(len,0);
213 4 }
214 3 for(j=0;j<5;j++)Uart_putchar('x');
215 3 break;
216 3 case 8: //Y+
217 3 RI=0;
218 3 Uart_putchar('7');
219 3 while(count==key())
220 3 {
221 4 RI=0;
222 4 Uart_putchar('y');
223 4 len=Uart_get_uint();
224 4 floatDisplay(len,1);
225 4 }
226 3 for(j=0;j<5;j++)Uart_putchar('x');
227 3 break;
228 3 case 4: //Y-
229 3 RI=0;
230 3 Uart_putchar('8');
231 3 while(count==key())
232 3 {
233 4 RI=0;
234 4 Uart_putchar('y');
235 4 len=Uart_get_uint();
236 4 floatDisplay(len,1);
237 4 }
238 3 for(j=0;j<5;j++)Uart_putchar('x');
239 3 break;
240 3 case 15: //Z+
241 3 RI=0;
C51 COMPILER V8.02 LCD1602 08/11/2007 18:24:45 PAGE 5
242 3 Uart_putchar('9');
243 3 while(count==key())
244 3 {
245 4 RI=0;
246 4 Uart_putchar('y');
247 4 len=Uart_get_uint();
248 4 floatDisplay(len,2);
249 4 }
250 3 for(j=0;j<5;j++)Uart_putchar('x');
251 3 break;
252 3 case 11: //Z-
253 3 RI=0;
254 3 Uart_putchar('a');
255 3 while(count==key())
256 3 {
257 4 RI=0;
258 4 Uart_putchar('y');
259 4 len=Uart_get_uint();
260 4 floatDisplay(len,2);
261 4 }
262 3 for(j=0;j<5;j++)Uart_putchar('x');
263 3 break;
264 3 case 7: //复位
265 3 Uart_putchar('2');
266 3 while(Uart_getchar()=='0');
267 3 floatDisplay(0,0);
268 3 floatDisplay(0,1);
269 3 floatDisplay(0,2);
270 3 break;
271 3 case 16: //SHF
272 3 while(count==key());
273 3 if(LMH==1)
274 3 {
275 4 LCD_Print(13,1,"LOW");
276 4 Uart_putchar('b');
277 4 LMH=0;
278 4 }
279 3 else if(LMH==0)
280 3 {
281 4 LCD_Print(13,1,"HI ");
282 4 Uart_putchar('b');
283 4 LMH=1;
284 4 }
285 3 break;
286 3 }
287 2 count=key();
288 2 }
289 1 if(i)
290 1 {
291 2 if(count==10)Uart_putchar('f'); //取消零点
292 2 else if(count==14)Uart_putchar('e');; //确定零点
293 2 }
294 1
295 1 }
296 //循环界面显示
297 void cycDisplay(uchar *p,uchar i)
298 {
299 1 switch(i)
300 1 {
301 2 case 0:LCD_Printnum(2,1,p[i]);break;
302 2 case 1:LCD_Printnum(3,1,p[i]);break;
303 2 case 2:LCD_Printnum(4,1,p[i]);break;
C51 COMPILER V8.02 LCD1602 08/11/2007 18:24:45 PAGE 6
304 2 case 3:LCD_Printnum(5,1,p[i]);break;
305 2 case 4:LCD_Printnum(10,1,p[i]);break;
306 2 case 5:LCD_Printnum(11,1,p[i]);break;
307 2 case 6:LCD_Printnum(12,1,p[i]);break;
308 2 case 7:LCD_Printnum(14,1,p[i]);break;
309 2 default:break;
310 2 }
311 1 if(i<4) LCD_Write(LCD_COMMAND,0x80|(i+2)|0x40); //重新定位光标位置
312 1 else if(i==7) LCD_Write(LCD_COMMAND,0x80|(i+7)|0x40);
313 1 else LCD_Write(LCD_COMMAND,0x80|(i+6)|0x40);
314 1 }
315 //循环设置
316 void cycset()
317 {
318 1 uchar numflag=0; //循环加工次数选择标志
319 1 uchar timeflag=0; //间隔时间选择标志
320 1 uchar count = 0;
321 1 uchar t=0;
322 1 uchar a[8]={0,0,0,0,0,0,0,0};
323 1 uchar i;
324 1 num=AT24C02_read(filenum*5+1)<<8;
325 1 num+=AT24C02_read(filenum*5+2);
326 1 time=AT24C02_read(filenum*5+3)<<8;
327 1 time+=AT24C02_read(filenum*5+4);
328 1 t=a[0]=(num/1000)%10; //取得整数值到数组
329 1 t=a[1]=(num/100)%10;
330 1 t=a[2]=(num/10)%10;
331 1 t=a[3]=num%10;
332 1
333 1 t=a[4]=(time/1000)%10; //取得整数值到数组
334 1 t=a[5]=(time/100)%10;
335 1 t=a[6]=(time/10)%10;
336 1 t=a[7]=(time)%10;
337 1 LCD_Print(0,1,"N=**** T=***.*S");
338 1 LCD_SetDisplay(LCD_SHOW|LCD_CURSOR); //开启显示, 开光标显示
339 1 for(i=0;i<8;i++)cycDisplay(a,i);
340 1 i=0;
341 1 LCD_Write(LCD_COMMAND,0x80|(i-0x40));
342 1 count=key();
343 1 while(count!=10&&count!=14)
344 1 {
345 2 cycDisplay(a,i);
346 2 if(count)
347 2 {
348 3 while(count==key());
349 3 switch(count)
350 3 {
351 4 case 12: //X+
352 4 if(i<8)i++;
353 4 if(i==8) i=0;
354 4 break;
355 4 case 3: //X-
356 4 if(i>0)i--;
357 4 else if(i==0) i=7;
358 4 break;
359 4 case 8: //Y+
360 4 if(a[i]<10)a[i]++;
361 4 if(a[i]==10) a[i]=0;
362 4 break;
363 4 case 4: //Y-
364 4 if(a[i]>0)a[i]--;
365 4 else if(a[i]==0)a[i]=9;
C51 COMPILER V8.02 LCD1602 08/11/2007 18:24:45 PAGE 7
366 4 break;
367 4 default:break;
368 4 }
369 3 }
370 2 count=key();
371 2 }
372 1 if(count==14)
373 1 {
374 2 num=a[0]*1000+a[1]*100+a[2]*10+a[3];
375 2 time=a[4]*1000+a[5]*100+a[6]*10+a[7];
376 2 Uart_putchar('h');
377 2 Uart_putchar('y');
378 2 while(Uart_getchar()==NOACK)
379 2 {
380 3 Uart_putchar('y');
381 3 }
382 2 Uart_put_uint(time);
383 2 Delay1ms(5);
384 2 Uart_put_uint(num);
385 2 AT24C02_write(filenum*5+1,num>>8);
386 2 Delay1ms(5);
387 2 AT24C02_write(filenum*5+2,num&0xff);
388 2 Delay1ms(5);
389 2 AT24C02_write(filenum*5+3,time>>8);
390 2 Delay1ms(5);
391 2 AT24C02_write(filenum*5+4,time&0xff);
392 2 Delay1ms(5);
393 2 }
394 1 LCD_SetDisplay(LCD_SHOW|LCD_NO_CURSOR); //开启显示, 关光标显示
395 1 }
396 //主界面,参数为文件号
397 void mianface(uchar i)
398 {
399 1 uchar buf[17];
400 1 Delay1ms(5);
401 1 filename=AT24C02_read(i*5);
402 1 buf[0]='F';
403 1 buf[1]='N';
404 1 buf[2]=(filename/100)%10+'0';
405 1 buf[3]=(filename/10)%10+'0';
406 1 buf[4]=filename%10+'0';
407 1 buf[5]=' ';
408 1 buf[6]=' ';
409 1 buf[7]=' ';
410 1 buf[8]=' ';
411 1 buf[9]=(i/100)%10+'0';
412 1 buf[10]=(i/10)%10+'0';
413 1 buf[11]=i%10+'0';
414 1 buf[12]='/';
415 1 buf[13]=(filetotal/100)%10+'0';
416 1 buf[14]=(filetotal/10)%10+'0';
417 1 buf[15]=filetotal%10+'0';
418 1 buf[16]='\0';
419 1 LCD_Print(0,0,buf);
420 1
421 1
422 1 if(filechoice)
423 1 {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -