




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
項(xiàng)目3
按鍵識(shí)別的設(shè)計(jì)★知識(shí)目標(biāo):
1.掌握AT89S51單片機(jī)最小系統(tǒng)的組成及相關(guān)電路的工作原理;
2.掌握AT89S51單片機(jī)基本鍵盤接口電路的組成及按鍵識(shí)別方法?!锬芰δ繕?biāo):
1.認(rèn)識(shí)AT89S51單片機(jī)、晶體振蕩器、電阻、電容、按鍵,鍵盤等元器件。
2.會(huì)設(shè)計(jì)硬件去抖動(dòng)電路,編寫軟件去抖動(dòng)按鍵識(shí)別程序;
3.掌握矩陣鍵盤按鍵掃描程序,分支處理。在單片機(jī)應(yīng)用系統(tǒng)中,鍵盤主要用于向計(jì)算機(jī)輸入數(shù)據(jù)、傳送命令等,是人工干預(yù)計(jì)算機(jī)的主要手段。鍵盤要通過(guò)接口與單片機(jī)相連,分為編碼鍵盤和非編碼鍵盤兩類。鍵盤上閉合鍵的識(shí)別由專用的硬件編碼器實(shí)現(xiàn),并產(chǎn)生鍵編碼號(hào)或鍵值的稱為編碼鍵盤,如計(jì)算機(jī)鍵盤。而靠軟件編程來(lái)識(shí)別的稱為非編碼鍵盤,在單片機(jī)組成的各種系統(tǒng)中,使用最廣泛的是非編碼鍵盤。當(dāng)然,也有用到編碼鍵盤的。非編碼鍵盤有分為:獨(dú)立鍵盤和行列式(又稱為矩陣式)鍵盤。單鍵矩陣鍵盤讀P1口的按鍵狀態(tài),P2口以二進(jìn)制記錄P1口的狀態(tài)變化次數(shù)。1.提出任務(wù)2.任務(wù)分析(1)硬件電路設(shè)計(jì)以8051單片機(jī)作為控制電路,按鍵連接至單片機(jī)的P1口,P2口外接8個(gè)采用共陽(yáng)極連接方式的發(fā)光二極管(LED)和8個(gè)限流電阻,硬件電路原理圖所示。任務(wù)1:按鍵測(cè)試任務(wù)1:按鍵測(cè)試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在鍵盤的軟件設(shè)計(jì)中還要注意按鍵的去抖動(dòng)問(wèn)題。由于按鍵一般是由機(jī)械式觸點(diǎn)構(gòu)成的,在按鍵按下和斷開的瞬間均有一個(gè)抖動(dòng)過(guò)程,時(shí)間大約為5ms~10ms,可能會(huì)造成單片機(jī)對(duì)按鍵的誤識(shí)別。
物理按鍵抖動(dòng)波形圖按鍵消抖一般有兩種方法,即硬件消抖和軟件消抖。硬件消抖方法在軟件設(shè)計(jì)中,當(dāng)單片機(jī)檢測(cè)到有鍵按下時(shí),可以先延時(shí)一段時(shí)間越過(guò)抖動(dòng)過(guò)程再對(duì)按鍵識(shí)別。實(shí)際應(yīng)用中,一般希望按鍵一次按下單片機(jī)只處理一次,但由于單片機(jī)執(zhí)行程序的速度很快,按鍵一次按下可能被單片機(jī)多次處理。為避免此問(wèn)題,可在按鍵第一次按下時(shí)延時(shí)10ms之后再次檢測(cè)按鍵是否按下,如果此時(shí)按鍵仍然按下,則確定有按鍵輸入。這樣便可以避免按鍵的重復(fù)處理。軟件消抖方法任務(wù)2
單鍵控制LED的設(shè)計(jì)軟件消抖流程圖任務(wù)2
單鍵控制LED的設(shè)計(jì)用單鍵(即獨(dú)立鍵盤中的按鍵)實(shí)現(xiàn)對(duì)LED進(jìn)行控制,每按一次按鍵時(shí),LED方式變化一次,用以表示按鍵控制的結(jié)果。1.提出任務(wù)2.任務(wù)分析(1)硬件電路設(shè)計(jì)以8051單片機(jī)作為控制電路,按鍵連接至單片機(jī)的P1.4引腳,另一端接地,P2.0口外接1個(gè)采用共陽(yáng)極連接方式的發(fā)光二極管(LED)和1個(gè)限流電阻,硬件電路原理圖所示。任務(wù)2
單鍵控制LED的設(shè)計(jì)任務(wù)2
單鍵控制LED的設(shè)計(jì)軟件消抖流程圖#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);//延時(shí)20MS,去抖動(dòng)if(p14==0)//確認(rèn)有鍵按下 {p20=~p20;//指示燈狀態(tài)取反while(!p14);//等待按鍵釋放 }}}}/*延時(shí)子程序*/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復(fù)位鍵,按鍵的次數(shù)任務(wù)2多路按鍵狀態(tài)指示的設(shè)計(jì)
知識(shí)鏈接一、矩陣式鍵盤1.結(jié)構(gòu)和工作原理當(dāng)輸入部分有多個(gè)按鍵時(shí),若仍然采用獨(dú)立鍵盤,必然會(huì)占用大量的I/O口,采用矩陣鍵盤是一種比較節(jié)省資源的方法。矩陣式鍵盤又稱行列式鍵盤,往往用于按鍵數(shù)量較多的場(chǎng)合。矩陣式鍵盤的按鍵設(shè)置在行與列的交點(diǎn)上。任務(wù)3
多路按鍵狀態(tài)指示的設(shè)計(jì)一般矩陣鍵盤的連接示意圖任務(wù)2多路按鍵狀態(tài)指示的設(shè)計(jì)2.按鍵的識(shí)別A)行(列)掃描法。(1)先將全部列線置為低電平,然后通過(guò)行線接口讀取行線電平,判斷鍵盤中是否有按鍵被按下。(2)判斷閉合鍵的具體位置。在確認(rèn)鍵盤中有按鍵被按下后,依次將列線置為低電平,再逐行檢測(cè)各行的電平狀態(tài)。若某行為低電平,則該行與置為低電平的列線相交處的按鍵即為閉合按鍵。(3)綜合上述兩步的結(jié)果,即可確定出閉合鍵所在的行和列,從而識(shí)別出所按下的鍵。B)反轉(zhuǎn)法:
1)行輸入、列輸出,將列輸出端全置為0,
通過(guò)接口讀取行線電平,判斷行的位置
2)列輸入、行輸出,將行輸出端全置為0,通過(guò)接口讀取列線電平,判斷列的位置綜合兩步獲取按鍵號(hào)。任務(wù)2多路按鍵狀態(tài)指示的設(shè)計(jì)任務(wù)2多路按鍵狀態(tài)指示的設(shè)計(jì)3.矩陣式鍵盤的軟件設(shè)計(jì)無(wú)論采用哪種方式,都要編制相應(yīng)的鍵盤掃描程序。在鍵盤掃描程序中一般要完成以下幾個(gè)功能:(1)判斷鍵盤上有無(wú)按鍵按下;(2)去鍵的機(jī)械抖動(dòng)影響;(3)求所按鍵的鍵號(hào);(4)轉(zhuǎn)向鍵處理程序。任務(wù)2多路按鍵狀態(tài)指示的設(shè)計(jì)按鍵識(shí)別程序流程圖任務(wù)3
多路按鍵狀態(tài)指示的設(shè)計(jì)用8051單片機(jī)及LED數(shù)碼管實(shí)現(xiàn)對(duì)鍵盤鍵值的實(shí)現(xiàn)。當(dāng)按下鍵盤中不同按鍵時(shí),用LED燈顯示不同的鍵值。
1.提出任務(wù)任務(wù)2多路按鍵狀態(tài)指示的設(shè)計(jì)2.任務(wù)分析(1)硬件電路設(shè)計(jì)本設(shè)計(jì)采用8051單片機(jī)最小系統(tǒng),P1口外接矩陣式鍵盤接口電路,P2口外接8個(gè)共陽(yáng)發(fā)光二極管。任務(wù)2多路按鍵狀態(tài)指示的設(shè)計(jì)鍵盤鍵值顯示電路圖任務(wù)3多路按鍵狀態(tài)指示的設(shè)計(jì)3.源程序編寫ucharkeyscan()//鍵盤反轉(zhuǎn)掃描{uchari,scan1,scan2,keycode;P1=0xf0;//行線設(shè)為低低平scan1=P1;//讀P1口if((scan1&0xf0)!=0xf0)//判斷是否有按鍵{delay(2);//延時(shí)
scan1=P1;if((scan1&0xf0)!=0xf0)//再次判斷{ P1=0x0f;//列線設(shè)為低電平 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--);}
/*延時(shí)20ms*/任務(wù)3多路按鍵狀態(tài)指示的設(shè)計(jì)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)
//顯示二進(jìn)制鍵值P2=~key;elseP2=0xff;
//無(wú)按鍵不顯示} }任務(wù)3
多路按鍵狀態(tài)指示的設(shè)計(jì)二、函數(shù)的返回值
函數(shù)的值是指函數(shù)被調(diào)用之后,執(zhí)行函數(shù)體中的程序段所取得的并返回給主調(diào)函數(shù)的值。對(duì)函數(shù)返回值有以下一些說(shuō)明:
函數(shù)的值只能通過(guò)return語(yǔ)句返回主調(diào)函數(shù)。
return語(yǔ)句的一般形式為:
return表達(dá)式;
或者為:
return(表達(dá)式);
該語(yǔ)句的功能是計(jì)算表達(dá)式的值,并返回給主調(diào)函數(shù)。在函數(shù)中允許有多個(gè)return語(yǔ)句,但每次調(diào)用只能有一個(gè)return語(yǔ)句被執(zhí)行,因此只能返回一個(gè)函數(shù)值。
任務(wù)3
多路按鍵狀態(tài)指示的設(shè)計(jì)函數(shù)值的類型和函數(shù)定義中函數(shù)的類型應(yīng)保持一致。如果兩者不一致,則以函數(shù)類型為準(zhǔn),自動(dòng)進(jìn)行類型轉(zhuǎn)換。
如函數(shù)值為整型,在函數(shù)定義時(shí)可以省去類型說(shuō)明。
不返回函數(shù)值的函數(shù),可以明確定義為“空類型”,類型說(shuō)明符為“void”。如:
voids(intn){……}一旦函數(shù)被定義為
溫馨提示
- 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 手術(shù)室感染管理制度及職責(zé)
- 婦產(chǎn)科門診護(hù)士崗位職責(zé)
- 2025小學(xué)數(shù)學(xué)教材使用教學(xué)計(jì)劃
- 教育管理干部教師培訓(xùn)心得體會(huì)
- 信息技術(shù)教研組實(shí)訓(xùn)基地建設(shè)計(jì)劃
- 醫(yī)院檢驗(yàn)科實(shí)驗(yàn)室安全管理制度和流程
- 學(xué)校食堂員工崗位職責(zé)一覽
- 學(xué)校食堂安全檢查三防措施
- 邊坡錨索施工專項(xiàng)進(jìn)度計(jì)劃
- 學(xué)校社團(tuán)活動(dòng)統(tǒng)計(jì)業(yè)務(wù)工作流程
- 2025年綏化市中考化學(xué)試題卷(含答案解析)
- GB/T 45719-2025半導(dǎo)體器件金屬氧化物半導(dǎo)體(MOS)晶體管的熱載流子試驗(yàn)
- 寶媽日常心理護(hù)理
- 2025年社會(huì)學(xué)概論測(cè)試題含答案(附解析)
- 2025-2030年環(huán)境工程產(chǎn)業(yè)深度調(diào)研及發(fā)展趨勢(shì)與投資戰(zhàn)略研究報(bào)告
- 2025年事業(yè)單位公開招聘考試(E類)《綜合應(yīng)用能力西醫(yī)臨床》試卷真題及完整解析
- 保險(xiǎn)公司保單管理制度
- 2025年中國(guó)AI翻譯行業(yè)市場(chǎng)全景分析及前景機(jī)遇研判報(bào)告
- 2025-2030中國(guó)酶聯(lián)免疫吸附測(cè)定(ELISA)行業(yè)市場(chǎng)發(fā)展趨勢(shì)與前景展望戰(zhàn)略研究報(bào)告
- 2025年內(nèi)蒙古眾達(dá)人力資源公司招聘題庫(kù)帶答案分析
- 水利工程隱患排查課件
評(píng)論
0/150
提交評(píng)論