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

正文內(nèi)容

十位數(shù)字密碼鎖電路設(shè)計(jì)-資料下載頁(yè)

2024-12-06 01:29本頁(yè)面

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

  

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