久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標(biāo)題: 51單片機(jī)+12864上面實(shí)現(xiàn)3級(jí)菜單顯示和切換 [打印本頁(yè)]

作者: xugang    時(shí)間: 2013-6-20 23:24
標(biāo)題: 51單片機(jī)+12864上面實(shí)現(xiàn)3級(jí)菜單顯示和切換
用STC12系列的單片機(jī)在12864上面實(shí)現(xiàn)3級(jí)菜單顯示!其中顯示的圖片是用壇子里一網(wǎng)友的LOG改裝了的,但忘記是誰了。感謝那網(wǎng)友。

http://player.youku.com/player.php/sid/XMzEwMTU5MTY0/v.swf

優(yōu)酷視頻地址,感興趣的朋友可以去看看。
代碼可能不是很優(yōu)化,望各位網(wǎng)友拍磚的時(shí)候手下留情。
是不是圖片太大了,怎么傳上去后圖片的顏色都變了。感興趣的還是去看看視頻吧視頻的效果比圖片好。

程序和LOG都在此壓縮包里 12864三級(jí)菜單.rar (175.29 KB, 下載次數(shù): 914)






















作者: xugang    時(shí)間: 2013-6-20 23:42
/**************************************************************
*	+---------------------------------------------------+	  *
*   			   12864三級(jí)菜單顯示						  *
*	+---------------------------------------------------+  	  *
*															  *
*  此源碼版權(quán)屬 小牛 全權(quán)享有,如欲引用,敬請(qǐng)署名并告知		  *
*        嚴(yán)禁隨意用于商業(yè)目的,違者必究,后果自負(fù)			  *
*             			Q Q:513696765 						  *
*			       											  *
*  運(yùn)行環(huán)境:STC12C5A60S2單片機(jī) 12M晶振						  *
*  程序說明:在12864上面實(shí)現(xiàn)三級(jí)菜單顯示					  *
**************************************************************/
#include<reg52.h>
#include<intrins.h>
#include"def.h"
#include"mode.h"
#include"fuction.h"

void main()
{	

	init();
	while(1)
	{
		menucut(0,mun,table10,table0sub[0]);
		menucut(1,table0,table9,table1sub[0]);
		menucut(2,table1,table8,table2sub[0]);
		menucut(3,table2,table7,table3sub[0]);
		menucut(4,table3,table6,table4sub[0]);
		menucut(5,table4,table11,table5sub[0]);
		menucut(6,table5,table12,table6sub[0]);		
	}
}



作者: xugang    時(shí)間: 2013-6-20 23:42
#ifndef _fuction_h_
#define _fuction_h_

void init()
{
	w_com(0x01);	//清屏
	w_com(0x02);	//地址-》00H
	w_com(0x0c);	//顯示狀態(tài)設(shè)置
	w_com(0x30);	//功能設(shè)定
	w_com(0x80);
	w_com(0x01);	//清屏

}
//——————————讀忙!—————————————//
void r_busy()
{
	IO=0xff;
	R_S=0;
	W_R=1;
	E=1;
	while(IO&0x80);
	E=0;
	
}
//——————————寫指令—————————————//
void w_com(uchar com)
{
	r_busy();
	R_S=0;
	W_R=0;
	E=0;
	E=1;
	IO=com;
	E=0;
}
//——————————擴(kuò)充指令——————————————//
void w_ecom(uchar ecom)
{
	w_com(0x34); //選擇8位數(shù)據(jù)發(fā)送,選擇為擴(kuò)充指令 
	r_busy();
	R_S=0;
	W_R=0;
	E=0;
	E=1;
	IO=ecom;
	E=0;
}
//——————————寫數(shù)據(jù)—————————————//
void w_dat(uchar dat)
{
	
	r_busy();

	R_S=1;
	W_R=0;
	E=0;
	E=1;
	IO=dat;
	E=0;
}

void delay(uchar x)
{
	uchar i,j;
	for(i=0;i<x;i++)
		for(j=0;j<124;j++);
}

void draw_pic(uchar *pic)
{
	uchar i,j; 
	w_com(0x01);	//清屏

	for(i=0;i<32;i++)
	{	
		w_ecom(0x80+i);		   //擴(kuò)充指令,設(shè)定繪圖RAM垂直地址
		w_ecom(0x80);		   //擴(kuò)充指令,設(shè)定繪圖RAM水平地址
		for(j=0;j<16;j++)
		{
			w_dat(*(pic++));
		}
	}

	for(i=0;i<32;i++)
	{	
		w_ecom(0x80+i);			//擴(kuò)充指令,設(shè)定繪圖RAM垂直地址
		w_ecom(0x88);			//擴(kuò)充指令,設(shè)定繪圖RAM水平地址
		for(j=0;j<16;j++)
		{
		
			w_dat(*(pic++));
		}
	}
		
	w_com(0x36);
	flag=1;
}

void draw_submune(uchar *pic,uchar row)		   //定義兩個(gè)變量*pic-->圖片字模的首地址;row-->子菜單要選擇的行
{
	uchar i,j;
	flag=0; 
	w_com(0x01);	//清屏

	for(i=0;i<32;i++)
	{	
		w_ecom(0x80+i);		   //擴(kuò)充指令,設(shè)定繪圖RAM垂直地址
		w_ecom(0x80);		   //擴(kuò)充指令,設(shè)定繪圖RAM水平地址
		for(j=0;j<16;j++)
		{
			if((i>(16*(row-1))) && (i<(row*16)) && row<3)	 //用于判斷LCD前32行的行反白
			w_dat(~(*(pic++)));								 //如果是選擇的反白行就反顯其數(shù)據(jù)
			else											 //否則就正常顯示其數(shù)據(jù)
			w_dat(*(pic++));
		}
	}

	for(i=0;i<32;i++)
	{	
		w_ecom(0x80+i);			//擴(kuò)充指令,設(shè)定繪圖RAM垂直地址
		w_ecom(0x88);			//擴(kuò)充指令,設(shè)定繪圖RAM水平地址
		for(j=0;j<16;j++)
		{
		
			if((i>(16*(row-3))) && (i<((row-2)*16)) && row>2)		//用于判斷LCD后32行的行反白
			w_dat(~(*(pic++)));										//如果是選擇的反白行就反顯其數(shù)據(jù)										 		
			else													//否則就正常顯示其數(shù)據(jù)
			w_dat(*(pic++));
		}
	}
		
	w_com(0x36);										   
	flag=1;													   		//子菜單顯示標(biāo)志位	
}


void key()
{

	if((s3==0) || (s2==0) )
	{
		delay(10);
		if(s3==0)
		{
			temp++;
			if(temp>6)
			temp=0;
			while(!s3);	
		}

		else if(s2==0)
		{
			temp--;
			if(temp>6)
			temp=6;
			while(!s2);	
		}
	}
}

void keycut()
{
	if((s1==0) || (s0==0) )
	{
		delay(10);
		if(s1==0)
		{
			submune=1;
			if(sub && subflag)
			subflag1=1;

			while(!s1);	
		}
		
		if(submune==0)
		return;

		else if(s0==0) 
		{

			sub=0;
			submune=0;
			subflag1=0;
			submune1=1;

			if(sub1)
			{
				submune=1;
				sub1=0;
				sub=0;
				flag=1;
				subflag=0;
			}
			
			else 
			{
				flag=0;
				submune=0;
				subflag=0;
			}
			 
			
			
			while(!s0);
			
		}
		
		
	}


}

void key_submune()
{

	if((s3==0) || (s2==0))
	{
		delay(10);
		if(s3==0) 
		{
			submune1++;
			if(submune1>4)
			submune1=1;
			while(!s3);	
		}

		else if(s2==0) 
		{
			submune1--;
			if(submune1==0)
			submune1=4;
			while(!s2);	
		}
		subflag=0;
	}
}

void key_submune1()
{

	if((s3==0) || (s2==0))
	{
		delay(10);
		if(s3==0) 
		{
			submune2++;
			if(submune2>4)
			submune2=1;
			while(!s3);	
		}

		else if(s2==0) 
		{
			submune2--;
			if(submune2==0)
			submune2=4;
			while(!s2);	
		}
		subflag=0;
	}
}

/****************************************************************************
*	 num-->第一級(jí)菜單的標(biāo)志位;*add-->第一級(jí)菜單的圖片的地址入口			*
*	*sbuadd第二級(jí)菜單的圖片的地址入口;*sbuadd1第三級(jí)菜單的圖片的地址入口;	*
*****************************************************************************/
void menucut(uchar num,uchar *add,uchar *sbuadd,uchar *sbuadd1)	  
{
	while(num==temp)		  			//第一級(jí)菜單的標(biāo)志位判斷條件
	{
		draw_pic(add);		  			//畫第一級(jí)菜單的圖形界面

/*第一級(jí)菜單界面等待時(shí)的要支持第一級(jí)菜單的切換和第二級(jí)界面的進(jìn)入和返回 */
		while((num==temp) && flag)		
		{
			key();						//第一級(jí)菜單界面的切換
			keycut();					//第二級(jí)界面的進(jìn)入
			while((num==temp) && (submune==1)) //第二級(jí)菜單的標(biāo)志位判斷條件
			{
				draw_submune(sbuadd,submune1);	//畫第二級(jí)菜單的圖形界面
				subflag=1;						//畫完第二級(jí)菜單的圖形界面要置位進(jìn)入可以進(jìn)行界面切換的循環(huán)
/*第二級(jí)菜單界面等待時(shí)的要支持第二級(jí)菜單的切換和第三級(jí)界面的進(jìn)入和返回 */
				while((num==temp) && (submune==1) && subflag)
				{
					sub=1;				 //第三級(jí)菜單的標(biāo)志位用于區(qū)分其級(jí)數(shù)
					keycut();			 //第二級(jí)菜單界面的進(jìn)入第三級(jí)菜單切換和返回第一級(jí)菜單
					key_submune();		 //第二級(jí)界面的進(jìn)入
					while(subflag1 && sub)
					{
/*第三級(jí)菜單是一個(gè)二維數(shù)組所以在第二級(jí)進(jìn)入第三級(jí)的時(shí)候要根據(jù)第二級(jí)的標(biāo)志位選擇進(jìn)入第三級(jí)的的地址入口*/
						draw_submune(sbuadd1+((submune1-1)*1024),submune2);	  //畫第三級(jí)菜單的圖形界面
						subflag=1;
						sub1=1;		  //畫完第三級(jí)菜單的圖形界面要置位進(jìn)入可以進(jìn)行界面切換的循環(huán)
						while(subflag1 && sub && subflag)
						{
							 key_submune1();   //第三級(jí)界面的切換
							 keycut();		   //第三級(jí)界面的返回
						}		
					}
				}		
			}
		}
	}
}

#endif

作者: 心__空靈    時(shí)間: 2013-6-25 22:14
下載看看,很強(qiáng)大的樣子
作者: dyun1988    時(shí)間: 2013-11-20 21:51
下載看看,很強(qiáng)大的樣子
作者: abccb    時(shí)間: 2013-11-23 10:03
好像很強(qiáng)大
作者: abccb    時(shí)間: 2013-11-23 10:04
下一個(gè)看看
作者: abccb    時(shí)間: 2013-11-23 10:05
謝謝樓主的分享
作者: abccb    時(shí)間: 2013-11-23 10:05
真心的感謝樓主
作者: xiaokangkp    時(shí)間: 2013-11-26 00:06
謝謝樓主分享,學(xué)習(xí)一下
作者: zgmzgm    時(shí)間: 2013-12-18 12:09
非常不錯(cuò),謝謝樓主,學(xué)習(xí)了
作者: yxz1140    時(shí)間: 2013-12-21 20:46
非常不錯(cuò)的東東。。。。
作者: xjlfh    時(shí)間: 2013-12-23 00:32
學(xué)習(xí)學(xué)習(xí),謝謝啦。
作者: azhiarm9    時(shí)間: 2013-12-23 02:11
下載看看,很強(qiáng)大的樣子
作者: daizhi1970    時(shí)間: 2014-2-1 20:59
O(∩_∩)O謝謝
作者: zhangxiaoljs    時(shí)間: 2014-3-6 20:35
謝謝學(xué)習(xí)了
作者: yhu168    時(shí)間: 2014-3-11 09:24
太強(qiáng)大了,學(xué)習(xí)了!
作者: zhou920017    時(shí)間: 2014-3-14 17:23
看看 感謝分享
作者: 小新灬    時(shí)間: 2014-3-26 10:53
強(qiáng)   人
作者: lvdianguang    時(shí)間: 2014-4-3 18:29
下載看看,謝謝分享。
作者: zenghl    時(shí)間: 2014-4-6 13:34
正需要,強(qiáng)頂!!!!
作者: 930417801    時(shí)間: 2014-4-17 21:41

努力學(xué)習(xí)中 
努力學(xué)習(xí)中 
作者: lyMarvin    時(shí)間: 2014-4-17 22:09
真是不錯(cuò),很強(qiáng)大,學(xué)習(xí)了
作者: 稻草人‘mirror    時(shí)間: 2014-5-2 02:27
很不錯(cuò),謝謝分享
作者: delux3344    時(shí)間: 2014-5-13 14:55

學(xué)習(xí)學(xué)習(xí),謝謝啦。
作者: yy8881    時(shí)間: 2014-6-5 14:02
下載看看
作者: qzsulin    時(shí)間: 2014-8-7 09:30
不錯(cuò),學(xué)習(xí)下,
作者: kpdz009    時(shí)間: 2014-8-10 06:57
好好好
作者: ladeng0303    時(shí)間: 2014-9-5 15:57
很不錯(cuò),正好要用到!
作者: 周安松    時(shí)間: 2014-9-13 05:29
感謝樓主分享
作者: heam    時(shí)間: 2014-9-15 10:49
謝謝分享
作者: tjj163    時(shí)間: 2014-10-11 15:23
很強(qiáng)大的樣子
作者: blj178    時(shí)間: 2014-10-20 20:42
下載來研究研究
作者: weichao4808335    時(shí)間: 2015-4-2 20:07
好資料!
作者: 小天愛小蔥    時(shí)間: 2015-4-24 15:18
剛好需要,謝啦~
作者: 二十出頭    時(shí)間: 2015-6-7 19:58
弄二級(jí)菜單兩天了,實(shí)在是弄不出來了。參考下!
作者: jasone    時(shí)間: 2015-6-27 19:35
xugang 發(fā)表于 2013-6-20 23:42
**** 作者被禁止或刪除 內(nèi)容自動(dòng)屏蔽 ****

贊兩個(gè)

作者: 1678    時(shí)間: 2015-8-7 18:56
你們都自己喜歡寫頭文件啊
作者: engcyh    時(shí)間: 2015-8-7 19:08
支持,謝謝分享~~~~!
作者: hyq2012510    時(shí)間: 2015-8-31 19:45
好資料
作者: 邰夏留    時(shí)間: 2015-9-11 19:23
電路呢???????
作者: 北極光2015    時(shí)間: 2015-10-5 18:15
謝謝分享。正在學(xué)習(xí)多級(jí)菜單!
作者: ababzx2199    時(shí)間: 2015-10-22 10:35
好像很強(qiáng)大的樣子
作者: xiao23123    時(shí)間: 2015-11-5 15:08
不知道這個(gè)圖片是用什么軟件處理的
作者: aj1139420688    時(shí)間: 2016-3-17 09:43
如果用串行口的lcd12864會(huì)更簡(jiǎn)單
作者: 398231290    時(shí)間: 2016-3-18 15:26
厲害,好厲害
作者: 7547163    時(shí)間: 2016-5-2 09:58
感謝分享,正要尋找呢
作者: guangyong_xia    時(shí)間: 2016-5-25 19:42
看起來不錯(cuò),正要學(xué)習(xí)編寫菜單,先收藏了,謝謝!
作者: guangyong_xia    時(shí)間: 2016-5-25 19:45
看起來不錯(cuò),正要學(xué)習(xí)菜單,先收藏了,謝謝!
作者: join22life    時(shí)間: 2016-7-1 15:28
五個(gè)幣希望能用            
作者: 狀元郎    時(shí)間: 2016-7-1 23:52
新手,尋找,老司機(jī)帶帶我
作者: 狀元郎    時(shí)間: 2016-7-1 23:53
感謝樓主怎么不能下載
作者: wojjh    時(shí)間: 2016-7-19 09:29
非常感謝樓主的分享,下載下來學(xué)習(xí)一下~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
作者: duan316    時(shí)間: 2016-7-19 11:18
學(xué)習(xí)了厲害
作者: fengqishi    時(shí)間: 2016-8-21 21:46
怎么在中斷中調(diào)回顯示程序啊


作者: cvi670    時(shí)間: 2016-8-22 14:20
干的漂亮樓主
作者: 曹世鵬    時(shí)間: 2016-9-21 16:37
一層層嵌套的。希望能夠用結(jié)構(gòu)體和指針來做。那樣不會(huì)這么的繁瑣。
作者: linnyshow    時(shí)間: 2016-11-5 13:59
沒有黑幣。可惜了。。。
作者: billtest36    時(shí)間: 2017-4-12 23:30
太好了 感謝分享  
作者: dawei1935    時(shí)間: 2017-4-24 19:19
謝謝樓主
作者: jamyg    時(shí)間: 2017-4-27 09:00
好資料,值得學(xué)習(xí)
作者: 1182687819    時(shí)間: 2017-9-30 20:09
切換了幾個(gè)界面,液晶屏突然什么都不顯示了;復(fù)位也不行,斷電重啟一下?lián)Q了幾個(gè)界面,又不行啦,是什么問題呀
作者: Huyssen    時(shí)間: 2017-10-5 17:10
正需要,很感謝樓主
作者: lq115116    時(shí)間: 2017-11-29 12:19
謝謝分享
作者: huajiata    時(shí)間: 2018-1-9 10:47
多謝分享
作者: j172756239    時(shí)間: 2018-4-10 10:20
牛逼!!很贊
作者: yulin3192    時(shí)間: 2018-4-17 13:31
謝謝樓主的分享
作者: 31415ydl    時(shí)間: 2018-6-23 19:53
支持樓主
作者: 31415ydl    時(shí)間: 2018-6-23 19:54
多謝分享
作者: zhsir    時(shí)間: 2018-7-26 11:00
功能強(qiáng)大,想法不錯(cuò)
作者: Longan.Wang    時(shí)間: 2018-8-7 08:34
參考一下,謝謝!
作者: guanzhongmou    時(shí)間: 2018-8-22 16:26
好資料~!
作者: luhuayiw    時(shí)間: 2018-10-15 09:41
學(xué)習(xí)了,多謝分享!
作者: hong19851024    時(shí)間: 2018-10-16 15:57
好資料
作者: Rorschach    時(shí)間: 2018-11-19 19:14
好啊,可惜黑幣又沒了
作者: c51stm32    時(shí)間: 2018-11-23 09:58
太強(qiáng)大了,學(xué)習(xí)了!
作者: EEEEELI    時(shí)間: 2018-11-23 21:55
受用,謝謝
作者: zeze10000    時(shí)間: 2018-12-7 00:07
菜單不錯(cuò),學(xué)習(xí)一下
作者: gnez    時(shí)間: 2018-12-12 12:28
感謝分享!!!!!
作者: pianer    時(shí)間: 2018-12-20 23:53
為什么我燒到板子上什么都不顯示呀

作者: doublecityggb    時(shí)間: 2018-12-27 08:48
很不錯(cuò)。
作者: 3290700544    時(shí)間: 2019-7-17 08:41
膜拜大神   好厲害    佩服
作者: tfq1    時(shí)間: 2019-11-3 15:37
我想問一下LCD12864主界面5秒后怎么顯示其他界面
作者: 1481714970    時(shí)間: 2019-11-3 18:33
贊一個(gè)  很給力
作者: 西點(diǎn)鐘靈毓秀    時(shí)間: 2019-11-3 20:06
下載在哪里?
作者: kaiyunliu    時(shí)間: 2020-5-14 16:13
感謝分享
作者: freemusic8    時(shí)間: 2024-8-27 12:35
下載來研究研究




歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 日本少妇一区二区 | 超碰在线看 | 国产欧美日韩视频 | 一区免费视频 | 91久久久久久久久 | 超碰97免费| 国产综合久久久 | 国产欧美精品一区二区三区 | 怡红院久久| 69av在线| 91精品国产日韩91久久久久久 | 电家庭影院午夜 | 亚洲欧洲视频 | 国产a√ | 欧美爱爱网站 | 久草福利在线观看 | 亚洲国产日本 | 久久亚洲精品视频 | 一区二区三区精品 | 色哟哟精品观看 | 成人一区二区视频 | 四虎影院永久免费 | a天堂在线视频 | 国产精品视频免费 | 日韩视频在线播放 | 成人在线视频播放 | 电家庭影院午夜 | 亚洲人成免费 | av免费观看网址 | 国产精品aaa | 日本在线不卡视频 | 日韩在线免费观看视频 | 国产欧美一区二区精品性色超碰 | 色多多在线观看 | 欧美日韩视频在线 | 色综合视频在线观看 | 欧美精品xxx | 91蝌蚪少妇 | 天天干天天操天天插 | 亚洲视频在线看 | 天天操天天看 |