




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
單片機原理與應用指導老師:xxx01020304認識單片機認識數(shù)制和編碼認識單片機的內(nèi)部組成認識單片機的存儲器目錄contents05認識時鐘電路和復位電路06認識指令格式和尋址方式07認識51系列單片機指令系統(tǒng)08091011認識三種程序結構認識中斷系統(tǒng)認識定時/計數(shù)器認識LED數(shù)碼管顯示器目錄contents12認識LCD液晶顯示器13認識鍵盤接口技術14認識單片機數(shù)模轉換技術13認識鍵盤接口技術簽到掃碼下載文旌課堂APP掃碼簽到(202X.X.XXX:XX至202X.X.XXX:XX)簽到方式教師通過“文旌課堂APP”生成簽到二維碼,并設置簽到時間,學生通過“文旌課堂APP”掃描“簽到二維碼”進行簽到。。模塊導讀鍵盤是單片機系統(tǒng)中常用的輸入設備,是實現(xiàn)人機對話的紐帶。根據(jù)接口原理的不同,鍵盤可以分為編碼鍵盤和非編碼鍵盤。編碼鍵盤雖然編程簡單,但硬件電路比較復雜,在單片機控制系統(tǒng)中很少使用。非編碼鍵盤由于鍵盤結構簡單,因而成為目前最常采用的鍵盤類型。本模塊將帶領大家認識鍵盤接口技術。模塊導讀知識目標掌握按鍵的結構及工作原理。了解鍵盤的分類。掌握獨立式鍵盤的結構及工作原理。掌握矩陣式鍵盤的結構及工作原理。能力目標能夠應用鍵盤進行檢測與控制。素質(zhì)目標加強實踐練習,掌握一定的專業(yè)技能和職業(yè)素養(yǎng)。具備勇于創(chuàng)新、虛心好學的品質(zhì)。養(yǎng)成自主學習、協(xié)作學習、探究學習的意識。模塊實訓——設計密碼鎖一、實訓描述原始社會末期,隨著生產(chǎn)力的不斷增加、生產(chǎn)工具的發(fā)明和應用,人類社會出現(xiàn)了私有制,為了保護自己的私有財產(chǎn)安全,門鎖也就誕生了。門鎖最早的雛形是用草繩捆成的繩結,后來木匠祖師魯班對其進行改進,裝上機關,才形成了真正意義上的鎖,再后來又發(fā)展成三簧鎖、葉片鎖、彈子鎖、套筒轉心鎖等。隨著微電子技術的發(fā)展,現(xiàn)在出現(xiàn)了密碼鎖。密碼鎖是由電子電路控制鎖體的鎖具,它采用鍵盤(觸摸)方式輸入開鎖密碼,具有操作方便、安全實用及成本低等特點。密碼鎖符合住宅、辦公室的用鎖要求,在生活中隨處可見,如智能門鎖、小型保險柜鎖等,如圖所示。請設計一個密碼鎖。二、實訓步驟(詳情參照教材)三、實訓思考(詳情參照教材)點擊此處播放微課實訓解說模塊導航01鍵盤概述02獨立式鍵盤03矩陣式鍵盤Part01鍵盤概述鍵盤概述鍵盤是單片機應用系統(tǒng)中最常用的輸入設備之一。用戶可以通過鍵盤輸入數(shù)據(jù)、地址和命令等信息,進行簡單的人機交互。鍵盤一般是由多個按鍵組成的,其實物圖如圖所示。1.1按鍵的結構及工作原理按鍵按照結構的不同,可分為觸點式按鍵和無觸點式按鍵。 觸點式按鍵如機械式按鍵、導電橡膠式按鍵等。觸點式按鍵價格低,但壽命較短。 無觸點式按鍵如電氣式按鍵、磁感應按鍵等。無觸點式按鍵價格高,但壽命較長。1.1按鍵的結構及工作原理單片機應用系統(tǒng)中常用的是觸點式按鍵。觸點式按鍵是一種按鈕開關,其實物如圖所示。觸點式按鍵有四個引腳,如圖所示,引腳1與引腳4連通、引腳2與引腳3連通。按下按鈕時,內(nèi)部開關a接通;松開按鈕時,a自動彈起,開關斷開。觸點式按鍵實物觸點式按鍵引腳1.1按鍵的結構及工作原理視野拓展按鍵的抖動是指按鍵的觸點在閉合和斷開瞬間由于接觸不穩(wěn)定而產(chǎn)生抖動的現(xiàn)象(由按鍵的機械特性造成,不可避免)。如圖(a)所示為按鍵按下和松開時的理想狀態(tài);如圖(b)所示為按鍵按下和松開時的實際狀態(tài),在按鍵的前沿和后沿都會有抖動。(a)理想狀態(tài)(b)實際狀態(tài)1.1按鍵的結構及工作原理視野拓展在實際應用中,按鍵按下和松開時都將產(chǎn)生抖動,同時也會產(chǎn)生干擾信號,這種干擾信號對數(shù)字電路的影響很大,往往會導致計數(shù)的錯誤。對于時鐘是微秒級的單片機而言,按鍵的抖動有可能造成單片機對一次按鍵的多次處理。為了提高系統(tǒng)的穩(wěn)定性,必須采用有效的方式消除抖動。消除抖動可以采用硬件方式和軟件方式。硬件方式一般是在按鍵與單片機的輸入通道上安裝硬件去抖電路(如RS觸發(fā)器、RC濾波電路)。軟件方式是當查詢到電路中有按鍵按下時,先不進行處理,而是先執(zhí)行5~10ms的延時程序,延時程序結束后,再次查詢按鍵狀態(tài),若此時按鍵仍為按下狀態(tài),則視為按鍵被按下。1.1按鍵的結構及工作原理某電腦維修店接了一臺故障電腦。經(jīng)檢查,故障是由鍵盤的某個按鍵損壞引起的,需要更換按鍵。按鍵雖然不起眼,但總在關鍵的地方發(fā)揮作用,沒有它,電腦很難運行。這就像平凡生活、平凡崗位上每個平凡的人,都有自己的價值,都在自己的位置上發(fā)揮著不平凡的作用。知類通達1.2鍵盤的分類鍵盤按照接口原理的不同,可分為編碼鍵盤和非編碼鍵盤。
編碼鍵盤由硬件實現(xiàn)對按鍵閉合狀態(tài)的識別。編碼鍵盤的優(yōu)點是所需軟件較簡單,缺點是硬件電路復雜,價格較貴。
非編碼鍵盤由軟件實現(xiàn)對按鍵閉合狀態(tài)的識別。非編碼鍵盤的硬件電路比較簡單,價格低廉。非編碼鍵盤按結構的不同,可分為獨立式鍵盤和矩陣式鍵盤。51系列單片機常用的是非編碼鍵盤,下面主要介紹非編碼鍵盤及其接口電路。Part02獨立式鍵盤2.1獨立式鍵盤的結構及工作原理獨立式鍵盤的各按鍵相互獨立,每個按鍵占用一根I/O端口線,每個按鍵的工作狀態(tài)不會影響其他按鍵的工作狀態(tài)。通過檢測I/O端口線的高/低電平狀態(tài),即可判斷哪個按鍵被按下。獨立式鍵盤的硬件、軟件結構簡單,判鍵速度快,使用方便,但占用I/O端口線較多,適用于按鍵數(shù)量較少的系統(tǒng)。獨立式鍵盤的結構示意圖如圖13-10所示。當沒有按鍵被按下時,所有的數(shù)據(jù)輸入線均為高電平;當任意一個按鍵被按下時,與之相連的數(shù)據(jù)輸入線將變?yōu)榈碗娖剑煌ㄟ^相應指令,可以判斷是否有按鍵被按下。2.1獨立式鍵盤的結構及工作原理圖13-10獨立式鍵盤的結構示意圖2.2獨立式鍵盤的程序設計判斷有無按鍵按下。(1)(5)(2)(3)(6)功能計算閉合鍵的鍵值。判斷閉合鍵是否釋放,若沒釋放則繼續(xù)等待。確定閉合鍵的位置。消除按鍵的抖動。保存閉合鍵的鍵值,同時轉去執(zhí)行該閉合鍵對應的功能。(4)獨立式鍵盤的程序一般設計為獨立函數(shù),方便調(diào)用。獨立式鍵盤程序的功能一般包含以下幾項。2.2獨立式鍵盤的程序設計獨立式鍵盤的程序設計流程如圖所示。2.2獨立式鍵盤的程序設計獨立式鍵盤程序如下。#include<reg51.h>voiddelay10ms(){ TH1=0xd8; /*設置10ms定時初值*/ TL1=0xf0; TR1=1; /*啟動定時器1*/ while(!TF1); /*判斷10ms定時時間是否到了*/ TF1=0; /*時間到,TF1清零*/}2.2獨立式鍵盤的程序設計voidmain(){unsignedchari;TMOD=0x10; /*設置定時器1*/P1=0xff; /*P1端口全置“1”*/i=0;while(1){do{i=P1;i=~i;i=i&0x0f; /*屏蔽高位*/}2.2獨立式鍵盤的程序設計
while(i==0); /*循環(huán)判斷是否有按鍵按下*/ delay10ms(); /*有按鍵按下,延遲10ms去抖動*/ do { i=~P1; /*讀按鍵狀態(tài)*/ i=i&0x0f; } while(i==0);2.2獨立式鍵盤的程序設計
switch(i) /*根據(jù)鍵值調(diào)用不同的處理函數(shù)*/ { case0x01:KEYA();break; /*調(diào)用按鍵KEYA功能函數(shù)*/ case0x02:KEYB();break; /*調(diào)用按鍵KEYB功能函數(shù)*/ case0x04:KEYC();break; /*調(diào)用按鍵KEYC功能函數(shù)*/ case0x08:KEYD();break; /*調(diào)用按鍵KEYD功能函數(shù)*/ default:break; } }}Part03矩陣式鍵盤3.1矩陣式鍵盤的結構及工作原理矩陣式鍵盤是由行線和列線組成的,按鍵位于行線與列線的交叉點上。相較于獨立式鍵盤,矩陣式鍵盤要節(jié)省很多I/O端口,更適用于按鍵數(shù)量較多的系統(tǒng)。如圖所示為4×4矩陣式鍵盤的結構示意圖,行線連接的4根I/O端口線作為輸入端;列線連接的4根I/O端口線作為輸出端。當沒有按鍵按下時,所有列線的輸出均為高電平,行線的輸入也是高電平;當有按鍵按下時,相應列線的輸出為低電平,對應行線的輸入也為低電平。通過檢測輸入線的電平可知是否有按鍵按下,根據(jù)行線和列線的電平信號可以判斷按鍵所在的位置。3.1矩陣式鍵盤的結構及工作原理4×4矩陣式鍵盤的結構示意圖3.2矩陣式鍵盤按鍵的識別1.列掃描法采用列掃描法識別矩陣式鍵盤按鍵的方法如下。(1)首先判斷是否有按鍵按下。先使所有的列線輸出低電平,然后讀取所有行線的電平信號。若讀取的行線電平信號全為高電平,則無按鍵按下;否則,有按鍵按下。(2)逐列掃描判斷具體的按鍵。依次使列線輸出低電平,然后讀取該列線上所有行線的電平信號。若讀取的行線電平信號為高電平,則該列線所連接的按鍵沒有按下;否則,該列線所連接的按鍵已經(jīng)按下。按下的按鍵位于行線、列線均為低電平的位置。3.2矩陣式鍵盤按鍵的識別經(jīng)驗傳承鍵值的計算按鍵的位置確定后,即可計算鍵值。如圖所示為4×4矩陣式鍵盤鍵值的編碼示意圖,鍵值與行號、列號之間的關系為鍵值=行號×4+列號3.2矩陣式鍵盤按鍵的識別1.行列反轉法采用行列反轉法識別矩陣式鍵盤按鍵的方法如下。(1)將所有的列線輸出低電平,行線輸出高電平,然后讀取行線的電平信號。若按鍵中有任意一個被按下,那么讀取的行線電平信號則不全為高電平,記錄此時的行值。(2)將所有的列線輸出高電平,行線輸出低電平,然后讀取列線的電平信號。若按鍵中有任意一個被按下,那么讀取的列線電平信號則不全為高電平,記錄此時的列值。(3)將行值與列值進行運算,可得到按鍵的掃描碼。點擊此處播放微課矩陣式鍵盤應用編程案例
(匯編語言)3.2矩陣式鍵盤按鍵的識別例如,4×4矩陣式鍵盤接口設計如圖所示。P2.0~P2.3連接行線,P2.4~P2.7連接列線。首先讓P2端口輸出00001111,假設按下按鍵S15,按鍵此時讀取的P2端口的值為00000111;然后讓P2端口輸出11110000,假設按下按鍵S15,此時讀取的P2端口的值為01110000;最后把兩次讀取的P2端口的值按位進行“或”運算,可得到01110111,即0x77,這個值就是按鍵S15的掃描碼。依此類推,可得出其他15個按鍵對應的掃描碼,如圖所示。4×4矩陣式鍵盤接口設計行列反轉法中按鍵與掃描碼的對應關系3.3矩陣式鍵盤的程序設計判斷有無按鍵按下。(1)(5)(2)(3)(6)功能計算閉合鍵的鍵值。判斷閉合鍵是否釋放,若沒釋放則繼續(xù)等待。確定閉合鍵的位置(行、列號)。消除按鍵的抖動。保存閉合鍵的鍵值,同時轉去執(zhí)行該閉合鍵對應的功能。(4)矩陣式鍵盤的程序一般采用列掃描法,程序功能一般包含以下幾項。3.3矩陣式鍵盤的程序設計矩陣式鍵盤列掃描法的程序設計流程圖如圖所示。3.3矩陣式鍵盤的程序設計獨立式鍵盤程序如下。#include<reg51.h>voiddelay10ms(){ TH1=0xd8; /*設置10ms定時初值*/ TL1=0xf0; TR1=1; /*啟動定時器1*/ while(!TF1); /*判斷10ms定時時間是否到了*/ TF1=0; /*時間到,TF1清零*/}3.3矩陣式鍵盤的程序設計unsignedcharkey_scan(void){ unsignedchari,temp,m,n; bitfind=0; /*有按鍵按下標志位*/ P0=0xff; /*P0端口低4位行線輸入,全置“1”*/ P2=0x00; /*P2端口低4位列線輸出,全置“0”*/ temp=~P0; /*讀行線狀態(tài)*/ while(temp!=0) { delay10ms(); } P2=0x00; /*輸出全掃描字,列線全置“0”*/ temp=~P0; /*讀行線狀態(tài)*/3.3矩陣式鍵盤的程序設計
while(temp!=0) { for(i=0;i<4;i++) { P2=0xfe<<1; /*逐列送低電平掃描*/ temp=~P0; /*讀行值,并取反*/ temp=temp&0x0f; /*屏蔽行高4位*/ while(temp!=0x00) /*判斷是否有按鍵按下,若為0則無按鍵按下*/ { m=i; /*保存列號到變量m中*/ find=1; /*設置找到按鍵標志*/3.3矩陣式鍵盤的程序設計 switch(temp) /*判斷哪一行有按鍵標志*/ { case0x01:n=0;break; /*第0行有按鍵按下*/ case0x02:n=1;break; /*第1行有按鍵按下*/ case0x04:n=2;break; /*第2行有按鍵按下*/ case0x08:n=3;break; /*第3行有按鍵按下*/ default:break; } } } }if(find==0)return?1; /*無按鍵按下則返回值為?1*/elsereturn(n*4+m); /*否則返回鍵值,鍵值=行號×4+列號*/}3.3矩陣式鍵盤的程序設計將4×4矩陣式鍵盤每個按鍵的鍵值通過數(shù)碼管顯示器顯示出來?!纠?3-1】【問題分析】4×4矩陣式鍵盤按鍵顯示電路如圖所示(電源和振蕩電路未標出)。3.3矩陣式鍵盤的程序設計【參考代碼】#include<reg51.h>unsignedcharcodedisp_buff[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0x00}; /*數(shù)碼管段碼表*/unsignedcharpre_keyno=16,keyno=16; /*上次按鍵和當前按鍵序號,該矩陣中
序號范圍為0~15,16表示無按鍵*/voiddelayms(unsignedintx){ unsignedchari; while(x--) { for(i=0;i<120;i++); }}3.3矩陣式鍵盤的程序設計/**********按鍵掃描函數(shù),首先判斷按鍵發(fā)生在哪一列,然后根據(jù)所發(fā)生的行,附加不同的值,從而得到鍵盤按鍵序號**********/voidkey_scan(void){ unsignedchari; P1=0x0f; /*高4位置“1”,放入4行*/ delayms(1); i=P1^0x0f; /*有按鍵按下后,其中一列將變?yōu)榈碗娖?/ 3.3矩陣式鍵盤的程序設計
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年醫(yī)用穿刺器械合作協(xié)議書
- 藥事管理與法規(guī):糖脂靈事件
- 2025年變頻與逆變電源裝置項目發(fā)展計劃
- 包裝配送企業(yè)數(shù)字化轉型與智慧升級戰(zhàn)略研究報告
- 釉面磚批發(fā)企業(yè)數(shù)字化轉型與智慧升級戰(zhàn)略研究報告
- 食品用甜菊糖甙企業(yè)數(shù)字化轉型與智慧升級戰(zhàn)略研究報告
- 柴油批發(fā)企業(yè)縣域市場拓展與下沉戰(zhàn)略研究報告
- 真皮運動鞋企業(yè)縣域市場拓展與下沉戰(zhàn)略研究報告
- 臉譜工藝品企業(yè)縣域市場拓展與下沉戰(zhàn)略研究報告
- 羽絨或羽毛睡袋企業(yè)ESG實踐與創(chuàng)新戰(zhàn)略研究報告
- 城市合伙人合同協(xié)議書
- 律所委托鑒定機構鑒定的委托書
- 2024年胰島素泵行業(yè)前景分析:胰島素泵行業(yè)發(fā)展趨勢提升服務水平
- 機床夾具設計實例
- 福建省泉州市第五中學2023-2024學年八年級下學期期中語文試題
- 2024CSCO惡性腫瘤患者營養(yǎng)治療指南解讀
- 產(chǎn)后出血預防與處理
- 智能化倉儲冷庫項目可行性研究報告
- 通達信公式函數(shù)說明大全
- 2024年輔警招聘考試試題庫含完整答案(各地真題)
- 柏子養(yǎng)心丸神經(jīng)保護機制
評論
0/150
提交評論