藍(lán)牙密碼鎖設(shè)計(jì)(軟件)_第1頁
藍(lán)牙密碼鎖設(shè)計(jì)(軟件)_第2頁
藍(lán)牙密碼鎖設(shè)計(jì)(軟件)_第3頁
藍(lán)牙密碼鎖設(shè)計(jì)(軟件)_第4頁
藍(lán)牙密碼鎖設(shè)計(jì)(軟件)_第5頁
已閱讀5頁,還剩18頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

目錄

1產(chǎn)品功能分析....................................................................................................1

1.1產(chǎn)品設(shè)計(jì)背景.........................................................................................1

1.3電子鎖功能分析.....................................................................................1

2系統(tǒng)硬件方案選擇............................................................................................1

2.1硬件方案的選擇.....................................................................................1

2.1.1主控芯片的選擇..........................................................................2

2.1.2顯示器件的選擇..........................................................................2

2.1.3數(shù)據(jù)存儲芯片的選擇..................................................................3

2.1.4人機(jī)交互輸入器件的選擇..........................................................4

2.2系統(tǒng)總體方案.........................................................................................4

3系統(tǒng)硬件電路設(shè)計(jì)............................................................................................4

3.1STC89C52單片機(jī)系統(tǒng)設(shè)計(jì)...................................................................5

3.1.1STC89C52的概述........................................................................5

3.1.2STC89C52單片機(jī)的最小系統(tǒng)....................................................5

3.2LCD1602液晶顯示電路設(shè)計(jì).................................................................7

3.2.1LCD1602的概述..........................................................................7

3.2.2LCD1602的工作原理..................................................................8

3.3AT24C02的介紹...................................................................................10

3.3.1AT24C02的概述........................................................................10

3.3.2AT24C02的引腳說明................................................................10

3.3.3AT24C02的工作原理................................................................11

3.4藍(lán)牙模塊工作原理...............................................................................12

3.5原理圖繪制軟件的介紹.......................................................................13

4系統(tǒng)軟件部分設(shè)計(jì)..........................................................................................13

4.1軟件開發(fā)環(huán)境的介紹...........................................................................13

4.2系統(tǒng)重要函數(shù)的介紹...........................................................................14

4.2.1主函數(shù)的設(shè)計(jì)............................................................................14

4.2.2LCD1602顯示函數(shù)的設(shè)計(jì).....................................................15

I

4.2.3LCD1602顯示子程序設(shè)計(jì)........................................................16

4.3系統(tǒng)軟件測試.......................................................................................16

附錄......................................................................................................................18

II

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

藍(lán)牙密碼鎖設(shè)計(jì)(軟件)

1產(chǎn)品功能分析

1.1產(chǎn)品設(shè)計(jì)背景

隨著社會科技的進(jìn)步,鎖已發(fā)展到了密碼鎖、磁性鎖、電子鎖、激光鎖、聲

控鎖等等。在傳統(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電子鎖功能分析

(1)系統(tǒng)設(shè)置6位密碼,密碼通過鍵盤輸入,若密碼正確,則繼電器斷開(鎖

打開)。若密碼錯誤,密碼錯誤次數(shù)加1,蜂鳴器LED燈對應(yīng)聲光幾次,超過

三次怎鎖定輸密碼,第一次鎖定在30s后解除鎖定便可再次輸入密碼解鎖,第二

次鎖定在60s后解除鎖定便可在次輸入密碼解鎖,以此類推。

(2)密碼可通過按鍵重新設(shè)置,在設(shè)置前必須輸入舊密碼然后連續(xù)輸入兩次

新密碼,若輸入舊密碼時(shí)輸錯便直接退出修改密碼,并且輸錯密碼次數(shù)加1。

(3)密碼具有掉電保護(hù)功能,鎖定后在此解除鎖定的時(shí)間也具有掉電保護(hù)的

功能。這樣就可以防止外人或小偷輸錯密碼后拔掉電源后再次插上電重新輸入密

碼。

(4)在密碼輸入或重置時(shí)可退格、重輸、退出輸入等等操作。

2系統(tǒng)硬件方案選擇

本章節(jié)主要介紹系統(tǒng)所用到的器件的選擇與對比,進(jìn)行綜合的對比考慮選擇

出最適合本設(shè)計(jì)的一組方案。

2.1硬件方案的選擇

在硬件電路的搭建之前必須明確設(shè)計(jì)的方案,通過各個(gè)模塊之間進(jìn)行比較選

擇出最適合本設(shè)計(jì)的硬件,以發(fā)揮器件的最大功效。

1

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

2.1.1主控芯片的選擇

方案一:

采用STC89C52單片機(jī)作為主控芯片。STC89C52是宏晶科技公司生產(chǎn)的一

款低功耗、高性能的八位CMOS微處理器,片內(nèi)具有8k在線編程Flash存儲器。

STC89C52單片機(jī)的內(nèi)核采用的是MCS-51內(nèi)核,指令完全兼容MCS-51,但是

該單片機(jī)越做了升級使得芯片具有很多傳統(tǒng)的51單片機(jī)不具備的功能,例如該

芯片還有4K的EEPROM存儲,在需要使用到掉電存儲數(shù)據(jù)的時(shí)候就可以直接

使用單片機(jī)內(nèi)部的存儲,不在需要在外接存儲芯片進(jìn)行存儲。STC89C52單片機(jī)

具有的開發(fā)簡單、可在線編程下載、成本低是非常不錯的選擇。

方案二:

采用MSP430單片機(jī)作為主控芯片。MSP430單片機(jī)稱之為混合信號處理器,

它可以將多個(gè)不同功能的模擬電路、數(shù)字電路模塊和微處理器集成在一個(gè)芯片上,

MSP430系列單片機(jī)是美國德州儀器(TI)1996年開始推向市場的一種16位超低

功耗、具有精簡指令集(RISC)的混合信號處理器(MixedSignalProcessor)。該系

列單片機(jī)多應(yīng)用于需要電池供電的便攜式儀器儀表中。而卻開發(fā)難度相對比較大、

價(jià)格昂貴。所以在一些簡單的設(shè)計(jì)中不宜采用。

方案三:

采用PIC16F877A單片機(jī)作為主控芯片。PIC16F877A是由Microchip公司所

生產(chǎn)開發(fā)的新產(chǎn)品,屬于PICmicro系統(tǒng)8位單片機(jī)微機(jī),具有Flash程序內(nèi)存功

能,可反復(fù)擦寫程序。但是開發(fā)成本高,難度相對大。

綜合上述的描述,考慮到資源的合理利用和成本以及開發(fā)的難易程度最終決

定采用宏晶科技的STC89C52單片機(jī)作為主控芯片。

2.1.2顯示器件的選擇

方案一:

采用LED數(shù)碼管動態(tài)掃描顯示。LED數(shù)碼管的價(jià)格適中,對于顯示數(shù)字或

者簡單的字母會比較合適。但是采用動態(tài)掃描法與單片機(jī)連接時(shí)占用CPU的I/O

口較多,并且由于單片機(jī)的IO口輸出電流不夠,所以需要一個(gè)驅(qū)動電路,通過

驅(qū)動電路放大電流后控制數(shù)碼管,還有就是采用數(shù)碼管進(jìn)行顯示的話顯示的內(nèi)容

多了對于電路的焊接機(jī)會增大難得容易焊接錯誤。

2

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

方案二:

采用LCD1602液晶顯示屏。LCD1602液晶又叫LCD1602字符型液晶。液

晶顯示功能強(qiáng)大,可以同時(shí)顯示出16*2即32個(gè)字符,可包括數(shù)字、字母、符號、

或者自定義字符。LCD1602液晶顯示器中的每一個(gè)字符都是由5*7的點(diǎn)陣組成。

LCD1602采用并行數(shù)據(jù)傳輸也可以采用串行數(shù)據(jù)傳輸,控制簡單,和市面上的

大多基于HD44780液晶的控制原理完全相同。

方案三:

采用LCD12864液晶顯示屏。帶中文字庫的128X64是一種具有4位/8位并

行、2線或3線串行多種接口方式,其顯示分辨率為128×64,內(nèi)置8192個(gè)16*16

點(diǎn)漢字,和128個(gè)16*8點(diǎn)ASCII字符集。利用該模塊靈活的接口方式和簡單、

方便的操作指令,可構(gòu)成全中文人機(jī)交互圖形界面??梢燥@示8×4行16×16點(diǎn)

陣的漢字,也可完成圖形顯示,低電壓低功耗是其又一顯著特點(diǎn)。雖然LCD12864

液晶顯示的功能強(qiáng)大,但是顯示的內(nèi)容偏大造成了,顯示空間的浪費(fèi),再來該液

晶的成本高。

綜合上述的描述,最終根據(jù)本設(shè)計(jì)中的功能要求考慮采用LCD1602液晶顯

示器比較合理。

2.1.3數(shù)據(jù)存儲芯片的選擇

方案一:

通過使用單片機(jī)內(nèi)部的EEPROM進(jìn)行存儲數(shù)據(jù)。STC89C5X芯片內(nèi)部帶有

EEPROM功能,STC89C5X的EEPROM是通過ISP/IAP技術(shù)讀寫內(nèi)部FLASH

來實(shí)現(xiàn)EEPROM。STC89C5X的EEPROM起始地址為0x2000,以512字節(jié)為一

個(gè)扇區(qū),EERPOM的大小為2K字節(jié)。

方案二:

采用專門的數(shù)據(jù)存儲芯片AT24C02。AT24C02是一個(gè)2K位串行CMOS

E2PROM,內(nèi)部含有256個(gè)8位字節(jié),CATALYST公司的先進(jìn)CMOS技術(shù)實(shí)質(zhì)

上減少了器件的功耗。AT24C02有一個(gè)16字節(jié)頁寫緩沖器。該器件通過IIC總

線接口進(jìn)行操作,有一個(gè)專門的寫保護(hù)功能。

綜合考慮單片機(jī)內(nèi)部EEPROM在存儲數(shù)據(jù)時(shí)需要先擦除整個(gè)扇區(qū)后才能寫

入,顯得有點(diǎn)麻煩。最終決定采用AT24C02存儲芯片。

3

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

2.1.4人機(jī)交互輸入器件的選擇

方案一:

采用藍(lán)牙移動設(shè)備。藍(lán)牙具有短距離無線傳輸?shù)奶匦浴2⑶铱梢圆捎檬謾C(jī)

APP進(jìn)行直接操控,使用方便并且實(shí)現(xiàn)起來比較人性化。

方案二:

采用矩陣鍵盤作為輸入設(shè)備。矩陣鍵盤通過將按鍵的兩端分別接到行線和列

線上,然后將每一條行線和列線連接到單片機(jī)上,通過程序算法進(jìn)行讀取按下的

是哪一個(gè)按鍵按下。這樣做雖然增加了程序算法的難度,但是節(jié)約了單片機(jī)I/O

口的使用。

綜合上述的描述,最終還是決定采用藍(lán)牙進(jìn)行控制解鎖。

2.2系統(tǒng)總體方案

通過上述對各個(gè)模塊介紹,我們最終選擇了STC89C52作為本設(shè)計(jì)的主控芯

片;采用LCD1602顯示操作內(nèi)容與提示;密碼鎖的密碼等信息采用AT24C02進(jìn)

行存儲;解鎖、修改密碼等操作采用藍(lán)牙模塊無線控制。

本設(shè)計(jì)的具體的系統(tǒng)方案如下圖1所示。

復(fù)位電路蜂鳴器報(bào)警電路

晶振電路繼電器電路

STC89C52

主控芯片

AT24C02存儲芯

電源電路

LCD1602顯示電

HC-05藍(lán)牙模塊

圖1系統(tǒng)方案圖

3系統(tǒng)硬件電路設(shè)計(jì)

本章節(jié)主要介紹本設(shè)計(jì)中各個(gè)部分電路的設(shè)計(jì)原理。通過各個(gè)模塊的功能描

述了解其工作原理以及在設(shè)計(jì)的中作用。

4

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

3.1STC89C52單片機(jī)系統(tǒng)設(shè)計(jì)

3.1.1STC89C52的概述

STC89C52是STC公司生產(chǎn)的一種低功耗、高性能CMOS8位微控制器,具

有8K在系統(tǒng)可編程Flash存儲器。STC89C52使用經(jīng)典的MCS-51內(nèi)核,但做

了很多的改進(jìn)使得芯片具有傳統(tǒng)51單片機(jī)不具備的功能。在單芯片上,擁有靈

巧的8位CPU和在系統(tǒng)可編程Flash,使得STC89C52為眾多嵌入式控制應(yīng)用

系統(tǒng)提供高靈活、非常有效的解決方案。具有以下標(biāo)準(zhǔn)功能:8k字節(jié)Flash,512

字節(jié)RAM,32位I/O口線,看門狗定時(shí)器,內(nèi)置4KBEEPROM,MAX810復(fù)

位電路,3個(gè)16位定時(shí)器/計(jì)數(shù)器,4個(gè)外部中斷,一個(gè)7向量4級中斷結(jié)構(gòu)(兼

容傳統(tǒng)51的5向量2級中斷結(jié)構(gòu)),全雙工串行口。另外STC89X52可降至0Hz

靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU停止工作,

允許RAM、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,RAM內(nèi)

容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為

止。最高運(yùn)作頻率35MHz,6T/12T可選。

3.1.2STC89C52單片機(jī)的最小系統(tǒng)

單片機(jī)最小系統(tǒng)說的通熟易懂的話就是以最少的元器件組成能讓單片機(jī)工

作起來的系統(tǒng),接下來開始介紹51單片機(jī)最小系統(tǒng)必備的器件及其作用。

首先電源這對于一個(gè)電子產(chǎn)品的話是必不可少,它提供能源給系統(tǒng)運(yùn)作,在

本設(shè)計(jì)中由于51單片機(jī)的工作電壓在4.5~5.5V之間都可以正常工作所以我們

采用了USB電源線連接手機(jī)充電器插頭或者5V的移動電源給系統(tǒng)進(jìn)行供電。

其次晶振電路,XTAL1和XTAL2是獨(dú)立的輸入和輸出反相放大器,它們

可以被配置為使用石英晶振的片內(nèi)振蕩器,或者是器件直接由外部時(shí)鐘驅(qū)動。

圖3.1中采用的是內(nèi)時(shí)鐘模式,即采用利用芯片內(nèi)部的振蕩電路,在XTAL1、

XTAL2的引腳上外接定時(shí)元件(一個(gè)石英晶體和兩個(gè)電容),內(nèi)部振蕩器便能

產(chǎn)生自激振蕩。一般來說晶振可以在1.2~12MHz之間任選,甚至可以達(dá)到

24MHz或者更高,但是頻率越高功耗也就越大。在本實(shí)驗(yàn)套件中采用的12M

的石英晶振。和晶振并聯(lián)的兩個(gè)電容的大小對振蕩頻率有微小影響,可以起到頻

率微調(diào)作用。當(dāng)采用石英晶振時(shí),電容可以在20~40pF之間選擇(本設(shè)計(jì)使用

30pF);當(dāng)采用陶瓷諧振器件時(shí),電容要適當(dāng)?shù)卦龃笠恍?,?0~50pF之間。

5

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

通常選取30pF的陶瓷電容就可以了。

C1

XTAL1

30PFY1

12MHZ

C3

XTAL2

30PF

圖2晶振電路

再來就是復(fù)位電路,復(fù)位電路分為:上電自動復(fù)位和開關(guān)復(fù)位。圖2中所示

的復(fù)位電路就包括了這兩種復(fù)位方式。上電瞬間,電容兩端電壓不能突變,此時(shí)

電容的負(fù)極和RESET相連,電壓全部加在了電阻上,RESET的輸入為高,芯片

被復(fù)位。隨之+5V電源給電容充電,電阻上的電壓逐漸減小,最后約等于0,芯

片正常工作。并聯(lián)在電容的兩端為復(fù)位按鍵,當(dāng)復(fù)位按鍵沒有被按下的時(shí)候電路

實(shí)現(xiàn)上電復(fù)位,在芯片正常工作后,通過按下按鍵使RST管腳出現(xiàn)高電平達(dá)到

手動復(fù)位的效果。一般來說,只要RST管腳上保持10ms以上的高電平,就能使

單片機(jī)有效的復(fù)位。圖中所示的復(fù)位電阻和電容為經(jīng)典值,實(shí)際制作是可以用同

一數(shù)量級的電阻和電容代替,讀者也可自行計(jì)算RC充電時(shí)間或在工作環(huán)境實(shí)際

測量,以確保單片機(jī)的復(fù)位電路可靠。

復(fù)位按鍵

C2

R1

VCC

10K

10UF

RST

圖3復(fù)位電路

完整的STC89C52單片機(jī)最小系統(tǒng)電路圖如圖4所示。

6

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

U3VCC

140

P1.0VCC

復(fù)位按鍵239

P1.1P0.0

338

P1.2P0.1

437

P1.3P0.2

C2536

P1.4P0.3

R1635

VCCP1.5P0.4

734

10KP1.6P0.5

10UF833

P1.7P0.6

U2932

RSTP0.7

11031

TXDP3.0EA/VPPVCC

21130

RXDP3.1ALE

1229

P3.2PSEN

下載口1328

P3.3P2.7

1427

P3.4P2.6

1526

P3.5P2.5

1625

P3.6P2.4

1724

P3.7P2.3

1823

XTAL2P2.2

Y11922

XTAL1P2.1

2021

GNDP2.0

12MHZSTC89C52

C1C3

30PF30PF

圖4STC89C52單片機(jī)最小系統(tǒng)

3.2LCD1602液晶顯示電路設(shè)計(jì)

3.2.1LCD1602的概述

LCD1602液晶也叫LCD1602字符型液晶,它是一種專門用來顯示字母、數(shù)

字、符號等的點(diǎn)陣型液晶模塊。它由若干個(gè)5X7或者5X11等點(diǎn)陣字符位組成,

每個(gè)點(diǎn)陣字符位都可以顯示一個(gè)字符,每位之間有一個(gè)點(diǎn)距的間隔,每行之間也

有間隔,起到了字符間距和行間距的作用,正因?yàn)槿绱怂运荒芎芎玫仫@示圖

形。LCD1602液晶模塊采用HD44780控制器,HD44780具有簡單而功能較強(qiáng)的

指令集,可以實(shí)現(xiàn)字符移動,閃爍等功能,LCD1602與單片機(jī)MCU通訊可采用

8位或4位并行傳輸兩種方式,HD44780控制器由兩個(gè)8位寄存器,指令寄存器

(IR)和數(shù)據(jù)寄存器(DR)忙標(biāo)志(BF),顯示數(shù)RAM(DDRAM),字符發(fā)

生器ROMA(CGOROM)字符發(fā)生器RAM(CGRAM),地址計(jì)數(shù)器RAM(AC)。

IR用于寄存指令碼,只能寫入不能讀出,DR用于寄存數(shù)據(jù),數(shù)據(jù)由內(nèi)部操作自

動寫入DDRAM和CGRAM,或者暫存從DDRAM和CGRAM讀出的數(shù)據(jù),BF

為1時(shí),液晶模塊處于內(nèi)部模式,不響應(yīng)外部操作指令和接受數(shù)據(jù),DDTAM用

來存儲顯示的字符,能存儲80個(gè)字符碼,CGROM由8位字符碼生成5*7點(diǎn)陣

字符160中和5*10點(diǎn)陣字符32種.8位字符編碼和字符的對應(yīng)關(guān)系,CGRAM

是為用戶編寫特殊字符留用的,它的容量僅64字節(jié),可以自定義8個(gè)5*7點(diǎn)陣

字符或者4個(gè)5*10點(diǎn)陣字符,AC可以存儲DDRAM和CGRAM的地址,如果

地址碼隨指令寫入IR,則IR自動把地址碼裝入AC,同時(shí)選擇DDRAM或

7

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

CGRAM,LCD1602液晶實(shí)物圖如圖5所示。

圖5LCD1602液晶實(shí)物圖

3.2.2LCD1602的工作原理

LCD1602一共具有11條指令,單片機(jī)發(fā)送這些指令到LCD1602上就可以

完成一些特定的功能,比如清屏,開關(guān)顯示等等。LCD1602自己帶有字庫在顯

示的時(shí)候可以直接調(diào)用字庫進(jìn)行顯示,當(dāng)然如果字庫中沒有的字符也可以根據(jù)需

要自己自定義字符寫入CGROM中,自定義字符的分辨率為5*8而卻自定義字

符數(shù)量有限需要合理的安排使用,最多可以自定義8個(gè)字符,將自定義字符字模

寫入LCD的CGROM中后就可以隨意的調(diào)用,調(diào)用的方式和正常顯示字符是一

樣的。

控制LCD1602液晶顯示器只要會對LCD1602進(jìn)行讀狀態(tài)操作、寫指令操作、

讀數(shù)據(jù)操作、寫數(shù)據(jù)操作即可具體的操作對應(yīng)的引腳電平如表1所示。

表1LCD1602操作指令對應(yīng)的引腳電平

讀狀態(tài)寫指令讀數(shù)據(jù)寫數(shù)據(jù)

輸RS=L,RS=L,R/W=L,RS=H,RS=H,R/W=L,

入R/W=H,E=HD0-D7=指令碼,E=R/W=H,E=HD0-D7=數(shù)據(jù),E=高

高脈沖脈沖

輸D0-D7=無D0-D7=無

出狀態(tài)數(shù)據(jù)

上表中E為使能端;RS為寄存器選擇,當(dāng)RS=H時(shí)表示選擇數(shù)據(jù)寄存器,

RS=L時(shí)選擇指令寄存器;R/W為信號線,R/W=H時(shí)執(zhí)行讀操作,R/W=L時(shí)執(zhí)

行寫操作。LCD1602具體的讀操作時(shí)序如圖6,寫操作時(shí)序如圖7所示。

8

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

圖6LCD1602讀操作時(shí)序圖

圖7LCD1602寫操作時(shí)序圖

在使用時(shí)候?qū)0-D7連接到51單片機(jī)的P0上方便進(jìn)行數(shù)據(jù)的傳輸,而V0

口接一個(gè)可調(diào)電位器,當(dāng)調(diào)節(jié)電位器位置改變時(shí)接入V0的電壓也隨之變化進(jìn)行

顯示的清晰度也隨之變化,所以在實(shí)際時(shí)采用電位器而不采用固定阻值的電阻就

是為了能夠方便的調(diào)節(jié)以使用在電壓不同的場合。具體LCD1602電路圖如圖8

所示。

9

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

VCCQ1

1

1VSS

R22

VCCVDD

3

VL

RS4

RS

10KR/W5

2R/W

E6

E

D07

D0

D18

D1

D29

D2

D310

D3

D411

D4

D512

D5

D613

D6

D714

D7

15

VCCBLA

16

VLK

LCD1602

圖8LCD1602電路圖

3.3AT24C02的介紹

3.3.1AT24C02的概述

AT24C02是一個(gè)2K位串行CMOSE2PROM,內(nèi)部含有256個(gè)8位字節(jié),

CATALYST公司的先進(jìn)CMOS技術(shù)實(shí)質(zhì)上減少了器件的功耗。AT24C02有一個(gè)

8字節(jié)頁寫緩沖器。該器件通過IIC總線接口進(jìn)行操作,有一個(gè)專門的寫保護(hù)功

能。AT24C02芯片實(shí)物圖如圖9所示。

圖9AT24C02芯片實(shí)物圖

3.3.2AT24C02的引腳說明

AT24C02時(shí)鐘芯片引腳功能描述見表2。

表2AT24C02引腳

引腳名稱功能

1~3A0、A1、A2當(dāng)這些腳懸空時(shí)默認(rèn)值為0。當(dāng)使用AT24C02

時(shí)最大可級聯(lián)8個(gè)器件。如果只有一個(gè)AT24C02被

10

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

總線尋址,這三個(gè)地址輸入腳(A0、A1、A2)可懸空

或連接到GND,如果只有一個(gè)AT24C02被總線尋址

這三個(gè)地址輸入腳(A0、A1、A2)必須連接到GND。

4GND接電源地

5SDA雙向串行數(shù)據(jù)/地址管腳用于器件所有數(shù)據(jù)的發(fā)

送或接收,SDA是一個(gè)開漏輸出管腳,可與其它開

漏輸出或集電極開路輸出進(jìn)行線或(wire-OR)。

6SCL串行時(shí)鐘輸入管腳用于產(chǎn)生器件所有數(shù)據(jù)發(fā)送

或接收的時(shí)鐘,這是一個(gè)輸入管腳。

7WP如果WP管腳連接到VCC,所有的內(nèi)容都被寫保

護(hù)只能讀。當(dāng)WP管腳連接到GND或懸空允許器件

進(jìn)行正常的讀/寫操作

8VCC接+1.8V~6.0V電源

3.3.3AT24C02的工作原理

AT24C02的存儲容量為2Kb,內(nèi)容分成32頁,每頁8B,共256B,操作時(shí)

有兩種尋址方式:芯片尋址和片內(nèi)子地址尋址。

(1)芯片尋址:AT24C02的芯片地址為1010,其地址控制字格式為1010A2

A1A0R/W。其中A2、A1、A0可編程地址選擇位。A2、A1、A0引腳接高、低

電平后得到確定的三位編碼,與1010形成7位編碼,即為該器件的地址碼。R/W

為芯片讀寫控制位,該位為0表示芯片進(jìn)行寫操作,為1表示芯片進(jìn)行讀操作。

(2)片內(nèi)子地址尋址:芯片尋址可對內(nèi)部256B中的任一個(gè)進(jìn)行讀/寫操作,其

尋址范圍為00~FF,共256個(gè)尋址單位。

AT24C02讀/寫操作時(shí)序圖如圖10所示。

11

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

圖10AT24C02讀/寫時(shí)序圖

在本設(shè)計(jì)中只是用到一個(gè)AT24C02芯片所以直接將A0、A1、A2三個(gè)引腳

都連接到GND,而WP寫保護(hù)引腳通用接到GND上,這樣方便讀/寫操作。而

SDA和SCL分別接到單片機(jī)的兩個(gè)引腳上,具體的電路圖如圖3.10所示。

U4

45

GNDSDASDA

36

A2SCLSCL

27

A1SW

18

A0VCCVCC

AT24C02

圖11AT24C02電路圖

3.4藍(lán)牙模塊工作原理

藍(lán)牙,是一種無線電技術(shù),設(shè)備的短距離通信可以用藍(lán)牙來替代。它能夠在

手機(jī)、電腦等之間進(jìn)行傳輸文件等信息,而且無需導(dǎo)線,可以在空氣中傳輸。它

由兩個(gè)部分組成,一個(gè)是發(fā)送端,一個(gè)是接收端,發(fā)送端發(fā)送數(shù)據(jù)通過無線電傳

送到接收端,接收端通過特定的指令接收來自發(fā)送端的數(shù)據(jù),這樣就可以使發(fā)送

接收分離,形成無線通信。然而,也不是無限制的傳輸,無線電在空氣中傳輸是

會有損耗的,而藍(lán)牙通信的無線電的傳輸距離一般只能10米左右,這也就限制

了藍(lán)牙設(shè)備不能長距離地通信。

藍(lán)牙透傳模塊實(shí)際上也是通過串口進(jìn)行通信的,只是將串口的線改為無線而

已。還有就是這個(gè)模塊不用了解藍(lán)牙的協(xié)議,只要知道怎么連接就能用。而且有

些設(shè)置都是默認(rèn)的值,我們可以直接拿來用,比如配對密碼是1234,我們要配

對時(shí)就用這個(gè)密碼,而無需去修改這個(gè)密碼,當(dāng)然如果要保證設(shè)備的安全性,就

12

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

必須將密碼改成自己想要的密碼。這樣別的設(shè)備就無法與其配對,保證了安全性。

使用時(shí)先上電,紅燈會閃爍,表示還沒連接,正在等待連接。這時(shí)候就可以

打開手機(jī)的藍(lán)牙,搜索藍(lán)牙模塊的信號,找到之后點(diǎn)擊與其連接,此時(shí)手機(jī)會提

醒輸入密碼進(jìn)行配對,輸入后藍(lán)牙模塊和手機(jī)就開始建立連接,連接成功后紅燈

會一直處于亮的狀態(tài),這個(gè)時(shí)候就表明已經(jīng)連接成功了。當(dāng)手機(jī)按某個(gè)鍵時(shí)就會

發(fā)送一個(gè)字符過去,藍(lán)牙模塊接收后就會通過串口將接收到的字符傳送給單片機(jī),

這樣單片機(jī)就可以做出相應(yīng)的動作。

3.5原理圖繪制軟件的介紹

AltiumDesigner是Altium公司于2004年推出的電路設(shè)計(jì)軟件版本,該軟件

能實(shí)現(xiàn)從概念設(shè)計(jì),頂層設(shè)計(jì)直到輸出生產(chǎn)數(shù)據(jù)以及這之間的所有分析驗(yàn)證和設(shè)

計(jì)數(shù)據(jù)的管理。當(dāng)前比較流行的Protel98、Protel99SE和ProtelDXP,就是它的

前期版本。

AltiumDesigner2004已不是單純的PCB(印制電路板)設(shè)計(jì)工具,而是由多個(gè)

模塊組成的系統(tǒng)工具,分別是SCH(原理圖)設(shè)計(jì)、SCH(原理圖)仿真、PCB(印制

電路板)設(shè)計(jì)、AutoRouter(自動布線器)和FPGA設(shè)計(jì)及嵌入式軟件開發(fā)等,覆蓋

了以PCB為核心的整個(gè)物理設(shè)計(jì)。該軟件將項(xiàng)目管理方式、原理圖和PCB圖的

雙向同步技術(shù)、多通道設(shè)計(jì)、拓樸自動布線以及電路仿真等技術(shù)結(jié)合在一起,為

電路設(shè)計(jì)提供了強(qiáng)大的支持。

與較早的版本Protel99相比,AltiumDesigner2004不僅在外觀上顯得更加豪

華、人性化,而且極大地強(qiáng)化了電路設(shè)計(jì)的同步化,同時(shí)整合了VHDL和FPGA

設(shè)計(jì)系統(tǒng),其功能大大加強(qiáng)了。

4系統(tǒng)軟件部分設(shè)計(jì)

4.1軟件開發(fā)環(huán)境的介紹

本設(shè)計(jì)采用KeilμVision4進(jìn)行編程實(shí)現(xiàn)。KeilC51是美國KeilSoftware

公司出品的51系列兼容單片機(jī)C語言軟件開發(fā)系統(tǒng),與匯編相比,C語言在功

能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢,因而易學(xué)易用。Keil提供了

包括C編譯器、宏匯編、連接器、庫管理和一個(gè)功能強(qiáng)大的仿真調(diào)試器等在內(nèi)

的完整開發(fā)方案,通過一個(gè)集成開發(fā)環(huán)境(uVision)將這些部分組合在一起。

13

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

運(yùn)行Keil軟件需要WIN98、NT、WIN2000、WINXP等操作系統(tǒng)。如果你使用C

語言編程,那么Keil幾乎就是你的不二之選,即使不使用C語言而僅用匯編語

言編程,其方便易用的集成環(huán)境、強(qiáng)大的軟件仿真調(diào)試工具也會令你事半功倍。

4.2系統(tǒng)重要函數(shù)的介紹

4.2.1主函數(shù)的設(shè)計(jì)

主函數(shù)voidmain()是程序的入口函數(shù),一個(gè)完整的程序必須要包含該函數(shù)。

在該函數(shù)的開頭一般都是先對單片機(jī)和一些外圍器件需要進(jìn)行初始化才能正常

使用的器件進(jìn)行初始化和重新賦值一些變量,初始化完后進(jìn)去死循環(huán),如果不進(jìn)

入死循環(huán)程序運(yùn)行一次就會退出,如果加入死循環(huán)程序就會不斷地進(jìn)行循環(huán)達(dá)到

實(shí)時(shí)檢測執(zhí)行的目的。在主程序的設(shè)計(jì)中需要注意的是主函數(shù)中不宜放過多的代

碼,具體的代碼一般都是采用函數(shù)進(jìn)行封裝然后在主函數(shù)進(jìn)行調(diào)用,這樣也可以

方便閱讀修改。具體流程圖如下14所示。

開始

LCD1602初始化

定時(shí)器初始化

讀取存于AT24C02

中的密碼等信息

判斷是否鍵盤鎖定

error_num>=3?

蜂鳴器、LED燈警

顯示解鎖倒計(jì)時(shí)否

讀取藍(lán)牙接收的數(shù)

據(jù)

將接收數(shù)據(jù)處理

圖14主函數(shù)流程圖

14

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

4.2.2LCD1602顯示函數(shù)的設(shè)計(jì)

LCD1602的顯示只需要嚴(yán)格的按照廠家的時(shí)序要求進(jìn)行編程就可以完成顯

示。LCD602的液晶顯示首先需要將需要顯示地方的地址通過命令寫入,然后將

數(shù)據(jù)按順序的進(jìn)行寫入即可。在寫入地址后顯示第一個(gè)內(nèi)容后地址會自動加一。

函數(shù)名lcd1602_write_character(ucharx,uchary,uchar*p),參數(shù)為x,y,*s,

其中的x,y表示在液晶顯示屏上的位置坐標(biāo),*s是需要顯示的字符數(shù)組。軟件

根據(jù)輸入需要顯示的位置坐標(biāo)計(jì)算出地址。顯示函數(shù)流程圖如圖15所示。

開始

LCD1602初始化

定時(shí)器初始化

讀取存于AT24C02

中的密碼等信息

判斷是否鍵盤鎖定

error_num>=3?

蜂鳴器、LED燈警

顯示解鎖倒計(jì)時(shí)否

讀取藍(lán)牙接收的數(shù)

據(jù)

將接收數(shù)據(jù)處理

圖15顯示子函數(shù)流程圖

15

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

4.2.3LCD1602顯示子程序設(shè)計(jì)

首先需要將顯示位置的地址通過命令寫入,然后將數(shù)據(jù)按順序的進(jìn)行寫入即

可。在寫入地址后顯示第一個(gè)內(nèi)容后地址會自動加一。函數(shù)名

lcd1602_write_character(ucharx,uchary,uchar*p),參數(shù)為x,y,*s,其中的

x,y表示在液晶顯示屏上的位置坐標(biāo),*s是需要顯示的字符數(shù)組。程序會根據(jù)

位置坐標(biāo)計(jì)算出顯示位置的首地址。

開始

y=1?否

Add=0x80+x;Add=0xc0+x;

寫入地址

*s!=‘\0’?

寫入*s數(shù)據(jù)

地址s++

返回

圖16LCD1602顯示子程序設(shè)計(jì)圖

4.3系統(tǒng)軟件測試

測試所需的工具:KEIL軟件、系統(tǒng)硬件、PL2303下載器等。

系統(tǒng)的軟件方面通過KEIL軟件進(jìn)行編寫,將編寫好的程序生成.HEX文件

16

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

后通過PL2303下載器下載到單片機(jī)中。通過觀察整個(gè)系統(tǒng)運(yùn)行的狀態(tài),然后進(jìn)

行反復(fù)的修改調(diào)試程序,最終得到一個(gè)完善的程序。

在系統(tǒng)軟件調(diào)試上主要遇到以下幾個(gè)問題:

(1)在向LCD1602液晶發(fā)送清屏指令的時(shí)候,LCD1602并未成功的清楚屏幕。

解決方法:通過查閱LCD1602的使用手冊,得到清屏的指令的確是0x01和

程序上寫的完全相同,而卻顯示屏可以顯示出內(nèi)容這表明程序發(fā)送指令是沒有錯

誤的,但是顯示并未清屏。于是懷疑是否發(fā)送了清屏指令后里面進(jìn)去下一個(gè)內(nèi)容

的顯示,而LCD1602的處理速度不夠,所以并未正真的執(zhí)行清屏指令。通過添

加40ms的延時(shí)后,重新下載進(jìn)程序后發(fā)現(xiàn)清屏指令被執(zhí)行了。通過仔細(xì)的閱讀

手冊發(fā)現(xiàn),LCD1602清屏的確需要1.64ms的執(zhí)行時(shí)間,最終程序采用了4ms的

延時(shí)。

(2)AT24C02數(shù)據(jù)存儲失敗,存儲后數(shù)據(jù)并未發(fā)生變化。

解決方法:在兩次存儲的直接添加了一個(gè)延時(shí)后數(shù)據(jù)開始正常的存儲了,可能是

在存儲第一個(gè)數(shù)據(jù)后芯片并未存儲完數(shù)據(jù)立馬又執(zhí)行存儲下一個(gè)數(shù)據(jù)。

溫馨提示

  • 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

提交評論