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

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

?? l_key.c

?? 自己單片機板c程序
?? C
字號:
/*鍵盤程序,本程序涉及到外中斷,定時器中斷,比較復雜,耐心學,幫助了解中斷事件*/

#include <reg51.h>
#include <intrins.h>


sbit SPK=P3^4;		//SPK定義為P3口的第4位,就是驅動蜂鳴器的那個腳
sbit JDQ=P3^5;		//JDQ定義為P3口的第5位,就是驅動繼電器的那個腳

code unsigned char table[]=
			{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,
			0x77,0x7c,0x39,0x5e,0x79,0x71};
			//共陰數碼管 0-9 a-f 表

code unsigned char key_tab[17]={0xed,0x7e,0x7d,0x7b,
								0xbe,0xbd,0xbb,0xde,
								0xdd,0xdb,0x77,0xb7,
								0xee,0xd7,0xeb,0xe7,0XFF};//========================此數組為鍵盤編碼,
															//本人采用類似電話按鍵的編碼方式,方便以后設計
										//	1	2	3	a					0x01 0x02 0x03 0x0a
										//	4	5	6	b	對應16進制碼:	0x04 0x05 0x06 0x0b
										//	7	8	9	e					0x07 0x08 0x09 0x0e
										//	*	0	#	f					0x0c 0x00 0x0e 0x0f
										//打個比方,如果你按下0鍵,P0口讀到數據為0xed
										//如果你按下2鍵,P0口讀到數據為0x7d,按下9鍵為0xdb,
										//我們將讀到的P0口數據經過查表法就能得到相應的16進制碼
					
										//鍵盤的讀取,我們采用中斷法,電路用一個4與門接入
										//中斷口(INT0),利用中斷來掃描鍵盤矩陣,讀取數據

unsigned char l_tmpdate[8]={0,0,0,0,0,0,0,0};//定義數組變量
unsigned char l_key=0x0;					//定義變量,存放鍵值	
unsigned char l_keyold=0xFF;	//做為按鍵松開否的憑證				

void ReadKey(void);   //掃描鍵盤 獲取鍵值
void delay();//延時子函數,5個空指令
void display(unsigned char *lp,unsigned char lc);//數字的顯示函數;lp為指向數組的地址,lc為顯示的個數
													//這個函數在第二節用過不用再說了吧!


void main(void)     //入口函數
{
	EA=1;			//開啟總中斷
 	  EX0=1;  		//開啟外部中斷 0
 	  IT0=1;        // 設置成 下降沿觸發方式
	P0=0xf0;
	while(1){
		display(&l_key,1);			//輸出獲取的鍵值碼

		if(l_key==0x0e)				//這里我們檢測是否按了0x0e鍵,
			JDQ=0;					//是,我們就驅動繼電器打開
		if(l_key==0x0c)				//檢測是否按下了0x0c鍵,
			JDQ=1;					//是,我們就驅動繼電器斷開
	}
}

void key_scan()   interrupt 0    //外部中斷 0  0的優先級最高 							
{	
	EX0=0;					//在讀鍵盤期間,我們關閉中斷,防止干擾帶來的多次中斷

							//為了消除抖動帶來的干擾,在按下鍵后我們采用延時十多毫秒再讀取鍵值
								//如果采用循環語句來延時,比如(for,while。。。)會使CPU處理循環而占用
								//系統資源,所以這里我們采用定時器中斷法,讓定時器等待十多毫秒觸發定時器
								//中斷,這里用到定時器0

	TMOD&=0XF1;				//設置定時器0為模式1方式,
	TH0=0X2E;				//設置初值,為12毫秒
	TL0=0X00;
	ET0=1;					//開啟定時器中斷0
	TR0=1;					//啟動定時器計數	
} 
void timer0_isr(void) interrupt 1	//定時器0的中斷函數
{	
	TR0=0;						//中斷后我們停止計數
	ReadKey();					//定時器計數12毫秒后產生中斷,調用此函數,讀取鍵值
}
void ReadKey(void)						//讀鍵盤值,此函數涉及到去除手的抖動干擾,消除抖動時間為12毫秒,
										//有點難明白的朋友,希望慢慢理解
{
	unsigned char i,j,key;
	j=0xfe;
	key=0xff;			//設定初值
	for (i=0;i<4;i++){		
		P0=j;				//P0口低4位循環輸出0,掃描鍵盤
		//leday();
		if ((P0&0xf0)!=0xf0){	//如果有鍵按下,P0口高4位不會為1,									
			key=P0;				//讀取P0口,退出循環,否則循環下次
			break;		
		}
		j=_crol_(j,1);			//此函數功能為左循環移位
	}
	if (key==0xff){				//如果讀取不到P0口的值,比如是干擾,我們不做鍵值處理,返回
		l_keyold=0xff;
		//l_key=0xff;
		P0=0xf0;			//恢復P0口,等待按鍵按下
		EX0=1;					//返回之前,開啟外中斷
		SPK=1;
		return;
	}
	SPK=0;					//有鍵按下,我們驅動蜂鳴器響
	if(l_keyold==key){		//檢測按鍵放開否,如果一樣表明沒放開,
		TH0=0X2E;			//我們繼續啟動定時器,檢測按鍵松開否
		TL0=0;
		TR0=1;		
	   	return;
	}		
	TH0=0X2E;			
	TL0=0;
	TR0=1;					//我們繼續啟動定時器,檢測按鍵松開否

	l_keyold=key;			//獲取鍵碼做為放開的憑證

	for(i=0;i<17;i++){			//查表獲得相應的16進制值存放l_key變量中
		if (key==key_tab[i]){
			l_key=i;
			break;
		}
	}
			//程序運行到這里,就表明有鍵值被讀取存放于l_key變量中,主程序就可以檢測此變量做相應外理,
			//此時我們回到主程序
}  
void display(unsigned char *lp,unsigned char lc)//顯示
{
	unsigned char i;		//定義變量
	P2=0;					//端口2為輸出
	P1=P1&0xF8;				//將P1口的前3位輸出0,對應138譯門輸入腳,全0為第一位數碼管
	for(i=0;i<lc;i++){		//循環顯示
	P2=table[lp[i]];		//查表法得到要顯示數字的數碼段
	delay();				//延時5個空指令	
	if(i==7)				//檢測顯示完8位否,完成直接退出,不讓P1口再加1,否則進位影響到第四位數據
		break;
	P2=0;					//清0端口,準備顯示下位
	P1++;					//下一位數碼管
	}
}
void delay(void)								//空5個指令
{
	_nop_();_nop_();_nop_();_nop_();_nop_();
}  

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一级xxx| 国产一区二区中文字幕| 懂色av中文字幕一区二区三区| 国产精品亚洲第一| 国产综合色在线视频区| 国产精品一区二区果冻传媒| 韩国三级中文字幕hd久久精品| 制服丝袜亚洲色图| 欧美性大战xxxxx久久久| 91色|porny| 欧美日韩卡一卡二| 欧美日韩国产系列| 5566中文字幕一区二区电影| 精品久久久久久久久久久院品网| 国产福利一区二区| 成人在线视频一区| 在线视频你懂得一区| 欧美情侣在线播放| 精品乱人伦小说| 国产精品灌醉下药二区| 亚洲精品伦理在线| 蜜臀国产一区二区三区在线播放 | 国产喷白浆一区二区三区| 久久亚洲一级片| 中文字幕第一页久久| 一区二区日韩av| 经典一区二区三区| 91在线视频免费观看| 777午夜精品视频在线播放| 精品99一区二区| 一区在线观看免费| 洋洋成人永久网站入口| 久久精品国产99| av成人动漫在线观看| 欧美一区二区三区系列电影| 欧美高清在线视频| 日本欧美韩国一区三区| 91麻豆免费观看| 精品国产乱码久久久久久影片| 欧美高清视频www夜色资源网| 91欧美一区二区| 日韩一二三区视频| 中文字幕一区二区三区在线不卡| 国产精品视频看| 亚洲mv在线观看| 99在线精品免费| 久久色.com| 日韩成人午夜精品| 欧美性猛交xxxxxx富婆| 国产精品久久久久久久久动漫| 日本一区二区电影| 黑人巨大精品欧美一区| 色婷婷久久99综合精品jk白丝| 在线免费观看视频一区| 国产欧美一区二区精品婷婷 | 欧美电影免费观看高清完整版在线| av网站免费线看精品| 日韩精品专区在线| 亚洲一区二三区| a4yy欧美一区二区三区| 国产三级一区二区三区| 国内国产精品久久| 日韩你懂的电影在线观看| 日一区二区三区| 欧美影院一区二区| 亚洲精品乱码久久久久久黑人 | 一区二区三区在线观看视频 | 免费成人深夜小野草| 91香蕉视频mp4| 日本一区二区三区久久久久久久久不 | 亚洲综合区在线| 波多野洁衣一区| 久久久久久久久久久电影| 蓝色福利精品导航| 欧美一区二区久久久| 日日噜噜夜夜狠狠视频欧美人| 久久精品国产99久久6| 91精品欧美久久久久久动漫| 亚洲成人自拍网| 69堂精品视频| 久久不见久久见免费视频7| 日韩欧美久久一区| 国产综合久久久久影院| 国产视频一区二区在线| 成人在线综合网| 国产精品美女久久久久aⅴ| 99精品国产91久久久久久| 亚洲欧美另类在线| 欧美久久久久久蜜桃| 日本欧美肥老太交大片| 精品福利在线导航| 成人av在线电影| 亚洲国产一区二区在线播放| 欧美电影影音先锋| 国产一区二区不卡老阿姨| 国产婷婷精品av在线| 色天使色偷偷av一区二区| 亚洲一区在线观看网站| 欧美日韩专区在线| 精品一区二区三区视频在线观看| 91同城在线观看| 午夜精彩视频在线观看不卡| 日韩视频一区二区在线观看| 成人动漫一区二区| 亚洲二区在线观看| 久久久亚洲国产美女国产盗摄 | av在线一区二区| 最新国产精品久久精品| 精品女同一区二区| 国产成人小视频| 欧美午夜一区二区| 丝袜美腿亚洲色图| 久久午夜电影网| 欧美三区在线观看| 国产成人福利片| 午夜a成v人精品| 国产精品污污网站在线观看| 欧美日本韩国一区二区三区视频| 国产偷国产偷精品高清尤物| 日本丶国产丶欧美色综合| 蜜臀精品一区二区三区在线观看| 一本久久a久久免费精品不卡| 久久一留热品黄| 欧美美女喷水视频| 成人激情动漫在线观看| 手机精品视频在线观看| 中文字幕免费观看一区| 91精品中文字幕一区二区三区 | 99国产精品久久久久久久久久| 精品美女一区二区三区| 一本色道综合亚洲| 精品制服美女久久| 亚洲图片有声小说| 一区二区三区四区中文字幕| 亚洲国产经典视频| 国产女同互慰高潮91漫画| 日韩精品一区二区三区四区视频| 午夜精品福利一区二区三区蜜桃| 欧美制服丝袜第一页| 99久久精品国产导航| 国产黄色91视频| 韩国av一区二区三区在线观看| 久久影院电视剧免费观看| 91精品国产高清一区二区三区| 免费欧美在线视频| 日韩综合小视频| 婷婷综合久久一区二区三区| 一区二区三区四区亚洲| 亚洲欧美乱综合| 艳妇臀荡乳欲伦亚洲一区| 亚洲欧美另类综合偷拍| 亚洲精品高清在线| 自拍偷拍亚洲综合| 一区二区高清免费观看影视大全| 3d成人动漫网站| 欧美老肥妇做.爰bbww| 成人h精品动漫一区二区三区| 亚洲一卡二卡三卡四卡| 亚洲国产美女搞黄色| 同产精品九九九| 免费高清在线一区| 日韩激情一区二区| 狠狠色丁香婷综合久久| 成人美女视频在线看| 色综合久久中文综合久久97| 在线观看日韩国产| 欧美一个色资源| 中文字幕欧美国产| 亚洲黄网站在线观看| 日韩黄色在线观看| 国产精品一区二区久久不卡 | 精品国产网站在线观看| 欧美精品一区在线观看| 国产精品―色哟哟| 一区二区三区丝袜| 日本女优在线视频一区二区| 国产一区视频在线看| 91天堂素人约啪| 日韩午夜av电影| 自拍偷自拍亚洲精品播放| 亚洲国产一二三| 国产成人免费xxxxxxxx| 97成人超碰视| 日韩精品一区二区三区在线| 国产精品女主播av| 免费不卡在线视频| 99久久精品国产一区| 欧美一区二区三区婷婷月色| 欧美激情中文字幕| 亚洲国产成人高清精品| 国产成人在线视频网址| 欧美日韩三级一区二区| 国产精品色噜噜| 久久99精品久久久久久动态图| 一区二区三区日韩欧美精品| 国产综合色在线视频区| 欧美三区在线观看| 国产午夜精品福利| 日本欧洲一区二区| 91国偷自产一区二区开放时间 |