單片機(jī)密碼鎖課程設(shè)計(jì)_第1頁(yè)
單片機(jī)密碼鎖課程設(shè)計(jì)_第2頁(yè)
單片機(jī)密碼鎖課程設(shè)計(jì)_第3頁(yè)
單片機(jī)密碼鎖課程設(shè)計(jì)_第4頁(yè)
單片機(jī)密碼鎖課程設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩18頁(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)介

1、目 錄1 引言12主要元器件介紹22.1主控芯片at89s5122.1.1 at89s51性能簡(jiǎn)介22.1.2 at89s51引腳功能說(shuō)明32.2 lcd1602顯示器52.2.1接口信號(hào)說(shuō)明52.2.2主要技術(shù)參數(shù)52.2.3 1602基本操作步驟53系統(tǒng)硬件73.1設(shè)計(jì)原理73.2電路總體構(gòu)成73.3鍵盤(pán)輸入部分83.4 lcd1602顯示84系統(tǒng)軟件設(shè)計(jì)104.1主程序模塊104.2按鍵功能模塊114.3修改密碼模塊134.4開(kāi)鎖模塊14參考文獻(xiàn)16附錄171 引言鎖任務(wù)的電子產(chǎn)品。它的種類很多,有簡(jiǎn)易的電路產(chǎn)品,也有基于芯片的性價(jià)比較高的產(chǎn)品?,F(xiàn)在應(yīng)用電子密碼鎖是一種通過(guò)密碼輸入來(lái)控制

2、電路或是芯片工作,從而控制機(jī)械開(kāi)關(guān)的閉合,完成開(kāi)鎖、閉鎖的電子密碼鎖是以芯片為核心,通過(guò)編程來(lái)實(shí)現(xiàn)的。其性能和安全性已大大超過(guò)了機(jī)械鎖。在日常生活和工作中,住宅與部門(mén)的安全防范、單位的文件檔案、財(cái)務(wù)報(bào)表以及一些個(gè)人資料的保存多以加鎖的辦法來(lái)解決。目前門(mén)鎖主要用彈子鎖,其鑰匙容易丟失;保險(xiǎn)箱主要用機(jī)械密碼鎖,其結(jié)構(gòu)較為復(fù)雜,制造精度要求高,成本高,且易出現(xiàn)故障,人們常需攜帶多把鑰匙,使用極不方便,且鑰匙丟失后安全性即大打折扣。針對(duì)這些鎖具給人們帶來(lái)的不便若使用機(jī)械式鑰匙開(kāi)鎖,為滿足人們對(duì)鎖的使用要求,增加其安全性,用密碼代替鑰匙的密碼鎖應(yīng)運(yùn)而生。它的出現(xiàn)為人們的生活帶來(lái)了很大的方便,有很廣闊的市

3、場(chǎng)前景。由于電子器件所限,以前開(kāi)發(fā)的電子密碼鎖,其種類不多,保密性差,最基本的就是只依靠最簡(jiǎn)單的模擬電子開(kāi)關(guān)來(lái)實(shí)現(xiàn)的,制作簡(jiǎn)單但很不安全,在后為多是基于eda來(lái)實(shí)現(xiàn)的,其電路結(jié)構(gòu)復(fù)雜,電子元件繁多,也有使用早先的20引腳的2051系列單片機(jī)來(lái)實(shí)現(xiàn)的,但密碼簡(jiǎn)單,易破解。隨著電子元件的進(jìn)一步發(fā)展,電子密碼鎖也出現(xiàn)了很多的種類,功能日益強(qiáng)大,使用更加方便,安全保密性更強(qiáng),由以前的單密碼輸入發(fā)展到現(xiàn)在的,密碼加感應(yīng)元件,實(shí)現(xiàn)了真正的電子加密,用戶只有密碼或電子鑰匙中的一樣,是打不開(kāi)鎖的,隨著電子元件的發(fā)展及人們對(duì)保密性需求的提高出現(xiàn)了越來(lái)越多的電子密碼鎖。本設(shè)計(jì)采用單片機(jī)為主控芯片,結(jié)合外圍電路,組

4、成電子密碼鎖,用戶想要打開(kāi)鎖,必先通過(guò)提供的鍵盤(pán)輸入正確的密碼才能將鎖打開(kāi),密碼輸入錯(cuò)誤有提示,為了提高安全性,當(dāng)密碼輸入錯(cuò)誤三次將報(bào)警。密碼可以由用戶自己修改設(shè)定。修改密碼之前必須再次輸入密碼,以防止誤操作。2 主要元器件介紹2.1主控芯片at89s512.1.1 at89s51性能簡(jiǎn)介at89s51具有如下特點(diǎn):40個(gè)引腳,4k bytes flash片內(nèi)程序存儲(chǔ)器,128 bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(ram),32個(gè)外部雙向輸入/輸出(i/o)口,5個(gè)中斷優(yōu)先級(jí)2層中斷嵌套中斷,2個(gè)16位可編程定時(shí)計(jì)數(shù)器,2個(gè)全雙工串行通信口,看門(mén)狗(wdt)電路,片內(nèi)時(shí)鐘振蕩器。此外,at89s5

5、1設(shè)計(jì)和配置了振蕩頻率可為0hz并可通過(guò)軟件設(shè)置省電模式??臻e模式下,cpu暫停工作,而ram定時(shí)計(jì)數(shù)器,串行口,外中斷系統(tǒng)可繼續(xù)工作,掉電模式凍結(jié)振蕩器而保存ram的數(shù)據(jù),停止芯片其它功能直至外中斷激活或硬件復(fù)位。同時(shí)該芯片還具有pdip、tqfp和plcc等三種封裝形式,以適應(yīng)不同產(chǎn)品的需求。圖2-1 at89s51 芯片引腳圖其主要功能特性: 兼容mcs-51指令系統(tǒng) 4k可反復(fù)擦寫(xiě)isp flash rom 32個(gè)雙向i/o口 4.5-5.5v工作電壓 2個(gè)16位可編程定時(shí)/計(jì)數(shù)器 時(shí)鐘頻率0-33mhz 全雙工uart串行中斷口線 128x8 bit內(nèi)部ram 2個(gè)外部中斷源 低功耗

6、空閑和省電模式 中斷喚醒省電模式 3級(jí)加密位 看門(mén)狗(wdt)電路 軟件設(shè)置空閑和省電功能 靈活的isp字節(jié)和分頁(yè)編程 雙數(shù)據(jù)寄存器指針 可以看出at89s51提供以下標(biāo)準(zhǔn)功能:4k字節(jié)flash閃速存儲(chǔ)器,128字節(jié)內(nèi)部ram,32個(gè)i/o口線,看門(mén)狗(wdt),兩個(gè)數(shù)據(jù)指針,兩個(gè)16位定時(shí)器/計(jì)數(shù)器,一個(gè)5向量?jī)杉?jí)中斷結(jié)構(gòu),一個(gè)全雙工串行通信口,片內(nèi)振蕩器及時(shí)鐘。同時(shí), at89s51可降至0hz的靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電工作模式??臻e方式停止cpu的工作,但允許ram,定時(shí)/計(jì)數(shù)器,串行通信口及中斷系統(tǒng)繼續(xù)工作。掉電方式保存在ram中的內(nèi)容,但振蕩器停止工作并禁止其它所有部

7、件工作直接到一個(gè)硬件復(fù)位。2.1.2 at89s51引腳功能說(shuō)明vcc:電源電壓gnd:地p0口:p0口是一組8位漏極開(kāi)路型雙向i/o口,也即地址/數(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)部上拉電阻。在flash編程時(shí),p0口接收指令字節(jié),而在程序校驗(yàn)時(shí),輸出指令字節(jié),校驗(yàn)時(shí),要求外接上拉電阻。p1口:p1是一個(gè)帶內(nèi)部上拉電阻的8位雙向i/o口,p1的輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4個(gè)ttl邏輯門(mén)電路。對(duì)端口寫(xiě)“1”,通過(guò)內(nèi)部的上拉電

8、阻把端口拉到高電平,此時(shí)可作輸入口。作輸入口使用時(shí),因?yàn)閮?nèi)部存在上拉電阻,某個(gè)引腳被外部信號(hào)校驗(yàn)期間,p1接收低8位地址。表2-2為p1口第二功能。端口引腳第二功能p1.5mosi(用于isp編程)p1.6miso(用于isp編程)p1.7sck(用于isp編程)圖2-2 p1口第二功能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è)電流i。在訪問(wèn)8位地址的外部數(shù)據(jù)存儲(chǔ)器(如執(zhí)行:movx ri 指令)時(shí),

9、p2口線上的內(nèi)(也即特殊功能寄存器,在整個(gè)訪問(wèn)期間不改變。flash 編程或校驗(yàn)時(shí),p2也接收高位地址和其它控制信號(hào)。p3口:p3口是一組帶有內(nèi)部上拉電阻的8位雙向i/o口。p3口輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4個(gè)ttl邏輯門(mén)電路。對(duì)p3口寫(xiě)入“1”時(shí),它們被內(nèi)部上拉電阻拉高并可作為輸入端口。作輸入端口時(shí),被外部拉低的p3口將用上拉電阻輸出電流i。p3口除了作為一般的i/o口線外,更重要的用途是它的第二功能,p3口的第二功能如下表2-3。 端口功能 第二功能端口引腳第二功能rxd(p3.0)串行輸入口t0(p3.4)定時(shí)/計(jì)數(shù)器0外部輸入txd(p3.1)串行輸出口t1(p3.5)定時(shí)/計(jì)

10、數(shù)器1外部輸入int0(p3.2)外中斷0wr(p3.6)外部數(shù)據(jù)存儲(chǔ)器寫(xiě)選通int1(p3.3)外中斷1rd(p3.7)外部數(shù)據(jù)存儲(chǔ)器讀選通圖2-3 p3口的第二功能rst:復(fù)位輸入。當(dāng)振蕩工作時(shí),rst引腳出現(xiàn)兩個(gè)機(jī)器周期上高電平將使單片機(jī)復(fù)位。wdt溢出將使該引腳輸出高電平,設(shè)置sfr auxr 的 disrto 位(地址8eh)可打開(kāi)或關(guān)閉該功能。disrto 位缺省為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ì)

11、外輸出時(shí)鐘或用于定時(shí)目地,要注意的是:當(dāng)訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí)將跳過(guò)一個(gè)ale脈沖。psen:程序儲(chǔ)存允許(psen)輸出是外部程序存儲(chǔ)器的讀選通信號(hào),當(dāng)at89s51由外部程序存儲(chǔ)器取指令(或數(shù)據(jù))時(shí),每個(gè)機(jī)器周期兩次psen有效,即輸出兩個(gè)脈沖。當(dāng)訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器,高有兩次有效的psen信號(hào)。ea/vpp:外部訪問(wèn)允許。欲使cpu公訪問(wèn)外部程序存儲(chǔ)器(地址0000hffffh),ea端必須保持低電平(接地)。需注意的是:如果加密位lb1被編程,復(fù)位時(shí)內(nèi)部會(huì)鎖存ea端狀態(tài)。如ea端為高電平(接vcc端),cpu則執(zhí)行內(nèi)部程序存儲(chǔ)器中的指令。flash存儲(chǔ)器編程時(shí),該引腳加上12v的編程電壓v

12、pp。xtal1:振蕩器反相放大器及內(nèi)部時(shí)鐘發(fā)生器的輸入端。xtal2:振蕩器反相放大器的輸出端。2.2 lcd1602顯示器 現(xiàn)在的字符型液晶模塊已經(jīng)是單片機(jī)應(yīng)用設(shè)計(jì)中最常用的信息顯示器件了。1602型lcd顯示模塊具有體積小,功耗低,顯示內(nèi)容豐富等特點(diǎn)。1602型lcd可以顯示2行16個(gè)字符,有8位數(shù)據(jù)總線d0-d7和rs,r/w,en三個(gè)控制端口,工作電壓為5v,并且具有字符對(duì)比度調(diào)節(jié)和背光功能。2.2.1接口信號(hào)說(shuō)明1602型lcd的接口信號(hào)說(shuō)明如表2-4所示: 編號(hào)符號(hào)引腳說(shuō)明編號(hào)符號(hào)引腳說(shuō)明1vss電源地9d2data i/o2vdd電源正極10d3data i/o3v0液晶顯示偏

13、壓信號(hào)11d4data i/o4rs數(shù)據(jù)/命令選擇端(h/l)12d5data i/o5r/w讀寫(xiě)選擇端(h/l)13d6data i/o6e使能信號(hào)14d7data i/o7d0data i/o15bla背光源正極8d1data i/o16blk背光源負(fù)極圖2-4 1602型lcd的接口信號(hào)說(shuō)明2.2.2主要技術(shù)參數(shù)1602型lcd的主要技術(shù)參數(shù)如下表所示:顯示容量16x2個(gè)字符芯片工作電壓4.55.5v工作電流2.0ma(5.0v)模塊最佳工作電壓5.0v字符尺寸2.95x4.35(wxh)mm圖2-5 1602型lcd的主要技術(shù)參數(shù)2.2.3 1602基本操作步驟讀狀態(tài):輸入:rs=l,

14、rw=l,e=h 輸出:d0-d7=狀態(tài)字讀數(shù)據(jù):輸入:rs=h,rw=h,e=h 輸出:無(wú)寫(xiě)指令:輸入:rs=l,rw=l,d0-d7=指令碼,e=高脈沖 輸出:d0-d7=數(shù)據(jù)寫(xiě)數(shù)據(jù):輸入:rs=h,rw=l,d0-d7=數(shù)據(jù), e=高脈沖 輸出:無(wú)3 系統(tǒng)硬件3.1 設(shè)計(jì)原理本設(shè)計(jì)主要由單片機(jī)、矩陣鍵盤(pán)、液晶顯示器等部分組成。其中矩陣鍵盤(pán)用于輸入數(shù)字密碼和進(jìn)行各種功能的實(shí)現(xiàn)。由用戶通過(guò)連接單片機(jī)的矩陣鍵盤(pán)輸入密碼,后經(jīng)過(guò)單片機(jī)對(duì)用戶輸入的密碼與自己保存的密碼進(jìn)行對(duì)比,從而判斷密碼是否正確。本系統(tǒng)共有兩部分構(gòu)成,即硬件部分與軟件部分。其中硬件部分由鍵盤(pán)輸入部分、顯示部分組成,軟件部分對(duì)應(yīng)的

15、由主程序、初始化程序、lcd顯示程序、鍵盤(pán)掃描程序、啟動(dòng)程序、關(guān)閉程序、按鍵功能程序、密碼設(shè)置程序、eeprom讀寫(xiě)程序和延時(shí)程序等組成。3.2電路總體構(gòu)成在確定了選用什么型號(hào)的單片機(jī)后,就要確定在外圍電路,其外圍電路包括電源輸入部分、鍵盤(pán)輸入部分、顯示部分組成,根據(jù)實(shí)際情況鍵盤(pán)輸入部分選擇4*4矩陣鍵盤(pán),顯示部分選擇字符型液晶顯示lcd1602。其仿真圖如圖3-1所示:圖3-1 電路仿真圖3.3鍵盤(pán)輸入部分由于本設(shè)計(jì)所用到的按鍵數(shù)量較多而不適合用獨(dú)立按鍵式鍵盤(pán)。采用的是矩陣式按鍵鍵盤(pán),它由行線和列線組成,也稱行列式鍵盤(pán),按鍵位于行列的交叉點(diǎn)上,密碼鎖的密碼由鍵盤(pán)輸入完成,與獨(dú)立式按鍵鍵盤(pán)相比

16、,要節(jié)省很多i/o口。本設(shè)計(jì)中使用的這個(gè)4*4鍵盤(pán)不但能完成密碼的輸入還能作特別功能鍵使用,比如清空顯示功能等。鍵盤(pán)的每個(gè)按鍵功能在程序設(shè)計(jì)中設(shè)置。其大體功能(看鍵盤(pán)按鍵上的標(biāo)記)及與單片機(jī)引腳接法如圖3-2所示:圖3-2 鍵盤(pán)按鍵引腳圖 3.4顯示部分為了提高密碼鎖的密碼顯示效果能力。本設(shè)計(jì)的顯示部分由液晶顯示器lcd1602取代普通的數(shù)碼管來(lái)完成。只有按下鍵盤(pán)上的開(kāi)啟按鍵后,顯示器才處于開(kāi)啟狀態(tài)。同理只有按下關(guān)閉按鍵后顯示器才處于關(guān)閉狀態(tài)。否則顯示器將一直處于初始狀態(tài),當(dāng)需要對(duì)密碼鎖進(jìn)行開(kāi)鎖時(shí),按下鍵盤(pán)上的開(kāi)鎖按鍵后利用鍵盤(pán)上的數(shù)字鍵09輸入密碼,每按下一個(gè)數(shù)字鍵后在顯示器上顯示一個(gè)*,輸

17、入多少位就顯示多少個(gè)*。當(dāng)密碼輸入完成時(shí),按下確認(rèn)鍵,如果輸入的密碼正確的話, lcd子顯示“right”,單片機(jī)其中p2.0引腳會(huì)輸出低電平,使三極管t2導(dǎo)通,電磁鐵吸合,電子密碼鎖被打開(kāi),如果密碼不正確,lcd顯示屏?xí)@示“error”,p2.0輸出的是高電平,電子密碼鎖不能被打開(kāi)。通過(guò)lcd顯示屏,可以清楚的判斷出鎖所處的狀態(tài)。其顯示部分引腳接口如圖3-3所示:圖3-3 1602顯示屏引腳圖4 系統(tǒng)軟件設(shè)計(jì)本系統(tǒng)軟件設(shè)計(jì)由主程序模塊、初始化模塊、lcd顯示模塊、鍵盤(pán)掃描模塊、鍵功能程序、密碼設(shè)置程序等組成。4.1主程序模塊主程序流程圖如圖4-1所示:開(kāi)始初始化鍵盤(pán)掃描啟動(dòng)程序鍵盤(pán)掃描鍵功

18、能程序結(jié)束關(guān)閉程序 圖4-1 主程序流程圖主程序代碼如下所示:main() l1602_init(); while(1) keydown(); 4.2按鍵功能模塊按鍵功能流程圖如圖4-2所示:鍵功能程序鍵值09?鍵值開(kāi)鎖?鍵值退格?鍵值修改?鍵值顯示?密碼輸入程序修改程序退格程序開(kāi)鎖程序顯示程序yyyyynnnn返回n圖4-2 按鍵功能流程圖按鍵功能程序代碼如下所示:if(key=11) l1602_string(1,1,input old code );l1602_string(2,1, );i=0;j=1;flag2=1;if(key=12) l1602_string(1,1,input

19、your code ) ; l1602_string(2,1, );i=0;j=1;if(key=13) l1602_string(1,1,show password ) ;for(k=0;k6;k+)l1602_char(2,k+1,init_valk+48);delayms(255);delayms(255); delayms(255);delayms(255);l1602_string(2,1, );if(key=14) if(flag=1) if(m!=0) l1602_char(2,n-1,0);delayms(255);m-;n-; else if(i!=0) l1602_char

20、(2,j-1,0);delayms(255);i-;j-; if(key=15) l1602_string(1,1,already reset );l1602_string(2,1, );for(i=0;i6;i+)init_vali=1; show_vali=0; i=0,j=1,m=0,n=1,flag=0,flag2=0;4.3修改密碼模塊修改密碼程序流程圖如圖4-3所示。設(shè)置程序初始化按下設(shè)置鍵輸舊密碼確認(rèn)程序輸新密碼設(shè)置成功確認(rèn)程序圖4-3 密碼設(shè)置流程圖修改密碼程序代碼如下所示:if(key=10) if(check_input_pw()=1) l1602_string(1,1,

21、input error );l1602_string(2,1, );i=0;j=1;delayms(255);times+;if (times=3) p3=0xfe;l1602_string(1,1,system clocked );while(1);l1602_string(1,1,input code again);l1602_string(2,1, );else l1602_string(1,1, door open );l1602_string(2,1, );p3=0x7f;delayms(255);delayms(255);p3=0xff;4.4開(kāi)鎖模塊開(kāi)鎖程序流程圖如圖4-4所示:

22、初始化按開(kāi)鎖鍵輸入密碼確認(rèn)程序開(kāi)鎖成功開(kāi)鎖程序圖4-4 開(kāi)鎖流程圖開(kāi)鎖程序代碼如下所示:if(check_input_pw()=1) l1602_string(1,1, input error );l1602_string(2,1, );i=0;j=1;delayms(255);times+;if (times=3) p3=0xfe;l1602_string(1,1,system clocked );while(1);l1602_string(1,1,input code again );l1602_string(2,1, );else l1602_string(1,1, door open

23、);l1602_string(2,1, );p3=0x7f;delayms(255);delayms(255);p3=0xff;參考文獻(xiàn)1 石文軒,宋薇.基于單片機(jī)mcs-51的智能密碼鎖設(shè)計(jì)m.武漢工程職業(yè)技術(shù)學(xué)院學(xué)報(bào),2004,(01)2 袁新燕。淺談單片機(jī)應(yīng)用系統(tǒng)的調(diào)試j。自動(dòng)化與儀器儀表,2000,(03)3 童詩(shī)白,華成英,模擬電子技術(shù)基礎(chǔ)m,北京:高等教育出版社,20004 閻石主.數(shù)字電子技術(shù)基礎(chǔ)m,北京:高等教育出版社,19985 吳春國(guó),李文石。單片機(jī)控制電子鎖技術(shù)剖析s。東北林業(yè)大學(xué)學(xué)報(bào),2002,(05)6 李景宏,馬學(xué)文。電子技術(shù)實(shí)驗(yàn)教程m。沈陽(yáng):東北大學(xué)出版社,200

24、47 賈正松。單片機(jī)系統(tǒng)復(fù)位電路設(shè)計(jì)j??萍假Y訊,2007,(36)附錄#include #include #include #define uchar unsigned char#define uint unsigned intstatic uchar show_val6;static uchar init_val6=1,1,1,1,1,1; uchar key,times=0;unsigned char code key_code=0xee,0xed,0xeb,0xe7,0xde,0xdd,0xdb,0xd7,0xbe, 0xbd,0xbb,0xb7,0x7e,0x7d,0x7b,0x77

25、 ;/以下是1602程序sbit e=p22;/1602使能引腳sbit rw=p21;/1602讀寫(xiě)引腳sbit rs=p20;/1602數(shù)據(jù)/命令選擇引腳void delay()int i,j;for(i=0; i=100; i+)for(j=0; j=20; j+);void enable(uchar del)p0 = del;rs = 0;rw = 0;e = 0;delay();e = 1;delay();void write(uchar del)p0 = del;rs = 1;rw = 0;e = 0;delay();e = 1;delay();void l1602_init(vo

26、id)enable(0x01);enable(0x38);enable(0x0c);enable(0x06);enable(0xd0);void l1602_char(uchar hang,uchar lie,char sign)uchar a;if(hang = 1) a = 0x80;if(hang = 2) a = 0xc0;a = a + lie - 1;enable(a);write(sign);void l1602_string(uchar hang,uchar lie,uchar *p)uchar a;if(hang = 1) a = 0x80;if(hang = 2) a =

27、0xc0;a = a + lie - 1;enable(a);while(1)if(*p = 0) break;write(*p);p+;/以上是1602顯示程序void delayms(uint ms) uchar t; while(ms-) for(t = 0; t 120; t+); uint check_input_pw() uint i,k; k=0; for(i=0;i6;i+) if (show_vali!=init_vali) k=1;return k;uchar keyscan() uchar scan1,scan2,keycode,j; p1=0xf0; scan1=p1;

28、 if(scan1&0xf0)!=0xf0) /判鍵是否按下 delayms(30); /延時(shí)30ms scan1=p1; if(scan1&0xf0)!=0xf0) /二次判鍵是否按下 p1=0x0f; scan2=p1; keycode=scan1|scan2;/組合成鍵編碼 for(j=0;j=15;j+) if(keycode= key_codej) key=j; return key; else p1=0xff;void keydown() static uchar i=0,j=1,m=0,n=1,flag=0,flag2=0;uchar k;p1=0xf0;if(p1&0xf0)!

29、=0xf0)keyscan();if(key10) if(flag=1) init_valm=key; l1602_char(2,n,key+48);delayms(255); m+; n+; if(m=6) m=0;n=1;flag=0; l1602_string(1,1,get new code ); l1602_string(2,1, ); else l1602_string(1,1,inputting code ); l1602_string(2,j,*); show_vali=key; i+; j+; if(i=6) i=0;j=1; if(flag2=1) if(check_input_pw()=0) l1602_string(1,1, code right ); delayms(255); flag=1;flag2=0; l1602_string(1,1,input new code ); l1602_string(2,1, ); else l1602_string(1,1, code wrong ); l1

溫馨提示

  • 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)論