




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、電路組成包括電源、上拉電阻、按鍵、接地組成,按下前,檢測引腳高電平,按下后檢測引腳低電平。VCCVCCGND(b)如圖1 ( b),理想條件下,按鍵未按下,在檢測I/O端口是高電平,按下以后,檢測I/O端口是低電實驗三基于MCS-51單片機的獨立按鍵和矩陣按鍵檢測實驗一、支撐課程目標目標1:掌握微機和單片機的基本原理、編程技術、中斷技術、系統擴展、定時器、串行接口和其他輸入/輸出接口技 術,并且了解典型的單片機應用系統的設計思想和實現方法。目標2:初步具備自行擬定實驗步驟、檢查和故障排除、分析和綜合實驗結果以及撰寫實驗報告的能力。目標4:掌 握MCS-51單片機/STM32F103單片機系統仿
2、真工具和仿真流程,了解常用實驗儀器、設備的基本工作原理,了解其正確使用 方法,具備利用電子儀器設備和專業仿真軟件對復雜工程問題進行分析和設計的能力。二、實驗類型:驗證型()、設計型(J )、研究創新型()三、預期學生學習的成果1、具有典型按鍵檢測電路原理及消除抖動的必要性的認知。2、理解程序設計消除抖動的實現過程。3、掌握獨立按鍵的程序查詢檢測編程實現。4、掌握獨立按鍵的中斷檢測編程實現。5、理解矩陣鍵盤的行列掃描檢測原理,具有矩陣鍵盤軟硬件設計綜合能力。四、實驗原理1、典型按鍵檢測電路典型的按鍵檢測電路具備檢測按鍵的條件:無檢測引腳處在鍵按下前和后,要有電平變化,否則按鍵法檢測。電阻防止按下
3、電源短路,如圖1(3)。圖1按鍵典型電路及對應檢測電壓2、按鍵抖動及消除0)1(c),檢測電壓出現“毛刺”抖動,假平,手松后,按鍵彈起,檢測I/O端口是高電平。整個按鍵過程出現高電平到低電平又到高電平,有下降 沿,也有上升沿。實際過程中,由于人手的抖動,檢測端電壓如圖 設單片機檢測高電平閾值為VH,低電平閾值為VL, 次按鍵就會岀現多次高電平到低電平變化,存在按鍵誤檢測可能。常用 消除辦法之一:一旦檢測到低電平,延遲u毫秒,u選擇大于20,再次判斷檢測端是否是低電平,如果是,就判定為1次 按鍵。通過延時來避開跳變過程。3、矩陣按鍵的行列掃描法原理4*4矩陣鍵盤,Y0-Y3為行線,Y4-Y7為列
4、線,如圖2所示。0123圖2矩陣鍵盤原理圖行掃描法鍵盤掃描過程:由于MCS -51單片機I/O引腳(除P0 口)都會配置成上拉形式,所以在矩陣鍵盤部分不需要上拉電阻。判斷鍵盤中 有無鍵按下及按下鍵所在列的位置:將全部行線Y0-Y3置高電平,列線Y4-Y7置低電平,然后檢測列線的狀態。若所有行線 均為高電平,則鍵盤中無鍵按下。只要有一行的電平為低,則表示鍵盤該行有一個或多個鍵被按下。判斷閉合鍵所在列的位置:在確認有鍵按下后,即可進入確定具體閉合鍵的位置在哪行。其方法是:將全部行線Y0-Y3 置高電平、列線Y4-Y7逐行置低電平、然后檢測行線的狀態,只要有一行的電平為低,則表示鍵盤該行與對應置低列
5、交叉鍵被 按下。五、實驗內容及步驟(一)實驗內容1、利用Proteus軟件繪制MCS-51單片機最小系統,1位數碼管控制電路,2個按鍵檢測電路(1個中斷按鍵,1 個查詢按鍵)。2、編寫程序,利用程序查詢和中斷形式分別對按鍵次數進行計數,按鍵需要消除抖動,利用1位數碼管顯示按鍵次數。3、利用Proteus軟件繪制MCS-51單片機最小系統,1位數碼管控制電路,4*4矩陣按鍵電路。4、編寫程序,利用矩陣按鍵的行列掃描原理,實現按鍵的檢測,數碼管顯示鍵值。5、擴展利用其它方法對矩陣鍵盤按鍵鍵值進行檢測。(二)實驗步驟(1)獨立按鍵檢測及鍵數數碼管顯示 、典型按鍵電路可以連接在一般I/O端口上,也可以
6、連接在具有外部中斷的I/O引腳上。當采用 程序查詢方式檢 測時,都可以。在采用外部中斷檢測時,只能連接在P3.2或P3.3引腳上。利用Proteus軟件繪制電路原理圖,參考如圖3 所示,單片機最小系統,由于I/O 口(非P0 口)內置有上拉電阻,所以按鍵不再添加上拉電阻和外置電源,利用數碼管顯示 鍵值。兩個檢測按鍵分別接在P1.2和P3.3分別測試程序查詢和外部中斷檢測按鍵。搭建好硬件電路,以備測試軟件。 、在Keil軟件下,建立工程,編寫源文件,對于P1.2引腳采用程序查詢方式檢測按鍵,P3.3引腳按鍵采用中 斷方式檢測。 、程序編譯,生成Hex文件,嵌入到Proteus軟件單片機里,晶體振
7、蕩器12M,運行軟件仿真,觀察仿真現象。(2)矩陣按鍵檢測及鍵值數碼管顯示、在Proteus軟件下繪制電路原理圖,利用數碼管顯示鍵值。4*4矩陣鍵盤連接在P1端口的8個引腳上。由于P1端口內部每 個引腳都有上拉電路,所以檢測引腳可以不配置上拉電路。如果連接在P0端口上,需要連接上拉電路。 、在Keil軟件下,建立工程,編寫源文件,矩陣鍵盤采用程序查詢方式檢測按鍵,鍵值依次0-9 , A, B, C, D, E, Fo 、程序編譯,生成Hex文件,嵌入到Proteus軟件單片機里,晶體振蕩器12M,運行軟件仿真,觀察仿真現象。 不同的按鍵對應的鍵值可以根據個人需要設定對應鍵值。注意程序中需要消除
8、按鍵的抖動。六、擴展實驗1、2個按鍵同時連接,分別在一個程序里采用查詢和中斷方式檢測按鍵,比較按鍵檢測的響應靈敏度。2、矩陣按鍵檢測,采用線翻轉等其他方式檢測。七、實驗結果(1)獨立按鍵檢測及鍵數數碼管顯示 、典型按鍵電路可以連接在一般I/O端口上,也可以連接在具有外部中斷的I/O引腳上。當采用 程序查詢方式檢 測時,都可以。在采用外部中斷檢測時,只能連接在P3.2或P3.3引腳上。利用Proteus軟件繪制電路原理圖,參考如圖3 所示,單片機最小系統,由于I/O 口(非P0 口)內置有上拉電阻,所以按鍵不再添加上拉電阻和外置電源,利用數碼管顯示 鍵值。兩個檢測按鍵分別接在P1.2和P3.3分
9、別測試程序查詢和外部中斷檢測按鍵。搭建好硬件電路,以備測試軟件。 、在Keil軟件下,建立工程,編寫源文件,對于P1.2引腳采用程序查詢方式檢測按鍵,P3.3引腳按鍵采用中 斷方式檢測。 、程序編譯,生成Hex文件,嵌入到Proteus軟件單片機里,晶體振蕩器12M,運行軟件仿真,觀察仿真現象。Keil #include#define uchar unsigned charuchar seg = OxcO, 0 xf9, 0 xa4, OxbO, 0 x99, 0 x92, 0 x82, 0 xf8, 0 x80, 0 x90, 0 x88, 0 x83, 0 xc6, Oxal, 0 x86
10、, 0 x8e ; uchari 二0;sbit KEY二P2; / void delavms(int ms)(int m;while(ms 一一) for(mO:m9)i=0;:return i;void main(void)EA=1;開中斷總開尖IT1二1; /下降沿觸發P2=seg0;while(1)int a;a=keyscan();P2=sega;void intl(void) interrupt 2 using 0 (i+;if(i9)i 二0;P2 二 segi;EX1=1;外部中斷請求1X X(2)矩陣按鍵檢測及鍵值數碼管顯示 、在Proteus軟件下繪制電路原理圖,利用數碼管
11、顯示鍵值。4*4矩陣鍵盤連接在P1端口的8個引腳上。由于 P1端口內部每個引腳都有上拉電路,所以檢測引腳可以不配置上拉電路。如果連接在P0端口上,需要連接上拉電路。 、在Keil軟件下,建立工程,編寫源文件,矩陣鍵盤采用程序查詢方式檢測按鍵,鍵值依次0-9 , A, B,C, D, E, Fo 、程序編譯,生成Hex文件,嵌入到Proteus軟件單片機里,晶體振蕩器12M,運行軟件仿真,觀察仿真現象。 不同的按鍵對應的鍵值可以根據個人需要設定對應鍵值。注意程序中需要消除按鍵的抖動。Keil#includedefine uchar unsigned char#define uint unsign
12、ed intunsigned char seg = 0 xc0, 0 xf9, 0 xa4, OxbO, 0 x99, 0 x92, 0 x82, 0 xf8, 0 x80, 0 x90, 0 x88, 0 x83, 0 xc6, Oxal, 0 x86, 0 x8e;Proteusvoid delayms(unsigned int z);uchar keyscan(void);void main(void)uchar key;while(l)(key二keyscan () -1;PO=segkey;void delayms(unsigned int ms)int i;while(ms -)
13、for(i=123;i0;i -);)uchar keyscan(void)uchar scode, scodel, scode2, k;Pl二OxfO;scodel二Pl&OxfO;if (scodel!=0 xf0)delavms(10); scodel二Pl&OxfO;if (scodel!=0 xf0)scodel 二Pl/OxfO;列號Pl=0 x0f;A行號scode2二Pl OxOf:鍵值scode=scodel|scode2;switch(scode)case 0 x11: k二1;break; case 0 x12: k二2;break;case 0 x14: k=3;bre
14、ak;case 0 x18: k二4;break;case 0 x21: k=5;break;case 0 x22: k=6;break;case 0 x24: k二7;break;case 0 x28: k二8;break;case 0 x41: k二9;break;case 0 x42: k二10;break;case 0 x44: k=ll;break;case 0 x48: k二12;break;case 0 x81: k=13;break;case 0 x82: k=14;break;case 0 x84: k二15;break;case 0 x88: k二16;break; def
15、ault: k=0;break;return k;0円弓 Souro Grwp 1nMTVP.Ml.XS2.Obes tll oa 實鯊W. Wltfc* - 0 KxrMiBii 0 oiaiAgiBNAV Mif icoltv41423rr3)34J5Mwltv41423rr丄Proteus八、實驗分析(1)獨立按鍵檢測及鍵數數碼管顯示Inti (P3.3 口)選為下降沿觸發方式,由于每個機器周期采樣中斷請求信號一次,所以,中斷請求信號的高電平和低電平的持續時間必須保持一個機器周期以上。掃描函數uchar keyscan (void) 一開始delayms (10 ),出現數碼管Ii left I code pVWXTOR50 AlRFfi混亂,中斷檢測正常,之后延長延時時間delayms (78);兩種方式都正常計數(2)矩陣按鍵檢測及鍵值數碼管顯示P0 口數碼管采用共陽極接法,對“ 0 ”有效,矩陣式接口有兩種:逐行掃
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數字反詐騙工程師崗位面試問題及答案
- 福建省漳州市平和一中、南靖一中等五校2025屆高一下化學期末學業水平測試模擬試題含解析
- 山西省同煤二中聯盟體2025年高二化學第二學期期末預測試題含解析
- 河北省遵化市2025年化學高一下期末復習檢測模擬試題含解析
- 沈陽固定花銷管理辦法
- 江蘇漁船租賃管理辦法
- 杭州客車租賃管理辦法
- 書法社團的教學規劃與實踐指導
- 道路透層、稀漿封層及防水層的綜合施工方案研究
- 公園施工車輛管理辦法
- 懲罰游戲學校班會公司早會小游戲晨會年會團建課堂娛樂互動340
- 中國郵政集團有限公司國企招聘筆試真題2024
- 電腦供貨方案、售后服務方案
- 姜黃素項目投資可行性研究報告
- 2025年云南省康旅控股集團有限公司招聘筆試參考題庫含答案解析
- 數據資產:會計研究的新領域
- 工業自動化設備交驗后的保修服務措施
- GB/T 15561-2024數字指示軌道衡
- 課內外文言文對比閱讀專題練(八上)2023年初中語文中考一輪教材復習
- 皮膚科進修后匯報
- GB/T 45089-20240~3歲嬰幼兒居家照護服務規范
評論
0/150
提交評論