【正文】
。在以后的學(xué)習(xí)過程中,我們有信心可以做的更好。在提升自己的實(shí)踐操作能力的同時(shí),還鍛煉了我們的團(tuán)隊(duì)協(xié)作與溝通能力。我從這次主要負(fù)責(zé)的軟件編程任務(wù)中,不僅僅提升了我對(duì)匯編語言的運(yùn)用能力,更重要的是通過在這個(gè)過程中的思考我所獲得的思想覺悟,一種思考全面性、習(xí)慣性的能力,這是平時(shí)的一些簡(jiǎn)單實(shí)驗(yàn)無法比擬的??偟膩碚f,通過這次課程設(shè)計(jì),我們兩個(gè)都感覺到學(xué)到很多之前沒學(xué)到的東西,對(duì)軟硬件知識(shí)都有了很大提高,動(dòng)手能力也提高了不少。在完成這次的課設(shè)編程過程中,我深刻地明白到要編寫出一個(gè)優(yōu)秀的程序,在編寫好基本功能之后,一定要自己多思考,這樣的程序里面有哪些漏洞,如果投入實(shí)際應(yīng)用中會(huì)遇到什么樣的問題。另外后來在自己模擬運(yùn)行的時(shí)候,發(fā)現(xiàn)編的程序雖然沒有語法錯(cuò)誤,但很不實(shí)用,用戶可以任意修改密碼,使密碼鎖如同虛設(shè),為了解決這個(gè)問題,我加入了一個(gè)狀態(tài)判斷的變量,讓在執(zhí)行功能前先進(jìn)行狀態(tài)判斷。因?yàn)槠綍r(shí)匯編知識(shí)不夠扎實(shí),導(dǎo)致有時(shí)雖然自己能夠想到一種比較好的程序?qū)崿F(xiàn)方式,卻苦于對(duì)語句了解不足,即使查閱了書本也難以把自己的想法用完整的語句實(shí)現(xiàn),這種情況會(huì)讓最終得出的程序雖然功能依然滿足要求,但是程序就顯得不夠簡(jiǎn)介老練,累贅復(fù)雜了。 我先根據(jù)自己初步主程序與子程序的流程圖去編寫程序,通過對(duì)程序的不斷調(diào)試與配合,以此得出一種比較好的實(shí)現(xiàn)方式,繼而根據(jù)修改后的程序去調(diào)整流程圖。 根據(jù)做微機(jī)實(shí)驗(yàn)的經(jīng)驗(yàn),我為即將編寫的程序做好了流程圖。不過經(jīng)過一個(gè)學(xué)期的學(xué)習(xí),結(jié)合微機(jī)實(shí)驗(yàn)的實(shí)踐,我對(duì)匯編語言有了較為深刻的認(rèn)識(shí)。經(jīng)過這樣的分析討論,我們的課設(shè)框架基本上出來了,接著我們進(jìn)行分工,另一位同學(xué)負(fù)責(zé)硬件繪圖部分,我負(fù)責(zé)軟件編程部分。 在綜合考慮了我們已把握的知識(shí),以及可選題目與我們的關(guān)聯(lián)程度等各方面因素,我們最終選擇了多功能密碼鎖。十.收獲與體會(huì)在學(xué)期中老師就把微機(jī)原理課設(shè)的題目與要求發(fā)給了我們,本來想著在考完微機(jī)實(shí)驗(yàn)有著余熱之際好好把課設(shè)先想想的,結(jié)果又由于課程考試復(fù)習(xí)任務(wù)比較重,所以就擱置了。這次用的是protel99se,由于這個(gè)軟件以前從來沒用過,所以在應(yīng)用軟件畫圖這里花了很長(zhǎng)時(shí)間,而且在布線方面也遇到許多的問題。 考慮到密碼鎖的實(shí)用性,我們?cè)黾恿碎]鎖功能以及開鎖條件及修改密碼條件,以及在開始操作時(shí)數(shù)碼管輸出“DD”表示處于等待狀態(tài)。當(dāng)六次誤碼輸入的條件下,產(chǎn)生報(bào)警電平報(bào)警。密碼鎖在輸入密碼正確的條件下輸出開鎖電平,控制電控鎖開啟,同時(shí)顯示00字樣。若沒按下則繼續(xù)等待 MOV AL,01H OUT 62H,AL 。依次修改五位密碼LP5: IN AL,60H AND AL,80H 。修改密碼子程序 CMP STATUS,1 JNE OPEN MOV CX,4 。 改密碼。 修改密碼子程序。將密碼鎖狀態(tài)碼置1SUCCESS ENDP。選中L2 MOV AL,02H OUT 62H,AL 。選中L1 MOV AL,3FH OUT 61H,AL 。等待確認(rèn)鍵按下 MOV AL,3FH OUT 61H,AL 。 SUCCESS PROC NEAR 。 開鎖成功子程序。已輸入六次誤碼則產(chǎn)生報(bào)警電平報(bào)警 RETFAULT ENDP。判斷是否已經(jīng)輸入了六次錯(cuò)誤密碼 JNE OPEN 。蜂鳴器響四聲表示錯(cuò)誤警告 MOV STATUS,0 。數(shù)碼管L2輸出F MOV AL,20H OUT 62H,AL 。數(shù)碼管L1輸出F MOV AL,10H OUT 62H,AL 。 FAULT PROC NEAR 。 報(bào)錯(cuò)。 密碼輸入錯(cuò)誤子程序。將密碼鎖狀態(tài)碼置0 RETCLOSE ENDP。數(shù)碼管L2輸出1 MOV AL,20H OUT 62H,AL 。數(shù)碼管L1輸出1 MOV AL,10H OUT 62H,AL 。 CLOSE PROC NEAR 。 閉鎖子程序 。正確就調(diào)用開鎖子程序 RETOPEN ENDP。將用戶輸入的數(shù)字與系統(tǒng)密碼逐位比較 JNE FAULT 。判斷密碼鎖狀態(tài) JNE LP MOV SI,OFFSET PASSWORDLP1: IN AL,60H 。 OPEN PROC NEAR 。