《微型計算機原理與接口技術》課程設計一種由微機實現(xiàn)的多功能密碼鎖設計11
《《微型計算機原理與接口技術》課程設計一種由微機實現(xiàn)的多功能密碼鎖設計11》由會員分享,可在線閱讀,更多相關《《微型計算機原理與接口技術》課程設計一種由微機實現(xiàn)的多功能密碼鎖設計11(17頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、 編號0814147 課 程 設 計 ( 2008級本科) 題 目:一種由微機實現(xiàn)的多功能密碼鎖設計 系(部)院: 物理與機電工程學院 專 業(yè): 電氣工程及其自動化 作者姓名: 指導教師: 職稱: 副教授 完成日期: 2011 年 6 月 28 日 二〇一一年六月 學生姓名 學號 專業(yè)方向 電力系統(tǒng) 班級 08級1班 題目名稱 一種由微機實現(xiàn)的多功能密碼鎖 一、設計內容及技術要求:
2、密碼鎖在輸入密碼正確的條件下輸出開鎖電平,控制電控鎖開啟,同時顯示00字樣。當輸入密碼錯誤時,發(fā)出錯誤警告聲音,同時顯示FF字樣。當六次誤碼輸入的條件 下,產生報警電平報警。采用90秒定時中斷,輸出控制信號,防止長時間無 效操作。 二、課程設計總結報告要求 1、選用8086和適當?shù)拇鎯ζ骷敖涌谛酒瓿上鄳墓δ堋? 2、用LED顯示器顯示電子鎖的當前狀態(tài)。 3、畫出詳細的硬件連接圖。 4、給出程序設計思路、畫出軟件流程圖。 5、給出所有程序清單并加上必要注釋。 6、完成設計說明書(包括封面、目錄、設計任務書、硬件設計思路、硬件原理圖、軟件設計思路、程序流程框圖、程序清單、所用器件
3、型號、總結體會、參考文獻等)。 三、設計進度 第一周: 星期一上午 討論設計題目 星期一下午 查資料 星期二至星期五 完成對硬件電路的基本設計 第二周: 星期一至星期二 完成軟件流程圖及軟件設計 星期三至星期四 軟硬件統(tǒng)調,寫說明書,畫圖 星期五 答辯 指導教師簽字: 河西學院本科生課程設計任務書 目錄 一、設計目標 ………………………………………………………… 1 二、設計要求 ………………………………………………………… 1 三、整體功能描述 …………………………………………………… 1 四、設
4、計思路 ………………………………………………………… 1 五、硬件設計功能模塊 ……………………………………………… 2 1.鍵盤…………………………………………………………… 2 2.中斷控制……………………………………………………… 2 3.計時…………………………………………………………… 2 4.按鍵響應……………………………………………………… 2 5.報警…………………………………………………………… 3 6.儲存器及片選………………………………………………… 3 7.整機電路…………………………
5、…………………………… 5 五、程序流程圖……………………………………………………… 6 六、程序清單………………………………………………………… 6 七、設計總結………………………………………………………… 14 一、 設計目標 1.密碼鎖在輸入密碼正確的條件下輸出開鎖電平,控制電控鎖開啟,同時顯示00字樣。 2.當輸入密碼錯誤時,發(fā)出錯誤警告聲音,同時顯示FF字樣。 3.當六次誤碼輸入的條件下,產生報警電平報警。 4.還可以實現(xiàn)對密碼的修改,修改成功后,蜂鳴器發(fā)出確認音。 二、 設計要求 1、選用8086和適當?shù)拇鎯ζ骷敖涌?/p>
6、芯片完成相應的功能。 2、用LED顯示器顯示電子鎖的當前狀態(tài)。 3、畫出詳細的硬件連接圖。 4、給出程序設計思路、畫出軟件流程圖。 5、給出所有程序清單并加上必要注釋。 6、完成設計說明書(包括封面、目錄、設計任務書、硬件設計思路、硬件原理圖、軟件設計思路、程序流程框圖、程序清單、所用器件型號、總結體會、參考文獻等)。 三、 整體功能描述 本設計為多功能密碼鎖,使用存儲器保存密碼防止斷電后密碼丟失。工作時按下按鍵蜂鳴器會發(fā)出聲音提示按鍵有效并在數(shù)碼管有“- -”閃爍字樣,若相隔1分鐘無按鍵按下,則清零。在輸入密碼正確的條件下輸出開鎖電平,控制電控鎖開啟,同時顯示00字樣。開鎖后可
7、按下“復位/修改密碼鍵”實現(xiàn)修改密碼功能的轉入,之后先輸入密碼再輸入同樣的密碼確認才可成功修改,修改成功后蜂鳴器會發(fā)出三聲,數(shù)碼管“00”閃爍三次提示修改密碼成功。當輸入密碼錯誤時,發(fā)出錯誤警告聲音,同時顯示FF字樣,當輸入密碼錯誤次數(shù)累積夠6次后,蜂鳴器會產生90秒的報警聲響進行報警。 四、設計思路 在本次設計中,因為密碼鎖的基本功能使可以判斷密碼是否正確,以及完成對密碼的修改,所以需要用到輸入設備以及CPU的接口電路以及相關存儲設備;因為有報警提示功能,所以要用到相關的輸出設備以及接口電路。 首先,因為要完成邏輯運算功能,所以必須要有CPU,CPU就選用我們最常用也最熟悉的8086
8、,分別用一個A28F512作為外部存儲設備,因為ROM只讀不可斷電信息不丟失,用來存儲相關程序,而ram可讀可寫,但斷電信息會丟失,故用來存儲運行期間產生的相關數(shù)據(jù)??紤]到8255的端口兼具輸入輸出功能,靈活方便,所以選用一片8255作為輸入輸出設備與8086間的借口;采用0到9數(shù)字按鍵以及相關功能選擇的輸入;輸出設備方面,采用兩位數(shù)碼管實現(xiàn)題目的狀態(tài)提示要求,用一個蜂鳴器作為相關的警報,提示的聲音輸出。另外,為簡化編程,采用8259中斷控制器來觸發(fā)中斷實現(xiàn)密碼鎖工作模式的轉換,其中的密碼輸入及判斷功能與密碼修改功能分別用兩個外部中斷來觸發(fā)中斷服務程序來實現(xiàn)。本設計的密碼位數(shù)為6位。 五、硬
9、件設計功能模塊 本設計使用了8086、8259A、8255、8253、A28F512、74LS138、74LS148、地址鎖存器、數(shù)碼管以及74系列邏輯門、蜂鳴器、開關等芯片與元器件,實現(xiàn)了鍵盤輸入、中斷控制、計時、按鍵響應、開鎖及報警等功能模塊。以下一一詳述。 1.鍵盤 本設計8255A的A口與兩片級聯(lián)的74LS148組合接用于輸入鍵盤,實現(xiàn)對輸入鍵號的讀入。工作時,8086通過程序掃描鍵盤,當無鍵盤按下時,74LS148工作于無輸入狀態(tài),GS口輸出高電平,接到PA4作為識別有無按鍵按下信號,PA口輸入為10H;當有按鍵輸入時,74LS148輸入口接到低電平,輸入有效,經(jīng)編碼后鍵號轉換
10、為相應二進制編碼送到PA口,成為能為CPU識別的代表鍵值的有效信號。讀入的按鍵信號經(jīng)8086判斷后,根據(jù)不同的功能,輸出不同的按鍵響應,并轉移到相對應的功能服務程序。 本設計總共用到11位按鍵,包括10位數(shù)碼輸入按鍵及一位“復位/修改密碼”按鍵,電路設計總共可用按鍵有16位,供升級功能使用。鍵盤電路如下圖1所示: 2.中斷控制 用一片8259A芯片作為中斷控制接口電路。其中IR0與IR1中斷開放,單片工作于非緩沖方式,電平觸發(fā),優(yōu)先級是普通全嵌套方式??赏ㄟ^編程開中斷,通過編程或者8253計時器關中斷。電路連接如圖2所示: 3.計時 采用8253計時器控制中斷的關斷,實現(xiàn)單次輸入密碼
11、超時則退出輸入密碼中斷子程序、報警器響鈴時間控制等功能。電路如圖2所示。 4.按鍵響應 8255PC0、PC1接到數(shù)碼管片選、PC2接到蜂鳴器、PC3接到電子鎖。電路連接如圖3所示: 5.報警功能 同時用8255A的B口控制數(shù)碼管的顯示,C口片PC0、PC1選數(shù)碼管,PC2用來驅動SPEAK發(fā)出報警。電路如圖3所示。 6.儲存器及片選電路: 存儲器及片選電路采用一片A28F512和一片74LS138,連接電路如圖4所示: 圖1 鍵盤連接圖 圖2 中斷控制器連接圖
12、 圖3 按鍵響應、報警、開鎖功能電路 圖4 片選及存儲器電路 7.整機電路圖: 五、軟件流程圖: 六、程序清單: 各芯片地址:8259 30H 8255 60H 8253 20H 存儲器 2
13、000H DATAS SEGMENT ;程序初始化 AGAIN DB 0,0,0,0,0,0 DATA2 DB 6 DUP (?) DATA3 DB 6 DUP (?) DATAS ENDS STACKS SEGMENT STA DB 100 DUP(?) STACKS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKS,ES:DATAS START: MOV AX,DATAS MOV DS,AX MOV AX,ST
14、ACKS MOV SS,AX MOV AX,0 ;初始化中斷向量表 MOV ES,AX MOV BX,84H ;IR1中斷類型碼21h*4=84h MOV AX,OFFSET INPUT MOV ES:[BX],AX MOV AX,SEG INPUT ;段地址 MOV ES:[BX+2],AX MOV AL,90H ;8255初始化,A口方式0,輸入;B、c口方式0,輸出 OUT 63H,AL MOV AL,36
15、H ;8253初始化,方式0 OUT 23H,AL MOV AL,13H ;8259A初始化,ICW1 OUT 30H,AL MOV AL,20H ;ICW2 OUT 31H,AL MOV AL,01 ;ICW4 OUT 31H,AL MOV AL,00 ;OCW1 OUT 31H MOV CX,06H ;從RAM里讀出密碼到DATA2,密碼
16、為6位 MOV SI,2000H MOV DI,OFFSET DATA2 LP1:MOV AL,[SI] MOV [DI],AL INC SI INC DI LOOP LP1 ;讀入密碼結束 MOV BX,00H ;輸入密碼次數(shù)計數(shù)器初始值 RE: MOV AL,03H OUT 62H,AL MOV AL,71H ;未開鎖,B口輸出顯示FF OUT 61H,AL MOV CX
17、,06H MOV SI,OFFSET DATA2 ;定義SI、DI MOV DI,OFFSET DATA3 HLT STI ;停機,開中斷,等待密碼輸入 CLD INC BX ;輸入密碼次數(shù)加1 REPE CMPSB ;將輸入六位數(shù)碼與密碼比較 CMP CX,00 JE OPEN ;相等則轉到開鎖 CMP
18、 BX,06H ;輸入錯誤且累積未夠6次,重新輸入 JNE RE MOV AL,07H ;若錯誤次數(shù)累積夠6次,觸發(fā)蜂鳴器報警 OUT 62H,AL MOV AL,71H ;B口輸出FF OUT 61H,AL MOV AL,2048H ;報警鈴響計時,90秒后關斷蜂鳴器,保持顯示FF OUT 20H,AL MOV AL,03H OUT 62H,AL JMP DOON ;跳到結束 OPEN:MOV AL,0BH
19、 ;開鎖,并顯示00 OUT 62,AL MOV AL,3FH OUT 61H C1: IN AL,60H CALL D20MS ;去抖動 CMP AL,00H JE C1 CMP AL,0AH ;掃描鍵盤,是否有修改密碼建(10)輸入 JNE DOON ;沒有則結束 C0: MOV SI,OFFSET DATA2 ;重新定義SI、DI MOV DI,OFFSET DATA3 MOV CX,06H
20、 HLT STI ;開中斷,輸入修改程序 C2: MOV AL,[DI] MOV [SI],AL INC SI INC DI LOOP C2 ;輸入密碼轉移到data2 IN AL,60H ;掃描鍵盤,若有修改密碼鍵輸入則重新修改 CALL D20MS CMP AL,0AH JE C0 C3: MOV SI,OFFSET DATA2 ;再次輸入密碼確認 MOV DI,OFFSE
21、T DATA3 MOV CX,06H HLT STI REPE CMPSB CMP CX,00 ;若data2與data3不相等則從新輸入 JNE C3 MOV CX,06H ;若相等,則從DATA2寫密碼到RAM MOV SI,2000H MOV DI,OFFSET DATA2 C4: MOV AL,[DI] MOV [SI],AL INC SI INC DI LOOP C4
22、 ;轉存密碼結束 CALL RING2 ;蜂鳴三次,表示修改好了 IN AL,60H ;掃描鍵盤,若有修改密碼鍵輸入則重新修改 CALL D20MS CMP AL,0AH JE C0 JMP DOON ;修改完畢,轉到結束 中斷子程序 INPUT: PUSH AX ;保護現(xiàn)場 PUSH DS PUSH BX PUSH C
23、X PUSH DI PUSH SI MOV AL,1020H ;8253開始一分鐘輸入限制計時 OUT 20H,AL IN1: IN AL,60H ;讀A口 CALL D20MS ;去抖動 CMP AL,10H JE IN1 ;若無按鍵按下,則重新掃描 CMP AL,0AH ;若有按鍵按下,比較是否為復位鍵
24、 JNE IN3 CALL RING1 ;為復位鍵則輸出按鍵有效提示音并重新輸入 MOV CX,06H MOV DI,OFFSET DATA3 JMP IN1 IN3: CALL RING1 ;若不是復位鍵,則把鍵值送到data3 MOV [DI],AL INC DI LOOP IN1 ;循環(huán),掃描下一次按鍵,直到輸入夠6位密碼 MOV AL
25、,01 OUT 30,AL POP SI ;中斷結束恢復現(xiàn)場 POP DI POP CX POP BX POP DS POP AX CLI ;關中斷 IRET ;中斷返回 DOON: MOV AH,4CH INT 21H 20ms延時子程序 D20MS PROC NEAR PUSH CX
26、 MOV CX,0080H D1: DEC CX LOOP D1 ;循環(huán) POP CX RET ;返回 D20MS ENDP 輸入按鍵響應子程序 RING1 PROC NEAR PUSH AX ;保護AX\CX PUSH CX MOV CX,05H ;設置提示音為0.1秒 MOV AL,07H ;輸出顯示“- -”字樣 OUT 62H,AL
27、 MOV AL,40H OUT 61H,AL R1: CALL D20MS LOOP R1 MOV AL,00H ;數(shù)碼管滅 OUT 62H,AL POP CX POP AX RET ;返回 RING1 ENDP 修改確認鈴聲子程序 RING2 PROC NEAR PUSH AX PUSH CX MOV CX,03H ;三次0.1秒的提示聲 R2: MOV AL,0FH
28、 ;開鈴聲 OUT 62H,AL MOV AL,40H OUT 61H,AL CALL D20MS ;延時0.1秒 CALL D20MS CALL D20MS CALL D20MS CALL D20MS MOV AL,00H OUT 62H,AL ;關鈴聲 CALL D20MS ;延時0.1秒 CALL D20MS CALL D20MS CALL D20MS
29、CALL D20MS LOOP R2 ;循環(huán) MOV AL,0BH ;恢復開鎖狀態(tài) OUT 62H,AL MOV AL,3FH OUT 61H,AL POP CX POP AX RET RING1 ENDP ;返回 CODES ENDS END START ;結束 七、設計總結 1、遇到的問題及解決方法 2、課程設計總結 通過本次課程設計,我進一步了解 8255,8253,8259等芯片的內部結構,熟悉各種基本工作模式和編程方法; 加深了對 8086中斷系統(tǒng)工作過程的了解; 學會綜合應用多種微機接口與單元電路,構成滿足要求的小型微機應用系統(tǒng); 學會了CPU與存儲器的連接方法,擴展存儲空間的方法。 3、參考資料 [1] 馮博琴,吳寧. 微型計算機原理與接口技術. 北京 清華大學出版社(第二版),2007. [2] 趙國相等. 微型計算機原理與匯編語言程序設計. 北京 科學出版社,2004. [3] 張睿,趙艷華,劉志剛. 精通Protel DXP 2004電路設計. 北京 電子工業(yè)出版社2005. 第 14 頁
- 溫馨提示:
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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。