




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、摘 要 隨著科技和人們的生活水平的提高,如何實現(xiàn)家庭防盜這一問題也變的尤其的突出,傳統(tǒng)機械鎖由于構造簡單,被撬事件屢見不鮮;電子鎖由于其保密性高,使用靈活性好,安全系數(shù)高,受到了廣大用戶的青睞。 單片機也被稱微控器,是因為它最早被用在工業(yè)控制領域。單片機是靠程序運行的,并且可以修改。 本設計系統(tǒng)主機采用8052單片機,MCS-51單片機的程序存儲器和數(shù)據(jù)存儲器的地址空間是相互獨立的,而且程序存儲器一般為ROM或EPROM,只能讀出不能寫入。擴展用的程序存儲器芯片大多采用EPROM芯片,最大可擴展到64K字節(jié)。該設計使用矩陣鍵盤輸入。LED數(shù)碼管顯示輸入密碼,用74HC245驅動數(shù)碼管發(fā)光顯示數(shù)
2、碼,LCD1602控制顯示。密碼正確,二極管發(fā)光。輸入密碼錯誤次數(shù)超過三次系統(tǒng)報警,蜂鳴器發(fā)出報警音。關鍵詞:單片機 軟件電路 硬件電路 目 錄第1章 設計要求.1第二章 系統(tǒng)組成及工作原理.2第三章 硬件電路設計.3 3.1 STC89C52單片機的介紹.3 3.2單片機最小系統(tǒng).5 3.3鍵盤電路設計.6 3.4 LCD1602顯示電路.8 3.5開鎖電路.11 3.6報警電路.11 3.7仿真效果圖.12第四章 軟件設計.13 4.1 PROTEUS仿真軟件.13 4.2 KEIL編譯設計.15 4.3 普中ISP自動下載軟件.16 4.4程序流程圖.18 第5章 設計、調試和測試結果與
3、分析.19第6章 設計小結.23參考文獻.24附錄.25第一章 設計要求 采用單片機、LCD等芯片,設計電子密碼鎖,能隨時修改密碼,具有防多次試探功能,連續(xù)輸入密碼達到一定次數(shù),發(fā)出光聲報警密碼輸入錯誤時有報警功能,連續(xù)輸入3次錯誤,鍵盤自鎖,等待管理解鎖;開鎖后或修改密碼后可以選擇退出,返回開鎖前狀態(tài)。掌握Proteus軟件的基本應用,用于設計與仿真,需要用PROTEUS軟件繪制電路原理圖及局部原理圖;掌握單片機編程語言,可選用匯編語言或C語言;本次課程設計是要設計一個數(shù)字密碼鎖,設計要求如下:1、設計一個數(shù)字式密碼鎖。 2、密碼由4 6位數(shù)字組成。 3、密碼相符開鎖,三次不符報警。 4、密
4、碼可以更新。第二章 系統(tǒng)組成及工作原理復位電路鍵盤控制 電路開鎖電路超次報警電路LCD顯示電路 STC89 C52圖2.1 系統(tǒng)總設計圖 該電子密碼鎖采用4*4鍵盤作為輸入信號,輸入到作為主機STC89C52單片機,通過軟件編程的程序,做出判斷,結果再經(jīng)1602LCD液晶顯示器作為輸出顯示。晶振電路提供單片機運行脈沖。l STC89C52單片機:STC89C52是一種低功耗、高性能CMOS8位微控制器,具有 8K 在系統(tǒng)可編程Flash存儲器。具有以下標準功能: 8k字節(jié)Flash,512字節(jié)RAM, 32 位I/O 口線,看門狗定時器,內置4KB EEPROM,復位電路,3個16 位定時器/
5、計數(shù)器,4個外部中斷,一個7向量4級中斷結構(兼容傳統(tǒng)51的5向量2級中斷結構),全雙工串行口。l 復位電路:復位電路,就是利用它把電路恢復到起始狀態(tài)。就像計算器的清零按鈕的作用一樣,以便回到原始狀態(tài),重新進行計算。使CPU及系統(tǒng)各部件處于確定的初始狀態(tài)。l 鍵盤控制電路:在此次的設計中,輸入密碼,修改密碼等都需要通過鍵盤來實現(xiàn),鍵盤采用矩陣鍵盤,這樣可以減少I/O口的使用。l LCD顯示電路:本次實驗采用的是LCD1602液晶顯示,好處是相比于LED數(shù)碼管顯示方便許多,也比較符合消費者的要求。l 超次報警電路:密碼箱最重要的是保護消費者的財產(chǎn)及隱私,若非本人操作很難一下子輸對密碼,本次設計是
6、三次輸入密碼不正確蜂鳴器會響,模擬報警的裝置。l 開門電路:輸對密碼之后,繼電器吸合,小燈點亮,模擬開保險箱的動作。第3章 硬件電路設計3.1 STC89C52單片機的介紹 STC89C52是一種低功耗、高性能CMOS8位微控制器,具有8K 在系統(tǒng)可編程Flash 存儲器。使用Atmel 公司高密度非易失性存儲器技術制造,與工業(yè)80C51 產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8 位CPU 和在系統(tǒng)可編程Flash,使得STC89C52為眾多嵌入式控制應用系統(tǒng)提供高靈活、超有效的解決方案。STC89C52具有以下標準功能: 8
7、k字節(jié)Flash,256字節(jié)RAM,32 位I/O 口線,看門狗定時器,2 個數(shù)據(jù)指針,三個16 位定時器/計數(shù)器,一個6向量2級中斷結構,全雙工串行口,片內晶振及時鐘電路。另外,STC89C52 可降至0Hz 靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式。掉電保護方式下,RAM內容被保存,振蕩器被凍結,單片機一切工作停止,直到下一個中斷或硬件復位為止。圖3.1 STC89C52功能引腳圖l VCC: 電源l GND: 地l P0口:P0口是一個8位漏極開路的雙向I/O口。作為輸出口,每位能驅動8個TTL邏輯電平。對P0端口寫“1”時,引腳用作高阻抗輸入。當訪問外部程序和數(shù)據(jù)存儲器時,P0口也被作
8、為低8位地址/數(shù)據(jù)復用。在這種模式下,P0具有內部上拉電阻。在flash編程時,P0口也用來接收指令字節(jié);在程序校驗時,輸出指令字節(jié)。程序校驗時,需要外部上拉電阻。l P1口:P1 口是一個具有內部上拉電阻的8 位雙向I/O 口,p1 輸出緩沖器能驅動4 個TTL邏輯電平。對P1 端口寫“1”時,內部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內部電阻的原因,將輸出電流(IIL)。此外,P1.0和P1.2分別作定時器/計數(shù)器2的外部計數(shù)輸入(P1.0/T2)和時器/計數(shù)器2的觸發(fā)輸入(P1.1/T2EX),在flash編程和校驗時,P1口接收低8位地址字節(jié)。
9、l P2口:P2 口是一個具有內部上拉電阻的8 位雙向I/O 口,P2 輸出緩沖器能驅動4 個TTL 邏輯電平。對P2 端口寫“1”時,內部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內部電阻的原因,將輸出電流(IIL)。在訪問外部程序存儲器或用16位地址讀取外部數(shù)據(jù)存儲器(例如執(zhí)行MOVX DPTR)時,P2 口送出高八位地址。在這種應用中,P2 口使用很強的內部上發(fā)送1。在使用8位地址(如MOVX RI)訪問外部數(shù)據(jù)存儲器時,P2口輸出P2鎖存器的內容。在flash編程和校驗時,P2口也接收高8位地址字節(jié)和一些控制信號。l P3口:P3口是一個具有內部上
10、拉電阻的8位雙向I/O口,P2輸出緩沖器能驅動4個TTL邏輯電平。對P3端口寫“1”時,內部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內部電阻的原因,將輸出電流(IIL)。P3口亦作為STC89C52特殊功能(第二功能)使用,如表3-1所示。在flash編程和校驗時,P3口也接收一些控制信號。 表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: 復位輸入。晶振工作時,RST腳持續(xù)2 個機器周期高電平將使單片機復位。看門狗計時完成
11、后,RST 腳輸出96 個晶振周期的高電平。l ALE/PROG:地址鎖存控制信號(ALE)是訪問外部程序存儲器時,鎖存低8 位地址的輸出脈沖。在flash編程時,此引腳(PROG)也用作編程輸入脈沖。在一般情況下,ALE 以晶振六分之一的固定頻率輸出脈沖,可用來作為外部定時器或時鐘使用。l PSEN:外部程序存儲器選通信號(PSEN)是外部程序存儲器選通信號。 當STC89C52從外部程序存儲器執(zhí)行外部代碼時,PSEN在每個機器周期被激活兩次,而在訪問外部數(shù)據(jù)存儲器時,PSEN將不被激活。l EA/VPP:訪問外部程序存儲器控制信號。 為使能從0000H 到FFFFH的外部程序存儲器讀取指令
12、,EA必須接GND。為了執(zhí)行內部程序指令,EA應接VCC。在flash編程期間,EA也接12伏VPP電壓。l XTAL1:振蕩器反相放大器和內部時鐘發(fā)生電路的輸入端。l XTAL2:振蕩器反相放大器的輸出端。3.2單片機最小系統(tǒng)的設計 單片機的最小系統(tǒng)是由組成單片機系統(tǒng)必需的一些元件構成的,除了單片機之外,還需要包括電源供電電路、時鐘電路、復位電路。 1、時鐘電路 單片機工作時,從取指令到譯碼再進行微操作,必須在時鐘信號控制下才能有序地進行,時鐘電路就是為單片機工作提供基本時鐘的。單片機的時鐘信號通常有兩種產(chǎn)生方式:內部時鐘方式和外部時鐘方式。 內部時鐘方式的原理電路如圖2-8所示。在單片機X
13、TAL1和XTAL2引腳上跨接上一個晶振和兩個穩(wěn)頻電容,可以與單片機片內的電路構成一個穩(wěn)定的自激振蕩器。晶振的取值范圍一般為024MHz,常用的晶振頻率有6MHz、12 MHz、11.0592 MHz、24 MHz等。一些新型的單片機還可以選擇更高的頻率。外接電容的作用是對振蕩器進行頻率微調,使振蕩信號頻率與晶振頻率一致,同時起到穩(wěn)定頻率的作用,一般選用2030pF的瓷片電容。 2、復位電路 無論是在單片機剛開始接上電源時,還是運行過程中發(fā)生故障都需要復位。復位電路用于將單片機內部各電路的狀態(tài)恢復到一個確定的初始值,并從這個狀態(tài)開始工作。 單片機的復位條件:必須使其RST引腳上持續(xù)出現(xiàn)兩個(或
14、以上)機器周期的高電平。 單片機的復位形式:上電復位、按鍵復位。圖3.2 單片機最小系統(tǒng)3.3鍵盤電路設計 按鍵工作處于兩種狀態(tài):按下與釋放。一般按下為接通,釋放為斷開,這兩種狀態(tài)要被CPU識別,通常將兩種狀態(tài)轉換為與之對應的低電平或高電平。CPU通過按鍵信號電平的高低來判斷按鍵的狀態(tài)。 使用矩陣鍵盤,所以本設計采用行列式鍵盤,可減少鍵盤與單片機接口是所占用的I/O線的數(shù)目,按鍵比較多時,通常采用這種方法。矩陣式鍵盤又叫行列式鍵盤。用I/O接口線組成行、列結構,鍵位設置在行、列的交點上。例如本設計(圖4-4)4*4的行、列結構可組成16個鍵盤,比一個鍵位用一根I/O口線的獨立式鍵盤少了一半的I
15、/O接口線。而且鍵位越多,情況越明顯。因此,在按鍵比較多時,往往采用矩陣式鍵盤。矩陣式鍵盤的按鍵識別方法 有“行掃描法”。行掃描法又稱為逐行(或列)掃描查詢法,是一種最常用的按鍵識別方法,介紹過程如下。 (1)判斷鍵盤中有無鍵按下 將全部行線Y0-Y3置低電平,然后檢測列線的狀態(tài)。只要有一列的電平為低,則表示鍵盤中有鍵被按下,而且閉合的鍵位于低電平線與4根行線相交叉的4個按鍵之中。若所有列線均為高電平,則鍵盤中無鍵按下。 (2)判斷閉合鍵所在的位置 在確認有鍵按下后,即可進入確定具體閉合鍵的過程。其方法是:依次將行線置為低電平,即在置某根行線為低電平時,其它線為高電平。在確定某根行線位置為低電
16、平后,再逐行檢測各列線的電平狀態(tài)。若某列為低,則該列線與置為低電平的行線交叉處的按鍵就是閉合的按鍵。圖3.3 鍵盤掃描電路圖每一條行線和列線交叉處通過一個按鍵來連接,利用這種行列式矩陣結構只需要N條行線和M條列線就可組成N*M個按鍵。在這種行列式矩陣鍵盤非鍵盤編碼的單片機中,鍵盤處理程序先執(zhí)行等待按鍵并確認有無鍵盤按下的程序段。確認有鍵盤按下后,下一步執(zhí)行識別哪一個鍵按下。對照4*4鍵盤,首先識別鍵盤中有無鍵盤按下,由單片機I/O口向鍵盤送全掃描字00H,把全部的列線置為低電平,然后把列線的電平狀態(tài)讀入累加器A中,如有鍵按下,總會有一根線電平為低使行線不全為1。判斷鍵盤中哪一個鍵被按下,使通過
17、將列線逐列置低電平后,檢查行輸入狀態(tài)來實現(xiàn)的。方法是:依次給列線送低電平,然后檢查行輸入狀態(tài)來實現(xiàn)。如果全為1,則所按下鍵不在此列,如果不全為1則按下的鍵必在此列。而且是與零電平線相交的交點上的鍵。按鍵列表如下:147SET2580369OK理想的按鍵信號是一個標準脈沖,但鍵的按下和釋放都需要一個過程來實現(xiàn),在這一過程中是處于高低電平之間一種不穩(wěn)定狀態(tài),稱為抖動。抖動時間的長短,頻率的高低與按鍵機械特征有關,一般在5到10ms之間。這就有可能造成CPU對一次按鍵過程進行多次處理。為了避免這種情況應采取措施消除抖動。消抖常見有兩種方法,硬件消抖:如用濾波器,雙穩(wěn)態(tài)電路等。另一種用軟件來實現(xiàn),即當
18、發(fā)現(xiàn)有鍵按下時,間隔10ms以上時間,才能進行下一次查詢,這樣就讓過了抖動過程,鍵的釋放進行同樣處理。本設計為減少電路復雜程度,減少成本。采用軟件消抖的方法。本次的設計沒有用字母,僅僅是用0-9十個數(shù)字以及確定和重置十二個鍵。所以3*4的鍵盤也只用了7個IO口分別為P1.0-P1.63.4 LCD1602顯示電路 字符型液晶顯示模塊是一種專門用于顯示字母、數(shù)字、符號等點陣式LCD,目前常用16*1,16*2,20*2和40*2行等的模塊。下面以長沙太陽人電子有限公司的1602字符型液晶顯示器為例,介紹其用法。一般1602字符型液晶顯示器實物如圖3.4.圖3.4 LCD1602字符型液晶顯示器實
19、物圖 LCD1602液晶顯示器是一種字符點陣式LCD顯示器模塊。它不僅能夠顯示阿拉伯數(shù)字,而且還能夠顯示特殊的符號,以及英文字母(即英文語句提示信息),因此其用途比較靈活,應用比較廣泛,當然價格也較高。單片機STC89C52從接收器得到的數(shù)據(jù)運算程序后,結果傳送給1602LCD數(shù)據(jù)端并在液晶屏上顯示出。顯示電路如圖3.4所示。LCD1602采用標準的14腳(無背光)或16腳(帶背光)接口,各引腳接口說明如表3-2所示:表3-2 LCD功能引腳表編號符號引腳說明編號符號引腳說明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使能信號14D7數(shù)據(jù)7D0數(shù)據(jù)15BLA背光源正極8D1數(shù)據(jù)16BLK背光源負極 在仿真的過程中,PROTEUS里面找不到LCD1602這個液晶顯示的芯片,但找到了LM016L液晶顯示模塊。通過查找資料這兩款液晶顯示的芯片功能差不多,僅有少數(shù)引腳與LCD1602有差別,但是功能卻一樣。所以在仿真的過程中并不影響整個設計的效果。P0.0-P0.7用作LCD1602的數(shù)據(jù)輸入,P2.5,P2.6,P2.7用作LCD的控制端。LCD1602與STC89C52單片機的仿真連線如圖3.5所示。圖3.5 LCD1602顯示電路3.5 開鎖電路的設計 本設計中,發(fā)光二極管亮就表示
21、開鎖,用繼電器來控制發(fā)光二極管亮或滅,輸入密碼正確,繼電器動作,發(fā)光二極管點亮,輸入密碼錯誤,發(fā)光二極管保持滅的狀態(tài)。為更好的驅動繼電器需要接一個三極管。開鎖電路與單片機的連線如圖3.6。圖3.6 開鎖電路3.6報警電路 報警電路由蜂鳴器和單片機組成。選擇一只壓電式蜂鳴器,壓電式蜂鳴器工作時需要約100mA的驅動電流。蜂鳴器電路如圖所示。當STC89C52的P3.0口輸出為低電平時,蜂鳴器產(chǎn)生蜂鳴音。STC89C52輸出為高電平時,蜂鳴器不發(fā)音。然而在PROTEUS仿真的過程中,電腦里放置的元器件并沒有報警,為了更清楚的顯示現(xiàn)象所以在這里的仿真僅僅是用一個發(fā)光二極管代替,三次沒有輸對密碼之后,
22、發(fā)光二極管點亮,代表報警。圖3.7 報警電路3.7 仿真效果圖 系統(tǒng)電路總圖是將單片機最小系統(tǒng)(包括晶振以及復位電路)和報警電路,開鎖電路以及LCD1602顯示電路組合在一起,由單片機的引腳控制各個模塊的功能實現(xiàn)。具體的引腳控制以及模塊的放置如圖3.8仿真效果圖。3.8仿真效果圖第4章 軟件設計4.1 PROTEUS仿真軟件Proteus軟件是英國Lab Center Electronics公司出版的EDA工具軟件(該軟件中國總代理為廣州風標電子技術有限公司)。它不僅具有其它EDA工具軟件的仿真功能,還能仿真單片機及外圍器件。它是目前比較好的仿真單片機及外圍器件的工具。雖然目前國內推廣剛起步,
23、但已受到單片機愛好者、從事單片機教學的教師、致力于單片機開發(fā)應用的科技工作者的青睞。Proteus是世界上著名的EDA工具(仿真軟件),從原理圖布圖、代碼調試到單片機與外圍電路協(xié)同仿真,一鍵切換到PCB設計,真正實現(xiàn)了從概念到產(chǎn)品的完整設計。是目前世界上唯一將電路仿真軟件、PCB設計軟件和虛擬模型仿真軟件三合一的設計平臺,其處理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年又增加了Cortex和DSP系列處理器,并持續(xù)增加其他系列處理器模型。在編譯方面,它也支持IAR、Keil和MATLAB等多種編譯
24、器。圖4.1 PROTEUS進入畫面圖4.2 PROTEUS功能布局PROTEUS有豐富的器件庫:超過27000種元器件,可方便地創(chuàng)建新元件;智能的器件搜索:通過模糊搜索可以快速定位所需要的器件;智能化的連線功能:自動連線功能使連接導線簡單快捷,大大縮短繪圖時間;支持總線結構:使用總線器件和總線布線使電路設計簡明清晰;可輸出高質量圖紙:通過個性化設置,可以生成印刷質量的BMP圖紙,可以方便地供WORD、POWERPOINT等多種文檔使用。完善的電路仿真功能ProSPICE混合仿真:基于工業(yè)標準SPICE3F5,實現(xiàn)數(shù)字/模擬電路的混合仿真;超過27000個仿真器件:可以通過內部原型或使用廠家的
25、SPICE文件自行設計仿真器件,Labcenter也在不斷地發(fā)布新的仿真器件,還可導入第三方發(fā)布的仿真器件;多樣的激勵源:包括直流、正弦、脈沖、分段線性脈沖、音頻(使用wav文件)、指數(shù)信號、單頻FM、數(shù)字時鐘和碼流,還支持文件形式的信號輸入;豐富的虛擬儀器:13種虛擬儀器,面板操作逼真,如示波器、邏輯分析儀、信號發(fā)生器、直流電壓/電流表、交流電壓/電流表、數(shù)字圖案發(fā)生器、頻率計/計數(shù)器、邏輯探頭、虛擬終端、SPI調試器、I2C調試器等;生動的仿真顯示:用色點顯示引腳的數(shù)字電平,導線以不同顏色表示其對地電壓大小,結合動態(tài)器件(如電機、顯示器件、按鈕)的使用可以使仿真更加直觀、生動;高級圖形仿真
26、功能(ASF):基于圖標的分析可以精確分析電路的多項指標,包括工作點、瞬態(tài)特性、頻率特性、傳輸特性、噪聲、失真、傅立葉頻譜分析等,還可以進行一致性分析;4.2 KEIL編譯軟件 Keil C51是美國Keil Software公司出品的51系列兼容單片機C語言軟件開發(fā)系統(tǒng),與匯編相比,C語言在功能上、結構性、可讀性、可維護性上有明顯的優(yōu)勢,因而易學易用。Keil提供了包括C編譯器、宏匯編、鏈接器、庫管理和一個功能強大的仿真調試器等在內的完整開發(fā)方案,通過一個集成開發(fā)環(huán)境(Vision)將這些部分組合在一起。運行Keil軟件需要WIN98、NT、WIN2000、WINXP等操作系統(tǒng)。如果你使用C
27、語言編程,那么Keil幾乎就是你的不二之選,即使不使用C語言而僅用匯編語言編程,其方便易用的集成環(huán)境、強大的軟件仿真調試工具也會令你事半功倍。圖4.3 KEIL uVision4進入畫面 2009年2月發(fā)布Keil Vision4,Keil Vision4引入靈活的窗口管理系統(tǒng),使開發(fā)人員能夠使用多臺監(jiān)視器,并提供了視覺上的表面對窗口位置的完全控制的任何地方。新的用戶界面可以更好地利用屏幕空間和更有效地組織多個窗口,提供一個整潔,高效的環(huán)境來開發(fā)應用程序。 C51工具包的整體結構,Vision與Ishell分別是C51 for Windows 和for Dos 的集成開發(fā)環(huán)境(IDE),可以完
28、成編輯、編譯、連接、調試、仿真等整個開發(fā)流程。然后分別由C51及C51編譯器編譯生成目標文件(.obj)。目標文件可由LIB51 創(chuàng)建生成庫文件,也可以與庫文件一起經(jīng)L51 連接定位生成絕對目標文件(.abs)。abs文件由OH51 轉換成標準的hex 文件。圖4.4 KEIL uVision4功能頁面4.3 普中ISP自動下載軟件 編譯好程序之后,要生成.HEX的文件,通過這個軟件下載到單片機開發(fā)板上,這個軟件有以下優(yōu)點:1.接收從串口進來的數(shù)據(jù)并在窗口顯示2、所接收到的數(shù)據(jù)數(shù)據(jù)顯示方式可以選擇為字符方式或者HEX方式3、中文顯示無亂碼,且不影響速度4、串口波特率可以選擇為110bps-11
29、5200bps5、可以選擇“5、6、7、8”四種數(shù)據(jù)長度6、可以選擇為“1、1.5、2”三種停止位(1.5停止位需要硬件支持)7、第9位數(shù)據(jù)可以選擇為“無、奇校驗、偶校驗、1、0”四種方式8、串口設置和字符串操作等設置在程序關閉時自動保存,打開時自動載入9、可以選擇在發(fā)送窗口按鍵即發(fā)送該鍵值10、可以在字符串輸入框輸入您想發(fā)送的字符串,并發(fā)送11、可以在字符串輸入框輸入您想發(fā)送的HEX數(shù)據(jù)串,數(shù)據(jù)的值從00到FF,沒有任何限制12、可以定時重復發(fā)送數(shù)據(jù),并可以設置發(fā)送時間間隔13、可以在發(fā)送字符串時選擇發(fā)送新行,即自動加上回車換行14、可以自由控制當前串口的DTR、RTS信號線的輸出狀態(tài)15、
30、可以打開一個文本文件或者一個二進制文件預覽其內容,查看方式可以是文本方式16、可以打開一個文本文件或者一個二進制文件并以當前波特率發(fā)送到串口17、可以保存窗口內容到一個文本文件18、可以即時顯示發(fā)送的字節(jié)數(shù)和接收到的字節(jié)數(shù),按清除窗口將會清零19、帶有常用MCU設備ISP上載功能20、這是個綠色軟件,單個文件即可執(zhí)行,不會給您的機器增加任何負擔 當把單片機開發(fā)板串口連接到電腦上之后,要選擇芯片類型,在本次的設計中使用的是STC89C52,串口號是電腦自動幫你選擇哪個串口,波特率使用110默認值就行,但是下載速度較慢。然后就是點打開文件,找到編譯好的.HEX的文件點擊下載程序就行了。圖4.5 普
31、中ISP下載頁面4.4 程序流程圖 返回 報警 關門按下?保存新密碼 修改密碼 SET按下? 開門 次數(shù)=3? 次數(shù)+1LCD初始化 鍵盤掃描 開始 輸入密碼密碼正確 N Y Y N N Y第5章 設計、調試和測試結果與分析 本次的課程設計,開始是完全沒有頭緒,完全不知道怎么寫,因為平常都是上課學到的一些短程序實現(xiàn)比較單一功能的程序,這次卻要寫一個大程序實現(xiàn)這么多的功能,確實是個不小的挑戰(zhàn)。然后先把流程圖試著畫出來,對著流程圖試著寫程序,因為考慮到用C語言比用匯編寫要思路更清楚,寫好了一些程序,然后運行沒有錯誤,連好線之后,下載到單片機開發(fā)板上出現(xiàn)了以下的問題:1、 輸入密碼之后程序返回不正確
32、,例如:輸對密碼應該顯示OK,但是卻會跳到顯示input password去。2、 三次輸錯密碼之后,應該蜂鳴器工作模仿報警的功能的,蜂鳴器卻沒有響。3、模仿關門的動作按鍵按下之后,板子沒有響應。經(jīng)過對程序和連線的排查,發(fā)現(xiàn)有問題的是程序問題,連線嚴格按照程序連接是正確的。經(jīng)過自己和班上其他軟件方面比較好的同學一起探討,發(fā)現(xiàn)程序的返回不正確。修改了程序之后,蜂鳴器還是壞的,換了別人的板子把自己的程序下載進去發(fā)現(xiàn)并沒有什么問題,由此判定是板子的蜂鳴器壞了,然后把板子的蜂鳴器卸了重新焊接了一個蜂鳴器上去,然后繼續(xù)檢測已經(jīng)能基本實現(xiàn)全部功能。 測試結果即為在前面實物圖展示之后描述的那樣,程序的返回確
33、實影響了整個實物展示的效果,所以這也是在畫流程圖時沒有注意到,應該在每個細節(jié)都特別的慎重和小心。實物及功能展示 本次的課程設計可以在單片機開發(fā)板上就能實現(xiàn)其全部功能,所以不需要自己焊接其他電路,上面展示開發(fā)板上的效果即要求所需要的全部功能。當把程序下載到單片機開發(fā)版之后,開始運行程序,可以看到的是LCD1602顯示的是“input password”的字符,提示輸入密碼,密碼錯誤,則顯示“error input again”提示再次輸入密碼,此時由軟件建立一個標志位,次數(shù)達到三次即使蜂鳴器工作,產(chǎn)生報警。圖中不能顯示報警的工作,但是老師檢查確實是工作了。然后在輸對密碼之后,顯示的是“welco
34、me”,表示密碼箱的鎖已經(jīng)打開,另外,在輸對密碼,箱子打開的同時,可以進行修改密碼,顯示的是“change password”,代表可以進行修改密碼,修改密碼之后將記住新的密碼,特別的方便。還有在顯示“welcome”的時候,有一個模仿完成操作之后關密碼箱門的按鍵,按下之后將返回到輸入密碼的的階段,即顯示“input password”。但是這個設計還不是很完美的,存在一些些問題,例如,它沒有掉電保護。即使是在開鎖的時候修改好了密碼,但是在掉電之后修改后的密碼就沒用了,上電芯片工作密碼還是恢復了初始的密碼。圖5.1 提示輸入密碼圖5.2輸入密碼正確 圖5.3 輸入密碼錯誤 圖5.4修改密碼圖5
35、.5 修改密碼成功設計小結此次的課設讓我們在無論在理論還是動手能力上都有了一個比較大的提升。而且還鍛煉我們從分塊設計到整體設計及排除故障的能力。單片機電子密碼鎖主要應用矩陣鍵盤掃描技術、單片機、LCD顯示器等方面的知識,尋找了大量的文獻資料,硬件和軟件相結合,制作出實物模型,并且產(chǎn)生了很好的效果。本設計主要應用于防盜的場所,雖然這只是一個簡單的系統(tǒng),但對以后關于LCD顯示和鍵盤掃描進一步研究提供了重要的入門準備。特別是加深對硬件的調試的認識。通過本次畢業(yè)設計,讓我對單片機C語言的有了更高的理性認識,對單片機的C語言編程和LCD有了更深入的了解,提高了自己的實踐動手綜合能力。本次單片機設計經(jīng)過三
36、周的查資料、整理材料、做實驗,到現(xiàn)在已經(jīng)把課設完成。此次的課設較好的檢測了自身的理論學習水平,實踐動手能力及理論結合實際的能力。通過這次的課程設計提高了自身的分析處理問題能力和自學能力,更進一步地增強自身的動手能力。在課堂上學的東西要是沒有真正的去做出來的話是沒有辦法說明那個知識已經(jīng)被吸收了。而在動手中從發(fā)現(xiàn)問題到解決問題,在這個過程中,正是在提升自己。我們學了單片機的知識,有了這些理論,可以做出很多有趣的東西,這也是電子的魅力。剛好學校也提供了這樣的環(huán)境,我想要多鍛煉一下自己的動手能力,更好的理解課堂上的學到的知識。參考文獻1譚浩強.C語言設計.北京:清華大學出版社,1991.10. 2孫涵
37、芳.MCS-51/96系列單片機原理及應用.北京:北京航空航天大學出版社,1996.9.3徐惠民,安德寧.單片微型計算機原理接口與應用.北京:北京郵電大學出版社,1996.7.4王福瑞.單片微機測控系統(tǒng)設計大全.北京:北京航空航天大學出版社,1997.5.5夏繼強.單片機實驗與實踐教程.北京:北京航空航天大學出版社,2001.12. 6周航慈.單片機程序設計基礎.北京:北京航天航空大學出版社,2004.3.7王效華,張詠梅.單片機原理與應用.北京:北京交通大學出版社,2007.18郭天祥.51單片機C語言教程.北京:電子工業(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); /延時一小會兒,讓1602準備接收數(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); /延時一小會兒,讓1602準備接收數(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); /開啟顯示屏,關光標,光標不閃爍 lcd_wcom(0x06); /顯示地址遞增,即寫一個數(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. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度新股東入資生物制藥產(chǎn)業(yè)合作協(xié)議
- 2025年度電子商務平臺員工勞務外包及運營合同
- 二零二五年度長租公寓退租服務保障協(xié)議
- 二零二五年度餐飲連鎖生意合作合同范本
- 房產(chǎn)證抵押貸款合同抵押物管理協(xié)議(2025年度)
- 二零二五年度精裝高層購房定金合同
- 2025年度私人宅基地買賣轉讓協(xié)議書及配套設施建設補充協(xié)議
- 2025年度租房押金監(jiān)管及退還標準合同
- 二零二五年度文化產(chǎn)業(yè)投資入股協(xié)議
- 2025年黑龍江貨運從業(yè)資格證的試題
- 2025年湖南有色金屬職業(yè)技術學院單招職業(yè)技能測試題庫參考答案
- 2025年哈爾濱幼兒師范高等專科學校單招職業(yè)技能測試題庫1套
- 2025年湖南城建職業(yè)技術學院單招職業(yè)傾向性測試題庫及答案一套
- 2025年佳木斯職業(yè)學院單招職業(yè)傾向性測試題庫完整
- 2025廣東省安全員A證考試題庫
- 《酒店服務禮儀細節(jié)》課件
- 《建筑工程混凝土施工質量控制課件》
- 2025-2030年中國煤炭行業(yè)發(fā)展動態(tài)及前景趨勢分析報告
- 2025年人工智能(AI)訓練師職業(yè)技能鑒定考試題(附答案)
- 《稀土冶金技術史》課件-中國的稀土資源與分布
- 醫(yī)學影像檢查技術復習題(含參考答案)
評論
0/150
提交評論