📄 lcd_44.lst
字号:
224 2 temp=getkey();
225 2 if(temp!=0xff) //按任意键跳转
226 2 {
227 3 state=1;
228 3 lcd_wrcmd(1);
229 3 break;
230 3 }
231 2 }
232 1 }
233
234
235 phase()
236 {
237 1 uchar i,j,cnt=0;
238 1 lcd_wrcmd(0x0f);
239 1 lcd_wrcmd(0xc9);
240 1 lcd_wrdata(2);
241 1 lcd_wrcmd(0x83);
C51 COMPILER V8.02 LCD_44 07/15/2007 21:31:14 PAGE 5
242 1 for(i=0;i<12;i++)lcd_wrdata(str3[i]);
243 1 lcd_wrcmd(0xc5);
244 1 while(1) //按键处理
245 1
246 1 {
247 2 i=getkey();
248 2 if(i<10)
249 2 { cnt++;
250 3 if(cnt<=3)
251 3 {
252 4 lcd_wrcmd(0xc5+cnt-1);
253 4 lcd_wrdata(0x30+i);
254 4 }
255 3 else
256 3 {
257 4 cnt=0;
258 4 lcd_wrcmd(0xc5);
259 4 for(j=0;j<=3;j++)
260 4 lcd_wrdata(' ');
261 4 lcd_wrcmd(0xc5);
262 4 }
263 3 }
264 2 else if(i==10)
265 2 {
266 3 state=1;
267 3 lcd_wrcmd(0x0c);
268 3 lcd_wrcmd(1);
269 3 lcd_wrcmd(0x80);
270 3 break;
271 3 }
272 2 else if(i==11)
273 2 {
274 3 cnt=0;
275 3 lcd_wrcmd(0xc5);
276 3 for(j=0;j<=3;j++)
277 3 lcd_wrdata(' ');
278 3 lcd_wrcmd(0xc5);
279 3 }
280 2 }
281 1 }
282
283
284
285 frequency()
286 {
287 1 uchar i,j,cnt=0; // 假如将cnt定义成全局变量,当退出这个界面时,cnt仍然保存原来的值
288 1 lcd_wrcmd(0x80); //会出现光标乱跳的错误
289 1 lcd_wrcmd(0xce);
290 1 lcd_wrdata('H');
291 1 lcd_wrdata('Z');
292 1 lcd_wrcmd(0x81);
293 1 for(i=0;i<15;i++)lcd_wrdata(str2[i]);
294 1 lcd_wrcmd(0x0f);
295 1 lcd_wrcmd(0xc0);
296 1 while(1) //按键处理
297 1 {
298 2 i=getkey();
299 2 if(i<10)
300 2 { cnt++;
301 3 if(cnt<=10)
302 3 {
303 4 lcd_wrcmd(0xc0+cnt-1);
C51 COMPILER V8.02 LCD_44 07/15/2007 21:31:14 PAGE 6
304 4 lcd_wrdata(0x30+i);
305 4 }
306 3 else
307 3 {
308 4 cnt=0;
309 4 lcd_wrcmd(0xc0);
310 4 for(j=0;j<=10;j++)
311 4 lcd_wrdata(' ');
312 4 lcd_wrcmd(0xc0);
313 4 }
314 3 }
315 2 else if(i==10)
316 2 {
317 3 state=1;
318 3 lcd_wrcmd(0x0c);
319 3 lcd_wrcmd(1);
320 3 lcd_wrcmd(0x80);
321 3 break;
322 3 }
323 2 else if(i==11)
324 2 {
325 3 cnt=0;
326 3 lcd_wrcmd(0xc0);
327 3 for(j=0;j<=10;j++)
328 3 lcd_wrdata(' ');
329 3 lcd_wrcmd(0xc0);
330 3 }
331 2 }
332 1
333 1 }
334
335 warning()
336 {
337 1 uchar i,ii;
338 1 lcd_wrcmd(1);
339 1 lcd_wrcmd(0x0c);
340 1 lcd_wrcmd(0x83);
341 1 for(i=0;i<9;i++)
342 1 lcd_wrdata(warn[i]);
343 1 lcd_wrcmd(0xc1);
344 1 for(i=0;i<12;i++)
345 1 lcd_wrdata(warn[i+9]);
346 1 while(1)
347 1 {
348 2 ii=getkey();
349 2 if(ii!=0xff)
350 2 {
351 3 lcd_wrcmd(1);
352 3 break;
353 3
354 3 }
355 2
356 2 }
357 1 }
358
359
360 uchar dac_convert(uchar *amp)
361 {
362 1 uint v;
363 1 v=amp[2]*100+amp[1]*10+amp[0];
364 1 if(v<500)
365 1 {
C51 COMPILER V8.02 LCD_44 07/15/2007 21:31:14 PAGE 7
366 2 v=32*v;
367 2 dac_tlc5620(v/100);
368 2 return 0;
369 2 }
370 1 else
371 1 {
372 2 return 1;
373 2 }
374 1
375 1 }
376
377
378 amplitude()
379 {
380 1 uchar i,ii;
381 1 uchar amp[3],t=0;
382 1 lcd_wrcmd(0x80);
383 1 for(i=0;i<16;i++)
384 1 lcd_wrdata(am[i]);
385 1 lcd_wrcmd(0xcc);
386 1 lcd_wrdata('V');
387 1 lcd_wrcmd(0xc8);
388 1 lcd_wrdata('.');
389 1 lcd_wrcmd(0x0f); //开光标
390 1 lcd_wrcmd(0xc7);
391 1 while(1)
392 1 {
393 2 ii=getkey();
394 2 if(ii==10)
395 2 {
396 3 if(t==4)
397 3 {
398 4 if(dac_convert(amp))
399 4 {
400 5 warning();
401 5 break;
402 5 }
403 4 }
404 3 lcd_wrcmd(0x0c);
405 3 state=1;
406 3 lcd_wrcmd(1);
407 3 break;
408 3 }
409 2 if(ii<10)
410 2 {
411 3 t++;
412 3 if(t==1)
413 3 {
414 4 lcd_wrcmd(0xc9);
415 4 }
416 3 if(t==2)t++;
417 3 if(t==1)amp[2]=ii;
418 3 else if(t==3)amp[1]=ii;
419 3 else if(t==4)amp[0]=ii;
420 3
421 3 if(t==5)
422 3 {
423 4 t=0;
424 4 lcd_wrcmd(0xc7);
425 4 lcd_wrdata(' '); lcd_wrdata('.');lcd_wrdata(' ');lcd_wrdata(' ');
426 4 lcd_wrcmd(0xc7);
427 4 }
C51 COMPILER V8.02 LCD_44 07/15/2007 21:31:14 PAGE 8
428 3 else
429 3 {
430 4 lcd_wrcmd(0xc6+t);
431 4 lcd_wrdata(0x30+ii);
432 4 }
433 3
434 3
435 3 }
436 2
437 2
438 2 }
439 1
440 1 }
441
442
443 menu()
444 {
445 1 uchar i,ii,cnt=1;
446 1
447 1 lcd_wrcmd(0x83);
448 1 for(i=0;i<11;i++)
449 1 lcd_wrdata(str4[i]);
450 1 lcd_wrcmd(0xc3);
451 1 i=0;
452 1 while(str5[i]!='\0')
453 1 {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -