單片機(jī)系統(tǒng)開發(fā)與應(yīng)用實(shí)習(xí)報(bào)告基于AT89C52單片機(jī)的電子密碼鎖_第1頁
單片機(jī)系統(tǒng)開發(fā)與應(yīng)用實(shí)習(xí)報(bào)告基于AT89C52單片機(jī)的電子密碼鎖_第2頁
單片機(jī)系統(tǒng)開發(fā)與應(yīng)用實(shí)習(xí)報(bào)告基于AT89C52單片機(jī)的電子密碼鎖_第3頁
單片機(jī)系統(tǒng)開發(fā)與應(yīng)用實(shí)習(xí)報(bào)告基于AT89C52單片機(jī)的電子密碼鎖_第4頁
單片機(jī)系統(tǒng)開發(fā)與應(yīng)用實(shí)習(xí)報(bào)告基于AT89C52單片機(jī)的電子密碼鎖_第5頁
已閱讀5頁,還剩22頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、i 單片機(jī)系統(tǒng)開發(fā)與應(yīng)用實(shí)習(xí)報(bào)告單片機(jī)系統(tǒng)開發(fā)與應(yīng)用實(shí)習(xí)報(bào)告 選題名稱選題名稱: 單片機(jī)電子密碼鎖 系(院)系(院): 專專 業(yè)業(yè): 班班 級(jí)級(jí): 姓姓 名名: 學(xué)學(xué) 號(hào)號(hào): 指導(dǎo)教師指導(dǎo)教師: 學(xué)年學(xué)期學(xué)年學(xué)期: 2009 2010 學(xué)年 第 2 學(xué)期 2010年 5 月 30 日 設(shè)計(jì)任務(wù)書設(shè)計(jì)任務(wù)書 ii 課題課題 名稱名稱 設(shè)計(jì)設(shè)計(jì) 目的目的 1.總共 8 位密碼,可以修改 2.先要設(shè)置密碼 3.然后鍵入密碼,錯(cuò)誤則報(bào)錯(cuò) 4.正確則開鎖 實(shí)驗(yàn)實(shí)驗(yàn) 環(huán)境環(huán)境 1windows 2000 以上操作系統(tǒng); 2protel 99se 和 keil 環(huán)境; 任務(wù)任務(wù) 要求要求 1.利用課余時(shí)間去

2、圖書館或上網(wǎng)查閱課題相關(guān)資料,深入理解課題含義及 設(shè)計(jì)要求,注意材料收集與整理; 2.在第 14 周末之前完成預(yù)設(shè)計(jì),并請(qǐng)指導(dǎo)教師審查。通過后方可進(jìn)行下一 步工作; 3.按指導(dǎo)書要求設(shè)計(jì)軟件,實(shí)現(xiàn)設(shè)計(jì)的功能,并顯示正確的結(jié)果; 4.要求形成穩(wěn)定的程序軟件,可以運(yùn)行,方可申請(qǐng)參加答辯; 工作進(jìn)度計(jì)劃工作進(jìn)度計(jì)劃 序號(hào)序號(hào)起止日期起止日期工工 作作 內(nèi)內(nèi) 容容 12010.3.162010.5.18 在預(yù)設(shè)計(jì)的基礎(chǔ)上,進(jìn)一步查閱資料,完成硬件電 路設(shè)計(jì)和焊接。 22010.5.192010.5.25編寫軟件代碼, 調(diào)試與完善。 32010.5.252010.5.28 測(cè)試程序,優(yōu)化代碼,增強(qiáng)功能,

3、撰寫課程設(shè)計(jì)報(bào) 告。 42010.5.282010.5.28 提交軟件代碼、硬件電路成果和設(shè)計(jì)報(bào)告,參加答 辯。 指導(dǎo)教師(簽章):指導(dǎo)教師(簽章): 年年 月月 日日 摘要: iii 在日常的生活和工作中, 住宅與部門的安全防范、單位的文件檔案、財(cái)務(wù)報(bào)表以及 一些個(gè)人資料的保存多以加鎖的辦法來解決。若使用傳統(tǒng)的機(jī)械式鑰匙開鎖,人們常 需攜帶多把鑰匙, 使用極不方便, 且鑰匙丟失后安全性即大打折扣。隨著科學(xué)技術(shù)的 不斷發(fā)展,人們對(duì)日常生活中的安全保險(xiǎn)器件的要求越來越高。為滿足人們對(duì)鎖的使 用要求,增加其安全性,用密碼代替鑰匙的密碼鎖應(yīng)運(yùn)而生。密碼鎖具有安全性高、 成本低、功耗低、易操作等優(yōu)點(diǎn)。

4、 隨著人們對(duì)安全的重視和科技的發(fā)展,許多電子智能鎖(指紋識(shí)別、ic 卡辨認(rèn)) 已在國內(nèi)外相繼面世。但是這些產(chǎn)品的特點(diǎn)是針對(duì)特定的指紋和有效卡,只能適用于 保密要求的箱、柜、門等。而且指紋識(shí)識(shí)別器若在公共場(chǎng)所使用存在容易機(jī)械損壞, ic 卡還存在容易丟失、損壞等特點(diǎn)。加上其成本較高,一定程度上限制了這類產(chǎn)品的 普及和推廣。鑒于目前的技術(shù)水平與市場(chǎng)的接收程度,電子密碼鎖是這類電子防盜產(chǎn) 品的主流。 關(guān)鍵詞: at89c51;密碼鎖;密碼二次確 目目 錄錄 iv 第第 1 1 章章 緒論緒論.1 1.1背景.1 1.2電子鎖.1 1.3電子密碼鎖的特點(diǎn).1 1.4電子密碼鎖的發(fā)展趨勢(shì).2 第第 2

5、2 章章 系統(tǒng)總體設(shè)計(jì)系統(tǒng)總體設(shè)計(jì).2 2.1系統(tǒng)結(jié)構(gòu).3 2.2 系統(tǒng)組成.3 2.3 系統(tǒng)可行性分析.3 第第 3 3 章章 硬件電路設(shè)計(jì)硬件電路設(shè)計(jì).4 3.1單片機(jī) at89c51 簡(jiǎn)介.4 3.1.1 主要特性.4 3.1.2 管腳說明.4 3.1.3 震蕩特性.6 3.1.4 芯片擦除.6 3.2復(fù)位電路.6 3.3 振蕩電路.6 3.4 數(shù)碼管.7 3.5 led.8 3.6 蜂鳴器.8 3.7 完整電路圖.9 3.8 使用到的元器件列表.10 第第 4 4 章章 軟件程序設(shè)計(jì)軟件程序設(shè)計(jì).11 4.1軟件設(shè)計(jì)流程圖.11 4.2 具體功能軟件實(shí)施.12 4.3 代碼. 14 第

6、第 5 章章 總結(jié)總結(jié).21 第第 6 6 章章 參考文參考文獻(xiàn)獻(xiàn).22 第第 7 7 章章 教師評(píng)語教師評(píng)語.23 1 第第 1 1 章章 緒論 1.11.1背景背景 隨著社會(huì)物質(zhì)財(cái)富的日益增長,安全防盜已成為社會(huì)問題。而鎖自古以來就是把 守門戶的鐵將軍,人們對(duì)它要求甚高,既要安全可靠地防盜,又要使用方便,這也是 制鎖者長期以來研制的主題。目前國內(nèi),大部分人使用的還是傳統(tǒng)的機(jī)械鎖。然而, 眼下假冒偽劣的機(jī)械鎖泛濫成災(zāi),互開率非常之高。所謂互開率,是各種鎖具的一個(gè) 技術(shù)質(zhì)量標(biāo)準(zhǔn),也就是1把鑰匙能開幾把鎖的比率。經(jīng)國家工商局、國家內(nèi)貿(mào)局、中國 消協(xié)等部門對(duì)鎖具市場(chǎng)的調(diào)查,發(fā)現(xiàn)個(gè)別產(chǎn)品的互開率居然

7、超標(biāo)26倍。 為何彈子鎖的“互開率”會(huì)如此之高?據(jù)有關(guān)專家人士剖析,彈子鎖質(zhì)量好壞主 要取決于彈子數(shù)量的多少以及彈子的大小,而彈子的多少和大小受一定條件的限制。 此外,即使是一把質(zhì)量過關(guān)的機(jī)械鎖,通過急開鎖,甚至可以在不損壞鎖的前提下將 鎖打開。機(jī)械鎖的這些弊端為一種新型的鎖-電子密碼鎖,提供了發(fā)展的空間。 1.2電子鎖 電子鎖是采取電子電路控制,以電磁鐵或者衛(wèi)星電機(jī)和鎖體作為執(zhí)行裝置的機(jī)電 一體化鎖具,相比傳統(tǒng)的機(jī)械鎖具,電子鎖不使用金屬鑰匙,保密性、精度都有很大 提高。 電子鎖的發(fā)明思路,源自古代發(fā)明的自動(dòng)機(jī)械,例如古希臘數(shù)學(xué)家赫倫的液壓自 動(dòng)門,中國古代諸葛亮的木牛流馬,它們以重力或蒸汽

8、壓力驅(qū)動(dòng),最廣泛的用途乃是 用在古代墓道的地下機(jī)關(guān)。電子工業(yè)的誕生,使得以微小電量驅(qū)動(dòng)機(jī)械成為可能,于 是有了電子鎖一日千里的躍進(jìn)。 1.3電子密碼鎖的特點(diǎn) 電子密碼鎖是一種通過密碼輸入來控制電路或是芯片工作,從而控制機(jī)械開關(guān)的 閉合,完成開鎖、閉鎖任務(wù)的電子產(chǎn)品。它的種類很多,有簡(jiǎn)易的電路產(chǎn)品,也有基 于芯片的性價(jià)比較高的產(chǎn)品?,F(xiàn)在應(yīng)用較廣的電子密碼鎖是以芯片為核心,通過編程 來實(shí)現(xiàn)的。其性能和安全性已大大超過了機(jī)械鎖,主要特點(diǎn)如下: 1保密性好,編碼量多,遠(yuǎn)遠(yuǎn)大于彈子鎖。隨機(jī)開鎖成功率幾乎為零。 2 2密碼可變。 用戶可以經(jīng)常更改密碼,防止密碼被盜,同時(shí)也可以避免因人員 的更替而使鎖的密級(jí)

9、下降。 3誤碼輸入保護(hù)。當(dāng)輸入密碼多次錯(cuò)誤時(shí),報(bào)警系統(tǒng)自動(dòng)啟動(dòng),防止試探密碼。 1.4電子密碼鎖的發(fā)展趨勢(shì) 從目前的技術(shù)水平和市場(chǎng)認(rèn)可程度看,使用最為廣泛的是鍵盤式電子密碼鎖, 該產(chǎn)品主要應(yīng)用于保險(xiǎn)箱、保險(xiǎn)柜和金庫,還有一部分應(yīng)用于保管箱和運(yùn)鈔車。鍵盤 式電子密碼在鍵盤上輸入,與打電話差不多,因而易于掌握,其突出優(yōu)點(diǎn)是“密碼”是記 在被授權(quán)人腦子里的數(shù)字和字符,既準(zhǔn)確又可靠,不會(huì)丟失(除了忘記) ,難以被竊 (除非自己泄露) 。但是密碼不能太簡(jiǎn)單,太簡(jiǎn)單了就容易被他人在鍵盤上試探出來, 或者可能被旁觀者窺測(cè)出來,造成保密性不足。當(dāng)然,密碼又不能太復(fù)雜,太復(fù)雜了 可能自己都糊涂了,或者輸入密碼操

10、作成功率低,造成使用不便。因此,為了發(fā)揚(yáng)優(yōu) 點(diǎn)、克服弱點(diǎn),鍵盤式電子密碼也在不斷發(fā)展中,如“任意設(shè)定密碼”技術(shù)使得被授權(quán)人 可以根據(jù)自己的需要或喜好設(shè)定密碼,常用常新;而“自動(dòng)更改密碼”技術(shù)使得本次輸入 的密碼將自動(dòng)更改成下次應(yīng)輸入的密碼,更改的規(guī)律不為他人所知,因而不怕旁觀者 窺測(cè);獨(dú)出心裁的“鍵盤亂序顯示”技術(shù)使得鍵盤上的固定鍵位每次顯示出的字符不固定, 并且顯示的窄小角度只能由操作者正面看得到,因而即使旁觀者看見操作動(dòng)作也難以 窺測(cè)出密碼;“多重密碼設(shè)定”技術(shù)使得單組密碼不一定有效,適合多人分權(quán)使用,需要 輸入兩組以上的密碼才被認(rèn)可,大大提高了保密性,如果限定輸入這些密碼的先后順 序或時(shí)

11、間區(qū)段,則保密性還可提高。在輸入密碼的過程中,為了限制試探密碼的企圖, 通常輸入錯(cuò)誤碼若干次或若干時(shí)間內(nèi)輸入不正確,即“封鎖”鍵盤,不再接受輸入操作。 總之,盡管新式電子防盜鎖層出不窮,但鍵盤式電子密碼防盜鎖不僅在市場(chǎng)上居于主 流地位,而且,還經(jīng)常作為其他類型電子防盜鎖的輔助輸入手段。 第第 2 2 章章 系統(tǒng)總體設(shè)計(jì) 3 2.12.1系統(tǒng)結(jié)構(gòu)系統(tǒng)結(jié)構(gòu) at89c51 數(shù)碼管 蜂鳴器 led 按鍵 復(fù)位電路 圖 21 2.22.2 系統(tǒng)組成系統(tǒng)組成 如圖 21 所示系統(tǒng)主要由 at89c51(51 系列)、數(shù)碼管、蜂鳴器、led、鍵盤、復(fù) 位電路等組成。 2.32.3 系統(tǒng)可行性分析系統(tǒng)可行性

12、分析 系統(tǒng)工作原理分析:使用 at59c51 單片機(jī)、led、蜂鳴器等。提示輸入密碼;當(dāng) 密碼輸入完畢時(shí),對(duì)輸入密碼與設(shè)定的密碼進(jìn)行比較,若密碼正確則提示鎖打開;若 密碼不正確,則報(bào)錯(cuò)。若連續(xù) 3 次輸入不正確,則發(fā)出警報(bào)聲同時(shí)鎖定鍵盤。 為了防止惡意嘗試,系統(tǒng)才用若連續(xù)輸入 3 次錯(cuò)誤密碼則發(fā)出報(bào)警聲,且鎖定鍵 盤,可以提高系統(tǒng)的安全系數(shù),同時(shí)也能夠保護(hù)合法用戶的正常使用。 第第 3 3 章章 硬件電路設(shè)計(jì)硬件電路設(shè)計(jì) 3.13.1 單片機(jī)單片機(jī) at89c51at89c51 簡(jiǎn)介簡(jiǎn)介 at89c51 是美國 atmel 公司生產(chǎn)的低電壓,高性能 cmos8 位單片機(jī),片內(nèi)含 4k 電源 4

13、 bytes 的可反復(fù)擦寫的只讀程序存儲(chǔ)器(eprom)和 128bytes 的隨機(jī)存取數(shù)據(jù)序存器 (ram) ,器件采用 atmel 公司的高密度/非易失性存儲(chǔ)技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn) mcs-51 指 令系統(tǒng),片內(nèi)置通用 8 位中央處理器(cpu)和 flash 存儲(chǔ)單元,at89c51 單片機(jī)為許 多嵌入式控制系統(tǒng)提供了一種靈活行高且價(jià)廉的方案。 3.1.1 主要特性 8031 cpu 與 mcs-51 兼容 4k 字節(jié)可編程 flash 存儲(chǔ)器(壽命: 1000 寫/擦循環(huán)) 全靜態(tài)工作:0hz-24khz 三級(jí)程序存儲(chǔ)器保密鎖定 128*8 位內(nèi)部 ram 32 條可編程 i/o 線 兩個(gè)

14、 16 位定時(shí)器/計(jì)數(shù)器 6 個(gè)中斷源 可編程串行通道 低功耗的閑置和掉電模式 片內(nèi)振蕩器和時(shí)鐘電路 3.1.23.1.2 管腳說明管腳說明 vcc:供電電壓。 gnd:接地。 p0 口:p0 口為一個(gè) 8 位漏級(jí)開路雙向 i/o 口,每腳可吸收 8ttl 門電流。當(dāng) p1 口 的管腳第一次寫 1 時(shí),被定義為高阻輸入。p0 能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以 被定義為數(shù)據(jù)/地址的第八位。在 fiash 編程時(shí),p0 口作為原碼輸入口,當(dāng) fiash 進(jìn) 行校驗(yàn)時(shí),p0 輸出原碼,此時(shí) p0 外部必須被拉高。 p1 口:p1 口是一個(gè)內(nèi)部提供上拉電阻的 8 位雙向 i/o 口,p1 口緩沖器能

15、接收輸出 4ttl 門電流。p1 口管腳寫入 1 后,被內(nèi)部上拉為高,可用作輸入,p1 口被外部下拉為 低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在 flash 編程和校驗(yàn)時(shí),p1 口作 為第八位地址接收。 p2 口:p2 口為一個(gè)內(nèi)部上拉電阻的 8 位雙向 i/o 口,p2 口緩沖器可接收,輸出 4 個(gè) ttl 門電流,當(dāng) p2 口被寫“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并 因此作為輸入時(shí),p2 口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。 p2 口當(dāng)用于外部程序存儲(chǔ)器或 16 位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),p2 口輸出地址 的高八位。在給出地址“1”時(shí),它利用

16、內(nèi)部上拉優(yōu)勢(shì),當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器 進(jìn)行讀寫時(shí),p2 口輸出其特殊功能寄存器的內(nèi)容。p2 口在 flash 編程和校驗(yàn)時(shí)接收高 5 八位地址信號(hào)和控制信號(hào)。 p3 口:p3 口管腳是 8 個(gè)帶內(nèi)部上拉電阻的雙向 i/o 口,可接收輸出 4 個(gè) ttl 門電 流。當(dāng) p3 口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于 外部下拉為低電平,p3 口將輸出電流(ill)這是由于上拉的緣故。 p3 口也可作為 at89c51 的一些特殊功能口,如下表所示: 管腳 備選功能: p3.0 rxd(串行輸入口) p3.1 txd(串行輸出口) p3.2 /int0(外部中斷 0)

17、p3.3 /int1(外部中斷 1) p3.4 t0(記時(shí)器 0 外部輸入) p3.5 t1(記時(shí)器 1 外部輸入) p3.6 /wr(外部數(shù)據(jù)存儲(chǔ)器寫選通) p3.7 /rd(外部數(shù)據(jù)存儲(chǔ)器讀選通) p3 口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號(hào)。 rst:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持 rst 腳兩個(gè)機(jī)器周期的高電平時(shí)間。 ale/prog:當(dāng)訪問外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。 在 flash 編程期間,此引腳用于輸入編程脈沖。在平時(shí),ale 端以不變的頻率周期輸出 正脈沖信號(hào),此頻率為振蕩器頻率的 1/6。因此它可用作對(duì)外部輸出的脈沖或用于定時(shí) 目的

18、。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過一個(gè) ale 脈沖。如想禁 止 ale 的輸出可在 sfr8eh 地址上置 0。此時(shí), ale 只有在執(zhí)行 movx,movc 指令是 ale 才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài) ale 禁止,置位 無效。 /psen:外部程序存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取指期間,每個(gè)機(jī)器周 期兩次/psen 有效。但在訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的/psen 信號(hào)將不出現(xiàn)。 /ea/vpp:當(dāng)/ea 保持低電平時(shí),則在此期間外部程序存儲(chǔ)器(0000h-ffffh),不 管是否有內(nèi)部程序存儲(chǔ)器。注意加密方式 1 時(shí),/ea

19、 將內(nèi)部鎖定為 reset;當(dāng)/ea 端保 持高電平時(shí),此間內(nèi)部程序存儲(chǔ)器。在 flash 編程期間,此引腳也用于施加 12v 編程 電源(vpp)。 xtal1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。 xtal2:來自反向振蕩器的輸出。 3.1.33.1.3 震蕩特性震蕩特性 xtal1 和 xtal2 分別為反向放大器的輸入和輸出。該反向放大器可以配置為片內(nèi)振 6 蕩器。石晶振蕩和陶瓷振蕩均可采用。如采用外部時(shí)鐘源驅(qū)動(dòng)器件,xtal2 應(yīng)不接。有 余輸入至內(nèi)部時(shí)鐘信號(hào)要通過一個(gè)二分頻觸發(fā)器,因此對(duì)外部時(shí)鐘信號(hào)的脈寬無任何 要求,但必須保證脈沖的高低電平要求的寬度。 3.1.43.1

20、.4 芯片擦除芯片擦除 整個(gè) perom 陣列和三個(gè)鎖定位的電擦除可通過正確的控制信號(hào)組合,并保持 ale 管腳處于低電平 10ms 來完成。在芯片擦操作中,代碼陣列全被寫“1”且在任何非空 存儲(chǔ)字節(jié)被重復(fù)編程以前,該操作必須被執(zhí)行。 此外,at89c51 設(shè)有穩(wěn)態(tài)邏輯,可以在低到零頻率的條件下靜態(tài)邏輯,支持兩種軟 件可選的掉電模式。在閑置模式下,cpu 停止工作。但 ram,定時(shí)器,計(jì)數(shù)器,串口和 中斷系統(tǒng)仍在工作。在掉電模式下,保存 ram 的內(nèi)容并且凍結(jié)振蕩器,禁止所用其他 芯片功能,直到下一個(gè)硬件復(fù)位為止。 3.23.2 復(fù)位電路復(fù)位電路 圖 32 時(shí)鐘電路工作后,在 rest 管腳上

21、加兩個(gè)機(jī)器周期的高電平,芯片內(nèi)部開始進(jìn)行初 始復(fù)位(如圖 32) 。 3.33.3 振蕩電路振蕩電路 7 圖 33 本設(shè)計(jì)晶振選擇頻率為 12mhz,電容選擇 30pf 如圖(33)。經(jīng)計(jì)算得單片機(jī)工 作胡機(jī)器周期為: 12(112m)=1us。 3.43.4 數(shù)碼管數(shù)碼管 圖 34 本設(shè)計(jì)采用兩個(gè) 4 位 8 段共陰極數(shù)碼管。由于由單片機(jī)直接驅(qū)動(dòng)的直流電流不夠, 數(shù)碼管亮度顯得不足,所以加上三極管 s9013 用以放大電流。 因?yàn)?led 數(shù)碼管合適的驅(qū)動(dòng)電流大約為 9ma 到 20ma 左右,為了適 led 數(shù)碼管工作 電流在 10ma 左右,具體計(jì)算如下: ib=(5v-1.4v-0.7

22、v)/27k=0.110-3a ie= ib(+1)=10 ma 使用的 9013 的放大倍數(shù) 為 100. 8 圖5 3.53.5 ledled 圖 36 由于 led 使用 p0 口驅(qū)動(dòng)要加上上拉電阻如圖 36。 3.63.6 蜂鳴器蜂鳴器 圖 37 由于蜂鳴器使用 p0 口驅(qū)動(dòng)要加上上拉電阻如圖 37。 9 3.73.7 完整電路圖完整電路圖 圖 38 10 3.8 使用到的元使用到的元器器件列表件列表 元器件規(guī)格/型號(hào)數(shù)量 四位八段共陰數(shù)碼管3461afr1-b101 四位八段共陰數(shù)碼管sr420361 三極管sr90138 三極管s9651 電阻27k8 電阻10k 電阻1k 電解電

23、容0.47uf/50v1 瓷片電容30pf2 單片機(jī)at89c511 表 39 第第 4 章章 軟件程序設(shè)計(jì)軟件程序設(shè)計(jì) 本系統(tǒng)程序部分使用 c 語言編寫,c 語言是一種高級(jí)程序設(shè)計(jì)語言,它的優(yōu)點(diǎn)是 簡(jiǎn)潔明了、可移植性高。 提示輸入密碼;當(dāng)密碼輸入完畢時(shí),對(duì)輸入密碼與設(shè)定的密碼進(jìn)行比較,若密碼 正確則提示鎖打開;若密碼不正確,則報(bào)錯(cuò)。若連續(xù) 3 次輸入不正確,則發(fā)出警報(bào)聲 同時(shí)鎖定鍵盤。 為了防止惡意嘗試,系統(tǒng)才用若連續(xù)輸入 3 次錯(cuò)誤密碼則發(fā)出報(bào)警聲,且鎖定鍵 盤,可以提高系統(tǒng)的安全系數(shù),同時(shí)也能夠保護(hù)合法用戶的正常使用。 4.1軟件設(shè)計(jì)流程圖軟件設(shè)計(jì)流程圖 11 開始 輸入密碼 正確否?

24、開鎖 判斷按鍵 lock modify 鍵 上鎖 結(jié)束 輸入密碼 正確否? 輸入新密碼 再次輸入 一致否? 修改密碼 yes no no yes no yes 圖 41 4.2 具體功能軟件實(shí)施具體功能軟件實(shí)施 4.2.14.2.1 開始等待流程開始等待流程 12 開始 嘟的一聲 判斷是否 有按鍵? 結(jié)束 no yes 圖 42 4.2.24.2.2 密碼檢查功能密碼檢查功能 本系統(tǒng)使用數(shù)組 password6存儲(chǔ)密碼,系統(tǒng)初始化對(duì)數(shù)組負(fù)值 password6 5,6,7,9,10,11相當(dāng)于鍵盤上的 1,2,3,4,5,6。輸入密碼的時(shí)候,先將輸入的 每一位密碼分別放置在數(shù)組 check6中

25、,然后再將 check6與 password6的每一位 分別對(duì)照。若每一位都相等,密碼檢查通過。 13 開始 輸入一位密碼, 數(shù)碼管顯示 “” k=6? k=0 按鍵為 cel? 結(jié)束 yes no no yes 圖 43 4.34.3 代碼代碼 #include/聲明調(diào)用了 reg52.h 單片機(jī)特征庫 #define uchar unsigned char/定義 #define uint unsigned int sbit spk=p37;/定義蜂鳴器端口 sbit act=p32;/將單片機(jī)的 p3.2 口用 act 來關(guān)聯(lián),以后對(duì) act 的操作就是對(duì) p3.2 口 的操作 bit o

26、k_flag;/定義標(biāo)志位,bit=1 位 static uchar indata8;/定義靜態(tài)全局變量 static uchar status=0 x01; static uchar l,m; 14 uchar i,j; void bp(); void delay(); void password_set(); void password_in(); void main()/主函數(shù) bp();/初始化 1s 音提示 password_set(); for (i=0;i22;i+) bp();/密碼設(shè)置完成長音提示 l=0; while(l3) password_in(); if(!ok_fl

27、ag) act=0; for(i=0;i8;i+) bp();/開鎖長音提示 act=1; l=0; else l+; 15 for(i=0;i40;i+) bp();/報(bào)警 5s ok_flag=0; for(i=0;i24;i+) for(j=0;j200;j+) bp();/報(bào)警 1min l=0; void password_set(void)/密碼設(shè)置 m=0; while(m8) switch(status) case 0 x01: if(p1=0 xff) status=0 x01; else 16 delay(); status=0 x02; break; case 0 x02

28、: if(p1!=0 xff) bp();/按鍵后短音提示 indatam=p1;/保存設(shè)置密碼 m+; status=0 x01; break; default:break; m=0; void password_in(void)/密碼輸入 17 m=0; while(m8) switch(status) case 0 x01: if(p1=0 xff) status=0 x01; else delay(); status=0 x02; break; case 0 x02: if(p1!=0 xff) bp();/短音提示 if(p1!=indatam) ok_flag=1; 18 m+;

29、status=0 x01; break; default:break; m=0; void bp(void)/蜂鳴器 spk=0;/置低電平 for(i=0;i250;i+) for(j=0;j124;j+) spk=spk;/取反 spk=1;/置高電平 void delay(void)/延遲 19 for(i=0;i20;i+) for(j=0;j125;j+); 20 總結(jié)總結(jié) 通過這次課程設(shè)計(jì),讓我復(fù)習(xí)了很多學(xué)過的舊知識(shí),同時(shí)鍛煉了自己的動(dòng)手能力 和查閱資料。尤其是解決在實(shí)際中解決排查問題的能力。 1.在設(shè)計(jì)中,我學(xué)到了如何使用 c 語言對(duì)單片機(jī)進(jìn)行編寫程序,熟悉了使用 keil 軟件,并且加深了對(duì)單片機(jī)的編程技巧。 2.在做這個(gè)設(shè)計(jì)的過程中,我遇到了不少的問題。這鍛煉了我篩選、查閱資料,并 將理論結(jié)合到自己的設(shè)計(jì)中的能力。一步一步的排除故障原因,找到故

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論