版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 設(shè)計(jì)任務(wù):多功能密碼鎖</p><p><b> 目錄</b></p><p><b> 一、設(shè)計(jì)目標(biāo)</b></p><p><b> 二、設(shè)計(jì)要求</b></p><p><b> 三、整體功能描述</b></p&g
2、t;<p> 四、硬件設(shè)計(jì)功能模塊</p><p><b> 1.鍵盤</b></p><p><b> 2.中斷控制</b></p><p><b> 3.計(jì)時(shí)</b></p><p><b> 4.按鍵響應(yīng)</b></p&
3、gt;<p><b> 5.報(bào)警</b></p><p><b> 6.儲(chǔ)存器及片選</b></p><p><b> 7.整機(jī)電路</b></p><p><b> 五、程序流程圖</b></p><p><b> 六、
4、程序清單</b></p><p><b> 七、設(shè)計(jì)總結(jié)</b></p><p><b> 設(shè)計(jì)目標(biāo)</b></p><p> 1.密碼鎖在輸入密碼正確的條件下輸出開(kāi)鎖電平,控制電控鎖開(kāi)啟,同</p><p><b> 顯示00字樣。</b></p&g
5、t;<p> 2.當(dāng)輸入密碼錯(cuò)誤時(shí),發(fā)出錯(cuò)誤警告聲音,同時(shí)顯示FF字樣。</p><p> 3.當(dāng)六次誤碼輸入的條件下,產(chǎn)生報(bào)警電平報(bào)警。</p><p> 4.還可以實(shí)現(xiàn)對(duì)密碼的修改,修改成功后,蜂鳴器發(fā)出確認(rèn)音。</p><p><b> 設(shè)計(jì)要求</b></p><p> 1、選用8086和
6、適當(dāng)?shù)拇鎯?chǔ)器及接口芯片完成相應(yīng)的功能。</p><p> 2、用LED顯示器顯示電子鎖的當(dāng)前狀態(tài)。</p><p> 3、畫出詳細(xì)的硬件連接圖。</p><p> 4、給出程序設(shè)計(jì)思路、畫出軟件流程圖。</p><p> 5、給出地址分配表。</p><p> 6、給出所有程序清單并加上必要注釋。</p
7、><p> 7、完成設(shè)計(jì)說(shuō)明書(列出參考文獻(xiàn),所用器件型號(hào))。</p><p><b> 整體功能描述</b></p><p> 本設(shè)計(jì)為多功能密碼鎖,使用存儲(chǔ)器保存密碼防止斷電后密碼丟失。工作時(shí)按下按鍵蜂鳴器會(huì)發(fā)出聲音提示按鍵有效并在數(shù)碼管有“- -”閃爍字樣,若相隔1分鐘無(wú)按鍵按下,則清零。在輸入密碼正確的條件下輸出開(kāi)鎖電平,控制電控鎖開(kāi)
8、啟,同時(shí)顯示00字樣。開(kāi)鎖后可按下“復(fù)位/修改密碼鍵”實(shí)現(xiàn)修改密碼功能的轉(zhuǎn)入,之后先輸入密碼再輸入同樣的密碼確認(rèn)才可成功修改,修改成功后蜂鳴器會(huì)發(fā)出三聲,數(shù)碼管“00”閃爍三次提示修改密碼成功。當(dāng)輸入密碼錯(cuò)誤時(shí),發(fā)出錯(cuò)誤警告聲音,同時(shí)顯示FF字樣,當(dāng)輸入密碼錯(cuò)誤次數(shù)累積夠6次后,蜂鳴器會(huì)產(chǎn)生90秒的報(bào)警聲響進(jìn)行報(bào)警。</p><p> 四、硬件設(shè)計(jì)功能模塊 </p><p>
9、 本設(shè)計(jì)使用了8086、8259A、8255、8253、A28F512、74LS138、74LS148、地址鎖存器、數(shù)碼管以及74系列邏輯門、蜂鳴器、開(kāi)關(guān)等芯片與元器件,實(shí)現(xiàn)了鍵盤輸入、中斷控制、計(jì)時(shí)、按鍵響應(yīng)、開(kāi)鎖及報(bào)警等功能模塊。以下一一詳述。</p><p><b> 1.鍵盤</b></p><p> 本設(shè)計(jì)8255A的A口與兩片級(jí)聯(lián)的74LS148組合接
10、用于輸入鍵盤,實(shí)現(xiàn)對(duì)輸入鍵號(hào)的讀入。工作時(shí),8086通過(guò)程序掃描鍵盤,當(dāng)無(wú)鍵盤按下時(shí),74LS148工作于無(wú)輸入狀態(tài),GS口輸出高電平,接到PA4作為識(shí)別有無(wú)按鍵按下信號(hào),PA口輸入為10H;當(dāng)有按鍵輸入時(shí),74LS148輸入口接到低電平,輸入有效,經(jīng)編碼后鍵號(hào)轉(zhuǎn)換為相應(yīng)二進(jìn)制編碼送到PA口,成為能為cpu識(shí)別的代表鍵值的有效信號(hào)。讀入的按鍵信號(hào)經(jīng)8086判斷后,根據(jù)不同的功能,輸出不同的按鍵響應(yīng),并轉(zhuǎn)移到相對(duì)應(yīng)的功能服務(wù)程序。<
11、/p><p> 本設(shè)計(jì)總共用到11位按鍵,包括10位數(shù)碼輸入按鍵及一位“復(fù)位/修改密碼”按鍵,電路設(shè)計(jì)總共可用按鍵有16位,供升級(jí)功能使用。</p><p><b> 鍵盤電路如下所示:</b></p><p><b> 圖1 鍵盤連接圖</b></p><p><b> 2.中斷控
12、制</b></p><p> 用一片8259芯片作為中斷控制接口電路。可通過(guò)編程開(kāi)中斷,通過(guò)編程或者8253計(jì)時(shí)器關(guān)中斷。電路連接如下:</p><p> 圖2 中斷控制器連接圖</p><p><b> 3.計(jì)時(shí)</b></p><p> 采用8253計(jì)時(shí)器控制中斷的關(guān)斷,實(shí)現(xiàn)單次輸入密碼超時(shí)則退出
13、輸入密碼中斷子程序、報(bào)警器響鈴時(shí)間控制等功能。電路如圖2所示。</p><p><b> 4.按鍵響應(yīng)</b></p><p> 8255PC0、PC1接到數(shù)碼管片選、PC2接到蜂鳴器、PC3接到電子鎖。電路連接如圖3所示:</p><p> 圖3 按鍵響應(yīng)、報(bào)警、開(kāi)鎖功能電路 </p>
14、<p><b> 5.報(bào)警功能</b></p><p> 同時(shí)用8255A的B口控制數(shù)碼管的顯示,C口片PC0、PC1選數(shù)碼管,PC2用來(lái)驅(qū)動(dòng)SPEAK發(fā)出報(bào)警。電路如圖3所示。</p><p> 6.儲(chǔ)存器及片選電路:</p><p><b> 7.整機(jī)電路圖:</b></p><p
15、><b> 五、軟件流程圖:</b></p><p><b> 六、程序清單:</b></p><p> 各芯片地址:8259 30H</p><p><b> 8255 60H</b></p><p><b> 8253 20H</b&g
16、t;</p><p> 存儲(chǔ)器 2000H</p><p> DATAS SEGMENT ;程序初始化</p><p> DATA1 DB '0','0','0','0','0','0'</p><p> DA
17、TA2 DB 6 DUP (?)</p><p> DATA3 DB 6 DUP (?)</p><p> DATA4 DB 6 DUP (?)</p><p> DATAS ENDS</p><p> STACKS SEGMENT PARA STACK'STACK'</p><p> STA
18、 DB 100 DUP(?)</p><p> TOP EQU LENGTH STA</p><p> STACKS ENDS</p><p> CODES SEGMENT</p><p> ASSUME CS:CODES,DS:DATAS,SS:STACKS,ES:DATAS</p><p><b>
19、; START:</b></p><p> MOV AX,DATAS</p><p><b> MOV DS,AX</b></p><p> MOV AX,STACKS</p><p><b> MOV SS,AX</b></p><p> MOV S
20、P,TOP</p><p> MOV AX,0 ;初始化中斷向量表</p><p><b> MOV ES,AX</b></p><p> MOV BX,84H ;IR1中斷類型碼21h*4=84h</p><p> MOV AX,OFFSET INPUT<
21、;/p><p> MOV ES:[BX],AX</p><p> MOV AX,SEG INPUT ;段地址</p><p> MOV ES:[BX+2],AX</p><p> MOV AL,90H ;8255初始化,A口方式0,輸入;B、c口方式0,輸出</p><p>
22、 OUT 63H,AL</p><p> MOV AL,36H ;8253初始化,方式0</p><p> OUT 23H,AL</p><p> MOV AL,13H ;8259A初始化,ICW1 </p><p> OUT 30H,AL</p><p>
23、MOV AL,20H ;ICW2</p><p> OUT 31H,AL</p><p> MOV AL,01 ;ICW4</p><p> OUT 31H,AL</p><p> MOV AL,00 ;OCW1</p><p><
24、;b> OUT 31H</b></p><p> MOV CX,06H ;從RAM里讀出密碼到DATA2,密碼為6位</p><p> MOV SI,2000H</p><p> MOV DI,OFFSET DATA2</p><p> LP1:MOV AL,[SI]</p>
25、<p> MOV [DI],AL</p><p><b> INC SI</b></p><p><b> INC DI</b></p><p> LOOP LP1 ;讀入密碼結(jié)束</p><p> MOV BX,00 ;輸入
26、密碼次數(shù)計(jì)數(shù)器初始值</p><p> RE: MOV AL,03H </p><p> OUT 62H,AL</p><p> MOV AL,71H ;未開(kāi)鎖,B口輸出顯示FF</p><p> OUT 61H,AL</p><p> MOV CX,06H
27、 </p><p> MOV SI,OFFSET DATA2 ;定義SI、DI</p><p> MOV DI,OFFSET DATA3</p><p> HLT </p><p> STI ;停機(jī),開(kāi)中斷,等待密碼輸入</p>
28、<p><b> CLD</b></p><p> INC BX ;輸入密碼次數(shù)加1</p><p> REPE CMPSB ;將輸入六位數(shù)碼與密碼比較</p><p><b> CMP CX,00</b></p><p>
29、 JE OPEN ;相等則轉(zhuǎn)到開(kāi)鎖</p><p> CMP BX,06H ;輸入錯(cuò)誤且累積未夠6次,重新輸入</p><p><b> JNE RE</b></p><p> MOV AL,07H ;若錯(cuò)誤次數(shù)累積夠6次,觸發(fā)蜂鳴器報(bào)警</p><
30、;p> OUT 62H,AL</p><p> MOV AL,71H ;B口輸出FF</p><p> OUT 61H,AL</p><p> MOV AL,2048H ;報(bào)警鈴響計(jì)時(shí),90秒后關(guān)斷蜂鳴器,保持顯示FF </p><p> OUT 20H,AL</p>
31、<p> MOV AL,03H</p><p> OUT 62H,AL</p><p> JMP DOON ;跳到結(jié)束</p><p> OPEN:MOV AL,0BH ;開(kāi)鎖,并顯示00</p><p><b> OUT 62,AL</b></p>
32、;<p> MOV AL,3FH</p><p><b> OUT 61H</b></p><p> C1: IN AL,60H</p><p> CALL D20MS ;去抖動(dòng)</p><p> CMP AL,00H</p><p><b>
33、 JE C1</b></p><p> CMP AL,0AH ;掃描鍵盤,是否有修改密碼建(10)輸入</p><p> JNE DOON ;沒(méi)有則結(jié)束</p><p> C0: MOV SI,OFFSET DATA2 ;重新定義SI、DI</p><p> MOV DI
34、,OFFSET DATA3</p><p> MOV CX,06H</p><p><b> HLT</b></p><p> STI ;開(kāi)中斷,輸入修改程序</p><p> C2: MOV AL,[DI]</p><p> MOV [SI],AL
35、</p><p><b> INC SI</b></p><p><b> INC DI</b></p><p> LOOP C2 ;輸入密碼轉(zhuǎn)移到data2</p><p> IN AL,60H ;掃描鍵盤,若有修改密碼鍵輸入則重新修改</
36、p><p> CALL D20MS</p><p> CMP AL,0AH</p><p><b> JE C0</b></p><p> C3: MOV SI,OFFSET DATA2 ;再次輸入密碼確認(rèn)</p><p> MOV DI,OFFSET DATA3</p>
37、<p> MOV CX,06H</p><p><b> HLT</b></p><p><b> STI</b></p><p> REPE CMPSB</p><p> CMP CX,00 ;若data2與data3不相等則從新輸入</p>
38、;<p><b> JNE C3</b></p><p> MOV CX,06H ;若相等,則從DATA2寫密碼到RAM</p><p> MOV SI,2000H</p><p> MOV DI,OFFSET DATA2</p><p> C4: MOV AL,[DI]
39、</p><p> MOV [SI],AL</p><p><b> INC SI</b></p><p><b> INC DI</b></p><p> LOOP C4 ;轉(zhuǎn)存密碼結(jié)束</p><p> CALL RING2
40、 ;蜂鳴三次,表示修改好了</p><p> IN AL,60H ;掃描鍵盤,若有修改密碼鍵輸入則重新修改</p><p> CALL D20MS</p><p> CMP AL,0AH</p><p> JE C0 </p><p> JMP DOON
41、 ;修改完畢,轉(zhuǎn)到結(jié)束</p><p><b> ;中斷子程序</b></p><p> INPUT: PUSH AX ;保護(hù)現(xiàn)場(chǎng)</p><p><b> PUSH DS</b></p><p><b> PUSH BX</b>
42、</p><p><b> PUSH CX</b></p><p><b> PUSH DI</b></p><p><b> PUSH SI</b></p><p> MOV AL,1020H ;8253開(kāi)始一分鐘輸入限制計(jì)時(shí)</p><
43、;p> OUT 20H,AL</p><p> IN1: IN AL,60H ;讀A口</p><p> CALL D20MS ;去抖動(dòng)</p><p> CMP AL,10H </p><p> JE IN1 ;若無(wú)按鍵按下,則重新掃描
44、 </p><p> CMP AL,0AH ;若有按鍵按下,比較是否為復(fù)位鍵</p><p> JNE IN3 </p><p> CALL RING1 ;為復(fù)位鍵則輸出按鍵有效提示音并重新輸入</p><p> MOV CX,06H</p><p>
45、 MOV DI,OFFSET DATA3</p><p><b> JMP IN1</b></p><p> IN3: CALL RING1 ;若不是復(fù)位鍵,則把鍵值送到data3</p><p> MOV [DI],AL</p><p><b> INC DI</b&g
46、t;</p><p> LOOP IN1 ;循環(huán),掃描下一次按鍵,直到輸入夠6位密碼</p><p><b> MOV AL,01</b></p><p><b> OUT 30,AL</b></p><p> POP SI ;中斷結(jié)束恢
47、復(fù)現(xiàn)場(chǎng)</p><p><b> POP DI</b></p><p><b> POP CX</b></p><p><b> POP BX</b></p><p><b> POP DS</b></p><p><
48、b> POP AX</b></p><p> CLI ;關(guān)中斷</p><p> IRET ;中斷返回</p><p> DOON: MOV AH,4CH</p><p><b> INT 21H</b></p>
49、<p> ;20ms延時(shí)子程序</p><p> D20MS PROC NEAR </p><p><b> PUSH CX</b></p><p> MOV CX,0080H</p><p> D1: DEC CX</p><p> LOOP D1
50、 ;循環(huán)</p><p><b> POP CX</b></p><p> RET ;返回</p><p> D20MS ENDP</p><p> ;輸入按鍵響應(yīng)子程序</p><p> RING1 PROC NEAR
51、 </p><p> PUSH AX ;保護(hù)AX\CX</p><p><b> PUSH CX</b></p><p> MOV CX,05H ;設(shè)置提示音為0.1秒</p><p> MOV AL,07H ;輸出顯示“- -
52、”字樣</p><p> OUT 62H,AL</p><p> MOV AL,40H</p><p> OUT 61H,AL</p><p> R1: CALL D20MS</p><p><b> LOOP R1</b></p><p> MOV AL,00
53、H ;數(shù)碼管滅</p><p> OUT 62H,AL</p><p><b> POP CX</b></p><p><b> POP AX</b></p><p> RET ;返回</p><p> RIN
54、G1 ENDP</p><p> ;修改確認(rèn)鈴聲子程序</p><p> RING2 PROC NEAR </p><p><b> PUSH AX</b></p><p><b> PUSH CX</b></p><p> MOV CX,
55、03H ;三次0.1秒的提示聲</p><p> R2: MOV AL,0FH ;開(kāi)鈴聲</p><p> OUT 62H,AL</p><p> MOV AL,40H</p><p> OUT 61H,AL</p><p> CALL D20MS
56、 ;延時(shí)0.1秒</p><p> CALL D20MS</p><p> CALL D20MS</p><p> CALL D20MS</p><p> CALL D20MS</p><p> MOV AL,00H</p><p> OUT 62H,AL
57、 ;關(guān)鈴聲</p><p> CALL D20MS ;延時(shí)0.1秒</p><p> CALL D20MS</p><p> CALL D20MS</p><p> CALL D20MS</p><p> CALL D20MS</p><p> LOOP R2
58、 ;循環(huán)</p><p> MOV AL,0BH ;恢復(fù)開(kāi)鎖狀態(tài)</p><p> OUT 62H,AL</p><p> MOV AL,3FH</p><p> OUT 61H,AL</p><p><b> POP CX</b&g
59、t;</p><p><b> POP AX</b></p><p><b> RET</b></p><p> RING1 ENDP ;返回</p><p> CODES ENDS</p><p> END START
60、 ;結(jié)束</p><p><b> 七、設(shè)計(jì)總結(jié)</b></p><p> 1、遇到的問(wèn)題及解決方法</p><p> 首先遇到的問(wèn)題是鍵盤的設(shè)計(jì),剛開(kāi)始想用8279,但是對(duì)8279不夠熟悉,研究了一下就放棄了,再而想到用8255的A、B口組合64位矩陣鍵盤或者用C口低4位與高4位組合的16位鍵盤,但最后還是使用了
61、開(kāi)關(guān)與編碼器組合的形式組成16位鍵盤,簡(jiǎn)單明了,但是還沒(méi)有解決雙鍵同時(shí)按下的問(wèn)題。</p><p> 再而由于學(xué)8259的時(shí)候不夠認(rèn)真,所以開(kāi)始寫8259初始化的時(shí)候也顯的力不從心,最終參考了書本和其他資料,還是寫了出來(lái)。</p><p> 設(shè)計(jì)中接觸到的另一個(gè)問(wèn)題是密碼的儲(chǔ)存的問(wèn)題,剛開(kāi)始沒(méi)有想到cpu關(guān)機(jī)后密碼消失的問(wèn)題,后來(lái)加了一篇存儲(chǔ)器實(shí)現(xiàn)了密碼的保存。</p>
62、<p> 遇到的其他問(wèn)題都跟同學(xué)們討論而得到了一定的解決。</p><p><b> 2、課程設(shè)計(jì)總結(jié)</b></p><p> 通過(guò)本次課程設(shè)計(jì),我進(jìn)一步了解 8255,8253,8259等芯片的內(nèi)部結(jié)構(gòu),熟悉各種基本工作模式和編程方法; </p><p> 加深了對(duì) 8086中斷系統(tǒng)工作過(guò)程的了解; </p>
63、<p> 學(xué)會(huì)綜合應(yīng)用多種微機(jī)接口與單元電路,構(gòu)成滿足要求的小型微機(jī)應(yīng)用系統(tǒng);</p><p> 學(xué)會(huì)了CPU與存儲(chǔ)器的連接方法,擴(kuò)展存儲(chǔ)空間的方法。</p><p><b> 3、參考資料</b></p><p> 《微型計(jì)算機(jī)原理及應(yīng)用》 吳榮光 呂鈞星 編著, 華南理工大學(xué)出版社</p><
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 多功能密碼鎖課程設(shè)計(jì)
- 微機(jī)課程設(shè)計(jì)--多功能密碼鎖
- 單片機(jī)課程設(shè)計(jì)---多功能密碼鎖
- 密碼鎖課程設(shè)計(jì)
- 密碼鎖課程設(shè)計(jì)
- 課程設(shè)計(jì)--密碼鎖
- 密碼鎖課程設(shè)計(jì)
- 密碼鎖課程設(shè)計(jì)
- 多功能密碼鎖設(shè)計(jì)開(kāi)題報(bào)告
- 電子密碼鎖課程設(shè)計(jì)
- 微機(jī)課程設(shè)計(jì)--密碼鎖
- 電子密碼鎖課程設(shè)計(jì)
- 電子密碼鎖課程設(shè)計(jì)
- 數(shù)字密碼鎖課程設(shè)計(jì)
- 課程設(shè)計(jì)--電子密碼鎖
- 課程設(shè)計(jì)--數(shù)字密碼鎖
- 電子密碼鎖課程設(shè)計(jì)
- 電子密碼鎖課程設(shè)計(jì)
- 密碼鎖課程設(shè)計(jì)7
- 密碼鎖課程設(shè)計(jì) (2)
評(píng)論
0/150
提交評(píng)論