📄 pm_c.c
字号:
/****************************************************************************
* 文 件 名:PM_c.c
* 版 本: V1.0
* 功 能:人机界面主体部分。
* 连 接:
* 说 明:该人机界面用于19264液晶
* 作者:黄振升
* 日期:2005/08/13
*---------------历史版本信息-------------------------------------------------
* 修 改 人: 黄振升
* 版 本: V1.0
* 日 期: 2005.11.21
* 描 述:
****************************************************************************/
#include "config.h"
/***********************************************************************
* 名 称:基本参数制订
* 功 能:
* 入口参数:无
* 出口参数:无
***********************************************************************/
#define MAIN_MENU_POSITION 5,0 //主菜单位置
#define MISSION1_POSITION 47,3 //任务一位置
#define MISSION2_POSITION 47,6 //任务二位置
#define MISSION3_POSITION 122,3 //任务三位置
#define MISSION4_POSITION 122,6 //任务四位置
#define MISSION1_SQUARTER 47,24 //方框一位置
#define MISSION2_SQUARTER 47,47 //方框二位置
#define MISSION3_SQUARTER 122,24 //方框三位置
#define MISSION4_SQUARTER 122,47 //方框四位置
//uint8 Memu_Series; //菜单级数记录
//uint8 Memu_Missions; //菜单任务数记录
/***********************************************************************
* 名 称:PM_Init()
* 功 能:人机界面初始化
* 入口参数:无
* 出口参数:无
***********************************************************************/
void PM_Init(uint8 const *Main_Menu , uint8 const *Main_Mission1 , uint8 const *Main_Mission2 , uint8 const *Main_Mission3 , uint8 const *Main_Mission4)
{ //uint8 i,j;
LCD19264_Init(); //初始化液晶
LCD19264_16X16_L ( MAIN_MENU_POSITION ,Main_Menu,4);//打竖写入主标题
LCD19264_16X16_newline ( MISSION1_POSITION ,Main_Mission1,4);//打竖写入主标题
LCD19264_16X16_newline ( MISSION2_POSITION ,Main_Mission2,4);//打竖写入主标题
LCD19264_16X16_newline ( MISSION3_POSITION ,Main_Mission3,4);//打竖写入主标题
LCD19264_16X16_newline ( MISSION4_POSITION ,Main_Mission4,3);//打竖写入主标题
}
/***********************************************************************
* 名 称:PM_Interface()
* 功 能:人机界面函数
* 入口参数:5个字符形指针,分别是主标题,任务一,任务二,任务三,任务四
* 出口参数: 返回一个人8位无符号数,表示所选任务
***********************************************************************/
uint8 PM_Interface(uint8 k_value ,uint8 reset)//rest为一复位
{
static uint8 new_missions = 3; //所选新旧任务项
static uint8 old_missions = 2;//任务以2为起始:3,4,5,6
//k_value = X44_Keyboard();
//if (k_value == 'B') break;//按输入退出
if (k_value == 'A')
{
new_missions = 'O';//退出返回上一级菜单
//break;
}
switch( k_value)
{
case (2) : { new_missions-- ;break;}//按上键
case (5) : { new_missions++ ;break;}//按下键
case (8) : { new_missions++ ;break;}//按下键
case (4) : { new_missions -= 2 ;break;}//按左键
case (7) : { new_missions -= 2 ;break;}//按左键
case (6) : { new_missions += 2 ;break;}//按右键
case (9) : { new_missions += 2 ;break;}//按右键
default : { ;break;}//无按方向退出
}
if ( new_missions > 6 ) new_missions = old_missions; //超出恢复
if ( new_missions < 3 ) new_missions = old_missions; //超出恢复
if(reset)
{
new_missions = 3;
old_missions = 2;
}
if ( new_missions != old_missions ) //选中新项目
{
switch( old_missions ) //擦除旧项目
{
case (3) : { LCD19264_Turn_over_16X16(MISSION1_POSITION, 4);LCD19264_Cls_Squrt(MISSION1_SQUARTER);break;} //消除筐,反色
case (4) : { LCD19264_Turn_over_16X16(MISSION2_POSITION, 4);LCD19264_Cls_Squrt(MISSION2_SQUARTER) ;break;}//消除筐,反色
case (5) : { LCD19264_Turn_over_16X16(MISSION3_POSITION, 4);LCD19264_Cls_Squrt(MISSION3_SQUARTER) ;break;}//消除筐,反色
case (6) : { LCD19264_Turn_over_16X16(MISSION4_POSITION, 4);LCD19264_Cls_Squrt(MISSION4_SQUARTER) ;break;}//消除筐,反色
default : { ;break;}
}
switch( new_missions ) //圈上新项目
{
case (3) : { LCD19264_Turn_over_16X16(MISSION1_POSITION, 4);LCD19264_Squrt(MISSION1_SQUARTER) ;break;}//画筐,反色
case (4) : { LCD19264_Turn_over_16X16(MISSION2_POSITION, 4);LCD19264_Squrt(MISSION2_SQUARTER) ;break;}//画筐,反色
case (5) : { LCD19264_Turn_over_16X16(MISSION3_POSITION, 4);LCD19264_Squrt(MISSION3_SQUARTER) ;break;}//画筐,反色
case (6) : { LCD19264_Turn_over_16X16(MISSION4_POSITION, 4);LCD19264_Squrt(MISSION4_SQUARTER) ;break;}//画筐,反色
default : { ;break;}
}
old_missions = new_missions; //付新值
}
if (k_value == 'B') return ( new_missions );//按输入责输出选责项
else return(0);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -