⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

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