




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、計(jì)算機(jī)硬件技術(shù)基礎(chǔ)課程設(shè)計(jì) 課題名稱(chēng):電子密碼門(mén)鎖設(shè)計(jì)專(zhuān) 業(yè):自動(dòng)化專(zhuān)業(yè)班 級(jí): 組 長(zhǎng):組 員:組員:指導(dǎo)老師:胡青重慶大學(xué)自動(dòng)化學(xué)院2016年9月1 基本功能要求1.1 主要內(nèi)容:設(shè)計(jì)一個(gè)密碼門(mén)鎖系統(tǒng),以揚(yáng)聲器作為發(fā)聲裝置,以4*4鍵盤(pán)作為功能按鍵,根據(jù)預(yù)設(shè)的密碼對(duì)門(mén)鎖實(shí)現(xiàn)安全控制。只有密碼完全符合才能開(kāi)門(mén),密碼不符時(shí)控制揚(yáng)聲器發(fā)聲報(bào)警。在計(jì)算機(jī)硬件實(shí)驗(yàn)系統(tǒng)基礎(chǔ)上,自行完成揚(yáng)聲器模塊的設(shè)計(jì)。 1. 密碼為6位,輸入密碼可以開(kāi)門(mén)或修改密碼。2. 用LED顯示門(mén)的當(dāng)前狀態(tài),以及當(dāng)前功能狀態(tài)。3. 按下開(kāi)門(mén)鍵,LED顯示“輸入密碼”提示信息,用戶(hù)輸入密碼后,若正確則門(mén)打開(kāi),按下關(guān)門(mén)鍵或打開(kāi)5秒后
2、關(guān)門(mén)。若密碼錯(cuò)誤則三色LED用紅色顯示“密碼錯(cuò)”提示信息后,要求用戶(hù)重新輸入密碼,3次錯(cuò)誤后三色LED紅綠交錯(cuò)顯示錯(cuò)誤提示信息,并且揚(yáng)聲器同時(shí)發(fā)聲報(bào)警,按下返回鍵返回。4. 若按下設(shè)置鍵,LED顯示“輸入密碼”提示信息,用戶(hù)輸入密碼,若正確則LED顯示”修改密碼“提示信息,要求用戶(hù)輸入新開(kāi)門(mén)密碼,按確認(rèn)鍵保存新密碼后返回,按返回鍵則放棄修改直接返回。若錯(cuò)誤處理規(guī)則與開(kāi)門(mén)相同。 2 組員分工 趙秋帆:開(kāi)門(mén)和設(shè)置程序的編寫(xiě),編寫(xiě)主程序?qū)⑵渌映绦蛘弦约罢w調(diào)試。李華東:硬件連線(xiàn)和8259部分中斷程序、三色LED子程序的編寫(xiě)。劉志君:8254部分硬件連線(xiàn)及程序的編寫(xiě)、相關(guān)例題的查詢(xún)以及實(shí)驗(yàn)報(bào)告的撰
3、寫(xiě)。3 硬件設(shè)計(jì)3.1 器件選擇實(shí)驗(yàn)箱上的5片可編程并行I/O口接口芯片8255A,1片可編程定時(shí)/計(jì)數(shù)器8254,1片中斷控制器8259(A),6位8段共陰極LED,兩個(gè)LED小燈以及三色共陽(yáng)極LED和蜂鳴器。3.2 器件功能分配設(shè)計(jì)1. 4片固定可編程并行I/O口接口芯片8255A控制三個(gè)LED顯示錯(cuò)誤信息2. 擴(kuò)展可編程并行I/O口接口芯片8255A控制8段共陰極LED顯示信息,同時(shí)控制掃描鍵盤(pán)。3. 可編程定時(shí)/計(jì)數(shù)器8254完成關(guān)門(mén)定時(shí),揚(yáng)聲器報(bào)警頻率信號(hào)。4. 中斷控制器8259(A)控制中斷。5. 揚(yáng)聲器完成報(bào)警。3.3 硬件連線(xiàn)根據(jù)前面的分析以及器件功能分配,進(jìn)行硬件連線(xiàn)地址:
4、可編程并行I/O口接口芯片8255A接300H可編程定時(shí)/計(jì)數(shù)器8254接320H中斷控制器8259A接340H接線(xiàn):1. 可編程定時(shí)/計(jì)數(shù)器8254計(jì)數(shù)器0 CLK接頻率信號(hào)47KHZ ,GATE接+5V, OUT接計(jì)數(shù)器1的CLK2. 可編程定時(shí)/計(jì)數(shù)器8254計(jì)數(shù)器1 CLK接計(jì)數(shù)器0的OUT口,GATE接+5V, OUT接8259IRQ03. 可編程定時(shí)/計(jì)數(shù)器8254計(jì)數(shù)器2 CLK接頻率信號(hào)3MHZ, GATE接+5V,OUT接揚(yáng)聲器信號(hào)輸入端 4. 擴(kuò)展可編程并行I/O口接口芯片8255AA口接LED段選,B口接LED位選,b0接開(kāi)關(guān)狀態(tài)LED燈,b1接功能狀態(tài)LED小燈,C口高
5、四位接鍵盤(pán)列信號(hào),低四位接鍵盤(pán)行信號(hào)5. 中斷控制器8259(A)INT1接INTR,SP/1接+5V,IRQ0接8254計(jì)數(shù)器1OUT6. 蜂鳴器信號(hào)接8254計(jì)數(shù)器2OUT硬件連線(xiàn)原理圖如圖圖3.3.1 8254定時(shí)/計(jì)數(shù)器原理圖圖3.2.2 鍵盤(pán)接口原理圖圖3.3.3 三色LED原理圖圖3.3.4 8259原理圖4 軟件設(shè)計(jì)經(jīng)過(guò)分析,電子密碼門(mén)鎖設(shè)計(jì)程序分兩大部分。其一,開(kāi)門(mén)功能程序,流程圖如圖2.2.1;其二,修改密碼程序,流程圖如圖2.2.2。使用可編程并行I/O口接口芯片8255A控制6位8段共陰極LED顯示提示信息和輸入的密碼、控制鍵盤(pán)掃描以及控制兩個(gè)LED小燈分別顯示功能狀態(tài)和
6、開(kāi)關(guān)門(mén)狀態(tài);使用可編程定時(shí)/計(jì)數(shù)器8254完成計(jì)時(shí)5S和蜂鳴器信號(hào)生成;使用中斷控制器8259A控制計(jì)時(shí)5S后完成自動(dòng)關(guān)門(mén)與三色LED紅綠交替功能,使用三色LED提示錯(cuò)誤。以下分別為開(kāi)門(mén)程序流程圖和設(shè)置程序流程圖:否密碼正確否開(kāi)始LED顯示當(dāng)前功能狀態(tài)及門(mén)的開(kāi)關(guān)開(kāi)門(mén)鍵A按下LED提示輸入密碼否是h否LED顯示開(kāi)門(mén)。計(jì)數(shù)器開(kāi)始計(jì)時(shí)5sE是否按下是h錯(cuò)誤計(jì)數(shù)器清零返回三色LED顯示Error錯(cuò)誤計(jì)數(shù)器+1錯(cuò)誤三次是h否蜂鳴器報(bào)警。錯(cuò)誤計(jì)數(shù)器清零三色led紅綠交錯(cuò)F是否按下是h否 圖4.1.1 開(kāi)門(mén)程序流程圖圖4.1.2設(shè)置程序流程圖5 使用說(shuō)明3.1 功能及顯示說(shuō)明1. 系統(tǒng)初始密碼為000000
7、(密碼只能是6位);2. 密碼可以由09組成;3. 開(kāi)門(mén)5S后,自動(dòng)返回關(guān)門(mén)狀態(tài);4. 左側(cè)LED小燈:功能指示燈,亮表示開(kāi)門(mén)功能狀態(tài),滅表示設(shè)置功能狀態(tài);5. 右側(cè)LED小燈:開(kāi)關(guān)門(mén)狀態(tài)指示燈,亮表示打開(kāi),滅表示關(guān)閉;6. 提醒輸入密碼顯示為:INPUT;7. 提醒修改密碼顯示為:CHANGE;8. 提示密碼錯(cuò)誤顯示為:Error;9. 密碼錯(cuò)誤三色LED顯示 為:Error(紅色);10. 錯(cuò)誤三次三色LED顯示 為:Error (紅綠交替 );11. 錯(cuò)誤三次蜂鳴器報(bào)警。3.2 操作說(shuō)明1. A鍵-待機(jī)界面時(shí)進(jìn)入開(kāi)門(mén)功能;2. B鍵-待機(jī)界面時(shí)進(jìn)入設(shè)置功能;3. E鍵-返回鍵,開(kāi)門(mén)后,按
8、下返回鍵返回關(guān)門(mén)狀態(tài)4. F鍵-確定鍵,顯示提醒時(shí),需按確定鍵繼續(xù);輸入密碼后,按確認(rèn)鍵確認(rèn)提示密碼錯(cuò)誤,需按確認(rèn)鍵重新輸入;報(bào)警后,需按確認(rèn)鍵返回關(guān)門(mén)狀態(tài)。6 結(jié)果顯示在實(shí)驗(yàn)板上結(jié)果顯示根據(jù)題目的要求, 通過(guò)調(diào)試運(yùn)行程序,得到了各種情況如下:(1) 關(guān)門(mén)狀態(tài)顯示INPUT,如下圖6.1.1圖6.1.1 關(guān)門(mén)狀態(tài)顯示情況(2)輸入密碼狀態(tài)顯示,結(jié)果如圖4.1.2圖6.1.2 輸入密碼狀態(tài)顯示情況(2) 開(kāi)門(mén)狀態(tài)顯示,結(jié)果如圖6.1.3 圖4.1.3 開(kāi)門(mén)狀態(tài)顯示(3) 改密碼界面顯示CHANGE,結(jié)果如圖6.1.4 圖6.1.4 改密碼界面顯示(5) 密碼輸錯(cuò)三次,三色LED交替閃爍,結(jié)果如圖
9、6.1.5 圖6.1.5 輸錯(cuò)三次密碼7 總結(jié)7.1 趙秋帆(20134692)心得體會(huì):趙秋帆(20134692)心得體會(huì):這次課程設(shè)計(jì)中,我主要負(fù)責(zé)開(kāi)門(mén)功能和設(shè)置功能的實(shí)現(xiàn),并編寫(xiě)主函數(shù),將其他成員編寫(xiě)的子函數(shù)整合在一起,在這次課程設(shè)計(jì)中,遇到了不少難點(diǎn),比如,在實(shí)現(xiàn)“開(kāi)門(mén)后5秒后關(guān)門(mén),或者按關(guān)門(mén)鍵關(guān)門(mén)”該功能中,實(shí)現(xiàn)起來(lái)就頗為費(fèi)勁,首先因?yàn)榘存I盤(pán)關(guān)門(mén),有一個(gè)掃描的問(wèn)題,在掃描程序中,如果不按鍵,就會(huì)一直掃描,沒(méi)法跳出掃描程序段,就更沒(méi)法執(zhí)行5秒關(guān)門(mén)這一指令,于是,在這里使用了定時(shí)中斷的方法,利用8254定時(shí)5秒,觸發(fā)中斷,使一自定義標(biāo)志位置1,在按鍵掃描的程序中加入判斷該標(biāo)志位是否為1,
10、為1則直接跳出掃描程序段,從而解決鍵盤(pán)掃描子程序不按鍵不可跳出的問(wèn)題,使得“開(kāi)門(mén)后5秒后關(guān)門(mén),或者按關(guān)門(mén)鍵關(guān)門(mén)”該功能得以實(shí)現(xiàn)。再比如實(shí)現(xiàn)“顯示開(kāi)門(mén)或設(shè)置的功能狀態(tài)和門(mén)的開(kāi)關(guān)狀態(tài)”這一功能時(shí),原本是打算,將該兩個(gè)狀態(tài)的顯示合二為一,一同顯示在LED上,后來(lái)發(fā)現(xiàn)此舉不太妥當(dāng),一方面因?yàn)椋荒軐?shí)時(shí)顯示門(mén)的開(kāi)關(guān)狀態(tài)以及開(kāi)門(mén)或者設(shè)置功能的狀態(tài),像顯示“輸入密碼”或是“修改密碼”之類(lèi)需要占用LED顯示的時(shí)候,就無(wú)法顯示。另外一方面因?yàn)椋@樣所表示出來(lái)門(mén)的狀態(tài),實(shí)際上是比較虛假的,只是取了3個(gè)靜止?fàn)顟B(tài)來(lái)表示門(mén)的狀態(tài):1.開(kāi)門(mén)功能,關(guān)門(mén)狀態(tài)2.開(kāi)門(mén)功能,開(kāi)門(mén)狀態(tài)3.設(shè)置功能,關(guān)門(mén)狀態(tài)。而門(mén)的開(kāi)關(guān)狀態(tài),應(yīng)該是
11、獨(dú)立出來(lái),這樣才更加符合實(shí)際。因此我們?cè)谶@問(wèn)題的解決上,使用了2個(gè)小燈,其中1盞的亮滅代表 開(kāi)門(mén)和設(shè)置狀態(tài),另外一盞的亮滅代表門(mén)的開(kāi)關(guān)狀態(tài)。但是這樣后,便有了新的問(wèn)題,沒(méi)有足夠的輸出口供使用,我們唯一能找到的輸出口,只有控制LED6位位選的B口所剩下了2個(gè)輸出口A1和A0,而要使用A1,A0,且使A1,AO獨(dú)立起來(lái),就必須在程序里面下功夫,使LED在正常顯示的同時(shí),且不影響A1,A0位。為了解決這一問(wèn)題,我設(shè)置了一個(gè)名為L(zhǎng)EG的存儲(chǔ)單元,用來(lái)保存A1,A0的狀態(tài),在每個(gè)需要LED顯示的地方,先將LEG的值賦予AL,再用或運(yùn)算來(lái)控制前面六位的位選,從而達(dá)到LED正常顯示,且不影響A1,A0的目的
12、。通過(guò)這次課程設(shè)計(jì),我更加熟練地掌握了硬件基礎(chǔ)的知識(shí),復(fù)習(xí)了8254,8259,8255以及4*4鍵盤(pán)、單色LED、三色LED等硬件的使用,在這次課設(shè)中,我們遇到了不少困難,但都在小組的共同努力下,逐一解決,使我們雖然辛苦,卻樂(lè)在其中。7.2 李華東(20134678)的心得體會(huì):剛拿到這次課程設(shè)計(jì)的題目乍看了一下感覺(jué)并不難,剛有點(diǎn)松懈下來(lái),結(jié)果到了實(shí)驗(yàn)室卻發(fā)現(xiàn)這次實(shí)驗(yàn)大方向雖然簡(jiǎn)單,但是其中充滿(mǎn)了復(fù)雜的小細(xì)節(jié),在程序編寫(xiě)過(guò)程中也多次讓我們小組的成員們絞盡腦汁。其中最突出的就是用led來(lái)顯示提示信息,這本來(lái)是一個(gè)很簡(jiǎn)單的任務(wù),在去年課程的學(xué)習(xí)中我們也對(duì)此駕輕就熟,但是到了實(shí)戰(zhàn)卻發(fā)現(xiàn)有好多我們想
13、用的字母都拼不出來(lái),為了避免引起界面混亂,我們不得不重新更改了我們的計(jì)劃,添加了兩個(gè)led小燈作為指示燈來(lái)顯示工作狀態(tài)與門(mén)的開(kāi)關(guān)。這雖然加大了我們的工作量,但是卻在理論上簡(jiǎn)化操作界面。但是難題又接踵而至輸出接口不夠用了,在上述情況下我們的8255的a口用于段選,b口用于位選,c口用于接鍵盤(pán),那么僅有的兩個(gè)輸出口就只能從位選上省,但是在led顯示程序上位選的掃描顯示程序又會(huì)影響到led小燈的暗滅。在我們百思不得其解的時(shí)候,組里的大神靈機(jī)一動(dòng),想出了先將寄存器數(shù)值(如10000000)與一個(gè)00000011再或一個(gè)01000000,保護(hù)了最后兩位不受位選掃描的影響,這種解決問(wèn)題的方法給了我很大的啟
14、發(fā)。這之后我們小組一路過(guò)關(guān)斬將,排除了一個(gè)個(gè)問(wèn)題,終于將課設(shè)圓滿(mǎn)完成。這其中也不乏各種難題,比如8259a中斷部分程序的編寫(xiě)就給我造成了很大的困擾,在連續(xù)看了一天書(shū)之后我終于把它搞懂并完成了程序的編寫(xiě)??偟膩?lái)說(shuō),這次課程設(shè)計(jì)使我們熟悉了以前學(xué)過(guò)的知識(shí),也是我們逐漸的掌握了一些思考方法以及提升了部分技能,同時(shí),團(tuán)隊(duì)協(xié)作能力也得到了提升,收獲不小,也讓自己對(duì)未來(lái)增加了一些自信心。這次的課程設(shè)計(jì)我對(duì)為指令的設(shè)計(jì)和流程都有了更深的理解,進(jìn)一步熟悉了計(jì)算機(jī)硬件技術(shù)原理的基本知識(shí),同時(shí)也加深了解了模塊化程序設(shè)計(jì)的基本過(guò)程,掌握了一些基本的軟硬件設(shè)計(jì)知識(shí)并對(duì)其進(jìn)行了基本的運(yùn)用,在模塊化程序設(shè)計(jì)中運(yùn)用了很多知
15、識(shí),以及幾塊芯片8255、8254、8259來(lái)實(shí)現(xiàn)計(jì)數(shù)器、定時(shí)器、查詢(xún)的功能等,即實(shí)現(xiàn)了對(duì)以往所學(xué)內(nèi)容的復(fù)習(xí),也讓自己更加對(duì)他們的實(shí)際運(yùn)用能力得到了增強(qiáng),使自己比以前的動(dòng)手能力與對(duì)課題的思考能力得到了增強(qiáng)。通過(guò)實(shí)踐,提高了我的實(shí)際操作能力,從以前所學(xué)理論上升到實(shí)踐,真正做到了學(xué)有所用,同時(shí)也認(rèn)識(shí)到了自己的不足之處,對(duì)轉(zhuǎn)移指令、芯片工作方式等都不是很熟悉,但是自己受益匪淺。7.3 劉志君(20134679)的心得體會(huì):以前上微機(jī)課的時(shí)候,因?yàn)樽约旱牟恢匾?,我都不知道,硬件到底是什么,用?lái)做什么,怎樣實(shí)現(xiàn)。當(dāng)理論和實(shí)際發(fā)生隔閡,不知道怎樣將學(xué)的枯燥無(wú)味了理論知識(shí)融入實(shí)際中,這種學(xué)習(xí)當(dāng)然會(huì)十分苦惱,
16、以至于學(xué)習(xí)激情大打折扣,所以對(duì)硬件連接和匯編語(yǔ)言掌握得一塌糊涂,這也使得這次課程設(shè)計(jì)一直跟不上組員的節(jié)奏。因此我只能?chē)L試著完成組長(zhǎng)趙秋帆交給我的一些簡(jiǎn)單的工作,同時(shí)邊做邊向他們請(qǐng)教。在程序的編寫(xiě)和調(diào)試方面我一直是出于半懵?tīng)顟B(tài),在組長(zhǎng)對(duì)各種狀況想方設(shè)法進(jìn)行解決的時(shí)候,雖然我并沒(méi)有能力去給出什么決定性的建議,但是我也還是強(qiáng)迫自己盡可能的加入,盡可能的提出自己的見(jiàn)解。而在這半學(xué)習(xí)半時(shí)間的過(guò)程中,我也是學(xué)到了很多以前被拋卻腦后的硬件連接和匯編知識(shí)。雖然現(xiàn)在讓我獨(dú)自去完成這個(gè)課程設(shè)計(jì)我照樣會(huì)感到困難,但是課程設(shè)計(jì)工作中的一部分事情我卻相信自己可以做到很好了,比如說(shuō)8255模塊的硬件連接以及8254部分相
17、關(guān)程序的編寫(xiě)?,F(xiàn)在的我也理解了八段LED位選和段選的具體含義,位選用來(lái)控制幾個(gè)LED燈的顯示,而段選則控制這些LED燈顯示的內(nèi)容,也就是各筆畫(huà)數(shù)碼管的亮滅。雖然是很基礎(chǔ)的知識(shí),但是對(duì)于理解硬件連接和數(shù)據(jù)寫(xiě)入有很大的幫助。總之,這次實(shí)踐,補(bǔ)習(xí)了我理論課漏掉的知識(shí),提高了我的實(shí)際操作能力,從以前所學(xué)理論上升到實(shí)踐,真正做到了學(xué)有所用,同時(shí)也認(rèn)識(shí)到了自己的不足之處,并且意識(shí)到所學(xué)理論知識(shí)的重要性,這雖然只是一次課程設(shè)計(jì),卻也是對(duì)以后工作的映射,理論學(xué)習(xí)是工作時(shí)間的基礎(chǔ),所以萬(wàn)萬(wàn)不可忽視。而且課程設(shè)計(jì)可以體現(xiàn)出團(tuán)隊(duì)合作程度,緊密合作加上明確分工,能夠大大地提高設(shè)計(jì)速度,在動(dòng)手設(shè)計(jì)之前,最好將設(shè)計(jì)所需要
18、的數(shù)據(jù),程序準(zhǔn)備好,為了判斷設(shè)計(jì)結(jié)果是否正確,有必要在準(zhǔn)備階段計(jì)算理論值。仔細(xì)分析指令的每一位,以及理清思路,在設(shè)計(jì)時(shí)做到胸有成竹。8 附錄8.1 程序清單.486CODE SEGMENT USE16ASSUMECS:CODEORG1000HBEGIN: JMPSTARTSHOWINPUTDB06H,37H,73H,3EH,31H,00H;顯示輸入密碼SHOWCHANGEDB39H,76H,77H,37H,7DH,79H;顯示修改密碼SHOWERRORDB79H,50H,50H,5CH,50H,00H;顯示錯(cuò)誤SHOWSTOPDB40H,40H,40H,40H,40H,40H;顯示橫杠INPU
19、TWATDB40H,40H,40H,40H,40H,40H;輸入密碼暫存PASSWORDDB3FH,3FH,3FH,3FH,3FH,3FH;密碼儲(chǔ)存PASSWORD1DB3FH,3FH,3FH,3FH,3FH,3FH ;密碼備份PASSNUMDB6;輸入密碼計(jì)數(shù)標(biāo)志CHECKFDB0;密碼檢測(cè)標(biāo)志ERRORNUMDB3;錯(cuò)誤計(jì)數(shù)OTCOUTDB0;開(kāi)門(mén)后關(guān)門(mén)程序跳出標(biāo)志KEYZHIDB0LEGDB1;*主程序開(kāi)始START:LEASI,INPUTWATCALLCLR;清除輸入密碼存儲(chǔ)單元MOVDX,20CH;四片8255初始化MOVEAX,80808080HOUTDX,EAXMOVDX,30C
20、H;擴(kuò)展8255控制字,AB輸出,C高出低入MOVAL,81HOUTDX,ALMOVDX,32CH;8254計(jì)數(shù)器0初始化工作在方式2下MOVAL,34HOUTDX,ALMOVDX,32CH;8254計(jì)數(shù)器1初始化工作在方式0下與計(jì)數(shù)器0級(jí)聯(lián)計(jì)時(shí)5SMOVAL,50HOUTDX,ALMOVDX,32CH;8245計(jì)數(shù)器2初始化工作在方式3下MOVAL,10110110BOUTDX,ALMOVDX,340H;初始化8259 寫(xiě)ICW1MOVAL,000010011BOUTDX,ALMOVDX,348H;寫(xiě)ICW2中斷類(lèi)型號(hào)為40H47HMOVAL,40HOUTDX,ALMOVDX,348H;寫(xiě)I
21、CW4MOVAL,01HOUTDX,ALMOVDX,348H;寫(xiě)OCW1,開(kāi)放所有IRMOVAL,00HOUTDX,ALCLI;填開(kāi)門(mén)后關(guān)門(mén)跳出中斷向量MOVDS,AXMOVBX,4*40HMOVAX,OFFSETINTOTCOUTMOVBX,AXMOVAX,SEGINTOTCOUTMOVBX+2,AX;*開(kāi)門(mén)功能程序OPENDOOR:ANDLEG,11111101B ;功能指示燈亮MOVDX,304HMOVAL,LEGOUTDX,ALOSHOWINP:LEABX,SHOWINPUT ;顯示輸入密碼提示,按下F確認(rèn)CALLSHOWANDKEYCMPCL,0B7HJZSETTINGCMPCL,7
22、7HJNZOSHOWINPPAA:LEASI,INPUTWATCALLCLRPA0:MOVPASSNUM,06H ;輸入密碼,按下D鍵可以消除上一次輸入,按下E鍵可以重新輸入,輸入完成后按下F鍵確認(rèn)LEASI,INPUTWATPAL:LEABX,INPUTWATCALLSHOWANDKEYJMPPAPASSN:LEABX,INPUTWATCALLSHOWANDKEYPA:CALLKEYTOSHOWINCSIDECPASSNUMJNZPASSNPA3:CALLSHOWANDKEYCMPCL,77HJZPA2JMPPA3PA2:MOVPASSNUM,06HCALLCHECK;調(diào)用密碼匹配CMPCH
23、ECKF,01HJNZPASSERPASSRI:ANDLEG,11111110BMOVDX,304H;功能指示燈亮MOVAL,LEGOUTDX,AL;密碼正確,開(kāi)門(mén)指示燈亮,按下E鍵或者5秒后關(guān)門(mén)STICALLOPENTOCLOSECALLSHOWANDKEYCMPCL,7BHJNZPASSRICLIORLEG,00000001BMOVERRORNUM,3JMPSTARTPASSER:CALL LER3MOVDX,328H;計(jì)數(shù)器2報(bào)警解除計(jì)數(shù)初值MOVAX,0OUTDX,ALMOVAL,AHOUTDX,ALJMPSTART;*設(shè)置功能程序SETTING:MOVDX,304H;功能指示燈滅OR
24、LEG,00000010BMOVAL,LEGOUTDX,ALSSHOWINP:LEABX,SHOWINPUT;提示輸入密碼 CALLSHOWANDKEY CMPCL,0BBH JZ OPENDOOR CMPCL,77H JNZSSHOWINPPBB:LEASI,INPUTWATCALLCLR ;輸入密碼PB0:MOVPASSNUM,06H;按下D鍵可以消除上一次輸入,按下E鍵可以重新輸入,輸入完成后按下F鍵確認(rèn)LEASI,INPUTWATPBL:LEABX,INPUTWATCALLSHOWANDKEYJMPPBPASSN1:LEABX,INPUTWATCALLSHOWANDKEYPB:CALL
25、KEYTOSHOWINCSIDECPASSNUMJNZPASSN1PB3:CALLSHOWANDKEYCMPCL,77HJZPB2JMPPB3PB2:MOVPASSNUM,06HCALLCHECK;調(diào)用密碼匹配CMPCHECKF,01HJNZPASSERLPASSRI1: ;密碼正確,提示修改密碼,按下F繼續(xù)LEABX,SHOWCHANGECALLSHOWANDKEYCMPCL,77HJNZPASSRI1PCC:LEASI,PASSWORD1CALLCLR ;輸入新密碼PC0:MOVPASSNUM,06H ;按下D鍵可以消除上一次輸入,按下E鍵可以重新輸入,輸入完成后按下F鍵確認(rèn)LEASI,P
26、ASSWORD1PCL:LEABX,PASSWORD1CALLSHOWANDKEYJMPPCCHANGE:LEABX,PASSWORD1CALLSHOWANDKEYPC:CALLKEYTOSHOWINCSIDECPASSNUMJNZCHANGEPC3:CALLSHOWANDKEYCMPCL,77HJZYESNOJMPPC3YESNO:LEABX,PASSWORD1CALLSHOWANDKEY ;按下E鍵取消修改并返回CMPCL,7BHJZNOYES:CMPCL,77H ;修改成功,按F確定并返回JNZYESNOLEABX,PASSWORD1LEASI,PASSWORDMOVAH,0CLEAR1
27、:MOVAL,AHXLATMOVBYTEPTRSI,ALINCSIINCAHCMPAH,06HJNZCLEAR1NO:JMPSTARTPASSERL:CALLLER3MOVDX,328H ;計(jì)數(shù)器2報(bào)警解除計(jì)數(shù)初值MOVAX,0OUTDX,ALMOVAL,AHOUTDX,ALLEASI,INPUTWATCALLCLRJMPSTARTCLRPROC NEAR MOVAL,6INPUTWATL:MOVBYTEPTRSI,40H INCSI DECAL JNZINPUTWATL RETCLRENDPSHOWANDKEYPROCNEARSHOWSTATEL:MOVAH,00HMOVKEYZHI,80H
28、;位選SHOWSTATEL1:MOVAL,AHXLATMOVDX,300HOUTDX,AL;送段MOVDX,304HMOVAL,LEGORAL,KEYZHIOUTDX,AL;送位選RORKEYZHI,1INCAH ;位選向右移位 KSCANL:MOVCL,0EFH ;按鍵掃描NXTCOLL:MOVAL,CLMOVDX,308HOUTDX,ALINAL,DXANDAL,0FHCMPAL,0FHJNZFNDKEYLROLCL,1JCNXTCOLLCMPOTCOUT,1JNZLLMOVCL,7BHMOVOTCOUT,0RETLL:CMPAH,06HJZSHOWSTATELJMPSHOWSTATEL1
29、FNDKEYL:ANDCL,0F0H ;鍵特征值形成ORCL,ALCALLSHOWHENGCALLDELYKEYUPL:MOVAL,0;按鍵防抖動(dòng)MOVDX,308HOUTDX,ALINAL,DXANDAL,0FHCMPAL,0FHJNZKEYUPLRETSHOWANDKEYENDP;*鍵特征值到短代碼的轉(zhuǎn)換KEYTOSHOWPROCNEARCMPCL,0EEH;0JNZKL1MOVBYTE PTRSI,3FHRETKL1:CMPCL,0EDH;1JNZKL2MOVBYTE PTRSI,06HRETKL2:CMPCL,0EBH;2JNZKL3MOVBYTE PTRSI,5BHRETKL3:CM
30、PCL,0E7H;3JNZKL4MOVBYTE PTRSI,4FHRETKL4:CMPCL,0DEH;4JNZKL5MOVBYTE PTRSI,66HRETKL5:CMPCL,0DDH;5JNZKL6MOVBYTE PTRSI,6DHRETKL6:CMPCL,0DBH;6JNZKL7MOVBYTE PTRSI,7DHRETKL7:CMPCL,0D7H;7JNZKL8MOVBYTE PTRSI,07HRETKL8:CMPCL,0BEH;8JNZKL9MOVBYTE PTRSI,7FHRETKL9:CMPCL,0BDH;9JNZKLAMOVBYTE PTRSI,6FHRETKLA:CMPCL,0B
31、BH;AJNZKLBMOVBYTE PTRSI,77HRETKLB:CMPCL,0B7H;BJNZKLCMOVBYTE PTRSI,7CHRETKLC:CMPCL,7EH;CJNZKL0MOVBYTE PTRSI,39HKL0:RETKEYTOSHOWENDP;*密碼檢測(cè)程序CHECKPROCNEARLEASI,INPUTWATLEADI,PASSWORDCHECKL0:MOVAL,BYTEPTRSIMOVAH,BYTEPTRDICMPAL,AHJNZCHECKERINCSIINCDIDECPASSNUMJZCHECKRIJMPCHECKL0CHECKER:MOVCHECKF,0MOVPASSNUM,06HRETCHECKRI:MOVCHECKF,1MOVPASSNUM,06HRETCHECKENDP;*延時(shí)子程序DELYPROCNEARPUSHCXMOVCX,0FFFFHDELY_L0:LOOPDELY_L0POPCXRETDELYENDP;*三色LED子程序LER3PROCNEARDECERRORNUMJZWARMOVDX,200H;5片8255給段選(每片前一個(gè))MOVEAX, 0FFAFAF
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年一級(jí)建造師考試重點(diǎn)考點(diǎn)試題及答案
- 二級(jí)消防應(yīng)急計(jì)劃試題及答案
- 2025年建造師核心考點(diǎn)試題及答案
- 代購(gòu)車(chē)子合同范例
- 乙方投資建房合同范例
- 公司股約定合同范例
- 云梯車(chē)施工合同范例
- 公會(huì)邀請(qǐng)合同范例范例
- 不銹鋼欄桿合同范例
- 個(gè)人簽約合同范例
- 《自動(dòng)化生產(chǎn)線(xiàn)集成與應(yīng)用- Integration》課件-項(xiàng)目一 自動(dòng)化生產(chǎn)線(xiàn)概述
- 履帶式起重機(jī)進(jìn)場(chǎng)驗(yàn)收表
- 汽車(chē)維修前臺(tái)接待流程參考指導(dǎo)
- 大數(shù)據(jù)驅(qū)動(dòng)的智慧社區(qū)建設(shè)研究
- 《人工智能生成合成內(nèi)容標(biāo)識(shí)辦法》知識(shí)講座
- 2024廣西公務(wù)員【申論A卷、C卷+2023申論A卷】共3套真題及答案
- 2024北京西城區(qū)初一(下)期末英語(yǔ)試題和答案
- 2024年廣東廣州黃埔區(qū)穗東街道政府聘員招聘筆試真題
- 寶潔波士頓矩陣案例分析課件
- 【MOOC】電子技術(shù)應(yīng)用實(shí)驗(yàn)2(數(shù)字電路綜合實(shí)驗(yàn))電子科技大學(xué)章節(jié)作業(yè)中國(guó)大學(xué)慕課答案
- 2025北京市朝陽(yáng)區(qū)區(qū)管企業(yè)年輕人才“培優(yōu)”招聘100人高頻重點(diǎn)提升(共500題)附帶答案詳解
評(píng)論
0/150
提交評(píng)論