




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、摘 要 隨著科技和人們的生活水平的提高,如何實(shí)現(xiàn)家庭防盜這一問(wèn)題也變的尤其的突出,傳統(tǒng)機(jī)械鎖由于構(gòu)造簡(jiǎn)單,被撬事件屢見(jiàn)不鮮;電子鎖由于其保密性高,使用靈活性好,安全系數(shù)高,受到了廣大用戶的青睞。 單片機(jī)也被稱微控器,是因?yàn)樗钤绫挥迷诠I(yè)控制領(lǐng)域。單片機(jī)是靠程序運(yùn)行的,并且可以修改。 本設(shè)計(jì)系統(tǒng)主機(jī)采用8052單片機(jī),MCS-51單片機(jī)的程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器的地址空間是相互獨(dú)立的,而且程序存儲(chǔ)器一般為ROM或EPROM,只能讀出不能寫入。擴(kuò)展用的程序存儲(chǔ)器芯片大多采用EPROM芯片,最大可擴(kuò)展到64K字節(jié)。該設(shè)計(jì)使用矩陣鍵盤輸入。LED數(shù)碼管顯示輸入密碼,用74HC245驅(qū)動(dòng)數(shù)碼管發(fā)光顯示數(shù)
2、碼,LCD1602控制顯示。密碼正確,二極管發(fā)光。輸入密碼錯(cuò)誤次數(shù)超過(guò)三次系統(tǒng)報(bào)警,蜂鳴器發(fā)出報(bào)警音。關(guān)鍵詞:?jiǎn)纹瑱C(jī) 軟件電路 硬件電路 目 錄第1章 設(shè)計(jì)要求.1第二章 系統(tǒng)組成及工作原理.2第三章 硬件電路設(shè)計(jì).3 3.1 STC89C52單片機(jī)的介紹.3 3.2單片機(jī)最小系統(tǒng).5 3.3鍵盤電路設(shè)計(jì).6 3.4 LCD1602顯示電路.8 3.5開(kāi)鎖電路.11 3.6報(bào)警電路.11 3.7仿真效果圖.12第四章 軟件設(shè)計(jì).13 4.1 PROTEUS仿真軟件.13 4.2 KEIL編譯設(shè)計(jì).15 4.3 普中ISP自動(dòng)下載軟件.16 4.4程序流程圖.18 第5章 設(shè)計(jì)、調(diào)試和測(cè)試結(jié)果與
3、分析.19第6章 設(shè)計(jì)小結(jié).23參考文獻(xiàn).24附錄.25第一章 設(shè)計(jì)要求 采用單片機(jī)、LCD等芯片,設(shè)計(jì)電子密碼鎖,能隨時(shí)修改密碼,具有防多次試探功能,連續(xù)輸入密碼達(dá)到一定次數(shù),發(fā)出光聲報(bào)警密碼輸入錯(cuò)誤時(shí)有報(bào)警功能,連續(xù)輸入3次錯(cuò)誤,鍵盤自鎖,等待管理解鎖;開(kāi)鎖后或修改密碼后可以選擇退出,返回開(kāi)鎖前狀態(tài)。掌握Proteus軟件的基本應(yīng)用,用于設(shè)計(jì)與仿真,需要用PROTEUS軟件繪制電路原理圖及局部原理圖;掌握單片機(jī)編程語(yǔ)言,可選用匯編語(yǔ)言或C語(yǔ)言;本次課程設(shè)計(jì)是要設(shè)計(jì)一個(gè)數(shù)字密碼鎖,設(shè)計(jì)要求如下:1、設(shè)計(jì)一個(gè)數(shù)字式密碼鎖。 2、密碼由4 6位數(shù)字組成。 3、密碼相符開(kāi)鎖,三次不符報(bào)警。 4、密
4、碼可以更新。第二章 系統(tǒng)組成及工作原理復(fù)位電路鍵盤控制 電路開(kāi)鎖電路超次報(bào)警電路LCD顯示電路 STC89 C52圖2.1 系統(tǒng)總設(shè)計(jì)圖 該電子密碼鎖采用4*4鍵盤作為輸入信號(hào),輸入到作為主機(jī)STC89C52單片機(jī),通過(guò)軟件編程的程序,做出判斷,結(jié)果再經(jīng)1602LCD液晶顯示器作為輸出顯示。晶振電路提供單片機(jī)運(yùn)行脈沖。l STC89C52單片機(jī):STC89C52是一種低功耗、高性能CMOS8位微控制器,具有 8K 在系統(tǒng)可編程Flash存儲(chǔ)器。具有以下標(biāo)準(zhǔn)功能: 8k字節(jié)Flash,512字節(jié)RAM, 32 位I/O 口線,看門狗定時(shí)器,內(nèi)置4KB EEPROM,復(fù)位電路,3個(gè)16 位定時(shí)器/
5、計(jì)數(shù)器,4個(gè)外部中斷,一個(gè)7向量4級(jí)中斷結(jié)構(gòu)(兼容傳統(tǒng)51的5向量2級(jí)中斷結(jié)構(gòu)),全雙工串行口。l 復(fù)位電路:復(fù)位電路,就是利用它把電路恢復(fù)到起始狀態(tài)。就像計(jì)算器的清零按鈕的作用一樣,以便回到原始狀態(tài),重新進(jìn)行計(jì)算。使CPU及系統(tǒng)各部件處于確定的初始狀態(tài)。l 鍵盤控制電路:在此次的設(shè)計(jì)中,輸入密碼,修改密碼等都需要通過(guò)鍵盤來(lái)實(shí)現(xiàn),鍵盤采用矩陣鍵盤,這樣可以減少I/O口的使用。l LCD顯示電路:本次實(shí)驗(yàn)采用的是LCD1602液晶顯示,好處是相比于LED數(shù)碼管顯示方便許多,也比較符合消費(fèi)者的要求。l 超次報(bào)警電路:密碼箱最重要的是保護(hù)消費(fèi)者的財(cái)產(chǎn)及隱私,若非本人操作很難一下子輸對(duì)密碼,本次設(shè)計(jì)是
6、三次輸入密碼不正確蜂鳴器會(huì)響,模擬報(bào)警的裝置。l 開(kāi)門電路:輸對(duì)密碼之后,繼電器吸合,小燈點(diǎn)亮,模擬開(kāi)保險(xiǎn)箱的動(dòng)作。第3章 硬件電路設(shè)計(jì)3.1 STC89C52單片機(jī)的介紹 STC89C52是一種低功耗、高性能CMOS8位微控制器,具有8K 在系統(tǒng)可編程Flash 存儲(chǔ)器。使用Atmel 公司高密度非易失性存儲(chǔ)器技術(shù)制造,與工業(yè)80C51 產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲(chǔ)器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8 位CPU 和在系統(tǒng)可編程Flash,使得STC89C52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。STC89C52具有以下標(biāo)準(zhǔn)功能: 8
7、k字節(jié)Flash,256字節(jié)RAM,32 位I/O 口線,看門狗定時(shí)器,2 個(gè)數(shù)據(jù)指針,三個(gè)16 位定時(shí)器/計(jì)數(shù)器,一個(gè)6向量2級(jí)中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時(shí)鐘電路。另外,STC89C52 可降至0Hz 靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。圖3.1 STC89C52功能引腳圖l VCC: 電源l GND: 地l P0口:P0口是一個(gè)8位漏極開(kāi)路的雙向I/O口。作為輸出口,每位能驅(qū)動(dòng)8個(gè)TTL邏輯電平。對(duì)P0端口寫“1”時(shí),引腳用作高阻抗輸入。當(dāng)訪問(wèn)外部程序和數(shù)據(jù)存儲(chǔ)器時(shí),P0口也被作
8、為低8位地址/數(shù)據(jù)復(fù)用。在這種模式下,P0具有內(nèi)部上拉電阻。在flash編程時(shí),P0口也用來(lái)接收指令字節(jié);在程序校驗(yàn)時(shí),輸出指令字節(jié)。程序校驗(yàn)時(shí),需要外部上拉電阻。l P1口:P1 口是一個(gè)具有內(nèi)部上拉電阻的8 位雙向I/O 口,p1 輸出緩沖器能驅(qū)動(dòng)4 個(gè)TTL邏輯電平。對(duì)P1 端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。此外,P1.0和P1.2分別作定時(shí)器/計(jì)數(shù)器2的外部計(jì)數(shù)輸入(P1.0/T2)和時(shí)器/計(jì)數(shù)器2的觸發(fā)輸入(P1.1/T2EX),在flash編程和校驗(yàn)時(shí),P1口接收低8位地址字節(jié)。
9、l P2口:P2 口是一個(gè)具有內(nèi)部上拉電阻的8 位雙向I/O 口,P2 輸出緩沖器能驅(qū)動(dòng)4 個(gè)TTL 邏輯電平。對(duì)P2 端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。在訪問(wèn)外部程序存儲(chǔ)器或用16位地址讀取外部數(shù)據(jù)存儲(chǔ)器(例如執(zhí)行MOVX DPTR)時(shí),P2 口送出高八位地址。在這種應(yīng)用中,P2 口使用很強(qiáng)的內(nèi)部上發(fā)送1。在使用8位地址(如MOVX RI)訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),P2口輸出P2鎖存器的內(nèi)容。在flash編程和校驗(yàn)時(shí),P2口也接收高8位地址字節(jié)和一些控制信號(hào)。l P3口:P3口是一個(gè)具有內(nèi)部上
10、拉電阻的8位雙向I/O口,P2輸出緩沖器能驅(qū)動(dòng)4個(gè)TTL邏輯電平。對(duì)P3端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。P3口亦作為STC89C52特殊功能(第二功能)使用,如表3-1所示。在flash編程和校驗(yàn)時(shí),P3口也接收一些控制信號(hào)。 表3-1 P3口的第二功能表 P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 RXD TXD INT0 INT1 T0 T1 WR RDl RST: 復(fù)位輸入。晶振工作時(shí),RST腳持續(xù)2 個(gè)機(jī)器周期高電平將使單片機(jī)復(fù)位??撮T狗計(jì)時(shí)完成
11、后,RST 腳輸出96 個(gè)晶振周期的高電平。l ALE/PROG:地址鎖存控制信號(hào)(ALE)是訪問(wèn)外部程序存儲(chǔ)器時(shí),鎖存低8 位地址的輸出脈沖。在flash編程時(shí),此引腳(PROG)也用作編程輸入脈沖。在一般情況下,ALE 以晶振六分之一的固定頻率輸出脈沖,可用來(lái)作為外部定時(shí)器或時(shí)鐘使用。l PSEN:外部程序存儲(chǔ)器選通信號(hào)(PSEN)是外部程序存儲(chǔ)器選通信號(hào)。 當(dāng)STC89C52從外部程序存儲(chǔ)器執(zhí)行外部代碼時(shí),PSEN在每個(gè)機(jī)器周期被激活兩次,而在訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),PSEN將不被激活。l EA/VPP:訪問(wèn)外部程序存儲(chǔ)器控制信號(hào)。 為使能從0000H 到FFFFH的外部程序存儲(chǔ)器讀取指令
12、,EA必須接GND。為了執(zhí)行內(nèi)部程序指令,EA應(yīng)接VCC。在flash編程期間,EA也接12伏VPP電壓。l XTAL1:振蕩器反相放大器和內(nèi)部時(shí)鐘發(fā)生電路的輸入端。l XTAL2:振蕩器反相放大器的輸出端。3.2單片機(jī)最小系統(tǒng)的設(shè)計(jì) 單片機(jī)的最小系統(tǒng)是由組成單片機(jī)系統(tǒng)必需的一些元件構(gòu)成的,除了單片機(jī)之外,還需要包括電源供電電路、時(shí)鐘電路、復(fù)位電路。 1、時(shí)鐘電路 單片機(jī)工作時(shí),從取指令到譯碼再進(jìn)行微操作,必須在時(shí)鐘信號(hào)控制下才能有序地進(jìn)行,時(shí)鐘電路就是為單片機(jī)工作提供基本時(shí)鐘的。單片機(jī)的時(shí)鐘信號(hào)通常有兩種產(chǎn)生方式:內(nèi)部時(shí)鐘方式和外部時(shí)鐘方式。 內(nèi)部時(shí)鐘方式的原理電路如圖2-8所示。在單片機(jī)X
13、TAL1和XTAL2引腳上跨接上一個(gè)晶振和兩個(gè)穩(wěn)頻電容,可以與單片機(jī)片內(nèi)的電路構(gòu)成一個(gè)穩(wěn)定的自激振蕩器。晶振的取值范圍一般為024MHz,常用的晶振頻率有6MHz、12 MHz、11.0592 MHz、24 MHz等。一些新型的單片機(jī)還可以選擇更高的頻率。外接電容的作用是對(duì)振蕩器進(jìn)行頻率微調(diào),使振蕩信號(hào)頻率與晶振頻率一致,同時(shí)起到穩(wěn)定頻率的作用,一般選用2030pF的瓷片電容。 2、復(fù)位電路 無(wú)論是在單片機(jī)剛開(kāi)始接上電源時(shí),還是運(yùn)行過(guò)程中發(fā)生故障都需要復(fù)位。復(fù)位電路用于將單片機(jī)內(nèi)部各電路的狀態(tài)恢復(fù)到一個(gè)確定的初始值,并從這個(gè)狀態(tài)開(kāi)始工作。 單片機(jī)的復(fù)位條件:必須使其RST引腳上持續(xù)出現(xiàn)兩個(gè)(或
14、以上)機(jī)器周期的高電平。 單片機(jī)的復(fù)位形式:上電復(fù)位、按鍵復(fù)位。圖3.2 單片機(jī)最小系統(tǒng)3.3鍵盤電路設(shè)計(jì) 按鍵工作處于兩種狀態(tài):按下與釋放。一般按下為接通,釋放為斷開(kāi),這兩種狀態(tài)要被CPU識(shí)別,通常將兩種狀態(tài)轉(zhuǎn)換為與之對(duì)應(yīng)的低電平或高電平。CPU通過(guò)按鍵信號(hào)電平的高低來(lái)判斷按鍵的狀態(tài)。 使用矩陣鍵盤,所以本設(shè)計(jì)采用行列式鍵盤,可減少鍵盤與單片機(jī)接口是所占用的I/O線的數(shù)目,按鍵比較多時(shí),通常采用這種方法。矩陣式鍵盤又叫行列式鍵盤。用I/O接口線組成行、列結(jié)構(gòu),鍵位設(shè)置在行、列的交點(diǎn)上。例如本設(shè)計(jì)(圖4-4)4*4的行、列結(jié)構(gòu)可組成16個(gè)鍵盤,比一個(gè)鍵位用一根I/O口線的獨(dú)立式鍵盤少了一半的I
15、/O接口線。而且鍵位越多,情況越明顯。因此,在按鍵比較多時(shí),往往采用矩陣式鍵盤。矩陣式鍵盤的按鍵識(shí)別方法 有“行掃描法”。行掃描法又稱為逐行(或列)掃描查詢法,是一種最常用的按鍵識(shí)別方法,介紹過(guò)程如下。 (1)判斷鍵盤中有無(wú)鍵按下 將全部行線Y0-Y3置低電平,然后檢測(cè)列線的狀態(tài)。只要有一列的電平為低,則表示鍵盤中有鍵被按下,而且閉合的鍵位于低電平線與4根行線相交叉的4個(gè)按鍵之中。若所有列線均為高電平,則鍵盤中無(wú)鍵按下。 (2)判斷閉合鍵所在的位置 在確認(rèn)有鍵按下后,即可進(jìn)入確定具體閉合鍵的過(guò)程。其方法是:依次將行線置為低電平,即在置某根行線為低電平時(shí),其它線為高電平。在確定某根行線位置為低電
16、平后,再逐行檢測(cè)各列線的電平狀態(tài)。若某列為低,則該列線與置為低電平的行線交叉處的按鍵就是閉合的按鍵。圖3.3 鍵盤掃描電路圖每一條行線和列線交叉處通過(guò)一個(gè)按鍵來(lái)連接,利用這種行列式矩陣結(jié)構(gòu)只需要N條行線和M條列線就可組成N*M個(gè)按鍵。在這種行列式矩陣鍵盤非鍵盤編碼的單片機(jī)中,鍵盤處理程序先執(zhí)行等待按鍵并確認(rèn)有無(wú)鍵盤按下的程序段。確認(rèn)有鍵盤按下后,下一步執(zhí)行識(shí)別哪一個(gè)鍵按下。對(duì)照4*4鍵盤,首先識(shí)別鍵盤中有無(wú)鍵盤按下,由單片機(jī)I/O口向鍵盤送全掃描字00H,把全部的列線置為低電平,然后把列線的電平狀態(tài)讀入累加器A中,如有鍵按下,總會(huì)有一根線電平為低使行線不全為1。判斷鍵盤中哪一個(gè)鍵被按下,使通過(guò)
17、將列線逐列置低電平后,檢查行輸入狀態(tài)來(lái)實(shí)現(xiàn)的。方法是:依次給列線送低電平,然后檢查行輸入狀態(tài)來(lái)實(shí)現(xiàn)。如果全為1,則所按下鍵不在此列,如果不全為1則按下的鍵必在此列。而且是與零電平線相交的交點(diǎn)上的鍵。按鍵列表如下:147SET2580369OK理想的按鍵信號(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)。消抖常見(jiàn)有兩種方法,硬件消抖:如用濾波器,雙穩(wěn)態(tài)電路等。另一種用軟件來(lái)實(shí)現(xiàn),即當(dāng)
18、發(fā)現(xiàn)有鍵按下時(shí),間隔10ms以上時(shí)間,才能進(jìn)行下一次查詢,這樣就讓過(guò)了抖動(dòng)過(guò)程,鍵的釋放進(jìn)行同樣處理。本設(shè)計(jì)為減少電路復(fù)雜程度,減少成本。采用軟件消抖的方法。本次的設(shè)計(jì)沒(méi)有用字母,僅僅是用0-9十個(gè)數(shù)字以及確定和重置十二個(gè)鍵。所以3*4的鍵盤也只用了7個(gè)IO口分別為P1.0-P1.63.4 LCD1602顯示電路 字符型液晶顯示模塊是一種專門用于顯示字母、數(shù)字、符號(hào)等點(diǎn)陣式LCD,目前常用16*1,16*2,20*2和40*2行等的模塊。下面以長(zhǎng)沙太陽(yáng)人電子有限公司的1602字符型液晶顯示器為例,介紹其用法。一般1602字符型液晶顯示器實(shí)物如圖3.4.圖3.4 LCD1602字符型液晶顯示器實(shí)
19、物圖 LCD1602液晶顯示器是一種字符點(diǎn)陣式LCD顯示器模塊。它不僅能夠顯示阿拉伯?dāng)?shù)字,而且還能夠顯示特殊的符號(hào),以及英文字母(即英文語(yǔ)句提示信息),因此其用途比較靈活,應(yīng)用比較廣泛,當(dāng)然價(jià)格也較高。單片機(jī)STC89C52從接收器得到的數(shù)據(jù)運(yùn)算程序后,結(jié)果傳送給1602LCD數(shù)據(jù)端并在液晶屏上顯示出。顯示電路如圖3.4所示。LCD1602采用標(biāo)準(zhǔn)的14腳(無(wú)背光)或16腳(帶背光)接口,各引腳接口說(shuō)明如表3-2所示:表3-2 LCD功能引腳表編號(hào)符號(hào)引腳說(shuō)明編號(hào)符號(hào)引腳說(shuō)明1VSS電源地9D2數(shù)據(jù)2VDD電源正極10D3數(shù)據(jù)3VL液晶顯示偏壓11D4數(shù)據(jù)4RS數(shù)據(jù)/命令選擇12D5數(shù)據(jù)5R/
20、W讀/寫選擇13D6數(shù)據(jù)6E使能信號(hào)14D7數(shù)據(jù)7D0數(shù)據(jù)15BLA背光源正極8D1數(shù)據(jù)16BLK背光源負(fù)極 在仿真的過(guò)程中,PROTEUS里面找不到LCD1602這個(gè)液晶顯示的芯片,但找到了LM016L液晶顯示模塊。通過(guò)查找資料這兩款液晶顯示的芯片功能差不多,僅有少數(shù)引腳與LCD1602有差別,但是功能卻一樣。所以在仿真的過(guò)程中并不影響整個(gè)設(shè)計(jì)的效果。P0.0-P0.7用作LCD1602的數(shù)據(jù)輸入,P2.5,P2.6,P2.7用作LCD的控制端。LCD1602與STC89C52單片機(jī)的仿真連線如圖3.5所示。圖3.5 LCD1602顯示電路3.5 開(kāi)鎖電路的設(shè)計(jì) 本設(shè)計(jì)中,發(fā)光二極管亮就表示
21、開(kāi)鎖,用繼電器來(lái)控制發(fā)光二極管亮或滅,輸入密碼正確,繼電器動(dòng)作,發(fā)光二極管點(diǎn)亮,輸入密碼錯(cuò)誤,發(fā)光二極管保持滅的狀態(tài)。為更好的驅(qū)動(dòng)繼電器需要接一個(gè)三極管。開(kāi)鎖電路與單片機(jī)的連線如圖3.6。圖3.6 開(kāi)鎖電路3.6報(bào)警電路 報(bào)警電路由蜂鳴器和單片機(jī)組成。選擇一只壓電式蜂鳴器,壓電式蜂鳴器工作時(shí)需要約100mA的驅(qū)動(dòng)電流。蜂鳴器電路如圖所示。當(dāng)STC89C52的P3.0口輸出為低電平時(shí),蜂鳴器產(chǎn)生蜂鳴音。STC89C52輸出為高電平時(shí),蜂鳴器不發(fā)音。然而在PROTEUS仿真的過(guò)程中,電腦里放置的元器件并沒(méi)有報(bào)警,為了更清楚的顯示現(xiàn)象所以在這里的仿真僅僅是用一個(gè)發(fā)光二極管代替,三次沒(méi)有輸對(duì)密碼之后,
22、發(fā)光二極管點(diǎn)亮,代表報(bào)警。圖3.7 報(bào)警電路3.7 仿真效果圖 系統(tǒng)電路總圖是將單片機(jī)最小系統(tǒng)(包括晶振以及復(fù)位電路)和報(bào)警電路,開(kāi)鎖電路以及LCD1602顯示電路組合在一起,由單片機(jī)的引腳控制各個(gè)模塊的功能實(shí)現(xiàn)。具體的引腳控制以及模塊的放置如圖3.8仿真效果圖。3.8仿真效果圖第4章 軟件設(shè)計(jì)4.1 PROTEUS仿真軟件Proteus軟件是英國(guó)Lab Center Electronics公司出版的EDA工具軟件(該軟件中國(guó)總代理為廣州風(fēng)標(biāo)電子技術(shù)有限公司)。它不僅具有其它EDA工具軟件的仿真功能,還能仿真單片機(jī)及外圍器件。它是目前比較好的仿真單片機(jī)及外圍器件的工具。雖然目前國(guó)內(nèi)推廣剛起步,
23、但已受到單片機(jī)愛(ài)好者、從事單片機(jī)教學(xué)的教師、致力于單片機(jī)開(kāi)發(fā)應(yīng)用的科技工作者的青睞。Proteus是世界上著名的EDA工具(仿真軟件),從原理圖布圖、代碼調(diào)試到單片機(jī)與外圍電路協(xié)同仿真,一鍵切換到PCB設(shè)計(jì),真正實(shí)現(xiàn)了從概念到產(chǎn)品的完整設(shè)計(jì)。是目前世界上唯一將電路仿真軟件、PCB設(shè)計(jì)軟件和虛擬模型仿真軟件三合一的設(shè)計(jì)平臺(tái),其處理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年又增加了Cortex和DSP系列處理器,并持續(xù)增加其他系列處理器模型。在編譯方面,它也支持IAR、Keil和MATLAB等多種編譯
24、器。圖4.1 PROTEUS進(jìn)入畫面圖4.2 PROTEUS功能布局PROTEUS有豐富的器件庫(kù):超過(guò)27000種元器件,可方便地創(chuàng)建新元件;智能的器件搜索:通過(guò)模糊搜索可以快速定位所需要的器件;智能化的連線功能:自動(dòng)連線功能使連接導(dǎo)線簡(jiǎn)單快捷,大大縮短繪圖時(shí)間;支持總線結(jié)構(gòu):使用總線器件和總線布線使電路設(shè)計(jì)簡(jiǎn)明清晰;可輸出高質(zhì)量圖紙:通過(guò)個(gè)性化設(shè)置,可以生成印刷質(zhì)量的BMP圖紙,可以方便地供WORD、POWERPOINT等多種文檔使用。完善的電路仿真功能ProSPICE混合仿真:基于工業(yè)標(biāo)準(zhǔn)SPICE3F5,實(shí)現(xiàn)數(shù)字/模擬電路的混合仿真;超過(guò)27000個(gè)仿真器件:可以通過(guò)內(nèi)部原型或使用廠家的
25、SPICE文件自行設(shè)計(jì)仿真器件,Labcenter也在不斷地發(fā)布新的仿真器件,還可導(dǎo)入第三方發(fā)布的仿真器件;多樣的激勵(lì)源:包括直流、正弦、脈沖、分段線性脈沖、音頻(使用wav文件)、指數(shù)信號(hào)、單頻FM、數(shù)字時(shí)鐘和碼流,還支持文件形式的信號(hào)輸入;豐富的虛擬儀器:13種虛擬儀器,面板操作逼真,如示波器、邏輯分析儀、信號(hào)發(fā)生器、直流電壓/電流表、交流電壓/電流表、數(shù)字圖案發(fā)生器、頻率計(jì)/計(jì)數(shù)器、邏輯探頭、虛擬終端、SPI調(diào)試器、I2C調(diào)試器等;生動(dòng)的仿真顯示:用色點(diǎn)顯示引腳的數(shù)字電平,導(dǎo)線以不同顏色表示其對(duì)地電壓大小,結(jié)合動(dòng)態(tài)器件(如電機(jī)、顯示器件、按鈕)的使用可以使仿真更加直觀、生動(dòng);高級(jí)圖形仿真
26、功能(ASF):基于圖標(biāo)的分析可以精確分析電路的多項(xiàng)指標(biāo),包括工作點(diǎn)、瞬態(tài)特性、頻率特性、傳輸特性、噪聲、失真、傅立葉頻譜分析等,還可以進(jìn)行一致性分析;4.2 KEIL編譯軟件 Keil C51是美國(guó)Keil Software公司出品的51系列兼容單片機(jī)C語(yǔ)言軟件開(kāi)發(fā)系統(tǒng),與匯編相比,C語(yǔ)言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢(shì),因而易學(xué)易用。Keil提供了包括C編譯器、宏匯編、鏈接器、庫(kù)管理和一個(gè)功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開(kāi)發(fā)方案,通過(guò)一個(gè)集成開(kāi)發(fā)環(huán)境(Vision)將這些部分組合在一起。運(yùn)行Keil軟件需要WIN98、NT、WIN2000、WINXP等操作系統(tǒng)。如果你使用C
27、語(yǔ)言編程,那么Keil幾乎就是你的不二之選,即使不使用C語(yǔ)言而僅用匯編語(yǔ)言編程,其方便易用的集成環(huán)境、強(qiáng)大的軟件仿真調(diào)試工具也會(huì)令你事半功倍。圖4.3 KEIL uVision4進(jìn)入畫面 2009年2月發(fā)布Keil Vision4,Keil Vision4引入靈活的窗口管理系統(tǒng),使開(kāi)發(fā)人員能夠使用多臺(tái)監(jiān)視器,并提供了視覺(jué)上的表面對(duì)窗口位置的完全控制的任何地方。新的用戶界面可以更好地利用屏幕空間和更有效地組織多個(gè)窗口,提供一個(gè)整潔,高效的環(huán)境來(lái)開(kāi)發(fā)應(yīng)用程序。 C51工具包的整體結(jié)構(gòu),Vision與Ishell分別是C51 for Windows 和for Dos 的集成開(kāi)發(fā)環(huán)境(IDE),可以完
28、成編輯、編譯、連接、調(diào)試、仿真等整個(gè)開(kāi)發(fā)流程。然后分別由C51及C51編譯器編譯生成目標(biāo)文件(.obj)。目標(biāo)文件可由LIB51 創(chuàng)建生成庫(kù)文件,也可以與庫(kù)文件一起經(jīng)L51 連接定位生成絕對(duì)目標(biāo)文件(.abs)。abs文件由OH51 轉(zhuǎn)換成標(biāo)準(zhǔn)的hex 文件。圖4.4 KEIL uVision4功能頁(yè)面4.3 普中ISP自動(dòng)下載軟件 編譯好程序之后,要生成.HEX的文件,通過(guò)這個(gè)軟件下載到單片機(jī)開(kāi)發(fā)板上,這個(gè)軟件有以下優(yōu)點(diǎn):1.接收從串口進(jìn)來(lái)的數(shù)據(jù)并在窗口顯示2、所接收到的數(shù)據(jù)數(shù)據(jù)顯示方式可以選擇為字符方式或者HEX方式3、中文顯示無(wú)亂碼,且不影響速度4、串口波特率可以選擇為110bps-11
29、5200bps5、可以選擇“5、6、7、8”四種數(shù)據(jù)長(zhǎng)度6、可以選擇為“1、1.5、2”三種停止位(1.5停止位需要硬件支持)7、第9位數(shù)據(jù)可以選擇為“無(wú)、奇校驗(yàn)、偶校驗(yàn)、1、0”四種方式8、串口設(shè)置和字符串操作等設(shè)置在程序關(guān)閉時(shí)自動(dòng)保存,打開(kāi)時(shí)自動(dòng)載入9、可以選擇在發(fā)送窗口按鍵即發(fā)送該鍵值10、可以在字符串輸入框輸入您想發(fā)送的字符串,并發(fā)送11、可以在字符串輸入框輸入您想發(fā)送的HEX數(shù)據(jù)串,數(shù)據(jù)的值從00到FF,沒(méi)有任何限制12、可以定時(shí)重復(fù)發(fā)送數(shù)據(jù),并可以設(shè)置發(fā)送時(shí)間間隔13、可以在發(fā)送字符串時(shí)選擇發(fā)送新行,即自動(dòng)加上回車換行14、可以自由控制當(dāng)前串口的DTR、RTS信號(hào)線的輸出狀態(tài)15、
30、可以打開(kāi)一個(gè)文本文件或者一個(gè)二進(jìn)制文件預(yù)覽其內(nèi)容,查看方式可以是文本方式16、可以打開(kāi)一個(gè)文本文件或者一個(gè)二進(jìn)制文件并以當(dāng)前波特率發(fā)送到串口17、可以保存窗口內(nèi)容到一個(gè)文本文件18、可以即時(shí)顯示發(fā)送的字節(jié)數(shù)和接收到的字節(jié)數(shù),按清除窗口將會(huì)清零19、帶有常用MCU設(shè)備ISP上載功能20、這是個(gè)綠色軟件,單個(gè)文件即可執(zhí)行,不會(huì)給您的機(jī)器增加任何負(fù)擔(dān) 當(dāng)把單片機(jī)開(kāi)發(fā)板串口連接到電腦上之后,要選擇芯片類型,在本次的設(shè)計(jì)中使用的是STC89C52,串口號(hào)是電腦自動(dòng)幫你選擇哪個(gè)串口,波特率使用110默認(rèn)值就行,但是下載速度較慢。然后就是點(diǎn)打開(kāi)文件,找到編譯好的.HEX的文件點(diǎn)擊下載程序就行了。圖4.5 普
31、中ISP下載頁(yè)面4.4 程序流程圖 返回 報(bào)警 關(guān)門按下?保存新密碼 修改密碼 SET按下? 開(kāi)門 次數(shù)=3? 次數(shù)+1LCD初始化 鍵盤掃描 開(kāi)始 輸入密碼密碼正確 N Y Y N N Y第5章 設(shè)計(jì)、調(diào)試和測(cè)試結(jié)果與分析 本次的課程設(shè)計(jì),開(kāi)始是完全沒(méi)有頭緒,完全不知道怎么寫,因?yàn)槠匠6际巧险n學(xué)到的一些短程序?qū)崿F(xiàn)比較單一功能的程序,這次卻要寫一個(gè)大程序?qū)崿F(xiàn)這么多的功能,確實(shí)是個(gè)不小的挑戰(zhàn)。然后先把流程圖試著畫出來(lái),對(duì)著流程圖試著寫程序,因?yàn)榭紤]到用C語(yǔ)言比用匯編寫要思路更清楚,寫好了一些程序,然后運(yùn)行沒(méi)有錯(cuò)誤,連好線之后,下載到單片機(jī)開(kāi)發(fā)板上出現(xiàn)了以下的問(wèn)題:1、 輸入密碼之后程序返回不正確
32、,例如:輸對(duì)密碼應(yīng)該顯示OK,但是卻會(huì)跳到顯示input password去。2、 三次輸錯(cuò)密碼之后,應(yīng)該蜂鳴器工作模仿報(bào)警的功能的,蜂鳴器卻沒(méi)有響。3、模仿關(guān)門的動(dòng)作按鍵按下之后,板子沒(méi)有響應(yīng)。經(jīng)過(guò)對(duì)程序和連線的排查,發(fā)現(xiàn)有問(wèn)題的是程序問(wèn)題,連線嚴(yán)格按照程序連接是正確的。經(jīng)過(guò)自己和班上其他軟件方面比較好的同學(xué)一起探討,發(fā)現(xiàn)程序的返回不正確。修改了程序之后,蜂鳴器還是壞的,換了別人的板子把自己的程序下載進(jìn)去發(fā)現(xiàn)并沒(méi)有什么問(wèn)題,由此判定是板子的蜂鳴器壞了,然后把板子的蜂鳴器卸了重新焊接了一個(gè)蜂鳴器上去,然后繼續(xù)檢測(cè)已經(jīng)能基本實(shí)現(xiàn)全部功能。 測(cè)試結(jié)果即為在前面實(shí)物圖展示之后描述的那樣,程序的返回確
33、實(shí)影響了整個(gè)實(shí)物展示的效果,所以這也是在畫流程圖時(shí)沒(méi)有注意到,應(yīng)該在每個(gè)細(xì)節(jié)都特別的慎重和小心。實(shí)物及功能展示 本次的課程設(shè)計(jì)可以在單片機(jī)開(kāi)發(fā)板上就能實(shí)現(xiàn)其全部功能,所以不需要自己焊接其他電路,上面展示開(kāi)發(fā)板上的效果即要求所需要的全部功能。當(dāng)把程序下載到單片機(jī)開(kāi)發(fā)版之后,開(kāi)始運(yùn)行程序,可以看到的是LCD1602顯示的是“input password”的字符,提示輸入密碼,密碼錯(cuò)誤,則顯示“error input again”提示再次輸入密碼,此時(shí)由軟件建立一個(gè)標(biāo)志位,次數(shù)達(dá)到三次即使蜂鳴器工作,產(chǎn)生報(bào)警。圖中不能顯示報(bào)警的工作,但是老師檢查確實(shí)是工作了。然后在輸對(duì)密碼之后,顯示的是“welco
34、me”,表示密碼箱的鎖已經(jīng)打開(kāi),另外,在輸對(duì)密碼,箱子打開(kāi)的同時(shí),可以進(jìn)行修改密碼,顯示的是“change password”,代表可以進(jìn)行修改密碼,修改密碼之后將記住新的密碼,特別的方便。還有在顯示“welcome”的時(shí)候,有一個(gè)模仿完成操作之后關(guān)密碼箱門的按鍵,按下之后將返回到輸入密碼的的階段,即顯示“input password”。但是這個(gè)設(shè)計(jì)還不是很完美的,存在一些些問(wèn)題,例如,它沒(méi)有掉電保護(hù)。即使是在開(kāi)鎖的時(shí)候修改好了密碼,但是在掉電之后修改后的密碼就沒(méi)用了,上電芯片工作密碼還是恢復(fù)了初始的密碼。圖5.1 提示輸入密碼圖5.2輸入密碼正確 圖5.3 輸入密碼錯(cuò)誤 圖5.4修改密碼圖5
35、.5 修改密碼成功設(shè)計(jì)小結(jié)此次的課設(shè)讓我們?cè)跓o(wú)論在理論還是動(dòng)手能力上都有了一個(gè)比較大的提升。而且還鍛煉我們從分塊設(shè)計(jì)到整體設(shè)計(jì)及排除故障的能力。單片機(jī)電子密碼鎖主要應(yīng)用矩陣鍵盤掃描技術(shù)、單片機(jī)、LCD顯示器等方面的知識(shí),尋找了大量的文獻(xiàn)資料,硬件和軟件相結(jié)合,制作出實(shí)物模型,并且產(chǎn)生了很好的效果。本設(shè)計(jì)主要應(yīng)用于防盜的場(chǎng)所,雖然這只是一個(gè)簡(jiǎn)單的系統(tǒng),但對(duì)以后關(guān)于LCD顯示和鍵盤掃描進(jìn)一步研究提供了重要的入門準(zhǔn)備。特別是加深對(duì)硬件的調(diào)試的認(rèn)識(shí)。通過(guò)本次畢業(yè)設(shè)計(jì),讓我對(duì)單片機(jī)C語(yǔ)言的有了更高的理性認(rèn)識(shí),對(duì)單片機(jī)的C語(yǔ)言編程和LCD有了更深入的了解,提高了自己的實(shí)踐動(dòng)手綜合能力。本次單片機(jī)設(shè)計(jì)經(jīng)過(guò)三
36、周的查資料、整理材料、做實(shí)驗(yàn),到現(xiàn)在已經(jīng)把課設(shè)完成。此次的課設(shè)較好的檢測(cè)了自身的理論學(xué)習(xí)水平,實(shí)踐動(dòng)手能力及理論結(jié)合實(shí)際的能力。通過(guò)這次的課程設(shè)計(jì)提高了自身的分析處理問(wèn)題能力和自學(xué)能力,更進(jìn)一步地增強(qiáng)自身的動(dòng)手能力。在課堂上學(xué)的東西要是沒(méi)有真正的去做出來(lái)的話是沒(méi)有辦法說(shuō)明那個(gè)知識(shí)已經(jīng)被吸收了。而在動(dòng)手中從發(fā)現(xiàn)問(wèn)題到解決問(wèn)題,在這個(gè)過(guò)程中,正是在提升自己。我們學(xué)了單片機(jī)的知識(shí),有了這些理論,可以做出很多有趣的東西,這也是電子的魅力。剛好學(xué)校也提供了這樣的環(huán)境,我想要多鍛煉一下自己的動(dòng)手能力,更好的理解課堂上的學(xué)到的知識(shí)。參考文獻(xiàn)1譚浩強(qiáng).C語(yǔ)言設(shè)計(jì).北京:清華大學(xué)出版社,1991.10. 2孫涵
37、芳.MCS-51/96系列單片機(jī)原理及應(yīng)用.北京:北京航空航天大學(xué)出版社,1996.9.3徐惠民,安德寧.單片微型計(jì)算機(jī)原理接口與應(yīng)用.北京:北京郵電大學(xué)出版社,1996.7.4王福瑞.單片微機(jī)測(cè)控系統(tǒng)設(shè)計(jì)大全.北京:北京航空航天大學(xué)出版社,1997.5.5夏繼強(qiáng).單片機(jī)實(shí)驗(yàn)與實(shí)踐教程.北京:北京航空航天大學(xué)出版社,2001.12. 6周航慈.單片機(jī)程序設(shè)計(jì)基礎(chǔ).北京:北京航天航空大學(xué)出版社,2004.3.7王效華,張?jiān)伱?單片機(jī)原理與應(yīng)用.北京:北京交通大學(xué)出版社,2007.18郭天祥.51單片機(jī)C語(yǔ)言教程.北京:電子工業(yè)出版社,2008.8. 附 錄電路原理圖 程序代碼:#include
38、<reg52.h>#define uint unsigned int#define uchar unsigned charsbit buzzer=P32;sbit rs=P26; /1602的數(shù)據(jù)/指令選擇控制線 sbit rw=P25; /1602的讀寫控制線 sbit en=P27; /1602的使能控制線 sbit key0=P37;sbit kai=P31;uchar table10; uchar keycmp4;uchar keyword4=2,9,3,8;uchar num=0,flg=0,key=0,ala=0,in=0;void close()kai=1;void
39、kaisuo()kai=0;void delay(uint x)uint i,j;for (i=x;i>0;i-)for (j=110;j>0;j-); void alarm() num=0;buzzer=0;delay(10000);buzzer=1;void lcd_wcom(uchar com) /1602寫命令函數(shù) rs=0; /選擇指令寄存器 rw=0; /選擇寫 P0=com; /把命令字送入P0 delay(5); /延時(shí)一小會(huì)兒,讓1602準(zhǔn)備接收數(shù)據(jù) en=1; /使能線電平變化,命令送入1602的8位數(shù)據(jù)口 en=0; void lcd_wdat(uchar d
40、at) /1602寫數(shù)據(jù)函數(shù) rs=1; /選擇數(shù)據(jù)寄存器 rw=0; /選擇寫 P0=dat; /把要顯示的數(shù)據(jù)送入P0 delay(5); /延時(shí)一小會(huì)兒,讓1602準(zhǔn)備接收數(shù)據(jù) en=1; /使能線電平變化,數(shù)據(jù)送入1602的8位數(shù)據(jù)口 en=0; void lcd_init() /1602初始化函數(shù) lcd_wcom(0x38); /8位數(shù)據(jù),雙列,5*7字形 lcd_wcom(0x0c); /開(kāi)啟顯示屏,關(guān)光標(biāo),光標(biāo)不閃爍 lcd_wcom(0x06); /顯示地址遞增,即寫一個(gè)數(shù)據(jù)后,顯示位置右移一位 lcd_wcom(0x01); /清屏 void display()uchar
41、i,j;j=num+0x46; lcd_wcom(0x80+j); i=keycmpnum;i=i+0x30;table0=i; lcd_wdat(table0); void right()uchar n=0;uchar code table1="welcome" lcd_wcom(0x01);/清屏lcd_wcom(0x84); /顯示地址for(n=0;n<7;n+) lcd_wdat(table1n); delay(200); num=0;flg=2;in=1;kaisuo(); void indisplay()uchar n=0; uchar code tab
42、le5="input password" lcd_wcom(0x01); lcd_wcom(0x80); for(n=0;n<14;n+) lcd_wdat(table5n); delay(200); void setdisplay()uchar n=0; uchar code table2="change password" lcd_wcom(0x01); lcd_wcom(0x80); for(n=0;n<15;n+) lcd_wdat(table2n); delay(200); void error() uchar n,m; uchar
43、 code table3="ERROR!" uchar code table4="input again"lcd_wcom(0x01); lcd_wcom(0x85); for(n=0;n<6;n+) lcd_wdat(table3n); delay(100); lcd_wcom(0x80+0x42); for(m=0;m<11;m+) lcd_wdat(table4m); delay(100); ala=ala+1;num=0;flg=2;if(ala=3)alarm();ala=0;delay(1000);void set()if(in=1)num=0; flg=1; setdisplay();else error();void okdisplay()uchar n;uchar code table6="OK"lcd_wcom(0x01); lcd_wcom(0x87); for(n=0;n<2;n+) lcd_wd
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司法律試題及答案
- 財(cái)務(wù)管理與邏輯思維的相輔相成試題及答案
- 三步破解Msoffice考試試題與答案
- 福建省泉州市2025年九年級(jí)數(shù)學(xué)中考一輪復(fù)習(xí)試卷含答案
- 錯(cuò)誤解析計(jì)算機(jī)二級(jí)Python試題及答案
- 2025年計(jì)算機(jī)考試知識(shí)點(diǎn)試題及答案全網(wǎng)分享
- 法律與道德試題及答案
- 邏輯推理在預(yù)算管理中的實(shí)際應(yīng)用試題及答案
- 法律速錄實(shí)訓(xùn)考試題及答案
- 計(jì)算機(jī)知識(shí)集大成試題及答案
- 安徽省六安市2024-2025學(xué)年八年級(jí)(下)期中歷史試卷(含答案)
- 新興原料市場(chǎng)分析-洞察闡釋
- 社工崗前培訓(xùn)課件
- 航運(yùn)業(yè)人力資源開(kāi)發(fā)與管理考核試卷
- 《企業(yè)的股權(quán)規(guī)范化落地實(shí)務(wù)》-20250506
- 福建省三明市2025年普通高中高三畢業(yè)班五月質(zhì)量檢測(cè)物理試卷及答案(三明四檢)
- 山東省青島市、淄博市2025年高三年級(jí)第二次適應(yīng)性檢測(cè)英語(yǔ)試題及答案(青島、淄博二模)
- 廣東省佛山市高三二模語(yǔ)文試題(原卷版)
- 2024年新疆額敏縣事業(yè)單位公開(kāi)招聘村務(wù)工作者筆試題帶答案
- 7.1 觀察物體(課件)-2024-2025學(xué)年蘇教版數(shù)學(xué)一年級(jí)下冊(cè)
- 早產(chǎn)兒試題及答案多選
評(píng)論
0/150
提交評(píng)論