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

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

?? key_new.c

?? 這是單片機驅動液晶顯示器12864和鍵盤的源代碼
?? C
字號:
#include <SST89x5x4.H>

#define uchar unsigned  char
#define uint unsigned int
#define lcd_clr 0x01
#define option_num 8
uchar basic_time=0;
uchar page = 0;
uchar page_old = 0;
uchar page_new = 1;


/*
keyboard	data
0		12
1		8
2		4
3		0
4		1
5		2
6		3
7		5
8		6
9		7
10-ok	9
11		10
12-wrong11
13		13
14		14
15		15
*/	

#define key_0 	12
#define key_1 	8
#define key_2 	4
#define key_3 	0
#define key_4 	1
#define key_5 	2
#define key_6 	3
#define key_7 	5
#define key_8 	6
#define key_9	7
#define key_o 	9
#define key_d 	10
#define key_c 	11
#define key_l 	13
#define key_u 	14
#define key_r 	15

//全局變量定義
sbit rs = P1^7;
sbit rw  = P1^6;
sbit e = P2^1;
sbit lcd_deng = P2^3;
sbit le = P2^6;
sbit ce = P2^4;

//函數申明
void lcd_ini(void);	
void lcd_wrc(uchar com);
void lcd_wrd(uchar dat);
void lcd_checkbusy();
void delay(uchar n);
void ldelay(uchar n);
void lcd_on();
void lcd_off();
uchar lcd_read_ac();
void lcd_dis_num(uint dat);
void lcd_dis_ch(uchar h,uchar l);
void lcd_add(uchar h,uchar l);


void page_0();
void page_1();
void page_2();
void page_3();
void page_4();
void page_5();

//keyboard
uchar key_data(void);
uchar check_key(void);
uchar key_data_ok(void);

uchar lcd_line = 0;
//總線控制--使能和釋放
void ad_en(void);
void lcd_en(void);
void three_en(void);
/*
struct caidan
{
	uchar key_index;
	uchar key_ok;
	uchar key_cancel;
	uchar (*function)();		//定義一個指向函數的指針變量
};

struct caidan menu[]=
{

//	{0,0,1,(*page_0)},
//	{0,0,1,(*function)},
	{1,6,0,(*page_1)},
	{2,7,0,(*page_2)},
	{3,8,0,(*page_3)},
	{4,9,0,(*page_4)},
	{5,10,0,(*page_5)},

};
*/
void page_1()
{
	uchar i = 0;
	uchar dat_1[] = {"1.列車檢測"};
	uchar dat_2[] = {"2.單車檢測"};
	uchar dat_3[] = {"3.參數設置"};
	uchar dat_4[] = {"4.歷史數據"};
	uchar dat_5[] = {"5.兩相測量"};
//	lcd_wrc(0x01);
//	ldelay(200);
	page_new = 0;
	lcd_add(1,1);
	for (i=0; i<10; i++)
	{
		lcd_wrd(dat_1[i]);
	}
//	lcd_wrc(0x04);
	lcd_add(2,1);
	for (i=0; i<10; i++)
	{
		lcd_wrd(dat_2[i]);
	}
	lcd_add(3,1);
	for (i=0; i<10; i++)
	{
		lcd_wrd(dat_3[i]);
	}
	lcd_add(4,1);
	for (i=0; i<10; i++)
	{
		lcd_wrd(dat_4[i]);
	}
//	lcd_wrc(0x34);
//	lcd_wrc(0x05);
}
void page_0(void)
{
	uchar dat_1[] = {"一二三四五六日"};
	uchar i = 0;

	basic_time ++;
	page_new = 0;

//	lcd_wrc(0x01);
//計算溫度和濕度年月日
	if(basic_time==100)
	{
		cal_temp_humi();
		lcd_read_time();
		basic_time = 0;
	}
	else
	{
		lcd_read_time();
	}

//		cal_basic();		//
		lcd_add(1,1);
		lcd_dis_num_2(20);
		lcd_dis_num_2((uint)b_data.year);
		lcd_dis_ch(0xc4,0xea);		//uchar h,uchar l);
		lcd_wrd(0x20);
		lcd_wrd(0x20);
		lcd_add(1,5);
		lcd_dis_num_2((uint)b_data.month);
		lcd_dis_ch(0xd4,0xc2);
		lcd_add(1,7);
		lcd_dis_num_2((uint)b_data.date);
		lcd_dis_ch(0xc8,0xd5);
		lcd_add(2,1);
		lcd_dis_ch(0xd0,0xc7);
		lcd_dis_ch(0xc6,0xda);

//		lcd_dis_num_1((uint)b_data.day);
		i=b_data.day;
		lcd_dis_ch(dat_1[2*(i-1)],dat_1[2*(i-1)+1]);

		lcd_add(2,5);
		lcd_dis_num_2((uint)b_data.hour);
		lcd_wrd(0x3a);
//		lcd_add(2,6);
		lcd_dis_num_2((uint)b_data.minute);
		lcd_wrd(0x3a);
//		lcd_add(2,8);
		lcd_dis_num_2((uint)b_data.second);
		lcd_add(3,1);
		lcd_dis_ch(0xca,0xaa);
		lcd_dis_ch(0xb6,0xc8);
		lcd_wrd(0x3a);
		lcd_add(3,4);
		lcd_dis_num_2((uint)b_data.humi);
//		lcd_wrd(0x25);
		lcd_dis_ch(0xa3,0xa5);
		lcd_add(3,7);
		lcd_dis_ch(0xc7,0xeb);
		lcd_dis_ch(0xb0,0xb4);
		lcd_add(4,1);
		lcd_dis_ch(0xce,0xc2);
		lcd_dis_ch(0xb6,0xc8);
		lcd_wrd(0x3a);
		lcd_add(4,4);
		lcd_dis_num_2((uint)b_data.temp);
		lcd_dis_ch(0xa1,0xe6);
		lcd_add(4,7);
		lcd_dis_ch(0xc8,0xa1);
		lcd_dis_ch(0xcf,0xfb);

}


void ad_en(void)
{
/*
	e = 0;	//lcd not enable
	le = 0;	//three-states latched
	ce = 0;	//ad enable
*/
}
void lcd_en(void)
{
	ce = 1;	//ad not enable
	le = 0;	//three-states latched
	e = 1;	//lcd enable
}

void three_en(void)
{
	ce = 1;	//ad not enable
	e = 0;	//lcd not enable
	le = 1;	//tree-states open
}


void lcd_ini()
{
	delay(100);
	lcd_wrc(0x34);
	delay(10);
	lcd_wrc(0x30);
	delay(10);
	lcd_wrc(0x01);
	delay(10);
	lcd_wrc(0x06);
	delay(10);
	lcd_wrc(0x0c);
	delay(200);
}	
void lcd_wrc(uchar com)
{
	lcd_en();
	lcd_checkbusy();
	rs = 0;
	rw = 0;
	P0 = com;
	e = 1;
	delay(10);
	e = 0;
}

void lcd_wrd(uchar dat)
{
//	checkbusy();
	lcd_en();
	lcd_checkbusy();
	rs = 1;
	rw = 0;
	P0 = dat;
	e = 1;
	delay(5);
	e = 0;
}
void lcd_checkbusy()
{
	
	uchar busy = 0;
	lcd_en();
	P0 = 0XFF;
	busy = P0;
	if(busy>0x7f)
	{
		rs = 0;
		rw = 1;
		e = 1;
		busy = P0;
		e = 0;
		delay(10);
	}
}
uchar lcd_rdd();
void delay(uchar n)
{
	while(n--);
}

void ldelay(uchar n)
{
	uchar a=100;
	while(a--)
	{
    	while(n--);
	}
}


void lcd_on()
{
	lcd_deng = 0;
}
void lcd_off()
{
	lcd_deng = 1;
}
uchar lcd_read_ac()
{
//	uchar dat = 0;
	lcd_en();
	_nop_();
	P0 = 0XFF;
//	e = 1;
	rs = 0;
	_nop_();
	rw = 1;
	_nop_();
	e = 1;
//	delay(10);
//	dat = P0;
//	delay(10);
//	e = 0;
//	return(dat&0x7f);
	return(P0&0x7f);
}

void lcd_dis_num(uint dat)
{
    uint a=0;
    dat =dat%10000;
    a =dat/1000;
    lcd_wrd(0x30+a);
    dat =dat%1000;
    a =dat/100;
    lcd_wrd(0x30+a);
    dat =dat%100;
    a=dat/10;
    lcd_wrd(0x30+a);
    dat =dat%10;
    lcd_wrd(0x30+dat);
}
void lcd_dis_ch(uchar h,uchar l)
{
    lcd_wrd(h);
    lcd_wrd(l);
}

void lcd_add(uchar h,uchar l)       //定位地址
{
  l--;
  switch(h)
  {
    case 1:
    {
      lcd_wrc(0x80+l);
      break;
    }
    case 2:
    {
      lcd_wrc(0x90+l);
      break;
    }
    case 3:
    {
      lcd_wrc(0x88+l);
      break;
    }
    case 4:
    {
      lcd_wrc(0x98+l);
      break;
    }
  }
}




//高位發送,低位讀入
uchar check_key(void)
{
	uchar a = 0;
	P1 = 0x0f;
	a = P1&0X0f;
    return(a);
}
uchar key_data_ok(void)
{
	uchar keydata = 0;
	uchar key_data_check = 0;

		key_data_check = check_key();
		if(key_data_check != 0x0f)
		{
			keydata = key_data();
		}
		while(key_data_check != 0x0f)
		{
			key_data_check = check_key();
		}
		lcd_add(4,4);
		lcd_dis_num(key_data_check);



	return(keydata);
}


unsigned char key_data()      //判斷鍵值
{
	uchar a=0,b=0,c=0,d=0,i=0;
  	a = 0xef;
  	for(i = 0;i<4;i++)      //讀行
	{
	    P1 = a;
		delay(10);
	    b = P1;
		b = b&0x0f;
//    	b = b>>4;
	    if(b!=0x0F)   //表示有鍵按下
    	{
			delay(200);   //軟件延時   確認有鍵按下
			b = P1&0X0F;
//	    	b = b>>4;
      		if(b != 0x0F)
      		{  
//	        	return b;

				c=b;
		        if(c==0X07)
		        {
	          		d=i*4+3;
		        }
		        else if(c==0X0B)
		        {
		          	d=i*4+2;
		        }
		        else if(c==0X0D)
		        {
		          	d=i*4+1;
		        }
		        else if(c==0X0E)
		        {
		          	d=i*4;
		        }
			    break;
			}
		}
    	else
	    {
	      	a = a<<1;
			a = a+0x01;
	      	if(a==0xFF)
	      	{
//	        	return 0x0f;
				d = 0x0f+1;
				break;
	      	}
    	}
	}
	return d;
}




void main()
{
/*
	P0 = 0XFF;
	P1 = 0XFF;
	P2 = 0XFF;
	P3 = 0XFF;

	P0 = 0X00;
	P1 = 0X00;
	P2 = 0X00;
	P3 = 0X00;
*/	

	uchar i = 0;
	uchar v = 0;
	uchar keydata = 0;
	uchar key_data_check = 0;
//	uchar KeyWord[]="1.單步執行2.單步執行3.單步執行4.單步執行5.單步執行6.單步執行7.單步執行";
	uchar KeyWord[]="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ是一種具有并行線或線串行多種接口方式";
	uchar dat_1[] = {"1.列車檢測"};
	uchar dat_2[] = {"2.單車檢測"};
	uchar dat_3[] = {"3.參數設置"};
	uchar dat_4[] = {"4.歷史數據"};

	lcd_off();
	lcd_on();
	lcd_ini();
//	lcd_wrc(0x80);
/*
	for(i=0;i<60;i++)
	{
			lcd_wrd(0x00+i);
	}
*/
//	delay(100);

	lcd_add(1,1);
	for(i=0;i<60;i=i+2)
	{
		lcd_dis_ch(KeyWord[i],KeyWord[i+1]);
	}

//	lcd_dis_ch(0xb5,0xa1);
//	lcd_dis_ch(0xb5,0xa1);
//	lcd_dis_ch(0xb5,0xa1);
	ldelay(200);
//	i=lcd_read_ac();
//	i=lcd_read_ac();
//	i=lcd_read_ac();
//	delay(200);
//	lcd_dis_num(i);
//	lcd_dis_num(12458);
/*
	lcd_add(2,1);
	lcd_dis_num(KeyWord[0]);
	lcd_dis_num(KeyWord[1]);
*/


	while(1)
	
	{
		

		key_data_check = check_key();
		if(key_data_check != 0x0f)
		{
			keydata = key_data();
		}
		while(key_data_check != 0x0f)
		{
			key_data_check = check_key();
		}
		lcd_add(4,4);
		lcd_dis_num(key_data_check);

		lcd_add(4,7);
		switch(keydata)
		{
			case 0:
			{
				v = 3;
				lcd_dis_num(v);
				break;
			}
			case 1:
			{
				v = 4;
				lcd_dis_num(v);
				break;
			}
			case 2:
			{
				v = 5;
				lcd_dis_num(v);
				break;
			}
			case 3:
			{
				v = 6;
				lcd_dis_num(v);
				break;
			}
			case 4:
			{
				v = 2;
				lcd_dis_num(v);
				break;
			}
			case 5:
			{
				v = 7;
				lcd_dis_num(v);
				break;
			}
			case 6:
			{
				v = 8;
				lcd_dis_num(v);
				break;
			}
			case 7:
			{
				v = 9;
				lcd_dis_num(v);
				break;
			}
			case 8:
			{
				v = 1;
				lcd_dis_num(v);
				break;
			}
			case 9:
			{
				v = 10;
				lcd_dis_num(v);
				break;
			}
			case 10:
			{
				v = 11;
				lcd_dis_num(v);
				break;
			}
			case 11:
			{
				v = 12;
				lcd_dis_num(v);
				break;
			}
			case 12:
			{
				v = 0;
				lcd_dis_num(v);
				break;
			}
			case 13:
			{
				v = 13;
				lcd_dis_num(v);
				break;
			}
			case 14:
			{
				v = 14;
				lcd_dis_num(v);
				break;
			}
			case 15:
			{
				v = 15;
				lcd_dis_num(v);
				break;
			}
			default:
			{
				v = 16;
				lcd_dis_num(v);
				break;
			}
		}

	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国产91亚洲一区二区三区婷婷| 亚洲桃色在线一区| 亚洲同性gay激情无套| 三级一区在线视频先锋| 成人a免费在线看| 日韩欧美成人午夜| 水蜜桃久久夜色精品一区的特点| 成人午夜视频在线| 日韩视频一区二区| 香港成人在线视频| 91九色最新地址| 国产精品丝袜黑色高跟| 美女脱光内衣内裤视频久久影院| 99久久精品国产麻豆演员表| 久久精品视频一区二区三区| 日日夜夜免费精品| 91福利社在线观看| 亚洲精品国产精品乱码不99| 成人网在线免费视频| 欧美变态tickling挠脚心| 日韩精品一级中文字幕精品视频免费观看 | 国产精品久线在线观看| 极品少妇一区二区| 欧美成人r级一区二区三区| 午夜精品久久久久影视| 欧美手机在线视频| 亚洲h精品动漫在线观看| 色婷婷av久久久久久久| 椎名由奈av一区二区三区| 成人午夜av电影| 国产精品第四页| av网站免费线看精品| 国产拍欧美日韩视频二区| 捆绑紧缚一区二区三区视频| 7878成人国产在线观看| 日本成人中文字幕在线视频| 9191国产精品| 日本不卡一二三| 日韩精品一区二区三区中文不卡| 美女尤物国产一区| 久久中文娱乐网| 国产99久久久国产精品潘金| 欧美国产一区二区在线观看| 高清在线成人网| 亚洲人精品午夜| 欧美午夜免费电影| 日本强好片久久久久久aaa| 91精品国产欧美日韩| 另类小说综合欧美亚洲| 2020国产精品自拍| 成人一区二区三区视频| 亚洲天堂福利av| 欧美视频一区在线观看| 日产精品久久久久久久性色| 欧美成人bangbros| 成人av影视在线观看| 一区二区三区在线看| 51精品视频一区二区三区| 国产美女在线精品| 亚洲欧美另类小说| 日韩一区二区不卡| 成人18精品视频| 日韩电影在线观看网站| 欧美激情艳妇裸体舞| 欧美性色综合网| 韩国成人精品a∨在线观看| 综合电影一区二区三区 | 三级欧美在线一区| 久久精品欧美日韩| 欧美日韩日本视频| 国产精品538一区二区在线| 一区二区三区中文字幕精品精品| 3d动漫精品啪啪1区2区免费 | 日韩精品视频网| 国产三区在线成人av| 欧美猛男gaygay网站| 丁香五精品蜜臀久久久久99网站| 亚洲精品中文在线| 久久综合九色综合97婷婷女人 | 日韩国产在线观看一区| 国产精品每日更新| 91精品国产乱码| 91在线视频免费观看| 精品在线一区二区| 亚洲午夜电影网| 国产精品少妇自拍| www激情久久| 日韩欧美在线1卡| 欧美日韩中文一区| 91久久国产综合久久| 成人性生交大合| 国内成人精品2018免费看| 亚洲高清免费观看| 一区二区三区美女| 国产精品私人影院| 国产欧美精品一区二区三区四区| 日韩欧美三级在线| 欧美人xxxx| 欧美制服丝袜第一页| 99re这里都是精品| 波多野结衣欧美| 北岛玲一区二区三区四区| 国产一区二区主播在线| 日本不卡一二三| 免费亚洲电影在线| 日本v片在线高清不卡在线观看| 一区二区三区 在线观看视频| 国产精品久久影院| 国产精品国产自产拍高清av| 国产三级精品视频| 久久久电影一区二区三区| 精品久久人人做人人爽| 欧美tk—视频vk| 2014亚洲片线观看视频免费| 亚洲精品一区在线观看| 久久亚洲精华国产精华液| 久久一区二区视频| 久久先锋资源网| 欧美韩国一区二区| 亚洲视频 欧洲视频| 亚洲免费在线播放| 亚洲综合网站在线观看| 亚洲最色的网站| 五月天网站亚洲| 精品一区免费av| 风间由美一区二区三区在线观看 | 国产美女精品一区二区三区| 激情六月婷婷久久| 国产黄色成人av| kk眼镜猥琐国模调教系列一区二区| 成人免费视频视频| 色哦色哦哦色天天综合| 欧美日韩综合色| 欧美成人福利视频| 亚洲欧美自拍偷拍| 亚洲第一狼人社区| 精品在线你懂的| www.激情成人| 欧美色综合网站| 精品三级在线看| 综合久久综合久久| 日本最新不卡在线| 本田岬高潮一区二区三区| 欧美蜜桃一区二区三区| 2020国产精品| 亚洲一区在线电影| 国产乱人伦精品一区二区在线观看| 波多野结衣精品在线| 欧美一区二区在线播放| 国产精品嫩草99a| 日韩av成人高清| 色综合久久久久综合体| 日韩一区二区三区视频在线| 国产精品久久综合| 美女视频免费一区| 色综合久久88色综合天天6| 制服丝袜中文字幕亚洲| 国产精品三级视频| 日韩精品一二区| 91麻豆swag| 国产婷婷色一区二区三区四区| 亚洲午夜免费电影| 国产99久久久国产精品| 制服丝袜亚洲色图| 亚洲日本护士毛茸茸| 国产一区二三区| 欧美一区二区在线免费播放| 亚洲女子a中天字幕| 风间由美一区二区av101| 欧美成人一区二区三区在线观看| 一区二区国产视频| 99国产精品久| 欧美国产精品一区二区| 精品影视av免费| 日韩一区二区三区四区| 亚洲成人高清在线| 日本道精品一区二区三区| 国产拍揄自揄精品视频麻豆| 久久国产成人午夜av影院| 制服丝袜亚洲播放| 午夜激情久久久| 欧美三级电影一区| 亚洲一区在线视频观看| 97久久人人超碰| 国产精品视频一二三区| 国产盗摄女厕一区二区三区| 日韩精品一区二区三区在线观看| 午夜电影网亚洲视频| 欧美性大战久久久久久久| 亚洲三级电影全部在线观看高清| 国产精品白丝jk黑袜喷水| 精品av久久707| 国产一区二区不卡在线| 久久这里只有精品视频网| 久久99精品久久只有精品| 日韩免费高清av| 国内国产精品久久| 久久久久国产一区二区三区四区| 国产一区二区三区电影在线观看| 精品99一区二区三区|