📄 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 + -