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

下載本文檔

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

文檔簡介

1、西安文理學(xué)院課程設(shè)計(jì)報(bào)告西安文理學(xué)院機(jī)械電子工程系專業(yè)課程設(shè)計(jì)報(bào)告專業(yè)班級 課 程 題 目 學(xué) 號 學(xué)生姓名 指導(dǎo)教師 年 月基于51單片機(jī)電子密碼鎖的設(shè)計(jì)摘要在這個(gè)信息和科技高速發(fā)展的時(shí)代,人們的生活水平越來越高,隨之應(yīng)運(yùn)而生的人們的安全意識也越來越強(qiáng),然而傳統(tǒng)的機(jī)械鎖由于設(shè)計(jì)和工藝簡單,操作和攜帶不便,已經(jīng)不能滿足人們對于安全保證和生活便利的需求,于是電子密碼鎖本著它自身的保密性高、操作簡單、靈活好用等特性逐漸進(jìn)入人們的視野,并已被廣大群眾接納和使用。此次設(shè)計(jì)是以AT89C51單片機(jī)實(shí)現(xiàn)密碼鎖監(jiān)控裝置的檢測和控制核心,實(shí)現(xiàn)密碼信息的設(shè)定、加密、更改和錯(cuò)誤輸入發(fā)出警報(bào)等功能。分為鍵盤輸入(此

2、處采用4×4矩陣鍵盤),顯示輸出(此處用LED顯示屏),密碼比對,實(shí)現(xiàn)開鎖或警報(bào)的過程。該設(shè)計(jì)根據(jù)51單片機(jī)之間的串行通信原理,便于對密碼信息的隨機(jī)加密和保護(hù)。軟件設(shè)計(jì)則是采用自上而下的模塊化設(shè)計(jì)思想,以使系統(tǒng)朝著分布式、小型化方向發(fā)展,增強(qiáng)系統(tǒng)的可擴(kuò)展性和運(yùn)行的穩(wěn)定性。測試結(jié)果表明,該系統(tǒng)已達(dá)到本設(shè)計(jì)的各項(xiàng)功能的所有要求。關(guān)鍵詞:單片機(jī);密碼鎖;4*4矩陣鍵盤;顯示屏。3第 1 頁目錄1 緒論11.1 引言11.2 電子密碼鎖的背景11.3 鍵盤式電子密碼鎖的特點(diǎn)12 系統(tǒng)設(shè)計(jì)22.1系統(tǒng)總設(shè)計(jì)結(jié)構(gòu)圖22.2開鎖機(jī)構(gòu)設(shè)計(jì)2 2.2.1主控芯片(AT89C51單片機(jī))的簡介33 系統(tǒng)

3、硬件設(shè)計(jì)53.1鍵盤設(shè)計(jì)53.2系統(tǒng)電路設(shè)計(jì)63.2.1 鍵盤電路及連線圖63.2.2數(shù)碼管顯示電路及連線圖73.2.3開鎖和警報(bào)電路及連線圖(由LED和揚(yáng)聲器電路代替)8 3.3整體電路圖的繪制84 軟件設(shè)計(jì)104.1 系統(tǒng)軟件設(shè)計(jì)思路104.2系統(tǒng)軟件設(shè)計(jì)總流程圖105 程序調(diào)試125.1 程序調(diào)試需要用到的軟件和工具12第 0 頁5.2 調(diào)試過程126 設(shè)計(jì)總結(jié)12致 謝13參考文獻(xiàn)14附錄151第 2 頁第一章 緒論1.1 引言在這個(gè)信息和科技高速發(fā)展的時(shí)代,人們的生活水平越來越高,隨之應(yīng)運(yùn)而生的人們的安全意識也越來越強(qiáng),然而傳統(tǒng)的機(jī)械鎖由于設(shè)計(jì)和工藝簡單,操作和攜帶不便,已經(jīng)不能滿足

4、人們對于安全保證和生活便利的需求,于是電子密碼鎖本著它自身的保密性高、操作簡單、靈活好用等特性逐漸進(jìn)入人們的視野,并已被廣大群眾接納和使用。鎖是用以關(guān)住某個(gè)確定的空間或范圍或某種器物的,必須以鑰匙或密碼打開的器件。鎖,從古至今,發(fā)展到現(xiàn)在已有近千年的歷史了,人們對它的結(jié)構(gòu)、原理也隨著時(shí)間的增加研究的近乎透徹,因此,開鎖的方法和工具早已不僅僅局限于配套的鑰匙,種類也層出不窮?,F(xiàn)代社會中,由于各種矛盾沖突十分劇烈,人們的思想道德觀念,價(jià)值觀念,文化修養(yǎng)水平等參差不齊,人們的思想境界良莠不齊,善良、正直的人們能夠自覺規(guī)范自已的行為,不是自己的東西不會眷戀,沒有鑰匙就不會亂闖亂動。但是,生活中同樣還存

5、在著一些道德觀念較差的人,總有著不勞而獲的“夢想”,他們在受到誘惑的時(shí)候,往往會想方設(shè)法利用各種手段撬門開鎖,使廣大居民防不勝防。之所以出現(xiàn)這種情況,除了人們的道德觀外,還有一個(gè)很重要的原因,就是傳統(tǒng)鎖具都存在致命的弱點(diǎn),例如,鎖芯采用常見的銅、鋁、鋅等材料,抵抗不了強(qiáng)力破壞;再者,鎖具制作工藝,技術(shù)落后,無法阻止先進(jìn)技術(shù)手段的開啟。目前,市場上的鎖具各種各樣,形狀千變?nèi)f化,然而都是大同小異,技術(shù)原理簡單,實(shí)際使用上卻都不具備真正安全的防盜功能。面對這一殘酷的現(xiàn)狀,鎖具也進(jìn)入了必須革新的時(shí)代。1.2 電子密碼鎖的背景隨著社會科技的進(jìn)步,鎖已發(fā)展到了密碼鎖、磁性鎖、電子鎖、激光鎖、聲控鎖等等。在

6、傳統(tǒng)鑰匙的基礎(chǔ)上,加了一組或多組密碼,不同聲音,不同磁場,不同聲波,不同光束光波,不同圖像。(如指紋、眼底視網(wǎng)膜等)來控制鎖的開啟。從而大大提高了鎖的安全性,使不法之徒無從下手,人們也就能對自身財(cái)產(chǎn)安全有了更多的保障。當(dāng)今安全信息系統(tǒng)應(yīng)用越來越廣泛,特別在保護(hù)機(jī)密、維護(hù)隱私和財(cái)產(chǎn)保護(hù)方面起到重大作用,而基于電子密碼鎖的安全系統(tǒng)是其中的組成部分,因此研究它具有重大的現(xiàn)實(shí)意義。1.3 鍵盤式電子密碼鎖的特點(diǎn)電子鎖可以在日常生活和現(xiàn)代辦公中,住宅與辦公室的安全防范、單位的文件檔案、財(cái)務(wù)報(bào)表以及一些個(gè)人資料的保存等多種場合使用。大大提高了主人物資的安全性,安全可以代替老式機(jī)械鎖。目前使用的密碼鎖種類繁

7、多,各具特色。從目前的技術(shù)水平和市場認(rèn)可程度看,使用最為廣泛的電子密碼鎖是鍵盤是電子密碼鎖,該產(chǎn)品主要應(yīng)用于保險(xiǎn)箱、保險(xiǎn)柜和金庫,還有一部分應(yīng)用于保管箱和運(yùn)鈔車。鍵盤式電子密碼在鍵盤上輸入,與打電話差不多,因而易于掌握,其突出優(yōu)點(diǎn)是“密碼”是記在被授權(quán)人腦子里的數(shù)字和字符,既準(zhǔn)確又可靠,不會丟失(除了忘記),難以被竊(除非自己泄露)。 在輸入密碼的過程中,為了限制試探密碼的企圖,通常輸入錯(cuò)誤碼若干次或若干時(shí)間內(nèi)輸入不正確,即“封鎖”鍵盤,不再接受輸入操作??傊M管新式電子防盜鎖層出不窮,但鍵盤式電子密碼防盜鎖仍然在自己的基礎(chǔ)上發(fā)展,不僅在市場上居于主流地位,而且,還經(jīng)常作為其他類型電子防盜鎖

8、的輔助輸入手段。第二章 系統(tǒng)設(shè)計(jì)2.1系統(tǒng)總設(shè)計(jì)結(jié)構(gòu)圖密碼輸入設(shè)備數(shù)碼管顯示單片機(jī)AT89C51開鎖機(jī)構(gòu)圖 2.1系統(tǒng)總設(shè)計(jì)結(jié)構(gòu)圖本設(shè)計(jì)由主控芯片51單片機(jī),鍵盤,LED顯示屏和開鎖電路組成。單片負(fù)責(zé)控制整個(gè)系統(tǒng)的執(zhí)行過程。2.2 開鎖機(jī)構(gòu)的設(shè)計(jì)通過單片機(jī)送給開鎖執(zhí)行機(jī)構(gòu)(本設(shè)計(jì)用LED燈和揚(yáng)聲器代替繼電器打開電磁閥的開鎖執(zhí)行機(jī)構(gòu))實(shí)現(xiàn)開鎖或警報(bào)的表示過程。AT89C51單片機(jī)開鎖驅(qū)動電路開鎖/警報(bào)圖 2.2密碼鎖開鎖結(jié)構(gòu)示意圖當(dāng)用戶輸入的密碼正確而且是在規(guī)定的時(shí)間及次數(shù)輸入之內(nèi),單片機(jī)便輸出開鎖信號送到開鎖驅(qū)動電路,達(dá)到開門的目的(此處用LED發(fā)光二極管亮一秒鐘做為提示,同時(shí)發(fā)出“叮咚”聲)

9、。2.2.1 主控芯片(AT89C51單片機(jī))的簡介AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低電壓,高性能CMOS8位微處理器,俗稱單片機(jī)。單片機(jī)的可擦除只讀存儲器可以反復(fù)擦除100次。該器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個(gè)芯片中,ATMEL的AT89C51是一種高效微控制器。主要特性: ·與MCS-51 兼容 ·4K字節(jié)可編程閃爍存儲器 &

10、#183;壽命:1000寫/擦循環(huán) ·數(shù)據(jù)保留時(shí)間:10年 ·全靜態(tài)工作:0Hz-24MHz ·三級程序存儲器鎖定 ·128×8位內(nèi)部RAM ·32可編程I/O線 ·兩個(gè)16位定時(shí)器/計(jì)數(shù)器 ·5個(gè)中斷源 ·可編程串行通道 ·低功耗的閑置和掉電模式 ·片內(nèi)振蕩器和時(shí)鐘電路管腳說明: VCC:供電電壓。 GND:接地。 P0口:P0口為一個(gè)8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P1口的管腳第一次寫1時(shí),被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/

11、地址的第八位。P1口:P1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。 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)用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進(jìn)行存取時(shí),P2口輸出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢,當(dāng)對外部八位地址數(shù)

12、據(jù)存儲器進(jìn)行讀寫時(shí),P2口輸出其特殊功能寄存器的內(nèi)容。 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) P3.3 /INT1(外部中斷1) P3.4 T0(記時(shí)器0外部輸入) P3.5 T1(記時(shí)器1外部輸入) P3.6 /WR(外部數(shù)據(jù)存儲器寫選通) P3.7 /R

13、D(外部數(shù)據(jù)存儲器讀選通) P3口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號。 RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平時(shí)間。 ALE/PROG:當(dāng)訪問外部存儲器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時(shí),ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時(shí)目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲器時(shí),將跳過一個(gè)ALE脈沖。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。 /PSEN:外部程序存儲器的選通信號。在由外部程序存儲

14、器取指期間,每個(gè)機(jī)器周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲器時(shí),這兩次有效的/PSEN信號將不出現(xiàn)。 /EA/VPP:當(dāng)/EA保持低電平時(shí),則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內(nèi)部程序存儲器。注意加密方式1時(shí),/EA將內(nèi)部鎖定為RESET;當(dāng)/EA端保持高電平時(shí),此間內(nèi)部程序存儲器。 XTAL1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。XTAL2:來自反向振蕩器的輸出。圖 2.3 AT89C51芯片圖第三章 系統(tǒng)硬件設(shè)計(jì)3.1 鍵盤設(shè)計(jì)本實(shí)驗(yàn)采用4×4行列式矩陣鍵盤,用數(shù)字鍵輸入密碼,ENTER鍵確認(rèn);如果密碼輸入錯(cuò)誤,用DEL鍵清除;密碼輸入完

15、畢并且確認(rèn)后,如果需要重新輸入,先按Esc退出,然后重新輸入;若用戶想要自行更改密碼,需要先正確輸入密碼并確認(rèn)后,按ALT進(jìn)行修改,再按ENTER進(jìn)行確認(rèn),密碼更改完畢。4×4行列式鍵盤的按鍵功能分布如圖3.1所示。 9 8 7 ALT 6 4 5 Esc 2 DEL 1 3ENTER 0   圖 3.1 鍵盤按鍵功能分布圖3.2 系統(tǒng)電路設(shè)計(jì) 本系統(tǒng)電路主芯片AT89C51(內(nèi)含晶振和復(fù)位電路),外接上拉電阻,數(shù)碼管顯示器,揚(yáng)聲器、LED燈和外接電阻組成開鎖電路。3.2.1鍵盤電路及連線圖 每一條行線和列線交叉處通過一個(gè)按鍵來連接,利用這種行列式矩陣結(jié)構(gòu)只需要N條行線和M

16、條列線就可組成N*M個(gè)按鍵。 在這種行列式矩陣鍵盤非鍵盤編碼的單片機(jī)中,鍵盤處理程序先執(zhí)行等待按鍵并有無鍵盤按下的程序段。確認(rèn)有鍵盤按下后,下一步執(zhí)行識別哪一個(gè)鍵按下。對照4*4鍵盤,首先識別鍵盤中有無鍵盤按下,然后判斷鍵盤中哪一個(gè)鍵被按下,使通過將列線逐列置低電平后,檢查行輸入狀態(tài)來實(shí)現(xiàn)的。方法是:依次給列線送低電平,然后檢查行輸入狀態(tài)來實(shí)現(xiàn)。如果全為1,則所按下鍵不在此列,如果不全為1則按下的鍵必在此列。而且是與零電平線相交的交點(diǎn)上的鍵。理想的按鍵信號是一個(gè)標(biāo)準(zhǔn)脈沖,但鍵的按下和釋放都需要一個(gè)過程來實(shí)現(xiàn),在這一過程中是處于高低電平之間一種不穩(wěn)定狀態(tài),稱為抖動。抖動時(shí)間的長短,頻率的高低與按

17、鍵機(jī)械特征有關(guān),一般在5到10ms之間。這就有可能造成CPU對一次按鍵過程進(jìn)行多次處理。為了避免這種情況應(yīng)采取措施消除抖動。消抖常見有兩種方法,硬件消抖:如用濾波器,雙穩(wěn)態(tài)電路等。另一種用軟件來實(shí)現(xiàn),即當(dāng)發(fā)現(xiàn)有鍵按下時(shí),間隔10ms以上時(shí)間,才能進(jìn)行下一次查詢,這樣就讓過了抖動過程,鍵的釋放進(jìn)行同樣處理。本設(shè)計(jì)為減少電路復(fù)雜程度,減少成本。采用軟件消抖的方法。 圖 3.2 鍵盤電路 如圖左上角為AT89C51的P3口,與鍵盤電路相連,構(gòu)成鍵盤輸入電路。3.2.2 數(shù)碼管顯示電路及連線圖本實(shí)驗(yàn)采用共陰極數(shù)碼管,即將所有發(fā)光二極管的陰極接到一起形成公共陰極(COM)的數(shù)碼管。共陰數(shù)碼管在應(yīng)用時(shí)應(yīng)將

18、公共極COM接到地線GND上,當(dāng)某一字段發(fā)光二極管的陽極為高電平時(shí),相應(yīng)字段就點(diǎn)亮。當(dāng)某一字段的陽極為低電平時(shí),相應(yīng)字段就不亮。 圖3.3 數(shù)碼管顯示電路為了增加單片機(jī)的驅(qū)動,數(shù)碼管鏈接上拉電阻,然后再接AT89C51的P3口,輸入任何密碼時(shí)都以顯示“8”表示輸入的位數(shù)(如圖表示輸入3位密碼)。3.2.3 開鎖和報(bào)警電路及連線圖(由LED燈和揚(yáng)聲器電路代替)AT89C51單片機(jī)的P1.0口連接LED燈和一個(gè)外接電阻,P1.7口連接提示和警報(bào)的揚(yáng)聲器(如圖所示,LED燈亮表示密碼正確,并且同時(shí)揚(yáng)聲器發(fā)出“叮咚”提示音)。 圖 3.4 開鎖電路3.3 整體電路圖的繪制用Prteus軟件繪制完整的電

19、路圖。(1) 密碼正確并且確認(rèn)之后的整體電路及顯示情況,如圖3.5。圖3.5 密碼正確系統(tǒng)電路及顯示圖(2) 密碼錯(cuò)誤后的整體電路及顯示情況,如圖3.6。 圖 3.6 密碼錯(cuò)誤系統(tǒng)電路及顯示圖第四章 軟件設(shè)計(jì)4.1 系統(tǒng)軟件設(shè)計(jì)思路任何應(yīng)用系統(tǒng)的正常工作和使用,除去需要完整的硬件設(shè)備外,還需要一套與之相對應(yīng)的、設(shè)計(jì)合理的軟件相配合。隨著電子信息的發(fā)展,微機(jī)應(yīng)用早已普遍,許多原來的硬件工作都可以通過軟件編程來代替,從而使一些復(fù)雜的硬件電路簡單化。 電子密碼鎖工作的主要過程是通過鍵盤輸入密碼,同時(shí)LED顯示密碼輸入情況,按下確認(rèn)鍵后判斷密碼的正確性,做出開鎖或報(bào)警處理。當(dāng)輸入密碼輸入錯(cuò)誤時(shí),系統(tǒng)報(bào)

20、警。初始設(shè)定密碼之后,如果按下密碼的位數(shù)超過設(shè)置的密碼位數(shù)時(shí),若只超過一位,數(shù)碼管以最后一位顯示不全給出提示,若繼續(xù)輸入,系統(tǒng)揚(yáng)聲器報(bào)警。(本設(shè)計(jì)中初始密碼為12345五位,當(dāng)按下的密碼為6位時(shí),還,未按下Enter確認(rèn),數(shù)碼管就會以不全七段碼顯示給出警報(bào),若繼續(xù)按下,系統(tǒng)就會發(fā)出“滴滴滴”的警報(bào)聲)。按鍵按其功能分為兩種,其中一種為功能鍵另一種為數(shù)字鍵。輸入密碼后,直到所有密碼輸入完畢按下確認(rèn)功能鍵之后,才完成密碼輸入過程。進(jìn)入密碼的判斷比較處理狀態(tài)并給出相應(yīng)的處理過程。如圖4.1為輸入密碼超出原始設(shè)定位數(shù)時(shí)的數(shù)碼管的顯示。圖 4.1 密碼超出設(shè)定時(shí)數(shù)碼顯示圖4.2 系統(tǒng)軟件設(shè)計(jì)總流程圖 開

21、始 密碼比較 密碼輸入完畢否 輸入密碼 系統(tǒng)喚醒上電是 開鎖 密碼修改 密碼正確 密碼錯(cuò)誤 鎖定鍵盤3s3s是否到 燈閃并發(fā)出警報(bào)圖 4.1系統(tǒng)軟件設(shè)計(jì)總流程圖第5章 程序調(diào)試把寫好的C語言程序載入軟件調(diào)試工具,檢查軟件是否有設(shè)法錯(cuò)誤,再根據(jù)軟件提示對本程序進(jìn)行修改,直到?jīng)]有錯(cuò)誤再生成單片機(jī)能運(yùn)行的機(jī)器碼,再用Prteus工具把機(jī)器碼導(dǎo)入單片機(jī)進(jìn)行實(shí)際的程序調(diào)試,根據(jù)實(shí)際情況再對程序的不足加以修改,直到滿足設(shè)計(jì)要求。5.1 程序調(diào)試需要用到的軟件和工具調(diào)試改程序用到Keil軟件和Prteus工具。5.2 調(diào)試過程 打開KEIL C51主程序,新建工程,新建文本框?qū)懭氤绦?,保存,檢查是否有語法錯(cuò)

22、誤,經(jīng)反復(fù)檢查無誤后匯編,生成51單片機(jī)可執(zhí)行的HEX文件。然后用Prteus工具軟件把HEX文件寫入單片機(jī)。第6章 設(shè)計(jì)總結(jié)經(jīng)過這次課程設(shè)計(jì)的整個(gè)過程,我們深刻的體會到了實(shí)踐是檢驗(yàn)和鞏固我們學(xué)習(xí)成果最有力的標(biāo)準(zhǔn)。在一段理論學(xué)習(xí)之后,我們需要我們需要把自己的理論框架應(yīng)用于實(shí)踐,因?yàn)槿魏沃R都來源于實(shí)踐,又歸于實(shí)踐,只有通過實(shí)踐我們才能更好地掌握所學(xué)到的知識。在這次課程設(shè)計(jì)期間,我們每一個(gè)人通過這個(gè)過程的努力都有了不小的發(fā)展和收獲。在學(xué)習(xí)中,我們不再只是盲目的用筆練習(xí)、用腦記憶,而是用實(shí)際操作來驗(yàn)證和體驗(yàn)所學(xué)到的東西。同樣的,在精神上,我們學(xué)會了勇往直前,不因挫折而后退,面對問題學(xué)會了自己去尋找

23、解決方法,而不是擱置不理或者一味求助于人。通過實(shí)踐,我們不僅鞏固了課本知識,而且也獲得了一些書本上無法教給我們的經(jīng)驗(yàn),對軟硬件的設(shè)計(jì)和組合都有了前所未有的新的認(rèn)識。致謝 在本次設(shè)計(jì)中,陳老師和楊老師對于我們的選題講解給予了悉心教導(dǎo),為我們爭取實(shí)驗(yàn)設(shè)備和場地,中途的評定和建議更是給了我們肯定和支持,讓我們更有信心,使我們能順利地完成此次設(shè)計(jì),在此衷心的表示感謝。另外,在完成課程設(shè)計(jì)的過程中,還得到眾多朋友和同學(xué)的關(guān)心支持和幫助,尤其是同組組員周敏同學(xué),始終能夠跟我密切合作,共同解決問題,給了我莫大的幫助,在此,謹(jǐn)向老師同學(xué)和朋友致以衷心的感謝和崇高的敬意!參考文獻(xiàn)1徐惠民、安德寧:單片微型計(jì)算機(jī)

24、原理接口與應(yīng)用第1版,北京郵電大學(xué)出版社,19962夏繼強(qiáng):單片機(jī)實(shí)驗(yàn)與實(shí)踐教程,北京航空航天大學(xué)出版社,20013 王毓銀.數(shù)字電路邏輯設(shè)計(jì).高等教育出版社,2005年12月4 楊將新,李華軍,劉到駿等.單片機(jī)程序設(shè)計(jì)及應(yīng)用(從基礎(chǔ)到實(shí)踐)J電子工業(yè)出版社,20065 周立功.LPC900系列Flash單片機(jī)應(yīng)用技術(shù)J.北京航空航天大學(xué)出版社, 2004附錄軟件程序 #include <AT89X52.H> unsigned char ps=1,2,3,4,5; unsigned char code dispbit=0xfe,0xfd,0xfb,0xf7, 0xef,0xdf,0

25、xbf,0x7f; unsigned char code dispcode=0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f, 0x77,0x7c,0x39,0x5e,0x79,0x71, 0x00,0x40,0x73,0xff; unsigned char dispbuf8=18,16,16,16,16,16,16,16; unsigned char dispcount; unsigned char flashcount; unsigned char temp; unsigned char key; unsigned char keycou

26、nt; unsigned char pslen=5; unsigned char getps6; bit keyoverflag; bit errorflag; bit rightflag; unsigned int second3; unsigned int aa,bb; unsigned int cc,dd,ee; bit okflag; bit alarmflag; bit hibitflag; unsigned char oka,okb; void main(void) unsigned char i,j; TMOD=0x01; TH0=(65536-500)/256; TL0=(65

27、536-500)%256; TR0=1; ET0=1; EA=1; while(1) if(ee&&(key=15)ee=0 ;dispbuf0=18; dispbuf1=16;dispbuf2=16 ;dispbuf3=16 ;dispbuf4=16;dispbuf5=16 ;dispbuf6=16 ;dispbuf7=16 ; keycount=0;if(dd) P3_3=0; P3_5=1 ; P3_4=1; while(1) if(!P3_5) dispbuf0=18; dispbuf1=16;dispbuf2=16 ;dispbuf3=16 ;dispbuf4=16;

28、dispbuf5=16 ;dispbuf6=16 ;dispbuf7=16 ; keycount=0; dd=0; break ; if(!P3_4) ee=1; dd=0; dispbuf0=18; dispbuf1=16;dispbuf2=16 ;dispbuf3=16 ;dispbuf4=16;dispbuf5=16 ;dispbuf6=16 ;dispbuf7=16 ; keycount=0; break ; P3=0xff; P3_4=0; temp=P3; temp=temp & 0x0f; if (temp!=0x0f) for(i=10;i>0;i-) for(j

29、=248;j>0;j-); temp=P3; temp=temp & 0x0f; if (temp!=0x0f) temp=P3; temp=temp & 0x0f; switch(temp) case 0x0e: key=7; break; case 0x0d: key=8; break; case 0x0b: key=9; break; case 0x07: key=10; break; temp=P3; P1_1=P1_1; if(key>=0) && (key<10) if(keycount<6) getpskeycount=ke

30、y; if(ee) pskeycount=key; dispbufkeycount+2=19; keycount+; if(keycount=6) keycount=6; else if(keycount>6) keycount=6; keyoverflag=1;/key overflow else if(key=12)/delete key if(keycount>0) keycount-; getpskeycount=0; dispbufkeycount+2=16; else keyoverflag=1; else if(key=15)&&(!ee)/enter

31、 key if(keycount!=pslen) errorflag=1; rightflag=0; second3=0; else for(i=0;i<keycount;i+) if(getpsi!=psi) i=keycount; errorflag=1; rightflag=0; second3=0; goto a; errorflag=0; rightflag=1; a: i=keycount; temp=temp & 0x0f; while(temp!=0x0f) temp=P3; temp=temp & 0x0f; keyoverflag=0; P3=0xff

32、; P3_5=0; temp=P3; temp=temp & 0x0f; if (temp!=0x0f) for(i=10;i>0;i-) for(j=248;j>0;j-); temp=P3; temp=temp & 0x0f; if (temp!=0x0f) temp=P3; temp=temp & 0x0f; switch(temp) case 0x0e: key=4; break; case 0x0d: key=5; break; case 0x0b: key=6; break; case 0x07: key=11; break; temp=P3;

33、P1_1=P1_1; if(key>=0) && (key<10) if(keycount<6) getpskeycount=key; if(ee) pskeycount=key; dispbufkeycount+2=19; keycount+; if(keycount=6) keycount=6; else if(keycount>6) keycount=6; keyoverflag=1;/key overflow else if(key=12)/delete key if(keycount>0) keycount-; getpskeycount

34、=0; dispbufkeycount+2=16; else keyoverflag=1; else if(key=15)&&(!ee)/enter key if(keycount!=pslen) errorflag=1; rightflag=0; second3=0; else for(i=0;i<keycount;i+) if(getpsi!=psi) i=keycount; errorflag=1; rightflag=0; second3=0; goto a4; errorflag=0; rightflag=1; a4: i=keycount; temp=temp & 0x0f; while(temp!=0x0f) temp=P3; temp=temp & 0x0f; keyoverfla

溫馨提示

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

評論

0/150

提交評論