wwwxxx国产_337p日本欧洲亚洲大胆张筱雨_免费在线看成人av_日本黄色不卡视频_国产精品成熟老女人_99视频一区_亚洲精品97久久中文字幕_免费精品视频在线_亚洲色图欧美视频_欧美一区二三区

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 16572|回復: 6
收起左側

8086與8255A多功能密碼鎖的設計(仿真+源代碼)微機原理課設報告

  [復制鏈接]
ID:430264 發表于 2018-11-20 23:06 | 顯示全部樓層 |閱讀模式
自動化科學與工程學院

《微機原理與應用》課程設計報告

多功能密碼鎖的設計

  專業: 自動化科學與工程學院

目錄
一、目的3
二、內容3
三、設計任務3
四、方案選擇及原理3
五、所用器件3
主要器件簡介4
六、原理圖7
1、8086與8255A連接7
2、 8255A的A口、C口與矩陣鍵盤連接7
3、8255A的A口、B口與數碼管的連接7
4、8086與8253連接8
5、完整電路圖9
七、軟件設計思路10
八、流程圖11
1、主程序11
2、子程序12
九、程序代碼14
十、設計中的難點23
十一、收獲及體會24
十二、參考文獻25

目的
  • 了解和掌握808682558253,等接口芯片以及LED顯示器的原理和功能;
  • 能用這些接口芯片構建一個簡單的系統控制對象,
  • 掌握接口電路的綜合設計與使用;
  • 通過自己動手,進一步了解計算機得工作原理,接口技術,提高計算機硬件,軟件綜合應用能力,即對微機原理,接口技術,匯編語言程序設計進行綜合訓練。
二、內容
密碼鎖在輸入密碼正確的條件下輸出開鎖電平,控制電控鎖開啟,同
顯示00字樣。當輸入密碼錯誤時,發出錯誤警告聲音,同時顯示FF字樣。當六次誤碼輸入的條件下,產生報警電平報警。還可以實現對密碼的修改,修改成功后,蜂鳴器發出確認音。
三、設計任務
1、選用8086和適當的存儲器及接口芯片完成相應的功能。
2、用LED顯示器顯示電子鎖的當前狀態。
3、畫出詳細的硬件連接圖。
4、給出程序設計思路、畫出軟件流程圖。
5、給出地址分配表。
6、給出所有程序清單并加上必要注釋。
7、完成設計說明書(列出參考文獻,所用器件型號)。
四、方案選擇及原理
這次的設計要求是在密碼輸入正確時輸出開鎖電平和顯示“00”,密碼錯誤時顯示“FF”和蜂鳴器發出報警聲音等,我們采用8255A的A口低四位和C口的低三位組成4x3的矩陣鍵盤,同時A口的低六位為選管;B口作為顯示器的輸出;C口高四位的PC4口輸出開鎖電平,對于6次密碼錯誤輸入,PC5口輸出報警電平。用8253計數器產生警告音和確認音。用蜂鳴器發聲次數來區分確認和警告聲音,一聲表示確認,三聲表示警告。采用Proteus自帶的鍵盤元件KEYPAD-PHONE,0-9為數字鍵,#為確認/返回鍵和*為密碼修改鍵,每次對鍵盤掃描,獲得對應的鍵值。
五、所用器件
CPU8086、并行接口8255A、地址鎖存器74LS273、4 線-16 線譯碼器74HCT154、石英晶振,可編程定時/計數器8253、共陰極數碼管、各類邏輯門、蜂鳴器,電阻、鍵盤等。
主要器件簡介
CPU8086

8086是Inter系列的16位微處理器,芯片上有2.9萬個晶體管,采用 HMOS工 藝制造,用單一的+5V電源,時鐘頻率為5MHz~10MHz。 8086有16根數據線和20根地址線,它既能處理16位數據,也能處理8位數據。可 尋址的內存空間為1MB。

并行接口8255
Intel 8086/8088 系列的可編程外設接口電路(Programmable Peripheral Interface)簡稱 PPI,型號為8255(改進型為8255A及8255A-5),具有24條輸入/輸出引腳、可編程的通用并行輸入/輸出接口電路。它是一片使用單一+5V電源的40腳雙列直插式大規模集成電路。8255A的通用性強,使用靈活,通過它CPU可直接與外設相連接。
可編程定時/計數器8253
8253可編程定時器/計數器是8086微機系統常用的定時/計數器芯片,它具有定時與計數兩大功能。8253可編程定時器/計數器具有3個獨立的16位計數器通過編程可選擇六種工作方式 ,可選擇二進制或十進制計數,最高計數速率可達2.6MHz。所有的輸入、輸出電平都與TTL兼容。

地址鎖存器74LS273
地址鎖存器74LS273是帶清除端的八D觸發器,只有清除端為高電平時才具有鎖存功能,鎖存控制端為11腳CLK,在上升沿鎖存。8086的ALE端輸出的鎖存控制信號必須經反相器后才能連到74LS273的CLK端,以滿足CLK在上升沿鎖存的要求。
4 線-16 線譯碼器74HCT154
74HCT154 為4 線-16 線譯碼器,將4 個二進制編碼輸入譯成16 個彼獨立的輸出之一,并能將數據從一個輸入線分配到16 個輸出的任意一個而實現解調功能,與大部分TTL 和DTL [url=]電路[/url]完全兼容。其工作原理如下:這種單片4 線—16 線譯碼器非常適合用于高性能存儲器的譯碼器。當兩個選通輸入G1 和G2 為低時,它可將4 個二進制編碼的輸入譯成16 個互相獨立的輸出之一。實現解調功能的辦法是:用4 個輸入線寫出輸出線的地址,使得在一個選通輸入為低時數據通過另一個選通輸入。當任何一個選通輸入是高時,所有輸出都為高。
六、原理圖
1、8086和8255A連接
8255A地址分配:PA:200H  PB:202H  PC:204H  控制寄存器:206H
為了滿足8255A的四個端口地址必須為偶地址這一要求,將8255A的A1、A0分別與8086系統地址總線的A2、A1相連,并且,CPU在對8255A的端口進行訪問時,總是將地址中的A0設置為0。
2、8255A的A口、C口與矩陣鍵盤連接
鍵盤元件KEYPAD-PHONE,0-9為數字鍵,#為確認/返回鍵和*為密碼修改鍵。
數字鍵1-9的鍵值為相應的數值,數字鍵0的鍵值為0BH,功能鍵*的鍵值為0AH,能鍵#的鍵值為0CH。
3、8255A的A口、B口與數碼管的連接
8255A的B口輸出數碼管的段碼,A口輸出數碼管的位碼。
4、8086與8253連接
8253地址分配:計數器0:400H 計數器1:402H 計數器2:404H控制寄存器:406H
為了滿足8255A的四個端口地址必須為偶地址這一要求,將8255A的A1、A0分別與8086系統地址總線的A2、A1相連,并且,CPU在對8255A的端口進行訪問時,總是將地址中的A0設置為0。

  • 完整電路圖
七、軟件設計思路
整個硬件設計,主要采用器件CPU8086、并行接口8255和可編程定時/計數器8253。由并行接口8255控制鍵盤掃描、數碼管顯示、開鎖電平以及報警電平,8255的工作方式是A口輸出,B口輸出,C口高四位輸出,C口低四位輸入。通過鍵盤掃描獲得對應的鍵值,通過對鍵值判斷,判斷按鍵是功能鍵或數字鍵,達到輸入密碼,修改密碼,確認輸入,返回等功能。由可編程定時/計數器8253產生方波,控制蜂鳴器產生“滴”聲。8253工作在計數器0方式3,產生方波,通過延時,是蜂鳴器產生“滴”。8253在每次調用發聲子程序中初始化。
根據條件要求,程序首先需要實現的是輸入密碼。為了區別輸入密碼和修改密碼,當數碼管顯示都顯示“—”,是輸入密碼。當數碼管全滅時,是修改密碼。當密碼輸入完且按下確認鍵,則輸入數字與密碼比對。密碼正確,則輸出開鎖電平(高電平有效)。在此時,則可以通過功能鍵修改密碼,密碼修改成功發出“滴”聲。若不需要,按返回鍵返回。若密碼錯誤,則發出三聲“滴”聲,密碼錯誤次數加1,并判斷是否已經輸入六次錯誤,是則輸出報警電平(高電平有效),并置密碼錯誤次數置0,等待返回鍵返回;否則等待返回按鍵返回。
為了實現上述程序,首先要初始化8086、8255,接著進入鍵盤掃描。每次有按鍵輸入后,還應判斷按鍵是否彈起,可以實現鍵盤消抖。無論密碼正確與否,均需要通過返回鍵才能返回,所以每次顯示完后都要對鍵盤掃描,判斷是否按下返回鍵,有則退出鍵盤掃描,沒有則繼續掃描。開鎖電平以及報警電平均在返回時置低電平。
、流程圖
主程序流程圖


修改密碼子程序流程圖開鎖子程序流程圖



































閉鎖子程序流程圖


十、設計中的難點
1.硬件
雖然是第一次接觸proteus,在硬件接線方面遇到種種困難。特別是總線的接法,因為以前沒有接觸過,完全無從下手。但是經過幾天的找資料以及學習,通過多次的嘗試,終于把硬件接線完成。
2.軟件
軟件設計基于我們這學期微機實驗課上的鍵盤掃描程序。整個系統中,我覺得最重要的同時最難的就是鍵盤掃描程序的設計。一開始,對于鍵盤掃描還未完全搞懂,還沒有對鍵盤賦鍵值這個概念,導致前期一直都在探索中。接著,程序可以獲得相應的鍵值,可是獲得按鍵值后就很不穩定,比如,我想通過#鍵來達到確認和返回兩個功能,但是總是一確認以后就馬上執行返回功能。程序邏輯沒有錯誤,后來參考書本的程序,原來每次獲得鍵值后都要對鍵盤進行再次掃描,判斷按鍵是否彈起,未彈起則跳到下一步。 如此,#鍵就能完美執行這兩個功能。
十一、收獲及體會
1、下面就以硬件方面我做一下總結:

硬件部分主要是設計原理圖跟連接線路,這次主要是用到Proteus這個軟件,這個軟件之前沒接觸過,所以在下載下來以后第一件事就是上網看教程,看了兩三個教程之后大概就明白了它的大體操作,開始自己動手繪圖。
在繪圖之前,根據需要實現的功能,選定要用到的元件,最后初步定下來一個圖樣,但是在實際繪圖過程中發現太過復雜了,又重新制定了一個圖樣。因為是第一次用這個軟件,里面很多功能都不懂,經常點出很多不懂得文件,最后不得不重新設計,導致繪圖時間大大增加。在多次實踐后我終于較為熟練的掌握里面的工具了,后面的繪圖過程也就相對來說比較輕松,找出了自己繪制元件的時候有些麻煩,不過碰到不會的就上網百度或者問問同學,其實這個繪圖過程還是挺有意思的。線路圖終于接好了,這里可以總結為三點:
第一,在繪圖之前一定要先熟練掌握Proteus這個軟件;第二,一點要把程序看懂,這樣才可以合理布線路圖;第三,在搜索元件的過程中可以大量的求助百度,里面有很多元件庫表,這樣可以大大縮短查找時間。
通過這一兩個星期的學習,掌握了Proteus一些基本的操作以及仿真,相信對以后的學習生活中都大有幫助。

2、軟件設計總結:

這次課程設計中,最重點的部分應該屬于軟件部分。剛剛學習了《微機原理與接口技術》這么課程,一切都覺得那么新鮮。自己一些想法,可以通過實踐來實現。軟件設計之前,自己大概想好了大體的思路,但是程序需要嚴格的邏輯,嚴格的語法,有時按著自己的思路去寫程序,卻總是發現錯誤,或者程序不穩定,有時是達不到預期的效果。理論和實踐還是有著很多的差距。這次課程設計中,收獲最大的是如何確定一個程序的主線。以前寫程序,就是想到哪就寫哪,寫完以后,才發現,有一個小的功能已經無法實現。如果要加入這個功能,卻需要改動整個程序,導致程序的兼容性很差。在這次設計中,我先確定了整個程序的主線。輸入密碼,對比密碼,密碼正確或密碼錯誤。然后其他程序皆在這幾個部分中實現。
比如修改密碼則在密碼正確中實現,開鎖電平也是在密碼正確中輸出;而報警電平則在密碼錯誤部分實現。由此,我就確定了整個程序的框架,剩下的就是注意一些細節的問題,一些邏輯的問題。
     經過一周的奮戰,終于還是完成了整個程序的編寫。在設計程序的過程中,我不僅對以前學過的匯編語言進行了重溫和查漏補缺,而且對程序整體的把握和細節的處理能力得到了很大的提高。畢竟看程序和寫程序是有很大區別的,只有實踐才能真正將匯編語言學到家。看到仿真的結果和題目所要求的一樣,心情倍感欣慰,同時也很有成就感。
整個程序完成了,雖然已經達到了題目的要求,但是自己覺得還可以繼續改善。用句至理名言:好作文不是寫出來的,是改出來的。我此刻只想說的是:好程序不是寫出來的,也是改出來。在以后的日子了,有空的時候可以拿出自己的程序,好好修改完善,實現更多的功能,程序進一步優化。


單片機源程序如下:
  1. IOY0         EQU   0200H           ;8255片選端口始地址
  2. MY8255_A     EQU   IOY0+00H*2      ;8255的A口地址
  3. MY8255_B     EQU   IOY0+01H*2      ;8255的B口地址
  4. MY8255_C     EQU   IOY0+02H*2      ;8255的C口地址
  5. MY8255_MODE  EQU   IOY0+03H*2      ;8255的控制寄存器地址  
  6. IOY1           EQU   0400H         ;8253片選端口始地址
  7. MY8253_COUNT0  EQU   IOY1+00H*2    ;8253計數器0端口地址
  8. MY8253_COUNT1  EQU   IOY1+01H*2    ;8253計數器1端口地址
  9. MY8253_COUNT2  EQU   IOY1+02H*2    ;8253計數器2端口地址
  10. MY8253_MODE    EQU   IOY1+03H*2    ;8253控制寄存器端口地址


  11. DATA   SEGMENT
  12. COUNT1 DB  00H  
  13. COUNT2 DB  00H    ;錯誤密碼次數
  14. DTABLE DB   3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,3FH,39H,5EH,79H,71H,00H,40H    ;鍵值表,0~F對應的7段數碼管的段位值
  15.                                                                                        ;DTABLE[11]=3FH對應鍵值11,顯示"0"
  16.                                                                                        ;DTABLE[16]=00H,數碼管熄滅
  17.                                                                                        ;DATABLE[17]=04H,顯示數碼管"-"

  18. STRING DB   01H,02H,03H,04H,05H,06H    ;初始密碼,密碼內存空間
  19. DATA   ENDS                        

  20. STACK1 SEGMENT STACK
  21.         DW 256 DUP(?)
  22. STACK1 ENDS  

  23. CODE   SEGMENT
  24.               ASSUME CS:CODE,DS:DATA,SS:STACK1

  25. START: MOV  AX,DATA               
  26.            MOV  DS,AX                                          
  27.            
  28. START1:MOV  DX,MY8255_MODE         ;初始化8255工作方式
  29.        MOV  AL,81H                 ;方式0,A口、B口輸出,C口高四位輸出,C口低4位輸入  
  30.            OUT  DX,AL

  31.        MOV DX,MY8255_C             ;開鎖電平、報警電平置0
  32.        MOV  AL,00H
  33.        OUT DX,AL

  34.        MOV  SI,0200H               ;建立緩沖區,存放要顯示的鍵值
  35.            MOV  AL,11H                 ;先初始化鍵值為11H,顯示"-"
  36.            MOV  [SI],AL
  37.            MOV  [SI+1],AL
  38.            MOV  [SI+2],AL
  39.            MOV  [SI+3],AL
  40.            MOV  [SI+4],AL
  41.            MOV  [SI+5],AL
  42.            MOV  DI,0205H   
  43.            
  44.            

  45. BEGIN:  
  46.         CALL KEYPAD                 ;鍵盤掃描
  47.         CMP AL,0CH                  ;確認鍵
  48.         JZ  RENZ
  49.         CMP AL,0AH                  ;修改密碼鍵,此處不用,返回鍵盤掃描
  50.         JZ  BEGIN
  51.         CALL PUTBUF                 ;保存按鍵值   
  52.         CALL KEYLS                  ;按鍵未彈起則繼續循環等待彈起
  53.         JMP BEGIN
  54.                                        
  55. RENZ:   CALL KEYLS                  
  56.         CALL CRCMP                   ;密碼比對
  57.         CMP CX,0FFH
  58.         JZ SHOW1
  59.         JMP SHOW2
  60. SHOW1:  CALL SHOWC                    ;密碼錯誤              
  61.             JMP START1      

  62. SHOW2: CALL SHOWO                    ;密碼正確
  63.     ;   JMP START1

  64. QUIT: HLT


  65.       
  66. KEYPAD  PROC NEAR                   ;鍵盤掃描程序
  67. BEGINk:
  68.         CALL DIS                    ;顯示刷新                     
  69.             CALL CLEAR                  ;清屏
  70.             CALL CCSCAN                 ;掃描按鍵
  71.             JNZ  GETKEY1                ;有鍵按下則跳置GETKEY1  

  72. GETKEY1:CALL DIS                    ;顯示刷新
  73.         CALL CLEAR                  ;清屏
  74.             CALL CCSCAN                 ;再次掃描按鍵
  75.             JNZ  GETKEY2                ;有鍵按下則跳置GETKEY2
  76.             JMP  BEGINk                  ;否則跳回開始繼續循環

  77. GETKEY2:MOV  CH,0FEH
  78.             MOV  CL,00H                 
  79. COLUM:  MOV  AL,CH                  ;選取一行      
  80.         MOV  DX,MY8255_A
  81.             OUT  DX,AL
  82.         MOV  DX,MY8255_C            ;讀C口,用于判斷是哪一列按鍵閉合
  83.             IN   AL,DX

  84. L1:     TEST AL,01H                 ;是否為第1列
  85.         JNZ  L2                     ;不是則繼續判斷  
  86.         MOV  AL,01H                 ;設置第1行第1列的對應的鍵值
  87.             JMP  KCODE

  88. L2:     TEST AL,02H                 ;是否為第2列
  89.         JNZ  L3                     ;不是則繼續判斷
  90.         MOV  AL,02H                 ;設置第1行第2列的對應的鍵值
  91.         JMP  KCODE

  92. L3:     TEST AL,04H                 ;是否為第3列
  93.         JNZ  NEXT                     ;不是則繼續判斷
  94.         MOV  AL,03H                 ;設置第1行第3列的對應的鍵值
  95.             JMP  KCODE


  96. KCODE:  ADD  AL,CL
  97.         JMP QUITk                   ;確定按鍵值

  98. NEXT:   ADD CL,3                                       
  99.             MOV  AL,CH
  100.             TEST AL,08H                 ;檢測是否掃描到第4行
  101.             JZ   KERR                   ;是則跳回到開始處
  102.         ROL  AL,1                   ;沒檢測到第4行則準備檢測下一列
  103.             MOV  CH,AL
  104.             JMP  COLUM
  105. KERR:   JMP  BEGINk
  106. QUITk:  RET
  107. KEYPAD ENDP

  108. CCSCAN  PROC NEAR                   ;掃描是否有按鍵閉合子程序
  109.         MOV  AL,00H                              
  110.         MOV  DX,MY8255_A            ;將4行全選通,
  111.             OUT  DX,AL
  112.         MOV  DX,MY8255_C
  113.         IN   AL,DX                  ;讀C口
  114.             NOT  AL
  115.         AND  AL,0FH                 ;取出C口值的反值
  116.            RET
  117. CCSCAN ENDP


  118. KEYLS  PROC  NEAR                  ;按鍵是否彈起子程序
  119.              PUSH AX                     
  120. KON:   
  121.         CALL DIS                    ;顯示刷新
  122.             CALL CLEAR                  ;清屏
  123.             CALL CCSCAN                 ;掃描按鍵,判斷按鍵是否彈起
  124.             JNZ  KON                    ;未彈起則繼續循環等待彈起
  125.             POP  AX   
  126.             RET
  127. KEYLS ENDP

  128. CLEAR PROC NEAR                    ;清除數碼管顯示子程序
  129.        MOV  DX,MY8255_B            ;段位置0即可清除數碼管顯示   
  130.        MOV  AL,00H
  131.        OUT  DX,AL
  132.            RET
  133. CLEAR ENDP

  134. DIS PROC NEAR                      ;顯示鍵值子程序
  135.        PUSH AX                   ;以緩沖區存放的鍵值為鍵值表偏移找到鍵值并顯示
  136.            MOV  SI,0200H                              
  137.            MOV  DL,0DFH
  138.            MOV  AL,DL
  139. AGAIN: PUSH DX
  140.        MOV  DX,MY8255_A
  141.        OUT  DX,AL                  ;選通一個數碼管   
  142.        MOV  AL,[SI]                ;取出緩沖區中存放鍵值                  
  143.        MOV  BX,OFFSET DTABLE
  144.            AND  AX,00FFH
  145.            ADD  BX,AX                  
  146.            MOV  AL,[BX]                ;將鍵值作為偏移和鍵值基地址相加得到相應的鍵值
  147.        MOV  DX,MY8255_B
  148.            OUT  DX,AL                  ;寫入數碼管A~Dp
  149.            CALL DALLY
  150.            INC  SI                     ;取下一個鍵值
  151.        POP  DX
  152.        MOV  AL,DL
  153.            TEST AL,01H                 ;判斷是否顯示完?
  154.        JZ   OUT1                   ;顯示完,返回
  155.            ROR  AL,1            
  156.            MOV  DL,AL
  157.            JMP  AGAIN                  ;未顯示完,跳回繼續
  158. OUT1:  POP  AX                     
  159.            RET
  160. DIS ENDP


  161. PUTBUF PROC NEAR                   ;保存鍵值子程序   

  162.        MOV  SI,DI
  163.        MOV  [SI],AL
  164.            DEC  DI
  165.            CMP  DI,01FFH
  166.            JNZ  GOBACK
  167.            MOV  DI,0205H
  168. GOBACK: RET
  169. PUTBUF ENDP   

  170. CRCMP PROC NEAR   ;密碼比對子程序
  171.    
  172.       
  173.         MOV SI,0205H
  174.         MOV DI,OFFSET STRING
  175.         MOV CX,0                     ; 密碼正確,則輸出CX=00H,為密碼正確的標志
  176.         MOV AL,[SI]
  177.         MOV BL,[DI]
  178.         CMP AL,BL
  179.         JZ  NEXT1
  180.         JMP NEXT6
  181. NEXT1: MOV SI,0204H
  182.        MOV DI,OFFSET STRING
  183.        MOV AL,[SI]
  184.        MOV BL,[DI+1]
  185.        CMP AL,BL
  186.        JZ NEXT2
  187.        JMP NEXT6
  188. NEXT2:
  189.        MOV SI,0203H
  190.        MOV DI,OFFSET STRING
  191.        MOV AL,[SI]
  192.        MOV BL,[DI+2]
  193.        CMP AL,BL
  194.        JZ NEXT3
  195.        JMP NEXT6  
  196. NEXT3:
  197.        MOV SI,0202H
  198.        MOV DI,OFFSET STRING
  199.        MOV AL,[SI]
  200.        MOV BL,[DI+3]
  201.        CMP AL,BL
  202.        JZ NEXT4
  203.        JMP NEXT6
  204. NEXT4:
  205.        MOV SI,0201H
  206.        MOV DI,OFFSET STRING
  207.        MOV AL,[SI]
  208.        MOV BL,[DI+4]
  209.        CMP AL,BL
  210.        JZ NEXT5
  211.        JMP NEXT6  
  212. NEXT5:
  213.        MOV SI,0200H
  214.        MOV DI,OFFSET STRING
  215.        MOV AL,[SI]
  216.        MOV BL,[DI+5]
  217.        CMP AL,BL
  218.        JZ QUITER
  219.        JMP NEXT6
  220. NEXT6: MOV CX,0FFH                ;密碼錯誤,則CX=0FFH為密碼錯誤的標志
  221. QUITER:RET
  222. CRCMP ENDP  

  223.   
  224. SHOWO PROC NEAR                    ;開鎖子程序
  225.         MOV  SI,0200H              ;顯示00
  226.             MOV  AL,00H                 
  227.             MOV  [SI],AL
  228.             MOV  [SI+1],AL
  229.             MOV  AL,10H
  230.             MOV  [SI+2],AL
  231.             MOV  [SI+3],AL
  232.             MOV  [SI+4],AL
  233.             MOV  [SI+5],AL
  234.             MOV  DI,0205H   
  235.             
  236.            MOV  DX,MY8255_C             ;輸出開鎖電平
  237.        MOV  AL,010H                  
  238.            OUT  DX,AL

  239. LOOP21:
  240.         CALL KEYPAD   
  241.         CMP AL,0CH                  ;返回鍵,退出開鎖子程序
  242.         JZ LOOP22  
  243.         CMP AL,0AH                  ;修改密碼鍵
  244.         JZ LOOP23
  245.         JMP LOOP21
  246. LOOP22: CALL KEYLS   
  247.         JMP  QUITSHO
  248. LOOP23: CALL KEYLS                  ;修改密碼,數碼管全滅,用于與輸入密碼區別
  249.         MOV  SI,0200H  
  250.         MOV  AL,10H                 
  251.         MOV  [SI],AL
  252.             MOV  [SI+1],AL
  253.             MOV  DI,0205H
  254.             CALL CHANGECR                ;調用修改密碼子程序
  255. QUITSHO: MOV DX,MY8255_C             ;開鎖電平置0
  256.         MOV  AL,00H
  257.         OUT DX,AL
  258. RET
  259. SHOWO ENDP

  260. CHANGECR PROC NEAR                 ;修改密碼子程序
  261. CHG1:    CALL KEYPAD                  
  262.          CMP AL,0CH
  263.          JZ  CHG2
  264.          CALL PUTBUF
  265.          CALL PUTBUFCR
  266.          CALL KEYLS
  267.          JMP  CHG1
  268. CHG2:    CALL KEYLS
  269.          CALL RING                ;確認則發出"滴"的確認音
  270.              CALL DALLYS  
  271.              RET
  272. CHANGECR ENDP

  273. PUTBUFCR  PROC NEAR        ;保存修改后的密碼子程序
  274.       XOR BX,BX
  275.       MOV BL,[COUNT1]
  276.       MOV STRING[BX],AL   ;放入密碼內存空間STRING
  277.       MOV BL,[COUNT1]
  278.       INC BL
  279.       MOV [COUNT1],BL  
  280.       CMP BL,06H
  281.       JNZ  GOBACKCR  
  282.       MOV BL,0
  283.       MOV [COUNT1],BL
  284. GOBACKCR: RET
  285. PUTBUFCR  ENDP

  286. SHOWC PROC NEAR                    ;閉鎖子程序
  287.         
  288.         MOV  SI,0200H              ;顯示FF
  289.             MOV  AL,0FH                 
  290.             MOV  [SI],AL
  291.             MOV  [SI+1],AL
  292.             MOV  AL,10H
  293.             MOV  [SI+2],AL
  294.             MOV  [SI+3],AL
  295.             MOV  [SI+4],AL
  296.             MOV  [SI+5],AL  
  297.             MOV  DI,0205H
  298.             
  299.             MOV  DX,MY8255_A            ;顯示FF
  300.         MOV  AL,0CFH
  301.         OUT  DX,AL
  302.         MOV  DX,MY8255_B
  303.         MOV  AL,71H
  304.         OUT  DX,AL     
  305.                                     ;發出三聲"滴"聲
  306.             CALL RING  
  307.             CALL DALLYS
  308.             CALL DALLYS
  309.             CALL DALLYS
  310.             CALL RING  
  311.             CALL DALLYS
  312.             CALL DALLYS
  313.             CALL DALLYS
  314.             CALL RING  
  315.             CALL DALLYS
  316.             CALL DALLYS
  317.             CALL DALLYS
  318.                                        
  319.             MOV BL,[COUNT2]              ;取出密碼錯誤次數,并判斷是否已經達到6次
  320.         INC BL
  321.         CMP BL,06H
  322.         JZ  LOOP31
  323.         MOV [COUNT2],BL              
  324.         JMP LOOP32  
  325.         
  326. LOOP31: MOV  DX,MY8255_C             ;已達到六次,則輸出報警電平
  327.         MOV  AL,020H
  328.         OUT  DX,AL  
  329.         MOV  BL,0                     ;密碼錯誤次數清0
  330.         MOV  [COUNT2],BL        
  331.    
  332. LOOP32: CALL KEYPAD
  333.         CMP AL,0CH
  334.         JZ  LOOP33
  335.         JMP LOOP32
  336.         
  337. LOOP33:CALL KEYLS              ;未彈起則繼續循環等待彈起
  338.          RET
  339. SHOWC ENDP


  340. RING PROC NEAR                  ;發音子程序
  341.      PUSH AX
  342.                
  343.          MOV  DX,MY8253_MODE         ;初始化8253工作方式
  344.      MOV  AL,36H                 ;計數器0,方式3  
  345.          OUT  DX,AL
  346.       
  347.       MOV AX,0020H         
  348.       MOV DX,MY8253_COUNT0
  349.       OUT DX,AL                   ;裝入計數初值
  350.       MOV AL,AH
  351.       OUT DX,AL
  352.       CALL DALLYS
  353.       POP AX
  354. QUITRI: MOV DX,MY8253_MODE          ;退出時設置8253為方式2,OUT0置1
  355.         MOV AL,34H   
  356.         OUT DX,AL
  357.         
  358. RING ENDP  
  359.       

  360. DALLYS PROC NEAR                      ;8253延時子程序

  361. D1S:   MOV AX,0FFFH
  362. D2S:   DEC AX
  363.       JNZ D2S
  364.       RET
  365. DALLYS ENDP
  366.    
  367. DALLY PROC NEAR                    ;,8255軟件延時子程序
  368.        PUSH CX
  369.        MOV  CX,000FH
  370. D1:    MOV  AX,000FH
  371. D2:    DEC  AX
  372.            JNZ  D2
  373.            LOOP D1
  374.            POP  CX
  375.            RET
  376. DALLY ENDP

  377. CODE ENDS
  378.       END START
復制代碼
0.png

所有資料51hei提供下載:
http://m.izizhuan.cn/bbs/dpj-142463-1.html



評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:569425 發表于 2019-6-22 14:48 | 顯示全部樓層
請問一下,您確定您的的程序沒有問題嗎?我仿真為啥不可以,還有請問你的這密碼是程序設定還是仿真按鍵設定?
回復

使用道具 舉報

ID:658904 發表于 2019-12-8 16:15 | 顯示全部樓層
作者有Proteus仿真圖嗎?
回復

使用道具 舉報

ID:768803 發表于 2020-6-10 02:44 | 顯示全部樓層
fighting123 發表于 2019-6-22 14:48
請問一下,您確定您的的程序沒有問題嗎?我仿真為啥不可以,還有請問你的這密碼是程序設定還是仿真按鍵設定 ...

我也不能仿真...準確來說是無法成功進行操作
回復

使用道具 舉報

ID:788094 發表于 2020-6-26 00:07 | 顯示全部樓層
軟件仿真失敗誒
回復

使用道具 舉報

ID:870495 發表于 2020-12-29 19:14 | 顯示全部樓層
有完整的總圖嗎?清晰一點的
回復

使用道具 舉報

ID:870495 發表于 2020-12-29 19:14 | 顯示全部樓層
有仿真圖嗎?
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
北条麻妃国产九九精品视频| 性欧美.com| 亚洲精品久久久久久下一站| 日韩欧美成人免费视频| 国产亚洲精品aa| 懂色中文一区二区在线播放| 蜜乳av一区二区三区| 亚洲精选91| 欧美婷婷在线| 欧美1区2区视频| 久久视频在线| 久久在线播放| 91日韩免费| 一区二区三区四区日韩| 久久一区91| 久久久久久久久久久久久久久久久久 | 中文字幕亚洲视频| 久久精品视频在线看| www.av亚洲| 欧美xxxx做受欧美护士| 日本一本在线免费福利| 91精品专区| 69av亚洲| 伊人影院蕉久影院在线播放| 国产乱妇乱子在线播视频播放网站| 成人影院在线看| 免费不卡av| 免费电影日韩网站| 青青草国产一区二区三区| 日韩一区二区三区四区五区 | 毛片在线看网站| 五月婷婷在线观看| 黄色网页网址在线免费| 欧美14一18处毛片| 88xx成人免费观看视频库| 国产精品亚洲成在人线| 国产一区二区| 牛牛精品在线| 三级成人黄色影院| 国产一区二区视频在线看| 欧美大片网址| 91欧美国产| 亚洲一区日韩| 国产中文一区二区三区| 成人av网站免费| 欧美激情一区三区| 五月综合激情婷婷六月色窝| 欧美三级视频在线播放| 精品av久久707| 久久精品国产99国产精品澳门| 精品少妇v888av| 国产主播欧美精品| 欧美日韩在线精品| 国产成人亚洲综合无码| 国产精品乱码久久久久| 成年人的黄色片| 69精品久久久| a级片在线播放| 久久夜色邦福利网| 成年人免费影院| 调教在线观看| av成人 com a| 久久99国产精品久久99大师| 亚洲深深色噜噜狠狠爱网站| 另类的小说在线视频另类成人小视频在线 | 97涩涩爰在线观看亚洲| 国产欧美日韩中文字幕| 欧美精品在线一区| 免费在线观看日韩视频| 成人h动漫精品一区| 一区二区三区免费高清视频| 国产夫绿帽单男3p精品视频| 免费观看四虎精品成人| 九九精品在线观看视频| 亚洲视频在线观看一区二区| 日本视频中文字幕| 天天搞夜夜操| 粉嫩一区二区三区国产精品| 香蕉视频亚洲一级| 精品国产99| 青娱乐精品视频| 国产欧美精品国产国产专区 | 永久免费av片在线观看全网站| 成人福利视频| 精品国产乱码久久久久久蜜坠欲下| 亚洲人体偷拍| 久久精品在这里| 欧美视频精品在线| 久久这里只有精品视频首页| 成人欧美一区二区三区黑人免费| www.日本在线播放| 免费一级黄色录像| 亚洲精品国产精品乱码不卡| 天天看天天操| av今日在线| 日韩av自拍| 国产高清不卡一区| 色综合天天视频在线观看 | 婷婷成人av| 国内综合精品午夜久久资源| 久久亚洲一级片| 欧美在线视频全部完| 日韩有码在线播放| 国产有色视频色综合| 亚洲欧美日韩综合网| 精品在线免费观看视频| 欧美另类极品videosbest视| 国产香蕉在线| 欧美精品中文| 国产v日产∨综合v精品视频| 欧美中文字幕久久| 国内久久久精品| 亚洲日本一区二区三区在线不卡| 亚欧精品在线视频| 欧美成人aaa片一区国产精品| 9.1人成人免费视频网站| 又黄又爽的视频在线观看| 精品久久福利| 日本亚洲三级在线| 五月激情久久久| xnxx国产精品| 亚洲精品福利资源站| 91精品久久久久久久久久入口| 国产视频一视频二| 国产精品第一页在线观看| 国产麻豆免费| 91精品久久久久久粉嫩| 国产精品久久久久久麻豆一区软件| 91麻豆国产在线观看| 日韩va亚洲va欧洲va国产| 国产福利久久精品| 亚洲精品久久一区二区三区777| 国产精品嫩草影院桃色| 中文在线а天堂av| 青青草原在线亚洲| 久久久青草青青国产亚洲免观| 精品视频久久久| 久久人人九九| 欧美18—19性高清hd4k| 欧美色图自拍| 亚洲欧美小说色综合小说一区| 一本久久综合| 在线观看区一区二| 成人h视频在线| 年下总裁被打光屁股sp| xxxxx69·hd| 欧美xxxx免费虐| 久久只有精品| 日韩亚洲欧美在线| 你懂的网址一区二区三区| 一级黄色片网址| 轻轻草在线视频| 精品国模一区二区三区欧美| caoporm超碰国产精品| 国产一区二区成人| 欧美一级中文字幕| 天堂免费在线视频| 四虎精品在永久在线观看 | 精品国产不卡一区二区| 成人精品国产一区二区4080| 日韩经典中文字幕在线观看| 亚洲成人第一| 好吊操这里只有精品| 午夜丝袜av电影| 久久看人人摘| 日韩欧美亚洲一二三区| 成人久久久久爱| 国产伦理片在线观看| 免费午夜一级| 久久365资源| 一区二区三区**美女毛片| 国产成人亚洲综合91| 国产精品久久久久久搜索| 亚洲视频一二三四| 国产精品国产av| 日本在线视频网| 99精品久久| 欧美一卡二卡三卡四卡| 天堂社区 天堂综合网 天堂资源最新版 | 精品动漫av| 91精品国产91热久久久做人人 | 精品国产九九九| 波多野结衣在线播放| 国产综合一区二区| 亚洲一二三在线| 久久无码高潮喷水| 天天综合网天天综合| 超碰一区二区| 久久精品人人做| 国产精品高潮粉嫩av| 欧美日韩高清丝袜| 福利视频午夜| 亚洲视屏一区| 日韩成人小视频| 国产av无码专区亚洲精品| 青青草社区在线| 亚洲精品毛片| 亚洲精品福利视频网站| 91久久嫩草影院一区二区| 国产乱子轮xxx农村| 亚洲1024| 日日夜夜免费精品| 色偷偷综合社区| 欧美国产在线一区| 美女网站免费观看| 欧美成人milf| 欧美精品一区视频| 免费在线激情视频| 国产馆手机在线观看| 黄色美女久久久| 色天天综合色天天久久| 伊人av成人| 色欲久久久天天天综合网| 日韩av懂色| 亚洲一区二区三区三| 久久久久久久有限公司| 影音先锋国产资源| 亚洲精品国产嫩草在线观看| 久久一区亚洲| 久久99久久99精品中文字幕| 一本色道久久综合亚洲精品图片| 交视频在线观看国产| 亚洲中字在线| 久久久久北条麻妃免费看| 北岛玲一区二区| 亚洲热app| 国内精品视频一区二区三区八戒| 国内揄拍国内精品少妇国语| 黄色av片三级三级三级免费看| jizzjizz在线| 99伊人成综合| 久久999免费视频| 特黄一区二区三区| 国产在线更新| 中文字幕一区二区三区精华液 | 久久久噜噜噜久噜久久综合| 国产精品旅馆在线| 国产麻豆剧传媒精品国产av| 国内精品卡一卡二卡三新区| 另类欧美日韩国产在线| 国产成人拍精品视频午夜网站| 久久婷婷一区二区| 国产理论在线| 亚洲一区二区高清| 97超碰人人爱| 91精品国产91久久久久久三级| 中文字幕av亚洲精品一部二部| 伊人久久久久久久久久久| 中文字幕a在线观看| 国产二区视频在线观看| 国产亚洲欧美激情| 日韩欧美一区中文| av影片在线播放| 香蕉网站在线| 久久久久久亚洲综合影院红桃| 久久av二区| 久草视频免费在线观看| 香蕉久久网站| 欧美国产中文字幕| 久久精品女人毛片国产| 你懂得影院夜精品a| 欧洲日韩一区二区三区| 中文字幕22页| 日韩资源在线| 中文字幕av一区二区三区免费看| 日韩欧美手机在线| 国产高清大尺度一区二区不卡| 黄色亚洲免费| 日韩免费观看高清| 国产精品九九九九| 国内精品视频在线观看| 精品国偷自产在线视频| 精品99久久久久成人网站免费| 亚洲第一会所001| 在线播放日韩导航| 精品人妻一区二区免费| 蜜桃av在线免费观看| 午夜私人影院久久久久| 亚洲人辣妹窥探嘘嘘| 全色精品综合影院| 中文字幕在线不卡| 91成人在线观看喷潮教学| 国产黄色免费电影| 久久久亚洲精品一区二区三区 | 极品色影院av| 风间由美一区二区三区在线观看| 久久一区二区三区av| 国产原创在线播放| 看片的网站亚洲| 久久av免费观看| 色在线视频免费| 国产精品自拍网站| 日韩在线国产| blackedav金发美女大战黑人| 国产成人精品一区二 | 日本电影二区| 久久一二三四| 国产一区在线免费观看| 国产美女做爰免费视频软件| 美国欧美日韩国产在线播放| 国产麻豆乱码精品一区二区三区| 欧美成人精品福利在线视频| 日韩精品一二三四| 久久艹中文字幕| 免费一级片网址| 久久影院视频免费| 日本欧美黄色片| 欧美理论在线观看| 欧美日韩精品在线| 国产草草浮力影院| 性高爱久久久久久久久| 精品亚洲夜色av98在线观看| 国产一级视频在线| 欧美调教视频| 欧美中文字幕在线观看| 亚洲成色在线综合网站2018站| 久久一区精品| 亚洲一区二区三区午夜| 免费播放av| 亚洲国产欧美日韩另类综合 | av电影成人| 国产一卡2卡3卡四卡网站| 国产激情91久久精品导航 | 两女双腿交缠激烈磨豆腐| 欧美xxxhd| 亚洲色图国产精品| 怡红院男人天堂| 麻豆成人在线| 亚洲欧美丝袜| 香蕉97视频观看在线观看| 色中色一区二区| 日韩va亚洲va欧美va清高| 精品久久中文| 国产精品国产亚洲精品看不卡15| eeuss草民免费| 亚洲www啪成人一区二区麻豆| 亚洲xx在线| 久久这里只精品| 欧美图片激情小说| 日本女优爱爱视频| 中文字幕中文字幕在线中一区高清| 国产精品无码自拍| 色戒汤唯在线观看| 国产亚洲精品久久久久久| 亚洲av无码不卡| 国内综合精品午夜久久资源| 欧美日韩综合网| 校园春色欧美| 欧美一级生活片| 亚洲 小说区 图片区| 校园激情久久| 中国 免费 av| 国产黄大片在线观看画质优化| 精品国精品自拍自在线| 最近中文字幕免费在线观看| 国产精品嫩草99av在线| 手机成人av在线| 天天在线视频色| 亚洲激情小视频| 国产精品久久久久久久成人午夜| 久久精品电影| 亚洲精品欧美精品| 日本韩国在线视频爽| 亚洲人成免费电影| 99久久亚洲精品日本无码| 91tv亚洲精品香蕉国产一区| 欧美精品情趣视频| 男人网站视频| 中文字幕免费不卡在线| 又大又长粗又爽又黄少妇视频| 超碰精品在线观看| 国产久一一精品| 久久mv成人精品亚洲动漫| 一本高清dvd不卡在线观看| 美国黄色片视频| 在线精品在线| 欧美一级免费在线观看| 成av人片在线观看www| 日韩在线视频导航| 国产视频中文字幕| 国产精品天美传媒沈樵| 国产十八熟妇av成人一区| 久久悠悠精品综合网| 91九色蝌蚪成人| 在线看三级网站视频| 欧美日韩另类一区| 精品国产一区二区三区四| 久久综合伊人| 亚洲精品成人在线播放| 国产精久久一区二区| 粉嫩av免费一区二区三区| 中文视频在线| 国产亚洲精品va在线观看| 五月婷婷一区二区三区| 美腿丝袜亚洲色图| 香蕉视频xxxx| 视频小说一区二区| 日韩欧美亚洲区| 青草在线视频| 国产成人精品视|