版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
單片機應(yīng)用技術(shù)項目式教程—基于Proteus和KeilCSINGLE-CHIP
COMPUTER
APPLICATION
TECHNOLOGY
簡易密碼鎖的設(shè)計獨立式鍵盤原理01行列鍵盤原理02簡易密碼鎖的設(shè)計03知識要點05
簡易密碼鎖的設(shè)計
能夠使用C語言實現(xiàn)按鍵去抖01能夠?qū)崿F(xiàn)獨立式按鍵掃描編程0203能夠應(yīng)用狀態(tài)機編程04學(xué)習(xí)要求05實現(xiàn)簡易密碼鎖的設(shè)計能夠?qū)崿F(xiàn)行列式按鍵掃描編程7.1獨立式鍵盤原理如果應(yīng)用系統(tǒng)僅需要幾個鍵,則選用獨立鍵盤,一般采用查詢方式識別按鍵的狀態(tài)。此外,由于按鍵的機械特性會產(chǎn)生抖動現(xiàn)象,在按鍵的處理中還要考慮去抖動的問題。獨立式鍵盤可采用如圖7.1所示的按鍵輸入電路。按鍵直接用I/O接口線構(gòu)成單個按鍵電路。7.1獨立式鍵盤原理每個獨立式按鍵單獨占有一根I/O接口線,每根I/O接口線的工作狀態(tài)不影響其他I/O接口線的工作狀態(tài),屬于最簡單的一種按鍵結(jié)構(gòu)。當某一個按鍵Sn(n=0~7)閉合時,P1.n輸入為低電平,釋放時P1.n輸入為高電平。按鍵為輸入開關(guān)量,所以P1口事先寫入“1”,當無鍵按下時,P1.n端由內(nèi)部上拉電阻上拉為高電平,而有鍵按下時,P1.n端與地相連,輸入電壓值為低電平。若為P0口,內(nèi)部無上拉電阻,需外加上拉電阻。7.1獨立式鍵盤原理實際上,在按下一次Sn時,機械按鍵的簧片存在著輕微的彈跳現(xiàn)象,P1.n的輸入波形在鍵閉合和釋放過程中存在抖動現(xiàn)象,呈現(xiàn)一串抖動脈沖波(如圖7.2所示),其時間長短與按鍵的機械特性有關(guān),一般為5~20ms。為了確保CPU對按鍵的一次閉合僅做一次處理,必須去除抖動。按鍵去抖主要有軟件去抖和硬件去抖兩種方法,目前在單片機應(yīng)用系統(tǒng)中,主要采用軟件去抖方法,本書也只介紹軟件去抖方法。1.按鍵掃描(不支持連續(xù)按下)編程不支持連續(xù)按下按鍵掃描編程的算法如下:算法說明:1)定義靜態(tài)局部變量key_up,表示按鍵的狀態(tài),1時表示彈起狀態(tài),這里不能用動態(tài)的局部變量,可以使用全局變量。2)在按鍵彈起狀態(tài)檢測按鍵是否按下。3)如果按下,延時10ms。4)設(shè)置為按下狀態(tài),檢測是否按下。5)如果按下,返回鍵值(對于獨立按鍵,鍵值可以自定義),如果沒按下,設(shè)置為彈起狀態(tài)。2.按鍵掃描(支持連續(xù)按下)編程
支持連續(xù)按下按鍵掃描編程的算法如下:算法說明:1)檢測按鍵是否按下。2)如果按下,延時10ms。3)檢測是否按下。4)如果按下,返回鍵值(對于獨立按鍵,鍵值可以自定義),如果沒按下,返回?zé)o效值。對于這兩種情況可以混合為一個程序。3.按鍵掃描(兩種模式合二為一)編程
按鍵掃描(兩種模式合二為一)編程的算法如下:mode=1時為支持連續(xù)按下,mode=0時為不支持連續(xù)按下。4.應(yīng)用案例(1)設(shè)計要求設(shè)計加1、減1功能鍵各1個。當按加1、減1功能鍵時,187項目7簡易密碼鎖的設(shè)計。計數(shù)器做加1或減1操作,計數(shù)器值送4位LED數(shù)碼管顯示。(2)仿真原理圖仿真原理圖如圖7.3所示,P0口接數(shù)碼管a~g段,P2.0~P2.3接數(shù)碼管公共端,數(shù)碼管為共陽極數(shù)碼管,P3.0接“+”鍵,P3.1接“-”鍵。(3)軟件代碼
實現(xiàn)代碼如下:7.2行列式鍵盤原理7.2.1設(shè)計原理
當按鍵數(shù)較多時,獨立式按鍵電路占用較多的I/O接口線,因此通常多采用行列式(也稱矩陣式)鍵盤電路。
圖7.4表示一個5×5的行列式鍵盤陣列。鍵盤中共有25個鍵,對每個鍵都進行編號,鍵號按從上到下、從左到右的規(guī)律,分別為0,1,2,…,24。在應(yīng)用系統(tǒng)中,鍵盤上的按鍵可按需要定義其功能。X0、X1、X2、X3、X4分別代表第0行、第1行、第2行、第3行、第4行。Y0、Y1、Y2、Y3、Y4分別代表第0列、第1列、第2列、第3列、第4列。在不需要外接并行擴展芯片的情況下,代表各個行的5根引出線分別和CPU的通用I/O接口P1的5個引腳連接(這5個引腳是單向輸入,芯片內(nèi)無上拉電阻,需外加上拉電阻),代表各個列的5根線分別和P2的5個引腳連接。矩陣鍵盤工作時首先要確定有無按鍵按下,其次確定鍵值、鍵碼,分述如下。1.有無按鍵的確認由行線或列線輸出低電平,然后讀取列線或行線電平,如果讀取值不全是高電平則代表有鍵按下,否則沒有。其中要有鍵盤消抖措施。2.按鍵的識別掃描算法:逐行置低電平,其余各行為高電平,檢查各列電平的變化,如果某列線電平為低電平,即可確定此行列線交叉點處的按鍵被按下。交換行列線的輸出讀取關(guān)系也可以實現(xiàn)。線反轉(zhuǎn)法:首先將行線編程為輸入線,列線編程為輸出線,然后使列線全輸出低電平,讀取行線電平,行線從高電平轉(zhuǎn)為低電平的行線為按下按鍵所在行;然后將列線編程為輸入線,行線編程為輸出線,然后使行線全輸出低電平,讀取列線電平,列線從高電平轉(zhuǎn)為低電平的列線為按下按鍵所在列。3.掃描算法的鍵號確定矩陣式鍵盤中按鍵的物理位置唯一,按鍵由行號和列號唯一確定,所以可以由行列號對按鍵編碼,如0行0列的按鍵編碼為00H,2行3列為13,編碼時以處理問題方便為準。根據(jù)識別的行列號可以確定鍵號:鍵號=所在行號×鍵盤列數(shù)+所在列號編制程序時可以把鍵號制成表,查表實現(xiàn)按鍵功能的處理或直接用case語句處理。7.2.2編程實例1.設(shè)計要求4×4鍵盤對應(yīng)十六進制數(shù)碼0~9、A~F。當按下按鍵時,對應(yīng)的數(shù)碼在數(shù)碼管上顯示。
行列式鍵盤仿真原理圖如圖7.5所示,P0口接單個數(shù)碼管,P2口接行列式鍵盤。P2.0~P2.3接列線,P2.4~P2.7接行線。2.程序設(shè)計(1)按鍵掃描程序按鍵掃描程序按照上面所講內(nèi)容編程,分為有無按鍵的確認、按鍵的識別和掃描算法的鍵號確定三部分,其中按鍵的識別采用線反轉(zhuǎn)法,行列式按鍵掃描程序也可分為支持連續(xù)按下和不支持連續(xù)按下兩種情況,為了更好地支持應(yīng)用,本書程序為混合編程方式。(2)程序代碼及說明程序代碼如下:7.3簡易數(shù)碼鎖設(shè)計7.3.1任務(wù)要求3×4行列式鍵盤,分別代表數(shù)字0~9、?、#,密碼在程序中事先設(shè)定,為0~9之間的6位數(shù)字,用1602字符液晶顯示屏顯示密碼輸入過程,用發(fā)光二極管表示密碼鎖的開關(guān)狀態(tài)。密碼鎖操作過程如下:1)上電復(fù)位后,密碼鎖初始狀態(tài)為關(guān)閉(發(fā)光二極管滅)液晶顯示屏顯示“wel?come!”。2)按下“?”號鍵,液晶顯示屏第一行顯示“PleaseInputCode”,第二行顯示6個“-”。3)輸入6位密碼,并以“?!碧栨I結(jié)束,輸入過程中,液晶屏不顯示輸入的字符,只顯示“?”號,如果輸入數(shù)字超過6位,重新顯示。4)輸入的密碼與原先設(shè)定的密碼相同,則液晶顯示屏第二行顯示字符“Suc”,打開鎖(發(fā)光二極管亮),3s后恢復(fù)鎖定狀態(tài),等待下一次密碼輸入(返回1),否則顯示字符“ERR”持續(xù)3s,保持鎖定狀態(tài)并等待下次密碼輸入(返回1)。簡易數(shù)碼鎖的LCD液晶和行列式鍵盤的仿真電路圖分別如圖7.6和圖7.7所示,其中1602的數(shù)據(jù)線接P3口,控制端RS、RW和E分別接P2.0、P2.1和P2.2。發(fā)光二極管接P2.3。行列式鍵盤行線接P1.4~P1.7,列線接P1.0~P1.2。7.3.2仿真電路7.3.
3程序設(shè)計簡易數(shù)碼鎖程序可以采用分步編程設(shè)計,首先編寫LCD1602程序并驗證,之后編寫鍵盤程序并驗證,再編寫整體程序,簡易數(shù)碼鎖程序采用狀態(tài)機編程實現(xiàn)。1.LCD1602程序LCD1602驅(qū)動程序的編寫見6.3和6.4節(jié),本章程序需要修改引腳,同時在液晶屏上顯示簡易數(shù)碼鎖需要顯示的字符“welcome,InputtheCode,Err,Suc”。實現(xiàn)結(jié)果可參考圖7.8。2.按鍵測試編程在7.3節(jié)講解了行列式鍵盤的應(yīng)用,在簡易數(shù)碼鎖應(yīng)用中,行列式鍵盤用于輸入密碼,按鍵編程測試部分主要測試按鍵的硬件及軟件驅(qū)動程序是否正確,按鍵測試程序主要通過液晶顯示按鍵的數(shù)值證明按鍵電路及軟件驅(qū)動程序是否正確。程序代碼如下:1)按鍵掃描代碼基本和7.3節(jié)相同,需要有相應(yīng)改動,書中不再給出。2)主程序代碼如下:3.狀態(tài)機編程狀態(tài)機(可以參考數(shù)字電子技術(shù)中的狀態(tài)圖,如圖7.9所示)編程是嵌入式設(shè)備C語言編程。狀態(tài)機編程屬于一種比較流行的方法,適用于以下應(yīng)用:1)菜單設(shè)置。2)芯片接口程序(一些芯片手冊中有狀態(tài)機)。3)協(xié)議棧編程(某些協(xié)議棧中有狀態(tài)圖)。4)通信程序。5)其他適合的應(yīng)用。狀態(tài)機編程主要分為以下幾個步驟:1)確定狀態(tài)。2)確定每個狀態(tài)的輸入和輸出情況。3)確定狀態(tài)轉(zhuǎn)移條件,以上3個步驟為繪制狀態(tài)圖的過程。4)用switch-case語句(C語言)根據(jù)狀態(tài)圖編程,這一步為軟件實現(xiàn)過程。狀態(tài)機編程由于狀態(tài)明確,相對于用標志位編程具有邏輯清楚、編程容易的優(yōu)勢。4.簡易密碼鎖軟件編程簡易密碼鎖軟件主要由液晶初始化、顯示“welcome”、按鍵掃描及主狀態(tài)機組成,其框圖如圖7.10所示。液晶初始化見6.3節(jié)內(nèi)容,通過按鍵掃描程序掃描按鍵,得到按鍵的鍵碼,主狀態(tài)機實現(xiàn)密碼鎖的功能。(1)主狀態(tài)機軟件的主狀態(tài)機由4個狀態(tài)組成,分別為空閑狀態(tài)、輸入密碼狀態(tài)、密碼正確狀態(tài)和密碼錯誤狀態(tài)。下面說明各個狀態(tài)的功能及狀態(tài)轉(zhuǎn)移條件。1)空閑狀態(tài)。在該狀態(tài)液晶顯示“welcome??!”,并且密碼鎖閉合(用LED滅表示),當檢測到‘?’號鍵按下時,液晶屏第一行顯示“InputtheCode”,第二行顯示“”,并且狀態(tài)轉(zhuǎn)到輸入密碼狀態(tài)。2)輸入密碼狀態(tài)。輸入密碼狀態(tài)是狀態(tài)機中最復(fù)雜的狀態(tài),其軟件框圖如圖7.11所示。其具體實現(xiàn)如下:①判斷按下的按鍵。②如果按下的按鍵是#號鍵,當按下密碼小于6位,則轉(zhuǎn)到密碼錯誤狀態(tài),否則,判斷密碼是否正確,正確則轉(zhuǎn)到密碼正確狀態(tài),否則轉(zhuǎn)到密碼錯誤狀態(tài)。③按下其他按鍵,當按鍵次數(shù)為7次時,重置為1次,并且已按下的按鍵無效,保存密碼,并在液晶屏上順序顯示‘?’號。3)密碼正確狀態(tài)。清屏,顯示“SUC”,密碼鎖打開(LED亮),延時3s,密碼鎖關(guān)閉(LED滅),液晶屏顯示“welcome?。 ?,狀態(tài)轉(zhuǎn)換到空閑狀態(tài)。4)密碼錯誤狀態(tài)。清屏,顯示“ERR”,密碼鎖關(guān)閉(LED滅),延時3s,液晶屏顯示“welcome??!”,狀態(tài)轉(zhuǎn)換到空閑狀態(tài)。(2)簡易密碼鎖程序代碼程序代碼沒有包括按鍵和液晶子程序,具體如下:1.無按鍵鍵盤這個造型奇怪的產(chǎn)品就是ORBITOUCH無按鍵鍵盤(圖7.12)。這款鍵盤在外觀上十分特立獨行,兩個巨大的圓球裝在一塊塑料板上,圓球上面還有類似鼠標形狀的手托。這款鍵盤使用起來需要左手選擇字母,右手選擇顏色。不同字母對應(yīng)的顏色也不一樣,雙手配合起來才能打字。ORBITOUCH的說明書看上去很難,但研發(fā)者表示,從買回家到入門只需要30分鐘。上面的鍵位也不是完全隨機設(shè)計的,而是參考了人們最常用的字母,并且把這些字母放在最合適的位置,方便記憶。走進科學(xué)2.激光投影鍵盤像投影虛擬操作這種場景,以前只在科幻電影中才會見到。有了這個激光投影鍵盤(圖7.13),平時放在桌面上并不起眼,但在你操作鍵盤的時候,相信你會成為萬眾矚目的焦點,足夠炫酷,充滿未來科技感。3.玻
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 室內(nèi)設(shè)計服務(wù)員工作總結(jié)
- 能源化工行業(yè)市場總結(jié)
- 酒店員工培訓(xùn)計劃設(shè)計
- 音樂學(xué)校前臺服務(wù)心得
- 互聯(lián)網(wǎng)產(chǎn)品設(shè)計師工作總結(jié)
- 《易坦靜的臨床應(yīng)用》課件
- 2023-2024學(xué)年上海市徐匯區(qū)南洋模范中學(xué)高二(下)期中地理試卷
- 《燃氣基礎(chǔ)知識》課件
- 2022年廣東省河源市公開招聘警務(wù)輔助人員輔警筆試自考題2卷含答案
- 2024年湖北省隨州市公開招聘警務(wù)輔助人員輔警筆試自考題2卷含答案
- (T8聯(lián)考)2025屆高三部分重點中學(xué)12月第一次聯(lián)考評物理試卷(含答案詳解)
- 西北農(nóng)林科技大學(xué)專業(yè)學(xué)位研究生課程案例庫建設(shè)項目申請書(MBA)
- 外墻保溫、真石漆施工技術(shù)交底
- 車床日常點檢表
- 配網(wǎng)工程施工監(jiān)理管理要點~.docx
- 國內(nèi)No.7信令方式技術(shù)規(guī)范----綜合業(yè)務(wù)數(shù)字網(wǎng)用戶部分(ISUP)
- 尾礦庫在線監(jiān)測方案)
- 會計恒等式--試講
- 房屋安全簡易鑒定表.docx
- FSSC運營管理制度(培訓(xùn)管理辦法)
- 警察公安工作匯報ppt模板ppt通用模板課件
評論
0/150
提交評論