基于單片機(jī)電子密碼鎖課程設(shè)計(jì)報(bào)告_第1頁(yè)
基于單片機(jī)電子密碼鎖課程設(shè)計(jì)報(bào)告_第2頁(yè)
基于單片機(jī)電子密碼鎖課程設(shè)計(jì)報(bào)告_第3頁(yè)
基于單片機(jī)電子密碼鎖課程設(shè)計(jì)報(bào)告_第4頁(yè)
基于單片機(jī)電子密碼鎖課程設(shè)計(jì)報(bào)告_第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)介

電子密碼鎖PAGE35-課程設(shè)計(jì)論文電子密碼鎖目錄第1章緒論 11.1電子密碼鎖 11.2電子密碼鎖的特點(diǎn) 11.3論文的主要工作 1第2章系統(tǒng)設(shè)計(jì)方案及主控制芯片介紹 22.1系統(tǒng)總體設(shè)計(jì)方案 22.2系統(tǒng)的工作原理 22.3主控芯片介紹 32.3.1結(jié)構(gòu)概述 3第3章系統(tǒng)硬件設(shè)計(jì) 43.1鍵盤輸入裝置 43.2硬件工作接線口 53.3LED顯示器結(jié)構(gòu)與原理 53.4復(fù)位電路 63.5繼電器開關(guān)門裝置 63.6聲光報(bào)警裝置 7第4章系統(tǒng)軟件設(shè)計(jì) 74.1編程工具的介紹 84.1.1C語(yǔ)言的主要優(yōu)點(diǎn) 84.1.2C語(yǔ)言使用的工具 84.1.3C51與C語(yǔ)言的主要不同點(diǎn) 84.2主程序 84.3矩陣式鍵盤 10第5章系統(tǒng)調(diào)試 125.1硬件調(diào)試 125.2軟件調(diào)試 125.3系統(tǒng)軟硬件聯(lián)機(jī)調(diào)試 13第6章焊接技第7章總結(jié) 137.1心得體會(huì) 147.2系統(tǒng)存在的問(wèn)題和改進(jìn)方案 167.3設(shè)計(jì)中遇到的問(wèn)題和解決方法 16參考文獻(xiàn) 16附錄 17附錄一:系統(tǒng)設(shè)計(jì)電路總圖 17附錄二:元件器清單 18附錄三:軟件程序 19電子密碼鎖【摘要】該電子密碼鎖是一種實(shí)用型的機(jī)、電一體化設(shè)計(jì),采用單片機(jī)密碼識(shí)別及信號(hào)輸出控制,提高了整體電路的穩(wěn)定性和可靠性,并且簡(jiǎn)化了硬件電路的設(shè)計(jì)。由EPROM構(gòu)成的密碼存儲(chǔ)器可防止主機(jī)在斷電的時(shí)候?qū)⒂脩舻脑O(shè)置密碼丟失,更增加了其安全系數(shù)。該設(shè)計(jì)是基于89C52的單片機(jī)的電子密碼鎖設(shè)計(jì),主要是通過(guò)芯片的程序內(nèi)容來(lái)控制電路的工作方式,其中包括89C52芯片,閃存芯片,鍵盤輸入模塊,電子鎖模塊等模塊,當(dāng)89C52檢測(cè)到有密碼輸入時(shí)就將其和閃存中的密碼相比較,如果相同則傳送開鎖信號(hào)到電子鎖模塊電路,實(shí)現(xiàn)開鎖功能,而當(dāng)檢測(cè)到三次輸入密碼都不正確時(shí)則輸出報(bào)警信號(hào),同是禁止密碼輸入功能,即實(shí)現(xiàn)了防多次試探的可能性,其安全性能有了明顯的提高。關(guān)鍵詞:穩(wěn)定性可靠性89C52EPRPM【正文】第一章緒論1.1電子密碼鎖功能本系統(tǒng)采用單片機(jī)作控制器,系統(tǒng)工作時(shí),用戶通過(guò)按鍵輸入8位密碼,按下“確認(rèn)”鍵后,單片機(jī)將輸入密碼與設(shè)定密碼進(jìn)行比較,若密碼正確,則發(fā)出開鎖信號(hào),相應(yīng)的指示燈閃動(dòng),將鎖打開,系統(tǒng)不報(bào)警;若密碼不正確,則有相應(yīng)的指示燈閃動(dòng),并要求重新輸入密碼,重新輸入密碼的次數(shù)不能超過(guò)3次,若3次輸入的密碼都不正確,顯示“CLOSED”,且發(fā)出報(bào)警信號(hào)。鎖打開后還可通過(guò)按下“修改/重置”功能鍵,重新設(shè)置新密碼。1.2電子密碼鎖的特點(diǎn)電子密碼鎖是一種通過(guò)密碼輸入來(lái)控制電路或是芯片工作,從而控制機(jī)械開關(guān)的閉合,完成開鎖、閉鎖任務(wù)的電子產(chǎn)品。它的種類很多,有簡(jiǎn)易的電路產(chǎn)品,也有基于芯片的性價(jià)比較高的產(chǎn)品?,F(xiàn)在應(yīng)用較廣的電子密碼鎖是以芯片為核心,通過(guò)編程來(lái)實(shí)現(xiàn)的。其性能和安全性已大大超過(guò)了機(jī)械鎖,特點(diǎn)如下:①保密性好,編碼量多,遠(yuǎn)遠(yuǎn)大于彈子鎖。隨機(jī)開鎖成功率幾乎為零;②密碼可變。用戶可以經(jīng)常更改密碼,防止密碼被盜,同時(shí)也可以避免因人員的更替而使鎖的密級(jí)下降;③誤碼輸入保護(hù)。當(dāng)輸入密碼多次錯(cuò)誤時(shí),報(bào)警系統(tǒng)自動(dòng)啟動(dòng);④電子密碼鎖操作簡(jiǎn)單易行,一學(xué)即會(huì)。1.3論文的主要工作論文的研究?jī)?nèi)容主要如下:(1)了解單片機(jī)的基本結(jié)構(gòu)和指令系統(tǒng),掌握STC89C52單片機(jī)的控制功能,應(yīng)用單片機(jī)實(shí)現(xiàn)電子密碼鎖的設(shè)計(jì),及其硬件制作;(2)熟練掌握C語(yǔ)言,在KEIL的開發(fā)環(huán)境中編譯程序,完成電子鎖的軟件設(shè)計(jì),使系統(tǒng)更加符合實(shí)際;(3)軟件編制上根據(jù)系統(tǒng)要完成的功能采用模塊化結(jié)構(gòu)設(shè)計(jì),與硬件一起進(jìn)行聯(lián)機(jī)調(diào)試,能達(dá)到預(yù)期的效果;(5)對(duì)實(shí)驗(yàn)結(jié)果進(jìn)行分析,并對(duì)出現(xiàn)的問(wèn)題提出解決方案。第2章系統(tǒng)設(shè)計(jì)方案及主控制芯片介紹本章系統(tǒng)介紹了電子密碼鎖的總體方案設(shè)計(jì)及其主控芯片STC89C52單片機(jī)的介紹。電子密碼鎖主要由硬件部分和軟件部分組成,在經(jīng)過(guò)詳細(xì)的討論和實(shí)驗(yàn)之后,制定一套簡(jiǎn)單、實(shí)用、廉價(jià)的方案。2.1系統(tǒng)總體設(shè)計(jì)方案方案一:八位LED數(shù)碼管顯示密碼輸入情況,發(fā)光二極管和蜂鳴器做報(bào)警裝置,獨(dú)立式鍵盤設(shè)置數(shù)值的加減,并確認(rèn)數(shù)字的輸入。密碼輸入錯(cuò)誤時(shí)候的提示信息。方案二:八位LED數(shù)碼管顯示密碼輸入情況,發(fā)光二極管和蜂鳴器做報(bào)警裝置,由4*4矩陣式小鍵盤設(shè)置數(shù)字鍵和功能鍵。方案比較:獨(dú)立式鍵盤:直接用I/O口線構(gòu)成的單個(gè)按鍵電路。每個(gè)獨(dú)立式按鍵單獨(dú)占有一根I/O口線的工作狀態(tài)。獨(dú)立式按鍵當(dāng)按鍵較多時(shí),I/O口線浪費(fèi)較大,故只在按鍵數(shù)量不多時(shí)才采用這種按鍵電路。矩陣式按鍵:在鍵盤中按鍵數(shù)量較多時(shí),為了減少I/O口的占用,通常將按鍵排列成矩陣形式。在矩陣式鍵盤中,每條水平線和垂直線在交叉處不直接連通,而是通過(guò)一個(gè)按鍵加以連接。這樣,一個(gè)端口(如P1口)就可以構(gòu)成4*4=16個(gè)按鍵,比之直接將端口線用于鍵盤多出了一倍,而且線數(shù)越多,區(qū)別越明顯,由此可見(jiàn),在需要的鍵數(shù)比較多時(shí),采用矩陣法來(lái)做鍵盤是合理的。經(jīng)比較,我們選擇了方案二,認(rèn)為此方案更合理。系統(tǒng)框圖如圖2.1所示:圖2.1系統(tǒng)設(shè)計(jì)總體框圖2.2系統(tǒng)的工作原理本系統(tǒng)主要由以下模塊組成:電子電路部分采用單片機(jī)控制密碼讀取、密碼判斷、輸入顯示,蜂鳴報(bào)警模塊,繼電器模塊顯示開關(guān)狀態(tài),等提示輸入正確錯(cuò)誤的狀態(tài);單片機(jī)系統(tǒng)采STC89C52,用矩陣式鍵盤實(shí)現(xiàn)密碼的輸入,并由LED數(shù)碼管顯示數(shù)值提示密碼輸入信息。2.3主控芯片介紹單片機(jī)是指一個(gè)集成在一塊芯片上的完整計(jì)算機(jī)系統(tǒng)。盡管他的大部分功能集成在一塊小芯片上,但是它具有一個(gè)完整計(jì)算機(jī)所需要的大部分部件:CPU、‘內(nèi)存、內(nèi)部和外部總線系統(tǒng),目前大部分還會(huì)具有外存。同時(shí)集成諸如通訊接口、定時(shí)器,實(shí)時(shí)時(shí)鐘等外圍設(shè)備。而現(xiàn)在最強(qiáng)大的單片機(jī)系統(tǒng)甚至可以將聲音、圖像、網(wǎng)絡(luò)、復(fù)雜的輸入輸出系統(tǒng)集成在一塊芯片上。單片機(jī)也被稱為微處理器(Microcontroller),是因?yàn)樗钤绫挥迷诠I(yè)控制領(lǐng)域。單片機(jī)由芯片內(nèi)僅有CPU的專用處理器發(fā)展而來(lái)。最早的設(shè)計(jì)理念是通過(guò)將大量外圍設(shè)備和CPU集成在一個(gè)芯片中,使計(jì)算機(jī)系統(tǒng)更小,更容易集成進(jìn)復(fù)雜的而對(duì)體積要求嚴(yán)格的控制設(shè)備當(dāng)中。INTEL的Z80是最早按照這種思想設(shè)計(jì)出的處理器,從此以后,單片機(jī)和專用處理器的發(fā)展便分道揚(yáng)鑣。2.3.1結(jié)構(gòu)概述51系列單片機(jī)可分51子系列和52子系列。微控制器內(nèi)部結(jié)構(gòu)如圖2.2所示:圖2.2STC單片機(jī)結(jié)構(gòu)框圖51系列單片機(jī)由8個(gè)大部分組成:(1)一個(gè)8位中央處理機(jī)CPU。它由運(yùn)算部件、控制部件組成,其中包括振蕩電路和時(shí)鐘電路,其中主要完成單片機(jī)的運(yùn)算和控制功能,是單片機(jī)的核心部件,決定了單片機(jī)的主要功能特性。(2)128個(gè)字節(jié)(52子系列為256字節(jié))的片外數(shù)據(jù)存儲(chǔ)器RAM。其片外數(shù)據(jù)存儲(chǔ)器的尋址范圍位64KB,用于存放可讀寫的數(shù)據(jù),如運(yùn)算的中間結(jié)果或最終結(jié)果等。(3)4KB(52子系列為8KB)的片內(nèi)程序只讀存儲(chǔ)器ROM或EPROM(8031和8032無(wú))。其片外尋址范圍為64KB,主要用于存放已編制的程序,也可以存放一些原始的數(shù)據(jù)和表格。(4)18個(gè)(52子系列為21個(gè))特殊功能寄存器SFR。它用于控制和管理片內(nèi)算術(shù)邏輯部件、并行I/O、串行I/O、定時(shí)計(jì)數(shù)器、中斷系統(tǒng)等功能模塊的工作。(5)4個(gè)8位并行輸入輸出I/O接口:P0口、P1口、P2口、P3口(共32線),用于并行輸入或輸出數(shù)據(jù)。(6)1個(gè)串行I/O接口。它可使數(shù)據(jù)1位以為串行地在計(jì)算機(jī)與外設(shè)之間傳送,可用軟件設(shè)置為4種工作方式,用于多處理機(jī)通訊、I/O擴(kuò)展或全雙工通用異步接收器(UART)。(7)2個(gè)(52子系列為3個(gè))16位定時(shí)計(jì)數(shù)器。它可用設(shè)置位計(jì)數(shù)方式對(duì)外部事件進(jìn)行計(jì)數(shù),也可以設(shè)置位定時(shí)方式進(jìn)行定時(shí)。計(jì)數(shù)或定時(shí)的范圍由軟件來(lái)設(shè)定,一旦計(jì)數(shù)或定時(shí)到則向CPU發(fā)出中斷請(qǐng)求,CPU根據(jù)計(jì)數(shù)或定時(shí)的結(jié)果對(duì)計(jì)算機(jī)或外設(shè)進(jìn)行控制。(8)5個(gè)(52子系列為6個(gè)或7個(gè))中斷源,可編程為3個(gè)優(yōu)先級(jí)的中斷系統(tǒng),它可用接受外部中斷申請(qǐng)、定時(shí)計(jì)數(shù)器中斷申請(qǐng)和串行口中斷申請(qǐng)。場(chǎng)合用于實(shí)時(shí)控制、故障自動(dòng)處理、計(jì)算機(jī)與外設(shè)間傳送數(shù)據(jù)及人機(jī)對(duì)話等。第3章系統(tǒng)硬件設(shè)計(jì)在系統(tǒng)設(shè)計(jì)方案設(shè)計(jì)的基礎(chǔ)上,本章為系統(tǒng)硬件部分的設(shè)計(jì),其中包括:LED顯示模塊、鍵盤模塊、報(bào)警模塊等部分。LED顯示以其鍵盤模塊相當(dāng)于人機(jī)界面部分,將用戶通過(guò)在鍵盤操作,并通過(guò)LED反應(yīng)最終結(jié)果;報(bào)警是在密碼輸入錯(cuò)誤的情況下,或者使在非正常操作的情況下通過(guò)LED發(fā)光二極管和蜂鳴器報(bào)警通知異常;3.1鍵盤輸入裝置矩陣式鍵盤的結(jié)構(gòu)與工作原理:在鍵盤中按鍵數(shù)量較多時(shí),為了減少I/O口的占用,通常將按鍵排列成矩陣形式。在矩陣式鍵盤中,每條水平線和垂直線在交叉處不直接連通,而是通過(guò)一個(gè)按鍵加以連接。這樣,一個(gè)端口(如P1口)就可以構(gòu)成4*4=16個(gè)按鍵,比之直接將端口線用于鍵盤多出了一倍,而且線數(shù)越多,區(qū)別越明顯,由此可見(jiàn),在需要的鍵數(shù)比較多時(shí),采用矩陣法來(lái)做鍵盤是合理的。矩陣式鍵盤的按鍵識(shí)別方法:圖3.14×4矩陣式鍵盤列掃描法又稱為逐行(或行)掃描查詢法,是一種最常用的按鍵掃描方法,介紹過(guò)程如下:(1)判斷鍵盤中有無(wú)鍵按下將全部列線置低電平,然后檢測(cè)列線的狀態(tài)。只要有一行的電平為低,則表示鍵盤中有鍵被按下,而且閉合的鍵位于低電平線與4根列線相交叉的4個(gè)按鍵之中。若所有行線均為高電平,則鍵盤中無(wú)鍵按下。(2)判斷閉合鍵所在的位置在確認(rèn)有鍵按下后,即可進(jìn)入確定具體閉合鍵的過(guò)程。其方法是:依次將列線置為低電平,即在置某根列線為低電平時(shí),其它線為高電平。在確定某根列線位置為低電平后,再逐行檢測(cè)各行線的電平狀態(tài)。若某行為低,則該行線與置為低電平的列線交叉處的按鍵就是閉合的按鍵。3.2硬件工作接線口P0口接數(shù)碼管,用來(lái)顯示按鍵是否按下,P1口接鍵盤,P2口接數(shù)碼管的控制端com端。把單片機(jī)系統(tǒng)區(qū)域中的P0口用導(dǎo)線連接“數(shù)碼顯示”的任一端口上,把單片機(jī)系統(tǒng)區(qū)域中的P1口上接矩陣式鍵盤。3.3LED顯示器結(jié)構(gòu)與原理LED顯示塊是由發(fā)光顯示二極管顯示字段的顯示器件。在單片機(jī)中我們通常用七段LED,這種顯示共有共陰極和共陽(yáng)極兩種,本設(shè)計(jì)是用共陽(yáng)極,是LED顯示塊的發(fā)光二極管與陽(yáng)極并接,如圖所示圖3.2數(shù)碼管的連接通常的七段顯示塊中共有8個(gè)發(fā)光二極管,其中7個(gè)發(fā)光二極管構(gòu)成七筆字形“8”,一個(gè)發(fā)光二極管構(gòu)成小數(shù)點(diǎn)。七段顯示塊與單片機(jī)接口非常容易。只要將一個(gè)8位并行輸出與顯示塊的發(fā)光二極管引腳相連即可。8位并行輸出口輸出不同的字節(jié)數(shù)據(jù)即可獲得不同的數(shù)字或字符,通常將控制發(fā)光二極管的8位字節(jié)數(shù)據(jù)稱為段選碼。顯示字符共陽(yáng)極段選碼顯示字符共陽(yáng)極段選碼0C0HA88H1F9HB7CH2A4HCC6H3B0HDA1H499HE86H592HF8EH682H7F8H880H990H表13.4復(fù)位電路如圖所示為80C51型單片機(jī)上電復(fù)位電路。RC構(gòu)成微分電路,在接電瞬間,產(chǎn)生一個(gè)微分脈沖,其寬度若大于2個(gè)機(jī)器周期,80C51型單片機(jī)將復(fù)位,為保證微分脈沖寬度足夠大,一般取10μF電容、8.2KΩ電阻。圖3.3復(fù)位電路3.5繼電器開關(guān)門裝置繼電器控制模塊是整個(gè)系統(tǒng)的重要部分,用來(lái)實(shí)現(xiàn)開門關(guān)門的動(dòng)作。繼電器控制模塊原理電路如圖3.2所示:圖3.4繼電器控制模塊3.6聲光報(bào)警裝置P3.3和P3.5和P3.4口分別控制LED和蜂鳴器,程序中將P0.0和P0.1口設(shè)置為同步電平,當(dāng)他們同時(shí)高電平時(shí)三極管9012導(dǎo)通LED亮并且蜂鳴器鳴叫報(bào)警。聲光報(bào)警電路圖如圖3.3所示:圖3.5指示燈模塊第4章系統(tǒng)軟件設(shè)計(jì)本章主要介紹系統(tǒng)軟件部分,主程序由C語(yǔ)言編寫,簡(jiǎn)潔易懂。主程序主要執(zhí)行鍵盤掃描的工作,判斷是否有鍵按下,并判斷執(zhí)行什么動(dòng)作,其中包括數(shù)字鍵和功能鍵,當(dāng)按下功能鍵時(shí)完成所設(shè)定的功能,數(shù)字鍵用來(lái)輸入數(shù)值。4.1編程工具的介紹C語(yǔ)言是計(jì)算機(jī)中廣泛使用的一種高級(jí)語(yǔ)言,在作為單片機(jī)編程語(yǔ)言之前,已經(jīng)應(yīng)用到許多領(lǐng)域。C語(yǔ)言的功能強(qiáng)大、使用簡(jiǎn)單、有豐富的庫(kù)函數(shù)、運(yùn)算速度快、邊場(chǎng)合效率高、可移植性好。本設(shè)計(jì)就是利用C語(yǔ)音完成的程序編寫,下面對(duì)應(yīng)用于單片機(jī)的C51做簡(jiǎn)單的介紹。4.1.1C語(yǔ)言的主要優(yōu)點(diǎn)C語(yǔ)言包含了多種高級(jí)語(yǔ)言的優(yōu)點(diǎn),最主要的優(yōu)點(diǎn)是能于匯編語(yǔ)言兼容,可直接操作硬件端口,這是單片機(jī)應(yīng)用所需要的。C語(yǔ)言是一種結(jié)構(gòu)化的語(yǔ)言,采用函數(shù),循環(huán)語(yǔ)句或條件語(yǔ)句很容易實(shí)現(xiàn)代碼模塊化,使用戶很容易實(shí)現(xiàn)模塊程序結(jié)構(gòu)。此外其源代碼可讀性較強(qiáng),容易理解和編程,并且極大的縮短了源文件的長(zhǎng)度,可大大縮短編程時(shí)間。C語(yǔ)言良好的可移植性可以使相同的功能模塊方便地移植到另一種單片機(jī)上。此外,使用C語(yǔ)言不要求對(duì)指令系統(tǒng)很熟悉,能理解就可以。許多計(jì)算機(jī)都支持對(duì)C語(yǔ)言的應(yīng)用,因而可以方便地在PC機(jī)上直接編寫和調(diào)試部分程序。多數(shù)情況,在PC機(jī)上調(diào)試正常的代碼段可以直接移植到目標(biāo)單片機(jī)上。這樣可以在沒(méi)有硬件的情況下開始編寫和調(diào)試程序。減少在硬件上的調(diào)試,就會(huì)加快開發(fā)過(guò)程。4.1.2C語(yǔ)言使用的工具正如匯編程序是將符號(hào)語(yǔ)言翻譯成機(jī)器碼的工具,C編譯器是將C語(yǔ)言源文件翻譯成臨時(shí)目標(biāo)文件的軟件工具。目前,很多軟件開發(fā)公司都是把C語(yǔ)言用于單片機(jī)的軟件開發(fā),用于80C51系列單片機(jī)的C語(yǔ)言在1985年就已經(jīng)出現(xiàn),稱為C51編譯器,通常簡(jiǎn)稱為C51。本設(shè)計(jì)所使用的程序的集成開發(fā)環(huán)境是Keil,該開發(fā)環(huán)境使用簡(jiǎn)單,容易上手,為調(diào)試工作提供了很多方便。4.1.3C51與C語(yǔ)言的主要不同點(diǎn)由于C語(yǔ)言最初是為通用計(jì)算機(jī)設(shè)計(jì)的,在通用計(jì)算機(jī)中只有一個(gè)程序和數(shù)據(jù)統(tǒng)一尋址的內(nèi)存空間,而在單片機(jī)中,程序保存在ROM中,數(shù)據(jù)存放在RAM中。標(biāo)準(zhǔn)C語(yǔ)言并沒(méi)有提供對(duì)這部分內(nèi)存地址范圍的定義,對(duì)于單片機(jī)中大量的特殊功能寄存器也沒(méi)有定義,此外,標(biāo)準(zhǔn)C語(yǔ)言沒(méi)有處理單片機(jī)中斷的定義。而C51則解決了以上的問(wèn)題,因此,采用C51來(lái)編寫程序。4.2主程序主程序是整個(gè)軟件系統(tǒng)的核心部分,具體步驟如下:當(dāng)用戶按下按鈕open時(shí),可以輸入密碼。此時(shí),用戶可以在小鍵盤輸入密碼,當(dāng)用戶輸入的密碼與預(yù)設(shè)的密碼相同時(shí),就會(huì)在LED數(shù)碼管上顯示密碼輸入正確的提示“OPENED",并且綠燈亮,繼電器完成開鎖功能使黃燈亮。如果輸入密碼錯(cuò)誤,LED數(shù)碼管上顯示“ERROR”,并且紅燈亮提示。如果連續(xù)輸入三次,則由蜂鳴報(bào)警提示密碼輸入錯(cuò)誤的信息,紅燈亮,同時(shí)鎖定系統(tǒng),顯示“CLOSED”,限制一些操作。當(dāng)輸入密碼位數(shù)超過(guò)六位,進(jìn)行鍵盤鎖定。輸入密碼鍵處理流程圖如下:圖4.1輸入密碼鍵處理流程圖修改密碼流程圖如圖所示:圖4.2修改密碼鍵處理流程圖4.3矩陣式鍵盤由于設(shè)計(jì)要求使用矩陣鍵盤,所以本設(shè)計(jì)就采用行列式鍵盤,同時(shí)也能減少鍵盤與單片機(jī)接口時(shí)所占用的I/O線的數(shù)目,在按鍵比較多的時(shí)候,通常采用這樣方法。每一條水平與垂直線的交叉處不相通,而是通過(guò)一個(gè)按鍵來(lái)連通,利用這種行列式矩陣結(jié)構(gòu)只需要N條行線和M條列線,即可組成具有N×M個(gè)按鍵的鍵盤。在這種行列式矩陣鍵盤非鍵盤編碼的單片機(jī)系統(tǒng)中,鍵盤處理程序首先執(zhí)行等待按鍵并確認(rèn)有無(wú)按鍵按下的程序段。當(dāng)確認(rèn)有按鍵按下后,下一步就要識(shí)別哪一個(gè)按鍵按下。對(duì)鍵的識(shí)別通常有兩種方法:一種是常用的逐行掃描查詢法;另一種是速度較快的線反轉(zhuǎn)法。4×4小鍵盤使用掃描的原理來(lái)檢測(cè)按鍵是否被按下,以及被按下的是哪一個(gè)按鍵。鍵盤掃描的原理是每次送出信號(hào)到一列,再利用按鍵信號(hào)返回線檢測(cè)按鍵是否導(dǎo)通,如果按鍵導(dǎo)通,就表示按鍵已按下,然后就可以知道被按下的是哪一個(gè)按鍵。利用這個(gè)原理,先將P1_0~P1_3接到列的位置,再講P1_4~P1_7接到行的位置。接下來(lái)將P1_0~P1_3作為輸入,并將P1_4~P1_7作為輸出,這里的矩陣式鍵盤的特點(diǎn)是不需要外接電壓或低信號(hào)。具體電路圖如圖4.4所示:圖4.2鍵盤掃描示意圖首先將P1_7、P1_6、P1_5、P1_4依次設(shè)為0,即將(P1_7、P1_6、P1_5、P1_4)依次設(shè)為(0111)、(1011)、(1101)、(1110)。用戶按下某個(gè)按鍵之后,因?yàn)楸话聪碌陌存I會(huì)造成導(dǎo)通,所以P1_0~P1_3中會(huì)有一支引腳變成低電平。因此從P1_0~P1_3讀回?cái)?shù)值時(shí),P1_0~P1_3中會(huì)有一個(gè)數(shù)值是0,根據(jù)從P1_0~P1_3所讀回的數(shù)值,就可以判斷按下的是哪一個(gè)按鍵。按鍵的操作面板共計(jì)數(shù)字鍵10個(gè),功能鍵6個(gè)。10個(gè)數(shù)字鍵用來(lái)輸入密碼,另外6個(gè)功能鍵分別是:ESC、ALTER、SAVE、OPEN、ENTER和DEL鍵。如圖4.5所示:圖4.3按鍵操作面板修改密碼時(shí)按下ALTER鍵,顯示“OLD-CODE”必須先輸入正確的舊密碼,然后顯示-CODE才可以輸入新修改的密碼。當(dāng)新修改的密碼輸入之后,系統(tǒng)會(huì)要求用戶重新輸入新修改的密碼再次確認(rèn),如果兩次輸入的密碼相同,密碼修改成功。其中,ENTER鍵用來(lái)啟動(dòng)輸入密碼,當(dāng)按下此鍵時(shí)輸入密碼。如果密碼輸入正確,則繼電器門開。第5章系統(tǒng)調(diào)試系統(tǒng)調(diào)試共分三大部分:硬件調(diào)試,軟件調(diào)試和軟硬件聯(lián)機(jī)調(diào)試。系統(tǒng)的調(diào)試包括硬件調(diào)試和軟件調(diào)試,但硬件調(diào)試和軟件調(diào)試并不能完全分開,一些硬件錯(cuò)誤是在軟件調(diào)試過(guò)程中被發(fā)現(xiàn)和糾正的。調(diào)試一般分為單元調(diào)試和整體調(diào)試兩個(gè)階段。單元調(diào)試是對(duì)單元模塊進(jìn)行單獨(dú)的檢查調(diào)試。(1)萬(wàn)用表測(cè)試。先用萬(wàn)用表復(fù)核目測(cè)中認(rèn)為可以的連線或接點(diǎn),查看它們通斷狀態(tài)是否與設(shè)計(jì)規(guī)定相符。再察看各種電源線與地線之間是否有短路現(xiàn)象,如有則仔細(xì)查處并排除。短路現(xiàn)象一定要在器件安裝及加電查出。如果電源與地之間短路,系統(tǒng)中所有期間或設(shè)備都有可能被毀壞后果十分嚴(yán)重。所以,對(duì)電源與地的處理,在整個(gè)系統(tǒng)調(diào)試及今后的運(yùn)行中都要相當(dāng)小心。(2)加電檢查。當(dāng)給印制板加電時(shí),首先檢查所有插座或器件引腳的電源是否符合要求的電壓值(注意,CPU插座上不該有大于5V的電壓,否則聯(lián)機(jī)時(shí)將損壞仿真器),接地端電壓知是否接近于零,接固定電平的引腳是否正確。然后在斷電狀態(tài)下將芯片逐個(gè)插入印制板上的相應(yīng)插座中,每插入一塊做一遍上述的電壓檢查,特別是檢查電源到地是否短路,這樣就可以確定電源錯(cuò)誤或與地短路發(fā)生在哪塊芯片上。全部芯片插入印制板后,如均未發(fā)現(xiàn)電源或接地錯(cuò)誤,將全部芯片取下,把印制板上除芯片外的其它器件逐個(gè)焊接上去,并反復(fù)做前面的各電源、電壓檢查,避免因某器件的損壞或失效造成對(duì)地短路或其它電源加載錯(cuò)誤。在對(duì)各芯片、器件加電過(guò)程中,還要注意觀察芯片是否出現(xiàn)、火花、過(guò)熱、變色、冒煙、異味等現(xiàn)象,如出現(xiàn)這些現(xiàn)象,應(yīng)立即斷電,仔細(xì)檢查電源加載等情況,找出產(chǎn)生異味的原因并加以解決。此外,也可以在加電期間,利用給邏輯功能簡(jiǎn)單的芯片加載固定輸入電平,利用萬(wàn)用表測(cè)其輸入電平來(lái)判斷該芯片的好壞。聯(lián)機(jī)測(cè)試一般可檢查出硬件設(shè)計(jì)上的邏輯錯(cuò)誤以及模塊軟件的編寫錯(cuò)誤。需要注意的是,聯(lián)機(jī)測(cè)試要負(fù)責(zé)檢查單元模塊能否實(shí)現(xiàn)其預(yù)定的功能指標(biāo),因?yàn)橛袝r(shí)單元模塊雖然能實(shí)現(xiàn)預(yù)定的邏輯功能,但是達(dá)不到預(yù)定的功能指標(biāo)(如測(cè)量精度不夠)。這時(shí),亦需重新設(shè)計(jì)單元模塊。5.1硬件調(diào)試5.1.1元器件的檢測(cè)眾所周知,一個(gè)系統(tǒng)由若干模塊組成,而一個(gè)模塊又由于若干元器件組成,所以在設(shè)計(jì)系統(tǒng)之前要先檢查所使用的元器件是否能正常工作??梢栽诿姘迳舷仍O(shè)計(jì)一個(gè)簡(jiǎn)單電路對(duì)元器件進(jìn)行測(cè)試,如果元器件能正常工作再進(jìn)行實(shí)驗(yàn),這樣可以節(jié)省很多寶貴的時(shí)間。下面對(duì)這次設(shè)計(jì)所用的部分元器件測(cè)試作一簡(jiǎn)單介紹。(1)LED數(shù)碼顯示器:直接給液晶顯示器加上電壓,看液晶屏是否被點(diǎn)亮。(2)蜂鳴器:直接給蜂鳴器加方向正確的電壓,看蜂鳴器是否能正常發(fā)聲。5.1.2模塊電路的檢測(cè)(1)報(bào)警模塊:直接給P3_3和P3_4,P3_5送低電平,看發(fā)光二極管和蜂鳴器能否正常工作。(2)矩陣式鍵盤模塊:按下某一個(gè)按鍵,用萬(wàn)用表檢測(cè)是否有兩個(gè)口導(dǎo)通。(3)顯示模塊:用萬(wàn)用表檢測(cè),給COM端一個(gè)高電平,逐個(gè)給每個(gè)LED的a—g低電平,看是否按預(yù)定要求電量。5.2軟件調(diào)試本系統(tǒng)的軟件系統(tǒng)很龐大,用C和匯編語(yǔ)言來(lái)編寫。單片機(jī)應(yīng)用系統(tǒng)一般都需要開發(fā)系統(tǒng)和開發(fā)軟件來(lái)設(shè)計(jì)。調(diào)試步驟:(1)先獨(dú)立后聯(lián)機(jī):軟件對(duì)被測(cè)參數(shù)進(jìn)行加工處理或作某項(xiàng)事務(wù)處理時(shí),往往是與硬件無(wú)關(guān)的,這樣就可以獨(dú)立進(jìn)行調(diào)試。此時(shí)與硬件無(wú)關(guān)的程序快調(diào)試就可以與硬件調(diào)試同步進(jìn)行,以提高軟件調(diào)試的速度。當(dāng)與硬件無(wú)關(guān)的程序快調(diào)試完成后,可將仿真機(jī)與主機(jī)、用戶系統(tǒng)連接起來(lái),進(jìn)行聯(lián)機(jī)調(diào)試。(2)先分塊后組合:將用戶程序分成與硬件無(wú)關(guān)和依賴于硬件兩大程序快后,程序仍較為龐大的話,常規(guī)的調(diào)試方法是分別對(duì)兩類程序快進(jìn)一步采用分模塊調(diào)試,以提高軟件調(diào)試的有效性。各模塊調(diào)試完后,將相互有關(guān)聯(lián)的程序模塊逐塊組合起來(lái)加以調(diào)試,以解決在程序模塊連接中可能出現(xiàn)的邏輯錯(cuò)誤。(3)先單步后連續(xù):調(diào)試好程序模塊的關(guān)鍵是實(shí)現(xiàn)對(duì)錯(cuò)誤的準(zhǔn)確定位,而發(fā)現(xiàn)程序中錯(cuò)誤的最有效方法是采用單步加斷點(diǎn)運(yùn)行方式調(diào)試程序。這樣就可以精確定位錯(cuò)誤所在,就可以做到調(diào)試的快捷和準(zhǔn)確。一般情況下,單步調(diào)試完成后,還要作連續(xù)運(yùn)行調(diào)試,以防止某些錯(cuò)誤在單步執(zhí)行的情況下被覆蓋。在系統(tǒng)軟件的調(diào)試過(guò)程中,首先將程序分成幾個(gè)程序段分別進(jìn)行調(diào)試,對(duì)于一些獨(dú)立的程序模塊隔離出來(lái)分別進(jìn)行調(diào)試。例如對(duì)鍵盤及數(shù)碼顯示管部分,進(jìn)行單獨(dú)調(diào)試,用單步、斷點(diǎn)和連續(xù)等方法,觀察各數(shù)據(jù)窗口的數(shù)據(jù)是否正常,檢查出程序中出錯(cuò)的地方并加以糾正。此外,還可以借助仿真軟件來(lái)測(cè)試軟件的運(yùn)行情況,在這里我用的是PROTEUS仿真軟件,能非常逼真的看到系統(tǒng)的的運(yùn)行狀況,并能反應(yīng)單片機(jī)各個(gè)口高低電平的變化情況。5.3系統(tǒng)軟硬件聯(lián)機(jī)調(diào)試系統(tǒng)聯(lián)機(jī)調(diào)試是將用戶系統(tǒng)的軟件在其硬件上實(shí)際運(yùn)行,進(jìn)行軟硬件聯(lián)合調(diào)試,從中發(fā)現(xiàn)硬件故障或軟硬件設(shè)計(jì)上的錯(cuò)誤。如果直接將軟硬件連起來(lái)調(diào)試,出現(xiàn)了問(wèn)題就不知道是軟件上還是硬件上的問(wèn)題。所以在聯(lián)機(jī)調(diào)試之前,一定將軟件和硬件分別調(diào)試好,再進(jìn)行聯(lián)機(jī)調(diào)試。當(dāng)各個(gè)部分都經(jīng)過(guò)測(cè)試后沒(méi)有問(wèn)題,就可以將軟硬件聯(lián)機(jī)進(jìn)行系統(tǒng)調(diào)試,這樣出現(xiàn)的問(wèn)題就會(huì)比較少,同時(shí)也能減少調(diào)試的難度。第6章焊接技術(shù)先將準(zhǔn)備好的元件插入印刷電路板規(guī)定好的位置上,在元件與印刷電路板銅箔的連接點(diǎn)上,涂上少許焊劑,待電烙鐵加熱后用烙鐵頭的刃口上些適量的焊錫,上的焊錫多少要根據(jù)焊點(diǎn)的大小來(lái)決定。焊接時(shí),要將烙鐵頭的刃口接觸焊點(diǎn)與元件引線,根據(jù)焊點(diǎn)的形狀作一定的移動(dòng),使流動(dòng)的焊錫布滿焊點(diǎn)并滲入被焊物的縫隙,接觸時(shí)間大約在3-5秒左右,然后拿開電烙鐵。拿開電烙鐵的時(shí)間,方向和速度,決定了焊接的質(zhì)量與外觀的正確的方法是,在將要離開焊點(diǎn)時(shí),快速的將電烙鐵往回帶一下,后迅速離開焊點(diǎn),這樣焊出的焊點(diǎn)既光亮,圓滑,又不出毛刺。在焊接時(shí),焊接時(shí)間不要太長(zhǎng),免得把元件燙壞,但亦不要太短,造成假焊或虛焊。焊接結(jié)束后,用列子夾住被焊元件適當(dāng)用力拉撥一下,檢查元件是否被焊牢。如果發(fā)現(xiàn)有松動(dòng)現(xiàn)象,必須重新進(jìn)行焊接。第7章總結(jié)7.1心得體會(huì)課程設(shè)計(jì)已經(jīng)完成,回想兩周來(lái)的努力,真可謂百感交集,受益匪淺。電子密碼鎖不算是非常難的題目,所以,我們?cè)诨A(chǔ)功能的實(shí)現(xiàn)上盡量的多加一些附加的功能,使整個(gè)系統(tǒng)更加完善。雖然談不上有多復(fù)雜,但也會(huì)遇到一些問(wèn)題,值得欣慰的是通過(guò)一遍一遍的檢查、調(diào)試、修改終于使其完成了基本功能。在此過(guò)程中,我們學(xué)到了很多書本中永遠(yuǎn)學(xué)不到的知識(shí)。這些知識(shí)對(duì)于以后的學(xué)習(xí)與工作將會(huì)有巨大的幫助。心得一:(。。。的心得體會(huì))兩周的實(shí)習(xí)雖然很短,但我學(xué)到的知識(shí)確實(shí)一個(gè)學(xué)期的理論學(xué)習(xí)所不能替代的。在實(shí)習(xí)期間,我們自己動(dòng)手完成了軟硬件部分的設(shè)計(jì),連接。在這個(gè)過(guò)程中,我經(jīng)歷了難——易——難。剛聽說(shuō)要課程設(shè)計(jì),準(zhǔn)備選擇設(shè)計(jì)題目時(shí),覺(jué)得這是一個(gè)很難的任務(wù),認(rèn)為我們不可能獨(dú)立作出東西來(lái);當(dāng)翻閱大量書籍,準(zhǔn)備定下課題,并找到幾個(gè)設(shè)計(jì)方案時(shí),又突然覺(jué)得沒(méi)有想象中那么難,于是,眼高手低,不想做簡(jiǎn)單的交通燈,選擇了電子密碼鎖,信心滿滿的認(rèn)為能完成的很好。當(dāng)我們開始動(dòng)手設(shè)計(jì)時(shí),無(wú)論是軟件方面還是硬件方面,問(wèn)題不斷,困難重重。為了更好的完成設(shè)計(jì),我們翻閱大量書籍,學(xué)習(xí)了每個(gè)元器件的引腳,功能等。什么時(shí)候需要放大,什么時(shí)候片選,應(yīng)該相應(yīng)的加哪些元器件,如何能使顯示器穩(wěn)定等等問(wèn)題都耗費(fèi)我們大量時(shí)間和精力來(lái)解決,但在解決過(guò)程中,我們學(xué)到了實(shí)際中應(yīng)用的真知識(shí)。通過(guò)這次實(shí)習(xí),我總結(jié)了以下幾點(diǎn)心得:1、仔細(xì)研究課題:只有充分了解課題要求,才能做出符合條件的作品。這是設(shè)計(jì)的基礎(chǔ)。2、不懂就問(wèn),多問(wèn)多得:因?yàn)橹皼](méi)有相應(yīng)的學(xué)習(xí)和訓(xùn)練,所以遇到的不懂得問(wèn)題特別多,這時(shí)如果單靠自己死“鉆”,效率極低。我周圍有幾個(gè)在實(shí)驗(yàn)室的同學(xué),我經(jīng)常讓他們幫我講解一些知識(shí),同時(shí)也常常請(qǐng)教老師,聽取他的意見(jiàn)。問(wèn)題大多能得到有效解決。在問(wèn)的過(guò)程中,也是我的學(xué)習(xí)過(guò)程,問(wèn)的越多,你收獲就越多。3、建立信心:起初,我們的密碼鎖最大的問(wèn)題就是顯示問(wèn)題:管子亮度很暗,只有在較黑的環(huán)境下才能看到。為此,我們采用過(guò):加三極管放大,加244電流驅(qū)動(dòng),加非門等許多方法,但都不見(jiàn)效,而且好像越弄越糟,自信心受損,情況越來(lái)越糟。當(dāng)我們重拾信心,下定決心要把它完成,做好時(shí),經(jīng)過(guò)努力問(wèn)題得到了有效地解決。4、發(fā)散思維:不要被書本上的死知識(shí)所限定,在利用所學(xué)到的理論知識(shí)的同時(shí),發(fā)散你的思維,活學(xué)活用才能真正掌握這門課程。通過(guò)此次實(shí)習(xí),使我對(duì)單片機(jī)及相關(guān)知識(shí)有了更進(jìn)一步的了解,也使我的動(dòng)手能力提高很多。雖然只有兩周,但學(xué)到的東西卻讓我受益終身。心得二:(。。。的心得)經(jīng)過(guò)這次課程設(shè)計(jì),讓我明白了理論學(xué)習(xí)與實(shí)踐實(shí)現(xiàn)之間的巨大差異,要想實(shí)現(xiàn)具體的內(nèi)容就必須以正確的理論知識(shí)為指導(dǎo),只具備純碎的理論知識(shí)也是不夠的,因?yàn)樵趯?shí)踐實(shí)現(xiàn)的過(guò)程中的不定干擾性因素太多,實(shí)踐起來(lái)出現(xiàn)了不少的問(wèn)題,在提出問(wèn)題和解決問(wèn)題的過(guò)程中,給我的學(xué)習(xí)和生活都帶來(lái)了很深刻的影響,現(xiàn)歸納如下:(1)要仔細(xì)分析題目確定設(shè)計(jì)方案。在分析題目的過(guò)程中一定要多查資料多聽取老師同學(xué)的意見(jiàn),盡量的少走彎路。對(duì)所選的題目得有大概的了解,在這樣一個(gè)基礎(chǔ)上,綜合已有的資料來(lái)更透徹的分析題目。然后再在此基礎(chǔ)上提出適合該題目的設(shè)計(jì)方案。俗話說(shuō)有的放矢,設(shè)計(jì)方案對(duì)于設(shè)計(jì)是至關(guān)重要的,合理的方案不僅給以后的設(shè)計(jì)帶來(lái)很大的方便,也能使結(jié)果更好一點(diǎn)。(2)要注意查詢資料的方式。信息時(shí)代資料滿天飛,上網(wǎng)查資料是必不可少的,但是到圖書館去也有其可取之處的??傊还芡ㄟ^(guò)哪種方式查的資料都是有利用價(jià)值的,要一一記錄下來(lái)以備后用,這也是整個(gè)設(shè)計(jì)的基礎(chǔ)。(3)要注意學(xué)習(xí)能力的提高。遇到了問(wèn)題并且分析了問(wèn)題,然后就是如何解決問(wèn)題了,這個(gè)時(shí)候?qū)W習(xí)能力顯得特別的重要。如何通過(guò)自己的努力把不明白的東西搞明白,這也是學(xué)習(xí)能力的體現(xiàn),從中也體味到了學(xué)習(xí)的樂(lè)趣。(4)要多動(dòng)手。很多事情想起來(lái)是一回事真正做起來(lái)就并不是那么簡(jiǎn)單。隨著設(shè)計(jì)的逐步進(jìn)行,諸多問(wèn)題也就暴露了出來(lái),這點(diǎn)我深有體會(huì)。所以在平時(shí)就應(yīng)該注意培養(yǎng)自己的動(dòng)手能力,實(shí)踐出真知。(5)要勤學(xué)好問(wèn)。敢于請(qǐng)教,樂(lè)于助人。要多向老師、同學(xué)請(qǐng)教,同時(shí)也要樂(lè)于幫助別人,互相探討,互相學(xué)習(xí),這樣才能很快的進(jìn)步。以上就是我的一些心得,在實(shí)際動(dòng)手的過(guò)程中總比想象的要困難的多。在設(shè)計(jì)過(guò)程中,我通過(guò)查閱大量有關(guān)資料,向老師請(qǐng)教,與同學(xué)互相交流,使自己學(xué)到了不少知識(shí),也收獲了很多,充分體會(huì)到了在學(xué)習(xí)過(guò)程的艱難和成功的喜悅。在課程設(shè)計(jì)過(guò)程中我學(xué)到了許多東西,也培養(yǎng)了我獨(dú)立工作的能力,樹立了信心,這也對(duì)今后的學(xué)習(xí)、工作、生活有重要的影響。通過(guò)這次的課程設(shè)計(jì)不僅使我對(duì)單片機(jī)有了進(jìn)一步的理解和學(xué)習(xí),也使我感到還有很大的不足。當(dāng)然,本次課設(shè)還存在一些缺點(diǎn),所設(shè)計(jì)的內(nèi)容也還存在一些不足,還懇請(qǐng)老師給與批評(píng)和指正。最后,再次感謝老師不辭辛苦的精心指導(dǎo),感謝我們組員之間的相互協(xié)作,相互幫助。心得三:(。。。的心得)今天我們完成并提前做好了自選題目的設(shè)計(jì),本次單片機(jī)課程設(shè)計(jì)的課題是4×4鍵盤及8位數(shù)碼管顯示構(gòu)成的電子密碼鎖的實(shí)現(xiàn)與運(yùn)用。通過(guò)一周的努力,基本達(dá)到了預(yù)期的功能,密碼的輸入、刪除,密碼的保存、改寫,錯(cuò)誤報(bào)警、自鎖等。本次設(shè)計(jì)我們?nèi)唤M員一起計(jì)劃、談?wù)?、?shí)踐,但由于本人基礎(chǔ)知識(shí)掌握的不夠牢固,在設(shè)計(jì)時(shí)發(fā)揮的作用有限,但我抱著學(xué)習(xí)的態(tài)度積極參與,從中也學(xué)習(xí)到了很多理論與實(shí)踐的知識(shí),比如LED數(shù)碼管如何通過(guò)MCS-51單片機(jī)實(shí)現(xiàn)控制、電焊時(shí)應(yīng)該注意的常識(shí)、元器件組裝時(shí)如何合理布局等等當(dāng)然設(shè)計(jì)過(guò)程中也難免遇到各種各樣的問(wèn)題,但有老師的耐心講解與幫助,基本能得以解決。在設(shè)計(jì)時(shí)我們相應(yīng)遇到了硬件軟件等問(wèn)題,比如插槽的選擇會(huì)影響數(shù)碼管顯示的穩(wěn)定性,LED共陰共陽(yáng)選擇相應(yīng)的問(wèn)題,程序的輸入與存儲(chǔ),還有其他的一些問(wèn)題。我們組設(shè)計(jì)的密碼鎖在顯示上遇到了問(wèn)題,數(shù)碼管顯示亮度不夠,在老師的指導(dǎo)下經(jīng)過(guò)一系列改進(jìn)終于達(dá)到了預(yù)期的效果,并且加入了一些擴(kuò)展功能,有密碼位數(shù)鎖定、密碼輸入保密措施、還有老師建議的開鎖控制脈沖改進(jìn)。經(jīng)過(guò)這些設(shè)計(jì)與改進(jìn),我們也認(rèn)識(shí)到了無(wú)論是在生活還是工作中遇到問(wèn)題是難免的,關(guān)鍵是如何從解決問(wèn)題的過(guò)程中提高知識(shí)儲(chǔ)備與排除問(wèn)題的能力,這些都是我們今后學(xué)習(xí)工作不可或缺的,并且我在設(shè)計(jì)的過(guò)程中認(rèn)識(shí)到自己的不足,好多知識(shí)需要扎實(shí)的基礎(chǔ)才能更好的運(yùn)用,實(shí)踐是檢驗(yàn)真理的唯一方法,多動(dòng)手做,哪怕是從點(diǎn)亮一只指示燈開始,也要?jiǎng)邮秩プ觯駝t就會(huì)永遠(yuǎn)停留在書本上。同時(shí),今后也要努力學(xué)習(xí)掌握專業(yè)知識(shí),方便今后工作與學(xué)習(xí)。7.2系統(tǒng)存在的問(wèn)題和改進(jìn)方案本系統(tǒng)的缺陷有:(1)系統(tǒng)模塊直接由排線連接,存在接觸不良的現(xiàn)象,使LED有時(shí)產(chǎn)生亂碼現(xiàn)象。解決方案:將模塊之間焊接起來(lái),使系統(tǒng)更加穩(wěn)定。(2)本次系統(tǒng)電路板均由手工焊接而成,故對(duì)整個(gè)系統(tǒng)的穩(wěn)定性有著很大的考驗(yàn)。(3)LED數(shù)碼管有功耗大、體積大,顯示內(nèi)容單調(diào)的缺點(diǎn)。解決方法:LCD液晶屏顯示模塊與數(shù)碼管相比,有功耗小、體積小、顯示內(nèi)容豐富、畫面美觀、超薄輕巧、使用方便等特點(diǎn)。7.3設(shè)計(jì)中遇到的問(wèn)題和解決方法設(shè)計(jì)中遇到的問(wèn)題:數(shù)碼管顯示不完全解決方法:顯示不完全的原因是硬件焊接存在使其不穩(wěn)定,由于我們之前的焊接方法不理想,本身存在不穩(wěn)定問(wèn)題,為此,我們重新焊了數(shù)碼顯示部分,在數(shù)碼管底部采用芯片底座。因?yàn)樾酒鬃鶅?nèi)部有彈簧,會(huì)增強(qiáng)管子連接部分的穩(wěn)定度。數(shù)碼管的亮度不夠,很暗解決方法:我們嘗試過(guò):加電流驅(qū)動(dòng)器244,加三極管,但由于一起驅(qū)動(dòng)8個(gè)共陰極數(shù)碼管所需電流太大,仍不見(jiàn)效;最終我們選擇了共陽(yáng)極的LED數(shù)碼管,并修改了相應(yīng)程序,亮度得以完善。蜂鳴器的響聲非常小解決方法:將蜂鳴器所接電阻換為較小阻值的電阻。參考文獻(xiàn)[1]晁陽(yáng).單片機(jī)MCS-51原理及應(yīng)用開發(fā)教程[M].清華大學(xué)出版社,2007.10[2]蔡朝洋.單片機(jī)控制實(shí)習(xí)與專題制作[M].北京:北京航空航天大學(xué)出版社,2006.[3]周立功.增強(qiáng)型80C51單片機(jī)速成與實(shí)踐[M].北京:北京航空航天大學(xué)出版社,2003.[4]惠仇.手把手教你51單片機(jī)[M].北京:電子工業(yè)出版社,2009.1[5]閻石.數(shù)字電子技術(shù)基礎(chǔ)[M].北京:高等教育出版社,2006.5.附錄一:系統(tǒng)電路總圖附錄二:元器件清單:元件清單元件名元件數(shù)量89C52RC單片機(jī)一個(gè)共陽(yáng)極LED數(shù)碼管八個(gè)按鍵開關(guān)十六個(gè)9012三極管八個(gè)1K電阻八個(gè)40腳芯片底座兩個(gè)ATMLU836芯片一個(gè)100歐電阻四個(gè)個(gè)9013三極管一個(gè)3906三極管三個(gè)繼電器一個(gè)蜂鳴器一個(gè)發(fā)光二極管三個(gè)排針若干導(dǎo)線若干焊接電路板四塊10K電阻兩個(gè)電池盒一個(gè)排線若干八腳芯片底座一個(gè)附錄三:軟件程序#include"intrins.h"#include"reg52.h"#include"top.h"#include"keyscan.h"#include"leddisp.h"#include"dydisp.h"#include"test.h"http://uchartemp1[8],temp2[8];voidmain(){num=16;su=1;start: hel();loop:cddisp(4);dydisp();if(esc==1){esc=0;count=0;gotostart;}num1=next();while(num1){if(esc==1){esc=0;count=0;gotostart;}j=chang();if(j==1){ok=0;su=0;delay(500);su=1;ok=1;break;}}while(!num1){if(esc==1){if(num2==2){while(1){disp(CLOSED,6);}}er=1;esc=0;num2++;break;}}gotoloop;}/*INTRINS.HIntrinsicfunctionsforC51.Copyright(c)1988-2004KeilElektronikGmbHandKeilSoftware,Inc.Allrightsreserved.*/#ifndef__INTRINS_H__#define__INTRINS_H__externvoid_nop_(void);externbit_testbit_(bit);externunsignedchar_cror_(unsignedchar,unsignedchar);externunsignedint_iror_(unsignedint,unsignedchar);externunsignedlong_lror_(unsignedlong,unsignedchar);externunsignedchar_crol_(unsignedchar,unsignedchar);externunsignedint_irol_(unsignedint,unsignedchar);externunsignedlong_lrol_(unsignedlong,unsignedchar);externunsignedchar_chkfloat_(float);externvoid_push_(unsignedchar_sfr);externvoid_pop_(unsignedchar_sfr);#endif/*REG52.HHeaderfileforgeneric80C52and80C32microcontroller.Copyright(c)1988-2002KeilElektronikGmbHandKeilSoftware,Inc.Allrightsreserved.*/#ifndef__REG52_H__#define__REG52_H__/*BYTERegisters*/sfrP0=0x80;sfrP1=0x90;sfrP2=0xA0;sfrP3=0xB0;sfrPSW=0xD0;sfrACC=0xE0;sfrB=0xF0;sfrSP=0x81;sfrDPL=0x82;sfrDPH=0x83;sfrPCON=0x87;sfrTCON=0x88;sfrTMOD=0x89;sfrTL0=0x8A;sfrTL1=0x8B;sfrTH0=0x8C;sfrTH1=0x8D;sfrIE=0xA8;sfrIP=0xB8;sfrSCON=0x98;sfrSBUF=0x99;/*8052Extensions*/sfrT2CON=0xC8;sfrRCAP2L=0xCA;sfrRCAP2H=0xCB;sfrTL2=0xCC;sfrTH2=0xCD;/*BITRegisters*//*PSW*/sbitCY=PSW^7;sbitAC=PSW^6;sbitF0=PSW^5;sbitRS1=PSW^4;sbitRS0=PSW^3;sbitOV=PSW^2;sbitP=PSW^0;//8052only/*TCON*/sbitTF1=TCON^7;sbitTR1=TCON^6;sbitTF0=TCON^5;sbitTR0=TCON^4;sbitIE1=TCON^3;sbitIT1=TCON^2;sbitIE0=TCON^1;sbitIT0=TCON^0;/*IE*/sbitEA=IE^7;sbitET2=IE^5;//8052onlysbitES=IE^4;sbitET1=IE^3;sbitEX1=IE^2;sbitET0=IE^1;sbitEX0=IE^0;/*IP*/sbitPT2=IP^5;sbitPS=IP^4;sbitPT1=IP^3;sbitPX1=IP^2;sbitPT0=IP^1;sbitPX0=IP^0;/*P3*/sbitRD=P3^7;sbitWR=P3^6;sbitT1=P3^5;sbitT0=P3^4;sbitINT1=P3^3;sbitINT0=P3^2;sbitTXD=P3^1;sbitRXD=P3^0;/*SCON*/sbitSM0=SCON^7;sbitSM1=SCON^6;sbitSM2=SCON^5;sbitREN=SCON^4;sbitTB8=SCON^3;sbitRB8=SCON^2;sbitTI=SCON^1;sbitRI=SCON^0;/*P1*/sbitT2EX=P1^1;//8052onlysbitT2=P1^0;//8052only/*T2CON*/sbitTF2=T2CON^7;sbitEXF2=T2CON^6;sbitRCLK=T2CON^5;sbitTCLK=T2CON^4;sbitEXEN2=T2CON^3;sbitTR2=T2CON^2;sbitC_T2=T2CON^1;sbitCP_RL2=T2CON^0;#endif#ifndef_top_H__#define__top_H__#include<intrins.h>#include<reg52.h>#defineuintunsignedint#defineucharunsignedcharsbitok=P3^3;sbiter=P3^5;sbitsu=P3^4;ucharcodeCODE[8]={0xc0,0xc7,0xa1,0xbf,0xc6,0xc0,0xa1,0x86};ucharcodeHELLO[]={21,21,17,14,18,18,0,21};ucharcodeOPENED[]={0,19,14,20,14,13};ucharcodeCLOSED[]={12,18,0,5,14,13};ucharcodeERROR[]={14,10,10,0,10};ucharmin[8]={1,2,3,4,5,6};ucharfill[8]={0,0,0,0,0,0,0,0};uchartemp1[8],temp2[8],temp3[8];ucharnum,temp,num1,num2,i,j,count,keyflag;ucharesc,alter,save,del,ent,open;ucharcodeleddisp[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xc8,0x89,0x47,0x8c,0xc8,0xff};voiddelay(uintz)//延時(shí)程序//{ uintx,y; for(x=z;x>0;x--) for(y=110;y>0;y--);}ucharkeyscan();#endif#ifndef_keyscan_H__#define__keyscan_H__ucharkeyscan()//鍵盤掃描{ P1=0xfe; temp=P1; temp=temp&0xf0; while(temp!=0xf0) { delay(20); temp=P1; temp=temp&0xf0; while(temp!=0xf0) { temp=P1; switch(temp) { case0xee:num=7;su=0;break; case0xde:num=8;su=0;break; case0xbe:num=9;su=0;break; case0x7e:num=15;su=0;esc=1;break;default:break; }while(temp!=0xf0) { temp=P1; temp=temp&0xf0; } } } P1=0xfd; temp=P1; temp=temp&0xf0; while(temp!=0xf0) { delay(20); temp=P1; temp=temp&0xf0; while(temp!=0xf0) { temp=P1; switch(temp) { case0xed:num=4;su=0;break; case0xdd:num=5;su=0;break; case0xbd:num=6;su=0;break; case0x7d:num=14;su=0;alter=1;break;default:break; }while(temp!=0xf0) { temp=P1; temp=temp&0xf0; } } } P1=0xfb; temp=P1; temp=temp&0xf0; while(temp!=0xf0) { delay(20); temp=P1; temp=temp&0xf0; while(temp!=0xf0) { temp=P1; switch(temp) { case0xeb:num=1;su=0;break; case0xdb:num=2;su=0;break; case0xbb:num=3;su=0;break; case0x7b:num=12;su=0;save=1;break;default:break; }while(temp!=0xf0) { temp=P1; temp=temp&0xf0; } } } P1=0xf7; temp=P1; temp=temp&0xf0; while(temp!=0xf0) { delay(20); temp=P1; temp=temp&0xf0; while(temp!=0xf0) { temp=P1; switch(temp) { case0xe7:num=0;su=0;break; case0xd7:num=10;su=0;del=1;break; case0xb7:num=11;su=0;ent=1;break; case0x77:num=12;su=0;open=1;break;default:break; } while(temp!=0xf0) { temp=P1; temp=temp&0xf0; }}}su=1;returnnum;}#endif#ifndef_leddisp_H__#define__leddisp_H__voiddisp(uchar*wd,intz){intk,n=0x01; for(k=0;k<z;k++) { P2=~n; P0=leddisp[wd[k]];delay(3);n=n<<1; }}voidhel()//歡迎界面//{er=1;ok=1;while(1){disp(HELLO,8); num=keyscan();if(open==1){open=0;break;}}}voidcddisp(ucharz)//密碼輸入界面//{while(1){ P2=0xfe;for(i=z;i<8;i++){P0=CODE[i];delay(3);P2=_crol_(P2,1);}num=keyscan();if((num<=9&&num>=0)||esc==1)break;}}#endif#ifndef__dydisp_H__#define__dydisp_H__voidmove(ucharwd[]){ uchark;for(

溫馨提示

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