基于單片機(jī)電子密碼鎖設(shè)計(jì)-作業(yè)_第1頁(yè)
基于單片機(jī)電子密碼鎖設(shè)計(jì)-作業(yè)_第2頁(yè)
基于單片機(jī)電子密碼鎖設(shè)計(jì)-作業(yè)_第3頁(yè)
基于單片機(jī)電子密碼鎖設(shè)計(jì)-作業(yè)_第4頁(yè)
基于單片機(jī)電子密碼鎖設(shè)計(jì)-作業(yè)_第5頁(yè)
已閱讀5頁(yè),還剩30頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

摘要在日常的生活和工作中,住宅與部門(mén)的平安防范、單位的文件檔案、財(cái)務(wù)報(bào)表以及一些個(gè)人資料的保存多以加鎖的方法來(lái)解決。假設(shè)使用傳統(tǒng)的機(jī)械式鑰匙開(kāi)鎖,人們常需攜帶多把鑰匙,使用極不方便,且鑰匙喪失后平安性即大打折扣。具有防盜報(bào)警等功能的電子密碼鎖代替密碼量少、平安性差的機(jī)械式密碼鎖已是必然趨勢(shì)。隨著科學(xué)技術(shù)的不斷開(kāi)展,人們對(duì)日常生活中的平安保險(xiǎn)器件的要求越來(lái)越高。為滿足人們對(duì)鎖的使用要求,增加其平安性,用密碼代替鑰匙的密碼鎖應(yīng)運(yùn)而生。密碼鎖具有平安性高、本錢(qián)低、功耗低、易操作、記住密碼即可開(kāi)鎖等優(yōu)點(diǎn)。 目前使用的電子密碼鎖大局部是基于單片機(jī)技術(shù),以單片機(jī)為主要器件,其編碼器與解碼器的生成為軟件方式。本系統(tǒng)由AT89S51單片機(jī)系統(tǒng)〔主要是AT89S51單片機(jī)最小系統(tǒng)〕、4×4矩陣鍵盤(pán)、LCD1602顯示和報(bào)警系統(tǒng)等組成,具有設(shè)置、修改六位用戶密碼、超次報(bào)警、超次鎖定、密碼錯(cuò)誤報(bào)警等功能〔本設(shè)計(jì)由P0口控制LCD顯示,密碼正確顯示passwordok!密碼錯(cuò)誤顯示passworderror!超過(guò)三次輸入錯(cuò)誤自動(dòng)鎖定。由P1口控制矩陣鍵盤(pán)含有0-9數(shù)字鍵和A-F功能鍵?!?。除上述根本的密碼鎖功能外,依據(jù)實(shí)際的情況還可以添加遙控功能。本系統(tǒng)本錢(qián)低廉,功能實(shí)用。關(guān)鍵詞AT89S51LCD1602電子密碼鎖4×4矩陣鍵盤(pán)目錄第一章緒論1、課題背景和意義1、電子密碼鎖開(kāi)展趨勢(shì)2第二章總體設(shè)計(jì)方案確實(shí)定32.1電子密碼鎖設(shè)計(jì)的具體要求3總體設(shè)計(jì)方案選定3第三章系統(tǒng)硬件設(shè)計(jì)53.1單片機(jī)AT89S51簡(jiǎn)介53.1.1主要特性53.1.2引腳功能說(shuō)明689S51相對(duì)于89C51增加的新功能包括:7液晶顯示LCD1602的介紹83.2硬件電路的設(shè)計(jì)113.2.1最小系統(tǒng)的設(shè)計(jì)113.2.2芯片擦除133.2.3開(kāi)鎖機(jī)構(gòu)143.2.4鍵盤(pán)設(shè)計(jì)15顯示電路設(shè)計(jì)163.3電路設(shè)計(jì)總圖17第四章系統(tǒng)軟件設(shè)計(jì)18主程序模塊184.2鍵盤(pán)掃描及識(shí)別子程序194.3系統(tǒng)模塊密碼設(shè)置子程序20程序調(diào)試21第五章系統(tǒng)制作及調(diào)試24焊接考前須知:24硬件調(diào)試問(wèn)題及解決方法25第六章結(jié)論28第七章致謝29參考文獻(xiàn)30附錄Ⅰ電子密碼鎖整體設(shè)計(jì)圖31附錄Ⅱ電子密碼鎖程序源代碼32第一章緒論、課題背景和意義隨著電子技術(shù)和計(jì)算機(jī)技術(shù)的飛速開(kāi)展,單片機(jī)性能不斷完善,性能價(jià)格比顯著提高,技術(shù)日趨完善。由于單片機(jī)具有體積小、重量輕、價(jià)格廉價(jià)、功耗低、控制功能強(qiáng)及運(yùn)算速度快等特點(diǎn),因而在國(guó)民經(jīng)濟(jì)建設(shè)、軍事及家用電器等各個(gè)領(lǐng)域均得到了廣泛的應(yīng)用。本設(shè)計(jì)利用單片機(jī)及附加電子元器件實(shí)現(xiàn)數(shù)據(jù)采集和控制算法,來(lái)完成某一實(shí)際功能,檢驗(yàn)并提高同學(xué)對(duì)整體電路設(shè)計(jì)和把握能力,了解單片機(jī)系統(tǒng)設(shè)計(jì)流程,以及電路板的實(shí)際制作和調(diào)試能力。同時(shí)也加強(qiáng)對(duì)數(shù)字電路、單片機(jī)和微機(jī)原理等課程知識(shí)的實(shí)際應(yīng)用能力,也為同類產(chǎn)品的進(jìn)一步開(kāi)展奠定理論和實(shí)踐根底。隨著人們生活水平的提高和平安意識(shí)的加強(qiáng),對(duì)平安的要求也就越來(lái)越高。鎖自古以來(lái)就是把守護(hù)門(mén)的鐵將軍,人們對(duì)它要求甚高,既要平安可靠的防盜,又要使用方便,這也是制鎖者長(zhǎng)期以來(lái)研制的主題。隨著電子技術(shù)的開(kāi)展,各類電子產(chǎn)品應(yīng)運(yùn)而生,電子密碼鎖就是其中之一。據(jù)有關(guān)資料介紹,電子密碼鎖的研究從20世紀(jì)30年代就開(kāi)始了,在一些特殊場(chǎng)所早就有所應(yīng)用。這種鎖是通過(guò)鍵盤(pán)輸入一組密碼完成開(kāi)鎖過(guò)程。研究這種鎖的初衷,就是為提高鎖的平安性。由于電子鎖的密鑰量〔密碼量〕極大,可以與機(jī)械鎖配合使用,并且可以防止因鑰匙被仿制而留下平安隱患。電子鎖只需記住一組密碼,無(wú)需攜帶金屬鑰匙,免除了人們攜帶金屬鑰匙的煩惱,而被越來(lái)越多的人所欣賞。電子鎖的種類繁多,例如數(shù)碼鎖,指紋鎖,磁卡鎖,IC卡鎖,生物鎖等。但較實(shí)用的還是按鍵式電子密碼鎖。20世紀(jì)80年代后,隨著電子鎖專用集成電路的出現(xiàn),電子鎖的體積縮小,可靠性提高,本錢(qián)較高,是適合使用在平安性要求較高的場(chǎng)合,且需要有電源提供能量,使用還局限在一定范圍,難以普及,所以對(duì)它的研究一直沒(méi)有明顯進(jìn)展。目前,在西方興旺國(guó)家,電子密碼鎖技術(shù)相對(duì)先進(jìn),種類齊全,電子密碼鎖已被廣泛應(yīng)用于智能門(mén)禁系統(tǒng)中,通過(guò)多種更加平安,更加可靠的技術(shù)實(shí)現(xiàn)大門(mén)的管理。在我國(guó)電子鎖整體水平尚處于國(guó)際上70年代左右,電子密碼鎖的本錢(qián)還很高,市場(chǎng)上仍以按鍵電子鎖為主,按鍵式和卡片鑰匙式電子鎖已引進(jìn)國(guó)際先進(jìn)水平,現(xiàn)國(guó)內(nèi)有幾個(gè)廠生產(chǎn)供給市場(chǎng)。但國(guó)內(nèi)自行研制開(kāi)發(fā)的電子鎖,其市場(chǎng)結(jié)構(gòu)尚未形成,應(yīng)用還不廣泛。國(guó)內(nèi)的不少企業(yè)也引進(jìn)了世界上先進(jìn)的技術(shù),開(kāi)展前景非??捎^。希望通過(guò)不斷的努力,使電子密碼鎖在我國(guó)也能得到廣泛應(yīng)用1.2、電子密碼鎖開(kāi)展趨勢(shì)電子密碼鎖應(yīng)用于金融業(yè),其根本的作用是“授權(quán)〞,即被“授權(quán)〞的人才可以存取錢(qián)、物。廣義上講,金融業(yè)的“授權(quán)〞主要包括以下三種層次的內(nèi)容:1、授予保管權(quán),如使用保管箱、保險(xiǎn)箱和保險(xiǎn)柜;2、授予出入權(quán),如出入金庫(kù)、運(yùn)鈔車(chē)和保管室;3、授予流通權(quán),如自動(dòng)存取款。目前,金融行業(yè)電子密碼鎖的應(yīng)用主要集中在前兩個(gè)層面上。下面將介紹幾種在金融行業(yè)中使用較多的電子密碼鎖以及它們的技術(shù)開(kāi)展方向。當(dāng)然,以上所說(shuō)的授權(quán)技術(shù)再高超,都必須由精良的“鎖具〞擔(dān)當(dāng)承載結(jié)構(gòu)部件,實(shí)現(xiàn)開(kāi)啟、閉鎖的功能,而且承當(dāng)實(shí)體防護(hù)作用,抵抗住或盡量延遲破壞行為,讓電子密碼鎖“軟、硬不吃〞。一般情況下,鎖具防盜的關(guān)鍵是鎖身外殼、閉鎖的部件的強(qiáng)度、鎖止型式、配合間隙和布局。提高電子密碼鎖之防護(hù)能力的必然途徑是報(bào)警,在金融業(yè)的許多場(chǎng)所有人值守、有電視監(jiān)控,具有報(bào)警功能,可以綜合物理防范和人力防范兩種作用。報(bào)警的前提是具備探測(cè)功能,根據(jù)電子密碼鎖的使用場(chǎng)所和防護(hù)要求,可選擇多種多樣的探測(cè)手段。在中國(guó)的城市金融業(yè)中,實(shí)現(xiàn)聯(lián)網(wǎng)報(bào)警已經(jīng)成為對(duì)各金融網(wǎng)點(diǎn)的根本要求。根據(jù)國(guó)內(nèi)外的實(shí)踐經(jīng)驗(yàn),金融業(yè)實(shí)行平安防范風(fēng)險(xiǎn)等級(jí)很有必要,即依據(jù)使用的防盜報(bào)警器材的性能、安裝布局和人員值守狀況等,可以評(píng)估被防護(hù)物或區(qū)域的防護(hù)能力,得出風(fēng)險(xiǎn)等級(jí),其中,電子密碼鎖的性能至關(guān)重要。由于數(shù)字、字符、圖形圖像、人體生物特征和時(shí)間等要素均可成為鑰匙的電子信息,組合使用這些信息能夠使電子密碼鎖獲得高度的保密性,如防范森嚴(yán)的金庫(kù),需要使用復(fù)合信息密碼的電子密碼鎖,這樣對(duì)盜賊而言是“道高一尺、魔高一丈〞。組合使用信息也能夠使電子密碼鎖獲得無(wú)窮擴(kuò)展的可能,使產(chǎn)品多樣化,對(duì)用戶而言是“千挑百選、自得其所〞。第二章總體設(shè)計(jì)方案確實(shí)定2.1電子密碼鎖設(shè)計(jì)的具體要求〔1〕本設(shè)計(jì)為了防止密碼被竊取要求在輸入密碼時(shí)在LCD屏幕上顯示*號(hào)?!?〕設(shè)計(jì)開(kāi)鎖密碼位六位密碼的電子密碼鎖?!?〕能夠LCD顯示在密碼正確時(shí)顯示PASSWORDOK,密碼錯(cuò)誤時(shí)顯示PASSWORDERROR,輸入密碼時(shí)顯示INPUTPASSWORD?!?〕實(shí)現(xiàn)輸入密碼錯(cuò)誤超過(guò)限定的三次電子密碼鎖定?!?〕4×4的矩陣鍵盤(pán)其中包括0-9的數(shù)字鍵和A-F的功能鍵〔6〕本產(chǎn)品具備報(bào)警功能,當(dāng)輸入密碼錯(cuò)誤時(shí)蜂鳴器響并且LED燈亮。〔7〕密碼可以由用戶自己修改設(shè)定〔只支持6位密碼〕,修改密碼之前必須再次輸入密碼,在輸入新密碼時(shí)候需要二次確認(rèn),以防止誤操作。方案一:采用數(shù)字電路控制。用以74LS112雙JK觸發(fā)器構(gòu)成的數(shù)字邏輯電路作為密碼鎖的核心控制,共設(shè)了9個(gè)用戶輸入鍵,其中只有4個(gè)是有效的密碼按鍵,其它的都是干擾按鍵,假設(shè)按下干擾鍵,鍵盤(pán)輸入電路自動(dòng)清零,原先輸入的密碼無(wú)效,需要重新輸入;如果用戶輸入密碼的時(shí)間超過(guò)10秒〔一般情況下,用戶不會(huì)超過(guò)10秒,假設(shè)用戶覺(jué)得不便,還可以修改〕電路將報(bào)警20秒,假設(shè)電路連續(xù)報(bào)警三次,電路將鎖定鍵盤(pán)2分鐘,防止他人的非法操作。采用數(shù)字電路設(shè)計(jì)的方案好處就是設(shè)計(jì)簡(jiǎn)單但控制的準(zhǔn)確性和靈活性差。故不采用。方案二:采用一種是用以AT89S51為核心的單片機(jī)控制方案。選用單片機(jī)AT89S51作為本設(shè)計(jì)的核心元件,利用單片機(jī)靈活的編程設(shè)計(jì)和豐富的IO端口,及其控制的準(zhǔn)確性,實(shí)現(xiàn)根本的密碼鎖功能。在單片機(jī)的外圍電路外接輸入鍵盤(pán)用于密碼的輸入和一些功能的控制,外接LCD1602顯示器用于顯示作用。其原理如以下圖所示:圖2.1單片機(jī)控制密碼鎖原理圖可以看出方案二控制靈活準(zhǔn)確性好且保密性強(qiáng)還具有擴(kuò)展功能,根據(jù)現(xiàn)實(shí)生活的需要此次設(shè)計(jì)采用此方案第三章系統(tǒng)硬件設(shè)計(jì)單片機(jī)AT89S51簡(jiǎn)介AT89S51是美國(guó)ATMEL公司生產(chǎn)的低功耗,高性能CMOS8位單片機(jī),片內(nèi)含4kbytes的可系統(tǒng)編程的Flash只讀程序存儲(chǔ)器,器件采用ATMEL公司的高密度、非易失性存儲(chǔ)技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)8051指令系統(tǒng)及引腳。它集Flash程序存儲(chǔ)器,既可在線編程〔ISP〕也可用傳統(tǒng)方法進(jìn)行編程及通用8位微處理器于單片芯片中,ATMEL公司的功能強(qiáng)大,低價(jià)位AT89S51單片機(jī)可為您提供許多高性價(jià)比的應(yīng)用場(chǎng)合,可靈活應(yīng)用于各種控制領(lǐng)域。主要特性與MCS-51兼容4K字節(jié)可編程閃爍存儲(chǔ)器壽命:1000寫(xiě)/擦循環(huán)數(shù)據(jù)保存時(shí)間:10年全靜態(tài)工作:0Hz-24Hz三級(jí)程序存儲(chǔ)器鎖定128*8位內(nèi)部RAM32可編程I/O線兩個(gè)16位定時(shí)器/計(jì)數(shù)器5個(gè)中斷源可編程串行通道低功耗的閑置和掉電模式片內(nèi)振蕩器和時(shí)鐘電路3.1.2引腳功能說(shuō)明圖2.2單片機(jī)引腳圖Vcc:電源電壓GND:接地P0口:P0口是一組8位漏極開(kāi)路型雙向I/0口,也即地址/數(shù)據(jù)總線復(fù)用口。作為輸出口用時(shí),每位能驅(qū)動(dòng)8個(gè)TTL邏輯門(mén)電路,對(duì)端口寫(xiě)“1〞可作為高阻抗輸入端用。在訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器或程序存儲(chǔ)器時(shí),這組口線分時(shí)轉(zhuǎn)換地址〔低8位〕和數(shù)據(jù)總線復(fù)用,在訪問(wèn)期間激活內(nèi)部上拉電阻。在F1ash編程時(shí),P0口接收指令字節(jié),而在程序校驗(yàn)時(shí),輸出指令字節(jié),校驗(yàn)時(shí),要求外接上拉電阻。P1口:Pl是一個(gè)帶內(nèi)部上拉電阻的8位雙向I/O口,Pl的輸出緩沖級(jí)可驅(qū)動(dòng)〔吸收或輸出電流〕4個(gè)TTL邏輯門(mén)電路。對(duì)端口寫(xiě)“l(fā)〞,通過(guò)內(nèi)部的上拉電阻把端口拉到高電平,此時(shí)可作輸入口。作輸入口使用時(shí),因?yàn)閮?nèi)部存在上拉電阻,某個(gè)引腳被外部信號(hào)拉低時(shí)會(huì)輸出一個(gè)電流〔IIL〕,F(xiàn)lash編程和程序校驗(yàn)期間,Pl接收低8位地址。P2口:P2是一個(gè)帶有內(nèi)部上拉電阻的8位雙向I/O口,P2的輸出緩沖級(jí)可驅(qū)動(dòng)〔吸收或輸出電流〕4個(gè)TTL邏輯門(mén)電路。對(duì)端口寫(xiě)“1〞,通過(guò)內(nèi)部的上拉電阻把端口拉到高電平,此時(shí)可作輸入口,作輸入口使用時(shí),因?yàn)閮?nèi)部存在上拉電阻,某個(gè)引腳被外部信號(hào)拉低時(shí)會(huì)輸出一個(gè)電流〔IIL〕,在訪問(wèn)外部程序存儲(chǔ)器或16位地址的外部數(shù)據(jù)存儲(chǔ)器〔例如執(zhí)行MOVX@DPTR指令〕時(shí),P2口送出高8位地址數(shù)據(jù)。在訪問(wèn)8位地址的外部數(shù)據(jù)存儲(chǔ)器〔如執(zhí)行MOVX@Ri指令〕時(shí),P2口線上的內(nèi)容〔也即特殊功能存放器〔SFR〕區(qū)中P2存放器的內(nèi)容〕,在整個(gè)訪問(wèn)期間不改變。Flash編程或校驗(yàn)時(shí),P2亦接收高位地址和其它控制信號(hào)。P3口:P3口是一組帶有內(nèi)部上拉電阻的8位雙向I/0口。P3口輸出緩沖級(jí)可驅(qū)動(dòng)〔吸收或輸出電流〕4個(gè)TTL邏輯門(mén)電路。P3口除了作為一般的I/0口線外,更重要的用途是它的第二功能,如下表所示:P3口還接收一些用于Flash閃速存儲(chǔ)器編程和程序校驗(yàn)的控制信號(hào)RST:復(fù)位輸入。當(dāng)振蕩器工作時(shí),RST引腳出現(xiàn)兩個(gè)機(jī)器周期以上高電平將使單片機(jī)復(fù)位。WDT溢出將使該引腳輸出高電平,設(shè)置SFRAUXR的DISRT0位〔地址8EH〕可翻開(kāi)或關(guān)閉該功能。DISRT0位缺省為RESET輸出高電平翻開(kāi)狀態(tài)。ALE/PROG:當(dāng)訪問(wèn)外部程序存儲(chǔ)器或數(shù)據(jù)存儲(chǔ)器時(shí),ALE〔地址鎖存允許〕輸出脈沖用于鎖存地址的低8位字節(jié)。即使不訪問(wèn)外部存儲(chǔ)器,ALE仍以時(shí)鐘振蕩頻率的1/6輸出固定的正脈沖信號(hào),因此它可對(duì)外輸出時(shí)鐘或用于定時(shí)目的。PSEN:程序儲(chǔ)存允許〔PSEN〕輸出是外部程序存儲(chǔ)器的讀選通信號(hào),當(dāng)AT89S51由外部程序存儲(chǔ)器取指令〔或數(shù)據(jù)〕時(shí),每個(gè)機(jī)器周期兩次PSEN有效,即輸出兩個(gè)脈沖。當(dāng)訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器,沒(méi)有兩次有效的PSEN信號(hào)。EA/VPP:外部訪問(wèn)允許。欲使CPU僅訪問(wèn)外部程序存儲(chǔ)器〔地址為0000H-FFFFH〕,EA端必須保持低電平〔接地〕。需注意的是:如果加密位LB1被編程,復(fù)位時(shí)內(nèi)部會(huì)鎖存EA端狀態(tài)。如EA端為高電平〔接Vcc端〕,CPU那么執(zhí)行內(nèi)部程序存儲(chǔ)器中的指令。F1ash存儲(chǔ)器編程時(shí),該引腳加上+12V的編程電壓Vpp。XTALl:振蕩器反相放大器及內(nèi)部時(shí)鐘發(fā)生器的輸入端。XTAL2:振蕩器反相放大器的輸出端。89S51相對(duì)于89C51增加的新功能包括:〔1〕ISP在線編程功能,這個(gè)功能的優(yōu)勢(shì)在于改寫(xiě)單片機(jī)存儲(chǔ)器內(nèi)的程序不需要把芯片從工作環(huán)境中剝離,是一個(gè)強(qiáng)大易用的功能?!?〕最高工作頻率為33MHz,89C51的極限工作頻率為24MHz,就是說(shuō)S51具有更高的工作頻率,從而具有了更快的計(jì)算速度?!?〕具有雙工UART串行通道。〔4〕內(nèi)部集成看門(mén)狗計(jì)時(shí)器,不再需要像C51那樣外接看門(mén)狗計(jì)時(shí)器單元電路?!?〕雙數(shù)據(jù)指示器?!?〕電源關(guān)閉標(biāo)識(shí)?!?〕全新的加密算法,這使得對(duì)于89S51的解密變?yōu)椴豢赡?,程序的保密性大大加?qiáng),這樣就可以有效地保護(hù)知識(shí)產(chǎn)權(quán)不被侵犯?!?〕兼容性方面:向下完全兼容51全部字系列產(chǎn)品?!?〕程序存儲(chǔ)器寫(xiě)入方式:二者的寫(xiě)入程序的方式不同,89C51只支持并行寫(xiě)入,同時(shí)需要VPP燒寫(xiě)高壓。89S51那么支持Isp在線編程寫(xiě)入技術(shù)。串行寫(xiě)入、速度更快、穩(wěn)定性更好,燒寫(xiě)電壓也僅僅需要4~5V即可。〔10〕電源范圍:89S51電源范圍寬達(dá)4~5.5V,而89C51在低于4.8V和高于5.3V的時(shí)候那么無(wú)法正常工作?!?1〕燒寫(xiě)壽命更長(zhǎng):89S51標(biāo)稱的1000次,實(shí)際最少是1000~10000次,這樣更有利于初學(xué)者反復(fù)燒寫(xiě),降低學(xué)習(xí)本錢(qián)。綜上所述本設(shè)計(jì)選定AT89S51。液晶顯示LCD1602的介紹1、LM1602字符型模塊的性能重量輕:<100g;體積?。?lt;11mm厚;功耗低:10—15mW;顯示內(nèi)容:192種字符〔5×7點(diǎn)字型〕;32種字符〔5×10點(diǎn)字型〕;可自編8〔5×7〕或許〔5×10〕種字符;指令功能強(qiáng):可組合成各種輸入、顯示、移位方式以滿足不同的要求;接口簡(jiǎn)單方便:可與8位微處理器或微控制器相聯(lián);工作溫度寬:0—50oC可靠性高:壽命為50,000小時(shí)〔25oC〕2、根本原理=1\*GB3①液晶體液晶板上排列著假設(shè)干5×7或5×10點(diǎn)陣的字符顯示位,每個(gè)顯示位可顯示1個(gè)字符,從規(guī)格上分為每行8、16、20、24、32、40位,有一行、兩行及四行三類。=2\*GB3②工作電路它由KS0066、KS0065及幾個(gè)電阻電容組成。KS0065是擴(kuò)展顯示字符用的〔例如:16個(gè)字符×1行模塊就可不用KS0065,16個(gè)字符×2行模塊就要用1片KS0065〕接口方面,有8條數(shù)據(jù),三條控線??膳c微處理器或微控制相連,通過(guò)送入數(shù)據(jù)和指令,就可使模塊正常工作。=3\*GB3③LCD驅(qū)動(dòng)器和控制器ALCD驅(qū)動(dòng)器KS0065KS0065是用低功耗CMOS技術(shù)制造的大規(guī)模LCD驅(qū)動(dòng)IC。它既可當(dāng)行驅(qū)動(dòng)用,也可以當(dāng)列驅(qū)動(dòng)用,由20×2Bin二進(jìn)制移位存放器、20×2Bin數(shù)據(jù)鎖存器和20×2Bin驅(qū)動(dòng)器組成功能:a40通道點(diǎn)陣LCD驅(qū)動(dòng);b可選擇當(dāng)做行驅(qū)動(dòng)或列驅(qū)動(dòng);c輸入/輸出信號(hào):輸出,能產(chǎn)生20×2個(gè)LCD驅(qū)動(dòng)波型;輸入,接受控制器送出的串行數(shù)據(jù)和控制信號(hào),偏壓〔V1—V6〕;特性:a顯示驅(qū)動(dòng)偏壓低:靜態(tài)~1/5;b電源電壓:+5V+10%;c顯示驅(qū)動(dòng)電源:-5V;dCMOS處理;e60引腳、塑封;BLCD控制器KS0066見(jiàn)圖4,KS0066是用低功耗CMOS技術(shù)制造的大規(guī)模點(diǎn)陣LCD控制器〔兼帶驅(qū)動(dòng)器〕,和4Bin/8Bin微處理器相連連,它能使點(diǎn)陣LCD顯示大小英文字母、符號(hào)。應(yīng)用KS0066,用戶能有少量元件就可組成一個(gè)完整點(diǎn)陣LCD系統(tǒng)。特性:a容易和Bin/8BinMpu相連;b可選擇5×7或5×10點(diǎn)字符;c顯示數(shù)據(jù)RAM容量:80×8Bin〔80字符〕;d字符發(fā)生器ROM能提供戶所需字符庫(kù)或標(biāo)準(zhǔn)庫(kù);字符容量:192個(gè)字符〔5×7點(diǎn)字符〕;32個(gè)字符〔5×10點(diǎn)字符〕;eDDRAM和CGRAM都能從Mpu讀取數(shù)據(jù);f輸出信號(hào):16個(gè)行掃信號(hào)〔commonsingnal〕,40個(gè)列掃信號(hào)〔sengmentsingnal〕g電源復(fù)位電路;h顯示占空比:1/8duty〔1Line,5×7dots+Cursor〕;1/11duty〔1Line,5×10dote+Cuesor〕;1/16duty〔2Line,5×7dots+Cuesir〕;i振蕩電路;j指令:11種;k80引腳、塑封。=4\*GB3④技術(shù)參數(shù)a極限參數(shù)b電參數(shù)3.2硬件電路的設(shè)計(jì)本設(shè)計(jì)單片機(jī)硬件資源的分配:P0.0~P0.7用于LCD液晶顯示作用。P2.6、P2.7用于蜂鳴器和報(bào)警燈的控制。P2.0用于開(kāi)鎖電路的控制。P1.0~P1.7用于鍵盤(pán)電路的控制。P3.3~P3.5用于LCD顯示模塊的控制端口的控制。3.2.1最小系統(tǒng)的設(shè)計(jì)當(dāng)MCS-5l系列單片機(jī)的復(fù)位引腳RST(全稱RESET)出現(xiàn)2個(gè)機(jī)器周期以上的高電平時(shí),單片機(jī)就執(zhí)行復(fù)位操作。如果RST持續(xù)為高電平,單片機(jī)就處于循環(huán)復(fù)位狀態(tài)。根據(jù)應(yīng)用的要求,復(fù)位操作通常有兩種根本形式:上電復(fù)位和開(kāi)關(guān)復(fù)位。圖3.3即為手動(dòng)〔開(kāi)關(guān)〕復(fù)位電路。圖3.3手動(dòng)復(fù)位電路〔2〕復(fù)位后的狀態(tài)a、復(fù)位后PC值為0000H,說(shuō)明復(fù)位后的程序從0000H開(kāi)始執(zhí)行。b、SP值為07H,說(shuō)明堆棧底部在07H,一般需要重新設(shè)置SP值。c、P0~P3口值為FFH。P0~P3口用作輸入口時(shí),必須先寫(xiě)入“1〞。單片機(jī)在復(fù)位后,已使P0~P3口每一端線為“1〞,為這些端線用作輸入口做好了準(zhǔn)備?!?〕WDT溢出將使該引腳輸出高電平,所以本設(shè)計(jì)采用圖3.4的手動(dòng)復(fù)位電路:圖3.4本設(shè)計(jì)手動(dòng)復(fù)位電路AT89S51中有一個(gè)用于構(gòu)成內(nèi)部振蕩器的高增益反相放大器,引腳XTAL1和XTAL2分別是該放大器的輸入端和輸出端。這個(gè)放大器與作為反響元件的片外石英晶體或陶瓷諧振器一起構(gòu)成自激振蕩器,振蕩電路參見(jiàn)圖3.5。外接石英晶體〔或陶瓷諧振器〕及電容Cl、C2接在放大器的反響回路中構(gòu)成并聯(lián)振蕩電路。對(duì)外接電容Cl、C2雖然沒(méi)有十分嚴(yán)格的要求,但電容容量的大小會(huì)輕微影響振蕩頻率的上下、振蕩器工作的穩(wěn)定性、起振的難易程序及溫度穩(wěn)定性。如果使用石英晶體,我們推薦電容使用30pF±10pF,而如使用陶瓷諧振器建議選擇40pF±10F。用戶也可以采用外部時(shí)鐘。采用外部時(shí)鐘的電路如圖1所示。這種情況下,外部時(shí)鐘脈沖接到XTAL1端,即內(nèi)部時(shí)鐘發(fā)生器的輸入端,XTAL2那么懸空。由于外部時(shí)鐘信號(hào)是通過(guò)一個(gè)2分頻觸發(fā)器后作為內(nèi)部時(shí)鐘信號(hào)的,所以對(duì)外部時(shí)鐘信號(hào)的占空比沒(méi)有特殊要求,但最小高電平持續(xù)時(shí)間和最大的低電平持續(xù)時(shí)間應(yīng)符合產(chǎn)品技術(shù)條件的要求。圖3.5單片機(jī)自激震蕩電路由于單片機(jī)有內(nèi)部振蕩器,所以本設(shè)計(jì)采用圖3.6的晶振電路:圖3.6晶振電路3.2.2芯片擦除整個(gè)PEROM陣列和三個(gè)鎖定位的電擦除可通過(guò)正確的控制信號(hào)組合,并保持ALE管腳處于低電平10ms來(lái)完成。在芯片擦操作中,代碼陣列全被寫(xiě)“1〞且在任何非空存儲(chǔ)字節(jié)被重復(fù)編程以前,該操作必須被執(zhí)行。此外,AT89S51設(shè)有穩(wěn)態(tài)邏輯,可以在低到零頻率的條件下靜態(tài)邏輯,支持兩種軟件可選的掉電模式。在閑置模式下,CPU停止工作。但RAM,定時(shí)器,計(jì)數(shù)器,串口和中斷系統(tǒng)仍在工作。在掉電模式下,保存RAM的內(nèi)容并且凍結(jié)振蕩器,禁止所用其他芯片功能,直到下一個(gè)硬件復(fù)位為止。3.2.3開(kāi)鎖機(jī)構(gòu)用戶通過(guò)LCD提示信息,用鍵盤(pán)輸入正確密碼,從而到達(dá)開(kāi)鎖的目的。當(dāng)用戶輸入的密碼正確并且是在按下確定鍵的話,單片機(jī)便輸出開(kāi)門(mén)信號(hào),送到開(kāi)鎖驅(qū)動(dòng)電路,然后驅(qū)動(dòng)電磁鎖,到達(dá)開(kāi)門(mén)的目的。電路驅(qū)動(dòng)和開(kāi)鎖兩級(jí)組成。由D5、R1、T10組成驅(qū)動(dòng)電路,其中T10可以選擇普通的小功率三極管如9014、9018都可以滿足要求。D5作為開(kāi)鎖的提示;由D6、C24、T11組成。其中D6、C24是為了消除電磁鎖可能產(chǎn)生的反向高電壓以及可能產(chǎn)生的電磁干擾。T11可選用中功率的三極管如8050,電磁鎖的選用要視情況而定,但是吸合力要足夠且由一定的余量。在本次設(shè)計(jì)中,基于節(jié)省材料的原那么,暫時(shí)用發(fā)光二極管代替電磁鎖,發(fā)光管亮,表示開(kāi)鎖;滅,表示沒(méi)有開(kāi)鎖。圖3.7密碼鎖開(kāi)鎖機(jī)構(gòu)電路圖3.2.4鍵盤(pán)設(shè)計(jì)本設(shè)計(jì)就采用行列式鍵盤(pán),同時(shí)也能減少鍵盤(pán)與單片機(jī)接口時(shí)所占用的I/O線的數(shù)目,在按鍵比擬多的時(shí)候,通常采用這樣方法。每一條水平〔行線〕與垂直線〔列線〕的交叉處不相通,而是通過(guò)一個(gè)按鍵來(lái)連通,利用這種行列式矩陣結(jié)構(gòu)只需要N條行線和M條列線,即可組成具有N×M個(gè)按鍵的鍵盤(pán)。在這種行列式矩陣鍵盤(pán)非鍵盤(pán)編碼的單片機(jī)系統(tǒng)中,鍵盤(pán)處理程序首先執(zhí)行等待按鍵并確認(rèn)有無(wú)按鍵按下的程序段。4×4矩陣鍵盤(pán)的工作原理在鍵盤(pán)中按鍵數(shù)量較多時(shí),為了減少I(mǎi)/O口的占用,通常將按鍵排列成矩陣形式,如圖5所示。在矩陣式鍵盤(pán)中,每條水平線和垂直線在交叉處不直接連通,而是通過(guò)一個(gè)按鍵加以連接。這樣,一個(gè)端口〔如P1口〕就可以構(gòu)成4*4=16個(gè)按鍵,比之直接將端口線用于鍵盤(pán)多出了一倍,而且線數(shù)越多,區(qū)別越明顯,比方再多加一條線就可以構(gòu)成20鍵的鍵盤(pán),而直接用端口線那么只能多出一鍵〔9鍵〕。由此可見(jiàn),在需要的鍵數(shù)比擬多時(shí),采用矩陣法來(lái)做鍵盤(pán)是合理的。掃描原理把每個(gè)鍵都分成水平和垂直的兩端接入,比方說(shuō)掃描碼是從垂直的入,那就代表那一行所接收到的掃描碼是同一個(gè)bit,而讀入掃描碼的那么是水平,掃描的動(dòng)作是先輸入掃描碼,再去讀取輸入的值,經(jīng)過(guò)比對(duì)之后就可知道是哪個(gè)鍵被按下。比方說(shuō)掃描碼送入01111111,前面的0111是代表此時(shí)掃描第一行列,而后面的1111是讓讀取的4行接腳先設(shè)為VDD,假設(shè)此時(shí)第一行的第三列按鍵被按下,那讀取的結(jié)果就會(huì)變成01111101〔注意1111變成1101〕,其中LSB的第三個(gè)bit會(huì)由1變成0,這是因?yàn)檫@個(gè)按鍵被按下之后,會(huì)被垂直的掃描碼電位short,而把讀取的LSB的bit電位拉到0,此即為掃描原理。由於這種按鍵是機(jī)械式的開(kāi)關(guān),當(dāng)按鍵被按下時(shí),鍵會(huì)震動(dòng)一小段時(shí)間才穩(wěn)定,為了防止讓8051誤判為屢次輸入同一按鍵,我們必須在偵測(cè)到有按鍵被按下,就Delay一小段時(shí)間,使鍵盤(pán)以達(dá)穩(wěn)定狀態(tài),再去判讀所按下的鍵,就可以讓鍵盤(pán)的輸入穩(wěn)定。圖3.8為鍵盤(pán)整體??驁D:圖3.8鍵盤(pán)整體??驁D顯示設(shè)計(jì)采用字符型液晶屏設(shè)計(jì),由單片機(jī)的p0口控制顯示,由p3.3~p3.5控制lcd的控制端口。本設(shè)計(jì)采用以下液晶顯示設(shè)計(jì):圖3.9LCD液晶顯示電路抓圖3.3電路設(shè)計(jì)總圖Proteus軟件是LabcenterElectronics公司的一款電路設(shè)計(jì)與仿真軟件,它包括ISIS、ARES等軟件模塊,ARES模塊主要用來(lái)完成PCB的設(shè)計(jì),而ISIS模塊用來(lái)完成電路原理圖的布圖與仿真。Proteus的軟件仿真基于VSM技術(shù),它與其他軟件最大的不同也是最大的優(yōu)勢(shì)就在于它能仿真大量的單片機(jī)芯片,比方MCS-51系列、PIC系列等等,以及單片機(jī)外圍電路,比方鍵盤(pán)、LED、LCD等等。通過(guò)Proteus軟件的使用我們能夠輕易地獲得一個(gè)功能齊全、實(shí)用方便的單片機(jī)實(shí)驗(yàn)室。本密碼鎖采用proteus進(jìn)行電路圖設(shè)計(jì),經(jīng)過(guò)元件選型,用萬(wàn)能實(shí)驗(yàn)版進(jìn)行硬件焊接,以實(shí)現(xiàn)硬件局部。以下圖為proteus設(shè)計(jì)的密碼鎖電路圖整體抓圖第四章系統(tǒng)軟件設(shè)計(jì)因設(shè)計(jì)主要是作用匯編語(yǔ)言來(lái)開(kāi)發(fā)的51單片機(jī)工程程序,所以首先必須有一個(gè)可以在WindowsXP或Windowsvista操作系統(tǒng)下執(zhí)行的匯編語(yǔ)言編譯器,本設(shè)計(jì)采用Keil編譯器進(jìn)行編程,因?yàn)樗梢灾С忠幌盗械?1單片機(jī)。開(kāi)始開(kāi)始初始化模式選擇識(shí)別按鍵密碼輸入手動(dòng)去除密碼比擬開(kāi)門(mén)舊密碼輸入新密碼輸入存入緩存區(qū)再次輸入密碼重新輸入設(shè)置完畢返回NANBY圖4.1主程序的流程圖主程序主要是完成系統(tǒng)初始化、設(shè)置中斷向量、檢查有無(wú)鍵按下、以及調(diào)用顯示等等。主程序局部如下所示:;;;displayequp0;將lcd的顯示端口連接到p0口上;;;returnbitbit20h.1;ORG0000h;程序開(kāi)始地址LJMPstart;ORG000bh;LJMPintermit_t0;ORG001bh;LJMPintermit_t1;ORG0030h;start:MOVsp,#60h;lcallsys_initialization;調(diào)用子程序sys_initialization4.2鍵盤(pán)掃描及識(shí)別子程序鍵盤(pán)局部程序如下:key: ;鍵盤(pán)程序名稱callks;調(diào)用子程序ksjnzk1;判斷是否有鍵按下jmpkey;跳回鍵盤(pán)程序ks:movp1,#0f0h;mova,p1;xrla,#0f0h;ret;圖4.2鍵盤(pán)掃描程序流程圖4.3系統(tǒng)模塊密碼設(shè)置子程序由于設(shè)計(jì)是分模塊化進(jìn)行,所以子程序是整體軟件系統(tǒng)的組成局部,子程序不但可以使程序化整為零,使其復(fù)雜簡(jiǎn)單化,同時(shí)也方便閱讀,修改等,每個(gè)功能模塊都有它自己的子程序,在本設(shè)計(jì)中是用LCD顯示數(shù)據(jù),所以就要用到顯示子程序,設(shè)計(jì)中用的是矩陣鍵盤(pán),所以就用到鍵盤(pán)掃描子程序,例如還有顯示初始化子程序、LCD忙檢測(cè)子程序、關(guān)閉狀態(tài)顯示子程序、開(kāi)鎖狀態(tài)顯示子程序、密碼輸入及修改狀態(tài)顯示子程序、密碼輸入錯(cuò)誤后的提示子程序等。如以下圖為密碼修改子程序流程圖選擇模式選擇模式舊密碼輸入新密碼輸入存入緩存再次輸入密碼比擬密碼重新輸入返回YN是否大于3次鎖定NY圖4.3設(shè)置密碼子程序程序調(diào)試在硬件支持的環(huán)境下,用proteus設(shè)計(jì)好的電路,Keil編好的程序編譯成芯片可識(shí)別的S51文件,利用PC機(jī)寫(xiě)進(jìn)proteus程序圖芯片內(nèi)進(jìn)行仿真測(cè)試,并對(duì)其出現(xiàn)的錯(cuò)誤進(jìn)行修改,由可看出最終調(diào)試成功。圖4.4keil編譯程序成功圖4.5keil生成hex文件圖4.6proteus調(diào)用keil的hex文件進(jìn)行仿真圖4.7仿真成功密碼正確圖4.8密碼正確綠燈亮第五章系統(tǒng)制作及調(diào)試5.1焊接考前須知:LCD的考前須知1.

采用焊接方法將金屬基PIN安裝于LCD時(shí),從玻璃末端到PCB的焊接位置的長(zhǎng)度至少5mm,焊接溫度必須在260℃以下,且焊接時(shí)間必須在10秒以內(nèi),以免焊接過(guò)程中對(duì)裝置的損壞,確保焊接性能。在230℃,30秒條件下,90%的焊料須緊密附著于PIN上。2.

對(duì)LCD基板或基PIN焊接位置的調(diào)整必須在安裝前完成。嚴(yán)禁猛烈移動(dòng)基PIN,否那么會(huì)機(jī)械地破壞LCD屏與基PIN之間的連接點(diǎn)。焊接時(shí)平放LCD,盡量不讓LCD受力。3.

焊接LCD基板時(shí),將其小心、平衡地插入PCB插槽,以防止損壞基PIN或LCD基板。4.

焊接時(shí),LCD基板不應(yīng)長(zhǎng)時(shí)間置于焊錫蒸汽中,清洗PCB時(shí),必須防止污染LCD基板,否那么可能損壞顯示器外表的偏光片及封口膠。5.

顯示器外表的保護(hù)膜直到焊接完成才可揭掉,禁止手指及其它硬物接觸偏光片,禁止水和其他化學(xué)物質(zhì)沾污裝置,因?yàn)檫@些物質(zhì)會(huì)污染顯示器外表。單片機(jī)焊接考前須知:80s51單片機(jī)與其它單片機(jī),dsp,arm芯片相比擬而言是脆弱的,如果焊接時(shí)不小心就很可能把芯片損壞!建議用比擬好的恒溫可調(diào)的烙鐵,功率在30瓦左右,溫度控制在260到300度,建議采用點(diǎn)焊而不用拉焊,焊接時(shí)烙鐵放在每個(gè)引腳的時(shí)間不能太長(zhǎng)〔最好低于3秒〕。上邊提到的方法還不能確保芯片完好,對(duì)芯片有危害的還有帶電烙鐵的靜電感應(yīng)!烙鐵質(zhì)量不是太好的,焊接時(shí)可以把烙鐵電源插頭拔掉。其他的電子器件焊接須知:一般分四步驟進(jìn)行。①準(zhǔn)備焊接:清潔被焊元件處的積塵及油污,再將被焊元器件周?chē)脑骷笥谊魂?讓電烙鐵頭可以觸到被焊元器件的焊錫處,以免烙鐵頭伸向焊接處時(shí)燙壞其他元器件。焊接新的元器件時(shí),應(yīng)對(duì)元器件的引線鍍錫。②加熱焊接:將沾有少許焊錫和松香的電烙鐵頭接觸被焊元器件約幾秒鐘。假設(shè)是要拆下印刷板上的元器件,那么待烙鐵頭加熱后,用手或銀子輕輕拉動(dòng)元器件,看是否可以取下。③清理焊接面:假設(shè)所焊部位焊錫過(guò)多,可將烙鐵頭上的焊錫甩掉(注意不要燙傷皮膚,也不要甩到印刷電路板上!),用光烙錫頭"沾"些焊錫出來(lái)。假設(shè)焊點(diǎn)焊錫過(guò)少、不圓滑時(shí),可以用電烙鐵頭"蘸"些焊錫對(duì)焊點(diǎn)進(jìn)行補(bǔ)焊。④檢查焊點(diǎn):看焊點(diǎn)是否圓潤(rùn)、光亮、牢固,是否有與周?chē)骷B焊的現(xiàn)象。焊接流程按照附錄=1\*ROMANI所示的電子密碼鎖的硬件聯(lián)接原理圖按以下順序依次焊接:〔1〕焊接單片機(jī)的晶振電路、復(fù)位電路等單片機(jī)的最小系統(tǒng)的外圍電路?!?〕焊接LCD的相應(yīng)管腳并把LCD的管腳單片機(jī)相連接?!?〕焊接鍵盤(pán)的按鍵電路?!?〕焊接電子密碼鎖的密碼輸入錯(cuò)誤的報(bào)警電路?!?〕焊接密碼鎖的開(kāi)鎖機(jī)構(gòu)電路?!?〕焊接其他接口及輔助電路。〔7〕焊接接地及高電平。5.2、硬件調(diào)試問(wèn)題及解決方法本設(shè)計(jì)在焊接調(diào)試時(shí)遇到的問(wèn)題以及解決方法:?jiǎn)纹瑱C(jī)的最小系統(tǒng)問(wèn)題:電源、晶振電路和復(fù)位電路都無(wú)異常。Lcd焊接時(shí)的問(wèn)題:〔1〕接通電源后lcd無(wú)反響,各個(gè)引腳均屬正常。推斷可能是初始化程序出現(xiàn)問(wèn)題。經(jīng)查找得知是lcd顯示器的15和16管腳控制背光功能,連接好之后還是不能顯示字符?!?〕接通電源開(kāi)門(mén)燈和報(bào)警電路就會(huì)工作,分析原因是單片機(jī)剛開(kāi)始各個(gè)管腳輸出高電平。以下為所做實(shí)物:AT89S51LCD液晶顯示復(fù)位電路4×4矩陣鍵盤(pán)AT89S51LCD液晶顯示復(fù)位電路4×4矩陣鍵盤(pán)密碼錯(cuò)誤報(bào)警電路晶振電路參考文獻(xiàn)[01][02]楊西明,朱騏主編

.單片機(jī)編程與應(yīng)用入門(mén).北京:機(jī)械工業(yè)出版社

.2004.06[03]先鋒工作室編著.單片機(jī)程序設(shè)計(jì)實(shí)例.北京:清華大學(xué)出版社.2003.01[04]謝宜仁主編

.單片機(jī)實(shí)用技術(shù)問(wèn)答.北京:人民郵電出版社

.2003.02[05]梁麗.電子密碼鎖的計(jì)算機(jī)仿真設(shè)計(jì).計(jì)算機(jī)仿真,2005[06]房小翠,王金鳳編著.單片機(jī)實(shí)用系統(tǒng)設(shè)計(jì)技術(shù).北京:國(guó)防工業(yè)出版社

.1999.06[07]各種網(wǎng)絡(luò)教程及其他[08]王寬仁.可靠平安的智能密碼鎖.電子技術(shù)應(yīng)用,2001[09]李捷,陳典濤,陳建華,等.一種基于單片機(jī)的電子密碼鎖的設(shè)計(jì)[J].農(nóng)機(jī)化研究,2004,5[10]董繼成.能防止屢次試探密碼的單片機(jī)密碼鎖.國(guó)外電子元器件,2004,3[11]趙益丹,徐曉林,周振峰編著.電子密碼鎖的系統(tǒng)原理、設(shè)計(jì)程序及流程圖.嘉興學(xué)院學(xué)報(bào),2003,15[12]張培仁.基于C語(yǔ)言編程MCS-51單片機(jī)原理與應(yīng)[13]李朝清.PC機(jī)及單片機(jī)數(shù)據(jù)通信技術(shù).北京:北京航空航天大學(xué)出版社,1999.[14]路而紅.專用集成電路設(shè)計(jì)與電子設(shè)計(jì)自動(dòng)化.北京:清華大學(xué)出版社,2004[15]劉文濤.MCS-51單片機(jī)培訓(xùn)教程〔C51〕版.電子工業(yè)出版社,2005.8[16]王為青程國(guó)鋼.單片機(jī)KeilCx51應(yīng)用開(kāi)發(fā)技術(shù).人民郵電出版社,2007.2[17]范風(fēng)強(qiáng)蘭嬋麗.單片機(jī)語(yǔ)言C51應(yīng)用實(shí)戰(zhàn)集錦.電子工業(yè)出版社,2003.3[18]龔運(yùn)新.單片機(jī)C語(yǔ)言開(kāi)發(fā)技術(shù).清華大學(xué)出版社[19]邵貝貝.單片機(jī)嵌入式應(yīng)用的在線開(kāi)發(fā)方法.清華大學(xué)出版社,2006.3[20]王宜懷.單片機(jī)原理及其嵌入式應(yīng)用教程.北京希望電子出版社,2002.8附錄Ⅰ電子密碼鎖整體設(shè)計(jì)圖附錄Ⅱ電子密碼鎖程序源代碼enbitp3.5;rwbitp3.4;rsbitp3.3;displayequp0;speakerbitp2.6;ledbitp2.7;openbitp2.0;returnbitbit20h.1;ORG0000h;LJMPstart;ORG000bh;LJMPintermit_t0;ORG001bh;LJMPintermit_t1;ORG0030h;start:MOVsp,#60h;lcallsys_initialization;main0:lcallstrat_display;main:MOV52h,#0;52h;判斷輸入錯(cuò)誤次數(shù)存儲(chǔ)地址setbled;setbtr0;lcallkey;cjnea,#'A',next1;LJMPset_password;next1:cjnea,#'B',next2;LJMPinput_password;next2:ajmpmain;sys_initialization:clrled;clropen;clrspeaker;MOV34h,#'1';MOV35h,#'1';MOV36h,#'1';MOV37h,#'1';MOV38h,#'1';MOV39h,#'1';;存放初始密碼MOVr7,#12;MOVr0,#40h;loop:MOV@r0,#10h;incr0;djnzr7,loop;;密碼鍵值存放區(qū)清零完畢lcalldelay0_1s;MOVp0,#03h;callwrite_instruction;;液晶軟復(fù)位MOVp0,#01h;callwrite_instruction;movp0,#3fh;callwrite_instruction;movp0,#0fh;callwrite_instruction;movp0,#06h;callwrite_instruction;;液晶初始化完畢movr4,#10;movtmod,#11h;movth0,#0b0h;setbea;ret;;系統(tǒng)初始化完畢intermit_t0:pushacc;pushpsw;movth0,#3ch;movtl0,#0b0h;djnzr4,return;cplled;movr4,#10;return:poppsw;popacc;reti;intermit_t1:pushacc;pushpsw;movth1,#9eh;movtl1,#58h;djnzr4,return_t1;cplled;cplspeaker;movr4,#10;return_t1:poppsw;popacc;reti;;;;;;;;;;;;;;;;;;鍵盤(pán)掃描key:callks;jnzk1;jmpkey;k1:calldelay;callks;jnzk2;jmpkey;k2:clrtr0;clrled;movr2,#0feh;movr6,#00h;k3:mova,r2;movp1,a;mova,p1;jbacc.4,l1;mova,#0;LJMPlk;l1: jbacc.5,l2;mova,#4;ljmplk;l2:jbacc.6,l3;mova,#8;ljmplk;l3: jbacc.7,next_key;mova,#12;lk: adda,r6;movr6,a;k4: callks;jnzk4;mova,r6;movdptr,#table0;movca,@a+dptr;mov50h,a;;查表取值存入50H,保護(hù)鍵值ret;next_key:incr6;mova,r2;jnbacc.7,key;rla;movr2,a;jmpk3;;;;;;;;;;;;;ks:movp1,#0f0h;mova,p1;xrla,#0f0h;ret;;;;;;;;;;;;;;;;;;設(shè)置密碼程序set_password:callclear_display;movdptr,#table4;callinput_hint;movr0,#40h;callpassword;jbcreturnbit,set_password;;先輸入原密碼完畢movr5,#6;movr0,#40h;movr1,#34h;input_compere:mova,@r0;xrla,@r1;jnzinput_error;incr0;incr1;nop;nop;djnzr5,input_compere;;驗(yàn)證輸入密碼完畢jmpset_password0;input_error:setbled;callclear_display;movdptr,#table5;callinput_hint;calldelay1_5s;clrspeaker;clrled;inc52h;mova,52h;cjnea,#3,set_password;sjmp$;;輸入密碼錯(cuò)誤次數(shù)超過(guò)3次,鎖死set_password0:callclear_display;movdptr,#table2;callinput_hint;movr0,#40h;callpassword;jbcreturnbit,set_password;;第一次輸入新密碼完畢callclear_display;movdptr,#table3;callinput_hint;calldelay1_5s;;顯示再次輸入新密碼完畢callclear_display;movdptr,#table4;callinput_hint;movr0,#46h;callpassword;jbcreturnbit,set_password;;第二次輸入新密碼完畢movr5,#6;movr0,#40h;movr1,#46h;set_compere:mova,@r0;xrla,@r1;jnzset_error;incr0;incr1;djnzr5,set_compere;mov34h,40h;mov35h,41h;mov36h,42h;mov37h,43h;mov38h,44h;mov39h,45h;;存入新密碼完畢jmpmain0;;設(shè)置新密碼成功,返回主程序set_error:setbspeaker;setbled;callclear_display;movdptr,#table5;callinput_hint;calldelay1_5s;clrspeaker;clrled;ljmpset_password0;;前后兩次輸入新密碼不一致,返回重設(shè);;;;;;;;;;;;;;;;;輸入密碼開(kāi)鎖程序input_password:callclear_display;movdptr,#table4;callinput_hint;movr0,#40h;callpassword;jbcreturnbit,input_password;;輸入原密碼完畢movr5,#6;movr0,#40h;movr1,#34h;input_compere0:mova,@r0;xrla,@r1;jnzinput_error22;incr0;incr1;nop;nop;djnzr5,input_compere0;;驗(yàn)證輸入密碼完畢jmpdisplay_right;input_error22:setbspeak

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論