版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、畢業(yè)設計(論文)小區(qū)智能密碼鎖設計姓 名 李興華學 號 28010202160專業(yè)班級 集成電路IC設計 08所在學院 電子信息學院指導教師職稱王紅航講師完成時間 2021年4月電子科技大學中山學院教務處制發(fā)電子科技大學中山學院畢業(yè)設計論文任務書題目名稱小區(qū)智能密碼鎖設計論文的主要內容和要求1、密碼輸入:鍵盤輸入:每按下一個數(shù)字鍵,就輸入一個數(shù)值,并在顯示器上顯示出該數(shù)值,同時將先前輸入的數(shù)據(jù)依次左移一個數(shù)字位置。無線輸入:采用2.4G藍牙頻率進行無線通信,輸入密碼時發(fā)射端與接收端以特定的協(xié)議進行頻率跳變。提高保密性。2、密碼去除:按下去除鍵可以去除前面所有的輸入值,去除成為“0000。該操作
2、可通過鍵盤或遙控進行。3、密碼更改:按下更改鍵可將目前的數(shù)碼設定成新的密碼。該操作可通過鍵盤或遙控進行。4、密碼上鎖:按下上鎖鍵可將密碼鎖上鎖。該操作可通過鍵盤或遙控進行。5、密碼解除:按下確認鍵首先檢查輸入的密碼是否正確,密碼正確即開鎖。推薦參考文獻1、潘永雄新編單片機原理與應用M西安電子科技大學出版社20032、 榮政C語言程序設計M西安電子科技大學出版社2006預期目標和成果形式學會如何查閱資料,掌握電子電路設計并熟練掌握單片機設計流程,熟練C語言軟件設計平臺KEIL的使用。以及熟練掌握無線收發(fā)芯片NRF24L01的應用。成果形式:實物加論文。起止時間2021年9月20日 至 2021年
3、4月30日指導單位電子信息學院指導教師王紅航 2021年9月25日審核意見審核簽名年 月 日電子科技大學中山學院畢業(yè)設計論文成績評定表設計撰寫過程評語: 指導教師: 年 月 日成績論文評閱評語: 評閱教師: 年 月 日成績論文辯論評語: 辯論組長: 年 月 日成績總分審核人: 年 月 日小區(qū)智能密碼鎖設計摘 要隨著科學技術的不斷開展,人們對日常生活中的平安保險器件的要求越來越高。為滿足人們對鎖的使用要求,增加其平安性,用密碼代替鑰匙的密碼鎖應運而生。密碼鎖具具有平安性高、本錢低、功耗低、易操作等優(yōu)點。本次設計使用STC89C52單片機為主體芯片,采用AT24C02為掉電存儲芯片。設計了一款可以
4、屢次修改密碼、具有密碼錯誤報警功能和無線開鎖功能的無線遙控密碼鎖。本系統(tǒng)主要包括:矩陣鍵盤輸入模塊、LCD液晶顯示模塊、錯誤報警模塊、掉電存儲模塊,無線開鎖模塊,所采用的編程語言是C語言。整機電路穩(wěn)定性高,本錢低,還能擴展很多功能。關鍵詞:STC89C52;AT24C02; 電子密碼鎖;矩陣鍵盤 ;掉電保護;無線收發(fā)The Design of Residential Intelligent Cipher LockAbstractWith the continuous development of science and technology, people's demands for
5、safe and secured devices increase highly in daily life. In order to meet the requirements of the lock and to increase the security of it, the key with passwords instead of the lock comes into being. The key with passwords has the advantage of safety, low cost, low power consumption and easy operatio
6、n.The design use STC89C52 MCU for the main chip and AT24C02 chip for storage of the power-down. A wireless remote control lock was designed, which can repeatedly change the password, also enjoy password error alarm functions and wireless unlock function. The system includes: matrix keyboard input mo
7、dule, LCD display module, error alarm modules, power-down memory module, wireless input module. The programming language adopted is C language. The whole circuit not only pocesses high stability and low cost, but also extends a lot of functions.Keywords: STC89C52; AT24C02; Electronic code lock; Matr
8、ix keyboard; Power-off protection; Wireless transceiver目 錄1緒 論1工程背景1工程的主要任務12方案論證3主控芯片的選擇3無線模塊的選擇3鍵盤的選擇3液晶模塊的選擇33小區(qū)智能密碼鎖硬件設計5系統(tǒng)硬件的總體設計5元器件的選擇6各功能模塊的介紹與設計6主控芯片的介紹6無線模塊的介紹與設計9NOKIA5110模塊的介紹與設計10串行EEPROM存儲電路設計11鍵盤電路設計12報警電路設計13電源轉換電路設計13遙控電路設計14主機整體電路144小區(qū)智能密碼鎖系統(tǒng)軟件設計16系統(tǒng)軟件整體設計16鍵盤輸入密碼開鎖程序設計17液晶顯示程序設計19
9、NRF24L01無線收發(fā)程序設計25遙控局部程序設計275小區(qū)智能密碼鎖系統(tǒng)調試29無線收發(fā)模塊NRF24L01的調試29矩陣鍵盤的調試29NOKIA5110液晶的調試29AT24C02的調試29整機聯(lián)調306結論31致 謝33參考文獻34附 錄35作品實物圖:35主機程序清單:40無線鍵盤程序:721 緒 論1.1 工程背景目前,國內最常用的鎖是20世紀50年代意大利人設計的機械鎖,其結構簡單、使用方便、價格廉價。但在使用中暴露了很多缺點:一是機械鎖是靠金屬制成的鑰匙上的不同齒形與鎖芯的配合來工作的。據(jù)統(tǒng)計,每4000把鎖中就有兩把鎖的鑰匙齒牙相同或類似,平安性低。二是鑰匙一旦喪失,無論誰撿
10、到都可以將鎖翻開。三是機械鎖的材料大多為黃銅質地較軟,容易損壞。四是機械鑰匙容易被復制。由于人們對鎖的平安性,方便性等性能有更高的要求,許多智能鎖如指紋區(qū)分、IC卡識別也相繼問世,這類產品針對特定的指紋或有效卡,能適用于保密要求高且僅供個別人使用的箱、柜、房間,但其本錢一般較高,在一定程度上限制了這類產品的普及和和推廣。隨著人們生活質量的提高和平安意識的加強,如何更好的防盜這一問題也變得尤為重要,傳統(tǒng)的機械鎖具由于其構造簡單,帶有鎖孔,被撬的事件屢見不鮮,已遠遠不能滿足人們的需要。于是各種密碼鎖具廣泛進入人們的生活和工作,因而密碼鎖的平安可靠性就變得至關重要。電子式的密碼鎖,它具有本錢低,密碼
11、量大,不易破譯的優(yōu)點,但是目前的電子密碼鎖系統(tǒng)大都采用的是固定式的鍵盤,鍵盤外漏很容易導致密碼被竊。而汽車電子鎖是一鍵式開鎖,開鎖遙控一旦喪失將會導致任何持有該遙控的人都可以開鎖。論文針對目前市場上的密碼鎖具存在的缺點,設計出一款既能夠通過無線鍵盤輸入密碼又帶有鍵盤輸入功能的密碼鎖,該產品具有很好的實用意義。無線密碼鎖具能夠在提高平安性的同時又能減少佩戴鑰匙的重量。能夠做到一個遙控開多個鎖,方便實用。1.2 工程的主要任務本系統(tǒng)的設計主要是為了解決當前市面上傳統(tǒng)鎖具所存在的缺乏,而設計出一款無線遙控密碼鎖,本系統(tǒng)的具體功能實現(xiàn)如下:1. 設置密碼用戶將想設置的密碼通過密碼修改鍵進行修改,首先按
12、下密碼修改鍵,然后再逐個輸入舊密碼,最后按下確認鍵,舊密碼正確,即可進入新密碼輸入狀態(tài)。密碼可以由用戶自己任意設定只支持8位及8位以下密碼,在輸入新密碼時候需要二次確認,以防止誤操作。另外,帶無線輸入鍵盤,可以進行輸入、修改密碼等操作。2. 密碼顯示為了幫助用戶確認是否輸入成功,特在電路中設置了液晶顯示電路;而為了防止密碼外泄,顯示時,并不是顯示用戶按下的數(shù)字信息,而是以一個特定的字母符號提醒用戶是否輸入成功。有鍵按下,就會顯示出字符“*。假設無鍵按下,那么不會顯示字符。這樣既巧妙的提醒了用戶又保護了用戶密碼不被外泄,此乃本設計可靠性優(yōu)點之一。3. 本機鍵開鎖當用戶鍵入正確密碼后,再按確認鍵,
13、便會自動開鎖,如果鍵入完密碼后不按確認鍵,默認放棄開鎖。4. 密碼錯誤報警當用戶鍵入錯誤密碼時,系統(tǒng)就會報警,液晶上會有錯誤提示。由蜂鳴器發(fā)出報警聲。當連續(xù)三次出現(xiàn)密碼錯誤時,那么系統(tǒng)會長期報警不止。這時必須按復位方可停止。此乃本設計平安可靠性之二。5. 遙控解鎖當有特殊情況發(fā)生時,或怕有人偷窺到密碼時,或不想用鍵盤開鎖時,可選用遙控器來解鎖。此乃本設計平安可靠性之三。該設計使用AT24C02保存密碼,支持復位保存,掉電保存功能。在遇到突發(fā)情況,導致設備突然斷電時,密碼也不會喪失。此乃本設計平安可靠性之四。2 方案論證2.1 主控芯片的選擇在本系統(tǒng)設計中所需要的I/O口為23個,綜合各方面的因
14、素考慮,本控制系統(tǒng)設計的硬件選用STC89C52作為主控中心。STC89C52是一個低功耗,高性能的CMOS 8位單片機,片內含8k Bytes ISP(In-system programmable)的可反復擦寫的Flash只讀程序存儲器和256bytes的隨機存取數(shù)據(jù)存儲器RAM。兼容標準MCS-51指令系統(tǒng)及80C52產品引腳結構。其芯片內部集成了8位中央處理器和ISP Flash可反復擦寫的存儲單元。STC89C52具有的特點如下:40個引腳, Flash片內程序存儲器8k 字節(jié),內部RAM 256 字節(jié),32個雙向輸入/輸出I/O口,1個6向量兩級中斷結構,具有16位可編程定時計數(shù)器3
15、個,全雙工串行通信口1個,片內振蕩器及時鐘電路。2.2 無線模塊的選擇在本系統(tǒng)中采用遙控方式來進行開鎖的主要目的就是使鎖的平安性更高,確保數(shù)據(jù)在傳輸過程中的準確無誤,更加方便人們使用。方案一在最初設計本系統(tǒng)時首先想到的遙控開鎖器件是紅外開鎖。紅外,作為無線通信方式的一種,具有實現(xiàn)簡單、價格廉價等優(yōu)點。但通訊過程中不能改變要對準的方向,且中間不能有障礙物,遇障礙物通訊會中斷,也就是說紅外不能穿墻而過。由于紅外線的波長較長,對障礙物的衍射能力差,所以更適合應用在需要短距離無線通訊的場合,進行點對點的直線通信。紅外通訊技術的主要目的是取代線纜連接進行無線數(shù)據(jù)傳輸,功能單一,擴展性差。另外,紅外通信的
16、保密性相對較差。但本設計在保密性方面要求很高所以本方案不可行。方案二采用NRF24L01了作為無線通信器件。NRF24L01單片無線收發(fā)器工作的載波頻率為2.4GHz,因此在無線傳輸中具有傳輸速度快,無線信號空中停留時間短的優(yōu)點。既節(jié)省收發(fā)能量又能提高收發(fā)速度。同時保密性方面也得到了極大的提高。其通信協(xié)議以及數(shù)據(jù)的承載方式都極具加密性??梢栽谝欢ǚ秶鷥冗x擇載波頻率,且具有125個頻點。對于通信的加密性方面有極大幫助。另外,NRF24L01模塊性價比相對較高。2.3 鍵盤的選擇由于本系統(tǒng)要使用13個按鍵,其中數(shù)字鍵10個09,特殊功能鍵3個,假設使用獨立式按鍵連接方式需要13個I/O口,這樣一來
17、I/O口的占用量太大,浪費I/O資源,所以選用4*4的矩陣鍵盤,這樣可以省下5個I/O資源。2.4 液晶模塊的選擇在設計本系統(tǒng)顯示模塊時首先想到的用來顯示的器件是LCD1286或LCD1602,LCD12864液晶顯示器可以顯示數(shù)字、漢字和圖形,但價格比擬高。LCD1602雖然價格比擬廉價,但只能用于符號顯示或數(shù)字的顯示,不能顯示漢字。經過多方了解,查找。最終定下了NOKIA5110液晶。能夠顯示漢字,并且價格與LCD1602相當。除此之外,該液晶具有所需I/O口少,體積小,編程方便等優(yōu)點。3 小區(qū)智能密碼鎖硬件設計3.1 系統(tǒng)硬件的總體設計本系統(tǒng)主要使用無線技術來實現(xiàn)無線開鎖的設計,但是仍然
18、保持了原有密碼鎖的根本功能,系統(tǒng)主要的兩大局部分別為:無線密碼開鎖局部和根本密碼鎖開鎖局部。其中根本密碼開鎖包括:鍵盤輸入模塊、LCD液晶顯示模塊、報警模塊、存儲??臁㈦娫崔D換電路模塊、無線接收模塊、開鎖模塊。無線密碼開鎖局部包括:電源轉換電路模塊、無線發(fā)送??臁⒕仃囨I盤模塊。無線遙控密碼鎖的根本密碼鎖開鎖局部硬件框圖如圖3-1所示:STC89C52鍵盤輸入模塊顯示模塊報警模塊開鎖電源轉換電路存儲模塊無線接收模塊圖3-1無線密碼鎖的根本密碼鎖開鎖局部硬件框圖各功能模塊的具體功能如下:1、鍵盤輸入模塊:用一個4*4的矩陣鍵盤,通過鍵盤輸入的正確與否來執(zhí)行相應的操作。2、LCD液晶顯示模:同樣是針
19、對鍵盤輸入的正確與否來執(zhí)行相應的提示信息。3、報警模塊:當用戶出現(xiàn)輸入密碼不正確時發(fā)出報警信息。4、存儲??欤褐饕獙崿F(xiàn)對初始密碼的存儲和修改后密碼的存儲,防止掉電后密碼喪失。5、電源轉換電路模塊:由于單片機的工作電壓為5V,但無線模塊的最好工作電壓為3.3V。那么這時就需要搭一個電源轉換電路。6、無線發(fā)送模塊:將遙控模塊中鍵盤輸入的值傳送給無線接收模塊。7、無線接收模塊:將對無線發(fā)送模塊傳過來的數(shù)據(jù)在接收端進行相應的處理。無線遙控的系統(tǒng)框圖如圖3-2所示:STC89C52鍵盤輸入模塊無線發(fā)送模塊塊電源轉換電路圖3-2無線密碼鎖的發(fā)射硬件框圖3.2 元器件的選擇經過對市場的了解,綜合各方面的因素
20、考慮,本系統(tǒng)的設計主要采用以下幾款元器件:1、主控芯片:STC89C522、無線模塊:NRF24L013、EEPROM:AT24C024、LCD液晶:NOKIA51105、報警器:1個蜂鳴器6、鍵盤: 4*4矩陣鍵盤3.3 各功能模塊的介紹與設計3.3.1 主控芯片的介紹STC89C52帶8K字節(jié)閃爍可編程可擦除只讀存儲器FPEROM-Flash Programable and Erasable Read Only Memory 。低電壓,高性能。兼容工業(yè)標準的MCS-51輸出管腳和指令集。單片機總控制電路如圖3-3所示:圖3-3單片機總控制電路這個電路可以作為單片機的程序下載電路,可以從PC
21、機通過該電路將.HEX程序文件下載進單片機。還可以作為單片機與PC機的串口通信接口電路。1.振蕩電路STC89C52內部有一個高增益反相放大器,XTAL2與XTAL1分別是它的輸入與輸出端。當該兩個引腳與定時元件相連時內部振蕩器就產生自激振蕩從而產生定時信號帶動單片機工作。定時用的并聯(lián)諧振回路通常由石英晶體和電容組成。晶體振蕩器頻率范圍為1.212MHz,電容值范圍為530pF,電容值的大小可對頻率起微調的作用。內部時鐘電路方式如圖3-4a外部時鐘電路方式如圖3-4b所示,XTAL1接地,XTAL2與外部振蕩器相連。對于外部振蕩器信號,需要保證脈沖寬度在特定范圍內,一般采用頻率低于12MHz的
22、方波。內部與外部時鐘電路如圖3-4所示: 圖3-4 a內部時鐘電路方式 圖3-4 b外部時鐘電路方式圖3-4時鐘電路1復位操作復位是單片機的初始化操作。復位操作中把PC初始化為0000H,使單片機從0000H單元開始執(zhí)行程序。在單片機上電時一般會進行上電復位。當程序運行失常,導致單片機死機時,復位操作可以使系統(tǒng)重啟,單片機便能進入正常工作狀態(tài)。除PC之外,復位操作還對其他一些存放器有影響,它們的復位狀態(tài)如表3-1所示。表3-1 一些存放器的復位狀態(tài)存放器復位狀態(tài)存放器復位狀態(tài)PC0000HTCON00HACC00HTL000HPSW00HTH000HSP07HTL100HDPTR0000HTH
23、100HP0-P3FFHSCON00HIPXX000000BSBUF不定IE0X000000BPCON0XXX0000BTMOD00H2復位信號及其產生RST引腳是復位信號的輸入端。復位信號是高電平有效,其有效時間應持續(xù)24個振蕩周期(即二個機器周期)以上。假設使用頻率為6MHz的晶振,復位端需要有4us以上的高電平才能使系統(tǒng)進入復位狀態(tài)。STC89C52具體介紹如下:1、 主電源引腳2根VCC(Pin40):電源輸入,接5V電源。GND(Pin20):接地線。2、外接晶振引腳2根XTAL1:片內振蕩電路的輸入端或接片外時鐘信號時接地。XTAL2:片內振蕩電路的輸出端或外部時鐘的輸入端。3、控
24、制引腳4根RST/VPP:復位引腳,兩個機器周期的高電平可使單片機復位。ALE/PROG:地址鎖存允許信號。PSEN:外部存儲器的讀選通信號。EA/VPP:程序存儲器選擇端,接低電平使用外部程序存儲器,接高電平那么使用內部程序存儲器。4、可編程輸入/輸出引腳32根STC89C52單片機有4組8位的可編程I/O口,分別位P0、P1、P2、P3口,每個口有8位8根引腳,共32根。P0口:8位雙向I/O口線,名稱為P0.0P0.7。P1口:8位準雙向I/O口線,名稱為P1.0P1.7 。P2口:8位準雙向I/O口線,名稱為P2.0P2.7 。P3口:8位準雙向I/O口線,名稱為P3.0P3.7。ST
25、C89C52內部主要硬件:1、兩個外部中斷。2、一個串口。3、3個定時器。本設計用到的復位電路與晶振電路如圖3-5所示: 圖3-5 a復位電路圖3-5 b晶振電路圖3-5復位電路與晶振電路3.3.2 無線模塊的介紹與設計NRF24L01模塊的原理圖如圖3-6所示:圖3-6 NRF24L01模塊NRF24L01模塊的主要特點:2.4GHz 全球開放ISM 頻段,最大0dBm 發(fā)射功率,免許可證使用;低工作電壓:正常工作電壓3.6V ;高速率:最高2Mbps,這樣使得信號空中停留時間極短,減小了無線碰撞的可能軟件設置1Mbps或者2Mbps的空中傳輸速率;多頻點:125頻點,可以應用于多點通信以及
26、跳頻的實現(xiàn);超小型:天線內置,體積小巧,規(guī)格:15x29mm包括天線;低功耗:快速的傳輸速率也降低了收發(fā)功耗。很低的應用本錢:NRF24L01集成了RF。NRF24L01應用的是SPI接口,可以與單片機的SPI接口直接相連。沒有SPI接口的單片機可以利用單片機的I/O口進行模擬,內部有FIFO,用于數(shù)據(jù)緩存,因此NRF24L01可以與各種上下速微處理器接口,便于使用低本錢單片機。便于開發(fā):由于鏈路層完全集成在模塊上,非常便于開發(fā)。能自動檢測到數(shù)據(jù)喪失并重新發(fā)送數(shù)據(jù),重發(fā)間隔時間以及重發(fā)次數(shù)由軟件控制。在收到數(shù)據(jù)后會向發(fā)送方自動發(fā)送應答信號。3.3.3 NOKIA5110模塊的介紹與設計NOKI
27、A5110模塊如圖3-7所示:圖3-7 NOKIA5110 模塊它與單片機六個I/O口相連。NOKIA5110液晶模塊具有以下特點:(1) 84x48 的點陣LCD,可以顯示4 行漢字,(2) 采用串行接口與主處理器進行通信,接口信號線數(shù)量大幅度減少,包括電源 和地在內的信號線僅有9 條。支持多種串行通信協(xié)議如AVR 單片機的SPI、MCS51 的串口模式0等,4Mbps傳輸速率。(3) LCD 控制器以及驅動器芯片已集成到LCD 晶片上,使得模塊的體積很小。(4) 采用低電壓供電,正常顯示時的工作電流在200A 以下,且具有掉電模式。它與主控制芯片的接口電路如圖3-8所示:圖3-8 NOKI
28、A5110接口電路該原理圖對應于電路板上的一個8孔插槽。只需將5110模塊插入該排座就完成連接。3.3.4 串行EEPROM存儲電路設計1管腳圖AT24C02管腳圖如圖3-9所示:圖3-9 AT24C02管腳圖2簡介AT24C02是一個2K位串行CMOS E2PROM。AT24C02有一個16字節(jié)的頁寫緩沖器。該器件通過IIC總線接口進行操作,有一個專門的寫保護功能。 3特性:1、數(shù)據(jù)線上的看門狗定時器 2、可編程復位門欄電平 3、高數(shù)據(jù)傳送速率為400KHz和1C總線兼容 4、2.7V至7V的工作電壓 5、低功耗CMOS工藝 6、16字節(jié)頁寫緩沖區(qū) 7、片內防誤擦除寫保護 8、上下電平復位信
29、號輸出 9、100萬次擦寫周期 10、數(shù)據(jù)保存可達100年 11、商業(yè)級、工業(yè)級和汽車溫度范圍 4管腳描述SCL 串行時鐘: SCL數(shù)據(jù)發(fā)送或接受的基準時鐘,為輸入引腳。 SDA 串行數(shù)據(jù)/地址: SDA數(shù)據(jù)或地址的串行輸入與輸出端,可進行線或。 A0、A1、A2存儲器地址輸入端:用于存儲器的級聯(lián)。 WP 寫保護:接高電平時存儲器為只讀。GND、VCC:電源引腳。 5AT2402與單片機的電路連接如圖3-10所示:圖3-10 AT2402與單片機的連接3.3.5 鍵盤電路設計矩陣鍵盤原理圖如圖3-11所示:圖3-11 矩陣鍵盤原理由于本設計只用到了13個按鍵,所以最后一列按鍵只有一個。矩陣鍵盤
30、原理:每個按鍵都有兩個對應的I/O口與之相連,按鍵按下前,其兩端的I/O口分別輸出一高一低電平。當按鍵按下時,高電平被拉低,利用這個原理我們就能通過程序判斷出具體是哪個按鍵按下。3.3.6 報警電路設計 報警電路原理圖如圖3-12所示:圖3-12 報警電路報警電路原理:PNP三極管的開關特性是當基極為低電平時導通,基極為高電平時截止,所以要使蜂鳴器鳴叫,只需使單片機在P2.7口輸出一個低電平即可。反之,輸出高電平那么停止鳴叫。3.3.7 電源轉換電路設計5V與3.3V之間的電源轉換電路如圖3-13所示:圖3-13 電源轉換電路由于NRF24L01模塊的正常工作電壓不得超過3.6V,而單片機必須
31、要4.5V以上才能正常工作。所以必須要有一個電源轉換電路使它們之間到達電平兼容。二極管的正向壓降為0.7V,如圖3-15,在RF24L01模塊的電源兩端串聯(lián)了兩個二極管后,該模塊上的電壓為VCC-0.7*2V。當VCC為5V時加在該模塊的電源電壓為3.6V。而5V電壓也正好能夠適合STC89C52單片機電壓。在I/O口之間加上1K的限流電阻是為了防止由于兩芯片的電平壓差過大而導致I/O間電流過大,導致芯片燒毀。3.3.8 遙控電路設計為了適應遙控要求體積小,輕便易攜的特點。我把遙控的主控制芯片改成了只有20引腳的STC12C2052芯片。該芯片具有體積小,功能強大,價格低廉的特點。其指令系統(tǒng)與
32、52單片機幾乎完全相同。遙控局部整體原理圖如圖3-14所示:圖3-14 遙控原理圖該遙控是以STC12C2052為核心控制芯片,帶矩陣鍵盤輸入,無線收發(fā)模塊NRF24L01以及LED指示燈電路。3.3.9 主機整體電路主機的整體電路圖如下3-15所示:圖3-15 整機原理圖4 小區(qū)智能密碼鎖系統(tǒng)軟件設計4.1 系統(tǒng)軟件整體設計在本系統(tǒng)中軟件設計是整個系統(tǒng)設計的重要局部,在保證硬件電路正確無誤的根底上,加上軟件編程才可以實現(xiàn)整個系統(tǒng)預期的功能。系統(tǒng)軟件運行總體設計流程包括:系統(tǒng)初始化,判斷是否有按鍵按下,識別相應按鍵,如果條件滿足執(zhí)行開鎖并在液晶上顯示提示信息,條件不滿足報警并在液晶上顯示相應的
33、出錯的提示信息。在本系統(tǒng)中,軟件的設計主要包括:無線數(shù)據(jù)的發(fā)送和接收程序設計、數(shù)據(jù)存儲程序設計、液晶顯示程序設計、鍵盤輸入程序設計、密碼比擬程序設計、開鎖程序設計、報警程序設計等。本系統(tǒng)的層次方框圖如圖4-1所示。 無線遙控密碼鎖蜂鳴報警無線遙控鍵盤輸入液晶顯示開鎖掉電存儲圖4-1 無線遙控密碼鎖的層次方框圖主程序主要任務是協(xié)調各個模塊之間的功能,使指定的模塊在特定的狀態(tài)下工作。如:單片機檢測到按鍵按下操作,就會調用按鍵子程序讀取鍵值,以判斷是哪個按鍵出現(xiàn)按鍵動作。如果是數(shù)字鍵按下那么認為輸入的是密碼,此時調用密碼處理函數(shù)進行處理。如果按下的是確認鍵,那么調用相應函數(shù)對密碼進行比照,如果按下的
34、是模式切換鍵,那么調用相應的模式顯示函數(shù)以及涉及到該模式的所有模塊函數(shù)。主函數(shù)就是通過這種判斷、調用的方式來完成子程序間各個功能模塊的協(xié)調。系統(tǒng)整體流程圖如圖4-2所示:開始輸入密碼正確否?開鎖判斷按鍵開鎖模式密碼修改模式上鎖結束輸入密碼正確否?輸入新密碼再次輸入一致否?修改、存儲YesNoNoYesNoYes圖4-2 整機流程圖4.2 鍵盤輸入密碼開鎖程序設計密碼程序流程圖如圖4-3所示,當程序運行時,會判斷鍵盤是否有按鍵被按下,當有按鍵被按下時,系統(tǒng)會判斷是數(shù)字鍵09,還是功能鍵。假設是數(shù)字鍵,那么將按鍵值存入到密碼數(shù)組里,然后將輸入的密碼與本身的密碼做比擬,假設相同,那么執(zhí)行開門并在液晶
35、上顯示正確的提示信息。假設不相同,那么執(zhí)行報警并在液晶上顯示錯誤的提示信息。圖4-3 密碼處理程序流程圖矩陣鍵盤掃描程序uchar keyscan() uchar scan1,scan2,keycode,j; P3=0xf0; scan1=P3; if(scan1&0xf0)!=0xf0) /判鍵是否按下 delayms1(80); /延時30ms scan1=P3; if(scan1&0xf0)!=0xf0) /二次判鍵是否按下 P3=0x0f; scan2=P3; keycode=scan1|scan2; /組合成鍵編碼 for(j=0;j<=15;j+) if(ke
36、ycode= key_codej) /查表得鍵值 key=j; return(key);/返回鍵值 / else P1=0xff; return (16);4.3 液晶顯示程序設計液晶顯示程序的主要功能是對當前鎖的狀態(tài)進行提示,在使用液晶時,首先要對液晶進行初始化,然后還要設置字符的顯示位置,只有將前期的準備工作設置完后才能在相應位置顯示相應的提示信息,當沒有人進行操作時,顯示一串提示字符,當開鎖正確時,在液晶上也會顯示相應的正確信息提示,當開鎖錯誤時,在液晶上也會顯示相應的錯誤信息提示。液晶顯示程序設計流程圖如圖4-4所示:設置第一行顯示字符地址在第一行顯示字符液晶初始化延時設置第二行顯示字
37、符地址在第二行顯示字符延時結束開始圖4-4顯示子程序流程圖顯示程序核心程序代碼如下所示。/*-LCD_init: 5110LCD初始化- */void LCD_init(void)res=0; delay_1ms(); res=1; LCD_write_byte(0x21,0);/初始化Lcd,功能設定使用擴充指令LCD_write_byte(0xd0,0);/設定液晶偏置電壓LCD_write_byte(0x20,0);/使用根本指令LCD_write_byte(0x0C,0);/設定顯示模式,正常顯示/*-LCD_set_XY: 設置LCD坐標函數(shù)輸入?yún)?shù):X:083 Y:05-*/voi
38、d LCD_set_XY(unsigned char X, unsigned char Y)LCD_write_byte(0x40 | Y, 0);/ columnLCD_write_byte(0x80 | X, 0);/ row /*-LCD_clear: LCD清屏函數(shù)-*/void LCD_clear(void)unsigned char t;unsigned char k;LCD_set_XY(0,0);for(t=0;t<6;t+) for(k=0;k<84;k+) LCD_write_byte(0x00,1); /*-LCD_write_shu: 顯示8寬*16高點陣列
39、數(shù)字字母符號等半角類輸入?yún)?shù):c:顯示的字符;-*/void LCD_write_shu(unsigned char row, unsigned char page,unsigned char c) /row:列 page:頁 dd:字符unsigned char i; LCD_set_XY(row*8, page);/ 列,頁 for(i=0; i<8;i+) LCD_write_byte(shuzic*16+i,1); LCD_set_XY(row*8, page+1);/ 列,頁 for(i=8; i<16;i+) LCD_write_byte(shuzic*16+i,1);
40、 /*-LCD_write_hanzi: 顯示16寬*16高點陣列漢字等半角類輸入?yún)?shù):c:顯示的字符;-*/void LCD_write_hanzi(unsigned char row, unsigned char page,unsigned char c) /row:列 page:頁 dd:字符unsigned char i; LCD_set_XY(row*8, page);/ 列,頁 for(i=0; i<16;i+) LCD_write_byte(hanzic*32+i,1); LCD_set_XY(row*8, page+1);/ 列,頁 for(i=16; i<32;i
41、+) LCD_write_byte(hanzic*32+i,1);AT24C02程序設計本設計中數(shù)據(jù)的存儲芯片選用的是AT24C02,該芯片是串行的EEPROM,支持I2C總線數(shù)據(jù)傳送協(xié)議。在本系統(tǒng)中主要用來做掉電存儲器,能將輸入的數(shù)據(jù)存入AT24C02,也能從AT24C02中讀出,程序流程圖如圖4-5所示:開始初始化AT24C04向AT24C04中寫入要存儲數(shù)據(jù)據(jù)延時從AT24C04中讀出存儲數(shù)據(jù)延時結束圖4-5存儲和讀出程序流程圖 AT24C02的讀寫是應用的I2C總線。所以要對它進行操作,最核心的是要懂得I2C總線。一下是以I2C總線時序為根底對AT24C02進行操作的最底層函數(shù)。 vo
42、id start() /開始位 SDA = 1; SCL = 1; delayNOP(); SDA = 0; delayNOP(); SCL = 0; /*/ void stop() / 停止位 SDA = 0; delayNOP(); SCL = 1; delayNOP(); SDA = 1; /*/ uchar shin() / 從AT24C02移出數(shù)據(jù)到MCU uchar i,read_data; for(i = 0; i < 8; i+) SCL = 1; read_data <<= 1; read_data |= SDA; SCL = 0; return(read_
43、data); /*/ bit shout(uchar write_data) / 從MCU移出數(shù)據(jù)到AT24C02 uchar i; bit ack_bit; for(i = 0; i < 8; i+) / 循環(huán)移入8個位 SDA = (bit)(write_data & 0x80); _nop_(); SCL = 1; delayNOP(); SCL = 0; write_data <<= 1; SDA = 1; / 讀取應答 delayNOP(); SCL = 1; delayNOP(); ack_bit = SDA; SCL = 0; return ack_bi
44、t; / 返回AT24C02應答位 4.4 NRF24L01無線收發(fā)程序設計NRF24L01屬于SPI時序芯片。而52單片機并不帶有SPI接口。所以我們只能在軟件中模擬SPI時序。開始初始化NRF24L01設置成接收模式接收數(shù)據(jù)結束圖4-6 NRF24L01程序流圖以下是NRF24L01最核心的SPI讀寫程序,用于其指定存放器的讀寫。/*函數(shù):SPI_Write_Buf()描述:把pBuf緩存中的數(shù)據(jù)寫入到nRF24L01,通常用來寫入發(fā)射通道數(shù)據(jù)或接收/發(fā)送地址/*/uchar SPI_Write_Buf(uchar reg, uchar * pBuf, uchar bytes)uchar
45、status, i; CSN = 0; / CSN置低,開始傳輸數(shù)據(jù) status = SPI_RW(reg); / 選擇存放器,同時返回狀態(tài)字 for(i=0; i<bytes; i+) SPI_RW(pBufi); / 逐個字節(jié)寫入nRF24L01 CSN = 1; / CSN拉高,結束數(shù)據(jù)傳輸 return(status); / 返回狀態(tài)存放器/*/*函數(shù):SPI_Read_Buf()描述:從reg存放器讀出bytes個字節(jié),通常用來讀取接收通道數(shù)據(jù)或接收/發(fā)送地址/*/uchar SPI_Read_Buf(uchar reg, uchar * pBuf, uchar bytes)
46、uchar status, i; CSN = 0; / CSN置低,開始傳輸數(shù)據(jù) status = SPI_RW(reg); / 選擇存放器,同時返回狀態(tài)字 for(i=0; i<bytes; i+) pBufi = SPI_RW(0); / 逐個字節(jié)從nRF24L01讀出 CSN = 1; / CSN拉高,結束數(shù)據(jù)傳輸 return(status); / 返回狀態(tài)存放器/*/*函數(shù):SPI_Read()描述:從reg存放器讀一字節(jié)/*/uchar SPI_Read(uchar reg)uchar reg_val; CSN = 0; / CSN置低,開始傳輸數(shù)據(jù) SPI_RW(reg); / 選擇存放器 reg_val = SPI_RW(0); / 然后從該存放器讀數(shù)據(jù) CSN = 1; / CSN拉高,結束數(shù)據(jù)傳輸 return(reg_val); / 返回存放器數(shù)據(jù)/*/*函數(shù):SPI_RW_Reg()描述: 寫數(shù)據(jù)value到reg存放器/*/uchar SPI_RW_Reg(uchar reg, uchar value)uchar status; CSN = 0; / CSN
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 采購談判與合同管理規(guī)范(標準版)
- 會議發(fā)言與討論規(guī)范制度
- 公共交通線路規(guī)劃管理制度
- 國際貿易融資與風險管理指南(標準版)
- 車站客運服務監(jiān)督制度
- 辦公室員工薪酬福利制度
- 《JavaScript前端開發(fā)技術》試卷及答案 卷2
- 2026年西安高新第三中學公寓樓招聘備考題庫及答案詳解1套
- 養(yǎng)老院消防通道及疏散預案制度
- 養(yǎng)老院入住老人社會活動參與制度
- 廣東省廣州市2025-2026學年九年級化學上學期期末模擬卷(含答案)
- 湖北省十堰市第二中學高中生物必修一人教版導能量之源光光合作用教案
- 集團有限公司安全生產責任清單(全員)
- 陜西能源職業(yè)技術學院2026年教師公開招聘備考題庫及答案詳解(奪冠系列)
- 2026屆全國新高考語文沖刺復習:疑問的三種情況作文講評
- 地質鉆探施工方案
- 2026年1月上海市春季高考數(shù)學試題卷(含答案)
- 高壓供電協(xié)議中的合同
- 2026年植物保護(植物檢疫)考題及答案
- 2025年長護險考試試題及答案
- DG-TJ08-2021-2025 干混砌筑砂漿抗壓強度現(xiàn)場檢測技術標準
評論
0/150
提交評論