《微型計算機原理與接口技術》課程設計一種由微機實現(xiàn)的多功能密碼鎖設計
編號:0 8 1 4 1 1 4課程設計微型計算機原理與接口技術( 2008級本科)題 目:一種由微機實現(xiàn)的多功能密碼鎖設計 系(部)院: 物理與機電工程學院 專 業(yè): 電氣工程及其自動化 作者姓名: 指導教師: 職稱: 副 教 授 完成日期: 2011 年 6 月 30 日河西學院本科生畢業(yè)論文(設計)任務書論 文 題 目一種由微機實現(xiàn)的多功能密碼鎖作 者 姓 名所屬院、專業(yè)、年級物理與機電工程學院電氣工程及其自動化專業(yè)08年級指導教師姓名、職稱張靜 副教授任務下達日期2011年6月20日一、設計內容及技術要求:密碼鎖在輸入密碼正確的條件下輸出開鎖電平,控制電控鎖開啟,同時顯示00字樣。當輸入密碼錯誤時,發(fā)出錯誤警告聲音,同時顯示FF字樣。當六次誤碼輸入的條件下,產生報警電平報警。采用90秒定時中斷,輸出控制信號,防止長時間無效操作。二、課程設計總結報告要求1、選用8086和適當?shù)拇鎯ζ骷敖涌谛酒瓿上鄳墓δ堋?、用LED顯示器顯示電子鎖的當前狀態(tài)。3、畫出詳細的硬件連接圖。4、給出程序設計思路、畫出軟件流程圖。5、給出所有程序清單并加上必要注釋。6、完成設計說明書(包括封面、目錄、設計任務書、硬件設計思路、硬件原理圖、軟件設計思路、程序流程框圖、程序清單、所用器件型號、總結體會、參考文獻等)。三、設計進度第一周:星期一上午 討論設計題目星期一下午 查資料星期二至星期五 完成對硬件電路的基本設計第二周:星期一至星期二 完成軟件流程圖及軟件設計星期三至星期四 軟硬件統(tǒng)調,寫說明書,畫圖星期五 答辯指導教師簽字:目錄一、設計任務 1二、設計要求 1三、整體功能描述 1四、設計思路 1五、硬件設計 2 1.鍵盤 2 2.中斷控制 2 3.計時 2 4.按鍵響應 2 5.報警 3 6.儲存器及片選 3 7.硬件部分電路圖 4六、軟件設計 6七、程序清單 7八、設計總結與體會8九、參考資料8十、附錄8一種由微機實現(xiàn)的多功能密碼鎖設計說明書一、 設計目標1密碼鎖在輸入密碼正確的條件下輸出開鎖電平,控制電控鎖開啟,同時顯示00字樣。2當輸入密碼錯誤時,發(fā)出錯誤警告聲音,同時顯示FF字樣。3當六次誤碼輸入的條件下,產生報警電平報警。4還可以實現(xiàn)對密碼的修改,修改成功后,蜂鳴器發(fā)出確認音。二、 設計要求1選用8086和適當?shù)拇鎯ζ骷敖涌谛酒瓿上鄳墓δ堋?用LED顯示器顯示電子鎖的當前狀態(tài)。3畫出詳細的硬件連接圖。4給出程序設計思路、畫出軟件流程圖。5給出所有程序清單并加上必要注釋。6完成設計說明書(包括封面、目錄、設計任務書、硬件設計思路、硬件原理圖、軟件設計思路、程序流程框圖、程序清單、所用器件型號、總結體會、參考文獻等)。三、 整體功能描述本設計為多功能密碼鎖,使用存儲器保存密碼防止斷電后密碼丟失。工作時按下按鍵蜂鳴器會發(fā)出聲音提示按鍵有效并在數(shù)碼管有“- -”閃爍字樣,若相隔1分鐘無按鍵按下,則清零。在輸入密碼正確的條件下輸出開鎖電平,控制電控鎖開啟,同時顯示00字樣。開鎖后可按下“復位/修改密碼鍵”實現(xiàn)修改密碼功能的轉入,之后先輸入密碼再輸入同樣的密碼確認才可成功修改,修改成功后蜂鳴器會發(fā)出三聲,數(shù)碼管“00”閃爍三次提示修改密碼成功。當輸入密碼錯誤時,發(fā)出錯誤警告聲音,同時顯示FF字樣,當輸入密碼錯誤次數(shù)累積夠6次后,蜂鳴器會產生90秒的報警聲響進行報警。 四、設計思路在本次設計中,因為密碼鎖的基本功能使可以判斷密碼是否正確,以及完成對密碼的修改,所以需要用到輸入設備以及CPU的接口電路以及相關存儲設備;因為有報警提示功能,所以要用到相關的輸出設備以及接口電路。首先,因為要完成邏輯運算功能,所以必須要有CPU,CPU就選用我們最常用也最熟悉的8086,分別用一個2764作為外部存儲設備,因為ROM只讀不可斷電信息不丟失,用來存儲相關程序,而ram可讀可寫,但斷電信息會丟失,故用來存儲運行期間產生的相關數(shù)據(jù)??紤]到8255的端口兼具輸入輸出功能,靈活方便,所以選用一片8255作為輸入輸出設備與8086間的接口;采用0到9數(shù)字按鍵以及相關功能選擇的輸入;輸出設備方面,采用兩位數(shù)碼管實現(xiàn)題目的狀態(tài)提示要求,用一個蜂鳴器作為相關的警報,提示的聲音輸出。另外,為簡化編程,采用8259中斷控制器來觸發(fā)中斷實現(xiàn)密碼鎖工作模式的轉換,其中的密碼輸入及判斷功能與密碼修改功能分別用兩個外部中斷來觸發(fā)中斷服務程序來實現(xiàn)。本設計的密碼位數(shù)為6位。五、硬件設計本設計使用了8086、8259A、8255、8253、2764、74LS138、74LS148、地址鎖存器、數(shù)碼管以及74系列邏輯門、蜂鳴器、開關等芯片與元器件,實現(xiàn)了鍵盤輸入、中斷控制、計時、按鍵響應、開鎖及報警等功能模塊。以下一一詳述。1.鍵盤本設計8255A的A口與兩片級聯(lián)的74LS148組合接用于輸入鍵盤,實現(xiàn)對輸入鍵號的讀入。工作時,8086通過程序掃描鍵盤,當無鍵盤按下時,74LS148工作于無輸入狀態(tài),GS口輸出高電平,接到PA4作為識別有無按鍵按下信號,PA口輸入為10H;當有按鍵輸入時,74LS148輸入口接到低電平,輸入有效,經編碼后鍵號轉換為相應二進制編碼送到PA口,成為能為CPU識別的代表鍵值的有效信號。讀入的按鍵信號經8086判斷后,根據(jù)不同的功能,輸出不同的按鍵響應,并轉移到相對應的功能服務程序。本設計總共用到11位按鍵,包括10位數(shù)碼輸入按鍵及一位“復位/修改密碼”按鍵,電路設計總共可用按鍵有16位,供升級功能使用。鍵盤電路如下圖1所示:2.中斷控制用一片8259A芯片作為中斷控制接口電路。其中IR0與IR1中斷開放,單片工作于非緩沖方式,電平觸發(fā),優(yōu)先級是普通全嵌套方式??赏ㄟ^編程開中斷,通過編程或者8253計時器關中斷。電路連接如圖2所示:3.計時采用8253計時器控制中斷的關斷,實現(xiàn)單次輸入密碼超時則退出輸入密碼中斷子程序、報警器響鈴時間控制等功能。電路如圖2所示。4.按鍵響應8255PC0、PC1接到數(shù)碼管片選、PC2接到蜂鳴器、PC3接到電子鎖。電路連接如圖3所示:5.報警功能同時用8255A的B口控制數(shù)碼管的顯示,C口片PC0、PC1選數(shù)碼管,PC2用來驅動SPEAK發(fā)出報警。電路如圖3所示。6.儲存器及片選電路:存儲器及片選電路采用一片2764存儲器和一片74LS138,連接電路如圖4所示:7.硬件部分電路圖8.整機電路圖:見附錄一圖1 鍵盤連接圖圖2 中斷控制器連接圖 圖3 按鍵響應、報警、開鎖功能電路圖4 片選及存儲器電路六、 軟件設計1.程序流程圖七、程序清單:見附錄二八、設計總結與體會通過本次課程設計,我對所學知識有了一個完整的應用,對課程所學知識的體現(xiàn),尤其是對8255,8259,8253等芯片的內部結構,熟悉各種基本工作模式和編程方法;加深了對8086中斷系統(tǒng)工作過程的了解;學會綜合應用多種微機接口與單元電路,構成滿足要求的小型微機應用系統(tǒng);學會了CPU與存儲器的連接方法,擴展存儲空間的方法。通過這次的微機課程設計,對所學知識有了個補充和完善,對那些模糊不懂的地方,進行了徹底完全的學習。在設計過程中,我發(fā)現(xiàn)我對上課中講述的知識還有很大的欠缺,對很多芯片了解的不夠透徹,這也造成了我在連接硬件圖時遇到了很多困難,不得不請教組長和學習好的同學,徹底的搞懂問題。這說明我們光掌握課本上的知識是遠遠不夠的,必須要通過實踐才能加深對知識的理解。九、參考資料1 馮博琴,吳寧. 微型計算機原理與接口技術. 北京 清華大學出版社(第二版),2007。.2 趙國相等. 微型計算機原理與匯編語言程序設計. 北京 科學出版社,2004。.3 張睿,趙艷華,劉志剛. 精通Protel DXP 2004電路設計. 北京 電子工業(yè)出版社,2005.。4艾德才,微型計算機原理與與接口技術,北京:高等教育出版社,2004。5周明德,微型計算機系統(tǒng)原理及應用。北京:清華大學出版社,2002。6 鄭學堅,周斌。微型計算機原理及應用。北京:清華大學出版社,2001.十、附錄附錄一:電路基本連接圖附錄二:程序清單DATA SEGMENT ;以下代碼寫入RAMDATA1 DB 6 DUP(?) ;輸入的密碼保存的地址DATA2 DB 6 DUP(?) ;修改后的密碼的保存地址DATA3 DB 3,6,3,7,3,8 ;初始密碼ORG 01000H ;下面的代碼寫入ROMDTABLE DB 80H,02H,10H,3FH,79H,71H,60H,5BHDATA ENDSSTACKS SEGMENTSTA DB 20 DUP(?)STACKS ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKSSTART: ;主程序MOV AX,DATAMOV DS,AX ;初始化數(shù)據(jù)段MOV AX,STACKSMOV SS,AX ;初始化堆棧段 MOV SI,OFFSET DATA1MOV DI,OFFSET DATA2MOV BP,OFFSET DATA3MOV AL,09H ;(鍵盤輸入中斷)設定密碼輸入的中斷向量(即IR0的中斷向量)MOV AH,25HINT 21HPUSH BXPUSH DSMOV DX,SEG SMMMOV DS,DXMOV DX,OFFSET SMMINT 21HMOV AL,09H ;(鍵盤輸入中斷)設定密碼修改的中斷向量(即IR1的中斷向量)MOV AH,25HINT 21HPUSH BXPUSH DSMOV DX,SEG GMMMOV DS,DXMOV DX,OFFSET GMMINT 21HMOV AL,1BH ;初始化8259OUT 10H,AL ;單片工作,高電平有效MOV AL,08HOUT 11H,ALMOV AL,03HOUT 11H,ALMOV AL,0FCHOUT 11H,AL ;開放IR0,IR1MOV AL,20HOUT 10H,ALMOV AL,68HOUT 10H,ALMOV AL,82H ;初始化8255 A口方式0輸出,B口方式0輸入,C口輸出OUT 06H,ALA1:STIMOV AL,00HOUT 04H,AL ;輸出低電平使數(shù)碼管熄滅SMM: ;密碼輸入程序CLIMOV DL,00HIN1:CMP DL,06H ;判斷是否連續(xù)6次輸入錯誤密碼JNZ IN2 ;若不是這繼續(xù)輸入MOV CX,03FFH ;使蜂鳴器長鳴報警(通過延時實現(xiàn))R1:MOV DH,3FHMOV AL,02HOUT 00H,AL ;輸出高電平使蜂鳴器發(fā)聲R2:DEC DHCMP DH,00HJNZ R2LOOP R1JMP IN4 ;報警完畢,跳至中斷返回IN2: ;輸入密碼MOV AL,BP+4OUT 04H,AL ;數(shù)碼管顯示EE提示輸入密碼MOV BX,0HMOV CX,03H ;設置循環(huán)次數(shù)IN3:MOV BP,OFFSET DTABLEMOV AL,BPOUT 04H,AL ;數(shù)碼管提示輸入位數(shù)CALL CCSCAN ;調用鍵盤掃描程序CMP AL,0BH ;判斷是否按下返回鍵JZ IN4MOV BX+SI,AL ;保存輸入密碼INC BXINC BPLOOP IN3MOV BP,OFFSET DTABLE ;判斷密碼是否正確CLDMOV CX,03MOV SI,OFFSET CODEINMOV DI,OFFSET CODEORREPZ CMPSB ;判斷密碼是否正確JNZ WRO ;若錯誤就報警MOV AL,BP+3OUT 04H,AL ;若正確數(shù)碼管就顯示00MOV AL,04HOUT 00H,AL ;且給LED高電平使其點亮XOR DL,ALJMP IN4WRO: ;出錯報警部分INC DLMOV AL,BP+5 ;數(shù)碼管顯示FF提示錯誤OUT 04H,ALMOV CX,03H ;設定蜂鳴器響的次數(shù)W1:MOV AL,02H ;使蜂鳴器發(fā)聲OUT 00H,ALW2: ;延時MOV BL,3FHDEC BLCMP BL,00HJNZ W2XOR AL,AL ;輸出低電平關蜂鳴器OUT 00H,ALW3: ;延時MOV BL,3FHDEC BLCMP BL,00HJNZ W3LOOP W1JMP IN1 ;中斷返回IN4:STIIRETGMM: ;密碼修改程序CLIMOV DL,00HINP1:CMP DL,06HJNZ INP2MOV CX,03FFHRR1:MOV DH,3FHMOV AL,02HOUT 00H,ALRR2:DEC DHCMP DH,00HJNZ RR2LOOP RR1JMP C4INP2:MOV AL,BP+4OUT 04H,ALMOV BX,0000HMOV CX,03HINP3:MOV BP,OFFSET DTABLEMOV AL,BPOUT 04H,ALCALL CCSCANCMP AL,0BHJZ IN4MOV BX+SI,ALINC BXINC BPLOOP INP3MOV BP,OFFSET DTABLECLDMOV CX,03HMOV SI,OFFSET DATA1MOV DI,OFFSET DATA3REPZ CMPSBJNZ WRROMOV AL,BP+3OUT 04H,ALXOR DL,DLJMP GMMWRRO:INC DLMOV AL,BP+5OUT 04H,ALMOV CX,03HWW1:MOV AL,02HOUT 00H,ALWW2:MOV BL,3FHDEC BLCMP BL,00HJNZ WW2XOR AL,ALOUT 00H,ALWW3:MOV BL,3FHDEC BLCMP BL,00HJNZ WW3LOOP WW1JMP INP1 ;當密碼輸入正確時,轉入密碼修改部分CHAN: ;修改密碼部分MOV SI,OFFSET DATA1MOV DI,OFFSET DATA2MOV AL,BP+6 ;數(shù)碼管提示第一次輸入OUT 04H,ALMOV CX,03FFHY1:LOOP Y1MOV BP,OFFSET DTABLEMOV BX,0HMOV CX,03HC1:MOV AL,BPOUT 04H,ALCALL CCSCANCMP AL,0BHJZ C4MOV BX+SI,AL ;存放在輸入密碼緩沖區(qū)INC BXINC BPLOOP C1MOV BP,OFFSET DTABLEMOV AL,BP+7OUT 04H,AL ;數(shù)碼管提示第二次輸入MOV CX,03FFHY2:LOOP Y2MOV BP,OFFSET DTABLEMOV BX,0HMOV CX,03HC2:MOV AL,BPOUT 04H,ALCALL CCSCANCMP AL,0BHJZ C4MOV BX+DI,AL ;存放在修改密碼緩沖區(qū)INC BXINC BPLOOP C2MOV BP,OFFSET DTABLEREPZ CMPSBJNZ CHAN ;判斷兩次輸入的密碼是否一致MOV DI,OFFSET CODEORMOV CX,03HCLDREP MOVSB ; 若是相等那就保存密碼MOV AL,02H ;且蜂鳴器響一下提示修改成功OUT 00H,ALMOV CX,03FFHC3: LOOP C3XOR AL,ALOUT 00H,AL ;中斷返回C4:STIIRETCCSCAN PROC NEAR ;鍵盤掃描子程序MOV AL,00HOUT 00H,ALIN AL,02HNOT ALAND AL,0FHCMP AL,00H ;判斷是否有鍵按下JNZ K1JMP CCSCANK1:MOV CX,0EFFH ;延時LOOP K1IN AL,02HCMP AL,00HJZ CCSCANMOV AH,60H ;掃描第一列K2:MOV AL,AHOUT 00H,ALIN AL,02HNOT ALAND AL,0FHCMP AL,00H ;判斷是否有鍵按下JNZ K3OR AH,01HROR AH,1 ;掃描下一列AND AH,0FHJMP K2K3:ADD AL,AHRETCCSCAN ENDPCODE ENDSEND START 微機原理與接口技術課程設計成績評定表姓 名 劉 世 兵學 號0814114專業(yè)班級電氣工程及其自動化 08級1 班課程設計題: 一種由微機實現(xiàn)的多功能密碼鎖課程設計答辯或質疑記錄:成績評定依據(jù):評 定 項 目評 分 成 績1.選題合理、目的明確(10分)2.設計方案可行性、創(chuàng)新性(20分)3.設計結果(系統(tǒng)原理圖、源程序、調試運行結果)(30分)4.平時成績(態(tài)度認真、遵守紀律)(10分)5.設計報告的規(guī)范性、參考文獻充分(不少于5篇)(10分)6.答辯(20分)總 分最終評定成績(以優(yōu)、良、中、及格、不及格評定) 指導教師簽字: 年 月 日 第18頁