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

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

?? main.c

?? 51單片機液晶顯示菜單結構的編程
?? C
字號:
//========================================================================
//  工程名稱:Menu_MzLH01_MCS51.spj
//  作    者: xinqiang Zhang(小丑)  (email: xinqiang@Mzdesign.com.cn)    
//  聯系方式:QQ 644272644
//	版權所有:北京銘正同創科技有限公司   www.mzdesign.com.cn
//  適應芯片: S51/S52/MCS51兼容MCU
//  實現功能: 以MzL02-12864 帶LCD顯示模塊為顯示平臺的MzMenu_GUI軟件包
//				的演示程序
//
//  系統要求: PC with CPU 233MHz,128MB RAM,
//                      Keil uVision 2.0及以上版本
//
//  涉及的庫:(a) 
//
//  組成文件:
//     	main.c		----主程序文件
//		Driver/LCD_Driver/   ----LCD驅動程序
//     	Driver/Key_Service/	----鍵盤掃描程序
//		MzMenu_GUI/			----MzMenu_GUI的軟件包源碼
//
//	硬件連接:
//		LCD DB0~DB7  ---P0.0~P0.7
//		LCD EP		 ---P2.4
//		LCD RW		 ---P2.3
//		LCD A0		 ---P2.2
//		LCD Reset	 ---P2.1
//		LCD CS		 ---P2.0
//		LCM 3.3V供電~~~(建議)
//
//		Key1	接P2.0
//		Key2	接P2.1
//		Key3	接P2.2
//		鍵盤的公共端接地,接鍵盤的端口接上拉電阻
//		    
//
//  當前版本:  V1.0
//  日期:  2007-07-26
//  
//  參考文件: 
//  維護記錄:
//-------------------------------------------------------------------
//  Version   2007-07-26-V10   Modified By    Xinqiang Zhang(小丑)
//
//========================================================================
#include "./Driver/LCD_Driver/LCD_Dis.h"
#include "./Driver/Key_Service/Key.h"
#include "./MzMenu_GUI/Menu_GUI.h"

void Show_DotTest(void);
void Show_LineTest(void);
void Show_RectanglTest(void);
void Show_HelpTest(void);
void CharTest_Menu(void);

void Show_CharTest(void);
void Show_StringTest(void);
void Show_ChTest(void);
//========================================================================
// 文件名:  main.c
// 作  者: xinqiang Zhang(小丑)  (email: xinqiang@Mzdesign.com.cn)
// 日  期: 2007/07/26
// 描  述: 以MzLH01-12864 帶漢字庫LCD顯示模塊為顯示平臺的MzMenu_GUI軟件包
//				的演示程序
//
// 參  考: 無
// 版  本:
//      2007/07/26      First version    Mz Design
//========================================================================
void main(void)
{
	//add your code here
	unsigned char uiKey=0;
	//uiKey用于存放掃描的鍵值狀態
	unsigned char Item_Num,Update_Flag,Enter_Flag=0;
	//Item_Num:當前菜單界面當中共有幾項菜單項,刷新時使用
	//Update_Flag:菜單界面刷新標識
	//Enter_Flag:確定鍵按下標識~~
	unsigned char PageItem_Num;
	//PageItem_Num:每頁(全顯示屏內)可以顯示多少個菜單項
	unsigned char First_Index=0,Active_Index=0,Temp_Index=0;
	//First_Index:當前處在顯示屏當中的最前面的菜單項序號
	//Active_Index:當前指向的菜單項,即當前活動的菜單項
	//Temp_Index:中間變量
	
	Key_Initial();											//鍵盤掃描初始化(端口)
	
	LCD_Init();												//初始化LCD
	Item_Num = GetMLNum(Menu_List01);			//獲取要顯示的菜單的菜單項個數
	PageItem_Num = GetMLiNum_Page((unsigned char **)Menu_List01);	//獲取要顯示的菜單的頁數
	Initial_Menu((unsigned char**)Menu_List01);
	while(1)
	{
		
		uiKey = Key_Get();					//獲取鍵值
		if(uiKey)							//如有鍵按下則響應
		{
			switch(uiKey)					//判斷鍵值進行分支控制界面
			{
				case 3:				//確定鍵按下
					Enter_Flag=1;			//enter flag set
					break;
				case 2:				//down	向下鍵按下
					if(Active_Index<Item_Num)	
					{
						Active_Index++;
						if(Temp_Index<PageItem_Num-1) Temp_Index++;
						else if(First_Index<Item_Num) First_Index++;
						Update_Flag = 1;
					}
					break;
				case 1:				//up  向上鍵按下
					if(Active_Index>0)
					{
						Active_Index--;
						if(Temp_Index>0) Temp_Index--;
						else if(First_Index>0) First_Index--;
						Update_Flag = 1;
					}
					break;
				default:break;
			}
		}
		if(Update_Flag)						//Update_Flag為1時刷新菜單
		{
			UpDate_Menu(First_Index,Active_Index,(unsigned char**)Menu_List01);
			Update_Flag=0;
		}
		if(Enter_Flag)						//有確定鍵按下時,則進入相應的功能函數
		{
			Enter_Flag = 0;
			switch(Active_Index)
			{
				case 0:						//這里僅定義了可以響應第一項菜單
					Show_DotTest();
					Redraw_Menu(First_Index,Active_Index,(unsigned char**)Menu_List01);
					Update_Flag = 1;
					break; 
				case 1:
					Show_LineTest(); 
					Redraw_Menu(First_Index,Active_Index,(unsigned char**)Menu_List01);
					Update_Flag = 1;
					break;				//如感興趣可以自己加進去玩玩
				case 2:
					Show_RectanglTest(); 
					Redraw_Menu(First_Index,Active_Index,(unsigned char**)Menu_List01);
					Update_Flag = 1;
					break;
				case 3:
					CharTest_Menu(); 
					Redraw_Menu(First_Index,Active_Index,(unsigned char**)Menu_List01);
					Update_Flag = 1;
					break;	
				case 4:
					Show_HelpTest(); 
					Redraw_Menu(First_Index,Active_Index,(unsigned char**)Menu_List01);
					Update_Flag = 1;
					break;
				case 5: break;	
				default:break;
			} 
		}
		KeyScan_Service();					//鍵盤掃描的服務程序,最好在1KHz的定時/時基中斷調用
	}
}
//繪點菜單項響應函數
void Show_DotTest(void)
{
	unsigned int Key=0;
	unsigned Exit_flag=1;
	ClrScreen(0);			 		//清屏
	SetPaintMode(0,1);				//設置繪圖模式及前景色
	PutPixel(0,0);					//繪制點
	PutPixel(2,0);
	PutPixel(4,0);
	PutPixel(6,0);
	PutPixel(8,0);
	PutPixel(9,0);
	PutPixel(10,0);
	PutPixel(0,2);
	PutPixel(0,4);
	PutPixel(0,6);
	PutPixel(0,8);
	PutPixel(0,10);

	while(Exit_flag)
	{
		Key = Key_Get();
		if(Key!=0)
			Exit_flag = 0; 			//任意鍵按下則返回
		KeyScan_Service();
	}
}
//繪直線菜單項響應函數
void Show_LineTest(void)
{
	unsigned int Key=0;
	unsigned Exit_flag=1;
	ClrScreen(0);					//清屏
	SetPaintMode(0,1);				//設置繪圖模式及前景色
	Line(127,63,0,63);				//繪制一條直線
	Line(10,12,10,42);
	while(Exit_flag)
	{
		Key = Key_Get();
		if(Key!=0)
			Exit_flag = 0; 			//任意鍵按下時,退出返回
		KeyScan_Service();
	}
}
//繪矩形菜單項響應函數
void Show_RectanglTest(void)
{
	unsigned int Key=0;
	unsigned Exit_flag=1;
	ClrScreen(0);					//清屏
	SetPaintMode(0,1);				//設置繪圖模式及前景色
	Rectangle(12,12,42,42,1);		//矩形填充
	Rectangle(52,12,82,42,0);		//繪制矩形框
	while(Exit_flag)
	{
		Key = Key_Get();
		if(Key!=0)
			Exit_flag = 0; 			//任意鍵按下時,退出返回
		KeyScan_Service();
	}
}
//幫助菜單項響應函數
void Show_HelpTest(void)
{
	unsigned int Key=0;
	unsigned Exit_flag=1;
	ClrScreen(0);					//清屏
	SetPaintMode(0,1);				//設置繪圖模式及前景色
	FontSet(1,1);				 	//設置字體類形,字符色為1
	PutString(5,10,"Wellcome to MzDesign!!"); 	//顯示字符串
	PutString(5,50,"www.mzdesign.com.cn");
	Line(4,60,120,60);				//繪制一條直線
	while(Exit_flag)
	{
		Key = Key_Get();
		if(Key!=0)
			Exit_flag = 0; 			//任意鍵按下時,退出返回
		KeyScan_Service();
	}
}
//字符演示菜單項響應函數
void CharTest_Menu(void)
{
	//add your code here
	unsigned char uiKey=0;
	//uiKey用于存放掃描的鍵值狀態
	unsigned char Item_Num,Update_Flag,Enter_Flag=0;
	//Item_Num:當前菜單界面當中共有幾項菜單項,刷新時使用
	//Update_Flag:菜單界面刷新標識
	//Enter_Flag:確定鍵按下標識~~
	unsigned char PageItem_Num;
	//PageItem_Num:每頁(全顯示屏內)可以顯示多少個菜單項
	unsigned char First_Index=0,Active_Index=0,Temp_Index=0;
	//First_Index:當前處在顯示屏當中的最前面的菜單項序號
	//Active_Index:當前指向的菜單項,即當前活動的菜單項
	//Temp_Index:中間變量
	unsigned char Exit_flag = 1;
	
	Item_Num = GetMLNum(Menu_List02);			//獲取要顯示的菜單的菜單項個數
	PageItem_Num = GetMLiNum_Page((unsigned char **)Menu_List02);	//獲取要顯示的菜單的頁數
	Initial_Menu((unsigned char**)Menu_List02);
	while(1)
	{
		
		uiKey = Key_Get();					//獲取鍵值
		if(uiKey)							//如有鍵按下則響應
		{
			switch(uiKey)					//判斷鍵值進行分支控制界面
			{
				case 3:						//確定鍵按下
					Enter_Flag=1;			//enter flag set
					break;
				case 2:						//down	向下鍵按下
					if(Active_Index<Item_Num)	
					{
						Active_Index++;
						if(Temp_Index<PageItem_Num-1) Temp_Index++;
						else if(First_Index<Item_Num) First_Index++;
						Update_Flag = 1;
					}
					break;
				case 1:						//up  向上鍵按下
					if(Active_Index>0)
					{
						Active_Index--;
						if(Temp_Index>0) Temp_Index--;
						else if(First_Index>0) First_Index--;
						Update_Flag = 1;
					}
					break;
				default:break;
			}
		}
		if(Update_Flag)						//Update_Flag為1時刷新菜單
		{
			UpDate_Menu(First_Index,Active_Index,(unsigned char**)Menu_List02);
			Update_Flag=0;
		}
		if(Enter_Flag)						//有確定鍵按下時,則進入相應的功能函數
		{
			Enter_Flag = 0;
			switch(Active_Index)
			{
				case 0:						//這里僅定義了可以響應第一項菜單
					Show_CharTest();
					Redraw_Menu(First_Index,Active_Index,(unsigned char**)Menu_List02);
					Update_Flag = 1;
					break; 
				case 1: 
					Show_StringTest();
					Redraw_Menu(First_Index,Active_Index,(unsigned char**)Menu_List02);
					Update_Flag = 1;
					break;				//如感興趣可以自己加進去玩玩
				case 2: 
					Show_ChTest();
					Redraw_Menu(First_Index,Active_Index,(unsigned char**)Menu_List02);
					Update_Flag = 1;
					break;
				case 3: Exit_flag = 0;break;	
				default:break;
			} 
		}
		KeyScan_Service();					//鍵盤掃描的服務程序,最好在1KHz的定時/時基中斷調用
	}
}
//二級菜單中,單個西文字符菜單項響應函數
void Show_CharTest(void)
{
	unsigned int Key=0;
	unsigned Exit_flag=1;
	ClrScreen(0);					//清屏
	SetPaintMode(0,1);				//設置繪圖模式及前景色
	Rectangle(64,0,127,63,1);		//半邊繪制填充的矩形
	FontSet(1,1);				 	//設置字體類形,字符色為1
	PutChar(10,10,'A'); 			//顯示字符
	PutChar(10,40,'8'); 			//顯示字符
	FontSet(1,0);				 	//設置字體類形,字符色為0
	PutChar(80,10,'A'); 			//顯示字符
	PutChar(80,40,'8'); 			//顯示字符
	while(Exit_flag)
	{
		Key = Key_Get();
		if(Key!=0)
			Exit_flag = 0; 			//任意鍵按下時,退出返回
		KeyScan_Service();
	}
}
//二級菜單中,西文字符串菜單項響應函數
void Show_StringTest(void)
{
	unsigned int Key=0;
	unsigned Exit_flag=1;
	ClrScreen(0);					//清屏
	SetPaintMode(0,1);				//設置繪圖模式及前景色
	FontSet(1,1);				 	//設置字體類形,字符色為1
	PutString(5,10,"Wellcome to MzDesign!!"); 	//顯示字符串
	PutString(5,50,"www.mzdesign.com.cn");
	Line(4,60,120,60);				//繪制一條直線
	while(Exit_flag)
	{
		Key = Key_Get();
		if(Key!=0)
			Exit_flag = 0; 			//任意鍵按下時,退出返回
		KeyScan_Service();
	}
}
//二級菜單中,中文字符菜單項響應函數
void Show_ChTest(void)
{
	unsigned int Key=0;
	unsigned Exit_flag=1;
	ClrScreen(0);					//清屏
	SetPaintMode(0,1);				//設置繪圖模式及前景色
	FontSet(2,1);				 	//設置字體類形,字符色為1
	PutChar(10,20,0); 				//顯示漢字  銘
	PutChar(30,20,1); 				//顯示漢字  正
	PutChar(50,20,2); 				//顯示漢字  同
	PutChar(70,20,3); 				//顯示漢字  創
	while(Exit_flag)
	{
		Key = Key_Get();
		if(Key!=0)
			Exit_flag = 0; 			//任意鍵按下時,退出返回
		KeyScan_Service();
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91片黄在线观看| 国产精品污污网站在线观看| 精品剧情v国产在线观看在线| 久久精品夜色噜噜亚洲a∨| 亚洲gay无套男同| 国产91色综合久久免费分享| 在线成人av网站| 国产精品三级电影| 精品无码三级在线观看视频| 精品视频在线免费| 亚洲欧洲日韩一区二区三区| 国产一区二区三区久久悠悠色av | 国产传媒一区在线| 欧美日本一区二区在线观看| 亚洲欧美国产高清| 国产成a人亚洲| 精品国产免费久久| 久久成人综合网| 欧美日韩高清一区二区三区| 一区二区在线观看免费视频播放| 国产91精品露脸国语对白| 精品免费日韩av| 青青草97国产精品免费观看无弹窗版| 在线免费观看成人短视频| 综合色中文字幕| av在线一区二区| 欧美激情一区二区三区全黄| 国产精品综合二区| 国产欧美一二三区| 国产精品系列在线播放| 欧美精品一区视频| 国产一二三精品| 国产亚洲成aⅴ人片在线观看| 国产精品一品二品| 欧美国产一区在线| a亚洲天堂av| 亚洲欧洲精品成人久久奇米网| 成人综合婷婷国产精品久久免费| 国产亚洲一区二区三区四区| 国产超碰在线一区| 国产精品久久久久天堂| 91在线小视频| 亚洲最新视频在线观看| 51精品国自产在线| 精品一区二区av| 国产农村妇女精品| 91看片淫黄大片一级在线观看| 亚洲精品国产成人久久av盗摄| 欧美做爰猛烈大尺度电影无法无天| 亚洲最新在线观看| 日韩一区二区三区观看| 国产福利一区二区三区在线视频| 国产精品久久久久久久蜜臀| 欧美色大人视频| 九九国产精品视频| 国产精品狼人久久影院观看方式| 91麻豆产精品久久久久久| 日韩高清在线一区| 国产日产欧美一区| 精品视频一区三区九区| 国产一区二区0| 亚洲综合成人在线| 日韩免费一区二区| 暴力调教一区二区三区| 午夜精品久久久久| 日本一区二区三区四区在线视频| 一本色道久久加勒比精品| 美腿丝袜亚洲综合| 国产精品视频看| 91精品久久久久久蜜臀| 成人白浆超碰人人人人| 天堂va蜜桃一区二区三区| 久久精品视频免费| 欧美视频你懂的| 国产69精品久久99不卡| 日韩不卡一区二区三区| 亚洲欧洲精品一区二区精品久久久| 欧美一区二区三区在线视频| 成人app在线观看| 久草在线在线精品观看| 亚洲美女视频一区| 欧美经典三级视频一区二区三区| 欧美欧美欧美欧美| 一本大道久久a久久综合婷婷| 九色综合国产一区二区三区| 一区二区三区不卡在线观看| 国产片一区二区| 777午夜精品视频在线播放| 91视频国产观看| 国产成人综合在线观看| 全国精品久久少妇| 亚洲午夜久久久久| 亚洲日本免费电影| 国产精品久久看| 国产欧美日韩精品一区| 精品日韩一区二区三区 | 成人一级片在线观看| 免费人成精品欧美精品| 亚洲成人av电影| 亚洲裸体在线观看| 国产精品国产三级国产| 国产色综合久久| 久久久久国产精品麻豆ai换脸| 欧美岛国在线观看| 欧美一区二区成人6969| 3d动漫精品啪啪一区二区竹菊| 在线观看视频一区二区欧美日韩| 成人短视频下载| 91影院在线观看| 99久久夜色精品国产网站| 国产69精品久久久久毛片| 粗大黑人巨茎大战欧美成人| 国产盗摄女厕一区二区三区| 高清shemale亚洲人妖| 成人激情午夜影院| 99久久精品国产毛片| av高清久久久| 色妞www精品视频| 日本韩国欧美三级| 精品婷婷伊人一区三区三| 欧美日韩成人综合天天影院| 3d动漫精品啪啪一区二区竹菊 | 精品一区二区三区在线播放| 久久国产精品一区二区| 狠狠色综合播放一区二区| 国产一区二区0| av电影在线观看一区| 91麻豆国产福利在线观看| 欧美日韩卡一卡二| 精品国产乱码久久久久久老虎| 精品1区2区在线观看| 国产日本一区二区| 一区二区三区四区高清精品免费观看| 一区二区三区在线视频免费 | 中文字幕中文字幕在线一区| 一区二区三区 在线观看视频| 香蕉影视欧美成人| 久久精品国产999大香线蕉| 国产很黄免费观看久久| 91日韩在线专区| 91麻豆精品国产综合久久久久久| 久久一区二区三区四区| 国产精品电影院| 日本网站在线观看一区二区三区| 国模冰冰炮一区二区| 一道本成人在线| 欧美mv和日韩mv的网站| 一色屋精品亚洲香蕉网站| 午夜激情一区二区| 蜜桃一区二区三区四区| 不卡电影一区二区三区| 91精品国产品国语在线不卡| 中文字幕av不卡| 日日摸夜夜添夜夜添亚洲女人| 国产精品自在在线| 欧美日韩一区二区三区四区| 久久久亚洲欧洲日产国码αv| 亚洲精品美国一| 国产一区久久久| 欧美军同video69gay| 国产精品私房写真福利视频| 日韩电影免费在线观看网站| 成人福利视频网站| 精品国产一区二区三区忘忧草| 依依成人综合视频| 高清shemale亚洲人妖| 日韩三级中文字幕| 亚洲视频资源在线| 国产精品综合一区二区| 91精品国产一区二区三区香蕉| 国产精品免费看片| 国产一区激情在线| 在线成人av影院| 一区二区三区在线观看网站| 国产91精品精华液一区二区三区 | 欧美日韩国产乱码电影| 亚洲欧美色一区| 福利91精品一区二区三区| 91精选在线观看| 亚洲地区一二三色| 91国模大尺度私拍在线视频| 久久久久久久综合日本| 日韩一区中文字幕| 国产激情视频一区二区在线观看 | 国产精品丝袜91| 国产成人av一区二区三区在线观看| 欧美一区二区三区视频在线| 亚洲风情在线资源站| 在线观看欧美精品| 亚洲麻豆国产自偷在线| 91首页免费视频| 国产精品国产三级国产aⅴ中文| 高清视频一区二区| 国产日韩欧美a| 成人精品免费视频| 欧美tk—视频vk| 色香蕉久久蜜桃| 337p日本欧洲亚洲大胆色噜噜| 日韩av成人高清| 欧美一级高清片在线观看|