那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何用單片機(jī)制作電子密碼鎖電路

電子設(shè)計(jì) ? 來源:xx ? 2019-02-15 16:06 ? 次閱讀

電子密碼鎖按照輸入密碼方式的不同可分為好多種,其中最常用的一種是用數(shù)字鍵盤輸入密碼的電子密碼鎖。這一講主要介紹用ATmega8和LCD1602液晶顯示器等組成的電子密碼鎖,這個(gè)電子密碼鎖能夠由用戶自行修改密碼,掉電后密碼不丟失。通過實(shí)驗(yàn)和學(xué)習(xí)使大家掌握電子密碼鎖的工作原理和ATmega8中EEPROM存儲(chǔ)器的使用方法。

一,EEPROM數(shù)據(jù)存儲(chǔ)器簡介ATmega8的存儲(chǔ)器由可分別獨(dú)立尋址的程序存儲(chǔ)器Flash、片內(nèi)數(shù)據(jù)存儲(chǔ)器SRAM和EEPROM三部分組成。

ATmega8包含512字節(jié)的EEPROM數(shù)據(jù)存儲(chǔ)器,可用于保存系統(tǒng)的設(shè)定參數(shù)、掉電后數(shù)據(jù)保存等。EEPROM可以按字節(jié)為單位進(jìn)行讀寫,至少可進(jìn)行100000次擦寫操作。EEPROM的訪問由地址寄存器、數(shù)據(jù)寄存器和控制寄存器決定。

在程序中EEPROM的訪問是通過I/O空間的寄存器來實(shí)現(xiàn)的,EEPROM的編程時(shí)間典型值為8.5ms。

為了防止無意的EEPROM寫入,必須遵照規(guī)范的寫入順序。當(dāng)讀取EEPROM時(shí),單片機(jī)將暫停4個(gè)時(shí)鐘周期再執(zhí)行下一條指令;當(dāng)寫EEPROM時(shí),單片機(jī)將暫停2個(gè)時(shí)鐘周期再執(zhí)行下一條指令。

下面介紹與EEPROM相關(guān)的幾個(gè)寄存器。

1.EEPROM地址寄存器

EEARH、EEARL因?yàn)锳Tmega8有512(2的9次方)字節(jié)的EEPROM,所以要用兩個(gè)8位寄存器來作地址寄存器,編址為0x0000~0x01FF。地址寄存器EEAR可讀可寫,EEAR的初始值沒有定義,在訪問EEPROM之前必須寫入一個(gè)正確的地址值。

EEAR的定義見下表。

2.EEPROM數(shù)據(jù)寄存器

EEDR數(shù)據(jù)寄存器EEDR用來存放即將寫入EEPROM或者從EEPROM讀出的某個(gè)單元的數(shù)據(jù),寫入或讀出的地址由地址寄存器EEAR給出。EEDR的初始值為0x00。

3.EEPROM控制寄存器EECREECR的定義見下表。

EERIE位為EEPROM中斷準(zhǔn)備好使能位,當(dāng)EERIE置位而且SREG寄存器中的全局中斷位I置位時(shí),若EEWE為0,則單片機(jī)產(chǎn)生一個(gè)中斷。

EEMWE位為EEPROM主機(jī)寫入使能位,EEMWE決定了EEWE置位是否可以啟動(dòng)EEPROM寫操作。當(dāng)EEMWE為置位時(shí),在4個(gè)時(shí)鐘周期內(nèi)EEWE置位將把數(shù)據(jù)寫入EEPROM的指定地址;若EEMWE為0,則操作EEWE不起作用。EEMWE置位后4個(gè)周期,硬件對(duì)其清零。

EEWE位為EEPROM寫使能位,當(dāng)EEPROM數(shù)據(jù)和地址設(shè)置好之后,需置位EEWE以便將數(shù)據(jù)寫入EEPROM。此時(shí)EEMWE必須置位,否則EEPROM寫操作將不會(huì)發(fā)生。寫時(shí)序如下:

(1)等待EEWE位變?yōu)榱恪?/p>

(2)將新的EEPROM地址寫入EEAR(可選)。

(3)將新的EEPROM數(shù)據(jù)寫入EEDR(可選)。

(4)置位EEMWE。

(5)在置位EEMWE的4個(gè)周期內(nèi),置位EEWE。

EERE位為EEPROM讀使能位,當(dāng)EEPROM地址設(shè)置好之后,需置位EERE以便將數(shù)據(jù)讀入EEDR。

EEPROM數(shù)據(jù)的讀取只需要一條指令。讀取EEPROM后CPU要停止4個(gè)時(shí)鐘周期才可以執(zhí)行下一條指令。

二、電子密碼鎖實(shí)驗(yàn)

1.實(shí)驗(yàn)電路

電子密碼鎖主要由單片機(jī)ATmega8、液晶顯示器LCD1602和電磁鐵鎖芯等部分組成。實(shí)驗(yàn)板上與電子密碼鎖有關(guān)的電路部分見下圖。圖中SB1、SB2、SB3為輸入按鍵,用于輸入數(shù)字密碼。VD6、R7、VT4等組成電磁鐵驅(qū)動(dòng)電路,由ATmega8的PD7腳進(jìn)行控制,實(shí)際使用時(shí)只要將VT4的負(fù)載由繼電器換成電子密碼鎖的電磁鐵吸合線圈即可,當(dāng)然也可以用繼電器的常開觸點(diǎn)去控制電磁鐵吸合線圈。

2.程序設(shè)計(jì)

程序有主函數(shù)、初始化函數(shù)、LCD顯示函數(shù)、鍵盤掃描函數(shù)、密碼設(shè)置函數(shù)、EEPROM讀寫函數(shù)和延時(shí)函數(shù)等部分組成。

程序中共使用了6個(gè)數(shù)組,其中數(shù)組Datal[]用來存儲(chǔ)按鍵值,它存儲(chǔ)在SRAM數(shù)據(jù)存儲(chǔ)區(qū),用來記錄輸入的。

按鍵值。其中數(shù)組a[]用來存儲(chǔ)密碼值,為了防止密碼值掉電丟失,a[]存儲(chǔ)在EEPROM數(shù)據(jù)存儲(chǔ)區(qū),a[]的初始值為a[]={0,0,0,0,0,0,0,0,0,0,0,0},即初始密碼為000000000000。

實(shí)驗(yàn)板上的SB1、SB2兩個(gè)按鈕作數(shù)字輸入鍵,SB1輸入數(shù)字0,SB2輸人數(shù)字1。SB3為確認(rèn)鍵。由于只有兩個(gè)數(shù)字輸入按鈕,因此密碼只能采用二進(jìn)制數(shù),密碼長度為12位。輸入的12位密碼存儲(chǔ)在數(shù)組Datal口中,按一下確認(rèn)鍵SB3后,程序?qū)?shù)組Datal口的各元素和數(shù)組a[]的對(duì)應(yīng)元素進(jìn)行比較,如果兩個(gè)數(shù)組相等,說明密碼正確,LCD顯示屏顯示:RIGHT,PD7輸出高電平,由VT4推動(dòng)電磁鐵吸合打開電子密碼鎖;反之,如果密碼錯(cuò)誤,LCD顯示屏顯示:ERROR,打不開電子密碼鎖。輸入密碼時(shí)輸入幾個(gè)數(shù)字LCD顯示屏就顯示幾個(gè)·號(hào)。

為了程序設(shè)計(jì)方便,引入了一個(gè)特征值Key,沒有任何鍵按下時(shí),令Key=0;當(dāng)SB1、SB2有鍵按下時(shí),令Key=1;當(dāng)SB3按下時(shí),令Key=2;當(dāng)密碼不正確時(shí),令Key=3。特征值Key作為主函數(shù)和按鍵掃描函數(shù)之間聯(lián)系的一條紐帶。

輸入密碼由按鍵掃描函數(shù)完成,按鍵掃描函數(shù)的流程圖見下圖。

密碼設(shè)置函數(shù)用來重新設(shè)置密碼,新的密碼仍然保存在EEPROM數(shù)據(jù)存儲(chǔ)區(qū),這樣掉電后新設(shè)置的密碼就不會(huì)丟失了。密碼設(shè)置函數(shù)的流程圖見下圖。

在驗(yàn)證密碼和重新設(shè)置密碼時(shí)要對(duì)EEPROM進(jìn)行讀寫,這可以用EEPROM讀寫函數(shù)來完成,兩個(gè)函數(shù)的語句如下。

寫EEPROM數(shù)據(jù)函數(shù):

Void Write-EEPROM(ucharData,uintAddress)

(if(EECR&0x20)//判斷寫使能是否為0

Delay Ms(10);//延時(shí)10ms

EEARH=Address》》8;//送高地址

EEARL=Address&0x0000ff;//送低地址

EEDR=Data;//送數(shù)據(jù)

EECR=EECR|0x04;//主寫使能置位

EECR=EECR|0x02;//寫使能置位

Delay Ms(10);//延時(shí)10ms

}

讀EEPROM數(shù)據(jù)函數(shù):

UcharRead_EEPROM(uint Address)

{uchar i;

if(EECR&0x01)//判斷讀使能是否為0

Delay Ms(10);//延時(shí)10ms

EEARH=Address》》8;//送高地址

EEARL=Address&0x00ff;//送高地址

EECR=EECR|0x01;//讀使能置位

Delay Ms(10);//延時(shí)10ms

i=EEDR;//讀數(shù)據(jù)

return(i);//返回?cái)?shù)據(jù)

}

上面只對(duì)幾個(gè)主要的函數(shù)作了介紹,詳細(xì)的源程序見本期配刊光盤。

3.電子密碼鎖實(shí)驗(yàn)首先將程序目標(biāo)文件寫入單片機(jī),為了防止密碼掉電后丟失,同時(shí)使密碼能夠重新修改,必須將密碼寫入EEPROM數(shù)據(jù)存儲(chǔ)器。由于程序中使用了EEPROM數(shù)據(jù)存儲(chǔ)器,因此程序在編譯時(shí)除了生成HEX目標(biāo)文件外,還會(huì)產(chǎn)生EEP目標(biāo)文件。HEX目標(biāo)文件寫入Flash程序存儲(chǔ)器,EEP目標(biāo)文件寫入EEPROM數(shù)據(jù)存儲(chǔ)器。所以用PonyProg2000寫芯片時(shí),在打開目標(biāo)文件時(shí)要分別打開目標(biāo)文件Lock.hex和lock.eep,具體操作過程是:

(1)對(duì)芯片進(jìn)行擦除;(2)用工具欄上的“Open Pro—gram Memory(FLASH)File按鈕打開lock.hex文件;(3)用工具欄上的“Open Data Memory(EEPROM)File”按鈕打開lock.eep文件;(4)單擊工具欄中的“寫器件”按鈕即可把兩個(gè)目標(biāo)文件分別寫入Flash程序存儲(chǔ)器和EEPROM數(shù)據(jù)存儲(chǔ)器。操作過程如下圖(略)所示。

接下來接通實(shí)驗(yàn)板的電源,通過SB1、SB2輸入12位密碼,按一下確認(rèn)鍵SB3,如果密碼正確的話,LCD顯示屏?xí)@示“RIGHT”,同時(shí)PD7輸出5秒鐘的高電平,使發(fā)光二極管VD6點(diǎn)亮,電磁鐵吸合,電子密碼鎖被打開,如下圖(略)所示。如果密碼不正確,LCD顯示屏?xí)@示“ERROR”,PD7輸出仍為低電平,電子密碼鎖不能被打開。

如果要修改密碼,必須先輸入正確的密碼,在VD7沒有熄滅前按下SB3,并在VD7熄滅后再保持3秒鐘,到時(shí)LCD顯示屏?xí)@示“SET_PASSWORD”,這時(shí)即可用SB1、SB2輸入新的12位密碼。下次使用時(shí)必須輸入新的密碼才能打開鎖,這樣經(jīng)常變更密碼可提高鎖的安全性。

由于受按鍵數(shù)量的限制,密碼采用了二進(jìn)制,12位密碼的組合也只有4096種,為了提高破解的難度,有兩種方法:一種方法是修改程序使得連續(xù)輸入幾次密碼錯(cuò)誤后將電路鎖定一段時(shí)間,延長破解的時(shí)間;另一種方法是密碼采用十進(jìn)制數(shù),但這就要使用更多的按鍵,從而使用較多的I/0接口,電路必須進(jìn)行調(diào)整。上述兩種方法如何實(shí)施留給讀者自己思考。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5363

    瀏覽量

    121155
  • 密碼鎖
    +關(guān)注

    關(guān)注

    6

    文章

    249

    瀏覽量

    35113
  • 電子密碼鎖
    +關(guān)注

    關(guān)注

    8

    文章

    90

    瀏覽量

    20668
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    如何利用AT89C51單片機(jī)制作簡易密碼鎖

    如何利用AT89C51單片機(jī)制作簡易密碼鎖
    發(fā)表于 10-08 06:27

    基于單片機(jī)電子密碼鎖設(shè)計(jì)

    單片機(jī)電子密碼鎖Proteus仿真+程序3.6 開鎖機(jī)構(gòu)在基于單片機(jī)電子密碼鎖設(shè)計(jì)中,用戶需要輸入密碼
    發(fā)表于 11-30 08:24

    PIC單片機(jī)設(shè)計(jì)電子密碼鎖

    介紹用PIC16F84單片機(jī)制作電子密碼鎖。PIC16F84單片機(jī)共18個(gè)引腳,13個(gè)可用I/O接口。芯片內(nèi)有1K×14的FLASHROM程序存儲(chǔ)器,36×8的靜態(tài)RAM的通用寄存器
    發(fā)表于 06-11 15:05 ?131次下載

    采用單片機(jī)電子密碼鎖控制電路

    采用單片機(jī)電子密碼鎖控制電路,有需要的下來看看。
    發(fā)表于 02-17 16:51 ?20次下載

    基于單片機(jī)電子安全密碼鎖的設(shè)計(jì)

    基于單片機(jī)電子安全密碼鎖的設(shè)計(jì),有需要的下來看看。
    發(fā)表于 02-17 16:50 ?28次下載

    基于單片機(jī)電子密碼鎖設(shè)計(jì)程序

    基于單片機(jī)電子密碼鎖設(shè)計(jì),經(jīng)測試之后,好用
    發(fā)表于 03-14 15:04 ?7次下載

    ##單片機(jī)電子密碼鎖+新

    密碼鎖,6為密碼,報(bào)警電路,輸錯(cuò)3次報(bào)警,單片機(jī)stc89C52
    發(fā)表于 05-19 15:32 ?65次下載

    基于51單片機(jī)電子密碼鎖的Proteus仿真設(shè)計(jì)

    基于51單片機(jī)電子密碼鎖的Proteus仿真設(shè)計(jì)
    發(fā)表于 06-17 16:00 ?79次下載

    用PIC單片機(jī)設(shè)計(jì)電子密碼鎖

    用PIC單片機(jī)設(shè)計(jì)電子密碼鎖
    發(fā)表于 01-04 14:16 ?3次下載

    基于單片機(jī)與串行通信的電子密碼鎖設(shè)計(jì)

    基于單片機(jī)與串行通信的電子密碼鎖設(shè)計(jì)
    發(fā)表于 01-21 12:00 ?4次下載

    基于單片機(jī)電子密碼鎖設(shè)計(jì)與實(shí)現(xiàn)

    基于單片機(jī)電子密碼鎖設(shè)計(jì)與實(shí)現(xiàn)
    發(fā)表于 01-21 12:00 ?27次下載

    基于單片機(jī)密碼鎖設(shè)計(jì)方案

    一種能防止多次試探密碼的基于單片機(jī)密碼鎖設(shè)計(jì)方案,根據(jù)用戶的10條總體要求,給出了該單片機(jī)密碼鎖的硬件電路和軟件程序,同時(shí)給出了
    的頭像 發(fā)表于 02-14 16:46 ?1.8w次閱讀
    基于<b class='flag-5'>單片機(jī)</b>的<b class='flag-5'>密碼鎖</b>設(shè)計(jì)方案

    使用單片機(jī)制作密碼鎖電路圖和程序與流程圖的詳細(xì)說明

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用單片機(jī)制作密碼鎖電路圖和程序與流程圖的詳細(xì)說明。
    發(fā)表于 09-09 16:08 ?47次下載
    使用<b class='flag-5'>單片機(jī)制作</b><b class='flag-5'>密碼鎖</b>的<b class='flag-5'>電路</b>圖和程序與流程圖的詳細(xì)說明

    使用單片機(jī)實(shí)現(xiàn)電子密碼鎖的設(shè)計(jì)資料說明

    隨著電子技術(shù)的發(fā)展,具有防盜報(bào)警等功能的電子密碼鎖代替密碼量少、安全性差的機(jī)械式密碼鎖已是必然趨勢。電子
    發(fā)表于 10-23 16:10 ?28次下載
    使用<b class='flag-5'>單片機(jī)</b>實(shí)現(xiàn)<b class='flag-5'>電子</b><b class='flag-5'>密碼鎖</b>的設(shè)計(jì)資料說明

    單片機(jī)制作的新型安全密碼鎖

    單片機(jī)制作的新型安全密碼鎖(單片機(jī)課程設(shè)計(jì))-該文檔為單片機(jī)制作的新型安全密碼鎖簡介資料,講解的還不錯(cuò),感興趣的可以下載看看……………………
    發(fā)表于 07-22 16:24 ?32次下載
    <b class='flag-5'>單片機(jī)制作</b>的新型安全<b class='flag-5'>密碼鎖</b>
    太阳城公司| 百家乐官网摇色子网站| 梦幻城百家乐官网的玩法技巧和规则| 百家乐玩法官网| 百家乐官网视频游戏官网| 百家乐游戏客户端| 百家乐官网不能视频| 百家乐平台哪个比较安全| 德令哈市| 玩百家乐平台| 曲阳县| 百家乐博彩通网| 沂水县| 百家乐视频小游戏| 澳门赌盘| 棋牌百家乐程序破解| 百家乐官网心得分享| 哪里有百家乐投注网| 百家乐官网中的概率| 百家乐套路| 澳门百家乐官网网上直赌| 威尼斯人娱乐城网上百家乐| 百家乐官网www| 大发888网址怎么找| 百家乐作弊手段| 百家乐官网赌场国际| 真人百家乐赢钱| 百家乐官网牌数计算法| 百家乐双龙| 百家乐官网平台网| 百家乐打闲赢机会多| 云鼎百家乐官网注册| 百家乐赌博公司| 挖掘百家乐官网赢钱秘籍| 波浪百家乐游戏中| 漳州市| 百家乐的路子怎么| 百家乐官网游戏真人游戏| 奥斯卡百家乐的玩法技巧和规则| 百家乐官网的分析| 盛京棋牌网|