4.5.1獨(dú)立按鍵控制_第1頁
4.5.1獨(dú)立按鍵控制_第2頁
4.5.1獨(dú)立按鍵控制_第3頁
4.5.1獨(dú)立按鍵控制_第4頁
4.5.1獨(dú)立按鍵控制_第5頁
已閱讀5頁,還剩19頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

獨(dú)立按鍵控制主講教師:呂世林《汽車單片機(jī)應(yīng)用技術(shù)》汽車智能技術(shù)專業(yè)教學(xué)資源庫1、會使用單片機(jī)讀取按鍵狀態(tài)的方法;2、會消除按鍵的抖動;3、掌握檢測按鍵狀態(tài)的方法。知識目標(biāo)1、能根據(jù)項(xiàng)目要求,進(jìn)行編程算法設(shè)計;2、能設(shè)計出按鍵與單片機(jī)連接的硬件電路;3、能完成按鍵檢測的程序設(shè)計;4、能實(shí)現(xiàn)按鍵去抖的硬件電路設(shè)計和軟件編程設(shè)計。能力目標(biāo)學(xué)習(xí)目標(biāo)任務(wù)初步訓(xùn)練獨(dú)立式按鍵實(shí)驗(yàn)。強(qiáng)化訓(xùn)練用獨(dú)立按鍵控制智能車雙閃燈。學(xué)習(xí)任務(wù)任務(wù)相關(guān)知識1、單片機(jī)按鍵及其檢測方法2、按鍵抖動及其消除鍵的抖動任務(wù)相關(guān)知識1、單片機(jī)按鍵及其檢測方法鍵盤由一組按鍵組成,一個按鍵實(shí)際上是一個開關(guān)元件。在單片機(jī)系統(tǒng)中實(shí)現(xiàn)向單片機(jī)輸入數(shù)據(jù)、傳送命令等功能,是人工干預(yù)單片機(jī)的主要手段。鍵盤分為非編碼鍵盤和編碼鍵盤,由軟件完成對按鍵閉合狀態(tài)識別的稱為非編碼鍵盤,由專用硬件實(shí)現(xiàn)對按鍵閉合狀態(tài)識別的稱為編碼鍵盤。非編碼鍵盤按鈕按組成結(jié)構(gòu)又可分為獨(dú)立式鍵盤和矩陣式鍵盤。任務(wù)相關(guān)知識(1)獨(dú)立式鍵盤結(jié)構(gòu)獨(dú)立式鍵盤相互獨(dú)立,每個按鍵占用一根I/O口線,每根I/O口線上的按鍵工作狀態(tài)不會影響其他按鍵的工作狀態(tài)。這種按鍵軟件程序簡單,但占用I/O口線較多(一根口線只能接一個鍵),適用于鍵盤應(yīng)用數(shù)量較少的系統(tǒng)中。任務(wù)相關(guān)知識1)獨(dú)立式按鍵的特點(diǎn)1.各按鍵相互獨(dú)立,電路配置靈活;2.按鍵數(shù)量較多時,I/O端線耗費(fèi)較多,電路結(jié)構(gòu)繁雜;3.軟件結(jié)構(gòu)簡單。獨(dú)立式按鍵適用于按鍵數(shù)量較少的場合。任務(wù)相關(guān)知識獨(dú)立式按鍵連接電路圖任務(wù)相關(guān)知識2)鍵盤輸入信息的主要過程1、當(dāng)單片機(jī)判斷是否有鍵按下。有鍵按下,再去處理鍵值程序2、確定按下的是哪一個鍵。3、把此步驟代表的信息翻譯成計算機(jī)所能識別的代碼,如ASCII或其它特征碼。任務(wù)相關(guān)知識(2)按鍵抖動及其消除鍵的抖動由于按鍵為機(jī)械開關(guān)結(jié)構(gòu),因此機(jī)械觸點(diǎn)的彈性及電壓突跳等原因,往往在觸點(diǎn)閉合或斷開的瞬間會出現(xiàn)電壓抖動,如圖所示由于電壓抖動造成一次按鍵多次處理的現(xiàn)象就稱為按鍵抖動。按鍵閉合和釋放時的電壓抖動任務(wù)相關(guān)知識由那么怎樣消除這種按鍵抖動呢?最常用的方法為軟件延時消抖法。具體方法為:當(dāng)檢測到按鍵按下后,執(zhí)行延時10ms子程序后再確認(rèn)該鍵是否確實(shí)按下,消除抖動影響。在第一次檢測到有鍵按下時,執(zhí)行一段延時10ms的子程序,之后,再次檢測該鍵的電平狀態(tài),如果該鍵電平仍保持閉合狀態(tài),則確認(rèn)為真正有鍵按下。否則,認(rèn)為無鍵按下;同理,在檢測到該鍵釋放后,也應(yīng)采用相同的步驟進(jìn)行確認(rèn),從而可消除抖動的影響。初步訓(xùn)練初步訓(xùn)練獨(dú)立式鍵盤實(shí)驗(yàn),具體要求為:單片機(jī)與8個獨(dú)立式按鍵連接,用一個數(shù)碼管顯示鍵值,當(dāng)按鍵按下時,數(shù)碼管顯示相應(yīng)的數(shù)字。任務(wù)分析:設(shè)S1~S2是安裝在車門內(nèi)的開關(guān),車門關(guān)閉時接高電平,車門打開時接低電平;K2是報不報警的選擇開關(guān),接P1.7,高電平報警,否則不報警;P1.0接蜂鳴器,需報警時,啟動蜂鳴器,否則關(guān)閉。當(dāng)K2設(shè)置在報警工作狀態(tài)時,有人打開車門是,K1接低電平觸發(fā)INT0中斷,P1.0輸出低電平,使蜂鳴器發(fā)聲報警。初步訓(xùn)練電路圖初步訓(xùn)練程序流程圖有鍵按下去抖動鍵被釋放去抖動

初步訓(xùn)練操作步驟1、把動態(tài)顯示區(qū)左邊的8P插槽連到最小單片機(jī)系統(tǒng)區(qū)P0端口的8P插槽,右邊的8P插槽連到P2端口的8P插槽,單片機(jī)的EA腳接+5V;2、獨(dú)立式鍵盤區(qū)8P插槽連到最小單片機(jī)系統(tǒng)P3端口的8P插槽;3、運(yùn)行KeilC51軟件,新建一個工程(如93C46),新建一個文件93c46.asm。將文件添加到工程中并編譯,如有錯,請更改直到編譯成功,如有錯,請更改直到編譯成功;4、用編程器將生成的HEX文件燒寫到單片機(jī)中,或用仿真器來執(zhí)行程序,將程序下載到仿真器中,具體方法請參考仿真器的使用一節(jié)。用編程器將生成的HEX文件燒寫到單片機(jī)中;5、運(yùn)行實(shí)驗(yàn)程序,觀察實(shí)驗(yàn)現(xiàn)象。初步訓(xùn)練參考程序ORG0000HAJMPSTARTORG0030HSTART:MOVP3,#0FFHMOVP2,#0FFHCLRP2.0MOVP0,#03HL0:JNBP3.0,L1JNBP3.1,L2JNBP3.2,L3JNBP3.3,L4JNBP3.4,L5JNBP3.5,L6JNBP3.6,L7JNBP3.7,L8AJMPL0L1:MOVP0,#9FHAJMPL0L2:MOVP0,#25HAJMPL0L3:MOVP0,#0DHAJMPL0L4:MOVP0,#99HAJMPL0L5:MOVP0,#49HAJMPL0L6:MOVP0,#41HAJMPL0L7:MOVP0,#1FHAJMPL0L8:MOVP0,#01HAJMPL0END強(qiáng)化訓(xùn)練強(qiáng)化訓(xùn)練用獨(dú)立按鍵控制智能車雙閃燈,該電路由兩部分組成,一部分是單片機(jī)最小系統(tǒng)電路,另一部分是P1.0口和P3.0口分別接1個LED燈,P2.0口接一個按鍵。模擬智能車雙閃燈,當(dāng)按鍵按下奇數(shù)次時,LED燈閃爍,當(dāng)按鍵按下偶數(shù)次時,燈熄滅。試設(shè)計硬件電路并編寫程序,實(shí)現(xiàn)以上功能。。任務(wù)分析:在系統(tǒng)斷電情況下,連接電路。用兩條連接線將單片機(jī)最小系統(tǒng)模塊的P1.0口和P3.0口與LED燈模塊連接起來,P2.0口與一個獨(dú)立按鍵相連接,將主機(jī)模塊的+5V電源、顯示模塊的+5V電源、按鍵模塊的+5V電源和電源模塊的+5V電源連接,同時將主機(jī)模塊、顯示模塊、按鍵模塊的GND和電源模塊的GND連接在一起。強(qiáng)化訓(xùn)練電路圖強(qiáng)化訓(xùn)練操作步驟1、按照設(shè)計的電路原理圖連接硬件電路;2、運(yùn)行KeilμVision4軟件,新建一個工程文件key_contrlo_doubleflash.uvproj,輸入并編輯源程序文件key_contrlo_doubleflash.c,并且編譯生成key_contrlo_doubleflash.hex文件;強(qiáng)化訓(xùn)練參考程序/*****************************************************************獨(dú)立按鍵控制智能車雙閃燈的任務(wù),以實(shí)現(xiàn)當(dāng)按鍵按下奇數(shù)次,燈閃爍,按下偶數(shù)次燈熄滅。********************************************************************/#include<REGX52.H>sbitkey1=P2^0; //按鍵接P2.0sbitd1=P1^0;//燈分別接P1.0和P3.0sbitd2=P3^0;unsignedcharnum=0;//num無符號字符型0~255 全局變量voiddelay(unsignedintz){ unsignedintx,y; //x,y局部變量 for(x=100;x>0;x--) for(y=z;y>0;y--);}voidkey() //按鍵檢測子函數(shù){ key1=1; if(key1==0) //檢測是否有鍵按下?”==”測試等 { delay(10); //軟件延時消抖 if(key1==0) //檢測是否有鍵按下? { num++; //按鍵按下次數(shù) } while(!key1); //松手檢測 }}voidmain(){ while(1) { key(); //調(diào)用按鍵檢測子函數(shù) if(num%2==1)//按鍵按下次數(shù)如果為奇數(shù)次,則燈閃爍; { d1=0; d2=0; delay(200); d1=1; d2=1; delay(200); } else //按鍵按下次數(shù)如果為偶數(shù)次,則燈熄滅 { d1=1; d2=1; } }}強(qiáng)化訓(xùn)練Peoteus仿真結(jié)果按鍵控制燈滅時按鍵控制燈亮?xí)r當(dāng)按鍵按下時,燈不亮;當(dāng)按鍵按下奇數(shù)次時,燈閃爍。訓(xùn)練習(xí)題1、鍵盤的分類

。2、獨(dú)立式鍵盤的特點(diǎn)有哪些?3、鍵盤檢測輸入信息的主要過程有哪些?4、按鍵抖動的消除方法有幾種?5、闡述獨(dú)立式按鍵的應(yīng)用場合及優(yōu)缺點(diǎn)?6、闡述按鍵去抖動的含義?訓(xùn)練習(xí)題答案1、鍵盤分為非編碼鍵盤和編碼鍵盤。2、1.各按鍵相互獨(dú)立,電路配置靈活;2.按鍵數(shù)量較多時,I/O端線耗費(fèi)較多,電路結(jié)構(gòu)繁雜;3.軟件結(jié)構(gòu)簡單。3、1、當(dāng)單片機(jī)判斷是否有鍵按下。有鍵按下,再去處理鍵值程序2、確定按下的是哪一個鍵。3、把此步驟代表的信息翻譯成計算機(jī)所能識別的代碼,如ASCII或其它特征碼。4、硬件消抖和軟件消抖5、獨(dú)立式按鍵適用于按鍵數(shù)量較少的場合。獨(dú)立按鍵式直接用I/O口線構(gòu)成的單個按鍵電路,其特點(diǎn)式每個按鍵單獨(dú)占用一根

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論