單片機控制的密碼鎖設計(含電路圖及源程序)

2021-01-08 電子產品世界

單片機控制的密碼鎖設計。AT89S52單片機P1引腳外接獨立式按鍵S1-S8,分別代表數字鍵0-5、確定鍵、取消鍵。單片機從P3.0-P3.3輸出4個信號,分別為1個電磁開鎖驅動信號和密碼錯誤指示、報警輸出、已開鎖指示信號,分別用發光二極體L1-L4指示。P3.4接一有源蜂鳴器,用於實現提示音。
基本要求:
(1)初始密碼為123450,輸完後按確定鍵開鎖,取消鍵清除所有輸入,每次按鍵有短「滴」聲按鍵提示音。
(2)密碼輸入正確後,輸出一個電磁鎖開鎖信號與已開鎖信號,並發出兩聲短「滴」聲提示。4秒後開鎖信號與已開鎖指示清零。
(3)密碼輸入錯誤時,發出一聲長「滴」聲錯誤指示提示音,並密碼錯誤指示燈亮,三次密碼錯誤時,發出長鳴聲報警,並密碼錯誤指示燈亮,報警指示燈亮,此後15秒內無法再次輸入密碼,15秒過後,清除所有報警和指示。
(4)5秒內無任何操作後,清除所有輸入內容,等待下次輸入。

本文引用地址:http://www.eepw.com.cn/article/172702.htm

3.3.1模塊1 系統設計
(1)分析任務要求。寫出系統整體設計思路
根據題目的要求,需要考慮如下幾個任務:按鍵的輸入,密碼的判斷,密碼輸入正確或錯誤的計時、輸出信號的控制等。
鍵盤的輸入:由於需要輸入6個數字作為密碼,先要判斷按鍵時數字鍵還是功能鍵,若判斷為數字鍵按下,則需要將每次鍵盤的輸入內容依次暫存在一個數組中。在每次按鍵輸入時,需要啟動定時器實現待機計時(5秒)。若5秒內沒有輸入內容則清除已輸入的內容。
密碼的判斷和計時:在按下確認鍵之後,要將輸入的內容與初始密碼核對,如果密碼正確,輸出相應的指示,同時還要啟動定時器實現4s的計時。如果密碼錯誤,錯誤計數變量增1,同時輸出密碼指示信號,若錯誤次數超過3s,則輸出報警等信號,同時啟動定時器實現15秒的計時。
輸出信號的控制主要根據按鍵輸入與密碼的核對情況來決定。
整體程序設計思想:
程序分為主程序和中斷服務程序兩個主要部分,主程序完成變量和單片機特殊功能寄存器的初始化後,進入一個循環結構。在循環中,首先判斷有無按鍵按下,若有按鍵則判斷是否數字鍵還是功能鍵,根據按鍵的情況執行相應的功能。然後根據密碼是否正確的判斷情況,執行相應的操作。循環中最後將需要顯示的內容通過動態掃描在數碼管上顯示。
中斷服務程序只要實現三個狀態的計時,待機時需要計時5秒,密碼正確需要計時5s,密碼3次輸入錯誤需要計時15秒。當前處於何種計時,由主程序根據密碼判斷結果來決定。
(2)選擇單片機型號和所需外圍器件型號,設計單片機硬體電路原理圖
採用MCS51系列單片機At89S51作為主控制器,外圍電路器件包括數碼管驅動、蜂鳴器的輸出驅動、獨立式鍵盤以及發光二極體的輸出等。
數碼管驅動採用2個四聯共陰極數碼管顯示,由於單片機驅動能力有限,採用74HC244作為數碼管的驅動。在74HC244的7段碼輸出線上串聯100歐姆電阻起限流作用。
蜂鳴器的驅動採用PNP三極體8550來驅動,低電平有效。
獨立式按鍵使用上提拉電路連接,在沒有鍵按下時,輸出高電平。發光二極體串聯500歐姆電阻再接到電源上,當輸入為低電平時,發光二極體導通發光。
硬體電路原理圖如圖3-9所示。

圖3-9 密碼鎖電路原理圖
(3)分析軟體任務要求,寫出程序設計思路,分配單片機內部資源,畫出程序流程圖
軟體任務要求主要包括按鍵掃描、密碼判斷、動態掃描輸入的內容、計時、指示信號輸出以及蜂鳴器提示音的輸出等。主程序主要完成變量與寄存器的初始化、按鍵的掃描與判斷、密碼的判斷以及數碼管動態掃描顯示等。主程序流程圖如圖3-10所示。

圖3-10 密碼鎖的主程序流程圖

中斷服務程序主要完成三種定時的計時工作,包括①按鍵之後啟動的待機計時,當待機超過5s則清除已輸入的內容。②密碼輸入正確之後的計時,4s之後清除開鎖驅動信號與已開鎖指示信號。 ③密碼輸入錯誤3次的計時,計時15s,在則15s內無法再次輸入密碼,15秒過後清除所有報警與指示。中斷服務程序流程圖如圖3-11所示。

圖3-11 密碼鎖中斷服務程序流程圖
單片機資源的分配與變量的定義:
密碼的輸入與判斷需要定義4個變量。原始密碼存儲在數組init_val[6]中。鍵盤輸入的密碼存儲在數據show_val[6]中,變量 key_index的值表示當前按鍵是六位密碼中的哪一位,每輸入一個密碼數字該變量增一。密碼輸入錯誤的次數暫存在變量error_num中。
計時功能需要5個變量。模式變量cnt_state存儲計時屬於什麼狀態,0表示待機計時,1表示密碼正確的計時,2表示密碼錯誤3次的計時。三個變量(cnt_val_15s,cnt_val_5s, cnt_val_4s)分別實現待機、密碼正確和密碼錯誤3次後的計時工作。定時器T1每250ms產生一次中斷,變量T1_cnt記錄定時器溢出中斷的次數,當記錄到4000時表示計時1秒。
(4)設計系統軟體調試方案、硬體調試方案及軟硬體聯合調試方案
軟體調試方案:偉福軟體中,在「文件新建文件」中,新建C語言源程序文件,編寫相應的程序。在「文件新建項目」的菜單中,新建項目並將C語言源程序文件包括在項目文件中。
在 「項目編譯」菜單中將C源文件編譯,檢查語法錯誤及邏輯錯誤。在編譯成功後,產生以 「*.hex」和「*.bin」 後綴的目標文件。
硬體調試方案:在設計平臺中,將單片機的P1.0-P1.7分別與8個獨立式鍵盤通過插線連接起來,將P3.0-P3.3分別與4個發光二極體連接起來,P3.4與蜂鳴器的輸入連接起來。
在偉福中將程序文件編譯成目標文件後,將下載線安裝在實驗平臺的下載線接口上,運行「MCU下載程序」,選擇相應的flash 數據文件,點擊「編程」按鈕,將程序文件下載到單片機的Flash中。
然後,上電重新啟動單片機,檢查所編寫的程序是否達到題目的要求,是否全面完整地完成試題的內容。

3.3.2 程序設計
//晶振11.0592MHz,T1每250微秒中斷,按鍵P1.0-P1.7,發光二極體接P3.0-P3.3,p3.4
/*變量的定義:
show_val[6]: 顯示的值
init_val[6]: 密碼初始值

電路圖符號相關文章:電路圖符號大全


相關焦點

  • 單片機的七個創意設計實例(從易到難),附電路圖、原始碼、演示視頻
    本文引用地址:http://www.eepw.com.cn/article/256915.htm智能六足機器人實作,含電路設計、PCB圖、機械結構、總結報告從一位電子愛好者成長為工程師,這個六足機器人是工程師生涯中的一個得力之作,對於初學者來說,學習製作四足或六足機器人比二足更合適,主要原因在於平衡容易,相對程式處理就較為簡單。
  • eda簡易密碼鎖的設計方案匯總(三款eda簡易密碼鎖的設計原理圖詳解)
    (6)密碼解鎖:按下99#鍵,再輸入數碼;如果輸入與系統儲存密碼一致,密碼鎖就能開啟;否則不能解鎖。 電子密碼鎖的結構原理 電子密碼鎖的整體結構如圖1所示,它包括密碼鎖輸入模塊、控制模塊和顯示模塊等。
  • 以STC89C52單片機為核心的電子密碼鎖設計
    以STC89C52單片機為核心的電子密碼鎖設計 工程師黃明星 發表於 2018-08-16 17:38:23 引言 電子密碼鎖是現代生活中常用的加密工具。
  • 如何利用51單片機設計一個電子密碼鎖系統?
    計算機體積龐大,不易攜帶,導致單片機的應運而生,電子密碼鎖就是在單片機的外部接上簡單的電路,人為的寫入程序來完成其核心部分,這樣不僅能夠縮小鎖的體積還能夠降低成本,保持精度,並且能夠有效的升級和改善電子密碼鎖。 2 單片機密碼鎖的系統設計 2.1 單片機密碼鎖系統的總設計結構圖
  • 基於51單片機的電子廣告牌電路設計
    在此主要介紹以AT89S51為控制晶片,用8×8的點陣屏4塊來級聯實現16×16的點陣屏,從而用於廣告牌顯示等。1 系統設計方案 鑑於所設計的點陣屏為16×16單色顯示,可以用8×8的點陣屏4塊來級聯實現,此時點陣屏的行列各為16管腳,需要擴展口,採用74LS164串行輸入並行輸出來實現。
  • 數模轉換DAC0832的應用(含電路和源程序)
    打開APP 數模轉換DAC0832的應用(含電路和源程序) 佚名 發表於 2009-07-16 10:00:19 數模轉換DAC0832的應用 [實驗要求]通過用單片機控制DAC0832輸出鋸齒波,讓實驗板上發光二極體D12由暗到亮變化,循環下去。
  • 51單片機+PID算法水溫控制系統設計
    本系統設計採用基於PID算法的單片機控制來實現水溫的調控。單片機控制部分採用AT89C51單片機為核心,採用軟體編程,實現用PID算法來控制PWM波的產生,繼而控制電爐的加熱來實現溫度控制。通過編程對PID各參數的調整,來達到提高加溫速度,減小超調的目的。
  • 單片機蜂鳴器的控制程序與驅動電路圖
    有源蜂鳴器內部帶了振蕩源,如圖1中所示,給了 BUZZ 引腳一個低電平,蜂鳴器就會直接響。而無源蜂鳴器內部是不帶振蕩源的,要讓他響必須給 500Hz~4.5KHz 之間的脈衝頻率信號來驅動它才會響。有源蜂鳴器往往比無源蜂鳴器貴一些,因為裡邊多了振蕩電路,驅動發音也簡單,靠電平就可以驅動,而無源蜂鳴器價格比較便宜,此外無源蜂鳴器聲音頻率可以控制,而音階與頻率又有確定的對應關係,因此就可以做出來「do re mi fa sol la si」的效果,可以用它製作出簡單的音樂曲目,比如生日歌、兩隻老虎等等。
  • 單片機紅外電路設計原理
    紅外發射功能主要由紅外發射管來實現,紅外發射管在外觀上和透明的LED發光二極體極為相似,其驅動和控制方式也一致。在使用單片機控制發射管時,一般使用三極體來驅動,NPN三極體和PNP三極體都可以實現。如下圖所示使用PNP三極體來實現的。
  • 簡單的4×4行列式鍵盤控制電路設計(三款電路設計原理圖詳解)
    打開APP 簡單的4×4行列式鍵盤控制電路設計(三款電路設計原理圖詳解) 發表於 2018-01-25 16:38:37
  • 基於AT89S51單片機的PID溫度控制系統設計
    系統的硬體電路包括:模擬部分和數字部分,基本電路由核心處理模塊、溫度採集模塊、鍵盤顯示模塊及控制執行模塊等組成。  1.2系統工作流程  系統開始工作時,首先由單片機控制軟體發出溫度讀取指令,通過數字溫度傳感器採集被控對象的當前溫度值並送顯示屏實時顯示。然後,將該溫度測量值與設定值T比較,其差值送PID控制器。
  • 數顯溫度計設計電路圖大全(DS18B20/89S51單片機/液晶)
    液晶顯示的數字式電腦溫度計電路 數顯溫度計設計電路圖(二) 介紹一種具有簡單人工智慧的溫度控制電路,使用該電路進行溫度控制時,只需將開關打在2的位置,通過設定控制溫度,並通過 數顯溫度計設計電路圖(三):液晶顯示溫度計電路圖 如圖為液晶顯示溫度計電路圖。該電路的工作原理為:由DS18B20溫度傳感器晶片測量當前的溫度,並將結果送入單片機。然後,通過89C205I單片機晶片對送來的測量溫度讀數進行計算和轉換,將此結果送入液晶顯示模塊。最後,SMC1602A晶片將送來的值顯示於顯示屏上。
  • 基於單片機控制數字移相器的系統硬體電路設計
    打開APP 基於單片機控制數字移相器的系統硬體電路設計 佚名 發表於 2020-04-15 16:04:59 目前資料上有很多移相電路,其實現方法多種多樣,大致可分為模擬式和數字式移相器兩類。模擬式移相器的電路較為複雜、線性差、測試精度低;數字式移相器大多以標準邏輯器件按傳統數字系統設計方法設計而成,其缺點為功耗大、可靠性低。本文介紹的基於單片機控制的數字移相器,採用環形隊列實現信號波形的任意相位移相,並且保持波形的幅度、頻率不變。其測試精度高,失真度小。系統原理方框圖如圖1所示。
  • 51單片機之4位數加法計算器的設計報告
    本設計採用AT89C52單片機作為主要核心部件,附以上電復位電路,時鐘電路及按鍵調時電路組成。數字鐘已成為人們日常生活中: 必不可少的必需品, 廣泛用於個人家庭以及車站、 碼頭、劇場、辦公室等公共場所,給人們的生活、學習、工作、娛樂帶來極大的方便。 由於數字集成電路技術的發展和採用了先進的石英技術,使數字鐘具有走時準確、性 能穩定、攜帶方便等優點,它還用於計時、自動報時及自動控制等各個領域。
  • 基於單片機控制的多功能充電系統設計
    1 硬體電路設計 本系統採用移相全橋軟開關電路,即將Boost電路與全橋變換器合成一起組成單級PFC電路,該電路結構簡單、效率高,可以實現對輸入電流的整定,又可以工作在較大功率場合,發揮了全橋電路的優勢。 系統主要由充電主電路和充電控制迴路組成,圖1為多功能充電系統硬體原理圖。
  • 基於單片機控制 LED智能照明系統設計
    3 智能AC LED照明系統硬體設計   系統工作原理,由熱紅外傳感器件、強光傳感器件、聲控傳感器件做為感知系統,傳感器信號經A/D轉換後傳到主控器件(CPU)STC12C5628AD,經主控器件處理後將控制信號加到D/A轉換電路,控制信號經放大電路放大後加到由可控矽組成的驅動電路上,由可控矽驅動電路來控制AC LED燈的開啟和關斷及明亮程度
  • 智慧型手機藍牙控制汽車電路設計—電路精選(18)
    如今,藍牙在智慧型手機上也可以實現控制汽車了,在科技高速發展的時代,沒有做不到,只有想不到,這就是物聯網的魅力。下面就跟隨本文進入「電路時間」吧!   系統模塊   整個系統的硬體設計可以分為四個模塊:電源電路、單片機最小系統、電機驅動模塊、藍牙模塊。
  • 單片機小白學步(4) 模擬電路、傳統數字電路與單片機
    利用一些常用的傳統數字電路器件(一般都是集成電路晶片),我們可以設計出如下圖的電路。它是一個電子表,有六個數碼管顯示時間,圖中正顯示的就是00:00:18。可以看出來這個電路還是挺複雜的,設計起來也是很費時間的。
  • 成本低、易於編程控制的DLP投影STM32單片機驅動電路研究設計
    打開APP 成本低、易於編程控制的DLP投影STM32單片機驅動電路研究設計 工程師黃明星 發表於 2018-07-27 07:04:00
  • PIC單片機C語言程序設計(8)
    即可用MPLAB IDE7.40 對PIC 單片機建立彙編語言或C 語言的源程序、創建項目(project)、對源程序進行彙編(使用彙編語言時)或編譯(使用C 語言時),彙編或編譯通過後,會生成目標碼。hex 文件。有了目標碼。hex 文件,就可對PIC 單片機編程(燒寫)和對源程序進行模擬調試了。