33按鍵電子密碼鎖課程設(shè)計(jì)_第1頁(yè)
已閱讀1頁(yè),還剩19頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  課程設(shè)計(jì)說書</b></p><p> ?。?010 /2011 學(xué)年第 二 學(xué)期)</p><p>  課程名稱 : 單片機(jī)原理與應(yīng)用 </p><p>  題 目 : 3*3按鍵電子密碼鎖 </p><p>  專業(yè)班級(jí) : 自動(dòng)化0801

2、班 </p><p>  學(xué)生姓名 : </p><p>  學(xué) 號(hào) : </p><p>  指導(dǎo)教師 : </p><p>  設(shè)計(jì)周數(shù) : 二周

3、</p><p>  設(shè)計(jì)成績(jī) : </p><p><b>  一、 課程設(shè)計(jì)目的</b></p><p><b>  1.1技術(shù)要求</b></p><p>  電源打開后,顯示器顯示“000”,“111”為默認(rèn)內(nèi)定密碼;輸入號(hào)碼,再按“確定”開鎖

4、鍵 。若號(hào)碼正確,則鎖打開(用蜂鳴器提示),否則顯示器會(huì)清除為“000”;并且密碼可修改。當(dāng)輸入默認(rèn)內(nèi)定密碼,鎖打開后,按下“修改密碼”鍵,再依次按下三位數(shù)字,再按下“修改密碼”鍵,即可修改為新的密碼。</p><p> ?。?)10個(gè)數(shù)字輸入鍵,1個(gè)確定開鎖鍵,1個(gè)密碼修改鍵;</p><p> ?。?)1個(gè)正確輸入指示燈;1個(gè)正確輸入蜂鳴器;</p><p>&

5、lt;b> ?。?)三個(gè)數(shù)碼管</b></p><p>  1.2原始數(shù)據(jù)及主要任務(wù)</p><p>  設(shè)計(jì)并制作出一個(gè)以單片機(jī)為核心的電子所系統(tǒng)</p><p>  1確定總體設(shè)計(jì)方案;</p><p>  2設(shè)計(jì)鍵盤輸入電路;</p><p><b>  3設(shè)計(jì)顯示電路;</b&

6、gt;</p><p>  4合理分配地址,編寫系統(tǒng)程序;</p><p>  5利用protel設(shè)計(jì)硬件電路原理圖和pcb圖;</p><p><b>  6軟硬件聯(lián)機(jī)調(diào)試。</b></p><p><b>  二、課程設(shè)計(jì)正文</b></p><p>  2.1 軟件方面

7、設(shè)計(jì)</p><p>  2.1.1 系統(tǒng)分析</p><p>  本設(shè)計(jì)主要由單片機(jī)、矩陣鍵盤、液晶顯示器和密碼存儲(chǔ)等部分組成。其中矩陣鍵盤用于輸入數(shù)字密碼和進(jìn)行各種功能的實(shí)現(xiàn)。由用戶通過連接單片機(jī)的矩陣鍵盤輸入密碼,后經(jīng)過單片機(jī)對(duì)用戶輸入的密碼與自己保存的密碼進(jìn)行對(duì)比,從而判斷密碼是否正確,然后控制引腳的高低電平傳到開鎖電路或者報(bào)警電路控制開鎖還是報(bào)警,實(shí)際使用時(shí)只要將單片機(jī)的負(fù)載

8、由繼電器換成電子密碼鎖的電磁鐵吸合線圈即可,當(dāng)然也可以用繼電器的常開觸點(diǎn)去控制電磁鐵吸合線圈。</p><p>  本系統(tǒng)共有兩部分構(gòu)成,即硬件部分與軟件部分。其中硬件部分由電源輸入部分、鍵盤輸入部分、密碼存儲(chǔ)部分、復(fù)位部分、晶振部分、顯示部分、報(bào)警部分、開鎖部分組成,軟件部分對(duì)應(yīng)的由主程序、初始化程序、LCD顯示程序、鍵盤掃描程序、啟動(dòng)程序、關(guān)閉程序、建功能程序、密碼設(shè)置程序、EEPROM讀寫程序和延時(shí)程序等組

9、成</p><p>  2.1.2 系統(tǒng)設(shè)計(jì)(方案論證與比較)</p><p>  方案一:當(dāng)用戶輸入的密碼正確而且是在規(guī)定的時(shí)間(普通用戶要求在12s內(nèi)輸入正確的密碼,管理員要求在5s輸入正確的密碼)輸入的話,單片機(jī)便輸出開門信號(hào),送到開鎖驅(qū)動(dòng)電路,然后驅(qū)動(dòng)電磁鎖,達(dá)到開門的目的。。其原理方框圖如圖1-1所示。</p><p><b>  圖1-1&

10、lt;/b></p><p>  方案二:采用一種是用以AT89S51為核心的單片機(jī)控制方案。利用單片機(jī)靈活的編程設(shè)計(jì)和豐富的IO端口,及其控制的準(zhǔn)確性,不但能實(shí)現(xiàn)基本的密碼鎖功能,還能添加調(diào)電存儲(chǔ)、聲光提示甚至添加遙控控制功能。其原理如圖1-2</p><p>  圖1-2單片機(jī)控制方案</p><p>  通過比較以上兩種方案,單片機(jī)方案有較大的活動(dòng)空間,

11、不但能實(shí)現(xiàn)所要求的功能而且能在很大的程度上擴(kuò)展功能,而且還可以方便的對(duì)系統(tǒng)進(jìn)行升級(jí),所以我們采用后一種方案。</p><p>  2.1.3 系統(tǒng)實(shí)施</p><p>  硬件部分由電源輸入部分、鍵盤輸入部分、密碼存儲(chǔ)部分、復(fù)位部分、晶振部分、顯示部分、報(bào)警部分、開鎖部分組成,軟件部分對(duì)應(yīng)的由主程序、初始化程序、LCD顯示程序、鍵盤掃描程序、啟動(dòng)程序、關(guān)閉程序、建功能程序、密碼設(shè)置程序

12、、EEPROM讀寫程序和延時(shí)程序等組成</p><p>  2.2 硬件方面的設(shè)計(jì) </p><p><b>  2.2.1方案設(shè)計(jì)</b></p><p>  2.2.1.1 STC90C52AD的功能參數(shù)介紹</p><p>  STC90C52AD是由宏晶公司生產(chǎn)的高性能八位單片機(jī)。如圖一所示。該芯片采用FLASH

13、存儲(chǔ)技術(shù),內(nèi)部具有8KB字節(jié)快閃存存儲(chǔ)器,采用DIP封裝,是目前在中小系統(tǒng)中應(yīng)用最為普及的單片機(jī)。 </p><p>  STC90C52AD可構(gòu)成真正的單片機(jī)最小應(yīng)用系統(tǒng),縮小系統(tǒng)體積,增加系統(tǒng)的可靠性,降低系統(tǒng)的成本。只要程序長(zhǎng)度小于8K,四個(gè)I/O口全部提供給用戶。可用5V電壓編程,而且擦寫時(shí)間僅需10毫秒,僅為8751/87C51的擦除時(shí)間的百分之一,與8751/87C51的12V電壓擦寫相比,

14、 不易損壞器件,沒有兩種電源的要求,改寫時(shí)不拔下芯片, </p><p>  適合許多嵌入式控制領(lǐng)域。工作電壓范圍(2.7V~6V),全靜態(tài)工作,工作頻率寬在0Hz~24MHz之間,比8751/87C51等51系列的6MHz~12MHz更具有靈活性,系統(tǒng)能快能慢。STC90C52AD芯片提供三級(jí)程序存儲(chǔ)器加密,提供了方便靈活而可靠的硬加密手段,能完全保證程序或系統(tǒng)不被仿制。

15、P0口是三態(tài)雙向口,通稱數(shù)據(jù)總線口,因?yàn)橹挥性摽谀苤苯佑糜趯?duì)外部存儲(chǔ)器的讀/寫操作。</p><p>  STC90C52AD單片機(jī)為40引腳芯片如圖一所示,在本設(shè)計(jì)中,主要用到P0口、P2口、P1.0口及P3.0、P3.1、P3.2口。 圖一</p><p>  P0口可作為通用I/O口,但須外接上拉電阻,所以在設(shè)計(jì)顯示數(shù)碼管我們避免了使用P0口這樣大大簡(jiǎn)化了動(dòng)態(tài)顯示電路

16、。</p><p>  P1口:8位、雙向I/0口,內(nèi)部含有上拉電阻。</p><p>  P1口可作普通I/O口。輸出緩沖器可驅(qū)動(dòng)四個(gè)TTL負(fù)載;用作輸入時(shí),先將引腳置1,由片內(nèi)上拉電阻將其抬到高電平。P1口的引腳可由外部負(fù)載拉到低電平,通過上拉電阻提供電流。</p><p>  在FLASH并行編程和校驗(yàn)時(shí),P1口可輸入低字節(jié)地址。在串行編程和效驗(yàn)時(shí),P1.5/

17、MO-SI,P1.6/MISO和P1.7/SCK分別是串行數(shù)據(jù)輸入、輸出和移位脈沖引腳。 </p><p>  P2口:具有內(nèi)部上拉電阻的8位雙向I/O口。</p><p>  P2口用做輸出口時(shí),可驅(qū)動(dòng)4各TTL負(fù)載;用做輸入口時(shí),先將引腳置1,由內(nèi)部上拉電阻將其提高到高電平。若負(fù)載為低電平,則通過內(nèi)部上拉電阻向外部輸出電流。</p><p>  在FLASH并行

18、編程和校驗(yàn)時(shí),P2口可輸入高字節(jié)地址和某些控制信號(hào)。</p><p>  P3口:具有內(nèi)部上拉電阻的8位雙向口。</p><p>  P3口用做輸出口時(shí),輸出緩沖器可吸收4各TTL的灌電流;用做輸入口時(shí),首先將引腳置1,由內(nèi)部上拉電阻抬位高電平。若外部的負(fù)載是低電平,則通過內(nèi)部上拉電阻向輸出電流。在本設(shè)計(jì)中,P3口作為時(shí)間設(shè)置的4按鍵輸入,因?yàn)橛猩侠娮?,所以可以通過按鍵直接接地,簡(jiǎn)化了電

19、路。</p><p>  在與FLASH并行編程和校驗(yàn)時(shí),P3口可輸入某些控制信號(hào)。P3口除了通用I/O口功能外,還有替代功能如表1所示。</p><p>  表1 P3口的第二功能</p><p>  單片機(jī)使用宏晶公司支持串口下載程序(ISP)的單片機(jī),為STC90C52AD課程設(shè)計(jì)配發(fā)的小電路板(ISP-MCU Basic circuit)電路原理圖見下圖。

20、該板作為課程設(shè)計(jì)的核心電路板使用,板上有單片機(jī)及附屬電路,RS-232通信驅(qū)動(dòng)電路,高低電平測(cè)試電路等。課程設(shè)計(jì)電路中需要的其他電路在此基礎(chǔ)上擴(kuò)展,通過插孔連接。</p><p>  課程設(shè)計(jì)配發(fā)的小電路板(ISP-MCU Basic circuit)電路原理圖見下圖。</p><p>  擴(kuò)展電路在萬用板上制作用四位數(shù)碼管顯示小時(shí)與分鐘,中間那個(gè)點(diǎn)用來區(qū)分小時(shí)與分鐘;每秒用一個(gè)LED閃爍

21、一下;用了4個(gè)按鍵,一個(gè)是選擇鍵,一個(gè)是加鍵,一個(gè)是減鍵, </p><p>  一個(gè)是確認(rèn)鍵。時(shí)間要精確,整點(diǎn)報(bào)時(shí),聲音間隔1秒,并且可以調(diào)整時(shí)間調(diào)整位閃爍提示。 </p><p>  擴(kuò)展電路用到得器件:4個(gè)按鍵,一個(gè)是選擇鍵,一個(gè)是加鍵,一個(gè)是減鍵,一個(gè)是確認(rèn)鍵;四個(gè)DPY7-SEG DP共陽(yáng)極動(dòng)態(tài)LE

22、D;四個(gè)PNP三極管;8個(gè)360歐姆和四個(gè)1千歐的電阻;導(dǎo)線;一個(gè)74LS245進(jìn)行驅(qū)動(dòng)。</p><p>  每各引腳可吸收8各TTL的灌電流。作為輸入時(shí),首先應(yīng)將引腳置1。P0也可用做訪問外部程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器時(shí)的低8位地址/數(shù)據(jù)總線的復(fù)用線。在該模式下,P0口含有內(nèi)部上拉電阻。在FLASH編程時(shí),P0口接收代碼字節(jié)數(shù)據(jù);在編程效驗(yàn)時(shí),P0口輸出代碼字節(jié)數(shù)據(jù)(需要外接上拉電阻)。</p>&

23、lt;p>  2.2.1.2綜合電路設(shè)計(jì)</p><p>  硬件部分由電源輸入部分、</p><p>  鍵盤輸入部分、密碼存儲(chǔ)部分、復(fù)位部分、晶振部分、顯示部分、報(bào)警部分、開鎖部分組成,軟件部分對(duì)應(yīng)的由主程序、初始化程序、LCD顯示程序、鍵盤掃描程序、啟動(dòng)程序、</p><p>  關(guān)閉程序、建功能程序、密碼設(shè)置程序、EEPROM讀寫程序和延時(shí)程序等組成。

24、其原理框圖如下</p><p>  2.2.2單元電路設(shè)計(jì)</p><p>  2.2.2.1電源供電單元 </p><p><b>  圖二</b></p><p>  2.2.2.2動(dòng)態(tài)顯示設(shè)計(jì)</p><p>  數(shù)碼管動(dòng)態(tài)顯示接口是單片機(jī)中應(yīng)用最為廣泛的一種顯示方式之一,動(dòng)態(tài)驅(qū)動(dòng)是將所有

25、數(shù)碼管的8個(gè)顯示筆劃"a,b,c,d,e,f,g,dp"的同名端連在一起,如圖三所示。</p><p>  2.2.2.3動(dòng)態(tài)顯示驅(qū)動(dòng)設(shè)計(jì) </p><p>  2.2.2.4 串口驅(qū)動(dòng)電路單元 &

26、lt;/p><p>  DB-9引腳定義 </p><p>  如圖六所示,MAX232是RS-232收發(fā)器,用于實(shí)現(xiàn)TTL電平與微機(jī)串口的RS-232電平信號(hào)之間的轉(zhuǎn)換。采用單+5V電源供電,數(shù)據(jù)傳輸速率為120kbit/s。</p><p><b>

27、  圖六</b></p><p>  2.2.2.5 蜂鳴器電路單元 </p><p><b>  如圖七所示</b></p><p><b>  圖七</b></p><p>  2.2.2.6 動(dòng)態(tài)顯示控制電路單元</p&g

28、t;<p>  2.2.2.7按鍵電路單元</p><p><b>  如圖九所示 </b></p><p><b>  圖九</b></p><p>  每一條水平(行線)與垂直線(列線)的交叉處不相通,而是通過一個(gè)按鍵來連通,利用這種行列式矩陣結(jié)構(gòu)只需要N條行線和M條列線,即可組成具有N×M個(gè)

29、按鍵的鍵盤。</p><p>  在這種行列式矩陣鍵盤非鍵盤編碼的單片機(jī)系統(tǒng)中,鍵盤處理程序首先執(zhí)行等待按鍵并確認(rèn)有無按鍵按下的程序段。</p><p>  當(dāng)確認(rèn)有按鍵按下后,下一步就要識(shí)別哪一個(gè)按鍵按下。對(duì)鍵的識(shí)別通常有兩種方法:一種是常用的逐行掃描查詢法;另一種是速度較快的線反轉(zhuǎn)法。</p><p>  對(duì)照?qǐng)D九所示的4*3鍵盤,說明線反轉(zhuǎn)個(gè)工作原理。<

30、/p><p>  首先辨別鍵盤中有無鍵按下,有單片機(jī)I/O口向鍵盤送全掃描字,然后讀入行線狀態(tài)來判斷。方法是:向行線輸出全掃描字00H,把全部列線置為低電平,然后將列線的電平狀態(tài)讀入累加器A中。如果有按鍵按下,總會(huì)有一根行線電平被拉至低電平從而使行線不全為1。</p><p>  判斷鍵盤中哪一個(gè)鍵被按下使通過將列線逐列置低電平后,檢查行輸入狀態(tài)來實(shí)現(xiàn)的。方法是:依次給列線送低電平,然后查所有

31、行線狀態(tài),如果全為1,則所按下的鍵不在此列;如果不全為1,則所按下的鍵必在此列,而且是在與零電</p><p>  平行線相交的交點(diǎn)上的那個(gè)鍵。</p><p>  2.2.3系統(tǒng)調(diào)試 </p><p>  硬件調(diào)試:硬件調(diào)試是利用DVCC實(shí)驗(yàn)與開發(fā)系統(tǒng)、基本測(cè)試儀器(萬用表、示波器等),檢查用戶系統(tǒng)硬件中存在的故障。硬件調(diào)試可分為靜態(tài)調(diào)試與動(dòng)態(tài)調(diào)試兩步進(jìn)行。&l

32、t;/p><p>  靜態(tài)調(diào)試:是在用戶系統(tǒng)未工作時(shí)的一種硬件檢測(cè)。第一步:目測(cè)。檢查外部的各種元件或者是電路是否有斷點(diǎn)。第二步:用萬用表測(cè)試。先用萬用表復(fù)核目測(cè)中有疑問的連接點(diǎn),再檢測(cè)各種電源線與地線之間是否有短路現(xiàn)象。第三步:加電檢測(cè)。給板加電,檢測(cè)所有插座或是器件的電源端是否符合要求的值 第四步:聯(lián)機(jī)檢查。因?yàn)橹挥杏脝纹瑱C(jī)開發(fā)系統(tǒng)才能完成對(duì)用戶系統(tǒng)的調(diào)試。動(dòng)態(tài)調(diào)試:是在用戶系統(tǒng)工作的情況下發(fā)現(xiàn)和排除用戶系統(tǒng)硬件

33、中存在的器件內(nèi)部故障、器件連接邏輯錯(cuò)誤等的一種硬件檢查。動(dòng)態(tài)調(diào)試的一般方法是由近及遠(yuǎn)、由分到合。由分到合是指首先按邏輯功能將用戶系統(tǒng)硬件電路分為若干塊,當(dāng)調(diào)試電路時(shí),與該元件無關(guān)的 器件全部從用戶系統(tǒng)中去掉,這樣可以將故障范圍限定在某個(gè)局部的電路上。當(dāng)各塊電路無故障后,將各電路逐塊加入系統(tǒng)中,在對(duì)各塊電路功能及各電路間可能存在的相互聯(lián)系進(jìn)行調(diào)試。由分到合的調(diào)試既告完成。由近及遠(yuǎn)是將信號(hào)流經(jīng)的各器件按照距離單片機(jī)的邏輯距離進(jìn)行由近及遠(yuǎn)的分

34、層,然后分層調(diào)試。調(diào)試時(shí),仍采用去掉無關(guān)元件的方法,逐層調(diào)試下去,就會(huì)定位故障元件了。</p><p><b>  軟件調(diào)試:</b></p><p>  軟件調(diào)試是通過對(duì)程序的匯編、連接、執(zhí)行來發(fā)現(xiàn)程序中存在的語法錯(cuò)誤與邏輯錯(cuò)誤并加以排除糾正的過程。</p><p>  可以利用仿真器加以調(diào)試,對(duì)系統(tǒng)單個(gè)單元進(jìn)行調(diào)試,當(dāng)單元電路成功后,在對(duì)整

35、個(gè)程序調(diào)試,最后在用CPU芯片調(diào)試。</p><p>  2.2.3.1硬件及軟件調(diào)試過程</p><p><b> ?。ㄒ唬?硬件</b></p><p>  1 用萬用表檢測(cè)擴(kuò)展電路的電源線和底線是否短路。</p><p>  2 給蜂鳴器部分電路供電,給控制端口一個(gè)低電平,發(fā)光二極管亮并且蜂鳴器響證明這部分電路能正

36、常工作。</p><p>  3 查看數(shù)碼管的各引腳與74LS245的引腳是否接觸良好。</p><p>  4 查看各個(gè)按鍵是否與P2正確連接。</p><p><b> ?。ǘ?)軟件</b></p><p>  1 逐個(gè)選通數(shù)碼管,讓P1口輸入共陽(yáng)極的編碼,看是否能正確顯示。</p><p>

37、;  2 下載鍵盤掃描程序,讓數(shù)碼管顯示相應(yīng)的按鍵值,看能否正確顯示。</p><p>  調(diào)試成功后,就可以正式的進(jìn)行號(hào)碼鎖的程序編程了。</p><p>  三、課程設(shè)計(jì)總結(jié)或結(jié)論</p><p>  通過這兩周的課程設(shè)計(jì),讓我了解了設(shè)計(jì)電路的程序,也讓我了解了數(shù)字電子鎖的工作原理和設(shè)計(jì)理念,加強(qiáng)了我們動(dòng)手、思考和解決問題的能力。在此次的數(shù)字電子鎖設(shè)計(jì)過程中,我

38、進(jìn)一步熟悉了單片機(jī)芯片的硬件結(jié)構(gòu)和各引腳的功能,以及其他芯片如74LS245、數(shù)碼管的工作原理和使用方法,鞏固和加強(qiáng)了理論知識(shí)</p><p>  這次課程設(shè)計(jì)給我的最大感受就是僅僅學(xué)理論知識(shí)是不夠的,必須將理論知識(shí)和實(shí)踐結(jié)合起來,在實(shí)踐中應(yīng)用理論知識(shí),從而使其得到更深刻的理解和鞏固,來提高自己的實(shí)際運(yùn)用能力和獨(dú)立思考的能力。在設(shè)計(jì)的過程中遇到了重重困難,不過經(jīng)過老師的耐心指導(dǎo)和同學(xué)的幫助,很多問題都解決了。最困

39、難的就是調(diào)試調(diào)試程序,剛開始程序總是不能滿足要求,不過經(jīng)過多次更改,最后終于成功了。不過在硬件上,數(shù)碼管顯示不是令人很滿意,這方面還需要多多練習(xí)。</p><p>  設(shè)計(jì)是一個(gè)團(tuán)隊(duì)的任務(wù),我們?cè)谝黄鸸ぷ骱苡淇?,互相幫助,互相學(xué)習(xí)。我感覺我和同學(xué)們的關(guān)系更近了。團(tuán)結(jié)協(xié)作是成功的一項(xiàng)非常重要的保證,而這次課程設(shè)計(jì)也正好鍛煉了這一點(diǎn),這也是非常寶貴的</p><p><b>  四、

40、參考文獻(xiàn)</b></p><p>  [1]康華光等.電子技術(shù)基礎(chǔ)(數(shù)字部分)第四版. 高等教育出版社,2004.</p><p>  [2] 康華光等.電子技術(shù)基礎(chǔ)(模擬部分)第四版. 高等教育出版社,2004.</p><p>  [3]張毅剛等.單片機(jī)原理及應(yīng)用.高等教育出版社,2003 </p><p><

41、b>  附錄一、設(shè)計(jì)原理圖</b></p><p><b>  附錄三、元器件清單</b></p><p><b>  附錄四、程序流程圖</b></p><p><b>  附錄五、設(shè)計(jì)C程序</b></p><p>  #include<reg52.

42、h></p><p>  #include"INTERFACE.H"</p><p>  uchar Code[3]={1,1,1};</p><p>  uchar InPut[3]={0,0,0};</p><p><b>  uint num;</b></p><p&g

43、t;<b>  uchar *p=</b></p><p><b>  InPut;</b></p><p>  delay(uchar z)</p><p><b>  {</b></p><p>  uchar x,y;</p><p>  for(

44、x=z;x>0;x--)</p><p>  for(y=200;y>0;y--);</p><p><b>  }</b></p><p><b>  main()</b></p><p><b>  {</b></p><p>  uch

45、ar temp,KeyFlag,Password;</p><p>  uchar count=0;</p><p>  uchar SetCode=0;</p><p>  TMOD=0X01;</p><p>  TCON=0X10;</p><p>  TH0=(65536-5000)/256;</p>

46、;<p>  TL0=(65536-5000)%256;</p><p><b>  ET0=1;</b></p><p><b>  EA=1;</b></p><p><b>  while(1)</b></p><p><b>  {</b

47、></p><p>  if(num==8) </p><p><b>  {</b></p><p>  KeyFlag=0;</p><p>  if(1==Password){SetCode=1;Password=0;}</p><p><b>  }</b>

48、;</p><p>  if(SetCode==1&&KeyFlag==1&&num<7)</p><p><b>  {</b></p><p>  KeyFlag=0;</p><p>  switch(count)</p><p><b>  

49、{</b></p><p>  case 0:Code[0]=num;count++;break;</p><p>  case 1:Code[1]=num;count++;break;</p><p>  case 2:Code[2]=num;count++;break;</p><p><b>  }</b&g

50、t;</p><p><b>  } </b></p><p>  if(SetCode==0&&KeyFlag==1&&num<7) </p><p><b>  {</b></p><p>  KeyFlag=0;</p><p>

51、  switch(count)</p><p><b>  {</b></p><p>  case 0:InPut[0]=num;count++;break;</p><p>  case 1:InPut[1]=num;count++;break;</p><p>  case 2:InPut[2]=num;count

52、++;break;</p><p><b>  }</b></p><p><b>  }</b></p><p>  if(num==7)</p><p><b>  {</b></p><p>  KeyFlag=0;count=0;SetCode=

53、0;</p><p>  if((Code[0]==InPut[0])&&(Code[1]==InPut[1])&&(Code[2]==InPut[2]))</p><p>  Password=1;</p><p><b>  else</b></p><p><b>  {&

54、lt;/b></p><p>  InPut[0]=0;</p><p>  InPut[1]=0;</p><p>  InPut[2]=0;</p><p><b>  }</b></p><p><b>  }</b></p><p>  

55、if(Password==1)buzzer=0;</p><p>  else buzzer=1;</p><p>  if(KeyFlag==0)</p><p><b>  {</b></p><p><b>  P1=0xfe;</b></p><p><b&g

56、t;  temp=P1;</b></p><p>  temp=temp&0xf0;</p><p>  if(temp!=0xf0)</p><p><b>  {</b></p><p>  delay(50);</p><p>  if(temp!=0xf0)</p

57、><p><b>  {</b></p><p>  switch(temp)</p><p><b>  {</b></p><p>  case 0xe0:num=0;break;</p><p>  case 0xd0:num=3;break;</p><

58、;p>  case 0xb0:num=6;break;</p><p><b>  }</b></p><p>  KeyFlag=1;</p><p>  while(((P1&0xf0)==temp));</p><p><b>  }</b></p><p&g

59、t;<b>  }</b></p><p><b>  P1=0xfd;</b></p><p><b>  temp=P1;</b></p><p>  temp=temp&0xf0;</p><p>  if(temp!=0xf0)</p><

60、p><b>  {</b></p><p>  delay(50);</p><p>  if(temp!=0xf0)</p><p><b>  {</b></p><p>  KeyFlag=1;</p><p>  switch(temp)</p>

61、<p><b>  {</b></p><p>  case 0xe0:num=1;break;</p><p>  case 0xd0:num=4;break;</p><p>  case 0xb0:num=7;break;</p><p><b>  }</b></p>

62、<p>  while(((P1&0xf0)==temp));</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  P1=0xfb;</b></p><p><b>  temp=P1;&l

63、t;/b></p><p>  temp=temp&0xf0;</p><p>  if(temp!=0xf0)</p><p><b>  {</b></p><p>  delay(50);</p><p>  if(temp!=0xf0)</p><p>

64、;<b>  {</b></p><p>  KeyFlag=1;</p><p>  switch(temp)</p><p><b>  {</b></p><p>  case 0xe0:num=2;break;</p><p>  case 0xd0:num=5;br

65、eak;</p><p>  case 0xb0:num=8;break;</p><p><b>  } </b></p><p>  while(((P1&0xf0)==temp));</p><p><b>  }</b></p><p><b>  

66、}</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  void timer0() interrupt 1</p><p><b>

67、;  {</b></p><p>  static cnt=0;</p><p>  TH0=(65536-2500)/256;</p><p>  TL0=(65536-2500)%256;</p><p><b>  cnt++;</b></p><p>  if(cnt>3

68、)cnt=1;</p><p>  switch(cnt)</p><p><b>  {</b></p><p>  case 1:P0=0xff;</p><p><b>  P2=*p;</b></p><p><b>  P0=0xfe;</b>

69、;</p><p><b>  break;</b></p><p>  case 2:P0=0xff;</p><p>  P2=*(p+1);</p><p><b>  P0=0x0fd;</b></p><p>  break; </p><

70、;p>  case 3:P0=0xff; </p><p>  P2=*(p+2);</p><p><b>  P0=0xfb;</b></p><p><b>  break; </b></p><p><b>  }</b></p><p>

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)僅提供信息存儲(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)論