




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
摘要物聯(lián)網(wǎng)時代家居智能化是大趨勢,鎖更是不可缺少的一部分。密碼鎖具有,便捷、安全性高、忘記帶鑰匙也能開鎖等優(yōu)點。此設(shè)計是一個基于RFID的射頻智能鎖。本設(shè)計源于筆者日常生活中經(jīng)常忘記帶鑰匙,通過市場調(diào)查藍(lán)牙鎖后,發(fā)現(xiàn)藍(lán)牙鎖往往需要,先連接藍(lán)牙,再開鎖,其間過程需要2至3分鐘,雖然這些藍(lán)牙鎖可以實現(xiàn)不帶鑰匙也能開門,但是并不節(jié)省時間,于是想設(shè)計一款可以更加快速開鎖的智能鎖。本設(shè)計由硬件和軟件兩部分組成,主要采用了RFID技術(shù)和紅外遙控技術(shù)。本設(shè)計中硬件實現(xiàn)部分由STC89C52單片機系統(tǒng)、4*4矩陣鍵盤、LCD1602液晶顯示模塊、RC522讀卡模塊等組成;軟件部分使用C語言進行編程。可以實現(xiàn)通過管理員密碼,讀寫卡片、對RFID卡進行管理。本系統(tǒng)有多種開鎖方式,可以使用RFID卡片開鎖,紅外遙控開鎖,藍(lán)牙遙控開鎖。關(guān)鍵詞:RFID;單片機;智能鎖AbstractIntheeraofInternetofthings,homeintelligentisthegeneraltrend,andlockisanindispensablepart.Thisdesignpasswordlockhastheadvantagesofconvenience,highsecurity,forgettingtotakethekey,etc.ThisdesignisaRFIDBasedRFsmartlock.ThisdesignoriginatesfromthefactthatIoftenforgettotakethekeyinmydailylife.Aftermarketinvestigation,IfoundthattheBluetoothlockoftenneedstobeconnectedfirstandthenunlocked.Theprocesstakes2to3minutes.AlthoughtheseBluetoothlockscanopenthedoorwithoutthekey,itdoesnotsavetime,soIwanttodesignasmartlockthatcanunlockthedoormorequickly.Thisdesigniscomposedofhardwareandsoftware,mainlyusingRFIDtechnologyandinfraredremotecontroltechnology.Inthisdesign,thehardwarepartiscomposedofSTC89C52singlechipmicrocomputersystem,4*4matrixkeyboard,LCD1602liquidcrystaldisplaymodule,rc522cardreadingmodule,andthesoftwarepartisprogrammedwithClanguage.ItcanreadandwritethecardandmanagetheRFIDcardthroughtheadministratorpassword.Thesystemhasavarietyofwaystounlock,RFIDcardcanbeusedtounlock,infraredremotecontrolunlock,Bluetoothremotecontrolunlock.Keywords:RFID;singlechipmicrocomputer;intelligentlock
目錄第一章緒論 11.1選題意義與目的 11.2選題背景與現(xiàn)狀 21.3本文結(jié)構(gòu) 2第二章智能鎖開發(fā)技術(shù) 42.1開發(fā)工具 42.1.1軟件開發(fā)工具 42.1.2硬件制作工具 42.2技術(shù)介紹 42.2.1RFID 42.2.2紅外遙控 52.2.3單片機C語言 6第三章智能鎖方案設(shè)計 73.1智能鎖總體方案設(shè)計 73.2硬件設(shè)計 73.2.1STC89C52RC單片機介紹 73.2.2LCD1602液晶介紹 83.2.3RC522射頻模塊介紹 93.2.4HC-05藍(lán)牙模塊介紹 103.2.5紅外一體接收頭介紹 103.2.6智能鎖原理圖 113.3軟件設(shè)計 113.3.1液晶顯示部分代碼 123.3.2射頻模塊代碼 133.3.3主函數(shù) 173.3.4重置密碼 203.3.5掃描按鍵函數(shù) 233.4本章小結(jié) 27第四章智能鎖功能實現(xiàn) 294.1RFID智能鎖硬件制作 294.1.1焊接 294.1.2程序燒錄 294.2密碼開鎖 304.3RFID卡片開鎖 334.4紅外遙控開鎖 364.5藍(lán)牙開鎖 364.6本章小結(jié) 37結(jié)論 38參考文獻 39致謝 40第一章緒論1.1選題意義與目的隨著時光洪流滾滾,科技蓬勃發(fā)展,人類進入第四次工業(yè)革命。在第四次工業(yè)革命中,計算機科學(xué)無疑是其中不可缺少的重要部分。計算機科學(xué)可能乍一聽離我們的日常生活很遠(yuǎn),其實不然。人工智能、大數(shù)據(jù)、智能家居早已悄然走進你我的生活,走進千家萬戶。在我們的日常生活中,智能音響、智能電視、智能手機早已不是什么新鮮事,本課題源自我本身生活中發(fā)現(xiàn)的小小不便。鎖在我們生活中是不可缺少的重要部分,然而,在生活中忘帶鑰匙是一件會遲到卻不會缺席的尷尬事。根據(jù)我的調(diào)查以及親身體驗,目前市面上的藍(lán)牙電子鎖,在開鎖前總要先將藍(lán)牙設(shè)備與安卓設(shè)備進行配對連接,這一個過程動輒兩三分鐘,每每使我焦急萬分。我認(rèn)為這樣的智能藍(lán)牙鎖不夠便捷。電子技術(shù)、通信技術(shù)、計算機技術(shù)飛速發(fā)展,特別是互聯(lián)網(wǎng)和多媒體通訊技術(shù)的蓬勃發(fā)展,人們對互聯(lián)網(wǎng)、多媒體通信的需求成倍數(shù)爆發(fā)增長,人們開始不滿足于如今的電子產(chǎn)品,開始追求更加先進、更加智能的產(chǎn)品。多年來人們用數(shù)據(jù)線進行有線連接,比如一臺計算機就是由主機,鍵盤,顯示器等通過線纜連接而成,當(dāng)你想將電腦與手機連接在一起,將電腦與網(wǎng)絡(luò)連接在一起,當(dāng)你想接入計算機的設(shè)備越來越多,用以連接的線纜也就越多。線纜多就導(dǎo)致了必然的亂,這種情況下利用線纜的信息傳輸已經(jīng)無法滿足人們的需求了,人們開始變“懶”了?!皯小币彩且环N動力,由于懶得出力,人們馴化了牲畜,由于懶得挑水,人們建造了水利設(shè)施,現(xiàn)如今,人們懶得攜帶、管理這些越來越多的電子產(chǎn)品的線纜,人們開始創(chuàng)造、尋找讓這些線纜消失的方法。既然不想“有線”,那就只好尋求“無線”技術(shù)啦。RFID技術(shù)就是一種可以進行無線傳輸信息的技術(shù),它是一種可以在短距離內(nèi)保證可靠的接收和信息安全的無線通信技術(shù)。RFID技術(shù)在許多方面都有優(yōu)勢,例如更新的實時性、存儲信息量、使用壽命、工作效率、安全性等方面。本次畢業(yè)設(shè)計的選題,便是這樣一個基于RFID的智能鎖,本設(shè)計集成了多種智能鎖的特點,可實現(xiàn)密碼開鎖,紅外遙控開鎖,RFID接觸式卡片開鎖,藍(lán)牙遙控開鎖。1.2選題背景與現(xiàn)狀在國內(nèi),鎖具行業(yè)的年銷售額約有四百多億,一年大概生產(chǎn)約20億把鎖。我們不僅是生產(chǎn)大國,對鎖也有很大的需求,但是和許多大洋彼岸某發(fā)達國家相比,我們市場上大部分仍是按鍵電子鎖,卡片鑰匙式電子鎖已經(jīng)屬于“高端”鎖具。國內(nèi)市場缺乏這一類“高端”鎖具,卻不代表沒有人想要購買這種鎖,而在國內(nèi)市場上買不到的人們就只好出國購買。這種市場現(xiàn)象導(dǎo)致了國人研發(fā)的電子智能鎖的知名率和購買率都不盡人意,在國內(nèi)市場,電子鎖僅占民用鎖不到2%的市場,不過相信隨著國家的快速發(fā)展,帶領(lǐng)人們?nèi)娼ǔ尚】瞪鐣?,人們的消費觀念會逐漸改變,這種在普通家庭看來“高端”的鎖具也會漸漸走向大眾。如今正處于人們對這種鎖好奇到需求的階段,本設(shè)計中這種集合了多種開鎖方式,基于RFID技術(shù)開發(fā)的智能鎖就十分恰如其分了。不使用鑰匙,而是使用輸入密碼的方式來控制鎖的開關(guān),這種開鎖方式的鎖就是電子密碼鎖。在如今人們的日常生活中,人們也逐漸意識到智能鎖的方便、快捷,希望我們不僅是科技與這些主流國家達到了同一水平,也希望我們的人民對使用科技帶來的便捷的水平也達到一致。在跟隨智能化浪潮的今天,對智能鎖的市場需求一日比一日高,現(xiàn)在智能鎖已經(jīng)成為鎖具行業(yè)的發(fā)展潮流。但是在智能鎖的實際使用體驗中,還是存在些許問題。我曾體驗過多種藍(lán)牙鎖、但是這種藍(lán)牙鎖有著十分明顯的弊端,每次開鎖都需要先連接上藍(lán)牙然后再進行開鎖動作,連接藍(lán)牙這個過程需要兩至三分鐘,這使得一個本身為了便捷而設(shè)計的鎖,失去了它的本來意義。所以我覺得,在當(dāng)前背景下,設(shè)計一款這樣更實用、更便捷的鎖,能讓我們的生活更便利。1.3本文結(jié)構(gòu)根據(jù)內(nèi)容可以將本文分為四個章節(jié),下面介紹各個章節(jié)的大致內(nèi)容:第一章首先引出了本設(shè)計的選題意義與目的,物聯(lián)網(wǎng)與智能鎖的發(fā)展,RFID技術(shù)的特點,然后介紹了選題背景與現(xiàn)狀。最后給出了本文的結(jié)構(gòu)。然后第二章先是介紹了本設(shè)計開發(fā)時使用的工具,例如軟件部分開發(fā)時使用了Keil5進行編程編譯工作,隨后原理圖的繪制使用了AltiumDesigner;然后介紹了硬件制作時所使用的工具。隨即介紹在本設(shè)計中使用的主要技術(shù),首先是RFID即無線射頻識別技術(shù),然后介紹了紅外遙控技術(shù),最后介紹了本設(shè)計中使用的編程語言——C語言。第三章介紹了智能鎖的總體設(shè)計方案,即是主要需要實現(xiàn)的功能,然后分別展示了功能實現(xiàn)部分的代碼,然后介紹了在硬件部分的設(shè)計以及硬件部分中主要的元器件的原理和使用方法,然后展示了硬件設(shè)計的原理圖。最后展示了軟件程序部分的設(shè)計思路以及主要實現(xiàn)代碼。第四章首先介紹了如何制作硬件部分,此部分分為焊接和程序燒錄兩部分;最后展示了本設(shè)計實現(xiàn)的功能。第二章智能鎖開發(fā)技術(shù)2.1開發(fā)工具2.1.1軟件開發(fā)工具本設(shè)計中軟件開發(fā)部分,使用了Keil5和AltiumDesigner。Keil5是單片機C語言開發(fā)軟件;AltiumDesigner是原理圖設(shè)計軟件。這兩個軟件都有十分強大的功能,是電子產(chǎn)品開發(fā)過程中必不可少的軟件。2.1.2硬件制作工具在智能鎖硬件焊接制作時所需工具有:電子剪鉗、電烙鐵、焊錫、OK線,吸焊器等。2.2技術(shù)介紹2.2.1RFIDRFID即無線射頻識別技術(shù)通過無線電波不接觸快速信息交換和存儲技術(shù),通過無線通信結(jié)合數(shù)據(jù)訪問技術(shù),然后連接數(shù)據(jù)庫系統(tǒng),加以實現(xiàn)非接觸式的雙向通信,從而達到了識別的目的,用于數(shù)據(jù)交換,串聯(lián)起一個極其復(fù)雜的系統(tǒng)[1]。射頻識別技術(shù)依據(jù)其標(biāo)簽的供電方式可分為三類,即無源RFID,有源RFID,與半有源RFID[2],具體如表2-1。表2-1三種RFID產(chǎn)品比較無源RFID有源RFID半有源RFID通信原理電子標(biāo)簽通過接受射頻識別閱讀器傳輸來的微波信號,以及通過電磁感應(yīng)線圈獲取能量來對自身短暫供電主動向射頻識別閱讀器發(fā)送信號先利用低頻信號精確定位,再利用高頻信號快速傳輸數(shù)據(jù)供電方式無供電外接電源供電僅對標(biāo)簽中保持?jǐn)?shù)據(jù)的部分進行供電感應(yīng)范圍識別距離較短識別距離較遠(yuǎn),可在百米外識別根據(jù)閱讀器的密度不同,感應(yīng)范圍不同產(chǎn)品大小可到厘米級或更小體積較大多部件應(yīng)用范圍公交卡、二代身份證、食堂餐卡等高速公路ETC在一個高頻信號所能所覆蓋的大范圍中,在不同位置安置多個低頻閱讀器用于激活半有源RFID產(chǎn)品根據(jù)這三種RFID產(chǎn)品的特性,可以得出半有源RFID產(chǎn)品不適合電子智能鎖的應(yīng)用,再對有源RFID卡與無源RFID卡的性能比較如表2-2[3]。在這兩者進行比較后可以得到最適合智能鎖的RFID產(chǎn)品是無源RFID卡片。表2-2有源RFID卡與無源RFID卡的性能比較有源RFID卡無源RFID卡電池一次性電池,無法更換。無非常溫度下工作不能能使用壽命使用壽命受到卡使用情況限制,實際使用情況會造成卡壽命不穩(wěn)定,理想使用壽命為7~10年,但因每卡每天使用的次數(shù)及環(huán)境不同,實際中,有些卡只能用幾個月,有些卡可以使用5年以上,無法控制。系統(tǒng)一致性很好,無源卡的使用年限可以保證10年以上,無需維護。物理特征卡的尺寸大,稍厚,稍重外型小巧,輕,薄,安裝方便,適用各種情況使用防拆標(biāo)簽外露無法做到標(biāo)簽防拆功能容易做到標(biāo)簽防拆功能成本較高較低讀寫距離讀寫距離比較遠(yuǎn)可達12米讀寫距離比較近幾十厘米以內(nèi)讀取速度快慢2.2.2紅外遙控紅外遙控早已經(jīng)不是什么新鮮玩意,但是紅外遙控是一種無線通訊技術(shù),并且可做到不接觸控制,這種技術(shù)抗干擾能力強,信息傳輸可靠,不僅功耗低,成本低,還有容易實現(xiàn)等優(yōu)點,該技術(shù)具有抗干擾能力強、信息傳輸可靠、不僅功耗低、成本低,而且易于實現(xiàn)等優(yōu)點。它被廣泛應(yīng)用于許多電子設(shè)備,尤其是家用電器。幾乎所有的遙控設(shè)備都使用紅外遙感技術(shù)。近年來,它也被擴展到電腦和電腦的手機系統(tǒng)中,人們可以通過智能手機遙控家用電器。在一般的紅外遙控系統(tǒng)中,主要由發(fā)射和接收兩部分組成。2.2.3單片機C語言單片機C語言源于C語言,是在C語言基礎(chǔ)上發(fā)展出來的,在單片機上使用的語言。為了讓單片機讀懂,需要將編寫好的程序進行編譯,編譯成HEX文件后才能燒錄進單片機中。2.3本章小結(jié)在本章中,介紹了RFID智能鎖開發(fā)制作時使用的工具。并對主要使用到的技術(shù):例如RFID技術(shù)、紅外遙控技術(shù)進行了深入的介紹。通過本章可以了解到本設(shè)計使用的開發(fā)軟件是keil5以及AD,主要開發(fā)語言是C語言,主要使用到的無線通信技術(shù)是RFID技術(shù)紅外遙控技術(shù)。第三章智能鎖方案設(shè)計3.1智能鎖總體方案設(shè)計在進行智能鎖的開發(fā)前,首先要明確目標(biāo),本設(shè)計的出發(fā)點是為了設(shè)計一個,有多種開鎖方式且使用RFID技術(shù)的電子智能鎖。所以我的目標(biāo)有以下幾點:(1)RFID接觸卡片開鎖,實現(xiàn)卡片管理,且通過將卡片寫入手機的形式,達成將鑰匙“裝進手機”的目標(biāo)。(2)紅外遙控開鎖(3)藍(lán)牙連接開鎖(4)提高電子智能鎖運行的穩(wěn)定性。(5)管理員模式,可以修改密碼,增加卡片,刪除卡片。3.2硬件設(shè)計在本設(shè)計中的硬件部分由STC89C52RC單片機、LCD1602液晶模塊、RC522射頻模塊、HC-05藍(lán)牙模塊、紅外一體接收頭等組成。其中RC522射頻模塊負(fù)責(zé)讀取RFID卡片,并與單片機進行信息交互。而HC-05藍(lán)牙模塊負(fù)責(zé)單片機與智能手機之間的通信。設(shè)計先由矩陣鍵盤輸入密碼以控制單片機引腳電平來達到開鎖關(guān)鎖。除了通過矩陣鍵盤輸入密碼外還有多種開鎖方式,比如通過RC522射頻模塊預(yù)先寫入RFID卡片,通過使用射頻模塊讀取RFID卡片來進行開鎖;或者通過HC-05藍(lán)牙模塊與安卓設(shè)備連接,通過安卓設(shè)備進行遙控開鎖;又或者使用紅外遙控器,以及通過使用紅外遙控器遠(yuǎn)程輸入密碼開鎖。3.2.1STC89C52單片機介紹STC89C52屬于CMOS8位微控制器,其具有8K字節(jié)系統(tǒng)可編程Flash存儲器。還有具有EEPROM功能,令其在掉電后也不丟失數(shù)據(jù)。它是是許多嵌入式控制應(yīng)用系統(tǒng)的選擇,STC89C52引腳如下圖3-1。圖3-1STC89C52RC引腳3.2.2LCD1602液晶介紹液晶顯示器普遍出現(xiàn)在日常家用電器中,在制作電子產(chǎn)品時液晶顯示模塊也是十分常見,在本設(shè)計中,將采用LCD1602液晶模塊,這個模塊是屬于字符型液晶顯示模塊,以一種點陣式的LCD,1602則代表它的顯示容量為16×2個字符。在單片機系統(tǒng)中輸出元器件選擇晶液顯示器是因為其顯示質(zhì)量好。液晶顯示器在輸出時,在點陣中的每一個點得到是否亮起的信號后維持發(fā)光,直到收到下一次信號,而陰極射線管顯示器則是不斷刷新每個亮點會不斷閃爍,造成畫面不連續(xù),容易讓人眼花,閱讀效果不好,所以并沒有液晶顯示器的顯示質(zhì)量好。LCD1602的DDRAM(DisplayDataRAM)就是研究顯示信息數(shù)據(jù)RAM,用來進行寄存待顯示的字符識別代碼。共80個字節(jié),其地址及相應(yīng)畫面如圖3-2所示。圖3-2數(shù)據(jù)地址和屏幕對應(yīng)的關(guān)系DDRAM其實就是電腦的顯存,如果我們平時想要在電腦屏幕上顯示一句話,很簡單只需要使用鍵盤輸入就行,和電腦一樣,想在LCD1602上輸出字符也需要有輸入設(shè)備,但是LCD1602總共只有80個字節(jié)的顯存,所以也不是每一個寫在顯存上的字符都可以顯示出來。LCD1602各引腳借口說明如表3-1:表3-1LCD1602引腳編號符號引腳說明編號符號引腳說明1VSS電源地9D2數(shù)據(jù)2VDD電源正極10D3數(shù)據(jù)3VL液晶顯示偏壓11D4數(shù)據(jù)4RS數(shù)據(jù)/命令選擇12D5數(shù)據(jù)5R/W讀/寫選擇13D6數(shù)據(jù)6E使能信號14D7數(shù)據(jù)7D0數(shù)據(jù)15BLA背光源正極8D1數(shù)據(jù)16BLK背光源負(fù)極LCD1602液晶模塊內(nèi)部預(yù)先寫入了11條控制指令,其讀寫操作皆由對指令編程來實現(xiàn)如表3-2所示:表3-2控制命令表序號指令RSR/WD7D6D5D4D3D2D1D01清顯示00000000012光標(biāo)返回000000001*3置輸入模式00000001I/DS4顯示開/關(guān)控制0000001DCB5光標(biāo)或字符移位000001S/CR/L**6置功能00001DLNF**7置字符發(fā)生存貯器地址0001字符發(fā)生存貯器地址8置數(shù)據(jù)存貯器地址001顯示數(shù)據(jù)存貯器地址9讀忙標(biāo)志或地址01BF計數(shù)器地址10寫數(shù)到CGRAM或DDRAM)10要寫的數(shù)據(jù)內(nèi)容11從CGRAM或DDRAM讀數(shù)11讀出的數(shù)據(jù)內(nèi)容3.2.3RC522射頻模塊介紹該模塊是用MFRC522芯片為主體設(shè)計出的無源RFID讀卡集成電路,將復(fù)雜電路集成為一個完整模塊,集成后僅需8個腳即可連接控制,配合單片機進行開發(fā),是本設(shè)計開發(fā)首選,而且可以保證模塊讀卡穩(wěn)定、讀卡感應(yīng)距離遠(yuǎn)。因為無源RFID卡片自身沒有電源,而只有一個諧振電路,所以需要讀卡裝置向RFID卡發(fā)射電磁波,而這個電磁波的頻率需要和RFID卡的頻率相同,這樣RFID卡內(nèi)的諧振電路才會產(chǎn)生共振。共振才使得RFID卡片內(nèi)部電容有電荷,有電荷后才能用這個電荷為RFID卡內(nèi)的電路提供電壓,實現(xiàn)將卡內(nèi)數(shù)據(jù)發(fā)出或讀取讀寫器的數(shù)據(jù)。RC522射頻模塊原理如3-3圖所示。圖3-3RC522射頻模塊原理圖3.2.4HC-05藍(lán)牙模塊介紹在本設(shè)計中使用HC-05藍(lán)牙模塊與智能手機通信,在分類上它屬于串口藍(lán)牙模塊。使用它十分方便,幾乎無需了解藍(lán)牙部分原理,只需要了解串口如何使用就可以通過此模塊使用藍(lán)牙在單片機與智能機之間通信。各引腳接口說明如表3-3:表3-3HC-05藍(lán)牙模塊引腳編號引腳名引腳說明1RXD接收端2TXD發(fā)送端3AT設(shè)置工作模式4VCC模塊供電正極5GND模塊供電負(fù)極3.2.5紅外一體接收頭介紹紅外一體接收頭是紅外遙控系統(tǒng)中的接收部分,它的最主要功能就是將接收到的光信號轉(zhuǎn)換成電流信號再轉(zhuǎn)換成遙控碼,讓單片機得到讀得懂的數(shù)據(jù),從而可以達到相應(yīng)的功能。如圖3-4紅外發(fā)射及接收示意圖展示了紅外遙控的過程圖3-4紅外發(fā)射及接收示意圖3.2.6智能鎖原理圖本設(shè)計原理圖如圖3-5使用AltiumDesigner繪制。圖3-5智能鎖原理圖3.3軟件設(shè)計按下自鎖開關(guān)開機后單片機系統(tǒng)開始運行,首先初始化中斷系統(tǒng)、初始化LCD1602液晶顯示、初始化RC522射頻模塊、初始化EEPROM芯片、調(diào)用刷卡識別函數(shù),然后判斷鎖定標(biāo)志是否為1,如是1代表三次輸入密碼錯誤,則開啟鎖定報警功能;如鎖定標(biāo)志不為1,則關(guān)閉鎖定報警模塊,判定鎖定標(biāo)志后調(diào)用掃描按鍵函數(shù),判定是否輸入正確密碼解除鎖定報警或是輸入功能按鍵執(zhí)行相應(yīng)操作。圖3-6主要程序流程3.3.1液晶顯示部分代碼本部分是液晶顯示部分控制代碼,通過本部分代碼定義了對液晶顯示屏的基本操作,例如液晶顯示屏顯示的位置以及寫入指令和數(shù)據(jù)的方法。#defineyi0x80//第一行的初始位置#defineer0x80+40//第二行初始位置voiddelay(uintxms)//延時函數(shù){ uintx,y; for(x=xms;x>0;x--) for(y=110;y>0;y--);}voidwrite_1602com(ucharcom)//寫入指令{ lcd1602_rs=0;//數(shù)據(jù)/指令選擇置為指令 lcd1602_rw=0;//讀寫選擇置為寫 P0=com;//送入數(shù)據(jù) delay(1); lcd1602_en=1; delay(1); lcd1602_en=0;}voidwrite_1602dat(uchardat)//寫數(shù)據(jù){ lcd1602_rs=1;//數(shù)據(jù)/指令選擇置為數(shù)據(jù) lcd1602_rw=0;//讀寫選擇置為寫 P0=dat;//送入數(shù)據(jù) delay(1); lcd1602_en=1; delay(1); lcd1602_en=0;}voidlcd_init(){//初始化 write_1602com(0x38);//設(shè)置液晶工作模式 write_1602com(0x01);//清顯示 write_1602com(0x0c);//開顯示不顯示光標(biāo) write_1602com(0x06);//整屏不移動,光標(biāo)自動右移}3.3.2射頻模塊代碼通過本部分代碼對射頻模塊進行控制,如果輸入管理員密碼就進入管理員模式,這個模式下可以對卡片進行刪除、保存等操作。進入此模式后按A鍵進行卡位切換,預(yù)先設(shè)置了6個空卡位,切換到空卡位上后可以按C鍵存儲卡片;切換到已存儲的卡位上按B鍵可以刪除卡片。else {//如果通過矩陣鍵盤輸入管理員密碼131420進入管理員模式 if((InputData[0]==1)&&(InputData[1]==3)&&(InputData[2]==1)&&(InputData[3]==4)&&(InputData[4]==2)&&(InputData[5]==0)) { TwoAlam(); Delay400Ms(); TwoAlam(); N=0; chushihua=1; }voiddisplay_id(unsignedcharxdata*SrcBuf){ charxdata*pDisplayChar; unsignedcharxdataTmp,i; pDisplayChar=DisplayBuf; for(i=0;i<4;i++) { Tmp=((*SrcBuf)>>4)&0x0F; if((Tmp>=0)&&(Tmp<=9) ) { *pDisplayChar++='0'+Tmp; } else { *pDisplayChar++='A'+Tmp-10; } Tmp=(*SrcBuf)&0x0F; if((Tmp>=0)&&(Tmp<=9) ) { *pDisplayChar++='0'+Tmp; } else { *pDisplayChar++='A'+Tmp-10; } SrcBuf++; } *pDisplayChar++='\0';//向1602寫入數(shù)據(jù) if(chushihua==1) {write_1602com(0xc0); write_1602dat('I'); write_1602dat('D'); write_1602dat(current_id+0x30); write_1602dat(':'); write_1602dat(DisplayBuf[0]); write_1602dat(DisplayBuf[1]); write_1602dat(DisplayBuf[2]); write_1602dat(DisplayBuf[3]); write_1602dat(DisplayBuf[4]); write_1602dat(DisplayBuf[5]); write_1602dat(DisplayBuf[6]); write_1602dat(DisplayBuf[7]); write_1602dat(''); write_1602dat('');write_1602dat('');write_1602dat('');write_1602dat(''); }}voiddisplay_no_id(){write_1602com(0xc0); write_1602dat('I'); write_1602dat('D'); write_1602dat(current_id+0x30); write_1602dat(':'); write_1602dat(DisplayBuf_c[0]); write_1602dat(DisplayBuf_c[1]); write_1602dat(DisplayBuf_c[2]); write_1602dat(DisplayBuf_c[3]); write_1602dat(DisplayBuf_c[4]); write_1602dat(DisplayBuf_c[5]); write_1602dat(DisplayBuf_c[6]); write_1602dat(DisplayBuf_c[7]); write_1602dat(''); write_1602dat('');write_1602dat('');write_1602dat('');write_1602dat('');}voidctrl(void){ucharj,i; if(PcdRequest(PICC_REQIDL,&CardRevBuf[0])!=MI_OK)//尋天線區(qū)內(nèi)未進入休眠狀態(tài)的卡,返回卡片類型2字節(jié) { if(PcdRequest(PICC_REQIDL,&CardRevBuf[0])!=MI_OK)//尋天線區(qū)內(nèi)未進入休眠狀態(tài)的卡,返回卡片類型2字節(jié) { if(chushihua==1) { read_eeprom_j(current_id); display_no_id(); } return; } } if(PcdAnticoll(&CardRevBuf[2])!=MI_OK)//防重復(fù),返回卡的序列號4字節(jié) { if(chushihua==1) { read_eeprom_j(current_id); display_no_id(); } return; } if(PcdSelect(&CardRevBuf[2])!=MI_OK)//選卡 { if(chushihua==1) { read_eeprom_j(current_id); display_no_id(); } return; } display_id(&CardRevBuf[2]); if(CorrectCont==0&&pass==0) { for(j=0;j<6;j++) { read_eeprom_j(j); if(DisplayBuf[0]==DisplayBuf_c[0]&&DisplayBuf[1]==DisplayBuf_c[1]&&DisplayBuf[2]==DisplayBuf_c[2]&&DisplayBuf[3]==DisplayBuf_c[3]&&DisplayBuf[4]==DisplayBuf_c[4]&&DisplayBuf[5]==DisplayBuf_c[5]) { CorrectCont=1; write_1602com(er); for(j=0;j<16;j++) { write_1602dat(LockOpen[j]); } TwoAlam(); //操作成功提示音 ErrorCont=0; KEY=0; //開鎖 pass=1; //置正確標(biāo)志位 TR0=1; //開啟定時 for(j=0;j<6;j++) //將輸入清除 { InputData[i]=0; } return; } } }}3.3.3主函數(shù)此部分代碼為主函數(shù)代碼,對LCD1602進行初始化、對RC-522射頻模塊進行初始化、對eeprom進行初始化。然后設(shè)置共六個功能鍵的功能,還設(shè)置了蜂鳴器響的模式。voidmain(){ unsignedcharKEY,NUM; unsignedchari,j; P1=0xFF; EA=1; TMOD=0x21; IT1=1; EX1=1; TH0=0;//T0賦初值 TL0=0; TR0=0;//t0開始計時 TH1=0Xfd; TL1=0Xfd; //9600 ET1=0; TR1=1; SM0=0; //設(shè)置串口的工作模式 SM1=1; //方式1 REN=1; //允許串口接收數(shù)據(jù) ES=1; //串口中斷應(yīng)許 Delay400Ms(); //啟動等待,等LCM講入工作狀態(tài) lcd_init(); //LCD初始化 write_1602com(yi);//日歷顯示固定符號從第一行第0個位置之后開始顯示 init_rc522();//射頻模塊初始化 init_eeprom();//eeprom初始化 read_eeprom(); for(i=0;i<16;i++) { write_1602dat(name[i]);//向液晶屏寫日歷顯示的固定符號部分 } write_1602com(er);//時間顯示固定符號寫入位置,從第2個位置后開始顯示 for(i=0;i<16;i++) { write_1602dat(start_line[i]);//寫顯示時間固定符號,兩個冒號 } write_1602com(er+9); //設(shè)置光標(biāo)位置 write_1602com(0x0f); //設(shè)置光標(biāo)為閃爍 Delay5Ms();//延時片刻(可不要) N=0;//初始化數(shù)據(jù)輸入位數(shù) while(1) { ctrl(); if(key_disable==1) Alam_KeyUnable(); else ALAM=1;//關(guān)報警 KEY=keynum(); if(KEY!=0||IrOK==1) { if(key_disable==1) { second=0; } else { NUM=coding(Im[2],KEY); { switch(NUM) {//按鍵功能 case('A'):if(chushihua==1)//A鍵在管理卡片模式切換卡位 { current_id++; if(current_id>5) current_id=0; } break; case('B'): if(chushihua==1)//B鍵在管理卡片模式刪除卡片 write_eeprom_jj(current_id) ; break; case('C'):if(chushihua==1)//C鍵在管理卡片模式存儲卡片 write_eeprom_j(current_id) ; break; case('D'):chushihua=0;ResetPassword(); break;//D鍵在管理模式中重置密碼 case('*'):chushihua=0;Cancel(); break;//*取消當(dāng)前輸入 case('#'):chushihua=0;Ensure(); break; //#確認(rèn)鍵 default: { chushihua=0; //DisplayListChar(0,1,Input); write_1602com(er); for(i=0;i<16;i++) { write_1602dat(Input[i]); } operation=0; if(N<6) //判斷輸入密碼,小于等于6位進行保存 { OneAlam(); //按鍵提示音 //DisplayOneChar(6+N,1,'*'); for(j=0;j<=N;j++) { write_1602com(0x80+46+j); write_1602dat('*'); } InputData[N]=NUM; N++; } else //輸入密碼位數(shù)大于6后,忽略輸入 { N=6; break; } } } } } } }}3.3.4重置密碼通過鍵盤掃描按鍵D鍵可以進行密碼重置。具體操作是在開機后按D鍵,連續(xù)輸入兩次密碼,中間不關(guān)鎖,此時液晶屏上會顯示“SetNewWordEnable”。然后可以輸入新密碼,輸入后按D鍵,液晶屏上出現(xiàn)“inputagain”重復(fù)以上動作一次,新密碼設(shè)置成功。voidResetPassword(){ unsignedchari; unsignedcharj; if(pass==0) { pass=0; DisplayChar(); ThreeAlam(); } else { if(ReInputEn==1) { if(N==6) { ReInputCont++; if(ReInputCont==2) { for(i=0;i<6;) { if(TempPassword[i]==InputData[i]) //將兩次輸入的新密碼作對比 i++; else { //DisplayListChar(0,1,Error); write_1602com(er); for(j=0;j<16;j++) { write_1602dat(Error1[j]); } ThreeAlam(); //錯誤提示 pass=0; ReInputEn=0; //關(guān)閉重置功能, ReInputCont=0; DisplayChar(); break; } } if(i==6) { //DisplayListChar(0,1,ResetOK); write_1602com(er); for(j=0;j<16;j++) { write_1602dat(ResetOK[j]); } TwoAlam(); //操作成功提示write_eeprom(); ReInputEn=0; } ReInputCont=0; CorrectCont=0; } else { OneAlam(); //DisplayListChar(0,1,again); //顯示再次輸入一次 write_1602com(0x80+40); for(j=0;j<16;j++) { write_1602dat(again[j]); } for(i=0;i<6;i++) { TempPassword[i]=InputData[i]; //將第一次輸入的數(shù)據(jù)暫存起來 } } N=0; //輸入數(shù)據(jù)位數(shù)計數(shù)器清零 } } }}3.3.5掃描按鍵函數(shù)本段包括了按鍵輸入檢測,然后返回按鍵數(shù)值,將輸入密碼顯示時用“*”代替。unsignedcharkeynum(){ unsignedcharrow,col,i; if(flag_REC==1) // { flag_REC=0; if(buff[0]=='O'&&buff[1]=='N') switch(buff[2]) { case'1': return(0x11); break; case'2': return(0x21); break; case'3': return(0x41); break; case'4': return(0x12); break; case'5': return(0x22); break; case'6': return(0x42); break; case'7': return(0x14); break; case'8': return(0x24); break; case'9': return(0x44); break; case'A': return(0x84); break; case'B': return(0x18); break; case'C': return(0x48); break; case'D': return(0x88); break; case'E': return(0x28); break; } } P1=0xf0; if((P1&0xf0)!=0xf0) { Delay5Ms();Delay5Ms(); if((P1&0xf0)==0xf0) { row=P1^0xf0;//確定行線 i=0; P1=a[i]; while(i<4) { if((P1&0xf0)==0xf0) { col=~(P1&0xff); //確定列線 break; } else { i++; P1=a[i]; } } } else { return0; } while((P1&0xf0)==0xf0); return(row|col); //行線與列線組合后返回 } elsereturn0; }//蜂鳴器響一聲,輸入提示voidOneAlam(){ ALAM=0; Delay5Ms();ALAM=1;}//兩聲提示,操作成功voidTwoAlam(){ ALAM=0; Delay5Ms();ALAM=1;Delay5Ms(); ALAM=0; Delay5Ms();ALAM=1;}//三聲提示,密碼錯誤voidThreeAlam(){ ALAM=0; Delay5Ms();ALAM=1;Delay5Ms(); ALAM=0; Delay5Ms();ALAM=1;Delay5Ms(); ALAM=0; Delay5Ms();ALAM=1;}//輸入位數(shù)顯示,用“*”代替真實數(shù)字voidDisplayOne(){ write_1602com(yi+5+N); write_1602dat('*');}3.3.6取消鍵此部分代碼設(shè)置了取消鍵的功能。voidCancel(){ unsignedchari; unsignedcharj; //DisplayListChar(0,1,start_line); write_1602com(er); for(j=0;j<16;j++) { write_1602dat(start_line[j]); } TwoAlam(); //提示音 for(i=0;i<6;i++) { InputData[i]=0; } KEY=1; //關(guān)閉鎖 ALAM=1; //報警關(guān) operation=0; //操作標(biāo)志位清零 pass=0; //密碼正確標(biāo)志清零 ReInputEn=0; //重置輸入充許標(biāo)志清零// ErrorCont=0; //密碼錯誤輸入次數(shù)清零 CorrectCont=0; //密碼正確輸入次數(shù)清零 ReInputCont=0; //重置密碼輸入次數(shù)清零 s3_keydown=0; key_disable=0; N=0; //輸入位數(shù)計數(shù)器清零}3.4本章小結(jié)在本章中介紹了本設(shè)計中主要的元器件,以及主要程序設(shè)計的思路。對本設(shè)計的原理圖進行了展示,然后展示了液晶顯示部分的代碼,通過此部分代碼定義了對液晶顯示屏的基本操作,例如液晶顯示屏顯示的位置以及寫入指令和數(shù)據(jù)的方法。然后展示了射頻模塊的代碼,通過此部分代碼對射頻模塊進行控制,對卡片進行刪除、保存等操作。然后展示了主函數(shù)部分代碼,此部分代碼對LCD1602進行初始化、對RC-522射頻模塊進行初始化、對eeprom進行初始化。然后設(shè)置共六個功能鍵的功能,還設(shè)置了蜂鳴器響的模式。接下來展示了重置密碼功能部分的代碼,此代碼通過鍵盤掃描按鍵D鍵可以進行密碼重置。然后展示了掃描按鍵函數(shù)部分代碼,此部分代碼包括了按鍵輸入檢測,然后返回按鍵數(shù)值,將輸入密碼顯示時用“*”代替。最后展示了取消鍵部分的代碼,此部分代碼設(shè)置了取消鍵的功能。通過本章可以了解到本設(shè)計住主要部分由STC89C52單片機、LCD1602、RC522射頻模塊、HC-05藍(lán)牙模塊、紅外一體接收頭組成,并且介紹了這些元器件,通過這些模塊來實現(xiàn)主要功能;還對代碼進行了介紹。第四章智能鎖功能實現(xiàn)4.1RFID智能鎖硬件制作4.1.1焊接在焊接中,需準(zhǔn)備所需元器件,根據(jù)原理圖將元器件焊接。在焊接中需注意觀察元器件不要焊錯腳;錫點要適中,不要過大或過?。蛔⒁獠灰孫K線內(nèi)的銅線露出來以免相鄰線路接觸導(dǎo)致短路;電烙鐵不要停留過長時間,以免元器件過熱導(dǎo)致?lián)p壞;焊接時應(yīng)盡量注意美觀。將元器件焊接到覆銅洞洞板上。焊接完成如圖4-1。圖4-1焊接完成4.1.2程序燒錄將rfidlock.uvproj進行編譯,編譯成功如圖4-2,編譯后得到rfidlock.hex文件。圖4-2編譯完成圖編譯完成后得到HEX格式文件,將其使用下載器和下載軟件燒錄到STC89C52RC單片機中。圖4-3單片機下載器4.2密碼開鎖密碼開鎖功能是該電子鎖的最基礎(chǔ)功能,通過矩陣鍵盤輸入密碼進行開鎖,通過輸入管理員密碼,進行更改密碼等操作,為了使開鎖結(jié)果更為直觀,在本設(shè)計中,我用一個發(fā)光二極管來代替了電磁鎖,即是說,發(fā)光二極管亮,便代表開鎖成功。如圖4-4為智能鎖未通電時及發(fā)光二極管位置。圖4-4智能鎖未通電如圖4-5按下自鎖開關(guān)為智能鎖通電,進入待輸入密碼狀態(tài)。圖4-5智能鎖通電如圖4-3通過矩陣鍵盤輸入正確密碼,發(fā)光二極管亮起,繼電器吸合,開鎖成功,液晶屏顯示“open”。圖4-6密碼鎖開啟按D鍵重置密碼,重復(fù)輸入兩次原密碼,液晶屏顯示“SetNewWordEnable”,如圖4-7.圖4-7設(shè)置新密碼輸入新密碼后按D鍵,液晶屏上顯示“inputagain”,重復(fù)以上動作,液晶屏顯示“ResetPasswordOk”,新密碼設(shè)置完成。圖4-8密碼設(shè)置完成4.3RFID卡片開鎖為演示方便,準(zhǔn)備了兩種外觀不同的RFID卡片,如圖4-9。(1) 開鎖圖右邊的白卡已經(jīng)寫入到智能鎖中,圖左邊的藍(lán)卡未寫入。所以此時可以用白卡開鎖,而藍(lán)卡不行如圖4-10與圖4-11。開鎖時將RFID卡片放至智能鎖右側(cè)RC522讀卡模塊上。圖4-9RFID卡片圖4-10白卡開鎖圖4-11藍(lán)卡無法開鎖(2) 添加卡片.通過輸入管理密碼進入卡片管理模式,輸入密碼后可以看到有六個卡位,為ID0-ID5,按A鍵可以切換卡位,如圖4-12,ID2為空,把藍(lán)卡放在RC522模塊上按C鍵將卡片存入卡位中,如圖4-13。圖4-12ID2圖4-13寫入ID2(3) 刪除卡片圖4-9中白卡預(yù)先寫入在ID3中,進入管理模式,切換到ID3按B鍵刪除卡片,如圖4-14,刪除后白卡不能開鎖,如圖4-15.圖4-14ID3圖4-15白卡無法開鎖4.4紅外遙控開鎖通用紅外遙控系統(tǒng)由發(fā)射和接收兩大部分組成,本設(shè)計中,發(fā)射部分上的鍵位如圖4-16標(biāo)注,數(shù)字鍵與矩陣鍵盤相同,通過使用發(fā)射器輸入密碼即可開鎖,與密碼開鎖部分相同,在此不多展示。圖4-16紅外發(fā)射器4.5藍(lán)牙開鎖本設(shè)計中,智能鎖通過HC-05藍(lán)牙模塊與安卓設(shè)備連接,連接后,通過安卓APP輸入密碼即可開鎖,與密碼開鎖部分相同,在此不多展示。安卓設(shè)備連接智能鎖如圖4-17。圖4-17藍(lán)牙連接成功4.6本章小結(jié)在本章中主要介紹了RFID智能鎖硬件部分制作,以及展示了本設(shè)計的各個功能的實現(xiàn),包括了如何使用密碼開鎖、RFID卡片開鎖、紅外遙控開鎖、藍(lán)牙開鎖這些開鎖功能的實現(xiàn);以及RFID卡片的管理、密碼修改功能。?結(jié)論通過幾個月的努力,學(xué)習(xí)了很多單片機開發(fā)的知識。在一開始選題時,我還沒意識到這是多么大的一個挑戰(zhàn),不僅是知識儲備上的挑戰(zhàn),更是自我管理、自我學(xué)習(xí)、自我監(jiān)督能力的挑戰(zhàn)。紙上得來終覺淺,終究是要親自動手做了才知道有多難,在此對這幾個月以來的開發(fā)學(xué)習(xí)進行一個總結(jié)。雖然所做的項目并沒做到自己最開始預(yù)期的效果,當(dāng)然作為一個悲觀主義者,在項目開始時,我就做過最壞的打算。在剛開始開發(fā)時需要前期自學(xué)許多知識,曾一度悔恨為啥自己給自己挖坑,但是事已至此覆水難收,雖然這是一個難題,但也是對我的挑戰(zhàn)。在項目開發(fā)其中,我有過犯過許多錯誤,比如在焊接過程中,由于自己沒有看清楚元器件,導(dǎo)致我一個10KΩ的排阻焊接反了,后續(xù)雖然使用吸焊器將排阻拆下來,但是由于焊接錫點粘住了銅座,導(dǎo)致銅座也被錫焊器一起吸了下來。沒有銅座,讓接下來的焊接十分困難、無論點多少錫都沒有辦法焊在洞洞板上,最后智能在電烙鐵低溫狀態(tài)時焊接,其過程十分令人心煩。然而心煩沒有任何幫助,在有了這次教訓(xùn)以后、焊接中沒再出過什么大問題。還有在燒錄程序過程中,剛開始時我在單片機上焊了接口進行燒錄,剛開始使用了一個串口轉(zhuǎn)usb的模塊嘗試燒錄程序,但是多次燒錄失敗,我檢查了焊點并沒問題,實在找不到原因我才打算更換另一種燒錄方式。然后我使用了一個成品燒錄下載板,才成功燒錄。但是禍不單行,由于設(shè)計中使用了排針和母座可以將主要元器件進行插拔方便調(diào)試,在STC燒錄完成后將它插進母座時掰斷了一個引腳,當(dāng)時沒有多余的元器件,但是引腳斷就無法插進母座的卡口中,好在只有一個引腳斷了,于是靈機一動,將斷了的引腳上焊上了一節(jié)從別的元器件上剪下來的引腳才總算解決了。積沙成塔,一點一滴小小的錯誤解決完堆積成一個沙丘,當(dāng)我犯過各種各樣的錯誤后才能不犯錯誤、少犯錯誤,每一次失敗都是為后來做鋪墊,我不會氣餒,下一次也會抱著這種心態(tài)繼續(xù)努力,只要成功了,我的付出就是值得的。參考文獻[1]李成淵.射頻識別技術(shù)的應(yīng)用與發(fā)展研究[J].無線互聯(lián)科技,2016(20):146-148.[2]陸鋅渤.淺析射頻識別技術(shù)[J].中國新通信,2018,20(1):67-68.[3]RFID行業(yè)前沿資訊.RFID工作原理(圖)及標(biāo)簽分類(按供電方式)[OL],/s/blog_6857047c0101cg5t.html,2013.[4]李洪明.漫談紅外遙控[J].電子世界,2000(01):53.[5]吳媛媛,葉茂森.紅外遙控技術(shù)淺析[J].廣西輕工業(yè),2009(01):72-73.[6]譚浩強.C程序設(shè)計(第四版):清華大學(xué)出版社,2010年:7-10致謝幾個月來,在畢業(yè)設(shè)計的選題、開題、開發(fā)等等過程中,終于感受到了大學(xué)終于要結(jié)束了,這是我作為學(xué)生完成的最后一樣作業(yè),雖然不夠完美,但已經(jīng)是我能交出的最好的答卷。在幾個月里的時間里,很感謝劉翠蓮導(dǎo)師對我的指導(dǎo),特別是在開題報告的撰寫內(nèi)容與格式的指導(dǎo)上,以及中期報告的完成乃至最后的論文的確定都提供了莫大的幫助。非常感謝劉老師這幾個月來的辛勤付出,每次學(xué)校的通知安排總是第一時間告知我們,獻上感激之情與尊敬之意。也辛苦導(dǎo)師不厭其煩的為我審批、訂正。也要感謝老師容忍我總是“拖后腿”,跟不上其他同學(xué)的進度。同時也要感謝我電子工程專業(yè)的同學(xué),在開發(fā)過程中為我提供的指導(dǎo)與幫助。為我犧牲自己的學(xué)習(xí)時間,拖慢了自己的論文進度,在此向她致謝。
ExcelXP的八則快速輸入技巧如果我們在用ExcelXP處理龐大的數(shù)據(jù)信息時,不注意講究技巧和方法的話,很可能會花費很大的精力。因此如何巧用ExcelXP,來快速輸入信息就成為各個ExcelXP用戶非常關(guān)心的話題,筆者向大家介紹幾則這方面的小技巧。1、快速輸入大量含小數(shù)點的數(shù)字如果我們需要在ExcelXP工作表中輸入大量的帶有小數(shù)位的數(shù)字時,按照普通的輸入方法,我們可能按照數(shù)字原樣大小直接輸入,例如現(xiàn)在要在單元格中輸入0.05這個數(shù)字時,我們會把“0.05”原樣輸入到表格中。不過如果需要輸入若干個帶有小數(shù)點的數(shù)字時,我們再按照上面的方法輸入的話,每次輸入數(shù)字時都需要重復(fù)輸入小數(shù)點,這樣工作量會變大,輸入效率會降低。其實,我們可以使用ExcelXP中的小數(shù)點自動定位功能,讓所有數(shù)字的小數(shù)點自動定位,從而快速提高輸入速度。在使用小數(shù)點自動定位功能時,我們可以先在ExcelXP的編輯界面中,用鼠標(biāo)依次單擊“工具”/“選項”/“編輯”標(biāo)簽,在彈出的對話框中選中“自動設(shè)置小數(shù)點”復(fù)選框,然后在“位數(shù)”微調(diào)編輯框中鍵入需要顯示在小數(shù)點右面的位數(shù)就可以了。以后我們再輸入帶有小數(shù)點的數(shù)字時,直接輸入數(shù)字,而小數(shù)點將在回車鍵后自動進行定位。例如,我們要在某單元格中鍵入0.06的話,可以在上面的設(shè)置中,讓“位數(shù)”選項為2,然后直接在指定單元格中輸入6,回車以后,該單元格的數(shù)字自動變?yōu)椤?.06”,怎么樣簡單吧?2、快速錄入文本文件中的內(nèi)容現(xiàn)在您手邊假如有一些以純文本格式儲存的文件,如果此時您需要將這些數(shù)據(jù)制作成ExcelXP的工作表,那該怎么辦呢?重新輸入一遍,大概只有頭腦有毛病的人才會這樣做;將菜單上的數(shù)據(jù)一個個復(fù)制/粘貼到工作表中,也需花很多時間。沒關(guān)系!您只要在ExcelXP中巧妙使用其中的文本文件導(dǎo)入功能,就可以大大減輕需要重新輸入或者需要不斷復(fù)制、粘貼的巨大工作量了。使用該功能時,您只要在ExcelXP編輯區(qū)中,依次用鼠標(biāo)單擊菜單欄中的“數(shù)據(jù)/獲取外部數(shù)據(jù)/導(dǎo)入文本文件”命令,然后在導(dǎo)入文本會話窗口選擇要導(dǎo)入的文本文件,再按下“導(dǎo)入”鈕以后,程序會彈出一個文本導(dǎo)入向?qū)υ捒?,您只要按照向?qū)У奶崾具M行操作,就可以把以文本格式的數(shù)據(jù)轉(zhuǎn)換成工作表的格式了。3、快速輸入大量相同數(shù)據(jù)如果你希望在不同的單元格中輸入大量相同的數(shù)據(jù)信息,那么你不必逐個單元格一個一個地輸入,那樣需要花費好長時間,而且還比較容易出錯。你可以通過下面的操作方法在多個相鄰或不相鄰的單元格中快速填充同一個數(shù)據(jù),具體方法為:首先同時選中需要填充數(shù)據(jù)的單元格。若某些單元格不相鄰,可在按住Ctrl鍵的同時,點擊鼠標(biāo)左鍵,逐個選中;其次輸入要填充的某個數(shù)據(jù)。按住Ctrl鍵的同時,按回車鍵,則剛才選中的所有單元格同時填入該數(shù)據(jù)。4、快速進行中英文輸入法切換一張工作表常常會既包含有數(shù)字信息,又包含有文字信息,要錄入這樣一種工作表就需要我們不斷地在中英文之間反復(fù)切換輸入法,非常麻煩,為了方便操作,我們可以用以下方法實現(xiàn)自動切換:首先用鼠標(biāo)選中需要輸入中文的單元格區(qū)域,然后在輸入法菜單中選擇一個合適的中文輸入法;接著打開“有效數(shù)據(jù)”對話框,選中“IME模式”標(biāo)簽,在“模式”框中選擇打開,單擊“確定”按鈕;然后再選中輸入數(shù)字的單元格區(qū)域,在“有效數(shù)據(jù)”對話框中,單擊“IME模式”選項卡,在“模式”框中選擇關(guān)閉(英文模式);最后單擊“確定”按鈕,這樣用鼠標(biāo)分別在剛才設(shè)定的兩列中選中單元格,五筆和英文輸入方式就可以相互切換了。5、快速刪除工作表中空行刪除ExcelXP工作表中的空行,一般的方法是需要將空行都找出來,然后逐行刪除,但這樣做操作量非常大,很不方便。那么如何才能減輕刪除工作表中空行的工作量呢?您可以使用下面的操作方法來進行刪除:首先打開要刪除空行的工作表,在打開的工作表中用鼠標(biāo)單擊菜單欄中的“插入”菜單項,并從下拉菜單中選擇“列”,從而插入一新的列X,在X列中順序填入整數(shù);然后根據(jù)其他任何一列將表中的行排序,使所有空行都集中到表的底部。刪去所有空行中X列的數(shù)據(jù),以X列重新排序,然后刪去X列。按照這樣的刪除方法,無論工作表中包含多少空行,您就可以很快地刪除了。6、快速對不同單元格中字號進行調(diào)整在使用ExcelXP編輯文件時,常常需要將某一列的寬度固定,但由于該列各單元格中的字符數(shù)目不等,致使有的單元格中的內(nèi)容不能完全顯示在屏幕上,為了讓這些單元格中的數(shù)據(jù)都顯示在屏幕上,就不得不對這些單元格重新定義較小的字號。如果依次對這些單元格中的字號調(diào)整的話,工作量將會變得很大。其實,您可以采用下面的方法來減輕字號調(diào)整的工作量:首先新建或打開一個工作簿,并選中需要ExcelXP根據(jù)單元格的寬度調(diào)整字號的單元格區(qū)域;其次單擊用鼠標(biāo)依次單擊菜單欄中的“格式”/“單元格”/“對齊”標(biāo)簽,在“文本控制”下選中“縮小字體填充”復(fù)選框,并單擊“確定”按鈕;此后,當(dāng)你在這些單元格中輸入數(shù)據(jù)時,如果輸入的數(shù)據(jù)長度超過了單元格的寬度,ExcelXP能夠自動縮小字符的大小把數(shù)據(jù)調(diào)整到與列寬一致,以使數(shù)據(jù)全部顯示在單元格中。如果你對這些單元格的列寬進行了更改,則字符可自動增大或縮小字號,以適應(yīng)新的單元格列寬,但是對這些單元格原設(shè)置的字體字號大小則保持不變。7、快速輸入多個重復(fù)數(shù)據(jù)在使用ExcelXP工作表的過程中,我們經(jīng)常要輸入大量重復(fù)的數(shù)據(jù),如果依次輸入,無疑工作量是巨大的?,F(xiàn)在我們可以借助ExcelXP的“宏”功能,來記錄首次輸入需要重復(fù)輸入的數(shù)據(jù)的命令和過程,然后將這些命令和過程賦值到一個組合鍵或工具欄的按鈕上,當(dāng)按下組合鍵時,計算機就會重復(fù)所記錄的操作。使用宏功能時,我們可以按照以下步驟進行操作:首先打開工作表,在工作表中選中要進行操作的單元格;接著再用鼠標(biāo)單擊菜單欄中的“工具”菜單項,并從彈出的下拉菜單中選擇“宏”子菜單項,并從隨后彈出的下級菜單中選擇“錄制新宏”命令;設(shè)定好宏后,我們就可以對指定的單元格,進行各種操作,程序?qū)⒆詣訉λM行的各方面操作記錄復(fù)制。8、快速處理多個工作表有時我們需要在ExcelXP中打開多個工作表來進行編輯,但無論打開多少工作表,在某一時刻我們只能對一個工作表進行編輯,編輯好了以后再依次編輯下一個工作表,如果真是這樣操作的話,我們倒沒有這個必要同時打開多個工作表了,因為我們同時打開多個工作表的目的就是要減輕處理多個工作表的工作量的,那么我們該如何實現(xiàn)這樣的操作呢?您可采用以下方法:首先按住“Shift"鍵或“Ctrl"鍵并配以鼠標(biāo)操作,在工作簿底部選擇多個彼此相鄰或不相鄰的工作表標(biāo)簽,然后就可以對其實行多方面的批量處理;接著在選中的工作表標(biāo)簽上按右鍵彈出快捷菜單,進行插入和刪除多個工作表的操作;然后在“文件”菜單中選擇“頁面設(shè)置……”,將選中的多個工作表設(shè)成相同的頁面模式;再通過“編輯”菜單中的有關(guān)選項,在多個工作表范圍內(nèi)進行查找、替換、定位操作;通過“格式”菜單中的有關(guān)選項,將選中的多個工作表的行、列、單元格設(shè)成相同的樣式以及進行一次性全部隱藏操作;接著在“工具”菜單中選擇“選項……”,在彈出的菜單中選擇“視窗”和“編輯”按鈕,將選中的工作表設(shè)成相同的視窗樣式和單元格編輯屬性;最后選中上述工作表集合中任何一個工作表,并在其上完成我們所需要的表格,則其它工作表在相同的位置也同時生成了格式完全相同的表格。高效辦公Excel排序方法"集中營"排序是數(shù)據(jù)處理中的經(jīng)常性工作,Excel排序有序數(shù)計算(類似成績統(tǒng)計中的名次)和數(shù)據(jù)重排兩類。本文以幾個車間的產(chǎn)值和名稱為例,介紹Excel2000/XP的數(shù)據(jù)排序方法。一、數(shù)值排序1.RANK函數(shù)RANK函數(shù)是Excel計算序數(shù)的主要工具,它的語法為:RANK(number,ref,order),其中number為參與計算的數(shù)字或含有數(shù)字的單元格,ref是對參與計算的數(shù)字單元格區(qū)域的絕對引用,order是用來說明排序方式的數(shù)字(如果order為零或省略,則以降序方式給出結(jié)果,反之按升序方式)。例如圖1中E2、E3、E4單元格存放一季度的總產(chǎn)值,計算各車間產(chǎn)值排名的方法是:在F2單元格內(nèi)輸入公式“=RANK(E2,$E$2:$E$4)”,敲回車即可計算出鑄造車間的產(chǎn)值排名是2。再將F2中的公式復(fù)制到剪貼板,選中F3、F4單元格按Ctrl+V,就能計算出其余兩個車間的產(chǎn)值排名為3和1。如果B1單元格中輸入的公式為“=RANK(E2,$E$2:$E$4,1)”,則計算出的序數(shù)按升序方式排列,即2、1和3。需要注意的是:相同數(shù)值用RANK函數(shù)計算得到的序數(shù)(名次)相同,但會導(dǎo)致后續(xù)數(shù)字的序數(shù)空缺。假如上例中F2單元格存放的數(shù)值與F3相同,則按本法計算出的排名分別是3、3和1(降序時)。2.COUNTIF函數(shù)COUNTIF函數(shù)可以統(tǒng)計某一區(qū)域中符合條件的單元格數(shù)目,它的語法為COUNTIF(range,criteria)。其中range為參與統(tǒng)計的單元格區(qū)域,criteria是以數(shù)字、表達式或文本形式定義的條件。其中數(shù)字可以直接寫入,表達式和文本必須加引號。仍以圖1為例,F(xiàn)2單元格內(nèi)輸入的公式為“=COUNTIF($E$2:$E$4,">"&E2)+1”。計算各車間產(chǎn)值排名的方法同上,結(jié)果也完全相同,2、1和3。此公式的計算過程是這樣的:首先根據(jù)E2單元格內(nèi)的數(shù)值,在連接符&的作用下產(chǎn)生一個邏輯表達式,即“>176.7”、“>167.3”等。COUNTIF函數(shù)計算出引用區(qū)域內(nèi)符合條件的單元格數(shù)量,該結(jié)果加一即可得到該數(shù)值的名次。很顯然,利用上述方法得到的是降序排列的名次,對重復(fù)數(shù)據(jù)計算得到的結(jié)果與RANK3.IF函數(shù)Excel自身帶有排序功能,可使數(shù)據(jù)以降序或升序方式重新排列。如果將它與IF函數(shù)結(jié)合,可以計算出沒有空缺的排名。以圖1中E2、E3、E4單元格的產(chǎn)值排序為例,具體做法是:選中E2單元格,根據(jù)排序需要,單擊Excel工具欄中的“降序排序”或“升序排序”按鈕,即可使工作表中的所有數(shù)據(jù)按要求重新排列。假如數(shù)據(jù)是按產(chǎn)值由大到?。ń敌颍┡帕械?,而您又想賦予每個車間從1到n(n為自然數(shù))的排名??梢栽贕2單元格中輸入1,然后在G3單元格中輸入公式“=IF(E3=E2,G3,G3+1)”,只要將公式復(fù)制到G4等單元格,就可以計算出其他車間的產(chǎn)值排名。二、文本排序選舉等場合需要按姓氏筆劃為文本排序,Excel提供了比較好的解決辦法。如果您要將圖1數(shù)據(jù)表按車間名稱的筆劃排序,可以使用以下方法:選中排序關(guān)鍵字所在列(或行)的首個單元格(如圖1中的A1),單擊Excel“數(shù)據(jù)”菜單下的“排序”命令,再單擊其中的“選項”按鈕。選中“排序選項”對話框“方法”下的“筆畫排序”,再根據(jù)數(shù)據(jù)排列方向選擇“按行排序”或“按列排序”,“確定”后回到“排序”對話框(圖2)。如果您的數(shù)據(jù)帶有標(biāo)題行(如圖1中的“單位”之類),則應(yīng)選中“有標(biāo)題行”(反之不選),然后打開“主要關(guān)鍵字”下拉列表,選擇其中的“單位”,選中排序方式(“升序”或“降序”)后“確定”,表中的所有數(shù)據(jù)就會據(jù)此重新排列。此法稍加變通即可用于“第一名”、“第二名”等文本排序,請讀者自行摸索。三、自定義排序如果您要求Excel按照“金工車間”、“鑄造車間”和“維修車間”的特定順序重排工作表數(shù)據(jù),前面介紹的幾種方法就無能為力了。這類問題可以用定義排序規(guī)則的方法解決:首先單擊Excel“工具”菜單下的“選項”命令,打開“選項”對話框中的“自定義序列”選項卡(圖3)。選中左邊“自定義序列”下的“新序列”,光標(biāo)就會在右邊的“輸入序列”框內(nèi)閃動,您就可以輸入“金工車間”、“鑄造車間”等自定義序列了,輸入的每個序列之間要用英文逗號分隔,或者每輸入一個序列就敲回車。如果序列已經(jīng)存在于工作表中,可以選中序列所在的單元格區(qū)域單擊“導(dǎo)入”,這些序列就會被自動加入“輸入序列”框。無論采用以上哪種方法,單擊“添加”按鈕即可將序列放入“自定義序列”中備用(圖3)。使用排序規(guī)則排序的具體方法與筆劃排序很相似,只是您要打開“排序選項”對話框中的“自定義排序次序”下拉列表,選中前面定義的排序規(guī)則,其他選項保持不動?;氐健芭判颉睂υ捒蚝蟾鶕?jù)需要選擇“升序”或“降序”,“確定”后即可完成數(shù)據(jù)的自定義排序。需要說明的是:顯示在“自定義序列”選項卡中的序列(如一、二、三等),均可按以上方法參與排序,請讀者注意Excel提供的自定義序列類型。談?wù)凟xcel輸入的技巧在Excel工作表的單元格中,可以使用兩種最基本的數(shù)據(jù)格式:常數(shù)和公式。常數(shù)是指文字、數(shù)字、日期和時間等數(shù)據(jù),還可以包括邏輯值和錯誤值,每種數(shù)據(jù)都有它特定的格式和輸入方法,為了使用戶對輸入數(shù)據(jù)有一個明確的認(rèn)識,有必要來介紹一下在Excel中輸入各種類型數(shù)據(jù)的方法和技巧。一、輸入文本Excel單元格中的文本包括任何中西文文字或字母以及數(shù)字、空格和非數(shù)字字符的組合,每個單元格中最多可容納32000個字符數(shù)。雖然在Excel中輸入文本和在其它應(yīng)用程序中沒有什么本質(zhì)區(qū)別,但是還是有一些差異,比如我們在Word、PowerPoint的表格中,當(dāng)在單元格中輸入文本后,按回車鍵表示一個段落的結(jié)束,光標(biāo)會自動移到本單元格中下一段落的開頭,在Excel的單元格中輸入文本時,按一下回車鍵卻表示結(jié)束當(dāng)前單元格的輸入,光標(biāo)會自動移到當(dāng)前單元格的下一個單元格,出現(xiàn)這種情況時,如果你是想在單元格中分行,則必須在單元格中輸入硬回車,即按住Alt鍵的同時按回車鍵。二、輸入分?jǐn)?shù)幾乎在所有的文檔中,分?jǐn)?shù)格式通常用一道斜杠來分界分子與分母,其格式為“分子/分母”,在Excel中日期的輸入方法也是用斜杠來區(qū)分年月日的,比如在單元格中輸入“1/2”,按回車鍵則顯示“1月2日”,為了避免將輸入的分?jǐn)?shù)與日期混淆,我們在單元格中輸入分?jǐn)?shù)時,要在分?jǐn)?shù)前輸入“0”(零)以示區(qū)別,并且在“0”和分子之間要有一個空格隔開,比如我們在輸入1/2時,則應(yīng)該輸入“01/2”。如果在單元格中輸入“81/2”,則在單元格中顯示“81/2”,而在編輯欄中顯示“三、輸入負(fù)數(shù)在單元格中輸入負(fù)數(shù)時,可在負(fù)數(shù)前輸入“-”作標(biāo)識,也可將數(shù)字置在()括號內(nèi)來標(biāo)識,比如在單元格中輸入“(88)”,按一下回車鍵,則會自動顯示為“-88”。四、輸入小數(shù)
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中山租房合同范本
- 簽訂個合同范本
- 文創(chuàng)設(shè)計合同范本
- 2025至2030年中國焊接叉數(shù)據(jù)監(jiān)測研究報告
- 麻石護欄合同范本
- 門面改造合同范本
- 過戶購房合同范本
- 2025至2030年中國溴氯海因殺菌滅藻劑數(shù)據(jù)監(jiān)測研究報告
- 球場承建合同范本
- 配貨合同范本
- 液化石油氣鋼瓶倒殘操作規(guī)程
- 新材料概論課件ppt 第8章 新能源材料
- 毛概課說課課件
- 工藝管道安裝工程質(zhì)量檢驗、試驗計劃
- 《汽車電子技術(shù)》專業(yè)人才培養(yǎng)方案
- 冷庫熱氟融霜操作
- 中國重癥加強治療病房(ICU)建設(shè)與管理指南
- 《老年服務(wù)倫理與禮儀》課程標(biāo)準(zhǔn)
- 2023年蘇州市職業(yè)大學(xué)單招職業(yè)適應(yīng)性測試題庫及答案解析
- 解析華為管理干部任職資格管理制度
- 2023年蘇州衛(wèi)生職業(yè)技術(shù)學(xué)院高職單招(語文)試題庫含答案解析
評論
0/150
提交評論