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

📄 newmenu.c

📁 本人编写的无线电话程序,给予PIC18C801设计,包括了uCOS的移植以及菜单,自己设计的拼音注入法,完整地一级汉字库,希望对大家有所帮助
💻 C
字号:
//rom INT8U	TextPhoneRec[]={0x1A,0x90,0xDD,0x8B,0xB0,0x8B,0x55,0x5F,0x00};	//(0) 通话记录(0x901A,0x8BDD,0x8BB0,0x5F55)
//rom INT8U	TextSmsInf[]={0x87,0x65,0x2C,0x67,0xE1,0x4F,0x6F,0x60,0x00};	//(1) 文本信息
//rom INT8U	TextLocalSet[]={0x2C,0x67,0x3A,0x67,0xBE,0x8B,0x6E,0x7F,0x00},	//(2) 本机设置




//four fix word
rom INT8U fixword4[][8]={
{0x1A,0x90,0xDD,0x8B,0xB0,0x8B,0x55,0x5F,0x00},	//(0) 通话记录(0x901A,0x8BDD,0x8BB0,0x5F55)
{0x87,0x65,0x2C,0x67,0xE1,0x4F,0x6F,0x60,0x00},	//(1) 文本信息
{0x2C,0x67,0x3A,0x67,0xBE,0x8B,0x6E,0x7F,0x00},	//(2) 本机设置
{0x51,0x7F,0xDC,0x7E,0x9F,0x52,0xFD,0x80,0x00},	//(3) 网络功能
{0x2A,0x67,0xA5,0x63,0x65,0x67,0x35,0x75,0x00},	//(4) 未接来电
{0xF2,0x5D,0xA5,0x63,0x65,0x67,0x35,0x75,0x00},	//(5) 已接来电
{0xF2,0x5D,0xE8,0x62,0x35,0x75,0xDD,0x8B,0x00},	//(6) 已拨电话
{0xDD,0x8B,0x55,0x53,0xE5,0x67,0xE2,0x8B,0x00},	//(7) 话单查询
{0xFB,0x8B,0x36,0x65,0xED,0x77,0xE1,0x4F,0x00},	//(8) 读收短信
{0xFB,0x8B,0xD1,0x53,0xED,0x77,0xE1,0x4F,0x00},	//(9) 读发短信
{0x99,0x51,0xED,0x77,0xE1,0x4F,0x00,0x30,0x00},	//(10) (书)写短信(SPACE);(书)=0x66,0x4E,
{0xED,0x77,0xE1,0x4F,0xBE,0x8B,0x6E,0x7F,0x00},	//(11) 短信设置
{0x39,0x8D,0x87,0x73,0xE5,0x67,0xE2,0x8B,0x00},	//(12) 费率查询
{0x2C,0x67,0x3A,0x67,0xF7,0x53,0x01,0x78,0x00},	//(13) (设置)本机号码
{0xBE,0x8B,0x6E,0x7F,0xC3,0x94,0xF0,0x58,0x00},	//(14) 设置铃声
{0xBE,0x8B,0x6E,0x7F,0xCC,0x80,0x49,0x51,0x00},	//(15) 设置背光
{0x70,0x65,0x6E,0x63,0x21,0x6A,0x0F,0x5F,0x00},	//(16) 数据模式
{0x03,0x8C,0xD5,0x8B,0x21,0x6A,0x0F,0x5F,0x00},	//(17) 调试模式
{0xD1,0x76,0xC6,0x89,0x21,0x6A,0x0F,0x5F,0x00} 	//(18) 监视模式
};


//five fix word
rom INT8U fixword5[][10] =  {
{0x2D,0x4E,0xC3,0x5F,0x0D,0x67,0xA1,0x52,0x68,0x56,0x00},	// (0) 中心服务器
{0xED,0x77,0xE1,0x4F,0x09,0x67,0x48,0x65,0x1F,0x67,0x00},	// (1) 短信有效期
{0x20,0x4F,0x01,0x90,0xA5,0x62,0x4A,0x54,0x00,0x30,0x00},	// (2) 传送报告
{0xED,0x77,0xE1,0x4F,0x7B,0x7C,0x8B,0x57,0x00,0x30,0x00} 	// (3) 短信类型<緿
};


rom INT16U TextBackLightClose[6]={0x80cc,0x5149,0x5173,0x0000};rom INT16U TextBackLightOpen[6]={0x80cc,0x5149,0x5f00,0x0000};	//背光开
rom INT16U TextNoRecord[6]={0x65e0,0x8bb0,0x5f55};			//无记录
INT16U rom RingSelectWords[]={0x94c3, 0x58f0,0x0000}; 				//铃声
rom INT8U TextSmsOver[12]={0x2a,0x00,0x2a,0x00,0xd3,0x7e,0x5f,0x67,0x2a,0x00,0x2a,0x00};  //**结束**
rom INT8U TextQPhoneNum[6]={0xF7,0x53,0x01,0x78,0x3F,0x00};			//号码?
rom INT8U TextQName[6]={0xD3,0x59,0x0D,0x54,0x3F,0x00};				//姓名?
rom INT8U TextQSave[6]={0xDD,0x4F,0x58,0x5B,0x3F,0x00};				//保存?






MENU_NODE2	MenuNode[]={
typedef rom struct{
	INT8U		Level
	INT8U		SonNum;			//The number of son-nodes
	INT8U		SonAtt;			//The attribute of son-nodes		//Text or Picture
	INT8U		Father;
	INT8U		Son;
	rom INT8U 	*pCaption;
	SOFTKEY		*pLeftKey;
	SOFTKEY		*pRightKey;
}MENU_NODE2;


//Level	SonNum			SonAtt		Father		Son				pCap				LeftKey			RightKey
{	0,	NUM_ROOT_SON,	ATT_PIC,	MENU_SELF,	MENU_REC,		NULL,				MENU_KEY_FUN,	MENU_KEY_BOOK},
{	1,	NUM_REC_SON,	ATT_CAP,	MENU_ROOT,	MENU_REC_RCVNO,	&PIC_CALL_RECORD,	MENU_KEY_SEL,	MENU_KEY_CAN},
{	1,	NUM_SMS_SON,	ATT_CAP,	MENU_ROOT,	MENU_SMS_RDRCV,	&PIC_SHORT_EMSSAGE,	MENU_KEY_SEL,	MENU_KEY_CAN},
{	1,	NUM_SET_SON,	ATT_CAP,	MENU_ROOT,	MENU_SET_CENTER,&PIC_PHONE_SETUP,	MENU_KEY_SEL,	MENU_KEY_CAN},
{	1,	0,				ATT_BOK,	MENU_ROOT,	MENU_DEFAULT,	&PIC_NETWORK,		MENU_KEY_ACK,	MENU_KEY_CAN},
{	2,	0,				ATT_REC,	MENU_REC,	MENU_DEFAULT,	&fixword4[4],		MENU_KEY_SEL,	MENU_KEY_CAN},
{	2,	0,				ATT_REC,	MENU_REC,	MENU_DEFAULT,	&fixword4[5],		MENU_KEY_SEL,	MENU_KEY_CAN},
{	2,	0,				ATT_REC,	MENU_REC,	MENU_DEFAULT,	&fixword4[6],		MENU_KEY_SEL,	MENU_KEY_CAN},
{	2,	0,				ATT_SMS,	MENU_REC,	MENU_DEFAULT,	&fixword4[8],		MENU_KEY_SEL,	MENU_KEY_CAN},


{0xFB,0x8B,0x36,0x65,0xED,0x77,0xE1,0x4F,0x00},	//(8) 读收短信
{0xFB,0x8B,0xD1,0x53,0xED,0x77,0xE1,0x4F,0x00},	//(9) 读发短信
{0x99,0x51,0xED,0x77,0xE1,0x4F,0x00,0x30,0x00},	//(10) (书)写短信(SPACE);(书)=0x66,0x4E,
{0xED,0x77,0xE1,0x4F,0xBE,0x8B,0x6E,0x7F,0x00},	//(11) 短信设置
{0x39,0x8D,0x87,0x73,0xE5,0x67,0xE2,0x8B,0x00},	//(12) 费率查询
{0x2C,0x67,0x3A,0x67,0xF7,0x53,0x01,0x78,0x00},	//(13) (设置)本机号码
{0xBE,0x8B,0x6E,0x7F,0xC3,0x94,0xF0,0x58,0x00},	//(14) 设置铃声
{0xBE,0x8B,0x6E,0x7F,0xCC,0x80,0x49,0x51,0x00},	//(15) 设置背光




{	1,  4, 0, MENU_KEY_SEL,	MENU_KEY_CAN,	MENU_ROOT,			MENU_REC_RCVNO,			MENU_ATT_FIX,	4,	fixword4[0],	&PIC_CALL_RECORD},//line1-->MENU_REC
{	1,  4, 1, MENU_KEY_SEL,	MENU_KEY_CAN,	MENU_ROOT,			MENU_SMS_RDRCV,			MENU_ATT_FIX,	4,	fixword4[1],	&PIC_SHORT_MESSAGE},//line2-->MENU_SMS
{	1,  4, 2, MENU_KEY_SEL,	MENU_KEY_CAN,	MENU_ROOT,			MENU_SET_RATE,			MENU_ATT_FIX,	4,	fixword4[2],	&PIC_PHONE_SETUP},//line3-->MENU_SET
{	1,  4, 3, MENU_KEY_SEL,	MENU_KEY_CAN,	MENU_ROOT,			MENU_NET_MDM,			MENU_ATT_FIX,	4,	fixword4[3],	&PIC_NETWORK_FUNCTION},//line4-->MENU_NET
{	1,  0, 0, MENU_KEY_MDF,	MENU_KEY_CAN,	MENU_ROOT,			MENU_BOOK_END,			MENU_ATT_VAR,	0,	NULL,			NULL},//line5-->MENU_BOOK_END (a special menu)
	


//level num	sn	left-key	right-key		prev-node			next-node				attribute	  len1 pline1			pbmp
{	0,  1, 0, MENU_KEY_FUN,	MENU_KEY_BOOK,	MENU_ROOT,			MENU_REC,				MENU_ATT_FIX,	0,	NULL,			NULL},//line0-->MENU_ROOT
{	1,  4, 0, MENU_KEY_SEL,	MENU_KEY_CAN,	MENU_ROOT,			MENU_REC_RCVNO,			MENU_ATT_FIX,	4,	fixword4[0],	&PIC_CALL_RECORD},//line1-->MENU_REC
{	1,  4, 1, MENU_KEY_SEL,	MENU_KEY_CAN,	MENU_ROOT,			MENU_SMS_RDRCV,			MENU_ATT_FIX,	4,	fixword4[1],	&PIC_SHORT_MESSAGE},//line2-->MENU_SMS
{	1,  4, 2, MENU_KEY_SEL,	MENU_KEY_CAN,	MENU_ROOT,			MENU_SET_RATE,			MENU_ATT_FIX,	4,	fixword4[2],	&PIC_PHONE_SETUP},//line3-->MENU_SET
{	1,  4, 3, MENU_KEY_SEL,	MENU_KEY_CAN,	MENU_ROOT,			MENU_NET_MDM,			MENU_ATT_FIX,	4,	fixword4[3],	&PIC_NETWORK_FUNCTION},//line4-->MENU_NET
{	1,  0, 0, MENU_KEY_MDF,	MENU_KEY_CAN,	MENU_ROOT,			MENU_BOOK_END,			MENU_ATT_VAR,	0,	NULL,			NULL},//line5-->MENU_BOOK_END (a special menu)

{	2,  4, 0, MENU_KEY_SEL,	MENU_KEY_CAN,	MENU_REC,			MENU_REC_RCVNO_END,		MENU_ATT_FIX,	4,	fixword4[4],	NULL},//line6-->MENU_REC_RCVNO
{	2,  4, 1, MENU_KEY_SEL,	MENU_KEY_CAN,	MENU_REC,			MENU_REC_RCVED_END,		MENU_ATT_FIX,	4,	fixword4[5],	NULL},//line7-->MENU_REC_RCVED
{	2,  4, 2, MENU_KEY_SEL,	MENU_KEY_CAN,	MENU_REC,			MENU_REC_XMT_END,		MENU_ATT_FIX,	4,	fixword4[6],	NULL},//line8-->MENU_XMT
{	2,  4, 3, MENU_KEY_SEL,	MENU_KEY_CAN,	MENU_REC,			MENU_REC_BILL_NUM,		MENU_ATT_FIX,	4,	fixword4[7],	NULL},//line9-->MENU_BILL

{	2,  4, 0, MENU_KEY_SEL,	MENU_KEY_CAN,	MENU_SMS,			MENU_SMS_RDRCV_NUM,		MENU_ATT_FIX,	4,	fixword4[8],	NULL},//line10-->MENU_SMS_RDRCV
{	2,  4, 1, MENU_KEY_SEL,	MENU_KEY_CAN,	MENU_SMS,			MENU_SMS_RDXMT_NUM,		MENU_ATT_FIX,	4,	fixword4[9],	NULL},//line11-->MENU_SMS_RDXMT
{	2,  4, 2, MENU_KEY_SEL,	MENU_KEY_CAN,	MENU_SMS,			MENU_SMS_WR_TXT,		MENU_ATT_FIX,	4,	fixword4[10],	NULL},//line12-->MENU_SMS_WR
{	2,  4, 3, MENU_KEY_SEL,	MENU_KEY_CAN,	MENU_SMS,			MENU_SMS_SET_CENTER,	MENU_ATT_FIX,	4,	fixword4[11],	NULL},//line13-->MENU_SMS_SET

{	2,  4, 0, MENU_KEY_SEL,	MENU_KEY_CAN,	MENU_SET,			MENU_SET_RATE_END,		MENU_ATT_FIX,	4,	fixword4[12],	NULL},//line14-->MENU_SET_RATE
{	2,  4, 1, MENU_KEY_SEL,	MENU_KEY_CAN,	MENU_SET,			MENU_SET_LOCAL_END,		MENU_ATT_FIX,	4,	fixword4[13],	NULL},//line15-->MENU_SET_LOCAL
{	2,  4, 2, MENU_KEY_SEL,	MENU_KEY_CAN,	MENU_SET,			MENU_SET_RING_END,		MENU_ATT_FIX,	4,	fixword4[14],	NULL},//line16-->MENU_SET_RING
{	2,  4, 3, MENU_KEY_SEL,	MENU_KEY_CAN,	MENU_SET,			MENU_SET_LIGHT_END,		MENU_ATT_FIX,	4,	fixword4[15],	NULL},//line17-->MENU_SET_LIGHT

{	2,  3, 0, MENU_KEY_BLK,	MENU_KEY_CAN,	MENU_NET,			MENU_NET_MDM,			MENU_ATT_FIX,	4,	fixword4[16],	NULL},//line18-->MENU_NET_MDN
{	2,  3, 1, MENU_KEY_BLK,	MENU_KEY_CAN,	MENU_NET,			MENU_NET_DBG,			MENU_ATT_FIX,	4,	fixword4[17],	NULL},//line19-->MENU_NET_BDG
{	2,  3, 2, MENU_KEY_BLK,	MENU_KEY_CAN,	MENU_NET,			MENU_NET_MON,			MENU_ATT_FIX,	4,	fixword4[18],	NULL}, //line20-->MENU_NET_MON

{	3,  0, 0, MENU_KEY_SAVE,MENU_KEY_CAN,	MENU_REC_RCVNO,		MENU_REC_RCVNO_END,		MENU_ATT_VAR,	0,	NULL,			NULL},//line21-->MENU_REC_RCVNO_END
{	3,  0, 0, MENU_KEY_SAVE,MENU_KEY_CAN,	MENU_REC_RCVED,		MENU_REC_RCVED_END,		MENU_ATT_VAR,	0,	NULL,			NULL},//line22-->MENU_REC_RCVED_END
{	3,  0, 0, MENU_KEY_SAVE,MENU_KEY_CAN,	MENU_REC_XMT,		MENU_REC_XMT_END,		MENU_ATT_VAR,	0,	NULL,			NULL},//line23-->MENU_REC_XMT_END
{	3,  0, 0, MENU_KEY_READ,MENU_KEY_CAN,	MENU_REC_BILL,	MENU_REC_BILL_NUM_END,		MENU_ATT_VAR,	0,	NULL,			NULL},//line24-->MENU_REC_BILL_NUM

{	3,  0, 0, MENU_KEY_READ,MENU_KEY_CAN,	MENU_SMS_RDRCV,	MENU_SMS_RDRCV_NUM_END,		MENU_ATT_VAR,	0,	NULL,			NULL},//line25-->MENU_SMS_RDRCV_NUM
{	3,  0, 0, MENU_KEY_READ,MENU_KEY_CAN,	MENU_SMS_RDXMT,	MENU_SMS_RDXMT_NUM_END,		MENU_ATT_VAR,	0,	NULL,			NULL},//line26-->MENU_SMS_RDXMT_NUM
{	3,  0, 0, MENU_KEY_OK,	MENU_KEY_CAN,	MENU_SMS_WR,	MENU_SMS_WR_TXT_EDIT,		MENU_ATT_VAR,	0,	NULL,			NULL},//line27-->MENU_SMS_WR_TXT

{	3,  3, 0, MENU_KEY_SEL,	MENU_KEY_CAN,	MENU_SMS_SET,	MENU_SMS_SET_CENTER_END,	MENU_ATT_FIX,	5,	fixword5[0],	NULL},//line28-->MENU_SMS_SET_CENTER
{	3,  3, 1, MENU_KEY_SEL,	MENU_KEY_CAN,	MENU_SMS_SET,	MENU_SMS_SET_LIFE_END,		MENU_ATT_FIX,	5,	fixword5[1],	NULL},//line29-->MENU_SMS_SET_LIFE
{	3,  3, 2, MENU_KEY_SEL,	MENU_KEY_CAN,	MENU_SMS_SET,	MENU_SMS_SET_REPORT_END,	MENU_ATT_FIX,	5,	fixword5[2],	NULL},//line30-->MENU_SMS_SET_REPORT

{	3,  0, 0, MENU_KEY_OK,	MENU_KEY_CAN,	MENU_SET_RATE,		MENU_SET_RATE_END,		MENU_ATT_VAR,	0,	NULL,			NULL},//line31-->MENU_SET_RATE_END
{	3,  0, 0, MENU_KEY_OK,	MENU_KEY_CAN,	MENU_SET_LOCAL,		MENU_SET_LOCAL_END,		MENU_ATT_VAR,	0,	NULL,			NULL},//line32-->MENU_SET_LOCAL_END
{	3,  0, 0, MENU_KEY_OK,	MENU_KEY_CAN,	MENU_SET_RING,		MENU_SET_RING_END,		MENU_ATT_VAR,	0,	NULL,			NULL},//line33-->MENU_SET_RING_END
{	3,  0, 0, MENU_KEY_OK,	MENU_KEY_CAN,	MENU_SET_LIGHT,		MENU_SET_LIGHT_END,		MENU_ATT_VAR,	0,	NULL,			NULL},//line34-->MENU_SET_LIGHT_END

{	4,  0, 0, MENU_KEY_BLK,	MENU_KEY_CAN,	MENU_REC_BILL_NUM,	MENU_REC_BILL_NUM_END,	MENU_ATT_VAR,	0,	NULL,			NULL},//line35-->MENU_REC_BILL_NUM_END
{	4,  0, 0, MENU_KEY_DEL,	MENU_KEY_CAN,	MENU_SMS_RDRCV_NUM,	MENU_SMS_RDRCV_NUM_END,	MENU_ATT_VAR,	0,	NULL,			NULL},//line36-->MENU_SMS_RDRCV_NUM_END
{	4,  0, 0, MENU_KEY_DEL,	MENU_KEY_CAN,	MENU_SMS_RDXMT_NUM,	MENU_SMS_RDXMT_NUM_END,	MENU_ATT_VAR,	0,	NULL,			NULL},//line37-->MENU_SMS_RDXMT_NUM_END
{	4,  0, 0, MENU_KEY_OK,	MENU_KEY_CAN,	MENU_SMS_WR_TXT,	MENU_SMS_WR_TXT_EDIT,	MENU_ATT_VAR,	0,	NULL,			NULL},//line38-->MENU_SMS_WR_TXT_EDIT
{	4,  0, 0, MENU_KEY_SAVE,MENU_KEY_SEND,	MENU_SMS_WR_TXT,	MENU_SMS_WR_TXT_SEND,	MENU_ATT_VAR,	0,	NULL,			NULL},//line39-->MENU_SMS_WR_TXT_SEND

{	4,  0, 0, MENU_KEY_OK,	MENU_KEY_CAN,	MENU_SMS_SET_CENTER,MENU_SMS_SET_CENTER_END,MENU_ATT_VAR,	0,	NULL,			NULL},//line40-->MENU_SMS_SET_CENTER_END
{	4,  0, 0, MENU_KEY_OK,	MENU_KEY_CAN,	MENU_SMS_SET_LIFE,	MENU_SMS_SET_LIFE_END,	MENU_ATT_VAR,	0,	NULL,			NULL},//line41-->MENU_SMS_SET_LIFE_END
{	4,  0, 0, MENU_KEY_OK,	MENU_KEY_CAN,	MENU_SMS_SET_REPORT,MENU_SMS_SET_REPORT_END,MENU_ATT_VAR,	0,	NULL,			NULL} //line42-->MENU_SMS_SET_REPORT_END
};




INT8U MenuSwitch(INT8U nodesn)
{
	switch(nodesn){
		case MENU_SELF:
			flush(CurMenu);
			break;
		
		case MENU_SON:
			CurMenu=MenuNode[CurMenu].son;
			flush(CurMenu);
			break;
			
		case MENU_FATHER:
			CurMenu=MenuNode[CurMenu].father;
			flush(CurMenu);
			break;
			
		case MENU_NEXT:
			
			
		if(nodesn==MENU_SELF){
		flush(CurMenu);
	}
	
		

		lay[i]=MenuNode[pos].node_sn+0x31;
		lay[i]=MenuNode[pos].node_sn+0x31;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -