版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p> 本科課程設計(論文)</p><p><b> 題目:多功能密碼鎖</b></p><p> 課程名稱 微機原理課程設計 </p><p> 學 院 自動化科學與工程學院 </p><p> 班 級
2、 </p><p> 學生姓名 </p><p> 學生學號 </p><p> 提交日期 2015 年 1 月 3 日</p><p
3、><b> 目錄</b></p><p> 一、目的···························
4、3;················3</p><p> 二、內容···············
5、3;····························3</p><p> 三、設計任務···
6、183;····································
7、3</p><p> 四、方案選擇及原理·······························&
8、#183;··3</p><p> 五、所用器件·····························
9、;···········3</p><p> 主要器件簡介····················
10、83;················4</p><p> 六、原理圖···············
11、183;··························6</p><p> 1、8086和存儲器連接····
12、··························6</p><p> 2、CPU與8255A連接····
13、83;··························6</p><p> 8255A的A口與鍵盤連接····
14、·····················7</p><p> 8255A的B、C口··········
15、····················7</p><p> 5、完整電路圖···········
16、83;·························8</p><p> 七、軟件設計思路······
17、;·································8</p><p>
18、; 八、流程圖···································
19、183;······9</p><p> 1、主程序·························&
20、#183;···············10</p><p> 2、子程序················
21、;························11</p><p> 九、程序代碼·······
22、183;·································11</p><
23、p> 十、設計中的難點··································&
24、#183;·13</p><p> 十一、收獲及體會·····························
25、183;········14</p><p><b> 多功能密碼鎖</b></p><p><b> 一、目的</b></p><p> 了解和掌握8086,8255,等接口芯片以及LED顯示器的原理和功能;</p>&l
26、t;p> 能用這些接口芯片構建一個簡單的系統(tǒng)控制對象,</p><p> 掌握接口電路的綜合設計與使用;</p><p> 通過自己動手,進一步了解計算機得工作原理,接口技術,提高計算機硬件,軟件綜合應用能力,即對微機原理,接口技術,匯編語言程序設計進行綜合訓練。</p><p><b> 二、內容</b></p>
27、<p> 密碼鎖在輸入密碼正確的條件下輸出開鎖電平,控制電控鎖開啟,同</p><p> 顯示00字樣。當輸入密碼錯誤時,發(fā)出錯誤警告聲音,同時顯示FF字樣。當六次誤碼輸入的條件下,產(chǎn)生報警電平報警。還可以實現(xiàn)對密碼的修改,修改成功后,蜂鳴器發(fā)出確認音。</p><p><b> 三、設計任務</b></p><p> 1、選
28、用8086和適當?shù)拇鎯ζ骷敖涌谛酒瓿上鄳墓δ堋?lt;/p><p> 2、用LED顯示器顯示電子鎖的當前狀態(tài)。</p><p> 3、畫出詳細的硬件連接圖。</p><p> 4、給出程序設計思路、畫出軟件流程圖。</p><p> 5、給出地址分配表。</p><p> 6、給出所有程序清單并加上必要注釋。
29、</p><p> 7、完成設計說明書(列出參考文獻,所用器件型號)。</p><p><b> 四、方案選擇及原理</b></p><p> 這次的設計要求是在密碼輸入正確時輸出開鎖電平和顯示“00”,密碼錯誤時顯示“FF”和蜂鳴器發(fā)出報警聲音等,我們采用8255A的B口作為顯示器的輸出,c口為選管和接蜂鳴器,開鎖及報警電平。對于6次密
30、碼錯誤輸入,剛開始用8253計數(shù)器,后來發(fā)覺可以直接用軟件控制,線路簡單,程序也很易實現(xiàn)。</p><p> 用蜂鳴器發(fā)聲次數(shù)來區(qū)分確認和警告聲音,一聲表示確認,三聲表示警告。鍵盤上的按鍵用SW-PB共12個,0-9為數(shù)字鍵,連接到8255A的A口對應二進制數(shù),還有確認鍵和密碼修改鍵,按下表示A口接收到低電平信號。</p><p><b> 五、所用器件</b>&
31、lt;/p><p> CPU8086、并行接口8255A、存儲器27c513、地址鎖存器8282、74LS138、石英晶振,8284A、共陰極數(shù)碼管、非門74LS04、蜂鳴器,電阻、開關等。</p><p><b> 主要器件簡介</b></p><p><b> CPU8086</b></p><p
32、> 8086是Inter系列的16位微處理器,芯片上有2.9萬個晶體管,采用 HMOS工 藝制造,用單一的+5V電源,時鐘頻率為5MHz~10MHz。 8086有16根數(shù)據(jù)線和20根地址線,它既能處理16位數(shù)據(jù),也能處理8位數(shù)據(jù)。可 尋址的內存空間為1MB.</p><p><b> 并行接口8255</b></p><p> Intel 8086/808
33、8 系列的可編程外設接口電路(Programmable Peripheral Interface)簡稱 PPI,型號為8255(改進型為8255A及8255A-5),具有24條輸入/輸出引腳、可編程的通用并行輸入/輸出接口電路。它是一片使用單一+5V電源的40腳雙列直插式大規(guī)模集成電路。8255A的通用性強,使用靈活,通過它CPU可直接與外設相連接。</p><p> 地址鎖存器74LS138</p>
34、;<p> 74LS138 為3 線-8 線譯碼器,共有 54/74S138和 54/74LS138 兩種線路結構型式,其工作原理如下:當一個選通端(G1)為高電平,另兩個選通端(/(G2A)和/(G2B))為低電平時,可將地址端(A、B、C)的二進制編碼在一個對應的輸出端以低電平譯出。 利用 G1、/(G2A)和/(G2B)可級聯(lián)擴展成 24 線譯碼器;若外接一個反相器還可級聯(lián)擴展成 32 線譯碼器。 若將選通端中的一
35、個作為數(shù)據(jù)輸入端時,74LS138還可作數(shù)據(jù)分配器。</p><p><b> 六、原理圖</b></p><p> 1、8086和存儲器連接</p><p> 存儲器地址:0000H~3FFFH</p><p> 2、CPU與8255A連接</p><p> 8255A地址分配:PA8
36、00H PB802H PC804H 控制寄存器806H</p><p> 為了滿足8255A的四個端口地址必須為偶地址這一要求,將8255A的A1、A0分別與8086系統(tǒng)地址總線的A2、A1相連,并且,CPU在對8255A的端口進行訪問時,總是將地址中的A0設置為0.</p><p> 3、8255A的A口與鍵盤連接</p><p> 共12個按鍵,0-
37、9為數(shù)字鍵,每個十進制數(shù)對應PA3~PA0四位二進制數(shù),確認鍵和修改密碼鍵按下時,PA4和PA5為低電平。</p><p> 4、8255A的B、C口</p><p> C口低四位用了低三位,都是輸出高電平有效,高四位用了兩位,輸出低電平有效。</p><p><b> 完整電路圖</b></p><p><
38、b> 七、軟件設計思路</b></p><p> 由于硬件設計部分沒有用到8259和8253,主要器件是8086和8255,所以使得設計簡單很多。程序也主要解決如何利用8255來實現(xiàn)所要求的功能這個問題。首先需要初始化8255,A口作為輸入,B、C口作為輸出。一開始縱觀設計內容及要求,可以大致知道需要三個子程序,修改密碼程序、開鎖程序、閉鎖程序。由A口輸入的數(shù)據(jù)決定調用哪個子程序,而相關子程
39、序需要具有所要求的功能,比如修改密碼程序需要在修改成功后發(fā)出蜂鳴聲,開鎖程序需要輸出開鎖電平和顯示00字樣,等等。為方便程序編寫,采用輸入數(shù)據(jù)逐位與正確密碼相比的方法,只要有一位不相同即轉入閉鎖程序,而在閉鎖程序中需要設置計數(shù)值,當轉入閉鎖程序六次也即輸入錯誤密碼六次則輸出報警電平報警。這樣則能完成所需的所有功能。程序設計思路基本如此。按此思路畫完流程圖之后則進入程序設計階段。大框架已經(jīng)確定下來,現(xiàn)在需要決定一些重要的細節(jié)。比如如何安排
40、計數(shù)值的位置,子程序的返回處,等等。經(jīng)過多次試探與檢驗,最終將這些細節(jié)確定下來。最后將程序開始的初始化、退出程序補充完整,整體再檢查一遍,查漏補缺,即可完成設計。</p><p><b> 八、流程圖</b></p><p><b> 主程序流程圖</b></p><p> 修改密碼子程序流程圖 閉
41、鎖子程序流程圖 開鎖子程序流程圖</p><p><b> 九、程序代碼</b></p><p> DATAS SEGMENT</p><p> PASSWORD DB 0,0,0,0,0,0 ;設置初始密碼</p><p> DATAS ENDS</p>
42、<p> CODES SEGMENT</p><p> ASSUME CS:CODES,DS:DATAS,ES:STACKS</p><p> START: MOV AX,DATAS</p><p> MOV DS,AX</p><p> MOV AX,STACKS</p><p> MO
43、V ES,AX</p><p> MOV AL,90H</p><p> OUT 63H,AL ;初始化8255,方式0,A口輸入,B、C口輸出</p><p> IN AL,60H ;讀取A口數(shù)據(jù)</p><p> AND AL,20H
44、 ;是否需要修改密碼</p><p> JNE CHANGE ;需要則調用修改密碼子程序</p><p> MOV BX,5 ;設置錯誤密碼輸入最大次數(shù)</p><p> A1: MOV CX,5 ;設置密碼個數(shù)</p><p>
45、MOV SI,OFFSET PASSWORD</p><p> A2: IN AL,60H</p><p> CMP AL,BYTE PTR[SI] ;逐位比較,判斷輸入密碼是否正確</p><p> JNE CLOSE ;只要有一位錯誤就調用閉鎖子程序</p><p>&
46、lt;b> INC SI</b></p><p><b> LOOP A2</b></p><p> CALL OPEN ;正確就調用開鎖子程序</p><p><b> JMP ST</b></p><p> CHANGE
47、 PROC NEAR ;修改密碼子程序</p><p> MOV CX,5 ;設置密碼個數(shù)</p><p> MOV SI,OFFSET PASSWORD</p><p> A3: IN AL,60H </p><p> MOV [SI],AL&
48、lt;/p><p> INC SI</p><p> LOOP A3 ;依次修改六位密碼</p><p> A4: IN AL,60H</p><p> AND AL,10H ;判斷有否按下確認鍵</p><p> JN
49、E A4 ;沒按下則繼續(xù)等待</p><p> MOV AL,01H</p><p> OUT 62H,AL ;蜂鳴器響一下表示確認</p><p><b> RET</b></p><p> CHANGE ENDP</p
50、><p> CLOSE PROC NEAR ;閉鎖子程序</p><p> MOV AL,71H</p><p> OUT 61H,AL ;數(shù)碼管輸出“F”</p><p> MOV AL,10H</p><p> OUT 6
51、2H,AL ;選中L0輸出“F”</p><p> MOV AL,71H</p><p> OUT 61H,AL</p><p> MOV AL,20H</p><p> OUT 62H,AL ;選中L1輸出“F”</p><p>
52、; A5: MOV CX,3</p><p> MOV AL,01H</p><p> OUT 62H,AL</p><p> LOOP A5 ;蜂鳴器響四下表示錯誤警告</p><p> DEC BX</p><p> CMP
53、BX,0 ;判斷是否已經(jīng)輸入六次錯誤密碼</p><p> JNE A1 ;不夠六次則重新轉到A1</p><p> MOV AL,04H</p><p> OUT 62H,AL ;已輸入六次誤碼則產(chǎn)生報警電平報警</p><p&g
54、t;<b> RET</b></p><p> CLOSE ENDP</p><p> OPEN PROC NEAR ;開鎖子程序</p><p> A6: IN AL,60H</p><p> AND AL,10H</p><p&g
55、t; JNE A6 ;等待確認鍵按下</p><p> MOV AL,3F</p><p> OUT 61H,AL ;數(shù)碼管輸出“0”</p><p> MOV AL,10H</p><p> OUT 62H,AL
56、 ;選中L0輸出“0”</p><p> MOV AL,3F</p><p> OUT 61H,AL</p><p> MOV AL,20H</p><p> OUT 62H,AL ;選中L1輸出“0”</p><p> MOV AL,02H&l
57、t;/p><p> OUT 62H,AL ;輸出開鎖電平,開通LED,顯示電子鎖開啟</p><p><b> RET</b></p><p> OPEN ENDP</p><p> ST: MOV AX,4CH</p><p> INT
58、 21H</p><p> CODES ENDS</p><p> END START</p><p><b> 十、設計中的難點</b></p><p><b> 1.硬件</b></p><p> 在硬件方面,設計過程也遇到不少的問題。首先沒看過實物,
59、對硬件沒有一個大概的輪廓,最后經(jīng)過網(wǎng)上查找資料和跟同學交流,完成了設計。</p><p><b> 2.軟件</b></p><p> 首先是如何安排好幾個子程序調用的順序。按照一般的邏輯思維,我將修改密碼安排在第一個,如果用戶剛開始即要修改密碼可以很方便地實現(xiàn),如果不用則轉入輸入密碼步驟。而若輸入錯誤密碼則調用閉鎖程序,否則調用開鎖程序,這樣則可初步安排好順序。
60、其次是如何判斷錯誤密碼。如果輸入的是錯誤的密碼,按照我們日常生活經(jīng)驗,是全部輸入才提示出錯,而我覺得這樣太浪費時間,所以考慮將輸入的密碼逐位與正確密碼相比較,只要有一位不符合則馬上顯示出錯,這樣實現(xiàn)起來也比較容易,只需要獲取正確密碼的偏移地址和輸入的相應密碼,然后用一個邏輯語句“與”將兩者進行比較,再利用條件轉移語句即可輕松實現(xiàn)。最后是警告聲音的處理問題。因為已經(jīng)要用到蜂鳴器來發(fā)出對新密碼的確認音,故為了簡化電路,我們決定也用蜂鳴器來發(fā)
61、出錯誤警告聲音,規(guī)定響一聲表示確認新密碼,響四聲表示錯誤警告。</p><p><b> 十一、收獲及體會</b></p><p> 這次的課程設計雖有四個設計題目,但比較熟悉,平時比較常接觸到的只有密碼鎖這個,而且感覺這個題目相對來說也比較簡單一點,設計思路比較清晰一些,所以選了多功能密碼鎖這個設計題目。但想的時候感覺不難,實際去設計的時候遇到的問題缺不少,首先
62、硬件這個東西就感覺無從下手,畢竟沒見過實物,所以連個起碼的概念也沒有,只能先通過在網(wǎng)上查找資料讓自己有大概的輪廓,然后在對硬件慢慢設計,但還是有很多地方不懂,最后在和同學交流后才完成設計。至于軟件部分,則是先畫了流程圖,把思路縷清后,才寫程序,但因為有很些指令不熟悉,最后借鑒了網(wǎng)上的一些程序,在加上看書,才完成了設計。在這次設計中,讓我知道了看起來很難的事情,只要有耐心,一步一步,總會完成的,并且知道有時和別人交流會讓自己少走彎路。而更
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論