單片機原理與c51編程課件7第七章電子密碼鎖控制系統(tǒng)_第1頁
單片機原理與c51編程課件7第七章電子密碼鎖控制系統(tǒng)_第2頁
單片機原理與c51編程課件7第七章電子密碼鎖控制系統(tǒng)_第3頁
單片機原理與c51編程課件7第七章電子密碼鎖控制系統(tǒng)_第4頁
單片機原理與c51編程課件7第七章電子密碼鎖控制系統(tǒng)_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、,第七章 電子密碼鎖控制系統(tǒng),課程目標、課程重點及難點,課程目標: 了解微機控制系統(tǒng)鍵盤的構建及工作原理;認識微機控制系統(tǒng)的鍵盤設計,掌握單片機鍵盤的應用。 課程重點及難點 獨立式鍵盤及其接口電路;矩陣式鍵盤及其接口電路;按鍵掃描驅動程序的設計。,7.1電子密碼鎖控制系統(tǒng)任務分析,一、 電子密碼鎖實物圖:,二、任務分析 (1)狀態(tài)1:開機復位,等待輸入,輸入四位密碼,按Enter鍵結束。 (2)狀態(tài)2:若密碼輸入正確,則數(shù)碼管顯示“god”。驅動繼電器,使小馬達運行。延時五秒返回重新輸入。 (3)狀態(tài)3:若密碼輸入不正確,則數(shù)碼管第一位顯示輸入次數(shù),后二位顯示“ER”,延時三秒后返回重新輸入。

2、 (4)狀態(tài)4:當錯誤輸入次數(shù)滿三次時,起動蜂鳴器報警。延時五秒返回重新輸入。,7.1電子密碼鎖控制系統(tǒng)任務分析,三、硬件控制線路,7.1電子密碼鎖控制系統(tǒng)任務分析,7.1電子密碼鎖控制系統(tǒng),7.1電子密碼鎖控制系統(tǒng),四、項目所需元器件 (1)實驗控制板。 (2)4個共陽極LED數(shù)碼管、11個按鈕。 (3)繼電器、電動小馬達、三極管、喇叭等 (4)晶振12M,啟振電容30pf2個,復位電容22uf,電阻若干。 五、項目所涉及的知識內(nèi)容 (1)鍵盤的構成、掃描及編碼。 (2)鍵盤的編程。,7.1電子密碼鎖控制系統(tǒng),7.2 鍵盤及其接口電路,一、鍵盤的基本概念 鍵盤是一組開關的集合,是最常用的輸入

3、設備之一。組成鍵盤的按鍵有觸點式和非觸點式兩種。 觸點式按鍵通常是機械觸點開關,它利用了機械觸點的通、斷特性完成信息的輸入。 非觸點式按鈕主要指利用電子器件的通、斷來完成信息的輸入,如工作在開關狀態(tài)的三極管、電力電子器件IGBT等。 在單片機控制系統(tǒng)中常用觸點式開關來組成鍵盤。,7.2 鍵盤及其接口電路,在實際鍵盤接口設計時,必須考慮以下一些問題: 按鍵開關的消抖問題 重鍵 連擊 (1)按鍵開關的抖動問題 由于按鍵的結構為機械彈性開關,因此按鍵從最初按下到接觸穩(wěn)定需數(shù)毫秒的彈跳時間,這樣的抖動時間一般在510ms,松開鍵時也有同樣的問題。,7.2 鍵盤及其接口電路,鍵盤消抖動的方法有兩種。 硬

4、件消抖動:利用雙穩(wěn)態(tài)電 路、單穩(wěn)態(tài)電路及RC積分電 路去抖。 軟件消抖動:利用延時子程 序來完成,既在第一次檢測 到按下按鍵后,經(jīng)過一定抖 動時間后再次檢測按鍵是否 按下,從而消除抖動的影響。,延時的選擇非常重要,太快了,起不到消除抖動的效果,太慢了又讓鍵盤太不靈活,錯過的按鍵信號,7.2 鍵盤及其接口電路,(2)重鍵:是指無意同時或先后按下兩個以上的鍵。 (3)連擊:是指一次按鍵產(chǎn)生多次擊鍵的結果。 通常在單片機應用系統(tǒng)中,對于重鍵或連擊現(xiàn)象,也多利用軟件來進行控制,如采取單鍵按下有效、多個鍵按下無效,并且在某個鍵被按下時,CPU等待此鍵釋放的過程中不響應其它按鍵等策略來解決。,7.2 鍵盤

5、及其接口電路,二、鍵盤的結構方式 鍵盤有兩種基本類型:編碼鍵盤和非編碼鍵盤。 編碼鍵盤采用硬件線路來產(chǎn)生鍵碼,每按下一個鍵,鍵盤 能自動生成按鍵代碼。 非編碼鍵盤是靠軟件來識別鍵盤上的閉合鍵,并由軟件編 成來確定按鍵代碼。非編碼鍵盤具有結構簡單、價格便宜 等特點,因此在單片機系統(tǒng)中普遍采用非編碼鍵盤。 非編碼鍵盤按結構方式劃分,有獨立式鍵盤和矩陣式鍵盤 兩大類。,7.2 鍵盤及其接口電路,1、獨立式鍵盤及其接口 獨立式鍵盤,是一種最簡單的鍵盤構成方法,它將每個按鍵的一端接到單片機的I/O口,另一端接地,如圖所示。 主要特點是各個鍵相互獨立,每一個按鍵對應一根輸入口線。鍵盤軟件結構簡單,但當鍵盤

6、數(shù)目較多時,需占用大量的輸入口線,所以在使用上受到了很大的限制。,7.2 鍵盤及其接口電路,獨立式鍵盤接口原理圖 矩陣式鍵盤接口原理圖,7.2 鍵盤及其接口電路,2、矩陣式鍵盤及其接口 在鍵盤中按鍵數(shù)量較多時,為了減少I/O口的占用,通常將按鍵排列成矩陣形式。 在矩陣式鍵盤中,每條水平線和垂直線在交叉處不直接連通,而是通過一個按鍵加以連接,如圖所示。這樣,一個端口(如P1口)就可以構成4*4=16個按鍵,比獨立式鍵盤多出了一倍,而且線數(shù)越多,區(qū)別越明顯,如再多加一條線就可以構成20鍵的鍵盤,而直接用端口線則只能多出一個鍵(9鍵)。,7.2 鍵盤及其接口電路,(1)矩陣式鍵盤的按鍵識別方法 逐行

7、掃描法: 掃描法是一種逐行或逐列判斷是否有鍵按下的方法。掃描法又稱為逐行(或列)掃描查詢法,是一種最常用的按鍵識別方法。利用行掃描法判斷矩陣鍵盤中被按下的鍵時主要經(jīng)過以下步驟: 第一步,識別有無鍵按下 讓所有的行線均置為0電平,即P1.4P1.7均輸出低電平,讀取列線P1.0P1.3的值,若P1.0P1.3均為高電平,則表示無鍵按下;若不全為高電平,則表示有鍵按下。,7.2 鍵盤及其接口電路,第二步,若有鍵被按下,識別出具體的按鍵 方法是采用逐行掃描的辦法,即逐行置零電平,檢查各列線的電平。如首先置第一行為0,其余行為1,也就是讓P1.4P1.7輸出0111,讀取列線P1.0P1.3的值;若不

8、全為1,則根據(jù)讀取的列值即可判斷出按鍵在第一行第幾列上,從而識別出按鍵的位置;若全為1,表示第一行無鍵按下,那么就再置第二行為0,其余行為1,即P1.4P1.7輸出1011,再讀取列值,根據(jù)列值結果,判斷第二行上有無鍵被按下,依此類推,識別出按鍵的鍵值。,7.2 鍵盤及其接口電路,掃描法在判斷鍵值時,是采用的逐行掃描法,當被按下的鍵在最后一行時,需經(jīng)多次掃描才能獲得被按下鍵所在的行、列值。 反線法: 反線法的特點是無論被按下的鍵處于第一行或最后一行,均只需經(jīng)過兩步便能獲得此按鍵所在的行列值。,7.2 鍵盤及其接口電路,其操作步驟如下: 第一步:將行線編程為輸入線,列線編程為輸出線,并使輸出線輸

9、出為全零電平,則行線中電平由高到低所在行為按鍵所在行。 第二步:同第一步完全相反,將行線編程為輸出線,列線編程為輸入線,并使輸出線輸出為全零電平,則列線中電平由高到低所在列為按鍵所在列。 綜合一二兩步的結果,可確定按鍵所在行和列,從而識別 出所按的鍵。,7.2 鍵盤及其接口電路,假設3號鍵被按下,那么第一步即在P1.0P1.3輸出全0,然后,讀入P1.4P1.7位,結果P1.4=0,而P1.5、P1.6和P1.7均為1,因此,第一行出現(xiàn)電平的變化,說明第一行有鍵按下;,第二步讓P1.4P1.7輸出全0,然后,讀入P1.0P1.3位,結果P1.0=0,而P1.1、P1.2和P1.3均為1,因此第

10、4列出現(xiàn)電平的變化,說明第4列有鍵按下,從而可以得知按鍵在第一行第四列,即3號鍵被按下,如圖所示。,7.2 鍵盤及其接口電路,(2)鍵盤的編碼 對于矩陣式鍵盤,按鍵的位置由行號和列號確定,所以分別對行號和列號進行二進制編碼,然后將兩值合成一個字節(jié),高4位是行號,低4位是列號,非常直觀 。如:3號鍵的編碼11100111,寫成十六進制為E7H。 無論以何種方式編碼,均應以處理問題方便為原則。按鍵所處的位置(即行號和列號)是各種編碼之間相互轉換的基礎。,7.3 鍵盤程序設計,一、鍵盤掃描程序的工作方式 鍵盤掃描程序的工作方式通常有三種,即編程掃描、定時掃描和中斷掃描。 編程掃描:采用程序不斷掃描控

11、制方式。當進入鍵掃描狀態(tài),就反復地掃描鍵盤,等待用戶從鍵盤上輸入命令或數(shù)據(jù),在執(zhí)行鍵入命令或處理鍵入數(shù)據(jù)過程中,CPU將不再響應鍵入要求,直到CPU返回重新掃描鍵盤為止。,7.3 鍵盤程序設計,定時掃描:利用單片機內(nèi)部的定時器產(chǎn)生定時中斷來進行鍵盤的掃描,當有鍵按下時,識別出該鍵的鍵值并執(zhí)行相應的鍵功能程序。 中斷掃描:當有鍵被按下時,鍵盤接口電路就向CPU申請中斷,若CPU響應中斷,就執(zhí)行判鍵程序得到鍵值,從而去執(zhí)行相應的鍵功能程序。,7.3 鍵盤程序設計,二、鍵盤掃描程序 1、逐行掃描法,7.3 鍵盤程序設計,#include reg51.h #define uchar unsigned

12、char; #define uint unsigned int; void dlms (void); uchar kbscan(void); /* 函數(shù)說明 */ void main (void) uchar key; while (1) key=kbscan(); /*調(diào)鍵掃描函數(shù),返回鍵碼送key保存*/ dlms(); ,7.3 鍵盤程序設計,void dlms (void) /* 延時 */ uchar i; for (i=200;i0;i- -); uchar kbscan (void) /* 鍵盤掃描函數(shù),逐行掃描 */ uchar sccode, recode; P1=0 xf0; /* P1.0P1.3放全0, P1.4P1.7輸入 */ if(P1 /* P1.0P1.3放全0, P1

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論