




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
鍵盤接口技術(shù)獨(dú)立式鍵盤矩陣式鍵盤訓(xùn)練項(xiàng)目鍵盤由一組規(guī)則排列的按鍵組成,一個(gè)按鍵實(shí)際上是一個(gè)開(kāi)關(guān)元件。在單片機(jī)外圍電路中,通常用到的按鍵是機(jī)械觸點(diǎn)式彈性開(kāi)關(guān),其主要功能是把機(jī)械上的通斷轉(zhuǎn)換為電氣上的邏輯關(guān)系(1和0),當(dāng)開(kāi)關(guān)閉合(0)時(shí),線路導(dǎo)通,開(kāi)關(guān)斷開(kāi)(1)時(shí),線路斷開(kāi)。常見(jiàn)的鍵盤種類有獨(dú)立式鍵盤和矩陣式鍵盤。一、獨(dú)立式鍵盤1、獨(dú)立式鍵盤結(jié)構(gòu)鍵盤實(shí)際上是一組按鍵開(kāi)關(guān)的集合,平時(shí)按鍵開(kāi)關(guān)總是處于斷開(kāi)狀態(tài),當(dāng)按下鍵時(shí)它才閉合。每個(gè)按鍵單獨(dú)占用一根I/O口線,每個(gè)按鍵工作不會(huì)影響其他I/O口線的狀態(tài)。多用于所需鍵盤不多的場(chǎng)合。2、獨(dú)立式鍵盤接口結(jié)構(gòu)簡(jiǎn)單,每個(gè)按鍵接單片機(jī)的一條I/O線,通過(guò)對(duì)輸入線的查詢,可以識(shí)別每個(gè)按鍵的狀態(tài)。3、按鍵觸點(diǎn)的機(jī)械抖動(dòng)機(jī)械式按鍵在按下或釋放時(shí),由于機(jī)械彈性作用的影響,通常伴隨有一定時(shí)間的觸點(diǎn)機(jī)械抖動(dòng),然后其觸點(diǎn)才穩(wěn)定下來(lái)。抖動(dòng)時(shí)間的長(zhǎng)短與開(kāi)關(guān)的機(jī)械特性有關(guān),一般為5—10ms。4、消抖方法為了克服按鍵觸點(diǎn)機(jī)械抖動(dòng)所致的檢測(cè)誤判,必須采取去抖動(dòng)措施,可從硬件、軟件兩方面予以考慮。在鍵數(shù)較少時(shí),可采用硬件消抖;而當(dāng)鍵數(shù)較多時(shí),采用軟件消抖。①硬件消抖②軟件消抖軟件上采取的措施是在檢測(cè)到有按鍵按下時(shí),執(zhí)行一個(gè)10—20ms左右(具體時(shí)間應(yīng)視所使用的按鍵進(jìn)行調(diào)整)的延時(shí)程序,再確認(rèn)該鍵電平是否仍保持閉合狀態(tài)電平,若仍保持閉合狀態(tài)電平,則確認(rèn)該鍵處于閉合狀態(tài);同理,在檢測(cè)到該鍵釋放后,也應(yīng)采用相同的步驟進(jìn)行確認(rèn),從而消除抖動(dòng)的影響。二、矩陣式鍵盤1、矩陣式鍵盤結(jié)構(gòu)2、鍵盤掃描方式(1)掃描法
掃描法是在判定有鍵按下后逐列(或逐行)置低電平,同時(shí)讀入行(或列)的狀態(tài),如果行(或列)的狀態(tài)出現(xiàn)非全1狀態(tài),這時(shí)0狀態(tài)的行、列交點(diǎn)的鍵就是所按下的鍵。
掃描法需要逐列掃描查詢,當(dāng)被按下的鍵處于最后一列時(shí),則需要經(jīng)過(guò)多次掃描才能獲得此鍵所處的行列值
(a)將行線編程為輸入線,列線為輸出線,并使輸出線輸出為全零,行線變?yōu)榈碗娖降臑榘存I所在行。(b)將列線編程為輸入線,行線為輸出線,并使輸出線輸出為全零,列線變?yōu)榈碗娖降臑榘存I所在列。(a)線反轉(zhuǎn)法第一步(b)線反轉(zhuǎn)法第二步
(2)反轉(zhuǎn)法三、訓(xùn)練項(xiàng)目1、簡(jiǎn)易數(shù)字調(diào)節(jié)器(1)訓(xùn)練目的①了解獨(dú)立式鍵盤的結(jié)構(gòu)與工作原理。②掌握按鍵的檢測(cè)與軟件消抖方法。③學(xué)會(huì)通過(guò)獨(dú)立式按鍵操作設(shè)置參數(shù)的編程方法。(3)任務(wù)引導(dǎo)(2)訓(xùn)練任務(wù)本項(xiàng)目要完成的任務(wù)是設(shè)計(jì)一個(gè)簡(jiǎn)易數(shù)字調(diào)節(jié)器。用兩位數(shù)碼管顯示數(shù)值,變化范圍00—59。開(kāi)始時(shí)顯示00,每按下key1鍵一次,數(shù)值加1;每按下key2鍵一次,數(shù)值減1;每按下key3鍵一次,數(shù)值歸零;按下key4鍵一次,利用定時(shí)器功能使數(shù)值開(kāi)始自動(dòng)每秒加1,再次按下key4鍵,數(shù)值停止自動(dòng)加1,保持原來(lái)的數(shù)。Key1—key4鍵均采用獨(dú)立式按鍵。由獨(dú)立式鍵盤工作原理知,要通過(guò)四個(gè)按鍵實(shí)現(xiàn)不同的數(shù)字顯示,只需要依次檢測(cè)key1—key4鍵是否有鍵按下,若有,延時(shí)10—20ms消抖后再判斷是否有鍵按下,若確認(rèn)有,再轉(zhuǎn)去執(zhí)行相應(yīng)的按鍵動(dòng)作即可。(4)任務(wù)實(shí)施①硬件電路設(shè)計(jì)②軟件設(shè)計(jì)#include<reg52.h>//52系列單片機(jī)頭文件#include<stdio.h>//標(biāo)準(zhǔn)I/O庫(kù)函數(shù)頭文件#defineucharunsignedchar //宏定義#defineuintunsignedintucharcodeBitTab[]={0x7F,0xBF,0xDF,0xEF,0xF7,0xFB,0xFD,0xFE};//8字節(jié)位選碼ucharcodetable[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E,0xFF};//共陽(yáng)極0~F字段碼sbitkey1=P3^2;//定義按鍵sbitkey2=P3^3;sbitkey3=P3^4;sbitkey4=P3^5;ucharnumt0,num;voiddelayms(uintxms)//xms延時(shí)函數(shù){ uinti,j; for(i=xms;i>0;i--) for(j=110;j>0;j--);} voiddisplay(ucharnumdis) //顯示子函數(shù){ ucharshi,ge; //將要顯示的2位數(shù)分離成十位、個(gè)位 shi=numdis/10;//十位數(shù) ge=numdis%10;//個(gè)位數(shù) P0=table[shi]; //送十位數(shù)段選碼 P2=0x02; //送位選 delayms(5); //延時(shí) P2=0x00;//消隱 P0=table[ge]; //送個(gè)位數(shù)段選碼 P2=0x01;//送位選 delayms(5);//延時(shí) P2=0x00;//消隱}voidT0_init()//定時(shí)器T0初始化函數(shù){ TMOD=0x01; //設(shè)置定時(shí)器T0為工作方式1(00000001) TH0=(65536-50000)/256; //裝初值50ms中斷一次 TL0=(65536-50000)%256; EA=1; //開(kāi)總中斷 ET0=1; //開(kāi)定時(shí)器0中斷 }voidkeyscan()//鍵盤掃描子函數(shù){ if(key1==0) { delayms(10);//消抖 if(key1==0) { num++;//數(shù)值加1 if(num==60)//當(dāng)?shù)?0時(shí)重新歸0 num=0; while(!key1); //等待按鍵釋放 } } if(key2==0) { delayms(10);//消抖 if(key2==0) { if(num==0) //當(dāng)?shù)?時(shí)重新歸60 num=60; num--; //數(shù)值減1
while(!key2); } } if(key3==0) { delayms(10);//消抖 if(key3==0) { num=0;//數(shù)值歸0 while(!key3); } } if(key4==0) { delayms(10);//消抖 if(key4==0) { while(!key4);//等待按鍵釋放 TR0=~TR0; //啟動(dòng)或停止定時(shí)器T0 } }}voidmain(){ T0_init(); while(1) { keyscan(); display(num); }}voidT0_time()interrupt1//T0中斷服務(wù)函數(shù){ TH0=(65536-50000)/256; //重裝初值 TL0=(65536-50000)%256; numt0++; if(numt0==20) //如果中斷次數(shù)到20次,說(shuō)明1s時(shí)間到 { numt0=0; //numt0清0,
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 濮陽(yáng)科技職業(yè)學(xué)院《大數(shù)據(jù)統(tǒng)計(jì)模型實(shí)驗(yàn)》2023-2024學(xué)年第二學(xué)期期末試卷
- 喀什大學(xué)《數(shù)字影像工程》2023-2024學(xué)年第二學(xué)期期末試卷
- 安徽工業(yè)經(jīng)濟(jì)職業(yè)技術(shù)學(xué)院《流行音樂(lè)經(jīng)典作品分析(2)》2023-2024學(xué)年第二學(xué)期期末試卷
- 公章的管理制度
- 公司章程中內(nèi)控的內(nèi)容
- 公共交通線路調(diào)整管理制度
- 工程施工隊(duì)每周進(jìn)度計(jì)劃表格
- 頁(yè)巖磚砌體施工方案
- 【2025年二手房行業(yè)資訊:深圳周錄1812套再創(chuàng)新高】
- 江西省上饒市2024-2025學(xué)年高二上學(xué)期1月期末英語(yǔ)試題【含答案】
- 2024年山東新華書(shū)店集團(tuán)限公司臨沂市縣分公司招聘錄取人員(高頻重點(diǎn)提升專題訓(xùn)練)共500題附帶答案詳解
- 生活垃圾焚燒電廠鋼結(jié)構(gòu)施工方案
- (必會(huì))企業(yè)人力資源管理師(二級(jí))近年考試真題題庫(kù)(含答案解析)
- 企業(yè)解散清算公告模板
- (人衛(wèi)版第九版第十六章種植義齒)課件全新
- 2024年廊坊市財(cái)信投資集團(tuán)有限公司招聘筆試沖刺題(帶答案解析)
- 殼管式換熱器設(shè)計(jì)說(shuō)明書(shū)
- 以案促改整改方案整改目標(biāo)
- 2024年岳陽(yáng)職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)及答案解析
- (正式版)SHT 3224-2024 石油化工雨水監(jiān)控及事故排水儲(chǔ)存設(shè)施設(shè)計(jì)規(guī)范
- 2024年中考英語(yǔ)一般時(shí)態(tài)-一般現(xiàn)在時(shí)一般過(guò)去時(shí)一般將來(lái)時(shí)課件
評(píng)論
0/150
提交評(píng)論