📄 12864.lst
字号:
259 4 n++;
260 4 tmp=m;
261 4 m=HZK_12[n];
262 4 Wt=tmp>>(8-offset)|(m<<offset);
263 4 WriteData(Wt);
264 4 Page++;
265 4 n++;
266 4 Rd=ReadData();
267 4 Rd=ReadData();
268 4 Wt=m>>(8-offset)|(Rd&(0xff<<(offset-4)));
269 4 WriteData(Wt);
270 4 Page=Page-2;//恢复位置
271 4 Col++; //修正下一个汉字的起始位置
272 4 }
273 3 }
274 2 }
275 1 }
276 uchar * uchartostr(uchar unm)
277 {
278 1 uchar x00,xx,x0,x,n;
279 1 x00=unm/100;
280 1 xx=unm%100;
281 1 x0=xx/10;
282 1 x=xx%10;
283 1 n=0;
284 1 if(x00!=0)
285 1 { str[n]=x00+48; //值加48即为字符
286 2 n++;
287 2 }
288 1 if(!(x00==0&x0==0))
289 1 { str[n]=x0+48;
290 2 n++;
291 2 }
292 1 str[n]=x+48;
293 1 n++;
294 1 str[n]='\0';
295 1 return str;
296 1 }
297 void LcmPutAsc( uchar asc )
298 {
299 1 uchar j;
300 1 uint x;
301 1 x = 5*(asc-32);
302 1 for(j=0;j<5;j++)
303 1 {
C51 COMPILER V7.07 12864 09/12/2008 07:31:04 PAGE 6
304 2 WriteData(ASC_5x7[x]);
305 2 x++;
306 2 Col++;
307 2 }
308 1 WriteData(0x00);
309 1 Col++;
310 1 }
311 void LcmPutstr( uchar row,uchar y,uchar * str )
312 { unsigned char * x;
313 1 x=str;
314 1 Page=row;
315 1 Col=y;
316 1 while(*x!='\0')
317 1 { LcmPutAsc( *x );
318 2 x++;
319 2 }
320 1 }
321
322 void LcmPutpoint( uchar ro,uchar lie,uchar colour ) //画点函数
323 {
324 1 if((ro<64)&(lie<128))
325 1 {
326 2 uchar modbyte,outByte;
327 2 uchar offsetbit;
328 2 Col=lie; //列等于lie
329 2 Page=(ro & 0x38)>>3; //页等于行数row与00111000B再右移3位
330 2 offsetbit=ro&0x07; //偏移量为行数与00000111
331 2 modbyte=1;
332 2 modbyte<<= offsetbit; //输出位的模00000001左移offsetbit位
333 2 outByte=ReadData();
334 2 outByte=ReadData();
335 2 if(colour==0)
336 2 {
337 3 modbyte=~modbyte;
338 3 outByte=modbyte&outByte; //输出位不影响其它位
339 3 }
340 2 else outByte=modbyte|ReadData(); //输出位不影响其它位
341 2 WriteData(outByte);
342 2 }
343 1 }
344
345 void Delay(uint MS)
346 {
347 1 uchar us,usn;
348 1 while(MS!=0)
349 1 {
350 2 usn = 2; //for 12M
351 2 while(usn!=0)
352 2 {
353 3 us=0xf6;
354 3 while (us!=0){us--;};
355 3 usn--;
356 3 }
357 2 MS--;
358 2 }
359 1 }
360
361 /*************************************8888
362 数字转化成字符
363 *******************************************/
364 uchar *conv(uint shuzi)
365 {
C51 COMPILER V7.07 12864 09/12/2008 07:31:04 PAGE 7
366 1 uchar *zifu;
367 1 switch (shuzi)
368 1 {
369 2 case 0 :
370 2 {
371 3 zifu="0";
372 3 break;
373 3 }
374 2 case 1 :
375 2 {
376 3 zifu="1";
377 3 break;
378 3 }
379 2 case 2 :
380 2 {
381 3 zifu="2";
382 3 break;
383 3 }
384 2 case 3 :
385 2 {
386 3 zifu="3";
387 3 break;
388 3 }
389 2 case 4 :
390 2 {
391 3 zifu="4";
392 3 break;
393 3 }
394 2 case 5 :
395 2 {
396 3 zifu="5";
397 3 break;
398 3 }
399 2 case 6 :
400 2 {
401 3 zifu="6";
402 3 break;
403 3 }
404 2 case 7 :
405 2 {
406 3 zifu="7";
407 3 break;
408 3 }
409 2 case 8 :
410 2 {
411 3 zifu="8";
412 3 break;
413 3 }
414 2 case 9 :
415 2 {
416 3 zifu="9";
417 3 break;
418 3 }
419 2 default :break;
420 2 }
421 1 return zifu;
422 1 }
423
424 uint skey() //简易小按键
425 {
426 1 uint keyval;
427 1 Key1=0;
C51 COMPILER V7.07 12864 09/12/2008 07:31:04 PAGE 8
428 1 Key2=0;
429 1 if(Key1)
430 1 {
431 2 Delay(10);
432 2 if(Key1)
433 2 keyval=1;
434 2 }
435 1 else
436 1 if(Key2)
437 1 {
438 2 Delay(10);
439 2 if(Key2)
440 2 keyval=2;
441 2 }
442 1 else keyval=0;
443 1 return keyval;
444 1 }
445
446 void Main( void )
447 {
448 1 uint isec,imin,ihour,temp;
449 1 uchar x,i;
450 1 uint keyvalue=0;
451 1 uchar sec[]="00";
452 1 uchar min[]="00";
453 1 uchar hour[]="00";
454 1 uchar year[]="2008";
455 1 uchar month[]="09";
456 1 uchar day[]="10";
457 1 LcmInit();
458 1 LcmClear();
459 1 LcmClear();
460 1 LcmPutBMP(BMP1);
461 1 Delay(1000);
462 1 LcmClear();
463 1 //LcmReverseBMP();
464 1 Delay(1000);
465 1 //LcmClear();
466 1 x=0;
467 1 for(i=0;i<8;i++)
468 1 {
469 2 LcmPutHZ_12(x,i*7,i);
470 2 x=x+16;
471 2 }
472 1 LcmPutstr( 4,2,"Good" );
473 1 LcmPutstr( 6,35,"Job" );
474 1 Delay(500);
475 1 LcmClear();
476 1 LcmPutstr(2,0,year);
477 1 LcmPutstr(2,30,month);
478 1 LcmPutstr(2,60,day);
479 1 LcmPutstr(4,0,min);
480 1 LcmPutstr(4,13,":");
481 1 LcmPutstr(4,20,min);
482 1 LcmPutstr(4,35,":");
483 1 LcmPutstr(4,40,sec);
484 1 isec=58;imin=58;ihour=22;
485 1 while(1)
486 1 {
487 2 keyvalue=skey();
488 2 switch (keyvalue)
489 2 {
C51 COMPILER V7.07 12864 09/12/2008 07:31:04 PAGE 9
490 3 case 1: LcmPutstr(6,90,"1");break;
491 3 case 2: LcmPutstr(6,90,"2");break;
492 3 default:LcmPutstr(6,90,"0");break;
493 3 }
494 2 isec++;
495 2 if(isec>59)
496 2 {
497 3 isec=0;
498 3 imin++;
499 3 if(imin>59)
500 3 {
501 4 imin=0;
502 4 ihour++;
503 4 if(ihour>23) ihour=0;
504 4 temp=ihour/10;
505 4 hour[0]=*conv(temp);
506 4 temp=ihour%10;
507 4 hour[1]=*conv(temp);
508 4 LcmPutstr(4,0,hour);
509 4 }
510 3 temp=imin/10;
511 3 min[0]=*conv(temp);
512 3 temp=imin%10;
513 3 min[1]=*conv(temp);
514 3 LcmPutstr(4,20,min);
515 3 }
516 2 temp=isec/10;
517 2 sec[0]=*conv(temp);
518 2 temp=isec%10;
519 2 sec[1]=*conv(temp);
520 2 Delay(100);
521 2 LcmPutstr(4,40,sec);
522 2 }
523 1 }
524
525 unsigned char code BMP1[]={ //字节倒序
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -