




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
...wd......wd......wd...西安文理學(xué)院機(jī)械電子工程系專業(yè)課程設(shè)計(jì)報(bào)告專業(yè)班級(jí)課程題目學(xué)號(hào)學(xué)生姓名指導(dǎo)教師年月基于51單片機(jī)電子密碼鎖的設(shè)計(jì)摘要在這個(gè)信息和科技高速開展的時(shí)代,人們的生活水平越來(lái)越高,隨之應(yīng)運(yùn)而生的人們的安全意識(shí)也越來(lái)越強(qiáng),然而傳統(tǒng)的機(jī)械鎖由于設(shè)計(jì)和工藝簡(jiǎn)單,操作和攜帶不便,已經(jīng)不能滿足人們對(duì)于安全保證和生活便利的需求,于是電子密碼鎖本著它自身的保密性高、操作簡(jiǎn)單、靈活好用等特性逐漸進(jìn)入人們的視野,并已被廣闊群眾接納和使用。此次設(shè)計(jì)是以AT89C51單片機(jī)實(shí)現(xiàn)密碼鎖監(jiān)控裝置的檢測(cè)和控制核心,實(shí)現(xiàn)密碼信息的設(shè)定、加密、更改和錯(cuò)誤輸入發(fā)出警報(bào)等功能。分為鍵盤輸入〔此處采用4×4矩陣鍵盤〕,顯示輸出〔此處用LED顯示屏〕,密碼比對(duì),實(shí)現(xiàn)開鎖或警報(bào)的過(guò)程。該設(shè)計(jì)根據(jù)51單片機(jī)之間的串行通信原理,便于對(duì)密碼信息的隨機(jī)加密和保護(hù)。軟件設(shè)計(jì)則是采用自上而下的模塊化設(shè)計(jì)思想,以使系統(tǒng)朝著分布式、小型化方向開展,增強(qiáng)系統(tǒng)的可擴(kuò)展性和運(yùn)行的穩(wěn)定性。測(cè)試結(jié)果說(shuō)明,該系統(tǒng)已到達(dá)本設(shè)計(jì)的各項(xiàng)功能的所有要求。關(guān)鍵詞:?jiǎn)纹瑱C(jī);密碼鎖;4*4矩陣鍵盤;顯示屏。目錄1緒論 11.1引言 11.2電子密碼鎖的背景 11.3鍵盤式電子密碼鎖的特點(diǎn)12系統(tǒng)設(shè)計(jì)22.1系統(tǒng)總設(shè)計(jì)構(gòu)造圖22.2.開鎖機(jī)構(gòu)設(shè)計(jì)22.2.1主控芯片〔AT89C51單片機(jī)〕的簡(jiǎn)介33系統(tǒng)硬件設(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)聲器電路代替〕83.3整體電路圖的繪制84軟件設(shè)計(jì)104.1系統(tǒng)軟件設(shè)計(jì)思路104.2系統(tǒng)軟件設(shè)計(jì)總流程圖105程序調(diào)試125.1程序調(diào)試需要用到的軟件和工具125.2調(diào)試過(guò)程126設(shè)計(jì)總結(jié)12致謝13參考文獻(xiàn)14附錄15第一章緒論1.1引言在這個(gè)信息和科技高速開展的時(shí)代,人們的生活水平越來(lái)越高,隨之應(yīng)運(yùn)而生的人們的安全意識(shí)也越來(lái)越強(qiáng),然而傳統(tǒng)的機(jī)械鎖由于設(shè)計(jì)和工藝簡(jiǎn)單,操作和攜帶不便,已經(jīng)不能滿足人們對(duì)于安全保證和生活便利的需求,于是電子密碼鎖本著它自身的保密性高、操作簡(jiǎn)單、靈活好用等特性逐漸進(jìn)入人們的視野,并已被廣闊群眾接納和使用。鎖是用以關(guān)住某個(gè)確定的空間或范圍或某種器物的,必須以鑰匙或密碼翻開的器件。鎖,從古至今,開展到現(xiàn)在已有近千年的歷史了,人們對(duì)它的構(gòu)造、原理也隨著時(shí)間的增加研究的近乎透徹,因此,開鎖的方法和工具早已不僅僅局限于配套的鑰匙,種類也層出不窮。現(xiàn)代社會(huì)中,由于各種矛盾沖突十分劇烈,人們的思想道德觀念,價(jià)值觀念,文化修養(yǎng)水平等參差不齊,人們的思想境界良莠不齊,善良、正直的人們能夠自覺標(biāo)準(zhǔn)自已的行為,不是自己的東西不會(huì)眷戀,沒有鑰匙就不會(huì)亂闖亂動(dòng)。但是,生活中同樣還存在著一些道德觀念較差的人,總有著不勞而獲的“夢(mèng)想〞,他們?cè)谑艿秸T惑的時(shí)候,往往會(huì)想方設(shè)法利用各種手段撬門開鎖,使廣闊居民防不勝防。之所以出現(xiàn)這種情況,除了人們的道德觀外,還有一個(gè)很重要的原因,就是傳統(tǒng)鎖具都存在致命的弱點(diǎn),例如,鎖芯采用常見的銅、鋁、鋅等材料,抵抗不了強(qiáng)力破壞;再者,鎖具制作工藝,技術(shù)落后,無(wú)法阻止先進(jìn)技術(shù)手段的開啟。
目前,市場(chǎng)上的鎖具各種各樣,形狀千變?nèi)f化,然而都是大同小異,技術(shù)原理簡(jiǎn)單,實(shí)際使用上卻都不具備真正安全的防盜功能。面對(duì)這一殘酷的現(xiàn)狀,鎖具也進(jìn)入了必須革新的時(shí)代。1.2電子密碼鎖的背景隨著社會(huì)科技的進(jìn)步,鎖已開展到了密碼鎖、磁性鎖、電子鎖、激光鎖、聲控鎖等等。在傳統(tǒng)鑰匙的基礎(chǔ)上,加了一組或多組密碼,不同聲音,不同磁場(chǎng),不同聲波,不同光束光波,不同圖像?!踩缰讣y、眼底視網(wǎng)膜等〕來(lái)控制鎖的開啟。從而大大提高了鎖的安全性,使不法之徒無(wú)從下手,人們也就能對(duì)自身財(cái)產(chǎn)安全有了更多的保障。當(dāng)今安全信息系統(tǒng)應(yīng)用越來(lái)越廣泛,特別在保護(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è)人資料的保存等多種場(chǎng)合使用。大大提高了主人物資的安全性,安全可以代替老式機(jī)械鎖。目前使用的密碼鎖種類繁多,各具特色。從目前的技術(shù)水平和市場(chǎng)認(rèn)可程度看,使用最為廣泛的電子密碼鎖是鍵盤是電子密碼鎖,該產(chǎn)品主要應(yīng)用于保險(xiǎn)箱、保險(xiǎn)柜和金庫(kù),還有一局部應(yīng)用于保管箱和運(yùn)鈔車。鍵盤式電子密碼在鍵盤上輸入,與打差不多,因而易于掌握,其突出優(yōu)點(diǎn)是“密碼〞是記在被授權(quán)人腦子里的數(shù)字和字符,既準(zhǔn)確又可靠,不會(huì)喪失〔除了忘記〕,難以被竊〔除非自己泄露〕。在輸入密碼的過(guò)程中,為了限制試探密碼的企圖,通常輸入錯(cuò)誤碼假設(shè)干次或假設(shè)干時(shí)間內(nèi)輸入不正確,即“封鎖〞鍵盤,不再承受輸入操作??傊?,盡管新式電子防盜鎖層出不窮,但鍵盤式電子密碼防盜鎖仍然在自己的基礎(chǔ)上開展,不僅在市場(chǎng)上居于主流地位,而且,還經(jīng)常作為其他類型電子防盜鎖的輔助輸入手段。第二章系統(tǒng)設(shè)計(jì)2.1系統(tǒng)總設(shè)計(jì)構(gòu)造圖密碼輸入設(shè)備密碼輸入設(shè)備數(shù)碼管顯示單片機(jī)AT89C51開鎖機(jī)構(gòu)圖2.1系統(tǒng)總設(shè)計(jì)構(gòu)造圖本設(shè)計(jì)由主控芯片51單片機(jī),鍵盤,LED顯示屏和開鎖電路組成。單片負(fù)責(zé)控制整個(gè)系統(tǒng)的執(zhí)行過(guò)程。2.2開鎖機(jī)構(gòu)的設(shè)計(jì)通過(guò)單片機(jī)送給開鎖執(zhí)行機(jī)構(gòu)〔本設(shè)計(jì)用LED燈和揚(yáng)聲器代替繼電器翻開電磁閥的開鎖執(zhí)行機(jī)構(gòu)〕實(shí)現(xiàn)開鎖或警報(bào)的表示過(guò)程。AT89C51單片機(jī)開鎖驅(qū)動(dòng)電路開鎖/警報(bào)AT89C51單片機(jī)開鎖驅(qū)動(dòng)電路開鎖/警報(bào)當(dāng)用戶輸入的密碼正確而且是在規(guī)定的時(shí)間及次數(shù)輸入之內(nèi),單片機(jī)便輸出開鎖信號(hào)送到開鎖驅(qū)動(dòng)電路,到達(dá)開門的目的〔此處用LED發(fā)光二極管亮一秒鐘做為提示,同時(shí)發(fā)出“叮咚〞聲〕。2.2.1主控芯片〔AT89C51單片機(jī)〕的簡(jiǎn)介AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器〔FPEROM—FalshProgrammableandErasableReadOnlyMemory〕的低電壓,高性能CMOS8位微處理器,俗稱單片機(jī)。單片機(jī)的可擦除只讀存儲(chǔ)器可以反復(fù)擦除100次。該器件采用ATMEL高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲(chǔ)器組合在單個(gè)芯片中,ATMEL的AT89C51是一種高效微控制器。主要特性:·與MCS-51兼容·4K字節(jié)可編程閃爍存儲(chǔ)器·壽命:1000寫/擦循環(huán)·數(shù)據(jù)保存時(shí)間:10年·全靜態(tài)工作:0Hz-24MHz·三級(jí)程序存儲(chǔ)器鎖定·128×8位內(nèi)部RAM·32可編程I/O線·兩個(gè)16位定時(shí)器/計(jì)數(shù)器·5個(gè)中斷源·可編程串行通道·低功耗的閑置和掉電模式·片內(nèi)振蕩器和時(shí)鐘電路管腳說(shuō)明:VCC:供電電壓。GND:接地。P0口:P0口為一個(gè)8位漏級(jí)開路雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P1口的管腳第一次寫1時(shí),被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的第八位。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)用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)展存取時(shí),P2口輸出地址的高八位。在給出地址“1〞時(shí),它利用內(nèi)部上拉優(yōu)勢(shì),當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(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.0RXD〔串行輸入口〕P3.1TXD〔串行輸出口〕P3.2/INT0〔外部中斷0〕P3.3/INT1〔外部中斷1〕P3.4T0〔記時(shí)器0外部輸入〕P3.5T1〔記時(shí)器1外部輸入〕P3.6/WR〔外部數(shù)據(jù)存儲(chǔ)器寫選通〕P3.7/RD〔外部數(shù)據(jù)存儲(chǔ)器讀選通〕P3口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號(hào)。RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平時(shí)間。ALE/PROG:當(dāng)訪問(wèn)外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時(shí),ALE端以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的1/6。因此它可用作對(duì)外部輸出的脈沖或用于定時(shí)目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過(guò)一個(gè)ALE脈沖。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE制止,置位無(wú)效。/PSEN:外部程序存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取指期間,每個(gè)機(jī)器周期兩次/PSEN有效。但在訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的/PSEN信號(hào)將不出現(xiàn)。/EA/VPP:當(dāng)/EA保持低電平時(shí),則在此期間外部程序存儲(chǔ)器〔0000H-FFFFH〕,不管是否有內(nèi)部程序存儲(chǔ)器。注意加密方式1時(shí),/EA將內(nèi)部鎖定為RESET;當(dāng)/EA端保持高電平時(shí),此間內(nèi)部程序存儲(chǔ)器。XTAL1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。XTAL2:來(lái)自反向振蕩器的輸出。圖2.3AT89C51芯片圖第三章系統(tǒng)硬件設(shè)計(jì)3.1鍵盤設(shè)計(jì)本實(shí)驗(yàn)采用4×4行列式矩陣鍵盤,用數(shù)字鍵輸入密碼,ENTER鍵確認(rèn);如果密碼輸入錯(cuò)誤,用DEL鍵去除;密碼輸入完畢并且確認(rèn)后,如果需要重新輸入,先按Esc退出,然后重新輸入;假設(shè)用戶想要自行更改密碼,需要先正確輸入密碼并確認(rèn)后,按ALT進(jìn)展修改,再按ENTER進(jìn)展確認(rèn),密碼更改完畢。4×4行列式鍵盤的按鍵功能分布如圖3.1所示。987ALT987ALT645Esc645Esc2DEL132DEL13ENTER0ENTER0圖3.1鍵盤按鍵功能分布圖3.2系統(tǒng)電路設(shè)計(jì)本系統(tǒng)電路主芯片AT89C51〔內(nèi)含晶振和復(fù)位電路〕,外接上拉電阻,數(shù)碼管顯示器,揚(yáng)聲器、LED燈和外接電阻組成開鎖電路。3.2.1鍵盤電路及連線圖每一條行線和列線穿插處通過(guò)一個(gè)按鍵來(lái)連接,利用這種行列式矩陣構(gòu)造只需要N條行線和M條列線就可組成N*M個(gè)按鍵。在這種行列式矩陣鍵盤非鍵盤編碼的單片機(jī)中,鍵盤處理程序先執(zhí)行等待按鍵并有無(wú)鍵盤按下的程序段。確認(rèn)有鍵盤按下后,下一步執(zhí)行識(shí)別哪一個(gè)鍵按下。對(duì)照4*4鍵盤,首先識(shí)別鍵盤中有無(wú)鍵盤按下,然后判斷鍵盤中哪一個(gè)鍵被按下,使通過(guò)將列線逐列置低電平后,檢查行輸入狀態(tài)來(lái)實(shí)現(xiàn)的。方法是:依次給列線送低電平,然后檢查行輸入狀態(tài)來(lái)實(shí)現(xiàn)。如果全為1,則所按下鍵不在此列,如果不全為1則按下的鍵必在此列。而且是與零電平線相交的交點(diǎn)上的鍵。理想的按鍵信號(hào)是一個(gè)標(biāo)準(zhǔn)脈沖,但鍵的按下和釋放都需要一個(gè)過(guò)程來(lái)實(shí)現(xiàn),在這一過(guò)程中是處于上下電平之間一種不穩(wěn)定狀態(tài),稱為抖動(dòng)。抖動(dòng)時(shí)間的長(zhǎng)短,頻率的上下與按鍵機(jī)械特征有關(guān),一般在5到10ms之間。這就有可能造成CPU對(duì)一次按鍵過(guò)程進(jìn)展屢次處理。為了防止這種情況應(yīng)采取措施消除抖動(dòng)。消抖常見有兩種方法,硬件消抖:如用濾波器,雙穩(wěn)態(tài)電路等。另一種用軟件來(lái)實(shí)現(xiàn),即當(dāng)發(fā)現(xiàn)有鍵按下時(shí),間隔10ms以上時(shí)間,才能進(jìn)展下一次查詢,這樣就讓過(guò)了抖動(dòng)過(guò)程,鍵的釋放進(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)將公共極COM接到地線GND上,當(dāng)某一字段發(fā)光二極管的陽(yáng)極為高電平時(shí),相應(yīng)字段就點(diǎn)亮。當(dāng)某一字段的陽(yáng)極為低電平時(shí),相應(yīng)字段就不亮。圖3.3數(shù)碼管顯示電路為了增加單片機(jī)的驅(qū)動(dòng),數(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軟件繪制完整的電路圖?!?〕密碼正確并且確認(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è)備外,還需要一套與之相對(duì)應(yīng)的、設(shè)計(jì)合理的軟件相配合。隨著電子信息的開展,微機(jī)應(yīng)用早已普遍,許多原來(lái)的硬件工作都可以通過(guò)軟件編程來(lái)代替,從而使一些復(fù)雜的硬件電路簡(jiǎn)單化。電子密碼鎖工作的主要過(guò)程是通過(guò)鍵盤輸入密碼,同時(shí)LED顯示密碼輸入情況,按下確認(rèn)鍵后判斷密碼的正確性,做出開鎖或報(bào)警處理。當(dāng)輸入密碼輸入錯(cuò)誤時(shí),系統(tǒng)報(bào)警。初始設(shè)定密碼之后,如果按下密碼的位數(shù)超過(guò)設(shè)置的密碼位數(shù)時(shí),假設(shè)只超過(guò)一位,數(shù)碼管以最后一位顯示不全給出提示,假設(shè)繼續(xù)輸入,系統(tǒng)揚(yáng)聲器報(bào)警?!脖驹O(shè)計(jì)中初始密碼為12345五位,當(dāng)按下的密碼為6位時(shí),還,未按下Enter確認(rèn),數(shù)碼管就會(huì)以不全七段碼顯示給出警報(bào),假設(shè)繼續(xù)按下,系統(tǒng)就會(huì)發(fā)出“滴滴滴〞的警報(bào)聲〕。按鍵按其功能分為兩種,其中一種為功能鍵另一種為數(shù)字鍵。輸入密碼后,直到所有密碼輸入完畢按下確認(rèn)功能鍵之后,才完成密碼輸入過(guò)程。進(jìn)入密碼的判斷比較處理狀態(tài)并給出相應(yīng)的處理過(guò)程。如圖4.1為輸入密碼超出原始設(shè)定位數(shù)時(shí)的數(shù)碼管的顯示。圖4.1密碼超出設(shè)定時(shí)數(shù)碼顯示圖4.2系統(tǒng)軟件設(shè)計(jì)總流程圖開場(chǎng)密碼比較密碼輸入完畢密碼比較密碼輸入完畢否輸入密碼系統(tǒng)喚醒上電是開鎖密碼修改密碼正確密碼錯(cuò)誤鎖定鍵盤3s3s是否到燈閃并發(fā)出警報(bào)否輸入密碼系統(tǒng)喚醒上電是開鎖密碼修改密碼正確密碼錯(cuò)誤鎖定鍵盤3s3s是否到燈閃并發(fā)出警報(bào)圖4.1系統(tǒng)軟件設(shè)計(jì)總流程圖程序調(diào)試把寫好的C語(yǔ)言程序載入軟件調(diào)試工具,檢查軟件是否有設(shè)法錯(cuò)誤,再根據(jù)軟件提示對(duì)本程序進(jìn)展修改,直到?jīng)]有錯(cuò)誤再生成單片機(jī)能運(yùn)行的機(jī)器碼,再用Prteus工具把機(jī)器碼導(dǎo)入單片機(jī)進(jìn)展實(shí)際的程序調(diào)試,根據(jù)實(shí)際情況再對(duì)程序的缺乏加以修改,直到滿足設(shè)計(jì)要求。5.1程序調(diào)試需要用到的軟件和工具調(diào)試改程序用到Keil軟件和Prteus工具。5.2調(diào)試過(guò)程翻開KEILC51主程序,新建工程,新建文本框?qū)懭氤绦?,保存,檢查是否有語(yǔ)法錯(cuò)誤,經(jīng)反復(fù)檢查無(wú)誤后匯編,生成51單片機(jī)可執(zhí)行的HEX文件。然后用Prteus工具軟件把HEX文件寫入單片機(jī)。設(shè)計(jì)總結(jié)經(jīng)過(guò)這次課程設(shè)計(jì)的整個(gè)過(guò)程,我們深刻的體會(huì)到了實(shí)踐是檢驗(yàn)和穩(wěn)固我們學(xué)習(xí)成果最有力的標(biāo)準(zhǔn)。在一段理論學(xué)習(xí)之后,我們需要我們需要把自己的理論框架應(yīng)用于實(shí)踐,因?yàn)槿魏沃R(shí)都來(lái)源于實(shí)踐,又歸于實(shí)踐,只有通過(guò)實(shí)踐我們才能更好地掌握所學(xué)到的知識(shí)。在這次課程設(shè)計(jì)期間,我們每一個(gè)人通過(guò)這個(gè)過(guò)程的努力都有了不小的開展和收獲。在學(xué)習(xí)中,我們不再只是盲目的用筆練習(xí)、用腦記憶,而是用實(shí)際操作來(lái)驗(yàn)證和體驗(yàn)所學(xué)到的東西。同樣的,在精神上,我們學(xué)會(huì)了勇往直前,不因挫折而后退,面對(duì)問(wèn)題學(xué)會(huì)了自己去尋找解決方法,而不是擱置不理或者一味求助于人。通過(guò)實(shí)踐,我們不僅穩(wěn)固了課本知識(shí),而且也獲得了一些書本上無(wú)法教給我們的經(jīng)歷,對(duì)軟硬件的設(shè)計(jì)和組合都有了前所未有的新的認(rèn)識(shí)。致謝在本次設(shè)計(jì)中,陳教師和楊教師對(duì)于我們的選題講解給予了悉心教導(dǎo),為我們爭(zhēng)取實(shí)驗(yàn)設(shè)備和場(chǎng)地,中途的評(píng)定和建議更是給了我們肯定和支持,讓我們更有信心,使我們能順利地完成此次設(shè)計(jì),在此衷心的表示感謝。另外,在完成課程設(shè)計(jì)的過(guò)程中,還得到眾多朋友和同學(xué)的關(guān)心支持和幫助,尤其是同組組員周敏同學(xué),始終能夠跟我密切合作,共同解決問(wèn)題,給了我莫大的幫助,在此,謹(jǐn)向教師同學(xué)和朋友致以衷心的感謝和崇高的敬意!參考文獻(xiàn)[1]徐惠民、安德寧:《單片微型計(jì)算機(jī)原理接口與應(yīng)用》第1版,北京郵電大學(xué)出版社,1996[2]夏繼強(qiáng):《單片機(jī)實(shí)驗(yàn)與實(shí)踐教程》,北京航空航天大學(xué)出版社,2001[3]王毓銀.數(shù)字電路邏輯設(shè)計(jì).高等教育出版社,2005年12月[4]楊將新,李華軍,劉到駿等.單片機(jī)程序設(shè)計(jì)及應(yīng)用〔從基礎(chǔ)到實(shí)踐〕[J].電子工業(yè)出版社,2006[5]周立功.LPC900系列Flash單片機(jī)應(yīng)用技術(shù)[J].北京航空航天大學(xué)出版社,2004附錄軟件程序#include<AT89X52.H>unsignedcharps[]={1,2,3,4,5};unsignedcharcodedispbit[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};unsignedcharcodedispcode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00,0x40,0x73,0xff};unsignedchardispbuf[8]={18,16,16,16,16,16,16,16};unsignedchardispcount;unsignedcharflashcount;unsignedchartemp;unsignedcharkey;unsignedcharkeycount;unsignedcharpslen=5;unsignedchargetps[6];bitkeyoverflag;biterrorflag;bitrightflag;unsignedintsecond3;unsignedintaa,bb;unsignedintcc,dd,ee;bitokflag;bitalarmflag;bithibitflag;unsignedcharoka,okb;voidmain(void){ unsignedchari,j;TMOD=0x01;TH0=(65536-500)/256;TL0=(65536-500)%256;TR0=1;ET0=1;EA=1;while(1){if(ee&&(key==15)) {ee=0; dispbuf[0]=18; dispbuf[1]=16; dispbuf[2]=16; dispbuf[3]=16; dispbuf[4]=16 ; dispbuf[5]=16 ; dispbuf[6]=16 ; dispbuf[7]=16 ;keycount=0; } if(dd){P3_3=0; P3_5=1 ; P3_4=1 ; while(1) {if(!P3_5) {dispbuf[0]=18; dispbuf[1]=16; dispbuf[2]=16; dispbuf[3]=16; dispbuf[4]=16 ; dispbuf[5]=16 ; dispbuf[6]=16 ; dispbuf[7]=16 ;keycount=0; dd=0; break;} if(!P3_4) {ee=1; dd=0; dispbuf[0]=18; dispbuf[1]=16; dispbuf[2]=16; dispbuf[3]=16; dispbuf[4]=16 ; dispbuf[5]=16 ; dispbuf[6]=16 ; dispbuf[7]=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=248;j>0;j--);temp=P3;temp=temp&0x0f;if(temp!=0x0f){temp=P3;temp=temp&0x0f;switch(temp){case0x0e:key=7;break;case0x0d:key=8;break;case0x0b:key=9;break;case0x07:key=10;break;}temp=P3;P1_1=~P1_1;if((key>=0)&&(key<10)){if(keycount<6){getps[keycount]=key; if(ee) {ps[keycount]=key; }dispbuf[keycount+2]=19;}keycount++;if(keycount==6){keycount=6;}elseif(keycount>6){keycount=6;keyoverflag=1;//keyoverflow}}elseif(key==12)//deletekey{if(keycount>0){keycount--;getps[keycount]=0;dispbuf[keycount+2]=16;}else{keyoverflag=1;}}elseif((key==15)&&(!ee))//enterkey{if(keycount!=pslen){errorflag=1;rightflag=0;second3=0;}else{for(i=0;i<keycount;i++){if(getps[i]!=ps[i]){i=keycount;errorflag=1;rightflag=0;second3=0;gotoa;}}errorflag=0;rightflag=1;a:i=keycount;}}temp=temp&0x0f;while(temp!=0x0f){temp=P3;temp=temp&0x0f;}keyoverflag=0;}}P3=0xff;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){case0x0e:key=4;break;case0x0d:key=5;break;case0x0b:key=6;break;case0x07:key=11;break;}temp=P3;P1_1=~P1_1;if((key>=0)&&(key<10)){if(keycount<6){getps[keycount]=key; if(ee){ps[keycount]=key; }dispbuf[keycount+2]=19;}keycount++;if(keycount==6){keycount=6;}elseif(keycount>6){keycount=6;keyoverflag=1;//keyoverflow}}elseif(key==12)//deletekey{if(keycount>0){keycount--;getps[keycount]=0;dispbuf[keycount+2]=16;}else{keyoverflag=1;}}elseif((key==15)&&(!ee))//enterkey{ if(keycount!=pslen){errorflag=1;rightflag=0;second3=0;}else{for(i=0;i<keycount;i++){if(getps[i]!=ps[i]){i=keycount;errorflag=1;rightflag=0;second3=0;gotoa4;}}errorflag=0;rightflag=1;a4:i=keycount;}}temp=temp&0x0f;while(temp!=0x0f){temp=P3;temp=temp&0x0f;}keyoverflag=0;}}P3=0xff;P3_6=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){case0x0e:key=1;break;case0x0d:key=2;break;case0x0b:key=3;break;case0x07:key=12;break;}temp=P3;P1_1=~P1_1;if((key>=0)&&(key<10)){if(keycount<6){getps[keycount]=key; if(ee) {ps[keycount]=key; }dispbuf[keycount+2]=19;}keycount++;if(keycount==6){keycount=6;}elseif(keycount>6){keycount=6;keyoverflag=1;//keyoverflow}}elseif(key==12)//deletekey{if(keycount>0){keycount--;getps[keycount]=0;dispbuf[keycount+2]=16;}else{keyoverflag=1;}}elseif((key==15)&&(!ee))//enterkey{if(keycount!=pslen){errorflag=1;rightflag=0;second3=0;}else{for(i=0;i<keycount;i++){if(getps[i]!=ps[i]){i=keycount;errorflag=1;rightflag=0;second3=0;gotoa3;}}errorflag=0;rightflag=1;a3:i=keycount;}}temp=temp&0x0f;while(temp!=0x0f){temp=P3;temp=temp&0x0f;}keyoverflag=0;}}P3=0xff;P3_7=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){case0x0e:key=0;break;case0x0d:key=13;break;case0x0b:key=14;break;case0x07:key=15;break;}temp=P3;P1_1=~P1_1;if((key>=0)&&(key<10)){if(keycount<6){getps[keycount]=key; if(ee) {ps[keycount]=key;}dispbuf[keycount+2]=19;}keycount++;if(keycount==6){keycount=6;}elseif(keycount>6){keycount=6;keyoverflag=1;//keyoverflow}}elseif(key==12)//deletekey{if(keycount>0){keycount--;getps[keycount]=0;dispbuf[keycount+2]=16;}else{keyoverflag=1;}}elseif((key==15)&&(!ee))//enterkey{if(keycount!=pslen){errorflag=1;rightflag=0;second3=0;}else{for(i=0;i<keycount;i++){if(getps[i]!=ps[i]){i=keycount;errorflag=1;rightflag=0;second3=0;gotoa2;}}errorflag=0;rig
溫馨提示
- 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ù)覽,若沒有圖紙預(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 建筑工程施工合同正規(guī)版本
- 交通事故賠償協(xié)商合同范本
- 幼兒園入園托管合同書
- 重慶新版服務(wù)合同標(biāo)準(zhǔn)范本
- 11爸爸媽媽在我心中 第1課時(shí)(教學(xué)設(shè)計(jì))-部編版道德與法治三年級(jí)上冊(cè)
- Fantastic animals繪本融合(教學(xué)設(shè)計(jì))-2023-2024學(xué)年外研版(一起)英語(yǔ)六年級(jí)下冊(cè)
- 勞動(dòng)合同解除合同
- 20《蜘蛛開店》教學(xué)設(shè)計(jì)-2024-2025學(xué)年語(yǔ)文二年級(jí)下冊(cè)統(tǒng)編版
- 運(yùn)輸代理合同范文
- 戒煙保證金合同協(xié)議
- 《酸棗營(yíng)銷戰(zhàn)略》課件
- 倉(cāng)庫(kù)禮儀培訓(xùn)
- 2024土方工程承包合同包含進(jìn)度支付與違約責(zé)任條款范本3篇
- 暑假假期安全教育(課件)-小學(xué)生主題班會(huì)
- Python爬蟲技術(shù)基礎(chǔ)介紹
- 《傳媒法律法規(guī)》課件
- 數(shù)據(jù)中心供配電系統(tǒng)概述演示
- TSG11-2020鍋爐安全技術(shù)規(guī)程(現(xiàn)行)
- 義務(wù)教育(音樂)課程標(biāo)準(zhǔn)(2022年版)解讀
- 第三章企業(yè)的生產(chǎn)和成本
- 統(tǒng)編版 高中語(yǔ)文 必修下冊(cè) 《祝?!贰读纸填^風(fēng)雪山神廟》
評(píng)論
0/150
提交評(píng)論