2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩14頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論