亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? phonebook_interface.c

?? 利用61板、SPR模組、SPLC501液晶模組和4×4鍵盤建立手機通訊錄模型
?? C
字號:
//======================================================
// 文件名稱:	PhoneBook_Interface.c
// 功能描述:	通訊錄操作界面,包括添加、刪除、顯示、查詢通訊錄條目的程序
// 維護記錄:	2006-09-20	v1.0
//======================================================

#include "..\include\splc501user.h"
#include "..\include\LCD_Chinese.h"
#include "..\include\CommonFunc.h"
#include "..\include\PY.h"
#include "..\include\PhoneBook.h"
#include "..\include\VoiceDial.h"
#include "..\include\Flash.h"

//========================================================================
//	語法格式:	void PB_Add(void)
//	實現功能:	新增一個通訊錄條目
//	參數:		無
//	返回值:	無
//========================================================================
void PB_Add(void)
{
	PHONEBOOK PB_Item={0xffff,"","","","","",0,0,0,0}, *p_PB_Item;

	LCD501_ClrScreen(0);

	p_PB_Item = &PB_Item;
	
	LCD501_ClrScreen(0);
	if(p_PB_Idx->ItemNum==PB_MAX_ITEM)					// 如果條目已經達到最大數量
	{
		LCD501_SetPos(16, 48);
		LCD501_Print("存儲區已滿!");
		DelayMS(600);
		return;
	}
	/// 提示輸入條目信息
	p_PB_Item->Flag_Del = 0;							
	LCD501_SetPos(0,0);
	LCD501_Print("姓名: ");
	PY_GetString(p_PB_Item->Name, sizeof(p_PB_Item->Name)-1);
	if(p_PB_Item->Name[0] == '\0')
		return;

	LCD501_ClrScreen(0);
	LCD501_SetPos(0,0);
	LCD501_Print("電話1: ");
	PY_GetString(p_PB_Item->Tel_1, sizeof(p_PB_Item->Tel_1)-1);
	LCD501_ClrScreen(0);
	LCD501_SetPos(0,0);
	LCD501_Print("電話2: ");
	PY_GetString(p_PB_Item->Tel_2, sizeof(p_PB_Item->Tel_2)-1);
	LCD501_ClrScreen(0);
	LCD501_SetPos(0,0);
	LCD501_Print("Email: ");
	PY_GetString(p_PB_Item->Email, sizeof(p_PB_Item->Email)-1);
	LCD501_ClrScreen(0);
	LCD501_SetPos(0,0);
	LCD501_Print("備注: ");
	PY_GetString(p_PB_Item->Other, sizeof(p_PB_Item->Other)-1);
	
	/// 如果仍有語音撥號空間則提示是否創建語音撥號
	if(p_PB_Idx->Voice_Num<PB_MAX_VOICE)
		p_PB_Item->VoiceIdx = Voice_Train(p_PB_Item);
	else
		p_PB_Item->VoiceIdx = 0xffff;

	p_PB_Item = PB_Item_Insert(p_PB_Item);

	LCD501_ClrScreen(0);
	LCD501_SetPos(24, 48);
	LCD501_Print("添加成功!");
	DelayMS(600);
}

//========================================================================
//	語法格式:	void PB_Del(PHONEBOOK *p_PB_Item)
//	實現功能:	刪除當前通訊錄條目
//	參數:		p_PB_Item	待刪除條目的指針
//	返回值:	無
//========================================================================
void PB_Del(PHONEBOOK *p_PB_Item)
{
	unsigned int KeyCode;

	LCD501_ClrScreen(0);

	LCD501_SetPos(0,0);
	LCD501_Print("◆ ");
	LCD501_PrintPacked(p_PB_Item->Name);
	LCD501_SetPos(16, 32);
	LCD501_Print("確定刪除?");
	LCD501_SetPos(16, 48);
	LCD501_Print("1-是  2-否");
	while(1)
	{
		KeyCode = Key_GetCh();
		switch(KeyCode)
		{
			case '1':
				PB_Item_Del(p_PB_Item);
				LCD501_ClrScreen(0);
				LCD501_SetPos(16, 32);
				LCD501_Print("條目已刪除");
				DelayMS(600);
				return;
			case '2': case 'n':
				return;
			default:
				break;
		}
	}
}

//========================================================================
//	語法格式:	void PB_Detail(PHONEBOOK *p_PB_Item)
//	實現功能:	查看當前條目的詳細內容
//	參數:		p_PB_Item	條目指針
//	返回值:	無
//========================================================================
void PB_Detail(PHONEBOOK *p_PB_Item)
{
	unsigned int KeyCode;
	unsigned int Flag_Page;
	
	LCD501_ClrScreen(0);

	Flag_Page = 1;
	while(1)
	{
		if(Flag_Page==1)					// 第一頁
		{
			LCD501_ClrScreen(0);
			LCD501_SetPos(0,0);
			LCD501_Print("◆ ");
			LCD501_PrintPacked(p_PB_Item->Name);
			LCD501_SetPos(0,16);
			LCD501_Print("T1:");
			LCD501_PrintPacked(p_PB_Item->Tel_1);
			LCD501_SetPos(0,32);
			LCD501_Print("T2:");
			LCD501_PrintPacked(p_PB_Item->Tel_2);
			LCD501_SetPos(0,48);
			LCD501_Print("@:");
			LCD501_PrintPacked(p_PB_Item->Email);
		}
		else								// 第二頁
		{
			LCD501_ClrScreen(0);
			LCD501_SetPos(0,0);
			LCD501_Print("◆ ");
			LCD501_PrintPacked(p_PB_Item->Name);
			LCD501_SetPos(0,16);
			LCD501_Print("@:");
			if(p_PB_Item->Email[13]!='\0')
				LCD501_PrintPacked(p_PB_Item->Email+13);
			LCD501_SetPos(0,32);
			LCD501_Print("備注:");
			LCD501_PrintPacked(p_PB_Item->Other);
		}
		while((KeyCode=Key_GetCh())=='\0');
		switch(KeyCode)
		{
			case 'u': case 'd': case 'y': 
				Flag_Page = (Flag_Page==1)?2:1;
				break;
			case 'n': case '*': case '#':
				return;
			default:
				break;	
		}
	}
}


//========================================================================
//	語法格式:	void PB_ItemMenu(PHONEBOOK *p_PB_Item)
//	實現功能:	顯示當前條目的可操作選項
//	參數:		p_PB_Item	條目指針
//	返回值:	無
//========================================================================
const unsigned char *PB_MenuString[]={
		"查看信息","編輯條目","刪除條目","設定語音撥號","取消語音撥號"
	};
void PB_ItemMenu(PHONEBOOK *p_PB_Item)
{
	unsigned int CurItem, ItemCount;
	const unsigned char *PB_MenuItem[4];
	
	PB_MenuItem[0] = PB_MenuString[0];
	PB_MenuItem[1] = PB_MenuString[1];
	PB_MenuItem[2] = PB_MenuString[2];
	
	ItemCount = 4;
	if(p_PB_Item->VoiceIdx!=0xffff)
		PB_MenuItem[3] = PB_MenuString[4];
	else if(p_PB_Idx->Voice_Num < PB_MAX_VOICE)
		PB_MenuItem[3] = PB_MenuString[3];
	else
		ItemCount = 3;
		
	while(1)
	{
		CurItem = ShowMenu(PB_MenuItem, ItemCount);
		switch(CurItem)
		{
		case 0:						// 查看
			PB_Detail(p_PB_Item);
			return;
		case 1:						// 編輯(保留功能)
			//PB_Edit(p_PB_Item);
			break;
		case 2:						// 刪除
			PB_Del(p_PB_Item);
			return;
		case 3:						// 更改語音撥號狀態
			if(ItemCount==4)
				PB_SwitchVoice(p_PB_Item);
			return;
		case 4:
			return;
		default:
			break;
		}		
	}
}

//========================================================================
//	語法格式:	void PB_List(void)
//	實現功能:	顯示通訊錄條目列表
//	參數:		無
//	返回值:	無
//========================================================================
void PB_List(void)
{
	PHONEBOOK *p_PB_Temp, *p_PB_Page, *p_PB_Cur;
	unsigned int i, TempFlag,KeyCode;
	
	LCD501_ClrScreen(0);

	p_PB_Cur = p_PB_Idx->FirstItem;
	
	while(1)
	{
		/// 如果沒有記錄則返回
		if(p_PB_Idx->ItemNum==0)
		{
			LCD501_SetPos(8,48);
			LCD501_Print("沒有任何記錄!");
			DelayMS(600);
			return;
		}
		/// 跳過當前頁之前的條目	
		p_PB_Page = p_PB_Idx->FirstItem;
		while(1)
		{
			p_PB_Temp = p_PB_Page;
			for(i=0; i<4; i++)
			{
				if(p_PB_Temp == p_PB_Cur)break;
				p_PB_Temp = p_PB_Temp->NextItem;
			}
			if(i<4)break;
			p_PB_Page = p_PB_Page->NextItem;
		}
		/// 顯示一頁內容
		LCD501_ClrScreen(0);
		p_PB_Temp = p_PB_Page;
		for(i=0; i<4; i++)
		{
			LCD501_SetPos(0, i<<4);
			if(p_PB_Temp->Flag_Del==0xffff)
				break;
			else if(p_PB_Temp == p_PB_Cur)
				LCD501_Print("◆ ");
			else
				LCD501_Print("   ");
			LCD501_PrintPacked(p_PB_Temp->Name);
			if(p_PB_Temp->VoiceIdx!=0xffff)
			{
				LCD501_SetPos(120, i<<4);
				LCD501_Print("*");
			}
			p_PB_Temp = p_PB_Temp->NextItem;
		}
		/// 等待按鍵操作
		TempFlag = 1;
		while(TempFlag)
		{
			KeyCode = Key_GetCh();
			switch(KeyCode)
			{
				case 'u':
					p_PB_Cur = p_PB_Cur->PreItem;
					if(p_PB_Cur->Flag_Del==0xffff)
						p_PB_Cur = p_PB_Idx->LastItem;
					TempFlag = 0;
					break;
				case 'd':
					p_PB_Cur = p_PB_Cur->NextItem;
					if(p_PB_Cur->Flag_Del==0xffff)
						p_PB_Cur = p_PB_Idx->FirstItem;
					TempFlag = 0;
					break;
				case 'y': case '#':
					PB_ItemMenu(p_PB_Cur);					
					if(p_PB_Cur->Flag_Del==0xffff)		//如果條目被刪除
					{
						p_PB_Cur = p_PB_Cur->NextItem;
						if(p_PB_Cur->Flag_Del==0xffff)
							p_PB_Cur = p_PB_Idx->FirstItem;
					}
					TempFlag = 0;
					break;
				case 'n': case '*':
					return;					
				default:
					break;
			}
		}
	}
}
	
//========================================================================
//	語法格式:	void PB_Search(void)
//	實現功能:	搜索通訊錄條目
//	參數:		無
//	返回值:	無
//========================================================================
void PB_Search(void)
{
	PHONEBOOK *p_PB_Temp, *p_PB_Cur, *p_PB_Page;
	unsigned char Name[sizeof(p_PB_Temp->Name)], i, Flag_Temp, KeyCode;
	
	LCD501_ClrScreen(0);

	/// 提示輸入搜索關鍵字
	LCD501_SetPos(0, 0);
	LCD501_Print("搜索姓名: ");
	PY_GetString(Name, sizeof(p_PB_Temp->Name)-1);
		
	p_PB_Cur = PB_Item_Search(Name, p_PB_Idx->FirstItem, 1);

	while(1)
	{
		// 跳過指針所在頁之前的部分
		if(p_PB_Cur==NULL)				// 如果沒有找到條目則返回
		{
			LCD501_ClrScreen(0);
			LCD501_SetPos(0,48);
			LCD501_Print("沒找到任何記錄!");
			DelayMS(600);
			return;
		}
		p_PB_Page = PB_Item_Search(Name, p_PB_Idx->FirstItem, 1);
		while(1)											
		{
			p_PB_Temp = p_PB_Page;		
			for(i=0; i<4; i++)
			{
				if(p_PB_Temp == p_PB_Cur)break;
				p_PB_Temp = PB_Item_Search(Name, p_PB_Temp->NextItem, 1);
			}
			if(i<4)break;
			p_PB_Page = p_PB_Temp;
		}
		LCD501_ClrScreen(0);
		///	顯示一頁內容
		p_PB_Temp = p_PB_Page;
		for(i=0; i<4; i++)
		{
			LCD501_SetPos(0, i<<4);
			if(p_PB_Temp==NULL)
				break;
			else if(p_PB_Temp == p_PB_Cur)
				LCD501_Print("◆ ");
			else
				LCD501_Print("   ");
			LCD501_PrintPacked(p_PB_Temp->Name);
			if(p_PB_Temp->VoiceIdx!=0xffff)
			{
				LCD501_SetPos(120, i<<4);
				LCD501_Print("*");
			}
			p_PB_Temp = PB_Item_Search(Name, p_PB_Temp->NextItem, 1);
		}
		/// 等待按鍵輸入
		Flag_Temp = 1;
		while(Flag_Temp)
		{
			KeyCode = Key_GetCh();
			switch(KeyCode)
			{
				case 'u':								// 上一條
					p_PB_Cur = PB_Item_Search(Name, p_PB_Cur->PreItem, 0);
					if(p_PB_Cur==NULL)
						p_PB_Cur = PB_Item_Search(Name, p_PB_Idx->LastItem, 0);
					Flag_Temp = 0;
					break;
				case 'd':								// 下一條
					p_PB_Cur = PB_Item_Search(Name, p_PB_Cur->NextItem, 1);
					if(p_PB_Cur==NULL)
						p_PB_Cur = PB_Item_Search(Name, p_PB_Idx->FirstItem, 1);
					Flag_Temp = 0;
					break;
				case 'y': case '#':						// 確定
					PB_ItemMenu(p_PB_Cur);
					if(p_PB_Cur->Flag_Del==0xffff)		//如果該條目被刪除
						p_PB_Cur = PB_Item_Search(Name, p_PB_Idx->FirstItem, 1);
					Flag_Temp = 0;
					break;
				case 'n': case '*':						// 取消
					return;					
				default:
					break;
			}
		}
	}	
}

//========================================================================
//	語法格式:	unsigned int PB_SwitchVoice(PHONEBOOK *p_PB_Item)
//	實現功能:	切換某條目的語音撥號屬性,設定/取消語音撥號
//	參數:		待處理的條目指針
//	返回值:	切換后該條目對應的語音序號,若被取消則返回0xffff
//========================================================================
unsigned int PB_SwitchVoice(PHONEBOOK *p_PB_Item)
{
	PHONEBOOK_IDX PB_Idx;
	unsigned int VoiceIdx, KeyCode, Flag_Temp, i;
	
	LCD501_ClrScreen(0);

	if(p_PB_Item->VoiceIdx==0xffff)
	{
		VoiceIdx = Voice_Train(p_PB_Item);
	}
	else
	{			
		LCD501_SetPos(16, 32);
		LCD501_Print("取消語音撥號?    1-是  2-否");
		Flag_Temp = 1;
		while(Flag_Temp != 0)
		{
			KeyCode = Key_GetCh();
			switch(KeyCode)
			{
			case '1':
				VoiceIdx = 0xffff;
				Flag_Temp = 0;
				break;
			case '2': case 'n': case '*':
				VoiceIdx = p_PB_Item->VoiceIdx;
				Flag_Temp = 0;
				break;
			default:
				break;
			}
		}
	}
	if(VoiceIdx==p_PB_Item->VoiceIdx)			// 沒有更改
		return VoiceIdx;
	
	/// 更新PB_IDX
	PB_Idx.ItemNum = p_PB_Idx->ItemNum;
	PB_Idx.FirstItem = p_PB_Idx->FirstItem;
	PB_Idx.LastItem = p_PB_Idx->LastItem;
	for(i=0; i<PB_MAX_VOICE; i++)
	{
		PB_Idx.Voice_PBAddr[i] = p_PB_Idx->Voice_PBAddr[i];
	}
	
	if(VoiceIdx==0xffff)						// 語音撥號被取消
	{
		PB_Idx.Voice_Num = p_PB_Idx->Voice_Num - 1;
		PB_Idx.Voice_PBAddr[p_PB_Item->VoiceIdx] = NULL;
	}
	else										// 語音撥號被設定
	{
		PB_Idx.Voice_Num = p_PB_Idx->Voice_Num + 1;
		PB_Idx.Voice_PBAddr[VoiceIdx] = p_PB_Item;
	}
	Flash_Modify((unsigned int)p_PB_Idx, (unsigned int*)&PB_Idx, sizeof(PHONEBOOK_IDX));
	Flash_Modify((unsigned int)&p_PB_Item->VoiceIdx, &VoiceIdx, sizeof(unsigned int));
	return VoiceIdx;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精品国产综合久久婷婷香蕉| 中文字幕一区二区三区色视频 | 蜜桃视频在线观看一区二区| 国产大陆a不卡| 欧美日本视频在线| 国产欧美日韩三区| 日韩福利电影在线| 在线精品亚洲一区二区不卡| 国产亚洲制服色| 久久99精品一区二区三区三区| 色综合久久综合| 国产精品久久久久久久久晋中| 免费不卡在线观看| 欧美视频在线一区二区三区| 久久久久国产精品麻豆ai换脸| 日韩主播视频在线| 欧美色男人天堂| 亚洲视频小说图片| 91在线视频观看| 国产精品夫妻自拍| 国产91丝袜在线播放九色| 久久一日本道色综合| 另类小说欧美激情| 日韩美女一区二区三区四区| 日韩高清在线一区| 欧美久久久一区| 午夜av区久久| 欧美三级电影一区| 亚洲亚洲人成综合网络| 日本久久电影网| 一区二区三区欧美日韩| 在线亚洲一区二区| 亚洲制服丝袜av| 欧美午夜理伦三级在线观看| 亚洲综合无码一区二区| 在线看国产一区二区| 亚洲成人资源在线| 欧美va亚洲va| 国产经典欧美精品| 国产精品福利av| 欧美亚洲国产bt| 日韩中文欧美在线| 欧美成人欧美edvon| 国产精品综合视频| 国产精品理论片在线观看| 91蜜桃网址入口| 午夜精品在线看| 久久影院视频免费| 91免费视频网址| 午夜精品免费在线| 精品国产区一区| 成人激情免费视频| 1024国产精品| 91精品国产色综合久久不卡蜜臀 | 国产一区二区看久久| 国产亚洲精品bt天堂精选| 99在线视频精品| 天天色图综合网| 欧美激情艳妇裸体舞| 欧洲人成人精品| 国产揄拍国内精品对白| 亚洲欧洲成人自拍| 欧美一区二区久久| 国产一区美女在线| 亚洲一区二区三区不卡国产欧美 | 五月激情综合婷婷| 久久久亚洲精华液精华液精华液| av一区二区三区| 午夜久久久影院| 久久精品在线免费观看| 色八戒一区二区三区| 精品在线播放午夜| 亚洲美女偷拍久久| 精品少妇一区二区三区| 色综合久久久久综合体| 九色|91porny| 一区二区三区精品视频在线| 国产午夜精品一区二区三区视频 | 有码一区二区三区| 久久综合中文字幕| 欧美午夜在线观看| 国产不卡视频在线观看| 亚洲一区二区黄色| 国产欧美精品一区| 欧美久久久久久久久中文字幕| 国产东北露脸精品视频| 日本91福利区| 亚洲精品免费一二三区| 精品福利视频一区二区三区| 欧美亚洲自拍偷拍| 成人精品国产一区二区4080| 美女视频网站久久| 五月天亚洲婷婷| 国产精品嫩草99a| 日韩精品一区二区三区四区| 欧美日本韩国一区| 91偷拍与自偷拍精品| 国产成人自拍高清视频在线免费播放| 亚洲成人激情社区| 亚洲综合色区另类av| 国产精品久久久久久妇女6080| 精品成人私密视频| 91精品国产综合久久久蜜臀粉嫩| 91免费版在线| 91一区一区三区| 91网站黄www| aaa国产一区| 91首页免费视频| 色综合久久久久久久久久久| k8久久久一区二区三区| 成人午夜电影网站| 国产精品18久久久久久久久 | 蜜桃在线一区二区三区| 免费在线观看精品| 欧美aⅴ一区二区三区视频| 日韩经典一区二区| 丝袜亚洲精品中文字幕一区| 亚洲h在线观看| 日韩国产精品久久久| 丝袜美腿成人在线| 免费观看在线综合色| 美女视频一区二区| 国产伦精品一区二区三区免费迷| 乱一区二区av| 国内不卡的二区三区中文字幕| 久久9热精品视频| 国产一区福利在线| 99久久777色| 在线观看视频一区二区| 欧美喷潮久久久xxxxx| 777亚洲妇女| 精品国产免费一区二区三区四区| 精品国产污网站| 国产精品久久影院| 一区二区不卡在线视频 午夜欧美不卡在 | 亚洲人成网站在线| 亚洲一区影音先锋| 青青草伊人久久| 国产传媒欧美日韩成人| 色综合视频在线观看| 欧美精品粉嫩高潮一区二区| 日韩欧美电影一区| 国产欧美日本一区视频| 亚洲私人黄色宅男| 日韩av一级片| 成人一区二区三区在线观看| 色综合久久精品| 日韩欧美国产三级电影视频| 欧美韩日一区二区三区四区| 亚洲在线免费播放| 国内精品写真在线观看| 色综合色综合色综合色综合色综合| 欧美日韩一区二区欧美激情| 精品va天堂亚洲国产| 亚洲免费av高清| 麻豆国产精品一区二区三区| 不卡在线观看av| 欧美另类变人与禽xxxxx| 欧美国产日韩亚洲一区| 午夜精品一区二区三区电影天堂| 国产综合成人久久大片91| 欧美综合一区二区三区| 久久亚洲综合色一区二区三区| 亚洲日本电影在线| 国产一区二区在线免费观看| 色一区在线观看| 久久久久久日产精品| 五月天激情小说综合| 99精品欧美一区二区三区小说 | 精品中文字幕一区二区小辣椒| 成人午夜大片免费观看| 欧美大片顶级少妇| 一区二区三区成人在线视频| 国产精品一区免费视频| 欧美电影在线免费观看| 亚洲视频一区在线观看| 国产激情一区二区三区| 69堂国产成人免费视频| 亚洲综合色成人| 国产98色在线|日韩| 精品福利一二区| 蜜臀av性久久久久蜜臀aⅴ| 欧美午夜在线观看| 亚洲日本在线视频观看| 成人精品电影在线观看| 久久久一区二区| 激情综合色综合久久综合| 欧美日韩高清一区| 亚洲午夜精品17c| 色偷偷久久人人79超碰人人澡| 国产精品五月天| 粉嫩绯色av一区二区在线观看| 亚洲精品在线免费播放| 国产美女av一区二区三区| 日韩欧美黄色影院| 久久99国产精品麻豆| 日韩精品一区二区三区中文不卡| 日韩av中文字幕一区二区| 91精品国产免费| 久久99蜜桃精品|