<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 電源與新能源 > 設(shè)計(jì)應(yīng)用 > 基于AT89C51的密碼電源開關(guān)設(shè)計(jì)

          基于AT89C51的密碼電源開關(guān)設(shè)計(jì)

          作者: 時(shí)間:2011-05-25 來源:網(wǎng)絡(luò) 收藏

          隨著現(xiàn)代技術(shù)的發(fā)展,電與我們生活的關(guān)系越來越密切,從工業(yè)生產(chǎn)到居家生活的每一個(gè)細(xì)節(jié)都離不開電。但令人頭疼的是卻有許多人在偷電漏電,盜用別人的使用,給別人造成了經(jīng)濟(jì)上的損失。現(xiàn)在,在同一間辦公室辦公的情況越來越普遍了,為了使非法用戶在不知道的情況下,無法使用,筆者在這里了一個(gè),它是微控制芯片A T89C51 的一項(xiàng)新的具有實(shí)用價(jià)值的系統(tǒng)。這個(gè)系統(tǒng)結(jié)構(gòu)簡單,保密性好,可以同時(shí)控制多路電源,具有輸入錯(cuò)誤告警,輸入正確密碼開、關(guān)電源,用電器關(guān)電后自動(dòng)啟動(dòng)保護(hù)延時(shí)等功能。

          本文引用地址:http://www.ex-cimer.com/article/179086.htm

          工作原理及硬件結(jié)構(gòu)

          利用89C51 的密碼電源原理如圖1所示,系統(tǒng)以89C51 為核心,89C51 是Intel 公司的一款集CPU 、RAM、ROM、I/ O 接口、定時(shí)器/ 計(jì)數(shù)器、中斷系統(tǒng)為一體的單片機(jī), 片上帶有4 K 的ROM 和128 ×8 位的RAM。系統(tǒng)中按鍵采用查詢方法與單片機(jī)連接,可以實(shí)現(xiàn)輸入正確密碼開電源,輸入正確密碼關(guān)電源,修改密碼,修改延時(shí)等功能。8 路繼電器全部連接在P0口,通過P0口的電平變化來控制繼電器,進(jìn)而控制電源的,為了節(jié)省端口,L ED 顯示連在普通口,因?yàn)橐陉P(guān)電后保證密碼不丟失,利用I2 C 技術(shù)在單片機(jī)外部擴(kuò)展了一個(gè)E2 PROM(A T24C02) ,來存儲(chǔ)正確的密碼。

          單片機(jī)最小系統(tǒng)

          如圖2 所示,89C51 的外部通過18 ,19 腳連接一個(gè)晶振和兩個(gè)電容,構(gòu)成振蕩電路,可以為單片機(jī)提供時(shí)鐘頻率。9 腳通過一個(gè)10kΩ 電阻和一個(gè)10μF 的電容構(gòu)成了一個(gè)簡單的復(fù)位電路, EA 接高電平,AL E、PSEN 信號(hào)不用,這樣就構(gòu)成了一個(gè)單片機(jī)最小系統(tǒng)。這個(gè)最小系統(tǒng)未設(shè)復(fù)位鍵,系統(tǒng)加電時(shí)自動(dòng)復(fù)位。

          繼電器電路

          本系統(tǒng)中要實(shí)現(xiàn)用弱電去控制強(qiáng)電,所以我們使用了繼電器,用以對(duì)電源通斷的控制,如圖3 所示,繼電器通過一個(gè)三極管直接連接到P0 口,當(dāng)P0口為高電平時(shí),繼電器導(dǎo)通,接通外部電源,反之,斷開外部電源。

          外部存儲(chǔ)器的擴(kuò)展

          為了把修改后的正確密碼保存起來,不至于在斷電后密碼丟失,所以在中通過I2 C 技術(shù)擴(kuò)展了一個(gè)外部存儲(chǔ)器。I2 C 總線是一種串行數(shù)據(jù)總線,只有二根信號(hào)線,一根是雙向的數(shù)據(jù)線SDA ,另一根是時(shí)鐘線SCL 。如圖4 所示,因?yàn)?9C51 沒有直接的I2 C 接口,所以使用模擬I2 C 技術(shù),SDA 連接在P2. 3 口,SCL 連接在P2. 2 口,用軟件程序控制數(shù)據(jù)的輸入輸出。

          在I2 C 總線上傳送的一個(gè)數(shù)據(jù)字節(jié)由8 位組成??偩€對(duì)每次傳送的字節(jié)數(shù)沒有限制,但每個(gè)字節(jié)后必須跟一位應(yīng)答位。數(shù)據(jù)傳送首先傳送最高位(MSB) ,首先由主機(jī)發(fā)出啟動(dòng)信號(hào)“S”(SDA 在SCL高電平期間由高電平跳變?yōu)榈碗娖? ,然后由主機(jī)發(fā)送一個(gè)字節(jié)的數(shù)據(jù)。啟動(dòng)信號(hào)后的第一個(gè)字節(jié)數(shù)據(jù)具有特殊含義:高7 位是從機(jī)的地址,第8 位是傳送方向位,0 表示主機(jī)發(fā)送數(shù)據(jù)(寫) ,1 表示主機(jī)接收數(shù)據(jù)(讀) 。被尋址到的從機(jī)設(shè)備按傳送方向位設(shè)置為對(duì)應(yīng)工作方式。標(biāo)準(zhǔn)I2 C 總線的設(shè)備都有一個(gè)七位地址,所有連接在I2 C 總線上的設(shè)備都接收啟動(dòng)信號(hào)后的第一個(gè)字節(jié),并將接收到的地址與自己的地址進(jìn)行比較,如果地址相符則為主機(jī)要尋訪的從機(jī),應(yīng)在第9 位應(yīng)答時(shí)鐘脈沖時(shí)向SDA 線送出低電平作為應(yīng)答。除了第一字節(jié)是通用呼叫地址或十位從機(jī)地址之外,第二字節(jié)開始即數(shù)據(jù)字節(jié)。數(shù)據(jù)傳送完畢,由主機(jī)發(fā)出停止信號(hào)“P”( SDA 在SCL 高電平期間由低電平跳變?yōu)楦唠娖? 。A T24CX 系列串行E2 PROM 具有I2 C 總線接口功能,功耗小,寬電源電壓(根據(jù)不同型號(hào)2. 5V~6. 0V) ,工作電流約為3mA ,靜態(tài)電流隨電源電壓不同為30μA~110μA ,所以在本系統(tǒng)中使用A T24C02 作為外部存儲(chǔ)器。

          其他硬件電路

          本系統(tǒng)中的使用到的按鍵較少,只有4 個(gè),分別是通道選擇,功能切換,數(shù)字切換/ 修改延時(shí),確認(rèn)/修改密碼。為了簡化電路結(jié)構(gòu),節(jié)省成本,在系統(tǒng)中未使用掃描鍵盤的連接思路,而是采用了圖5 的連接方法。

          按鍵一端接P3 口,一端接地,當(dāng)有按鍵按下時(shí),相應(yīng)口的電平就會(huì)被拉低。然后用軟件程序就可以檢查出是哪個(gè)鍵按下,隨后執(zhí)行相應(yīng)的功能。因?yàn)镻3 口全做了I/ O 口使用,所以在連接硬件的時(shí)候,每一個(gè)口上都接了一個(gè)上拉電阻。L ED 顯示部分通過模擬串行口來進(jìn)行顯示,時(shí)鐘線和數(shù)據(jù)線連接到單片機(jī)的普通口。電源電路使用典型的電源電路,一個(gè)整流橋加一個(gè)穩(wěn)壓管,就可以構(gòu)成一個(gè)電源電路。為了增加系統(tǒng)的可操作性,特加了三個(gè)L ED 指示燈,分別是修改延時(shí)指示燈、修改密碼指示燈、告警燈,都直接連接在P1 口,用程序控制。

          控制軟件設(shè)計(jì)

          結(jié)合設(shè)計(jì)的要求和電路要實(shí)現(xiàn)的功能,系統(tǒng)的主要程序流程如下:

          主程序

          這個(gè)程序采用了數(shù)枝狀的結(jié)構(gòu),這樣比較適合于此硬件電路,也容易實(shí)現(xiàn)系統(tǒng)的功能。在主程序中,反復(fù)查詢與按鍵相連的端口,一但發(fā)現(xiàn)有按鍵按下,迅速判斷出來是哪個(gè)按鍵按下,然后調(diào)用相應(yīng)的子程序,并執(zhí)行功能,待執(zhí)行完后,又返回主程序等待。

          輸入數(shù)字子程序

          輸入數(shù)字鍵可以實(shí)現(xiàn)兩個(gè)功能,一個(gè)是單純的輸入數(shù)字,從0 到9 循環(huán),每修改一次,數(shù)字都要保存到顯示緩沖區(qū)中,以便打開電源,關(guān)閉電源,修改密碼時(shí)使用。輸入數(shù)字鍵一般是和確認(rèn)鍵配合使用的,因?yàn)樵谶@個(gè)系統(tǒng)中采用的是串行顯示,所以每次只能顯示一位,共有四位數(shù)字,從低位到高位顯示的時(shí)候,當(dāng)每一位上的數(shù)字選好后,都要確認(rèn)一下,才能移到下一位顯示。如圖7 所示在每一次輸入完數(shù)字以后,都要查詢一下是否有修改延時(shí)的要求,如果有,那么就要執(zhí)行修改延時(shí)的功能,在本系統(tǒng)中,最大延時(shí)取了5 分鐘,這個(gè)值到實(shí)際中是可以修該的。修改后的延時(shí)值存在一個(gè)特定的存儲(chǔ)區(qū)中,以備觸發(fā)定時(shí)器時(shí)使用。本系統(tǒng)中采用延時(shí)的功能主要是為了保護(hù)用電器,例如冰箱之類的大功率用電器,它要求在每次關(guān)電和開電之間應(yīng)該有一定的延時(shí),以保護(hù)用電器,延長壽命。而這個(gè)設(shè)計(jì)就恰恰滿足了這種要求,它可以在你關(guān)閉電源時(shí)自動(dòng)啟動(dòng)定時(shí)器延時(shí),如果定時(shí)時(shí)間未結(jié)束,即使密碼輸入正確,也無法開機(jī)。

          選路子程序

          選路子程序比較簡單,通過反復(fù)循環(huán)來實(shí)現(xiàn)路數(shù)的選擇,選好的路數(shù)存到特定的存儲(chǔ)單元中,作為判斷條件供其他程序使用。

          確認(rèn)子程序

          確認(rèn)程序主要實(shí)現(xiàn)對(duì)輸入數(shù)字的確認(rèn)及判斷系統(tǒng)是否有延時(shí)要求。

          修改延時(shí)/ 修改密碼子程序

          程序主要作用就是實(shí)現(xiàn)修改密碼和修改延時(shí),可以通過外部按鍵來切換,在外部各有一個(gè)指示燈,來顯示現(xiàn)在處于什么狀態(tài)。修改延時(shí)時(shí)只要修改延時(shí)燈點(diǎn)亮,就可以通過輸入數(shù)字鍵來修改延時(shí)。當(dāng)修改密碼指示燈亮?xí)r,就可以修改密碼。修改好的密碼通過特定的端口送到外部存儲(chǔ)器AT24C02 保存起來。

          比較子程序

          比較子程序主要實(shí)現(xiàn)對(duì)輸入的密碼和原始密碼進(jìn)行比較的作用,可以實(shí)現(xiàn)對(duì)繼電器的開與關(guān)的控制及控制延時(shí)的打開的控制。延時(shí)的關(guān)閉是在定時(shí)器里完成的,在這里就不再過多的闡述了。

          部分程序如下:

          MAIN :

          MOV SP , # 60H

          MOV TMOD , # 01H ;設(shè)置定時(shí)器T0

          MOV TH0 , # 3CH

          MOV TL0 , # 0B0H ;100 毫秒初值

          SETB EA

          MOV DINGSHI_CZ , # 01H ;存計(jì)數(shù)次數(shù)

          MOV XGMM_PASS , # 00H ;修改密碼允許標(biāo)志清0

          MOV 0CH , # 0C8H ;循環(huán)200 次

          MOV 0DH , # 0C8H ;循環(huán)200 次

          MOV 0EH , # 0C8H ;循環(huán)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 ;控制路數(shù)的次數(shù)

            MOV R3 , # 00H ;控制路數(shù),默認(rèn)第1 路

          MOV R0 , # 30H ;密碼緩存首地址

          MOV R5 , # 00H

          MOV R7 , # 05H ;控制定時(shí)次數(shù),最大5 分鐘

          MOV A , # 01H

          MOV 38H ,A

          MOV OPEN_SHU T1 , # 00H ;控制各路的開與關(guān)

          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 ;關(guān)延時(shí)標(biāo)志位

          ; ........查詢是否有鍵按下........

          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 ;調(diào)用選路子程序

          FUN1 : LJMP INPU T_SZ ;調(diào)用輸入數(shù)字子程序

          FUN2 : LJMP YES_MOVE ;調(diào)用確認(rèn)子程序

          FUN3 : LJMP GNQH ;調(diào)用功能切換子程序

          結(jié)束語

          本文較為詳細(xì)地介紹了以單片機(jī)為核心的密碼電源開關(guān)的設(shè)計(jì),使51 系列單片機(jī)充分應(yīng)用在了控制系統(tǒng)中。該系統(tǒng)實(shí)現(xiàn)簡單,結(jié)構(gòu)靈活(按鍵部分也可以采用中斷的連接方法) ,開發(fā)經(jīng)濟(jì),具有一定的市場(chǎng)前景。



          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();