智能密碼鎖設(shè)計_第1頁
智能密碼鎖設(shè)計_第2頁
智能密碼鎖設(shè)計_第3頁
智能密碼鎖設(shè)計_第4頁
智能密碼鎖設(shè)計_第5頁
已閱讀5頁,還剩35頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、湖南工程學(xué)院等級:課 程 設(shè) 計課程名稱 單片機原理及應(yīng)用 課題名稱 智能密碼鎖設(shè)計 專 業(yè) 自動化 班 級 1291 學(xué) 號 姓 名 指導(dǎo)教師 2014 年 12 月15 日湖南工程學(xué)院課 程 設(shè) 計 任 務(wù) 書課程名稱 單片機原理及應(yīng)用 課 題 智能密碼鎖設(shè)計 專業(yè)班級 自動化1291 學(xué)生姓名 聶利峰 學(xué) 號 201201029135 指導(dǎo)老師 王迎旭 李曉秀 審 批 任務(wù)書下達日期 2014 年 12 月 1 日任務(wù)完成日期 2014 年 12 月 15 日設(shè)計內(nèi)容與設(shè)計要求設(shè)計內(nèi)容:本課題是要發(fā)設(shè)計一種基于單片機控制的智能電子密碼鎖,主要功能有:按用戶使用要求可設(shè)置、修改密碼,遙控或

2、按鍵開鎖,錯誤報警、顯示等輔助功能。設(shè)計要求:1)根據(jù)課題要求,確定智能電子密碼鎖的硬件; 2)進行系統(tǒng)的硬件設(shè)計;3)完成必要的參數(shù)計算與元器件選擇;4)完成應(yīng)用程序設(shè)計;5)進行單元電路及應(yīng)用程序的調(diào)試;主 要 設(shè) 計 條 件1. 密碼可設(shè)48位,并可在線修改并存儲;2.密碼輸錯3次應(yīng)有報警信號提示,并有特殊密碼解除;3.出開鎖時外的時候,要求顯示的是北京時間;4.開鎖信號可以通過繼電器輸出。說 明 書 格 式封面課程設(shè)計任務(wù)書目錄第1章 概述(課題設(shè)計的要求、目的及意義)第2章 系統(tǒng)總體方案選擇與說明(系統(tǒng)硬件電路設(shè)計框圖與工作原理)第3章 硬件電路設(shè)計(各部分電路設(shè)計、原理、參數(shù)計算、

3、I/O分配等)第4章 應(yīng)用軟件設(shè)計(流程圖、算法等)*第5章 系統(tǒng)仿真調(diào)試第6章 硬件調(diào)試與結(jié)果分析(開發(fā)板焊接、性能測試、結(jié)果、操作說明)第7章 小結(jié)(已完成的工作、效果、特色、不足與展望)致謝參考文獻 附錄A 系統(tǒng)硬件電路原理圖附錄B 程序清單評分表進 度 安 排設(shè)計時間為兩周第一周星期一、上午:布置課題任務(wù),講課及課題介紹 下午:借閱有關(guān)資料,總體方案討論星期二、確定總體設(shè)計方案星期三、硬件模塊方案設(shè)計星期四、軟件模塊方案設(shè)計星期五 小系統(tǒng)焊接與調(diào)試;第二周星期一、各硬件模塊設(shè)計星期二、各軟件模塊設(shè)計星期三、各軟件模塊設(shè)計星期四、寫說明書星期五、上午:寫說明書,整理資料下午:交設(shè)計資料,

4、答辯參 考 文 獻參考文獻1 王迎旭等.單片機原理及及應(yīng)用M.機械工業(yè)出版社.2012年2 胡漢才,單片機原理及其接口技術(shù) M. 3版. 北京:高等教育出版社,2004. 3 陳海宴. 51單片機原理及應(yīng)用基于keil C與proteus M. 北京:北京航空航天大學(xué)出版社,2010.4 鄧亞平. 微型計算機接口技術(shù) M. 北京:清華大學(xué)出版社, 2001 目 錄第1章 概述 .11.1 設(shè)計要求.11.2 目的及意義. 1第2章 系統(tǒng)總體方案選擇與說明.2 2.1系統(tǒng)硬件電路設(shè)計框圖. 22.2 工作原理. 2第3章 硬件電路設(shè)計.43.1 時鐘電路設(shè)

5、計.43.2 開鎖電路設(shè)計.43.3 復(fù)位電路設(shè)計. .53.4 報警電路設(shè)計.53.5 鍵盤電路設(shè)計.53.6 LED數(shù)碼管顯示電路設(shè)計.63.7 密碼存儲電路設(shè)計.7第4章 應(yīng)用軟件設(shè)計.94.1軟件設(shè)計思路.94.2各子程序設(shè)計.9 4.2.1 鍵盤掃描子程序設(shè)計.9 4.2.2 LED顯示子程序設(shè)計. 11 4.2.3 開鎖子程序設(shè)計.114.2.3 EEPROM閃存子程序設(shè)計.11第5章 硬件調(diào)試與結(jié)果分析.13第6章  小結(jié).致 謝.參考文獻.附    錄.附錄A:系統(tǒng)硬件電路原理圖.附錄B:

6、源程序清單.電氣與信息工程系課程設(shè)計評分表.  第1章 概  述1.1 設(shè)計要求本設(shè)計是基于單片機控制的智能電子密碼鎖,根據(jù)要求,給出了該單片機密碼鎖的硬件電路和軟件程序,同時給出了單片機型號的選擇、硬件設(shè)計、軟件流程圖、單片機存儲單元的分配、匯編語言源程序及詳細注釋等內(nèi)容。 主要功能有:按用戶使用要求可設(shè)置、修改密碼,遙控或按鍵開鎖,錯誤報警、顯示等輔助功能。列如:(1) 密碼可設(shè)4位,并可在線修改并存儲;(2)密碼輸錯3次應(yīng)有報警信號提示,并有特殊密碼解除;(3)出開鎖時外的時候,要求顯示的是北京時間;(4)開鎖信號可以通過繼電器輸出。1.2 目的及

7、意義在安全技術(shù)防范領(lǐng)域,具有防盜報警功能的電子密碼控制系統(tǒng)逐漸代替?zhèn)鹘y(tǒng)的機械式密碼控制系統(tǒng),克服了機械式密碼控制的密碼量少、安全性能差的缺點,使電子密碼控制系統(tǒng)無論在技術(shù)上還是在性能上都大大提高了一步。隨著大規(guī)模集成電路技術(shù)的發(fā)展,特別是單片機的問世,出現(xiàn)了帶微處理器的智能密碼控制系統(tǒng),它除具有傳統(tǒng)電子密碼控制系統(tǒng)的功能外,還引入了智能化管理、專家分析系統(tǒng)等功能,從而使密碼控制系統(tǒng)具有很高的安全性、可靠性,應(yīng)用日益廣泛。 第2章 系統(tǒng)總體方案選擇與說明2.1系統(tǒng)硬件電路設(shè)計框圖本方案采用一種是用以89C51為核心的單片機控制方案。利用單片機靈活的編程設(shè)計和豐富的I/O端口,及其控制的準確性,實

8、現(xiàn)基本的密碼鎖功能。 根據(jù)設(shè)計要求與設(shè)計思路,確定系統(tǒng)的設(shè)計方案,圖2.1為系統(tǒng)組成原理框圖。硬件有以下幾部分組成:單片機、時鐘電路、復(fù)位電路、鍵輸入電路、串行EEPROM擴展電路、LED數(shù)碼管顯示電路、LED指示燈電路、蜂鳴器電路、繼電器電路等。鍵盤輸入電路系統(tǒng)復(fù)位電路時鐘電路EEPROM閃存LED數(shù)碼顯示LED、蜂鳴器、繼電器電路單片機圖2.1系統(tǒng)硬件電路設(shè)計方案框圖 2.2 工作原理(1)系統(tǒng)的原始密碼放在RAM區(qū),在運行過程中可以實時更改系統(tǒng)密碼。(2)利用串行EEPROM存儲芯片,可以隨時讀取新密碼,且具有掉電保護功能。(3)人機交互通過鍵盤輸入,系統(tǒng)根據(jù)鍵值做出相應(yīng)的處理

9、,完成具體的功能。(4)LED數(shù)碼管通過驅(qū)動電路,顯示相應(yīng)的狀態(tài)。位選由P2口高四位產(chǎn)生,段碼由P1口輸入。 (5)系統(tǒng)還擴展了LED指示燈、蜂鳴器、繼電器等一些其本外圍電路。(6)此系統(tǒng)共設(shè)計了3個基本功能鍵:密碼設(shè)置鍵、確認鍵、復(fù)位鍵。 密碼設(shè)置鍵:當用戶需更改密碼時,可通過此功能鍵方便地修改原先的舊密碼。 確認鍵:當完成密碼輸入后,可按此功能鍵即可實現(xiàn)密碼的比較和處理。 復(fù)位鍵:當密碼三次輸入錯誤時,系統(tǒng)進入死鎖狀態(tài),可按此功能鍵跳出此狀態(tài)。 第3章 硬件電路設(shè)計3.1 時鐘電路設(shè)計單片機工作的時間基準是由時鐘電路提供的,在單片機的XTAL1和XTAL2兩個引腳間,接一只晶振及兩只電容就

10、構(gòu)成了單片機的時鐘電路,如圖3.1所示。  圖3.1  時鐘電路 電路中器件選擇可以通過計算和實驗確定,也可以參考一些典型電路參數(shù)。電路中,電容器C1和C2對振蕩頻率有微調(diào)作用,同時幫助晶振起振,通常取值范圍在22±0.1PF,一般晶振為12MHZ,電容取2PF。石英晶體選擇12MHZ。3.2開鎖電路設(shè)計本次智能電子密碼鎖設(shè)計中,基于節(jié)省材料的原則,暫時用發(fā)光二極管代替電磁鎖,發(fā)光管亮,表示開鎖;滅,表示沒有開鎖。電路圖如3.2所示。當P2.0口輸出低電平時,二極管發(fā)光,表示開鎖。 圖3.2開鎖電路3.3復(fù)位電路設(shè)計在接通電源瞬間,電

11、容C3上的電壓很小, RST為高電平,在電容充電的過程中RST端電壓逐漸下降,當RST端的電壓小于某一數(shù)值后,CPU脫離復(fù)位狀態(tài),當復(fù)位按鍵按下后電容C3通過R5放電,當電容C3放電結(jié)束后,RST端的電位由R5與R6分壓比決定,由于R5R6,所以RST為高電平,CPU處于復(fù)位狀態(tài),松手后,電容C3充電,RST端電位下降,CPU脫離復(fù)位狀態(tài),R5的作用在于限制按鍵按下瞬間電容C3的放電電流,避免產(chǎn)生火花以保護按鍵觸電,其電路如圖3.3圖3.3復(fù)位電路3.4 報警電路設(shè)計圖3.4 報警電路 報警模塊由蜂鳴器和單片機組成。選擇一只壓電式蜂鳴器,壓電式蜂鳴器工作時約需要100mA驅(qū)動電流。蜂

12、鳴器電路如圖3.4所示。當89C51的P2.1口輸出為低電平時,蜂鳴器產(chǎn)生蜂鳴音,89C51輸出為高電平時,蜂鳴器不發(fā)聲。3.5鍵盤電路設(shè)計     此次課程設(shè)計采用4*4矩陣鍵盤,與P2口相連,采用掃描法。設(shè)有09十個數(shù)字密碼,和幾個功能鍵。開機顯示- - - -,等待密碼輸入,輸入4個密碼,按確認鍵后,密碼比較。P0口送示數(shù)據(jù),P2口顯示掃描,每一個鍵對應(yīng)一個鍵碼,以便將鍵碼轉(zhuǎn)到相應(yīng)的的鍵處理子程序,進一步實現(xiàn)數(shù)據(jù)輸入和命令處理的功能,根據(jù)按鍵次數(shù),第一位顯示器顯示第一次按的密碼,第二位顯示器顯示第二次按的密碼,第三位顯示器顯示第三次按的密碼,依此第

13、四位顯示器顯示第四次按的密碼,密碼對則執(zhí)行相關(guān)動作,不同則顯示器清零,等待重新輸入。 使用矩陣鍵盤,所以本設(shè)計就采用行列式鍵盤,同時也能減少鍵盤與單片機接口時所占用的I/O線的數(shù)目,在按鍵比較多的時候,通常采用這樣方法。其原理如圖3.5 圖3.5矩陣鍵盤 掃描P2.4P2.7,輸出全為0,讀P2.0P2.3,若P2.0P2.3全為1,則鍵盤上沒有閉合鍵,若P2.0P2.3不全為1,則有鍵處于閉合狀態(tài)。再鍵盤去抖確認有鍵閉合計算鍵號,判斷鍵盤中哪一個鍵被按下使通過將列線逐列置低電平后,檢查行輸入狀態(tài)來實現(xiàn)的。方法是:依次給列線送低電平,然后查所有行線狀態(tài),如果全為1,則所按下的鍵不在此

14、列;如果不全為1,則所按下的鍵必在此列,而且是在與零電平行線相交的交點上的那個鍵。鍵值N=行首鍵號+列號 表3.1 按鍵功能表 按鍵 鍵名 功能說明 1-9鍵 數(shù)字鍵 輸入密碼 D鍵 確定鍵 密碼比較 C鍵清除鍵 使顯示清零 R鍵 密碼重設(shè)鍵 設(shè)定新密碼3.6 LED數(shù)碼管顯示電路設(shè)計LED顯示器顯示控制方法有兩種,即動態(tài)顯示和靜態(tài)顯示。靜態(tài)顯示亮度一般比動態(tài)顯示效果好,但本次設(shè)計中,采用了動態(tài)顯示。為了方便編寫程序,通常在內(nèi)部RAM中設(shè)置顯示緩沖區(qū),存放顯示的數(shù)字或字符,顯示緩沖區(qū)單元個數(shù)與LED顯示器位數(shù)相同。此次基于單片機的電子密碼鎖,我選用動態(tài)顯示,通過與軟件配合,每輸入一個密碼,進行

15、顯示一次,掃描,4個密碼輸入完后,進行比較,密碼正確則開鎖,密碼錯誤,可重新輸入三次,三次后仍然錯誤,報警!。用P0.0P0.7通過上拉電阻接數(shù)碼管七段顯示,P2.4P2.7接LED位顯示,通過軟件實現(xiàn)數(shù)字和位控制,顯示電路原理圖如圖3.6所示 圖3.6 LED數(shù)碼顯示電路3.7 密碼存儲電路設(shè)計電路中單片機的P3.4引腳作為串行時鐘線SCL,P3.5引腳作為串行數(shù)據(jù)線SDA,A0、A1、A2接地,從第0頁開始存,單片機I/O口模擬串行總線與AT24C02的接口電路如圖3.7所示 圖3.7 密碼存儲電路設(shè)計第4章 應(yīng)用軟件設(shè)計4.1軟件設(shè)計思路電子密碼鎖工作的主要過程是LED數(shù)碼管沒鍵按下時顯

16、示時間,有鍵按下,通過鍵盤輸入密碼,同時LED顯示密碼輸入情況,按下確認鍵后判斷密碼的正確性,作出開鎖或報警處理。當輸入密碼連續(xù)輸入錯誤3次時,系統(tǒng)報警,一段時間內(nèi)沒鍵按下返回時間顯示。軟件設(shè)計總流程圖如圖4.1固定密碼動態(tài)密碼顯示開鎖3次錯誤報警開始有無鍵按下?密碼對錯?時間顯示NYNY 圖4.1軟件設(shè)計總流程圖4.2各子程序設(shè)計4.2.1 鍵盤掃描子程序 輸入鍵號到A返回有鍵閉合?有鍵閉合?調(diào)用顯示子程序延時開始兩次調(diào)用顯示子程序延時調(diào)用顯示子程序延時鍵釋放?YNYNYN圖4.2 鍵盤子程序流程圖鍵盤子程序如下KEY: LCALL KS ;調(diào)用檢測按鍵子程序 JNZ K1 ;有鍵

17、按下繼續(xù) LCALL DISP LCALL DELAY2 INC 6AH MOV A,6AHCJNE A,#250,KEY RET K1: LCALL DELAY2 LCALL DELAY2 ;有鍵按下繼續(xù)延時去抖動 LCALL KS ;再一次調(diào)用檢測按鍵程序 JNZ K2 ;確認有按下進行下一步 AJMP KEY ;返回繼續(xù)檢測有無按鍵按下 K2: MOV R2,#0EFH ;將掃描值送入 R2暫存 MOV R4,#00H ;將第一列的列值00H送入R4暫存,R4用于存放列值。K3: MOV P2,R2 ;將R2的值送入P2口L6: JB P2.0,L1 ;P2.0等于1跳轉(zhuǎn)到L1 MOV

18、A,#00H ;將第一行的行值00H送入ACC LJMP LK ;跳轉(zhuǎn)到鍵值處理程序L1: JB P2.1,L2 ;P2.1等于1跳轉(zhuǎn)到L2 MOV A,#04H ;將第二行的行值送入ACC LJMP LK ;跳轉(zhuǎn)到鍵值理程序進行鍵值處理L2: JB P2.2,L3 ;P1.2等于1跳轉(zhuǎn)到L3 MOV A,#08H ;將第三行的行值送入ACC LJMP LK ;跳轉(zhuǎn)到鍵值處理程序L3: JB P2.3,NEXT ;P2.3等于1跳轉(zhuǎn)到NEXT處 MOV A,#0cH ;將第四行的行值送入ACCLK: ADD A,R4 ;行值與列值相加后的鍵值送入A PUSH ACC ;將A中的值送入堆棧暫存

19、MOV R2,A MOV 6AH,#00H INC 48H ;按鍵次數(shù)加一 CJNE A,#10,K5 MOV 48H,#00H LCALL K4 LJMP judge ;轉(zhuǎn)判斷4.2.2 LED顯示子程序采用LED動態(tài)顯示,由單片機P0口進行輸出顯示,P2口掃描, LED數(shù)碼管顯示程序流程圖如圖4.3開始密碼對錯處理按鍵數(shù)值存R2比較MOV P0,A按鍵值入AINC R1,位控右移取顯示表頭地址顯示單元從EFH開始入R1按鍵數(shù)是否為4?一段時間內(nèi)有鍵按下?MOVC A,A+DPTRNY返回時間顯示NY 圖 4 .3 LED顯示子程序流程圖 LED顯示子程序如下 DISP0: MOV

20、 7AH,#11 ;顯示清- MOV 7BH,#11 MOV 7CH,#11 MOV 7DH,#11 RET;子程序返回 DISPLAY: MOV R3,48H ;按鍵次數(shù)放R3 MOV A,51H ; 修改新密碼次數(shù) CJNE A,#1,N4 ;新密碼輸入次數(shù) 不等轉(zhuǎn)N4 N9: MOV A,R2 ;按鍵值存A N5: CJNE R3,#1,N6 ;判斷按鍵次數(shù) MOV 74H,A ;按鍵值存緩存單元 MOV 7aH,A AJMP DISP N6: CJNE R3,#2,N7 MOV 75H,A MOV 7BH,A AJMP DISP N7: CJNE R3,#3,N8 MOV 76H,A

21、MOV 7CH,A AJMP DISP N8: CJNE R3,#4,DISP MOV 77H,A MOV 7DH,A AJMP DISP N4: MOV A,R2 ; 重復(fù)輸入新密碼轉(zhuǎn)N4 N0: CJNE R3,#1,N1;判斷按鍵次數(shù) MOV 7aH,A ;存緩存 AJMP DISP N1: CJNE R3,#2,N2 MOV 7BH,A AJMP DISP N2: CJNE R3,#3,N3 MOV 7CH,A AJMP DISP N3: CJNE R3,#4,DISP MOV 7DH,A DISP: MOV R1,#0EFH ;顯示的位控 MOV R0,#7aH ;從7a開始顯示 D

22、ISPLAY2:MOV A,R0 ;顯示緩存單元放AMOVC A,A+DPTR ;轉(zhuǎn)換成段碼MOV P0,A ;顯示MOV A,R1 ;位控MOV P2,A ;位控LCALL DELAY2INC R0RL AMOV R1,ACJNE R1,#0FEH,DISPLAY2RET ;子程序返回4.2.3 開鎖子程序設(shè)計如圖4.4為開鎖流程圖,輸入密碼,如果密碼正確,則開鎖成功,如果輸入錯誤累計達到三次,則執(zhí)行報警程序。開始初始化輸入密碼報警輸入次數(shù)加1開鎖密碼正確?返回次數(shù)>3YNNY 圖4.4開鎖子程序流程圖4.2.3 EEPROM閃存子程序設(shè)計圖4.5為實現(xiàn)單片機通過串行總線對AT24C0

23、2的數(shù)據(jù)讀寫。單片機的P3.4引腳作為串行時鐘線SCL,P3.5引腳作為串行數(shù)據(jù)線SDA,開機從24C02讀取上次保存的密碼,修改密碼后又重新存入新的密碼。從24C02讀密碼開始新密碼存入24C02修改密碼成功返回圖4.5 EEPROM閃存子程序設(shè)計第5章 硬件調(diào)試與結(jié)果分析開機初始界面LED數(shù)碼管顯示時間0時0分,LED燈不亮表示未開鎖,圖5.1所示。 圖5.1輸入第一位密碼0,LED數(shù)碼管第一位顯示0其余三位顯示,LED燈不亮表示未開鎖,顯示如圖5.2 圖5.2密碼輸入錯誤,LED數(shù)碼管顯示表示待重新輸入密碼,LED燈不亮表示開鎖不成功,如圖5.3圖5.3 密碼輸入完成且正確,LED燈亮表

24、示開鎖成功,顯示如圖5.4圖5.4 一段時間內(nèi)無按鍵輸入返回時間顯示0時3分,如圖5.5 圖5.5密碼連續(xù)三次輸入錯誤LED數(shù)碼管顯示最后一次輸入值1,前面三位數(shù)碼管不顯示,如圖5.6 圖5.6第6章 小結(jié)通過老師的悉心指導(dǎo),團隊小組的團結(jié)協(xié)作,在為期兩周的課程設(shè)計里,我們應(yīng)該說還是比較順利的完成了這次智能密碼鎖的單片機課程設(shè)計的按用戶使用要求可設(shè)置、修改密碼、遙控或按鍵開鎖,錯誤報警、顯示等輔助功能等要求。通過這次設(shè)計,我懂得了學(xué)習的重要性,了解到理論知識與實踐相結(jié)合的重要意義,開闊了眼界,提高了單片機知識的理解和水平。學(xué)會了堅持、耐心和努力;發(fā)現(xiàn)、提出、分析、解決問題和實踐能力的提高都會受

25、益于我在以后的學(xué)習、工作和生活中。設(shè)計過程,首先要有一個清晰的思路和一個完整的的軟件流程圖;在設(shè)計程序時,不能妄想一次就將整個程序設(shè)計好,反復(fù)修改、不斷改進是程序設(shè)計的必經(jīng)之路。課程設(shè)計是培養(yǎng)學(xué)生綜合運用所學(xué)知識,發(fā)現(xiàn)、提出、分析和解決實際問題,鍛煉實踐能力的重要環(huán)節(jié),是對學(xué)生實際工作能力的具體訓(xùn)練和考察過程.通過這次課程設(shè)計使我懂得了理論與實際相結(jié)合是很重要的,只有理論知識是遠遠不夠的,只有把所學(xué)的理論知識與實踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會服務(wù),從而提高自己的實際動手能力和獨立思考的能力。通過這次課程設(shè)計我也發(fā)現(xiàn)了自身存在的不足之處,雖然感覺理論上已經(jīng)掌握,但在運用到實踐的過

26、程中仍有意想不到的困惑,以至于還有一些功能不能主動完成。對以前所學(xué)過的知識理解得不夠深刻,掌握得不夠牢固,對單片機匯編語言掌握得不好,但通過學(xué)習這一次實踐,增強了我們的動手能力,提高和鞏固了單片機方面的知識,特別是軟件方面。從中增強了我們的團隊合作精神,并讓我們認識到把理論應(yīng)用到實踐中去是多么重要。隨著科學(xué)技術(shù)發(fā)展的日新日異,單片機已經(jīng)成為當今計算機應(yīng)用中空前活躍的領(lǐng)域, 在生活中可以說得是無處不在。因此作為二十一世紀的大學(xué)來說掌握單片機的開發(fā)技術(shù)是非常重要的。 致 謝在這次課程設(shè)計順利完成的過程中,首先我要感謝王迎旭老師在課程設(shè)計上給予我的悉心指導(dǎo)、提供給我的支持和幫助,王老師多次幫助我分析

27、思路,開拓視角,這是我能順利完成這次課程設(shè)計的主要原因,其次我要感謝我的團隊在這兩周的相互幫助,相互學(xué)習,一起把設(shè)計順利的做好,在此期間,我不僅學(xué)到了許多新的知識,而且也開闊了視野,掌握了基本的研究方法,提高了自己的設(shè)計能力。同時也感謝學(xué)院為我提供良好的做課程設(shè)計的環(huán)境。最后再一次感謝所有在設(shè)計中曾經(jīng)幫助過我的良師益友和同學(xué)。參考文獻 1 王迎旭. 單片機原理與應(yīng)用 M. 北京: 機械工業(yè)出版社,2004.2 胡漢才,單片機原理及其接口技術(shù) M. 3版. 北京:高等教育出版社,2004. 3 陳海宴. 51單片機原理及應(yīng)用基于keil C與proteus M. 北京:北京航空航天大學(xué)出版社,2

28、010.4 鄧亞平. 微型計算機接口技術(shù) M. 北京:清華大學(xué)出版社, 2001 5 周航慈. 單片機應(yīng)用程序設(shè)計技術(shù) M. 北京: 北京航空航天大學(xué)出版社, 2002 6 謝宜仁. 單片機實用技術(shù)問答 M. 北京: 人民郵電出版社, 2002附 錄附錄A:系統(tǒng)硬件電路原理圖附錄B 程序清單 SCL EQU P3.4 SDA EQU P3.5MIAO1 EQU 68HMIAO2 EQU 67HFEN1 EQU 66H FEN2 EQU 65HSHI1 EQU 64HSHI2 EQU 63HMIAO EQU 60HFEN EQU 61HSHI EQU 62HORG 0000hLCALL read

29、 SJMP START1ORG 000BHAJMP TIMER0 ORG 0030hSTART1: MOV 7AH,#11 ;初始顯示 MOV 7BH,#11 MOV 7CH,#11 MOV 7DH,#11 MOV DPTR,#TAB ;將表頭放入DPTR MOV SP, #80HMOV 52H, #00H ; 定時中斷次數(shù)清零MOV MIAO,#0MOV FEN,#0MOV SHI,#0MOV TMOD, #01HMOV TH0 ,#3CHMOV TL0 ,#0B0H SETB TR0 SETB ET0SETB EAMAIN0: LCALL KS ;JNZ MAIN CALL shijian

30、MOV R1,#0EFH MOV R0,#63HCALL DISPLAY2 ;時間顯示SJMP MAIN0TIMER0: PUSH ACCINC 52H ;定時中斷次數(shù)加一MOV A ,52HCJNE A ,#20 ,backMOV 52H ,#0INC MIAOMOV A,MIAOCJNE A,#60,backMOV MIAO,#0INC FENMOV A ,FENCJNE A,#60 ,backMOV FEN ,#0 INC SHIMOV A , SHICJNE A,#24, backMOV SHI ,#0back: POP ACC MOV TH0,#3CH MOV TL0,#0B0H R

31、ETIshijian: MOV A ,MIAOMOV B,#10DIV ABMOV MIAO2 ,AMOV MIAO1 , BMOV A,FENMOV B, #10DIV ABMOV FEN2 , AMOV FEN1 , BMOV A,SHIMOV B ,#10DIV ABMOV SHI2,AMOV SHI1 ,BRETMAIN: LCALL KEY ;調(diào)用鍵盤掃描程序 MOV A,6AH CJNE A,#250, D2 AJMP MAIN0D2: LCALL DISPLAY ;數(shù)字鍵顯示 MOV A,R3 ;判斷按了幾次 CJNE A,#4,MAIN MOV 48H,#0 MOV A,50H

32、 CJNE A,#11,judge MOV A,51H CJNE A,#0,L10 LJMP judgejudge:MOV A,7AH CJNE A,70H,ERROR MOV A,7BH CJNE A,71H,ERROR MOV A,7CH CJNE A,72H,ERROR MOV A,7DH CJNE A,73H,ERRORL10: MOV A,50H;修改值放A CJNE A,#11,L4 INC 51H;修改新密碼次數(shù) AJMP L5L4: CLR P1.0 ;開鎖L5: MOV A,51H CJNE A,#3,L11 LCALL XGBIJIAOL11: LCALL DISP0 MO

33、V 49H,#00H MOV 48H,#0 LJMP MAINXGBIJIAO:MOV A,7AH ;修改密碼確認比較 CJNE A,74H,ERROR MOV A,7BH CJNE A,75H,ERROR MOV A,7CH CJNE A,76H,ERROR MOV A,7DH CJNE A,77H,ERROR MOV 51H,#00H MOV A,74H;修改成功保存密碼 MOV 70H,A MOV A,75H MOV 71H,A MOV A,76H MOV 72H,A MOV A,77H MOV 73H,A CLR P0.4 MOV 50H,#00H MOV 51H,#00H LCALL

34、 write RETERROR: LCALL DISP0 SETB P1.0 SETB P0.4 MOV 50H,#00H MOV 51H,#00H INC 49H ;每錯一次加一 MOV A,49H CJNE A,#3,LOOP0 ;錯三次報警 MOV 49H,#00HALARM: CLR P3.7 SJMP ALARMLOOP0:LJMP MAINKEY: LCALL KS ;調(diào)用檢測按鍵子程序 JNZ K1 ;有鍵按下繼續(xù) LCALL DISP LCALL DELAY2 INC 6AH MOV A,6AHCJNE A,#250,KEY RET K1: LCALL DELAY2 LCALL

35、 DELAY2 ;有鍵按下繼續(xù)延時去抖動 LCALL KS ;再一次調(diào)用檢測按鍵程序 JNZ K2 ;確認有按下進行下一步 AJMP KEY ;返回繼續(xù)檢測有無按鍵按下 K2: MOV R2,#0EFH ;將掃描值送入 R2暫存 MOV R4,#00H ;將第一列的列值00H送入R4暫存,R4用于存放列值。K3: MOV P2,R2 ;將R2的值送入P2口L6: JB P2.0,L1 ;P2.0等于1跳轉(zhuǎn)到L1 MOV A,#00H ;將第一行的行值00H送入ACC LJMP LK ;跳轉(zhuǎn)到鍵值處理程序L1: JB P2.1,L2 ;P2.1等于1跳轉(zhuǎn)到L2 MOV A,#04H ;將第二行的

36、行值送入ACC LJMP LK ;跳轉(zhuǎn)到鍵值理程序進行鍵值處理L2: JB P2.2,L3 ;P1.2等于1跳轉(zhuǎn)到L3 MOV A,#08H ;將第三行的行值送入ACC LJMP LK ;跳轉(zhuǎn)到鍵值處理程序L3: JB P2.3,NEXT ;P2.3等于1跳轉(zhuǎn)到NEXT處 MOV A,#0cH ;將第四行的行值送入ACCLK: ADD A,R4 ;行值與列值相加后的鍵值送入A PUSH ACC ;將A中的值送入堆棧暫存 MOV R2,A MOV 6AH,#00H INC 48H ;按鍵次數(shù)加一 CJNE A,#10,K5 MOV 48H,#00H LCALL K4 LJMP judgeK5:

37、JC K4 CJNE A,#11,L12 ;修改密碼功能鍵A MOV 50H,AL12: MOV 48H,#00H LCALL DISP0K4: LCALL DISP LCALL DISP ;調(diào)用延時去抖動程序 LCALL KS ;調(diào)用按鍵檢測程序 JNZ K4 ;按鍵沒有松開繼續(xù)返回檢測 POP ACC ;將堆棧的值送入ACC RET ;子程序返回NEXT: INC R4 ;將列值加一 MOV A,R2 ;將R2的值送入A JNB ACC.7,KEY ;掃描完成跳至KEY處進行下一回合的掃描 RL A ;掃描未完成將A中的值右移一位進行下一列的掃描 MOV R2,A ;將ACC的值送入R2暫

38、存 LJMP K3 ;跳轉(zhuǎn)到K3繼續(xù)KS: MOV P2,#0FH ;將P2口高四位置0低四位值1 MOV A,P2 ;讀P2口 XRL A,#0FH ;將A中的值與A中的值相異或 RET ;子程序返回;* ;讀24C02的數(shù)據(jù)的程序 read: ACALL START ;開始信號 MOV A,#0A0H ;發(fā)從機的地址 ACALL SEND ;發(fā)送控制字 ACALL ACKI;接收應(yīng)答 JC OUTEND ;不響應(yīng),轉(zhuǎn)結(jié)束 MOV A,#00H;設(shè)置要讀取從器件的片內(nèi)地址 ACALL SEND ACALL ACKI JC OUTEND ACALL START ;開始信號 ORL A,#0A1

39、H;設(shè)置控制字,準備接收 ACALL SEND ;發(fā)送控制字 ACALL ACKI JC OUTEND MOV R2,#4 ;準備接收數(shù)據(jù)的字節(jié)數(shù) MOV R1,#70H ;接收字節(jié)存放在主器件中的地址60H IN0: ACALL REV ;接收一個字節(jié) ACALL ACKO;主機向24C02發(fā)送應(yīng)答信號 MOV R1,A ;把接收到數(shù)據(jù)存放到存儲單元中 INC R1 DEC R2 CJNE R2,#1,IN0 ;判斷是否為最后一個接收字節(jié) ACALL REV ;接收最后一個字節(jié) ACALL ACKN; MOV R1,A ;把接收到數(shù)據(jù)存放到存儲單元中 OUTEND: ACALL STOP ;停止信號 ret ;* ;寫24C02的數(shù)據(jù)的程序 write: LCALL START ;開始信號 MOV A,#0A0H ;定控制字,準備發(fā)送 ACALL SEND ;發(fā)送控制字 ACALL ACKI ;接收應(yīng)答 JC WRITEEND ;從器件不響應(yīng),轉(zhuǎn)結(jié)束 MOV A,#00H ;設(shè)置從器件片內(nèi)地址 ACALL SEND ;發(fā)送片內(nèi)地址 ACALL ACKI JC WRITEEND MOV

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論