數(shù)字式密碼電子鎖電路課程設計任務書_第1頁
數(shù)字式密碼電子鎖電路課程設計任務書_第2頁
數(shù)字式密碼電子鎖電路課程設計任務書_第3頁
數(shù)字式密碼電子鎖電路課程設計任務書_第4頁
數(shù)字式密碼電子鎖電路課程設計任務書_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 課程設計任務書學生姓名: 柯一凡 專業(yè)班級: 通信1102 指導教師: 許建霞 工作單位: 信息工程學院 題 目: 數(shù)字式密碼電子鎖電路設計 初始條件:protel軟件、pc機和相關的參考書籍如:1. protel99 入門與提高.趙品編著.人民郵電出版社.2000.112. protel99 高級應用.趙品編著.人民郵電出版社.2000.113. protel 99 se電路設計與仿真應用要求完成的主要任務: 1、繪制具有一定規(guī)模、一定復雜程度的電路原理圖*.sch(自選)??梢陨婕澳M、數(shù)字、高頻、單片機、或者一個具有完備功能的電子電路系統(tǒng)。(注意:電路選擇不可過分簡單,元件種類(包括電

2、源和信號源)少于5種;或者元件個數(shù)少于10個將導致不及格。)2、 繪制相應電路原理圖的雙面印刷版圖*.pcb3、對電路原理圖進行仿真,給出仿真結果(如波形*.sdf、數(shù)據(jù))并說明是否達到設計意圖。(注意:仿真提倡對所繪制的原理圖*.sch進行全面仿真,如果不能做到全面仿真成功,則要說明原因,但要完成局部電路的仿真。)時間安排: 序號設 計 內 容所 用 時 間1選擇合適的電路1天2用protel繪制相應的電路雙面印刷版圖,并仿真3天3總結編寫課程設計報告1天合 計1周指導教師簽名: 2014年 6 月 10 日系主任(或責任教師)簽名: 2014年 6 月 10 日 目錄 目錄 i摘要iabs

3、tractii1 設計任務與要求11.1 設計任務11.2 設計要求12 原理分析22.1單片機控制原理22.2模塊硬件電路分析22.2.1單片機最小系統(tǒng)22.2.2鍵盤矩陣32.2.3 lcm1602液晶顯示42.2.4聲光顯示43 電路原理圖繪制63.1 dxp繪制電路原理圖63.2 dxp繪制pcb圖93.2.1 加載網(wǎng)絡表93.2.2 pcb板的排版103.2.3 pcb板的布線103.3.4 pcb板的覆銅114 電路仿真及分析135 心得體會156 參考文獻16附錄17數(shù)字式密碼電子鎖程序源代碼(仿真)18 摘要 本系統(tǒng)以stc89c52單片機最小系統(tǒng)為核心,結合矩陣鍵盤、1602

4、lcd和報警系統(tǒng)組成。系統(tǒng)能完成鎖閉狀態(tài)顯示、密碼輸入錯誤超次(大于三次)異常,系統(tǒng)鎖定聲光告警、初始化設置用戶密碼等基本的密碼鎖的功能。除上述基本的密碼鎖功能外,依據(jù)實際的情況還可以添加通過超級密碼重置密碼、鍵盤背光與通過背光顯示密碼、系統(tǒng)產(chǎn)生隨機密碼等擴展空間。protel dxp 6將項目管理方式、原理圖和pcb圖的雙向同步技術、多通道技術、自動布線技術以及強大的電路仿真的技術完美的融合在一起。protel dxp提供了豐富的元件庫,包括原理圖符號。pcb封裝、si模型及仿真模型,可以方便地進行同步修改。這次課程設計主要要求掌握原理電路圖設計、pcb設計和仿真。關鍵詞:protel dx

5、p,pcb設計,電子密碼鎖,stc89c52,液晶顯示 abstractthe system stc89c52 microcomputer as the core, combined with matrix keyboards, 1602lcd and alarm system components. system can complete the lock status display, the password input error and ultra (more than three times) abnormal sound and light alarm system lock,

6、initialized to set user passwords, and other basic lock function. in addition to the basic lock function, based on the actual situation can also be added through super password reset your password, keyboard backlight and password through the backlit display, the system generates random passwords for

7、 expansion.protel dxp 6 combine project management, the pcb and schematic map of the two-way synchronization technology, multi-channel technology, automatic routing technology and a strong circuit simulation technology together perfectly. protel dxp provides a rich library, including the principle o

8、f symbols. pcb package, si model and simulation model can easily synchronize edits. the main demands of the curriculum design master principle circuit design, pcb design and simulation.keywords: protel dxp,pcb design tools,electronic code lock,stc89c52, liquid crystal display1 設計任務與要求1.1 設計任務 設計一個以單

9、片機at89c52為主控芯片,結合外圍電路,組成電子密碼鎖。用戶想要打開鎖,必先通過提供的鍵盤輸入正確的密碼才能將鎖打開,密碼輸入錯誤有提示,為提高安全性,當密碼輸入錯誤三次將報警。密碼可以由用戶自己修改設定,鎖打開后才能修改密碼。修改密碼之前必須再次輸入密碼,在輸入新密碼時候需要二次確認,以防止誤操作。完成密碼鎖的功能。1.2 設計要求(1) 使用protel制作數(shù)字式密碼電子鎖的電路原理圖(2) 使用protel制作數(shù)字式密碼電子鎖的pcb圖(3) 使用protuse對數(shù)字式密碼電子鎖電路進行仿真2 原理分析2.1單片機控制原理 本次設計選用單片機stc89c52作為本設計的核心元件,利用

10、單片機靈活的編程設計和豐富的i/o端口,及其控制的準確性,實現(xiàn)基本的密碼鎖信號判斷、狀態(tài)保存、電平控制的功能。設計從總體可以分為硬件和軟件兩個部分。在硬件部分中,由單片機最小系統(tǒng)、矩陣鍵盤、1602液晶顯示、聲光顯示這幾個部分,其相關控制如圖2-1;在軟件部分中,由矩陣鍵盤鍵值讀取、1602液晶顯示函數(shù)、延時模塊、密碼讀取模塊、密碼設置模塊、密碼比較模塊、聲光狀態(tài)模塊等幾部分組成。單片機最小系統(tǒng)聲光顯示模塊1602液晶顯示模塊矩陣鍵盤 圖2-1 硬件模塊關系2.2模塊硬件電路分析2.2.1單片機最小系統(tǒng)此為一個單片機最小系統(tǒng),其有p0p3 四組i/o口,可以進行相關的電平狀態(tài)讀取與控制操作。開

11、關sw_rst為復位開關,當其接通,單片機rst9復位端至于高電位,滿足一定時長后,單片機會進行復位操作,重新開始工作。y1、c1.2、c1.3組成了單片機的振蕩電路,為單片機系統(tǒng)提供穩(wěn)定可靠地時鐘信號,協(xié)助單片機完成相關操作。header9為一組排阻,座位上拉電阻。由于stc89c52使用串口方式下載程序,因此需要使用max232完成程序下載的處理工作。 圖2-2 單片機最小系統(tǒng)原理圖 圖2-3 串口電路 2.2.2鍵盤矩陣設計準備使用4×4鍵盤,對應的電路如圖2-4所示。09輸入相應的數(shù)字。在輸入密碼是lr分別實現(xiàn)輸入位置的左右移動,b為退格鍵,c為清除鍵,清楚當前所有的輸入字符

12、,s為功能擴展鍵,暫時未定義,e為確認鍵。由于本設計所用到的按鍵數(shù)量較多而不適合用獨立按鍵式鍵盤。采用的是矩陣式按鍵鍵盤,它由行線和列線組成,也稱行列式鍵盤,按鍵位于行列的交叉點上,密碼鎖的密碼由鍵盤輸入完成,與獨立式按鍵鍵盤相比,要節(jié)省很多i/o口。 圖2-4 4×4鍵盤矩陣2.2.3 lcm1602液晶顯示圖2-5為1602液晶的引腳分布。1,2為液晶顯示供電,3接滑動變阻器改變3的相對電位,調節(jié)顯示對比度。4,5,6為液晶的控制端,調節(jié)工作狀態(tài)。714為液晶的數(shù)據(jù)輸入端,15、16為液晶背光的電源接口。17,18可以懸空不接。 圖2-5 lcm1602液晶顯示2.2.4聲光顯示

13、光顯示有紅綠兩種顏色的發(fā)光二極管組成,負極接單片機引腳,正極結一個限流電阻后接地。當單片機輸出高電平,其不亮,當單片機輸出低電平,二極管點亮。聲信號告警有長鳴蜂鳴器與一個三極管、電阻組成,三極管在單片機的控制下驅動蜂鳴器正常工作。長鳴蜂鳴器,在給予有效電平時可以不間斷的以一定的頻率發(fā)出蜂鳴。 圖2-6 蜂鳴器工作電路3 電路原理圖繪制3.1 dxp繪制電路原理圖進入protel dxp 2004后,依次點擊工具欄上的file/new/pcb project,新建一個后綴名為prjpcb的工程文件。圖3-1 新建prjpcb工程文件接下來在剛建立的prjpcb的工程文件下點擊file/new/s

14、chematic新建一個后綴名為schdoc的原理圖,建立原理圖與工程的關聯(lián)。圖3-2 新建原理圖在繪制原理圖時,protel dxp 2004在工具欄上提供了常用元件的快捷方式,例如電阻、電解電容、瓷片電容以及常用的與、或、非等組合邏輯門,使用起來很方便。如果要使用其他元件則可以使用place/part命令打開元件選擇窗口。若使用的是比較基本的元件可以在protel dxp 2004默認提供的元件庫miscellaneous devices.lntlib中直接瀏覽。protel dxp 2004將元件的原理圖符號,元件描述、封裝號以及si仿真模型都集中在一起顯示,使用起來很方便,也在一定程度

15、上避免了protel 99 se中不知道元件封裝號的問題。如果需要修改,可以在model name框中自行修改。圖3-3 添加元件 如果是尋找不那么常用的元件可以在元件庫管理器中選擇libraries/search/search libraries命令,再輸入元件名稱查找。根據(jù)電路要求可以在dxp中加載相應的元件庫,dxp中帶有非常豐富的元件庫,并且按照芯片的生產(chǎn)公司的名稱分開放置,便于查找。如果沒有相應的元件,還可以通過pcb庫文件編輯器來自己編輯。圖3-4 加載元件庫 在依照電路安放好所有元件之后再開始連線。點擊工具欄上的place wire圖標進行連線操作,將各元件的引腳連接起來。在連線

16、時需要注意導線交叉時是否導通的問題。如圖3.5所示,第一條水平導線與豎直導線導通,但在繪圖時經(jīng)常忽略這一點,處理成第二條水平線。所以在畫圖時應該在連接處用place菜單下的manualjunction工具添加一個電氣結點。 圖3-5 連線時的結點處理完成所有連線之后,選擇file/new/textdocument命令,開啟一個數(shù)據(jù)庫文本;再選擇project/project options命令設置工程檢查參數(shù),在執(zhí)行project/compile document檢查系統(tǒng)錯誤。如果提示錯誤則返回修改原理圖,如果沒有錯誤,則選擇design/netlist for document/protel

17、命令生成網(wǎng)絡表。 圖3-6 數(shù)字式密碼電子鎖原理圖3.2 dxp繪制pcb圖3.2.1 加載網(wǎng)絡表生成網(wǎng)絡表之后,就進入了pcb板繪制的階段。選擇file/new/pcb生成一個后綴為pcbdoc的文件。pcb板分為很多層,主要有top-layer、bottom-layer、mechanical、top overlay、keep-out-layer和multi-layer。按步驟設置pcb板的mechanical物理邊界以及keep-out layer電氣邊界。先執(zhí)行design/board sharp/redefine board sharp命令,此時光變變成十字形。然后在mechanica

18、l層面上劃定pcb板的物理邊界,最后在禁止布線層(keep-out layer)上面劃定電器邊界。在正確設置完成pcb板之后,在pcbdoc文件下選擇design/import changes from命令加載網(wǎng)絡表(或者在schdoc文件下選擇design/update pcb document命令),屏幕上顯示詳細的網(wǎng)絡連接信息。點擊validate changes按鈕可以檢查裝入的元件封裝、電器規(guī)則以及元件的網(wǎng)絡連接是否正確,如果正確,屏幕上將顯示綠色打勾標記。再點擊execute changes按鈕完成元件網(wǎng)絡表的加載。 3.2.2 pcb板的排版 網(wǎng)絡表加載完成之后,pcb根據(jù)網(wǎng)絡表

19、產(chǎn)生預拉線,在屏幕上會出現(xiàn)排列整齊的所有元件以及設置過的pcb板,然后pcb根據(jù)預拉線一條一條變?yōu)殂~膜走線。選定所有的元件拖至pcb板上,執(zhí)行tools/auto placement/auto placer/cluster placer命令,dxp開始自動排版。一般來說dxp的自動排版后的pcb板已經(jīng)比較理想了,但是仍然可以手動排版進行進一步美化。 圖3-7 pcb手動排版3.2.3 pcb板的布線 在元件排版完畢之后,就可以進入到最后的布線階段。protel dxp 2004沿襲了protel99 se強大的自動布線功能,不僅布線快速而且合理,通過率很高。我們可以執(zhí)行auto route/a

20、ll命令,選擇default 2 layer board選項,再點擊route all完成雙層pcb板的布線。 圖3-8 dxp自動布線后的pcb板dxp在完成自動布線之后顯示一共布線總數(shù),并且全部成功,至此基于dxp的pcb板設計全部制作完成。3.3.4 pcb板的覆銅選擇工具欄上的按鈕,將彈出一個對話框,如圖3-9所示,在connect to net中選擇gnd點擊ok,鼠標將變成光標,用光標將需要覆銅的區(qū)域圈起來,則得到覆銅后的頂層圖,如圖3-9所示,在設計工作區(qū)的板層標簽選中bottomlayer,執(zhí)行以上相同步驟,得到覆銅后的底層圖,如圖3-9。 圖3-9 覆銅參數(shù)設置 圖3-10

21、覆銅后的頂層圖4 電路仿真及分析(1) 密碼鎖開始菜單 圖4-1 密碼鎖開始菜單(2) 密碼鎖設置初始密碼 圖4-2 設置初始密碼(3) 成功設置密碼 圖4-3 設置密碼成功提示(4) 輸入錯誤提示 圖4-4 密碼輸入錯誤提示 結論:由此可以看出,此設計的矩陣鍵盤鍵值讀取,1602液晶顯示模塊,密碼讀取模塊,密碼設置模塊比較模塊,聲光狀態(tài)模塊都能正常工作,設計成功。5 心得體會作為電路設計必須使用的軟件,protel dxp被現(xiàn)代電子設計者們廣泛的使用,我們作為電子信息工程專業(yè)的學習者,理應熟練掌握這種實用性好、專業(yè)性強的軟件。經(jīng)過對protel dxp一周的學習和應用,從開始的無法上手,到現(xiàn)

22、在的馬馬虎虎,雖然不能說做的很好,但是自己看到了自己的進步,從這點上還是很高興的。本設計從經(jīng)濟實用的角度出發(fā),采用美國atmel公司的單片機at89c52作為主控芯片與數(shù)據(jù)存儲器單元,結合外圍的鍵盤輸入、顯示、報警、開鎖等電路并用c編寫主控芯片的控制程序,研制了一款可以多次更改密碼具有報警功能的電子密碼鎖。設計完全可行可以達到設計目的。使用單片機制作的電子密碼鎖具有軟硬件設計簡單,易于開發(fā),成本較低,安全可靠,操作方便等特點??蓱糜谧≌?、辦公室的保險箱及檔案柜等需要防盜的場所,有一定的實用性。該電路設計還具有按鍵有效提示,輸入錯誤提示,控制開鎖電路,控制報警電路,修改密碼等多種功能??稍谝馔?/p>

23、泄密的情況下隨時修改密碼。保密性強,靈活性高,特別適用于家庭、辦公室、學生宿舍及賓館等諸多場所。與此同時本次課程設計也使我學到了關于protel軟件的安裝、電子線路原理圖的設計、電路原理圖元件庫文件的設計、電子線路pcb電路板設計、pcb元件封裝庫設計。但是這些內容對于我們今后的所用是遠遠不夠的。為此,在以后的時間里要進一步的去學習和思考,對protel要有近一步的認識,更好能熟練地掌握各種操作此軟件。6 參考文獻1 伍時和等數(shù)字電子技術基礎北京:清華大學出版社,2009.42 張?zhí)旆驳?1單片機c語言開發(fā)詳解北京:電子工業(yè)出版社,2008.63 李東生,許四毛. protel電路設計教程.

24、北京:電子工業(yè)出版社,2010.4 朱定華,蔡苗. protel原理圖和印制板設計.北京:清華大學出版社,2011. 5 陳汝全電子技術常用器件應用手冊2版北京:機械工業(yè)出版社,2006.6 余孟嘗數(shù)字電子技術基礎簡明教程.2版北京:高等教育出版社,2007.7 謝自美.電子線路設計.實驗.測試.武漢:華中科技大學出版,2006.附錄名稱型號數(shù)量備注單片機芯片stc89c521石英晶振12m1瓷片電容3321054電解電容4.7uf1電位器10k1電阻1k410k110k排阻1led紅色1綠色1長鳴蜂鳴器1三極管85501lcd顯示模塊16021按鍵開關17自鎖開關1排針若干導線若干萬用表1電

25、工工具1套數(shù)字式密碼電子鎖程序源代碼(仿真)#include"reg52.h"#include "string.h"#define lcd_data p0 /lcd的數(shù)據(jù)口/輸入方式設置#define lcd_ac_auto_increment0x06 /數(shù)據(jù)讀、寫操作后,ac自動增一#define lcd_ac_auto_decrease0x04 /數(shù)據(jù)讀、寫操作后,ac自動減一#define lcd_move_enable0x05 /數(shù)據(jù)讀、寫操作,畫面平移#define lcd_move_disenable 0x04 /數(shù)據(jù)讀、寫操作,畫面不動/設

26、置顯示、光標及閃爍開、關#define lcd_display_on 0x0c /顯示開#define lcd_display_off 0x08 /顯示關#define lcd_cursor_on 0x0a /光標顯示#define lcd_cursor_off 0x08 /光標不顯示#define lcd_cursor_blink_on 0x09 /光標閃爍#define lcd_cursor_blink_off 0x08 /光標不閃爍/光標、畫面移動,不影響ddram#define lcd_left_move 0x18 /lcd顯示左移一位#define lcd_right_move 0x

27、1c /lcd顯示右移一位#define lcd_cursor_left_move 0x10 /光標左移一位#define lcd_cursor_right_move 0x14 /光標右移一位/工作方式設置#define lcd_display_double_line0x38 /兩行顯示#define lcd_display_single_line 0x30 /單行顯示unsigned char code tab44='1','2','3','c', '4','5','6','

28、;b', '7','8','9','s', 'l','0','r','e' /鍵盤鍵值表unsigned char input_password9=0,0,0,0,0,0,0,0,'0' /臨時讀入密碼數(shù)組unsigned char normal_password9="12345678" /密碼存儲數(shù)組unsigned char temp_normal_password9="12345678"/臨時設定密

29、碼數(shù)組unsigned char lock=0,miss=0,key=0;/系統(tǒng)環(huán)境變量 分別為鎖狀態(tài)、連續(xù)錯誤次數(shù)、讀入鍵值sbit beep=p32;/蜂鳴器控制變量sbit ledr=p34;/開鎖指示燈控制變量sbit lede=p36;/閉鎖指示燈控制變量sbit lcd_busy=lcd_data7; /lcd忙信號位sbit lcd_rw=p20; /lcd讀寫控制sbit lcd_rs=p21; /lcd寄存器選擇sbit lcd_en=p22; /lcd使能信號*/void lcd_cls(void);void lcd_write_data(unsigned char);vo

30、id lcd_initial(void);void lcd_set_position(unsigned char);void lcd_prints(unsigned char *);void lcd_printc(unsigned char); voiddidi();/蜂鳴報警模塊函數(shù)voidverify_password ();/開鎖判斷模塊函數(shù)void load();/初始化函數(shù)void first();voidread_password ();/讀入密碼模塊函數(shù)voidset_password();/設定密碼模塊函數(shù)void delay(unsigned char a);/毫秒延時模塊函

31、數(shù)unsigned char kbscan(); /鍵盤掃描模塊函數(shù)void lcd_check_busy(void) /檢測lcd狀態(tài) while(1) lcd_en=0; lcd_rs=0; lcd_rw=1; lcd_data=0xff; lcd_en=1; if(!lcd_busy)break; lcd_en=0;void lcd_cls(void) /lcd清屏 lcd_check_busy(); lcd_rs=0; lcd_rw=0; lcd_data=1; lcd_en=1; lcd_en=0; void lcd_write_instruction(unsigned char l

32、cd_instruction) /寫指令到lcd lcd_check_busy(); lcd_rs=0; lcd_rw=0; lcd_data=lcd_instruction; lcd_en=1; lcd_en=0; void lcd_write_data(unsigned char lcd_data) /輸出一個字節(jié)數(shù)據(jù)到lcd lcd_check_busy(); lcd_rs=1; lcd_rw=0; lcd_data=lcd_data; lcd_en=1; lcd_en=0; void lcd_set_position(unsigned char x) /lcd光標定位到x處 lcd_w

33、rite_instruction(0x80+x);/*void lcd_go_home(void) /lcd光標歸位 lcd_write_instruction(lcd_go_home);*/void lcd_printc(unsigned char lcd_data) /輸出一個字符到lcd lcd_write_data(lcd_data);void lcd_prints(unsigned char *lcd_string) /輸出一個字符串到lcd unsigned char i=0; while(lcd_stringi!=0x00) lcd_write_data(lcd_stringi)

34、; i+; void lcd_initial(void) /初始化lcd lcd_write_instruction(lcd_ac_auto_increment|lcd_move_disenable); lcd_write_instruction(lcd_display_on|lcd_cursor_off); lcd_write_instruction(lcd_display_double_line); lcd_cls();/*function:delay(unsigned char t)*input variables:t<256*return variables:none*usage

35、:通過讀入的時間值進行延時*notes: none*/void delay(unsigned char a)unsigned char i;while(a-)for(i=110;i>0;i-);/*function:kbscan()*input variables:none*return variables:key*usage:將讀出的按鍵保存在全局變量key,并將其當做函數(shù)值返回*notes: none*/unsigned char code kbscan() /鍵盤掃描模塊函數(shù) unsigned char hang,lie;if(p1!=0x0f)delay(5);/軟件消抖if(p

36、1!=0x0f)/判斷是否有按鍵switch(p1&0x0f)case 0x0e:hang=0;break;case 0x0d:hang=1;break;case 0x0b:hang=2;break;case 7:hang=3;break;/掃描行p1=0xf0;p1=0xf0;switch(p1&0xf0)case 0xe0:lie=0;break;case 0xd0:lie=1;break;case 0xb0:lie=2;break;case 0x70:lie=3;break;/掃描列p1=0x0f;while(p1!=0x0f);key=tabhanglie;/確定按鍵鍵

37、值elsekey=0;/無按鍵return (key);/*function:load()*input variables:none*return variables:none*usage:系統(tǒng)初始化*notes: none*/void load()/初始化函數(shù)unsigned char i;beep=1;ledr=0;lede=1;key=0;p1=0xf0;p0=0xff;for(i=0;i<9;i+)input_passwordi='0'/系統(tǒng)變量數(shù)組清零normal_password9='0'lcd_initial();lcd_set_positi

38、on(1);lcd_prints("why's electron");lcd_set_position(0x40);lcd_prints(" cipher lock");/提示信息lcd顯示while(kbscan()=0);/按任意值返回return;/*function:first()*input variables:none*return variables:none*usage:等待清屏函數(shù)*notes: none*/void first()while(kbscan()=0);lcd_cls();return;/*function:rea

39、d_password()*input variables:none*return variables:none*usage:讀入通過鍵盤輸入的密碼*notes: none*/void read_password()/讀入密碼模塊函數(shù)unsigned char i=0;lcd_set_position(0x40);lcd_prints(" ");for(i=0;i<9;i+)input_passwordi='0'/讀入密碼數(shù)組初始化for (i=0;i<9;)while(kbscan()=0);if(i=8 &&(key>=&

40、#39;0'&&key<='9') continue;/判斷是否輸入最長密碼switch(key)/判斷按鍵種類case 'l':if(i>0)i-;break; /讀入位置左移case 'r':if(i<7)i+;break; /讀入位置右移case 'e':return;case 'c':lcd_set_position(0x40);lcd_prints(" ");for(i=9;i>0;i-)input_passwordi='0

41、9;input_passwordi='0'break;/清空讀入內容case 'b':if(i>0)i-;input_passwordi=0;lcd_set_position(0x44+i);lcd_printc(' ');/進行退格操作break;case 's': break; /功能鍵處理default: input_passwordi=key;/有效數(shù)字密碼保存lcd_set_position(0x44+i);lcd_printc(input_passwordi+);key=0;/鍵值清零/*function:voi

42、d set_password()*input variables:none*return variables:none*usage:設置密碼鎖系統(tǒng)的密碼*notes: none*/void set_password()/設定密碼模塊函數(shù)unsigned char i,j;/局部循環(huán)、判斷變量while(1)lcd_cls();lcd_set_position(1);lcd_prints("set password");lcd_set_position(0x40);lcd_prints(" ");/提起信息顯示read_password();/讀入密碼st

43、rncpy(temp_normal_password,input_password,9);/讀入密碼保存在臨時設定密碼數(shù)組for(i=0;i<9;i+)input_passwordi='0'/讀入密碼數(shù)組初始化lcd_set_position(0x44);while(kbscan()=0);lcd_cls();lcd_set_position(1);lcd_prints("input again");read_password(); /進行設定密碼確認j=strcmp(input_password,temp_normal_password)=0;/判斷

44、兩次密碼是否相同for(i=0;i<9;i+)input_passwordi='0'if(j)lcd_cls();lcd_set_position(2);lcd_prints("set password");lcd_set_position(0x42);lcd_prints("successfully");strncpy(normal_password,temp_normal_password,9);for(i=0;i<9;i+)temp_normal_passwordi='0'while(kbscan()=0);break;/如果相同保存密碼進行提示elselcd_cls();

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論