




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
項目3
按鍵識別的設計★知識目標:
1.掌握AT89S51單片機最小系統(tǒng)的組成及相關電路的工作原理;
2.掌握AT89S51單片機基本鍵盤接口電路的組成及按鍵識別方法?!锬芰δ繕耍?/p>
1.認識AT89S51單片機、晶體振蕩器、電阻、電容、按鍵,鍵盤等元器件。
2.會設計硬件去抖動電路,編寫軟件去抖動按鍵識別程序;
3.掌握矩陣鍵盤按鍵掃描程序,分支處理。在單片機應用系統(tǒng)中,鍵盤主要用于向計算機輸入數(shù)據(jù)、傳送命令等,是人工干預計算機的主要手段。鍵盤要通過接口與單片機相連,分為編碼鍵盤和非編碼鍵盤兩類。鍵盤上閉合鍵的識別由專用的硬件編碼器實現(xiàn),并產生鍵編碼號或鍵值的稱為編碼鍵盤,如計算機鍵盤。而靠軟件編程來識別的稱為非編碼鍵盤,在單片機組成的各種系統(tǒng)中,使用最廣泛的是非編碼鍵盤。當然,也有用到編碼鍵盤的。非編碼鍵盤有分為:獨立鍵盤和行列式(又稱為矩陣式)鍵盤。單鍵矩陣鍵盤讀P1口的按鍵狀態(tài),P2口以二進制記錄P1口的狀態(tài)變化次數(shù)。1.提出任務2.任務分析(1)硬件電路設計以8051單片機作為控制電路,按鍵連接至單片機的P1口,P2口外接8個采用共陽極連接方式的發(fā)光二極管(LED)和8個限流電阻,硬件電路原理圖所示。任務1:按鍵測試任務1:按鍵測試3.程序流程#include<STC_NEW_8051.H>#defineucharunsignedcharunsignedchari,j;voidmain(){j=0;//變化次數(shù)P2=0xff;//P2口燈全滅,燈滅表示為0,燈亮表示1i=P1;//讀P1口while(1){ if(i!=P1)//判斷P1口是否有變化 { j++;//有變化次數(shù)加1P2=~j;//次數(shù)在P2口顯示 i=P1;//重新記錄P1口的狀態(tài) }
}}Lesson369-lesskey11在鍵盤的軟件設計中還要注意按鍵的去抖動問題。由于按鍵一般是由機械式觸點構成的,在按鍵按下和斷開的瞬間均有一個抖動過程,時間大約為5ms~10ms,可能會造成單片機對按鍵的誤識別。
物理按鍵抖動波形圖按鍵消抖一般有兩種方法,即硬件消抖和軟件消抖。硬件消抖方法在軟件設計中,當單片機檢測到有鍵按下時,可以先延時一段時間越過抖動過程再對按鍵識別。實際應用中,一般希望按鍵一次按下單片機只處理一次,但由于單片機執(zhí)行程序的速度很快,按鍵一次按下可能被單片機多次處理。為避免此問題,可在按鍵第一次按下時延時10ms之后再次檢測按鍵是否按下,如果此時按鍵仍然按下,則確定有按鍵輸入。這樣便可以避免按鍵的重復處理。軟件消抖方法任務2
單鍵控制LED的設計軟件消抖流程圖任務2
單鍵控制LED的設計用單鍵(即獨立鍵盤中的按鍵)實現(xiàn)對LED進行控制,每按一次按鍵時,LED方式變化一次,用以表示按鍵控制的結果。1.提出任務2.任務分析(1)硬件電路設計以8051單片機作為控制電路,按鍵連接至單片機的P1.4引腳,另一端接地,P2.0口外接1個采用共陽極連接方式的發(fā)光二極管(LED)和1個限流電阻,硬件電路原理圖所示。任務2
單鍵控制LED的設計任務2
單鍵控制LED的設計軟件消抖流程圖#include<reg51.h>#defineucharunsignedcharvoiddelay(uchar);sbitp14=P1^4;//定義位sbitp20=P2^0;main(){p20=0;//P2.0初始狀態(tài)燈亮while(1){if(p14==0)//判斷是否按鍵{delay(2);//延時20MS,去抖動if(p14==0)//確認有鍵按下 {p20=~p20;//指示燈狀態(tài)取反while(!p14);//等待按鍵釋放 }}}}/*延時子程序*/voiddelay(uchark){ucharx,y,z;for(x=k;x>0;x--)for(y=20;y>0;y--)for(z=250;z>0;z--);}Lesson3-lessonkey12思考題:1.用P2口指示燈記錄P14復位鍵,按鍵的次數(shù)任務2多路按鍵狀態(tài)指示的設計
知識鏈接一、矩陣式鍵盤1.結構和工作原理當輸入部分有多個按鍵時,若仍然采用獨立鍵盤,必然會占用大量的I/O口,采用矩陣鍵盤是一種比較節(jié)省資源的方法。矩陣式鍵盤又稱行列式鍵盤,往往用于按鍵數(shù)量較多的場合。矩陣式鍵盤的按鍵設置在行與列的交點上。任務3
多路按鍵狀態(tài)指示的設計一般矩陣鍵盤的連接示意圖任務2多路按鍵狀態(tài)指示的設計2.按鍵的識別A)行(列)掃描法。(1)先將全部列線置為低電平,然后通過行線接口讀取行線電平,判斷鍵盤中是否有按鍵被按下。(2)判斷閉合鍵的具體位置。在確認鍵盤中有按鍵被按下后,依次將列線置為低電平,再逐行檢測各行的電平狀態(tài)。若某行為低電平,則該行與置為低電平的列線相交處的按鍵即為閉合按鍵。(3)綜合上述兩步的結果,即可確定出閉合鍵所在的行和列,從而識別出所按下的鍵。B)反轉法:
1)行輸入、列輸出,將列輸出端全置為0,
通過接口讀取行線電平,判斷行的位置
2)列輸入、行輸出,將行輸出端全置為0,通過接口讀取列線電平,判斷列的位置綜合兩步獲取按鍵號。任務2多路按鍵狀態(tài)指示的設計任務2多路按鍵狀態(tài)指示的設計3.矩陣式鍵盤的軟件設計無論采用哪種方式,都要編制相應的鍵盤掃描程序。在鍵盤掃描程序中一般要完成以下幾個功能:(1)判斷鍵盤上有無按鍵按下;(2)去鍵的機械抖動影響;(3)求所按鍵的鍵號;(4)轉向鍵處理程序。任務2多路按鍵狀態(tài)指示的設計按鍵識別程序流程圖任務3
多路按鍵狀態(tài)指示的設計用8051單片機及LED數(shù)碼管實現(xiàn)對鍵盤鍵值的實現(xiàn)。當按下鍵盤中不同按鍵時,用LED燈顯示不同的鍵值。
1.提出任務任務2多路按鍵狀態(tài)指示的設計2.任務分析(1)硬件電路設計本設計采用8051單片機最小系統(tǒng),P1口外接矩陣式鍵盤接口電路,P2口外接8個共陽發(fā)光二極管。任務2多路按鍵狀態(tài)指示的設計鍵盤鍵值顯示電路圖任務3多路按鍵狀態(tài)指示的設計3.源程序編寫ucharkeyscan()//鍵盤反轉掃描{uchari,scan1,scan2,keycode;P1=0xf0;//行線設為低低平scan1=P1;//讀P1口if((scan1&0xf0)!=0xf0)//判斷是否有按鍵{delay(2);//延時
scan1=P1;if((scan1&0xf0)!=0xf0)//再次判斷{ P1=0x0f;//列線設為低電平 scan2=P1; keycode=scan1|scan2;//組合成鍵編碼 for(i=0;i<16;i++) { if(keycode==keytable[i]) {key=i;//查表得鍵值 return(i);//返回鍵值 }}}}else{return(16)}}voiddelay(uchark){ucharx,y,z;for(x=k;x>0;x--)for(y=20;y>0;y--)for(z=250;z>0;z--);}
/*延時20ms*/任務3多路按鍵狀態(tài)指示的設計3.源程序編寫//#include<reg51.h>#include<STC_NEW_8051.H>#defineucharunsignedcharvoiddelay(uchar);ucharkeyscan();ucharcodekeytable[]={0xee,0xed,0xeb,0xe7,0xde,0xdd,0xdb,0xd7,0xbe,0xbd,0xbb,0xb7,0x7e,0x7d,0x7b,0x77,0xff};ucharkey;main(){while(1){
key=keyscan();if(key!=16)
//顯示二進制鍵值P2=~key;elseP2=0xff;
//無按鍵不顯示} }任務3
多路按鍵狀態(tài)指示的設計二、函數(shù)的返回值
函數(shù)的值是指函數(shù)被調用之后,執(zhí)行函數(shù)體中的程序段所取得的并返回給主調函數(shù)的值。對函數(shù)返回值有以下一些說明:
函數(shù)的值只能通過return語句返回主調函數(shù)。
return語句的一般形式為:
return表達式;
或者為:
return(表達式);
該語句的功能是計算表達式的值,并返回給主調函數(shù)。在函數(shù)中允許有多個return語句,但每次調用只能有一個return語句被執(zhí)行,因此只能返回一個函數(shù)值。
任務3
多路按鍵狀態(tài)指示的設計函數(shù)值的類型和函數(shù)定義中函數(shù)的類型應保持一致。如果兩者不一致,則以函數(shù)類型為準,自動進行類型轉換。
如函數(shù)值為整型,在函數(shù)定義時可以省去類型說明。
不返回函數(shù)值的函數(shù),可以明確定義為“空類型”,類型說明符為“void”。如:
voids(intn){……}一旦函數(shù)被定義為
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年植物促生菌劑項目合作計劃書
- 2025屆黑龍江龍東高中十校聯(lián)盟高三下學期2月適應性考試生物試題及答案
- 2024重慶鐵路綜合交通樞紐有限公司招聘12人筆試參考題庫附帶答案詳解
- 迪拜農產品(果蔬)市場前景及行業(yè)趨勢分析報告
- 2024湖北恩施市福牛物業(yè)有限公司補招湖北硒恩城市建設集團有限公司下屬子公司人員筆試參考題庫附帶答案詳解
- 廣東省梅州市2025屆高三一?;瘜W試卷(原卷版+解析版)
- 2025至2031年中國廣味白醋行業(yè)投資前景及策略咨詢研究報告
- 2025至2030年中國自動無功補償裝置數(shù)據(jù)監(jiān)測研究報告
- 2025至2031年中國雨裝行業(yè)投資前景及策略咨詢研究報告
- 2025至2031年中國空心砌塊液壓成型機行業(yè)投資前景及策略咨詢研究報告
- 神華陜西國華錦界電廠三期工程環(huán)評報告
- 飛行員航空知識手冊
- TY/T 2001-2015國民體質測試器材通用要求
- GB/Z 19848-2005液壓元件從制造到安裝達到和控制清潔度的指南
- GB/T 34936-2017光伏發(fā)電站匯流箱技術要求
- GB/T 12618.4-2006開口型平圓頭抽芯鉚釘51級
- 紅金大氣商務風領導歡迎會PPT通用模板
- 學前教育學00383-歷年真題-試卷
- 第二章農業(yè)信息采集與處理課件
- 規(guī)劃建筑設計任務書模板
- 淡馬錫模式解讀匯總課件
評論
0/150
提交評論