為了保護用戶用電的權益,使非法用戶在不知道密碼的情況下,無法使用電源并實行相應的操作,特開發出此密碼電源開關。文章詳細敘述了密碼電源開關的硬件結構和軟件設計流程,通過論述表明,用單片機控制的密碼電源開關具有結構靈活、開發經濟、工作穩定等優勢。 隨著現代技術的發展,電與我們生活的關系越來越密切,從工業生產到居家生活的每一個細節都離不開電。但令人頭疼的是卻有許多人在偷電漏電,盜用別人的電源使用,給別人造成了經濟上的損失。現在,在同一間辦公室辦公的情況越來越普遍了,為了使非法用戶在不知道密碼的情況下,無法使用電源,筆者在這里設計了一個密碼電源開關,它是基于微控制芯片A T89C51 的一項新的具有實用價值的系統。這個系統結構簡單,保密性好,可以同時控制多路電源,具有輸入錯誤密碼告警,輸入正確密碼開、關電源,用電器關電后自動啟動保護延時等功能。 工作原理及硬件結構 利用89C51 設計的密碼電源開關原理如圖1所示,系統以89C51 為核心,89C51 是Intel 公司的一款集CPU 、RAM、ROM、I/ O 接口、定時器/ 計數器、中斷系統為一體的單片機, 片上帶有4 K 的ROM 和128 ×8 位的RAM。系統中按鍵采用查詢方法與單片機連接,可以實現輸入正確密碼開電源,輸入正確密碼關電源,修改密碼,修改延時等功能。8 路繼電器全部連接在P0口,通過P0口的電平變化來控制繼電器,進而控制電源的開關,為了節省端口,L ED 顯示連在普通口,因為要在關電后保證密碼不丟失,利用I2 C 技術在單片機外部擴展了一個E2 PROM(A T24C02) ,來存儲正確的密碼。 ![]() ![]() 單片機最小系統 如圖2 所示,89C51 的外部通過18 ,19 腳連接一個晶振和兩個電容,構成振蕩電路,可以為單片機提供時鐘頻率。9 腳通過一個10kΩ 電阻和一個10μF 的電容構成了一個簡單的復位電路, EA 接高電平,AL E、PSEN 信號不用,這樣就構成了一個單片機最小系統。這個最小系統未設復位鍵,系統加電時自動復位。 繼電器電路 本系統中要實現用弱電去控制強電,所以我們使用了繼電器,用以對電源通斷的控制,如圖3 所示,繼電器通過一個三極管直接連接到P0 口,當P0口為高電平時,繼電器導通,接通外部電源,反之,斷開外部電源。 外部存儲器的擴展 為了把修改后的正確密碼保存起來,不至于在斷電后密碼丟失,所以在設計中通過I2 C 技術擴展了一個外部存儲器。I2 C 總線是一種串行數據總線,只有二根信號線,一根是雙向的數據線SDA ,另一根是時鐘線SCL 。如圖4 所示,因為89C51 沒有直接的I2 C 接口,所以使用模擬I2 C 技術,SDA 連接在P2. 3 口,SCL 連接在P2. 2 口,用軟件程序控制數據的輸入輸出。 在I2C總線上傳送的一個數據字節由8 位組成�?偩€對每次傳送的字節數沒有限制,但每個字節后必須跟一位應答位。數據傳送首先傳送最高位(MSB) ,首先由主機發出啟動信號“S”(SDA 在SCL高電平期間由高電平跳變為低電平) ,然后由主機發送一個字節的數據。啟動信號后的第一個字節數據具有特殊含義:高7 位是從機的地址,第8 位是傳送方向位,0 表示主機發送數據(寫) ,1 表示主機接收數據(讀) 。被尋址到的從機設備按傳送方向位設置為對應工作方式。標準I2 C 總線的設備都有一個七位地址,所有連接在I2 C 總線上的設備都接收啟動信號后的第一個字節,并將接收到的地址與自己的地址進行比較,如果地址相符則為主機要尋訪的從機,應在第9 位應答時鐘脈沖時向SDA 線送出低電平作為應答。除了第一字節是通用呼叫地址或十位從機地址之外,第二字節開始即數據字節。數據傳送完畢,由主機發出停止信號“P”( SDA 在SCL 高電平期間由低電平跳變為高電平) 。A T24CX 系列串行E2 PROM 具有I2 C 總線接口功能,功耗小,寬電源電壓(根據不同型號2. 5V~6. 0V) ,工作電流約為3mA ,靜態電流隨電源電壓不同為30μA~110μA ,所以在本系統中使用A T24C02 作為外部存儲器。 其他硬件電路 本系統中的使用到的按鍵較少,只有4 個,分別是通道選擇,功能切換,數字切換/ 修改延時,確認/修改密碼。為了簡化電路結構,節省成本,在系統中未使用掃描鍵盤的連接思路,而是采用了圖5 的連接方法。 按鍵一端接P3 口,一端接地,當有按鍵按下時,相應口的電平就會被拉低。然后用軟件程序就可以檢查出是哪個鍵按下,隨后執行相應的功能。因為P3 口全做了I/ O 口使用,所以在連接硬件的時候,每一個口上都接了一個上拉電阻。L ED 顯示部分通過模擬串行口來進行顯示,時鐘線和數據線連接到單片機的普通口。電源電路使用典型的電源電路,一個整流橋加一個穩壓管,就可以構成一個電源電路。為了增加系統的可操作性,特加了三個L ED 指示燈,分別是修改延時指示燈、修改密碼指示燈、告警燈,都直接連接在P1 口,用程序控制。 控制軟件設計 結合設計的要求和電路要實現的功能,系統的主要程序流程如下: 主程序 這個程序采用了數枝狀的結構,這樣比較適合于此硬件電路,也容易實現系統的功能。在主程序中,反復查詢與按鍵相連的端口,一但發現有按鍵按下,迅速判斷出來是哪個按鍵按下,然后調用相應的子程序,并執行功能,待執行完后,又返回主程序等待。 輸入數字子程序 輸入數字鍵可以實現兩個功能,一個是單純的輸入數字,從0 到9 循環,每修改一次,數字都要保存到顯示緩沖區中,以便打開電源,關閉電源,修改密碼時使用。輸入數字鍵一般是和確認鍵配合使用的,因為在這個系統中采用的是串行顯示,所以每次只能顯示一位,共有四位數字,從低位到高位顯示的時候,當每一位上的數字選好后,都要確認一下,才能移到下一位顯示。如圖7 所示在每一次輸入完數字以后,都要查詢一下是否有修改延時的要求,如果有,那么就要執行修改延時的功能,在本系統中,最大延時取了5 分鐘,這個值到實際中是可以修該的。修改后的延時值存在一個特定的存儲區中,以備觸發定時器時使用。本系統中采用延時的功能主要是為了保護用電器,例如冰箱之類的大功率用電器,它要求在每次關電和開電之間應該有一定的延時,以保護用電器,延長壽命。而這個設計就恰恰滿足了這種要求,它可以在你關閉電源時自動啟動定時器延時,如果定時時間未結束,即使密碼輸入正確,也無法開機。 選路子程序 選路子程序比較簡單,通過反復循環來實現路數的選擇,選好的路數存到特定的存儲單元中,作為判斷條件供其他程序使用。 確認子程序 確認程序主要實現對輸入數字的確認及判斷系統是否有延時要求。 修改延時/ 修改密碼子程序 程序主要作用就是實現修改密碼和修改延時,可以通過外部按鍵來切換,在外部各有一個指示燈,來顯示現在處于什么狀態。修改延時時只要修改延時燈點亮,就可以通過輸入數字鍵來修改延時。當修改密碼指示燈亮時,就可以修改密碼。修改好的密碼通過特定的端口送到外部存儲器AT24C02 保存起來。 比較子程序 比較子程序主要實現對輸入的密碼和原始密碼進行比較的作用,可以實現對繼電器的開與關的控制及控制延時的打開的控制。延時的關閉是在定時器里完成的,在這里就不再過多的闡述了。 部分程序如下: MAIN : MOV SP , # 60H MOV TMOD , # 01H ;設置定時器T0 MOV TH0 , # 3CH MOV TL0 , # 0B0H ;100 毫秒初值 SETB EA MOV DINGSHI_CZ , # 01H ;存計數次數 MOV XGMM_PASS , # 00H ;修改密碼允許標志清0 MOV 0CH , # 0C8H ;循環200 次 MOV 0DH , # 0C8H ;循環200 次 MOV 0EH , # 0C8H ;循環200 次 ; .................... MOV 4AH , # 00H MOV 4BH , # 00H MOV 4CH , # 00H MOV 4DH , # 00H ;清顯示屏的代碼 LCALL CL EAR ;清顯示器 MOV A , # 00H MOV P0 ,A MOV R4 , # 08H ;控制路數的次數 MOV R3 , # 00H ;控制路數,默認第1 路 MOV R0 , # 30H ;密碼緩存首地址 MOV R5 , # 00H MOV R7 , # 05H ;控制定時次數,最大5 分鐘 MOV A , # 01H MOV 38H ,A MOV OPEN_SHU T1 , # 00H ;控制各路的開與關 MOV OPEN_SHU T2 , # 00H MOV OPEN_SHU T3 , # 00H MOV OPEN_SHU T4 , # 00H MOV OPEN_SHU T5 , # 00H MOV OPEN_SHU T6 , # 00H MOV OPEN_SHU T7 , # 00H MOV OPEN_SHU T8 , # 00H MOV YANSHI , # 00H ;關延時標志位 ; ........查詢是否有鍵按下........ START : SETB P3. 2 SETB P3. 3 SETB P3. 4 SETB P3. 5 LCALL DL10_MS MOV A ,P3 JNB ACC. 2 ,FUN0 JNB ACC. 3 ,FUN1 JNB ACC. 4 ,FUN2 JNB ACC. 5 ,FUN3 LCALL DL10_MS LJMP START ;查詢是否有鍵按下 FUN0 : LJMP XUANLU ;調用選路子程序 FUN1 : LJMP INPU T_SZ ;調用輸入數字子程序 FUN2 : LJMP YES_MOVE ;調用確認子程序 FUN3 : LJMP GNQH ;調用功能切換子程序 結束語 本文較為詳細地介紹了以單片機為核心的密碼電源開關的設計,使51 系列單片機充分應用在了控制系統中。該系統實現簡單,結構靈活(按鍵部分也可以采用中斷的連接方法) ,開發經濟,具有一定的市場前景。 |