?? disp.c
字號:
/****************************************************************/
/* 項目名稱 : R8C/23 CAN/LIN Demo Board */
/* : 樣例程序1 */
/* : 人機接口 */
/* 硬件環境 : R0K521237C000BB */
/* MCU型號 : R5F21237JFP */
/* C編譯器 : NC30WA,版本5.30.r02及以上 */
/* 文件名 : Disp.c */
/* 功能簡介 : 界面定義和顯示 */
/* 版本 : 1.0 */
/* 作者 : 閆雋 */
/* 修訂歷史 : */
/* 修訂者 時間 版本 說明 */
/* 閆雋 2006/9/11 1.0 初版發行 */
/* */
/****************************************************************/
/* Copyright, 2006 RENESAS TECHNOLOGY CORPORATION & */
/* RENESAS SOLUTIONS CORPORATION */
/****************************************************************/
#include "..\inc\Comdef_r823.h"
#include "..\inc\Main.h"
#include "..\inc\LCD.h"
#include "..\inc\string.h"
#include "..\inc\Misc.h"
#include "..\inc\Disp.h"
#include "..\inc\Disp_cons.h"
#include "..\inc\Key.h"
uchar8 ucCursor_M1; // 一級菜單光標行號
uchar8 ucCursor_M2; // 二級菜單光標行號
void vDisp_exe( uchar8, uchar8, uchar8 );
void vDisp_init( void );
void vDisp_menu0( void );
void vDisp_menu1( uchar8 );
void vDisp_menu2_1( uchar8 );
void vDisp_menu2_2( uchar8 );
void vDisp_menu2_3( uchar8 );
/*------------------------------------------------------
名稱 : vDisp_exe
功能 : 刷新顯示屏
入口 : ucMenu_ID, ucCursor_M1, ucCursor_M2
出口 : 無
調用 : vDisp_menu0, vDisp_menu1, vDisp_menu2_1, vDisp_menu2_2, vDisp_menu2_3
寄存器 : 無
------------------------------------------------------*/
void vDisp_exe( uchar8 ucMenu, uchar8 ucCursor1, uchar8 ucCursor2 )
{
uchar8 ucI;
switch ( ucMenu )
{
case ( HOME ):
vDisp_menu0(); // 瑞薩圖標
break;
case ( M1_1 ): // 功能選擇界面:背光
case ( M1_2 ): // 功能選擇界面:按鍵伴音
case ( M1_3 ): // 功能選擇界面:關于
vDisp_menu1( ucCursor1 );
break;
case ( M2_1 ): // 背光開關界面
vDisp_menu2_1( ucCursor2 );
break;
case ( M2_2 ): // 按鍵伴音開關界面
vDisp_menu2_2( ucCursor2 );
break;
case ( M2_3 ): // R8C Tiny 圖標
vDisp_menu2_3( ucCursor2 );
break;
default: break;
}
}
/*------------------------------------------------------
名稱 : vDisp_init
功能 : 顯示初始化
入口 :
出口 : 無
調用 :
寄存器 : 無
------------------------------------------------------*/
void vDisp_init( void )
{
BKL_ON;
vLcd_init();
BEEP_ON;
vMisc_softdelay_1ms( (uint16)50 );
BEEP_OFF;
BKL_OFF;
}
/*------------------------------------------------------
名稱 : vDisp_menu0
功能 : 待機界面
入口 : ucM0_MODEL
出口 : 無
調用 : strcpy, vLcd_write16
寄存器 : 無
------------------------------------------------------*/
void vDisp_menu0( void )
{
strcpy( ucLcd_buf, ucM0_MODEL[ 0 ]);
vLcd_write16( (uchar8)0, (uchar8)0, (uchar8)16, (uchar8)NO, (uchar8)IMAGE );
strcpy( ucLcd_buf, ucM0_MODEL[ 1 ]);
vLcd_write16( (uchar8)2, (uchar8)0, (uchar8)16, (uchar8)NO, (uchar8)IMAGE );
strcpy( ucLcd_buf, ucM0_MODEL[ 2 ]);
vLcd_write16( (uchar8)4, (uchar8)0, (uchar8)16, (uchar8)NO, (uchar8)IMAGE );
strcpy( ucLcd_buf, ucM0_MODEL[ 3 ]);
vLcd_write16( (uchar8)6, (uchar8)0, (uchar8)16, (uchar8)NO, (uchar8)IMAGE );
}
/*------------------------------------------------------
名稱 : vDisp_menu1
功能 : 功能選擇界面:背光
入口 : ucCursor_M1(當前選中的菜單項),ucM1_MODEL_CHS
出口 : ucLcd_buf, 顯示內存
調用 : strcpy, vLcd_write16, vDisp_all_clear
寄存器 : 無
------------------------------------------------------*/
void vDisp_menu1( uchar8 ucCursor )
{
uchar8 ucI;
uchar8 ucJ;
vLcd_display_clear();
ucJ = 0;
for ( ucI = 0; ucI < 3; ucI ++ )
{
strcpy( ucLcd_buf, ucM1_MODEL[ ucI ]);
if ( ucI == ucCursor )
{
vLcd_write16( ucJ, (uchar8)8, (uchar8)15, (uchar8)YES, (uchar8)FONT );
}
else
{
vLcd_write16( ucJ, (uchar8)8, (uchar8)15, (uchar8)NO, (uchar8)FONT );
}
ucJ += 2;
}
// 提示欄
switch ( ucCursor )
{
case ( 0 ):
strcpy( ucLcd_buf, ucHELP_MODEL[ 2 ]);
break;
case ( 2 ):
strcpy( ucLcd_buf, ucHELP_MODEL[ 1 ]);
break;
default:
strcpy( ucLcd_buf, ucHELP_MODEL[ 0 ]);
break;
}
vLcd_write16( (uchar8)6, (uchar8)0, (uchar8)16, (uchar8)NO, (uchar8)IMAGE );
}
/*------------------------------------------------------
名稱 : vDisp_menu2_1
功能 : 背光開關界面
入口 : ucFlag_backlight, ucCursor_M2, ucM2_1_MODEL_CHS
出口 : ucLcd_buf, 顯示內存
調用 : strcpy, vDisp_all_clear, vLcd_write16
寄存器 : 無
------------------------------------------------------*/
void vDisp_menu2_1( uchar8 ucCursor )
{
vLcd_display_clear();
strcpy( ucLcd_buf, ucM2_1_MODEL[ 0 ]);
vLcd_write16( (uchar8)0, (uchar8)0, (uchar8)16, (uchar8)NO, (uchar8)FONT );
if ( ucFlag_backlight == YES )
{
strcpy( ucLcd_buf, ucM2_1_MODEL[ 1 ]);
}
else
{
strcpy( ucLcd_buf, ucM2_1_MODEL[ 2 ]);
}
vLcd_write16( (uchar8)2, (uchar8)16, (uchar8)14, (uchar8)YES, (uchar8)FONT );
// 提示欄
strcpy( ucLcd_buf, ucHELP_MODEL[ 3 ]);
vLcd_write16( (uchar8)6, (uchar8)0, (uchar8)16, (uchar8)NO, (uchar8)IMAGE );
}
/*------------------------------------------------------
名稱 : vDisp_menu2_2
功能 : 按鍵音開關界面
入口 : ucFlag_buzzer, ucCursor_M2, ucM2_2_MODEL_CHS
出口 : ucLcd_buf, 顯示內存
調用 : strcpy, vDisp_all_clear, vLcd_write16
寄存器 : 無
------------------------------------------------------*/
void vDisp_menu2_2( uchar8 ucCursor )
{
vLcd_display_clear();
strcpy( ucLcd_buf, ucM2_2_MODEL[ 0 ]);
vLcd_write16( (uchar8)0, (uchar8)0, (uchar8)16, (uchar8)NO, (uchar8)FONT );
if ( ucFlag_buzzer == YES )
{
strcpy( ucLcd_buf, ucM2_2_MODEL[ 1 ]);
}
else
{
strcpy( ucLcd_buf, ucM2_2_MODEL[ 2 ]);
}
vLcd_write16( (uchar8)2, (uchar8)16, (uchar8)14, (uchar8)YES, (uchar8)FONT );
// 提示欄
strcpy( ucLcd_buf, ucHELP_MODEL[ 3 ]);
vLcd_write16( (uchar8)6, (uchar8)0, (uchar8)16, (uchar8)NO, (uchar8)IMAGE );
}
/*------------------------------------------------------
名稱 : vDisp_menu2_3
功能 : 簡介界面
入口 : ucCursor_M2, ucM2_3_MODEL
出口 : ucLcd_buf, 顯示內存
調用 : strcpy, vLcd_write16
寄存器 : 無
------------------------------------------------------*/
void vDisp_menu2_3( uchar8 ucCursor )
{
strcpy( ucLcd_buf, ucM2_3_MODEL[ 0 ]);
vLcd_write16( (uchar8)0, (uchar8)0, (uchar8)16, (uchar8)NO, (uchar8)IMAGE );
strcpy( ucLcd_buf, ucM2_3_MODEL[ 1 ]);
vLcd_write16( (uchar8)2, (uchar8)0, (uchar8)16, (uchar8)NO, (uchar8)IMAGE );
strcpy( ucLcd_buf, ucM2_3_MODEL[ 2 ]);
vLcd_write16( (uchar8)4, (uchar8)0, (uchar8)16, (uchar8)NO, (uchar8)IMAGE );
strcpy( ucLcd_buf, ucM2_3_MODEL[ 3 ]);
vLcd_write16( (uchar8)6, (uchar8)0, (uchar8)16, (uchar8)NO, (uchar8)IMAGE );
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -