freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

十位數字密碼鎖電路設計-資料下載頁

2024-12-06 01:29本頁面

【導讀】單片機廣泛應用于生活生產中的各個自動控制領域,單片機的應用有利于產品的小型化、智能。本文從經濟實用的角度出發(fā),從加深對單片機理論的理解和熟練電子設計過程的角度出發(fā),報提示的十位數字密碼鎖。經實驗證明,該密碼鎖具有設計合理,簡單易行,成本低,安全實用等。特點,適合居家住宅、辦公用鎖等要求,具有較高實用價值。

  

【正文】 時有一個地址指針,指向輸入的密碼臨時要存儲的位置,因此要實現密碼刪除也很簡單,因為用外中斷 0 來實現密碼刪除,所以在外中斷 0 的中斷服務程序里面將待輸入密碼位數加 1,把存儲地址減一即下一次輸入時覆蓋即可。同時在顯示器上把光標前顯示的一位數值寫入空格,并將光標移到空格的左邊,下一次 輸入時及在此空格上顯示下一次輸入的數值。 修改密碼其實就是一個存儲的過程,此設計中修改密碼通過外中斷 1 來完成的。即再外中斷 1的中斷服務程序中調用鍵盤掃描和查詢識別程序,輸入十位數字后將它們覆蓋存儲在密碼存儲區(qū)域,即實現了密碼修改。輸入新密碼部分這部分程序和主程序里面的輸入密碼程序類似,都是一位一位 18 的輸入密碼并臨時存儲,輸入完后接到確認鍵命令時,把輸入的十位密碼存儲于固定密碼存儲區(qū)域(覆蓋舊密碼)。這樣就實現了密碼修改。還有就是,當修改密碼不成功時調用顯示“ FAIL”子程序在顯示器上顯示 FAIL表示未能修改成 功,修改成功時調用顯示“ OK”子程序在顯示器上顯示 OK 表示修改密碼成功。 刪除密碼和修改密碼流程圖如圖 42所示。 外中斷 0 服務程序 是否已有輸入 存儲地址指針減 1 需輸入位數加 1 光標左移 1 位 寫入空格鍵 光標左移 1 位 中斷返回 是 否 外中斷 1 服務程序 調用顯示 c r e a t e 程序 調用鍵盤掃描程序 調用按鍵識別程序 鍵碼入棧 調用鍵盤掃描程序 鍵碼出棧 是否為功能鍵 是否已輸入十位 修改密碼 調用顯示“ OK ”程序 中斷返回 有鍵按下 無鍵按下 按鍵釋放 按鍵未放 是 否 是 否 調用顯示“ F A I L ”程序 是否已輸入十位 存儲 顯示 否 是 累加器 A 出棧 累加器 A 入棧 圖 42 刪除密碼 (左) 和修改密碼流程圖 (右) 鍵盤掃描和按鍵識別 程序 辨別鍵盤中有無鍵按下,由單片機 I/O 口向鍵盤送全掃描字,然后讀入行線狀態(tài)來判斷。方法是: 先 向 P1口 輸出全掃描字 0F0H,把全部 行 線置為低電平,然后將 P1口狀態(tài) 讀入累加器 A中 并 將低四位屏蔽( 和 0F0H做與運算 )保留列線狀態(tài) 后將此時的值存起來,再對 P1口輸出 全掃描字 0FH把全部列線置為低電平,并再次將 P1口狀態(tài)讀入累加器 A中,同理再將此讀入值 的 高四位屏蔽 (與0FH做與運算) 保留行線狀態(tài),最后將前后兩次獲得的值通過或運算(列線狀態(tài)和行線狀態(tài)合并)后,判斷此值是否等于 0FFH,如果不等于 0FFH則可以判定有按鍵按下( 總會有一根 列( 行 ) 線電平被拉至低電平從而使 列( 行 ) 線不全為 1) 。 否則則可判定無鍵按下。 檢查到有鍵按下后就轉到 按鍵識別 程序 。 此次設計將 P1口的低四位作為行線,高四位作為列線, 19 按鍵識別就是通過向 P1口送列掃描字 逐列掃描, 并記錄下當前列號, 掃描字的 初始值為 11110111,開始掃描時將掃描字向左循環(huán)移一位送入 P1口,使第 0列置零其他列和行都是高電平,然后從第 0行開始逐行檢測各行的電平狀態(tài),如果檢測到某一行為低電平,那么按下的鍵就在當前掃描的列與此行 交點處,此按鍵的鍵碼值 =行 號 4+列 號 。通過這樣的方法逐列掃描進而計算出按鍵鍵碼。 P 1 = 0 F 0 H 置行線低電平 讀 P1 口送入累加器 A A a n l 0 F 0 H (保留列線狀態(tài)) A 中內容送 B 保存 P 1 = 0 F H 置列線低電平 讀 P1 口送入累加器 A A a n l 0 F H (保留行線狀態(tài)) A= A o r l B 返回 R 2 = 1 1 1 1 0 1 1 1 初始化掃描碼 掃描碼循環(huán)左移一位存入 R2 掃描碼送入累加器 A 送掃描碼給 P1 口 P1 口狀態(tài)讀入累加器 A A o r l 0 F 0 H 屏蔽列線狀態(tài) A = 0 F F H ? A C C . 0 = 1 ? A C C . 1 = 1 ? A C C . 2 = 1 ? 行地址 =3 A= 行地址 4 A = A + 列地址 返回 不在此列列地址加 1 是 否 列地址 =4 ? 否 是 是 是 是 行地址 =0 行地址 =1 行地址 =2 否 否 否 列地址( R4 ) =0 圖 43 鍵盤掃描(左)和按鍵識別(右)程序流程圖 密碼比較 和顯示 程序 密碼比較是通過邏輯運算來完成的。將輸入的十位密碼按對應順序與正確的密碼依次做異或運算,如果輸入某位密碼與相應的正確密碼相同的話,那么做異或運算后的結果應該為 0,不相同則 20 為 1,因此,將相對應的十對密碼(輸入的密碼和正確的密碼)做異或運算的十個結果做或運算得到最終結果,如果有一個密碼沒輸入正確那么最終比較結果就會為 1,十個密碼全部正確,最終比較結果為 0。比較完后將此結果送到 , 1,按下開鎖鍵后驅動開鎖指示發(fā)個二極管 D1 點亮,并且蜂鳴器不會鳴響。否則的話, 口將是高電平,按下開鎖鍵后開鎖指示發(fā)光二極管不會亮,并且蜂鳴器會鳴響。 密碼比較相對比較簡單, 這里就不在詳細介紹了,具體程序段詳見附錄中的程序代碼。 密碼顯示以及界面字符顯示就是向 1602 液晶顯示器寫指令或數據的過程。 1602 液晶顯示器是靜態(tài)顯示,它只有 11條指令,第三章中已作了詳細介紹,使用比較簡單。這里以顯示“ OK”子程序 為例介紹一下顯示的具體操作過程。如圖 44 所示 ,左邊為寫命令子程序流程,中間是些數據子程序流程,右邊是顯示“ OK”子程序流程圖。 累加器 A= 0 1 H ( 清屏 指令 ) 調用 寫 數據 子程序 累加 器 A= 8 7H ( 設置 地址 從 第一 行 第 8 列 開始 顯示 ) 調用 檢查 忙 子程序 E= 0 返回 調用 寫 指令 程序 將 O 的 ASC Ⅱ 碼 送 入 A 將 K 的 ASC Ⅱ 碼 送 入 A 調用 寫 數據 子程序 RS = 0 RW = 0 E= 1 A 中 指令 送 P2 口 E= 0 延時 返回 調用 檢查 忙 子程序 E= 0 RS = 1 RW = 0 E= 1 A 中 數據 送 P2 口 E= 0 延時 返回 圖 44 寫命令 (左) 和寫數據 (中) 及顯示“ OK” (右) 程序流程 圖 其他顯示 程序,如顯示 “ WELCOME”、“ FAIL”等子程序都與 44中顯示“ OK”子程序類似,輸入時顯示密碼更簡單,因為 一次 只顯示一個字符 。整個完整的軟件程序見附錄。 21 第 5 章 調試仿真 用 Keil 軟件進行編譯、連接 Keil uVision2 IDE 是美國 Keil Software 公司出品的 51 系列單片機 C 語言 集成 開發(fā)系統(tǒng),使用接近于傳統(tǒng) c 語言的語法來開發(fā), 易學易用, 而且大大的提高了工作效率和項目開發(fā)周期 ,他還能嵌入匯編,您可以在關鍵的位置嵌入,使程序達到接近于匯編的工作效率。 Keil uVision2 IDE 軟件 提供豐富的庫函數和功能強大的集成開發(fā)調試工具,全 Windows 界面,使您能在很短的時間內就能學會使用 它 來開發(fā)您的單片機 應用程序 。 另外重要的一點,只要看一下編譯后生成的匯編代碼,就能體會到 Keil uVision2 IDE 生成的目標代碼效率非常之高,多數語句生成的匯編代碼很緊湊,容易理解。 另外, Keil uVision2 IDE 支持 C 語言程序,也 支持 匯編語言程序。 首先用 Keil建立項目文件,在對匯編程序進行編譯之前先將程序文件用 .asm存盤。然后將 asm程序文件添加到建立的項目中。 由于是匯編語言程序,注 意把項目中自動添加的 文件刪除,否則編譯時會出錯。在編譯、連接前注意選擇 Project菜單下的 Options for Target‘ Target1’命令,選擇 Output選項卡,在 Create Executable選項前打鉤,以選擇生成可執(zhí)行文件 HEX文件。 然后選擇 Project菜單下的 Built Target命令進行編譯、連接。編譯、連接情況如圖 51. 圖 51 編譯、連接顯示圖 當項目編譯、連接成功后,就可以 運行它來觀察結果,如果有程序有錯誤,在下面的 Build 選項卡中會顯示錯誤 或者警告提示,可以根據提示修改程序。另外還可以用 Debug菜單下的 Start/Stop Debug Session命令啟動各種方式的運行過程,用 Debug下的 Go可以聯系運行, Step單步運行(包括子函數), Step Over單 步運行但子函數一步完成 ??梢杂?View菜單調出各種輸出窗口觀察結果。最后 Stop running命令停止運行,再用 Start/Stop Debug Session命令 結束 運行調試。 22 用 Proteus 軟件進行仿真 Proteus簡介 Proteus 軟件是英國 Labcenter electronics 公司出版的 EDA 工具軟件。它不僅具有其它 EDA工具軟件的仿真功能,還能仿真單片機及外圍器件。它是目前最好的仿真單片機及外圍器件的工具。雖然目前國內推廣剛起步,但已受到單片機愛好者、從事單片機教學的教師、致 力于單片機開發(fā)應用的科技工作者的青睞。 Proteus 是世界上著名的 EDA 工具 (仿真軟件 ),從原理圖布圖、代碼調試到單片機與外圍電路協同仿真,一鍵切換到 PCB 設計,真正實現了從概念到產品的完整設計。是目前世界上唯一將電路仿真軟件、 PCB 設計軟件和虛擬模型仿真軟件三合一的設計平臺,其處理器模型支持 805 HC1 PIC10/12/16/18/24/30/DsPIC3 AVR、 ARM、 8086和 MSP430等, 2021年即將增加 Cortex和 DSP系列處理器,并持續(xù)增加其他系列處理器模型。在編譯方面,它也支 持 IAR、 Keil和 MPLAB等多種 編譯器 。 1. Proteus軟件具有其它 EDA工具軟件(例: multisim)的功能。這些功能是: ( 1)原理布圖 。 ( 2) PCB自動或人工布線 ( 3) SPICE電路仿真 2. 革命性的特點 : ( 1)互動的電路仿真 用戶甚至可以實時采用諸如 RAM, ROM,鍵盤,馬達, LED, LCD, AD/DA,部分 SPI 器件,部分IIC器件。 ( 2)仿真處理器及其外圍電路 可以仿真 51系列、 AVR、 PIC、 ARM、等常用主流單片機。還可以直接在基于原理圖的虛擬原型 上編程,再配合顯 示及輸出,能看到運行后輸入輸出的效果。配合系統(tǒng)配置的虛擬邏輯分析儀、示波器等, Proteus建立了完備的電子設計開發(fā)環(huán)境。 3. 資源豐富 : ( 1) Proteus 可提供的仿真元器件資源:仿真數字和模擬、交流和直流等數千種元器件,有 30多個元件庫。 ( 2) Proteus 可提供的仿真儀表資源 :示波器、邏輯分析儀、虛擬終端、 SPI 調試器、 I2C 調試器、信號發(fā)生器、模式發(fā)生器、交直流電壓表、交直流電流表。理論上同一種儀器可以在一個電路中隨意的調用。 ( 3)除了現實存在的儀器外, Proteus還提供了一個圖形顯示 功能,可以將線路上變化的信號,以圖形的方式實時地顯示出來,其作用與示波器相似,但功能更多。這些虛擬儀器儀表具有理想的參數指標,例如極高的輸入阻抗、極低的輸出阻抗。這些都盡可能減少了儀器對測量結果的影響。 ( 4) Proteus 可提供的調試手段 Proteus 提供了比較豐富的測試信號用于電路的測試。這些測試信號包括模擬信號和數字信號。 4. 電路仿真 : 在 PROTEUS繪制好原理圖后,調入已編譯好的目標代碼文件: *.HEX,可以在 PROTEUS的原理圖中看到模擬的實物運行狀態(tài)和過程。 PROTEUS 是單片機 教學和開發(fā) 的先進助手。 PROTEUS 不僅可將許多單片機實例功能形象化,也可將許多單片機實例運行過程形象化。前者可在相當程度上得到實物演示實驗的效果,后者則是實物演示實驗難以達到的效果。 它的元器件、連接線路等卻和傳統(tǒng)的單片機實驗硬件高度對應。這在相當程度上替代了傳統(tǒng)的單片機實驗教學的功能,例:元器件選擇、電路連接、電路檢測、電路修改、軟件調試、運行結果等。實踐證明,在使用 Proteus 進行系統(tǒng)仿真開發(fā)成功之后再進行實際制作,能極大提高單片機系統(tǒng)設計效率。因此, Proteus 有較高的推廣利用價值。 隨著 科技的發(fā)展, “ 計算機仿真技術 ” 已成為許多設計部門重要的前期設計手段。它具有設計靈活,結果、過程的統(tǒng)一的特點。可使設計時間大為縮短、耗資大為減少,也可降低工程制造的風險。相信在單片機開發(fā)應用中 PROTEUS也能茯得愈來愈廣泛的應用。 23 仿真過程 首先 從 Proteus 庫 中 選出要用的元件,
點擊復制文檔內容
研究報告相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1