?? ks0108.lst
字號:
292
293
294
295
296 /*
297 *****************************************************************************
298 * Display_Chinese - 指定位置顯示一個16x16的漢字
299 * DESCRIPTION: -
300 *
301 * @Param x0:X軸坐標0--(192-16)
302 * @Param y0:Y軸坐標0--(8-2)
C51 COMPILER V7.20 KS0108 09/04/2007 22:35:41 PAGE 6
303 * @Param UniCode:漢字內碼
304 * @Return :
305 * ----
306 *****************************************************************************
307 */
308 void Display_Chinese(U16 UniCode, U8 x0, U8 y0)
309 {
310 1 U16 CodeID;
311 1 U8 i, ImgData;
312 1 U8 HZ_X = x0;
313 1 // 在字庫里搜索漢字
314 1 for(CodeID=0; CodeID < hzNum; CodeID++){
315 2 // 找到 指定漢字的 Index 后, 跳出循環
316 2 if ( (hzIndex[2*CodeID] == UniCode/256) && (hzIndex[2*CodeID+1] == UniCode%256) ){
317 3 break;
318 3 }else if(CodeID == (hzNum-1)){//未檢索到的漢字,顯示個"##"提示吧
319 3 GUI_DispCharAt('#',x0,y0);
320 3 GUI_DispCharAt('#',x0+Char_XSIZE,y0);
321 3 return;
322 3 }
323 2 }
324 1 //----------------------------------
325 1 switch (GUITextMode) {
326 2 case GUI_TEXTMODE_NORMAL :
327 2 //-------------------------------------------------------------------------
328 2 // 寫漢字的上半部分 (一個漢字 32 個字節, 顯示為2行 * 16列)
329 2 for(i=0; i<16; i++){
330 3 ImgData = hzdot[i+CodeID*32];
331 3 Display_Locate(ImgData, HZ_X, y0);
332 3 HZ_X++;
333 3 }
334 2 // 寫漢字的下半部分
335 2 HZ_X = x0;
336 2 for(i=16; i<32; i++){
337 3 ImgData = hzdot[i+CodeID*32];
338 3 Display_Locate(ImgData, HZ_X, y0 + 1);
339 3 HZ_X++;
340 3 }
341 2 //-------------------------------------------------------------------------
342 2 break;
343 2 case GUI_TEXTMODE_REVERSE :
344 2 //-------------------------------------------------------------------------
345 2 // 寫漢字的上半部分 (一個漢字 32 個字節, 顯示為2行 * 16列)
346 2 for(i=0; i<16; i++){
347 3 ImgData = hzdot[i+CodeID*32]^0xFF;
348 3 Display_Locate(ImgData, HZ_X, y0);
349 3 HZ_X++;
350 3 }
351 2 // 寫漢字的下半部分
352 2 HZ_X = x0;
353 2 for(i=16; i<32; i++){
354 3 ImgData = hzdot[i+CodeID*32]^0xFF;
355 3 Display_Locate(ImgData, HZ_X, y0 + 1);
356 3 HZ_X++;
357 3 }
358 2 //-------------------------------------------------------------------------
359 2 break;
360 2 case GUI_TEXTMODE_UNDERLINE :
361 2 //-------------------------------------------------------------------------
362 2 // 寫漢字的上半部分 (一個漢字 32 個字節, 顯示為2行 * 16列)
363 2 for(i=0; i<16; i++){
364 3 ImgData = hzdot[i+CodeID*32];
C51 COMPILER V7.20 KS0108 09/04/2007 22:35:41 PAGE 7
365 3 Display_Locate(ImgData, HZ_X, y0);
366 3 HZ_X++;
367 3 }
368 2 // 寫漢字的下半部分
369 2 HZ_X = x0;
370 2 for(i=16; i<32; i++){
371 3 ImgData = hzdot[i+CodeID*32]|0x80;
372 3 Display_Locate(ImgData, HZ_X, y0 + 1);
373 3 HZ_X++;
374 3 }
375 2 //-------------------------------------------------------------------------
376 2 break;
377 2 default :
378 2 break;
379 2 }
380 1 }
381
382
383 /*
384 *****************************************************************************
385 * Display_ASCII - 顯示一個ASCII
386 * DESCRIPTION: -
387 *
388 * @Param X:X軸坐標 0--192 (注意邊界)
389 * @Param Y:Y軸坐標 0-- 7 (注意邊界)
390 * @Param Char:ASCII碼
391 * @Return :
392 * ----
393 *****************************************************************************
394 */
395 void Display_ASCII(U8 Char, U8 X, U8 Y)
396 {
397 1 U8 i, ImgData;
398 1 U8 HZ_X = X;
399 1 if(GUIEnFont == En_5x8){
400 2 Display_Locate(0x00, HZ_X, Y);
401 2 HZ_X++;
402 2 for(i = 0; i < 5; i++){
403 3 ImgData = chardot_5x8[i+(Char-0x20)*5];
404 3 Display_Locate(ImgData, HZ_X, Y);
405 3 HZ_X++;
406 3 }
407 2 Display_Locate(0x00, HZ_X, Y);
408 2 HZ_X++;
409 2 Display_Locate(0x00, HZ_X, Y);
410 2 } else {
411 2 for(i=0;i<8;i++){
412 3 ImgData = chardot_8x16[i+(Char-0x20)*16];
413 3 Display_Locate(ImgData, HZ_X, Y);
414 3 HZ_X++;
415 3 }
416 2 HZ_X=X;
417 2 for(i=8;i<16;i++){
418 3 ImgData = chardot_8x16[i+(Char-0x20)*16];
419 3 Display_Locate(ImgData, HZ_X, Y + 1);
420 3 HZ_X++;
421 3 }
422 2
423 2 }
424 1 }
425
426
C51 COMPILER V7.20 KS0108 09/04/2007 22:35:41 PAGE 8
427
428
429 /*
430 *****************************************************************************
431 * Display_InvASCII - 反顯示ASCII
432 * DESCRIPTION: -
433 *
434 * @Param X:X軸坐標 0--191
435 * @Param Y:Y軸坐標 0--7
436 * @Param Char:ASCII碼
437 * @Return :
438 * ----
439 *****************************************************************************
440 */
441 void Display_InvASCII(U8 Char, U8 X, U8 Y)
442 {
443 1
444 1 U8 i, ImgData;
445 1 U8 HZ_X = X;
446 1 if(GUIEnFont == En_5x8){
447 2 Display_Locate(0xFF, HZ_X, Y);
448 2 HZ_X++;
449 2 for(i = 0; i < 5; i++){
450 3 ImgData = chardot_5x8[i+(Char-0x20)*5]^0xFF;
451 3 Display_Locate(ImgData, HZ_X, Y);
452 3 HZ_X++;
453 3 }
454 2 Display_Locate(0xFF, HZ_X, Y);
455 2 HZ_X++;
456 2 Display_Locate(0xFF, HZ_X, Y);
457 2 } else {
458 2 for(i=0;i<8;i++){
459 3 ImgData = chardot_8x16[i+(Char-0x20)*16] ^ 0xFF;
460 3 Display_Locate(ImgData, HZ_X, Y);
461 3 HZ_X++;
462 3 }
463 2 HZ_X=X;
464 2 for(i=8;i<16;i++){
465 3 ImgData = chardot_8x16[i+(Char-0x20)*16] ^ 0xFF;
466 3 Display_Locate(ImgData, HZ_X, Y + 1);
467 3 HZ_X++;
468 3 }
469 2 }
470 1 }
471
472 /*
473 *****************************************************************************
474 * Display_ASCII_UnderLine - 顯示一個帶有下劃線的ASCII
475 * DESCRIPTION: -
476 *
477 * @Param X:X軸坐標
478 * @Param Y:Y軸坐標
479 * @Param Char:ASCII碼
480 * @Return :
481 * ----
482 *****************************************************************************
483 */
484 void Display_ASCII_UnderLine(U8 Char, U8 X, U8 Y)
485 {
486 1 //U16 Position;
487 1 U8 i, ImgData;
488 1 U8 HZ_X = X;
C51 COMPILER V7.20 KS0108 09/04/2007 22:35:41 PAGE 9
489 1 if(GUIEnFont == En_5x8){
490 2 Display_Locate(0x80, HZ_X, Y);
491 2 HZ_X++;
492 2 for(i = 0; i < 5; i++){
493 3 ImgData = chardot_5x8[i+(Char-0x20)*5] | 0x80;
494 3 Display_Locate(ImgData, HZ_X, Y);
495 3 HZ_X++;
496 3 }
497 2 Display_Locate(0x80, HZ_X, Y);
498 2 HZ_X++;
499 2 Display_Locate(0x80, HZ_X, Y);
500 2 } else {
501 2 for(i=0;i<8;i++){
502 3 ImgData = chardot_8x16[i+(Char-0x20)*16];
503 3 Display_Locate(ImgData, HZ_X, Y);
504 3 HZ_X++;
505 3 }
506 2 HZ_X=X;
507 2 for(i=8;i<16;i++){
508 3 ImgData = chardot_8x16[i+(Char-0x20)*16] | 0x80;
509 3 Display_Locate(ImgData, HZ_X, Y + 1);
510 3 HZ_X++;
511 3 }
512 2 }
513 1 }
514
515 /*
516 ----------------------------------------------------------------------------------------------
517
518 ----------------------------------------------------------------------------------------------
519 */
520 #if 0
/*
----------------------------------------------------------------------------------------------
//移動當前Y坐標
----------------------------------------------------------------------------------------------
*/
void GUI_GotoY(U8 y)
{
if (y > 7) {
PosY = 7;
} else {
PosY = y;
}
}
/*
----------------------------------------------------------------------------------------------
//移動當前Y坐標
----------------------------------------------------------------------------------------------
*/
void GUI_GotoX(U8 x)
{
if (x > 127) {
PosX = 127;
} else {
PosX = x;
}
}
/*
*****************************************************************************
* GUI_GotoXY - 系統光標移動到指定位置
* DESCRIPTION: -
C51 COMPILER V7.20 KS0108 09/04/2007 22:35:41 PAGE 10
*
* @Param y:Y軸坐標
* @Param x:X軸坐標
* @Return :
* ----
*****************************************************************************
*/
void GUI_GotoXY(U8 x,U8 y)
{
GUI_GotoX(x);
GUI_GotoY(y);
}
#endif
565 /*
566 *****************************************************************************
567 * GUI_SetTextMode - 設置文字顯示模式
568 * DESCRIPTION: -
569 *
570 * @Param TextMode:模式代碼
571 * @Return :模式代碼
572 * ----
573 *****************************************************************************
574 */
575
576 U8 GUI_SetTextMode(U8 TextMode)
577 {
578 1 GUITextMode = TextMode;
579 1 return GUITextMode;
580 1 }
581
582 /*
583 *****************************************************************************
584 * GUI_SetEnFont - 設置顯示的英文字體
585 * DESCRIPTION: -
586 * 目前支持兩種字體8x16 5x8
587 * @Param EnFont:字體代碼
588 * @Return :
589 * ----
590 *****************************************************************************
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -