基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)_第1頁(yè)
基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)_第2頁(yè)
基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)_第3頁(yè)
基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)_第4頁(yè)
基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩52頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)一、設(shè)計(jì)任務(wù)及要求:設(shè)計(jì)任務(wù):設(shè)計(jì)一個(gè)具有設(shè)置數(shù)字密碼任設(shè)、存儲(chǔ)、畫面顯示、語(yǔ)言播報(bào)以及具有報(bào)警功能的密碼鎖。要求:1(密碼由六位數(shù)字組成,可以由用戶自定義設(shè)置。2(密碼鎖具有語(yǔ)言播報(bào)和狀態(tài)顯示功能。3(一次性只允許三次密碼輸入操作,支持密碼修改。4(具有報(bào)警功能。指導(dǎo)教師簽名2013年月日二、指導(dǎo)教師評(píng)語(yǔ):指導(dǎo)教師簽名:2013年月日三、成績(jī)驗(yàn)收蓋章2013年月日目錄基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第1頁(yè)。目錄..........................................................................................................................21設(shè)計(jì)目的..............................................................................................................12設(shè)計(jì)的主要內(nèi)容和要求.......................................................................................13整體設(shè)計(jì)方案.......................................................................................................14硬件電路設(shè)計(jì)........................................................................................................2基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第1頁(yè)。4.1系統(tǒng)總電路的設(shè)計(jì).....................................................................................24.25V直流穩(wěn)壓電源模塊..............................................................................34.3控制電路的設(shè)計(jì).........................................................................................44.4語(yǔ)音模塊電路的設(shè)計(jì)................................................................................44.5信號(hào)輸入電路的設(shè)計(jì)..................................................................................5基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第2頁(yè)。4.6密碼儲(chǔ)存電路的設(shè)計(jì)..................................................................................6基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第2頁(yè)。4.7LCD顯示電路的設(shè)計(jì)...............................................................................74.8繼電器模擬鎖模塊及蜂鳴器報(bào)警模塊.......................................................85軟件程序設(shè)計(jì)........................................................................................................96系統(tǒng)仿真............................................................................................................126.1系統(tǒng)仿真環(huán)境及參數(shù)設(shè)置........................................................................156.2系統(tǒng)仿真結(jié)果及其分析.............................................................................157使用說明.............................................................................................................208設(shè)計(jì)總結(jié)............................................................................................................20基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第3頁(yè)。參考文獻(xiàn)..........................................................................................................21基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第3頁(yè)。附件.................................................................................................................22語(yǔ)音智能密碼鎖的設(shè)計(jì)1設(shè)計(jì)目的本文所設(shè)計(jì)的智能密碼鎖系統(tǒng)是以89C52為中心控制器、4*4鍵盤采集輸入信號(hào)、用24C04芯片對(duì)設(shè)定的密碼進(jìn)行保存,同時(shí)設(shè)有SX6288組成的語(yǔ)音模塊,通過LCD、LED燈以及語(yǔ)音模塊直觀的顯示密碼鎖所處狀態(tài)。用戶可以自定義設(shè)置六位的數(shù)字密碼,并有三次輸入密碼的機(jī)會(huì),當(dāng)密碼輸入錯(cuò)誤時(shí)密碼鎖將會(huì)發(fā)出報(bào)警聲,當(dāng)三次輸入密碼錯(cuò)誤時(shí),密碼鎖將進(jìn)行鍵盤鎖定一段時(shí)間。2設(shè)計(jì)的主要內(nèi)容和要求1)LCD能夠及時(shí)顯示密碼鎖的狀態(tài)信息。2)語(yǔ)音模塊能夠播報(bào)密碼鎖狀態(tài)。3)能夠設(shè)定初始密碼,支持密碼修改。4)能夠快速、準(zhǔn)確的采集鍵盤上的輸入信息。5)用24C04芯片進(jìn)行設(shè)定密碼和保存。6)當(dāng)密碼輸入錯(cuò)誤時(shí),系統(tǒng)自行報(bào)警,并在連續(xù)輸入超過三次密碼錯(cuò)誤時(shí),將對(duì)鍵盤鎖定一段時(shí)間。7)設(shè)計(jì)一個(gè)5V的穩(wěn)定電源,給系統(tǒng)供電。8)系統(tǒng)自定義強(qiáng),工作穩(wěn)定、安全。3整體設(shè)計(jì)方案基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第4頁(yè)。本文設(shè)計(jì)的語(yǔ)音智能密碼鎖系統(tǒng)框圖如圖3.1所示。系統(tǒng)主要分為電源模塊、控制模塊、語(yǔ)音模塊、密碼保存模塊、LCD顯示模塊、模擬鎖以及蜂鳴器報(bào)警模塊組成?;趩纹瑱C(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第4頁(yè)。-1-語(yǔ)音播報(bào)模電源模塊塊單LCD顯示模塊片鍵盤模塊機(jī)模擬鎖24C04密碼存報(bào)警模塊儲(chǔ)模塊圖3.1智能密碼鎖系統(tǒng)框圖本系統(tǒng)分為寫初始密碼和密碼鎖工作兩部分。1)寫密碼部分:開始時(shí)LCD顯示初始化狀態(tài),進(jìn)鍵盤掃描,當(dāng)按下C鍵后,可以自定義設(shè)定六位的密碼,當(dāng)按下D鍵時(shí),LCD顯示所設(shè)密碼。2)密碼鎖工作部部分:開始時(shí)LCD顯示初始狀態(tài),鎖處于關(guān)的狀態(tài),紅色LED亮,等待鍵盤掃描。按下A鍵后,蜂鳴器響三聲,LCD顯示請(qǐng)輸入密碼提示進(jìn)入開鎖進(jìn)程,此時(shí)有三次輸入密碼機(jī)會(huì)。若輸入密碼正確,將有蜂鳴器將會(huì)響四聲,LCD顯示鎖已打開,紅色LED滅、綠色LED亮四種方式提示成功開鎖,此時(shí),鎖處于已開鎖狀態(tài)。之后若按下E鍵系統(tǒng)將會(huì)進(jìn)入初始狀態(tài);如果此時(shí)按下B鍵,系統(tǒng)將會(huì)進(jìn)入重設(shè)密碼進(jìn)程,可以自定義重設(shè)六位的數(shù)字密碼,設(shè)定后按下E鍵,系統(tǒng)進(jìn)入初始狀態(tài)。若輸入密碼錯(cuò)誤,蜂鳴器將會(huì)發(fā)出報(bào)警聲,連續(xù)三次輸入錯(cuò)誤密碼,系統(tǒng)將會(huì)對(duì)鍵盤鎖定一段時(shí)間,按下E鍵后,系統(tǒng)進(jìn)入讀密碼初始狀態(tài)。4硬件電路設(shè)計(jì)4.1系統(tǒng)總電路的設(shè)計(jì)本系統(tǒng)原理圖如圖4.1所示:基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第5頁(yè)。-2-基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第5頁(yè)。圖4.1系統(tǒng)電路原理圖在設(shè)計(jì)本系統(tǒng)硬件時(shí),主要有以下電路模塊:1)+5V直流穩(wěn)壓電源模塊;2)系統(tǒng)硬件將采用AT89C52單片機(jī)為控制部分;3)SX6288中文語(yǔ)音合成播報(bào)模塊;4)以4*4矩陣鍵盤為信號(hào)輸入模塊;5)采用24C04芯片作為保存密碼模塊;6)LCD顯示電路模塊;7)繼電器模擬鎖模塊及蜂鳴器報(bào)警模塊。4.2直流穩(wěn)壓電源模塊系統(tǒng)5V直流電源圖4.2電路供電,它的工作過程如下:220V市電經(jīng)過變壓器降壓為9V,經(jīng)電容濾波變?yōu)槠交?0.8V電壓,最后經(jīng)過7805三端穩(wěn)壓器電路降壓,再濾波最終得到5V的直流電源。從而保證芯片在正常電壓范圍內(nèi)工作,保證了整個(gè)電路的正常工作。-3-基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第6頁(yè)。圖4.2直流穩(wěn)壓電源電路原理圖基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第6頁(yè)。4.3控制電路的設(shè)計(jì)本設(shè)計(jì)系統(tǒng)采用AT89C52單片機(jī)作為總控制電路,如圖4.3所示。本單片機(jī)具有40個(gè)引腳,6個(gè)中斷源,20個(gè)I/O接口。本設(shè)計(jì)以P0以及P2、P3端口作為信號(hào)輸出口,P1端口作為信號(hào)采集輸入口,通過C語(yǔ)言編程對(duì)其進(jìn)行控制,本設(shè)計(jì)利用其集成度高,體積小,開發(fā)性能好,控制能力強(qiáng),可靠性強(qiáng)的特點(diǎn)使智能密碼鎖工作穩(wěn)定安全。圖4.3單片機(jī)電路圖4.4語(yǔ)音模塊電路的設(shè)計(jì)本語(yǔ)音模塊包括:控制模塊、SX6288A語(yǔ)音合成芯片、數(shù)據(jù)庫(kù)芯片spiflash、功放模塊和喇叭。主控制器和SX6288A之間通過UART接口連接,控制器通過通-4-基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第7頁(yè)。訊接口SX6288A發(fā)送控制命令和文本,SX6288A把接收到的文本轉(zhuǎn)化為語(yǔ)音信號(hào)輸出,輸出的信號(hào)經(jīng)過功率放大器進(jìn)行放大后接到喇叭進(jìn)行播放。SX6288A具有音質(zhì)好、自然度高、使用方法簡(jiǎn)單、合成速度快、價(jià)格低等特點(diǎn),支持GB2312、GBK、BIG5和UNICODE內(nèi)碼格式的文本,支持多種通訊波特率。實(shí)物圖如圖4.4所示:基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第7頁(yè)。圖4.4語(yǔ)音模塊實(shí)物圖從左至右引腳名稱和說明如下:SP+:0.5W8歐姆的揚(yáng)聲器正級(jí)。SP-:0.5W8歐姆的揚(yáng)聲器正級(jí)。BUSY:語(yǔ)音處理忙信號(hào),忙為高電平,不忙為低電平。TX:模塊的串行數(shù)據(jù)發(fā)送端,連接單片機(jī)P3.0RXD引腳。RX:模塊的串行數(shù)據(jù)接收端,連接單片機(jī)P3.1TXD引腳。GND:電源地GND。VCC;電源直流電3.3-5V。4.5信號(hào)輸入電路的設(shè)計(jì)本設(shè)計(jì)利用4*4矩陣鍵盤作為信號(hào)電路,其電路圖如圖4.5所示:圖4.54*4鍵盤信號(hào)輸入電路的設(shè)計(jì)基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第8頁(yè)。-5-基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第8頁(yè)。單片機(jī)通過對(duì)4*4鍵盤掃描,采集輸入指令,從而使單片機(jī)完成相應(yīng)數(shù)據(jù)處理。4*4矩陣鍵盤工作原理如下:4*4矩陣鍵盤采用逐行掃描法,依次從第一至最末行線上發(fā)出低電平信號(hào),如果該行線所連接的鍵沒有按下的話,則列線所接的端口得到的是全“1”信號(hào),如果有鍵按下的話,則得到非全“1”信號(hào)。然后再通過從列線讀入的信號(hào)來識(shí)別是哪一列的按鍵閉合。為了防止雙鍵多多鍵同時(shí)按下,再以同樣的方法往下掃描,一直到最后一行,若發(fā)現(xiàn)僅有一個(gè)“1”,則為有效鍵,否則全部作廢。本設(shè)計(jì)以P1^0-P^3為行掃描信號(hào),在通過P1^4-P^7作為列線讀入。對(duì)各個(gè)按鍵進(jìn)行相應(yīng)功能的設(shè)置,單片機(jī)對(duì)有效鍵時(shí)的信號(hào)采集,進(jìn)而對(duì)采集的信號(hào)進(jìn)行處理。4.6密碼儲(chǔ)存電路的設(shè)計(jì)本設(shè)計(jì)采用AT24C04芯片作為密碼保存模塊電路,其引腳圖如4.6.1所示。2AT24C04是典型的IC總線結(jié)構(gòu),具有512bit容量EEPROM存儲(chǔ)器,其是一種采用2IC總線接口的串行總線存儲(chǔ)器,這類存儲(chǔ)器具有體積小、引腳少、功耗低、工2作電壓范圍寬等特點(diǎn)。其具有支持IC總線協(xié)議、占用單片機(jī)I/O端口少,芯片擴(kuò)展方便、讀寫簡(jiǎn)單等優(yōu)點(diǎn)。密碼儲(chǔ)存電路如圖4.6.2所示:基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第9頁(yè)。圖4.6.1AT24C04引腳圖基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第9頁(yè)。圖4.6.2密碼儲(chǔ)存電路-6-工作原理:AT24C04傳送數(shù)據(jù)過程中共有三種類型信號(hào):開始信號(hào)、停止信號(hào)和應(yīng)答信號(hào)。開始信號(hào):SCL保持高電平的狀態(tài)下,SDA出現(xiàn)下降沿。出現(xiàn)開始信號(hào)以后,總線被認(rèn)為“忙”。停止信號(hào):SCL保持高電平的狀態(tài)下,SDA出現(xiàn)上升沿。停止信號(hào)過后,總線被認(rèn)為“空閑”。應(yīng)答信號(hào):接收數(shù)據(jù)的器件在接收到8位數(shù)據(jù)后,向發(fā)送數(shù)據(jù)的器件發(fā)出特定的低電平脈沖,表示已收到數(shù)據(jù)?;趩纹瑱C(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第10頁(yè)。主器件產(chǎn)生開始信號(hào)以后,發(fā)送的第一個(gè)字節(jié)為控制字節(jié)。前七位為從器件的地址片選信號(hào)。最低位為數(shù)據(jù)傳送方向位(高電平表示讀從器件,低電平表示寫從器件),然后發(fā)送一個(gè)選擇從器件片內(nèi)地址的字節(jié),來決定開始讀寫數(shù)據(jù)的起始地址。接著再發(fā)送數(shù)據(jù)字節(jié),可以是單字節(jié)數(shù)據(jù),也可以是一組數(shù)據(jù),由主器件來決定。從器件每接收到一個(gè)字節(jié)以后,都要返回一個(gè)應(yīng)答信號(hào)(ASK=0)。主器件在應(yīng)答時(shí)鐘周期高電平期間釋放SDA線,轉(zhuǎn)由從器件控制,從器件在這個(gè)時(shí)鐘周期的高電平期間必須拉低SDA線,并使之為穩(wěn)定的低電平,作為有效的應(yīng)答信號(hào)。在本設(shè)計(jì)中通過單片機(jī)P3.4和P3.5引腳分別對(duì)AT24C04芯片SCL和SDA引腳控制,實(shí)行密碼數(shù)據(jù)的讀和寫,從而完成密碼的設(shè)定保存。4.7LCD顯示電路的設(shè)計(jì)基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第10頁(yè)。本設(shè)計(jì)采用1602液晶作為顯示電路,可以進(jìn)行背光對(duì)比度調(diào)節(jié),內(nèi)含復(fù)位電路,提供了各種控制命令,如:清屏、字符閃爍、光標(biāo)閃爍、顯示移位等多種功能,有80字節(jié)顯示數(shù)據(jù)存儲(chǔ)器DDRAM內(nèi)建有160個(gè)5X7點(diǎn)陣的字型的字符發(fā)生器CGROM8個(gè)可由用戶自定義的5X7的字符發(fā)生器CGRAM。其電路圖如圖4.7所示。在本系統(tǒng)中,單片機(jī)P0端口作為L(zhǎng)CD數(shù)據(jù)接收口,P2.0-P2.2控制液晶的讀寫和使能端,完成對(duì)液晶的顯示控制。圖4.7LCD顯示電路-7-4.8繼電器模擬鎖模塊及蜂鳴器報(bào)警模塊基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第11頁(yè)。在本設(shè)計(jì)系統(tǒng)中用繼電器斷開與閉合模擬鎖的開鎖與鎖定的狀態(tài),繼電器一個(gè)端口接在單片機(jī)P3.6,當(dāng)P3.6為高電平時(shí),繼電器繞線電流通過三極管Q2放大,繞線產(chǎn)生磁效應(yīng),吸合銜鐵,視為開鎖,其電路圖如圖4.8.1所示。在報(bào)警模塊中,通過一個(gè)三極管放大電流從而完成蜂鳴器的驅(qū)動(dòng),當(dāng)P3.7端口為高電平時(shí),蜂鳴器發(fā)出響聲,低電平時(shí)不響。本設(shè)計(jì)通過對(duì)電平頻率的控制從而實(shí)現(xiàn)不同的響聲。其電路圖如4.8.2所示?;趩纹瑱C(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第11頁(yè)。圖4.8.1模擬鎖電路圖圖4.8.2報(bào)警電路-8-5軟件程序設(shè)計(jì)5.1系統(tǒng)程序設(shè)計(jì)本系統(tǒng)程序分為兩部分,初始寫密碼程序和密碼鎖工作程序。如圖所示圖5.1基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第12頁(yè)。為寫初始密碼流程圖,圖5.2為密碼工作流程圖。基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第12頁(yè)。開始初始化畫面顯示鍵盤掃描N按鍵C是否按下Y密碼輸入鍵盤掃描N按鍵D是否按下Y顯示設(shè)置密碼結(jié)束圖5.1初始密碼程序設(shè)定流程圖-9-開始系統(tǒng)初始化信息提示鍵盤掃描密碼輸入、語(yǔ)音提示NO報(bào)警、語(yǔ)判斷密碼是否正確音播報(bào)YES基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第13頁(yè)。開鎖狀態(tài)基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第13頁(yè)。信息提示是否重設(shè)密碼YES輸入密碼、NO語(yǔ)音提示閉鎖圖5.2密碼鎖工作主程序流程圖-10-1)寫初始密碼部分:LCD顯示初始化狀態(tài),系統(tǒng)進(jìn)入鍵盤掃描,僅當(dāng)C鍵按下后,系統(tǒng)進(jìn)入密碼設(shè)定階段,其他鍵對(duì)系統(tǒng)不產(chǎn)生作用,進(jìn)入設(shè)定階段后,可以自定義設(shè)定六位的密碼。繼續(xù)對(duì)鍵盤掃描,當(dāng)按下D鍵時(shí),LCD顯示所設(shè)密碼,按下C鍵可以重設(shè)密碼,按下其他鍵是將不會(huì)對(duì)系統(tǒng)產(chǎn)生影響。其設(shè)計(jì)流程圖如圖5.1所示。2)密碼鎖工作部分產(chǎn)生:LCD顯示初始狀態(tài),系統(tǒng)進(jìn)入鍵盤掃描。僅當(dāng)按下A鍵后,蜂鳴器響三聲,LCD顯示請(qǐng)輸入密碼提示進(jìn)入開鎖進(jìn)程,此時(shí)有三次輸入密碼機(jī)會(huì)。若密碼輸入正確,蜂鳴器響四聲,LCD顯示鎖已打開,紅色LED滅、綠色LED亮,若按下E鍵系統(tǒng)將會(huì)進(jìn)入初始狀態(tài);如果此時(shí)按下B鍵,系統(tǒng)將會(huì)進(jìn)入重設(shè)密碼進(jìn)程,可以自定義重設(shè)六位的數(shù)字密碼,設(shè)定后按下E鍵,系統(tǒng)進(jìn)入初始狀態(tài)。若輸入密碼錯(cuò)誤,蜂鳴器將會(huì)發(fā)出報(bào)警聲,連續(xù)三次輸入錯(cuò)誤密碼,系統(tǒng)將會(huì)對(duì)鍵盤鎖定一段時(shí)間,按下E鍵后,系統(tǒng)進(jìn)入讀密碼初始狀態(tài)。其流程圖如圖5.2所示。5.2主要程序設(shè)計(jì)基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第14頁(yè)。1)初始密碼設(shè)定基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第14頁(yè)。在程序中包含蜂鳴器驅(qū)動(dòng)子函數(shù)、延時(shí)子函數(shù)、4*4鍵盤掃描函數(shù)、開機(jī)液晶顯示子函數(shù)、寫密碼子函數(shù)、讀密碼子函數(shù)、1602驅(qū)動(dòng)子頭文件函數(shù)、AT24C04驅(qū)動(dòng)頭文件函數(shù)(見附件)。其主函數(shù)如下所示:voidmain(){uchari;BEEP=0;start:Delay_ms(10);lcd_init();I2C_init();lcd_wcmd(0x00|0x80);i=0;while(line1_data[i]!='\0'){-11-lcd_wdat(line1_data[i]);i++;}lcd_wcmd(0x40|0x80);i=0;while(line2_data[i]!='\0'){lcd_wdat(line2_data[i]);i++;}while(1){基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第15頁(yè)。P1=0xf0;基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第15頁(yè)。if(P1!=0xf0){MatrixKey();if(key==0x0c)WriteCode();if(key==0x0d)ReadCode();if(key==0x0e)gotostart;}}}2)密碼鎖工作函數(shù)在程序中包含蜂鳴器驅(qū)動(dòng)子函數(shù)、延時(shí)子函數(shù)、4*4鍵盤掃描函數(shù)、開機(jī)液晶顯示子函數(shù)、寫密碼子函數(shù)、讀密碼子函數(shù)、密碼輸入錯(cuò)誤顯示子函數(shù)、密碼輸入正確顯示子函數(shù)、重設(shè)密碼子函數(shù)、報(bào)警鳴聲子函數(shù)、定時(shí)中斷子函數(shù)、1602驅(qū)動(dòng)子頭文件函數(shù)、AT24C04驅(qū)動(dòng)頭文件函數(shù)(見附件)。其主函數(shù)如下所示:voidmain(){-12-TMOD=0x21;//定時(shí)器0方式1定時(shí)器1工作在方式2TH0=0xee;//5ms定時(shí)初值TL0=0x00;EA=1;//開總中斷基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第16頁(yè)。ET0=1;//打開定時(shí)器0基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第16頁(yè)。SCON=0x50;//串口工作方式為1,串行允許接收TR1=1;//允許定時(shí)器1工作TH1=0xfd;//波特率9600bpsfosc="11".0592MHzTL1=0xfd;ES=1;//開串口中斷Delay_ms(10);lcd_init();//液晶初始化I2C_init();//I2C初始化START:RELAY=1;//繼電器關(guān)閉lcd_clr();//調(diào)入清屏函數(shù)StartDisp();//開機(jī)畫面顯示read_nbyte(0xa0,0x00,code_buf,6);//從24Cxx的0x00開始的單元中讀出6個(gè)密碼存入code_buf[]數(shù)組中P1=0xf0;while(P1==0xf0);//等待按鍵按下SCAN:MatrixKey();//鍵盤掃描if(key!=0x0a)gotoSCAN;//若按下的不是A鍵,跳轉(zhuǎn)到標(biāo)號(hào)SCAN處繼續(xù)掃描//Uart_SendString(shuru);//語(yǔ)音播報(bào)密碼錯(cuò)誤TR0=1;//啟動(dòng)定時(shí)器Delay_ms(500);beep();基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第17頁(yè)。if(flag_2s==1)flag_2s=0;//若2s到,則將2s標(biāo)志位清0elsegotoSCAN;//若2s到,則將2s標(biāo)志位清0基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第17頁(yè)。-13-PassIn();//調(diào)用密碼輸入函數(shù)while(1){if(flag_comp==1){MatrixKey();//鍵盤掃描if(key==0x0b)//若有B按下進(jìn)入密碼重設(shè){PassSet();//調(diào)入密碼設(shè)置函數(shù)MatrixKey();if(key==0x0e)gotoSTART;//若按下了E鍵,則跳轉(zhuǎn)到標(biāo)志START處重新開始}if(key==0x0e)gotoSTART;//若按下了E鍵,則跳轉(zhuǎn)到標(biāo)志START處重新開始}if(flag_comp==0){MatrixKey();if(key==0x0e)gotoSTART;//若按下了E鍵,則跳轉(zhuǎn)到標(biāo)志START處重新開始}}}/**********定時(shí)中斷****************/voidtimer0()interrupt1{基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第18頁(yè)。TH0=0xee;TL0=0x00;count_5ms++;基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第18頁(yè)。if(count_5ms==200){count_5ms=0;-14-sec++;}if(sec==2){flag_2s=1;TR0=0;}}6系統(tǒng)仿真6.1系統(tǒng)仿真環(huán)境及參數(shù)設(shè)置本設(shè)計(jì)在Protues的ISIS7.0SP2或者更高版本的軟件環(huán)境下打開電路仿真圖,接下來將設(shè)計(jì)好的程序在KeilC51μVision3開發(fā)集成環(huán)境上編譯成機(jī)器語(yǔ)言,生成.hex文件。打開Proteus軟件,進(jìn)入ProteusISIS,首先將設(shè)置初始密碼程序的hex文件導(dǎo)入到80C52中,點(diǎn)擊按鈕,按下C鍵選擇密碼設(shè)置,D鍵為讀密碼功能。再把密碼鎖工作程序生成的hex導(dǎo)入單片機(jī)中,E鍵位功能復(fù)位鍵,按下A鍵系統(tǒng)進(jìn)入密碼輸入狀態(tài),輸入密碼后,按下B鍵后系統(tǒng)進(jìn)入密碼重設(shè)狀態(tài)。6.2系統(tǒng)仿真結(jié)果及其分析6.2.1系統(tǒng)仿真系統(tǒng)整體仿真電路圖如圖6.1所示:基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第19頁(yè)。-15-基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第19頁(yè)。圖6.1密碼鎖整體proteus仿真圖6.2.2設(shè)定初始密碼仿真.2所示。導(dǎo)入初始密碼hex文件后,系統(tǒng)進(jìn)入初始化狀態(tài),仿真結(jié)果如圖6圖6.2設(shè)定密碼初始狀態(tài)仿真圖按下掃描按鍵C,系統(tǒng)進(jìn)入密碼設(shè)定輸入狀態(tài),LCD上提示輸入密碼,仿真結(jié)-16-果如圖6.3所示?;趩纹瑱C(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第20頁(yè)。圖6.3設(shè)定初始密碼輸入仿真圖基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第20頁(yè)。設(shè)定密碼后按下D鍵,系統(tǒng)進(jìn)入讀密碼狀態(tài),LCD上顯示所設(shè)密碼,仿真圖如圖6.4所示。圖6.4設(shè)定初始密碼讀密碼仿真圖6.2.3密碼鎖工作仿真導(dǎo)入密碼鎖工作hex文件后,系統(tǒng)進(jìn)入初始狀態(tài),仿真圖同圖6.1所示。按下A鍵,系統(tǒng)進(jìn)入輸入密碼狀態(tài),LCD提示請(qǐng)輸入密碼,仿真圖如圖6.5所示。-17-圖6.5密碼鎖工作輸入密碼仿真圖基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第21頁(yè)。輸入正確密碼時(shí),LCD提示密碼輸入成功,鎖打開,綠色LED燈亮,仿真圖如圖6.6所示。按下E鍵,系統(tǒng)初始狀態(tài),仿真圖同圖6.1所示?;趩纹瑱C(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第21頁(yè)。圖6.6密碼輸入正確仿真圖若連續(xù)三次輸入密碼錯(cuò)誤,LCD提示密碼輸入,仿真圖如圖6.7所示。-18-圖6.7連續(xù)三次密碼輸入錯(cuò)誤仿真圖圖6.8重設(shè)密碼輸入仿真圖基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第22頁(yè)。-19-基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第22頁(yè)。圖6.9重設(shè)密碼成功仿真圖輸入密碼正確后,按下B鍵,系統(tǒng)進(jìn)入重設(shè)密碼狀態(tài),LCD提示請(qǐng)輸入密碼,仿真圖如圖6.8所示,密碼重設(shè)成功如圖6.9所示。7使用說明使用本設(shè)計(jì)宜按以下步驟進(jìn)行:首先加載設(shè)定初始密碼hex文件,按下C鍵,進(jìn)入密碼設(shè)定輸入狀態(tài),設(shè)定密碼后按下D鍵讀取自己所設(shè)密碼;再加載密碼鎖工作hex文件,進(jìn)入密碼鎖工作狀態(tài),按下A鍵,輸入所設(shè)密碼,輸入密碼正確后,按下B鍵可以自定義重設(shè)密碼,按下E鍵進(jìn)入初始狀態(tài)。8設(shè)計(jì)總結(jié)2本設(shè)計(jì)以89C52為中心控制器、用4*4鍵盤采集輸入信號(hào)、采用典型的IC總線結(jié)構(gòu)AT24C04芯片儲(chǔ)存密碼、并且通過LCD顯示屏和LED燈直觀地顯示各密碼鎖各種狀態(tài),用繼電器模擬鎖的狀態(tài),用戶可以自定義設(shè)置6位的數(shù)字密碼,系統(tǒng)還具有報(bào)警功能,該系統(tǒng)基本能夠?qū)崿F(xiàn)本文能夠提出的功能和要求。本設(shè)計(jì)也存在不足,缺陷一,單重的密碼鎖不能滿足較高的安全需要。缺陷二,該系統(tǒng)對(duì)電的依賴比較大,必須使24C04一直保持供電狀態(tài),當(dāng)斷電后不能正常工作。缺點(diǎn)三,在按鍵按下時(shí),按鍵聲不夠響亮清晰,在仿真時(shí)顯得反映-20-基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第23頁(yè)。比較慢,假如能采用語(yǔ)音模塊,能用語(yǔ)音播報(bào)按鍵時(shí)密碼所處狀態(tài),密碼鎖將會(huì)更具人性化?;趩纹瑱C(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第23頁(yè)。通過這次對(duì)智能密碼鎖的設(shè)計(jì),感受更多的是自己的能力有限,知識(shí)不夠豐富,知識(shí)點(diǎn)掌握的不夠扎實(shí),使得自己不能按自己初始設(shè)想完成自己的設(shè)計(jì),使得所設(shè)的密碼鎖不夠完整。在這次設(shè)計(jì)中還讓,讓我了解了實(shí)時(shí)控制的原理,懂得怎樣合理的使用芯片,發(fā)揮其功能。體會(huì)到做設(shè)計(jì)時(shí)必須有條理的按一定步驟實(shí)行系統(tǒng)的設(shè)計(jì)、各個(gè)步驟的實(shí)施??傊@次課程設(shè)計(jì)使在電路設(shè)計(jì)方面受益匪淺。參考文獻(xiàn)[1]林立.張俊亮.曹旭東.劉得軍.單片機(jī)原理及應(yīng)用:基于Proteus和KeilC[M].北京:電子工業(yè)出版社,2009:2-5.[2]鄭鋒.王巧芝.李英建.劉瑞國(guó).51單片機(jī)應(yīng)用系統(tǒng)典型模塊開發(fā)大全[M].北京:中國(guó)鐵道出版社,2011:5-20.[3]張俊謨.單片機(jī)中級(jí)教程[M].北京:北京航空航天大學(xué)出版,2000:36-45.[4]單片機(jī)高級(jí)語(yǔ)言C51Windows環(huán)境編程與應(yīng)用[M],電子工業(yè)出版社,2001:86-95.[5]AT89C51DATASHEEP[M].PhilipsSemiconductors,1999:15-36.[6]康華光.電子技術(shù)基礎(chǔ)(第5版)[M].北京:高等教育出版社,2006:45-48.[7]彭華林等編.數(shù)字電子技術(shù)[M].長(zhǎng)沙:湖南大學(xué)出版社,2004:45-60.[8]金唯香等編.電子測(cè)試技術(shù)[M].長(zhǎng)沙:湖南大學(xué)出版社,2004:26-30.-21-附件AT24C04頭文件"I2C_drive.h"#include<intrins.h>#defineucharunsignedchar#defineuintunsignedintsbitSDA=P3^4;sbitSCL=P3^3;bitack;基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第24頁(yè)。voiddelayNOP();基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第24頁(yè)。voidI2C_start();voidI2C_stop();voidI2C_init();voidI2C_Ack();voidI2C_NAck();ucharRecByte();ucharSendByte(ucharwrite_data);ucharread_nbyte(ucharSLA,ucharSUBA,uchar*pdat,ucharn);ucharwrite_nbyte(ucharSLA,ucharSUBA,uchar*pdat,ucharn);voiddelayNOP(){_nop_();_nop_();_nop_();_nop_();}voidI2C_start(){SDA=1;SCL=1;delayNOP();SDA=0;-22-delayNOP();SCL=0;}基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第25頁(yè)。voidI2C_stop(){基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第25頁(yè)。SDA=0;SCL=1;delayNOP();SDA=1;delayNOP();SCL=0;}voidI2C_init(){SCL=0;I2C_stop();}voidI2C_Ack(){SDA=0;SCL=1;delayNOP();SCL=0;SDA=1;}voidI2C_NAck(){SDA=1;SCL=1;delayNOP();-23-SCL=0;SDA=0;基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第26頁(yè)。}基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第26頁(yè)。ucharRecByte(){uchari,read_data;read_data=0x00;SDA=1;for(i=0;i<8;i++){SCL=1;read_data<<=1;read_data|=SDA;delayNOP();SCL=0;delayNOP();}SCL=0;delayNOP();return(read_data);}ucharSendByte(ucharwrite_data){uchari;for(i=0;i<8;i++){SDA=(bit)(write_data&0x80);_nop_();_nop_();-24-SCL=1;delayNOP();基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第27頁(yè)。SCL=0;基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第27頁(yè)。write_data<<=1;}delayNOP();SDA=1;SCL=1;delayNOP();if(SDA==1)ack=0;elseack=1;SCL=0;delayNOP();returnack;}ucharwrite_nbyte(ucharSLA,ucharSUBA,uchar*pdat,ucharn){uchars;I2C_start();SendByte(SLA);if(ack==0)return(0);SendByte(SUBA);if(ack==0)return(0);for(s=0;s<n;s++){SendByte(*pdat);if(ack==0)return(0);pdat++;-25-}I2C_stop();return(1);基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第28頁(yè)。}基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第28頁(yè)。ucharread_nbyte(ucharSLA,ucharSUBA,uchar*pdat,ucharn){uchars;I2C_start();SendByte(SLA);if(ack==0)return(0);SendByte(SUBA);if(ack==0)return(0);I2C_start();SendByte(SLA+1);if(ack==0)return(0);for(s=0;s<n;s++){*pdat=RecByte();I2C_Ack();pdat++;}I2C_NAck();I2C_stop();return(1);}1602頭文件"LCD_drive.h"#include<reg51.h>#include<intrins.h>#defineucharunsignedchar#defineuintunsignedint-26-sbitLCD_RS=P2^0;sbitLCD_RW=P2^1;sbitLCD_EN=P2^2;voidDelay_ms(uintxms);bitlcd_busy();基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第29頁(yè)。voidlcd_wcmd(ucharcmd);voidlcd_wdat(uchardat);voidlcd_clr();基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第29頁(yè)。voidlcd_init();voidDelay_ms(uintxms){uinti,j;for(i=xms;i>0;i--)for(j=110;j>0;j--);}bitlcd_busy(){bitresult;LCD_RS=0;LCD_RW=1;LCD_EN=1;_nop_();_nop_();_nop_();_nop_();result=(bit)(P0&0x80);LCD_EN=0;returnresult;-27-}voidlcd_wcmd(ucharcmd){while(lcd_busy());LCD_RS=0;LCD_RW=0;基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第30頁(yè)。LCD_EN=0;基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第30頁(yè)。_nop_();_nop_();P0=cmd;_nop_();_nop_();_nop_();_nop_();LCD_EN=1;_nop_();_nop_();_nop_();_nop_();LCD_EN=0;}voidlcd_wdat(uchardat){while(lcd_busy());LCD_RS=1;LCD_RW=0;LCD_EN=0;P0=dat;_nop_();-28-基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第31頁(yè)。_nop_();基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第31頁(yè)。_nop_();_nop_();LCD_EN=1;_nop_();_nop_();_nop_();_nop_();LCD_EN=0;}voidlcd_clr(){lcd_wcmd(0x01);Delay_ms(5);}voidlcd_init(){Delay_ms(15);lcd_wcmd(0x38);Delay_ms(5);lcd_wcmd(0x38);Delay_ms(5);lcd_wcmd(0x38);Delay_ms(5);lcd_wcmd(0x0c);Delay_ms(5);lcd_wcmd(0x06);-29-Delay_ms(5);lcd_wcmd(0x01);Delay_ms(5);}設(shè)定初始密碼程序#include<reg51.h>#include"I2C_drive.h"#include"LCD_drive.h"#defineucharunsignedchar基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第32頁(yè)。#defineuintunsignedintucharcode_buf[6]={1,2,3,4,5,6};基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第32頁(yè)。ucharkey;uchartemp;sbitBEEP=P3^7;voidbeep(){BEEP=0;Delay_ms(100);BEEP=1;Delay_ms(100);}voidMatrixKey(){P1=0xff;P1=0xef;temp=P1;temp=temp&0x0f;if(temp!=0x0f)-30-{Delay_ms(10);temp=P1;temp=temp&0x0f;if(temp!=0x0f){基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第33頁(yè)。temp=P1;基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第33頁(yè)。switch(temp){case0xee:key=0;break;case0xed:key=1;break;case0xeb:key=2;break;case0xe7:key=3;break;}temp=P1;beep();temp=temp&0x0f;while(temp!=0x0f){temp=P1;temp=temp&0x0f;}}}P1=0xff;P1=0xdf;temp=P1;temp=temp&0x0f;if(temp!=0x0f){-31-Delay_ms(10);temp=P1;temp=temp&0x0f;if(temp!=0x0f){temp=P1;switch(temp)基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第34頁(yè)。{基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第34頁(yè)。case0xde:key=4;break;case0xdd:key=5;break;case0xdb:key=6;break;case0xd7:key=7;break;}temp=P1;beep();temp=temp&0x0f;while(temp!=0x0f){temp=P1;temp=temp&0x0f;}}}P1=0xff;P1=0xbf;temp=P1;temp=temp&0x0f;if(temp!=0x0f){Delay_ms(10);-32-temp=P1;temp=temp&0x0f;if(temp!=0x0f){temp=P1;switch(temp){基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第35頁(yè)。case0xbe:key=8;break;case0xbd:key=9;break;case0xbb:key=10;break;case0xb7:key=11;break;}基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第35頁(yè)。temp=P1;beep();temp=temp&0x0f;while(temp!=0x0f){temp=P1;temp=temp&0x0f;}}}P1=0xff;P1=0x7f;temp=P1;temp=temp&0x0f;if(temp!=0x0f){Delay_ms(10);temp=P1;-33-temp=temp&0x0f;if(temp!=0x0f){temp=P1;switch(temp){case0x7e:key=12;break;case0x7d:key=13;break;基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第36頁(yè)。case0x7b:key=14;break;基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第36頁(yè)。case0x77:key=15;break;}temp=P1;beep();temp=temp&0x0f;while(temp!=0x0f){temp=P1;temp=temp&0x0f;}}}}ucharcodeline1_data[]={"WRITE&READ"};ucharcodeline2_data[]={"---PASSWORD---"};ucharcodeW_line1_data[]={"WRITECODE"};ucharcodeW_line2_data[]={"NUM:------"};ucharcodeR_line1_data[]={"READCODE"};ucharcodeR_line2_data[]={"NUM:------"};voidCodeIn(){-34-staticucharlcd_x=0;staticucharcount=0;do{P1=0xf0;if(P1!=0xf0)基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第37頁(yè)。{基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第37頁(yè)。MatrixKey();if((key>=0)&&(key<=9)){code_buf[count]=key;lcd_wcmd((0x44+lcd_x)|0x80);lcd_wdat(code_buf[count]+0x30);count++;lcd_x++;}}}while(count<6);if(count>=6){count=0;lcd_x=0;}}voidWriteCode(){uchari;lcd_clr();lcd_wcmd(0x00|0x80);i=0;while(W_line1_data[i]!='\0'){lcd_wdat(W_line1_data[i]);i++;}-35-lcd_wcmd(0x40|0x80);i=0;基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第38頁(yè)。while(W_line2_data[i]!='\0'){基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第38頁(yè)。lcd_wdat(W_line2_data[i]);i++;}CodeIn();write_nbyte(0xa0,0x00,code_buf,6);}voidReadCode(){uchari,j;lcd_clr();lcd_wcmd(0x00|0x80);i=0;while(R_line1_data[i]!='\0'){lcd_wdat(R_line1_data[i]);i++;}lcd_wcmd(0x40|0x80);i=0;while(R_line2_data[i]!='\0'){lcd_wdat(R_line2_data[i]);i++;}read_nbyte(0xa0,0x00,code_buf,6);for(j=0;j<6;j++)-36-{基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第39頁(yè)。lcd_wcmd((0x44+j)|0x80);lcd_wdat(code_buf[j]+0x30);}基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第39頁(yè)。}voidmain(){uchari;BEEP=0;start:Delay_ms(10);lcd_init();I2C_init();lcd_wcmd(0x00|0x80);i=0;while(line1_data[i]!='\0'){lcd_wdat(line1_data[i]);i++;}lcd_wcmd(0x40|0x80);i=0;while(line2_data[i]!='\0'){lcd_wdat(line2_data[i]);i++;}while(1){P1=0xf0;if(P1!=0xf0)-37-{MatrixKey();基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第40頁(yè)。if(key==0x0c)WriteCode();if(key==0x0d)ReadCode();if(key==0x0e)gotostart;}基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第40頁(yè)。}}密碼鎖工作程序#include<reg52.h>#include<string.h>#include"I2C_drive.h"#include"LCD_drive.h"#defineucharunsignedchar#defineuintunsignedintucharcode_buf[6];ucharincode_buf[6];ucharkey;uchartemp;sbitBEEP=P3^7;//蜂鳴器sbitRELAY=P3^6;//繼電器ucharcount_5ms,sec;bitflag_2s=0;bitflag_comp=0;constucharshuru[]="<G>請(qǐng)輸入密碼。";//輸入密碼語(yǔ)音提示constuchareshuru[]="<G>密碼錯(cuò)誤,請(qǐng)重新輸入密碼。";//重新輸入密碼constucharrshuru[]="<G>\x12";//重新輸入密碼constucharchongse[]="<G>請(qǐng)輸入新密碼。";//重新設(shè)定密碼//constucharsuoding[]="<G>請(qǐng)稍后再試。";//三次后鎖定voidbeep()//蜂鳴器響聲-38-{BEEP=0;基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第41頁(yè)。Delay_ms(300);基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第41頁(yè)。BEEP=1;Delay_ms(300);}/*********串口發(fā)送一個(gè)字節(jié)************//*voidUart_SendChar(unsignedchardat){SBUF=dat;//待發(fā)送的數(shù)據(jù)寫入緩沖區(qū)while(!TI);//等待發(fā)送完成TI=0;//清零發(fā)送標(biāo)志位}*//********串口發(fā)送一個(gè)字符串函數(shù)****************/voidUart_SendString(uchar*trdata){uchari=0;while(trdata[i]!=0x00){SBUF=trdata[i];while(!TI);TI=0;i++;}}voidMatrixKey()//矩陣鍵盤掃描{-39-基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第42頁(yè)。P1=0xff;基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第42頁(yè)。P1=0xef;temp=P1;temp=temp&0x0f;if(temp!=0x0f){Delay_ms(10);temp=P1;temp=temp&0x0f;if(temp!=0x0f){temp=P1;switch(temp){case0xee:key=0;break;case0xed:key=1;break;case0xeb:key=2;break;case0xe7:key=3;break;}temp=P1;beep();temp=temp&0x0f;while(temp!=0x0f){temp=P1;temp=temp&0x0f;}}}P1=0xff;-40-P1=0xdf;基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第43頁(yè)。temp=P1;基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第43頁(yè)。temp=temp&0x0f;if(temp!=0x0f){Delay_ms(10);temp=P1;temp=temp&0x0f;if(temp!=0x0f){temp=P1;switch(temp){case0xde:key=4;break;case0xdd:key=5;break;case0xdb:key=6;break;case0xd7:key=7;break;}temp=P1;beep();temp=temp&0x0f;while(temp!=0x0f){temp=P1;temp=temp&0x0f;}}}P1=0xff;P1=0xbf;-41-temp=P1;temp=temp&0x0f;if(temp!=0x0f)基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第44頁(yè)。{基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第44頁(yè)。Delay_ms(10);temp=P1;temp=temp&0x0f;if(temp!=0x0f){temp=P1;switch(temp){case0xbe:key=8;break;case0xbd:key=9;break;case0xbb:key=10;break;case0xb7:key=11;break;}temp=P1;beep();temp=temp&0x0f;while(temp!=0x0f){temp=P1;temp=temp&0x0f;}}}P1=0xff;P1=0x7f;temp=P1;-42-temp=temp&0x0f;if(temp!=0x0f){基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第45頁(yè)。Delay_ms(10);基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第45頁(yè)。temp=P1;temp=temp&0x0f;if(temp!=0x0f){temp=P1;switch(temp){case0x7e:key=12;break;case0x7d:key=13;break;case0x7b:key=14;break;case0x77:key=15;break;}temp=P1;beep();temp=temp&0x0f;while(temp!=0x0f){temp=P1;temp=temp&0x0f;}}}}/************開機(jī)顯示畫面*******************/ucharcodeline1_data[]={"KEYLOCK"};ucharcodeline2_data[]={"MADEINTANNING"};基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第46頁(yè)。-43-基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第46頁(yè)。/************密碼輸入畫面*******************/ucharcodein_line1[]={"PLEASEINPUT"};ucharcodein_line2[]={"PASSWORD:------"};/************密碼輸入正確畫面*******************/ucharcodeinok_line1[]={"INPUTPASSWORD"};ucharcodeinok_line2[]={"INOPUTOK"};/************密碼輸入錯(cuò)誤畫面*******************/ucharcodeinerr_line1[]={"INPUTPASSWORD"};ucharcodeinerr_line2[]={"INPUTERR"};/************修改密碼畫面*******************/ucharcodemodify_line1[]={"MODIFYPASSWORD"};ucharcodemodify_line2[]={"PASSWORD:------"};/************密碼修改成功畫面*******************/ucharcodesetok_line1[]={"MODIFYPASSWORD"};ucharcodesetok_line2[]={"MODIFYOK"};/********以下是開機(jī)畫面顯示函數(shù)********/voidStartDisp(){uchari;lcd_clr();lcd_wcmd(0x00|0x80);i=0;while(line1_data[i]!='\0'){基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第47頁(yè)。lcd_wdat(line1_data[i]);基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第47頁(yè)。i++;}lcd_wcmd(0x40|0x80);i=0;while(line2_data[i]!='\0')-44-{lcd_wdat(line2_data[i]);i++;}}/********以下是密碼輸入畫面顯示函數(shù)********/voidCodeInDisp(){uchari;lcd_clr();lcd_wcmd(0x00|0x80);i=0;while(in_line1[i]!='\0'){lcd_wdat(in_line1[i]);i++;}lcd_wcmd(0x40|0x80);i=0;while(in_line2[i]!='\0'){lcd_wdat(in_line2[i]);i++;}}基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第48頁(yè)。/********以下是密碼輸入錯(cuò)誤顯示函數(shù)********/voidCodeInErr()基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第48頁(yè)。{uchari;lcd_clr();-45-lcd_wcmd(0x00|0x80);i=0;while(inerr_line1[i]!='\0'){lcd_wdat(inerr_line1[i]);i++;}lcd_wcmd(0x40|0x80);i=0;while(inerr_line2[i]!='\0'){lcd_wdat(inerr_line2[i]);i++;}}/********以下是密碼輸入正確顯示函數(shù)********/voidCodeInOk(){uchari;lcd_clr();lcd_wcmd(0x00|0x80);i=0;while(inok_line1[i]!='\0'){lcd_wdat(inok_line1[i]);i++;基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第49頁(yè)。}基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第49頁(yè)。lcd_wcmd(0x40|0x80);i=0;while(inok_line2[i]!='\0')-46-{lcd_wdat(inok_line2[i]);i++;}}/********以下是密碼設(shè)置畫面顯示函數(shù)********/voidCodeSetDisp(){uchari;lcd_clr();lcd_wcmd(0x00|0x80);i=0;while(modify_line1[i]!='\0'){lcd_wdat(modify_line1[i]);i++;}lcd_wcmd(0x40|0x80);i=0;while(modify_line2[i]!='\0'){lcd_wdat(modify_line2[i]);i++;}}基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第50頁(yè)。/********以下是密碼設(shè)置成功畫面顯示函數(shù)********/voidCodeSetOk()基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第50頁(yè)。{uchari;lcd_clr();-47-lcd_wcmd(0x00|0x80);i=0;while(setok_line1[i]!='\0'){lcd_wdat(setok_line1[i]);i++;}lcd_wcmd(0x40|0x80);i=0;while(setok_line2[i]!='\0'){lcd_wdat(setok_line2[i]);i++;}}voidPassIn(){staticucharlcd_x=0;//顯示指針,注意是靜態(tài)局部變量staticucharcount=0;//密碼計(jì)數(shù)器,注意是靜態(tài)局部變量staticucharcode_n=0;//密碼輸入次數(shù)PASSWORD:lcd_clr();//清屏RELAY=1;//閉鎖CodeInDisp();//密碼輸入畫面do{P1=0xf0;基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第51頁(yè)。if(P1!=0xf0)//若有按鍵按下基于單片機(jī)語(yǔ)音智能密碼鎖設(shè)計(jì)全文共57頁(yè),當(dāng)前為第51頁(yè)。{MatrixKey();//鍵盤掃描P1=0xf0;-48-while(P1!=0xf0);if((key>=0)&&(key<=9))//0-9有效其余無(wú)效{incode_buf[count]=key;//鍵值存

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論