版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> 多功能電子鐘的設(shè)計與實現(xiàn)—硬件部分</p><p><b> 摘 要</b></p><p> 電子時鐘主要是利用電子技術(shù)將時鐘電子化、數(shù)字化,擁有時鐘精確、體積小、界面友好、可擴展性能強等特點,被廣泛應(yīng)用于生活和工作當中。另外,在生活和工農(nóng)業(yè)生產(chǎn)中,也常常需要溫度,這就需要電子時鐘具有多功能性。</p><p>
2、 本設(shè)計主要為實現(xiàn)一款可正常顯示時鐘/日歷、測量環(huán)境溫度、帶有定時鬧鈴的多功能電子時鐘。</p><p> 本文對當前電子鐘開發(fā)手段進行了比較和分析,最終確定了采用單片機技術(shù)實現(xiàn)多功能電子時鐘。本設(shè)計應(yīng)用AT89C51芯片作為核心,7位LED數(shù)碼管顯示,使用DS1302實時時鐘日歷芯片完成時鐘/日歷的基本功能,同時利用DS18B20溫度傳感器測量環(huán)境溫度。這種實現(xiàn)方法的優(yōu)點是電路簡單,性能可靠,實時性好,時間和
3、溫度精度高,操作簡單,編程容易。</p><p> 該電子時鐘可以應(yīng)用于一般的生活和工作中,也可通過改裝,提高性能,增加新功能,從而給人們的生活和工作帶來更多的方便。</p><p> 關(guān)鍵詞:電子時鐘;多功能;AT89C51;時鐘日歷芯片;溫度傳感器</p><p> The Design with Investigation of the Multi-fu
4、nction Electron Clock</p><p> ?。璗he Design of the Hardware </p><p><b> Abstract</b></p><p> The electronic clock mainly uses the electronic technology make the clock c
5、omputerization, the digitization, with the clock precision, small size, friendly interface, scalable performance and other characteristics, was widely used in life and work. Measuring temperature, in life, industry and a
6、gricultural production, so electronic clock need multi-function.</p><p> The design for the main implementing a clock/calendar can be displayed normal, collecting personal ambient temperature, with the timi
7、ng alarm of the multi-function electronic clock.</p><p> Comparing and analysising the development technology of the electron clock, the design determines to use the MCU technology to realize the multi-func
8、tional electron clock. This design application AT89C51 as a core chips, 7 LED digital displaying, using DS1302 real-time clock chip to complete the basic function of the clock/calendar. At the same time the design use o
9、f DS18B20 temperature sensors to collect the environmental temperature. The method has the advantage of being simple circuit, relia</p><p> The electronic clock can be applied to the general living and work
10、ing ,can also be modified to improve performance, add new functions, and brings more convenient to people’s life and work.</p><p> Key words: Electronic clock; Multi-function; AT89C51; DS1302; Temperature p
11、ickup </p><p><b> 目 錄</b></p><p><b> 摘 要I</b></p><p> AbstractII</p><p><b> 第一章 引 言1</b></p><p> 1.1 多功能電子時鐘研
12、究的背景和意義1</p><p> 1.2 電子時鐘的功能2</p><p> 第二章 電子時鐘設(shè)計方案分析3</p><p> 2.1 FPGA設(shè)計方案3</p><p> 2.2 NE555時基電路設(shè)計方案3</p><p> 2.3 單片機設(shè)計方案4</p><p>
13、 第三章 基于單片機的電子時鐘硬件設(shè)計6</p><p> 3.1 主要IC芯片選擇6</p><p> 3.1.1 微處理器選擇6</p><p> 3.1.2.1常用時鐘日歷芯片比較7</p><p> 3.1.2.2 DS1302簡介8</p><p> 3.1.2.3 DS1302引腳說明
14、8</p><p> 3.1.2.4 DS1302的控制字和讀寫時序說明9</p><p> 3.2.1.5 DS1302的片內(nèi)寄存器11</p><p> 3.1.2 環(huán)境溫度傳感器選擇13</p><p> 3.1.3.1 常用溫度傳感器比較13</p><p> 3.1.3.2 DS18B20
15、簡介14</p><p> 3.1.3.2 DS18B20內(nèi)部結(jié)構(gòu)15</p><p> 3.2 電子時鐘硬件電路設(shè)計16</p><p> 3.2.1 時鐘電路設(shè)計17</p><p> 3.2.2 環(huán)境溫度采集電路設(shè)計18</p><p> 3.2.3 顯示電路19</p>&l
16、t;p> 3.2.4 按鍵電路設(shè)計20</p><p> 3.2.5 鬧鈴電路設(shè)計22</p><p> 3.2.6 復(fù)位電路設(shè)計23</p><p> 第四章 電子時鐘軟件設(shè)計25</p><p> 4.1 主程序設(shè)計25</p><p> 4.2 子程序設(shè)計26</p>
17、<p> 4.2.1 實時時鐘日歷子程序設(shè)計26</p><p> 4.2.2 環(huán)境溫度采集子程序設(shè)計26</p><p> 4.2.3 顯示子程序設(shè)計30</p><p> 4.2.4 鍵盤掃描子程序30</p><p> 4.2.5 鬧鈴子程序設(shè)計31</p><p> 第五章 系統(tǒng)
18、調(diào)試35</p><p> 5.1 硬件調(diào)試36</p><p> 5.1.1 單片機基礎(chǔ)電路調(diào)試36</p><p> 5.1.2 顯示電路調(diào)試37</p><p> 5.1.3 DS1302電路調(diào)試39</p><p> 5.1.4 按鍵電路調(diào)試40</p><p>
19、 5.2 軟件調(diào)試40</p><p> 5.2.1 環(huán)境溫度采集子程序調(diào)試41</p><p> 5.2.2 鍵盤子程序調(diào)試41</p><p><b> 結(jié) 論42</b></p><p><b> 參考文獻43</b></p><p> 附錄A
20、程序45</p><p> 附錄B 多功能電子時鐘元器件一覽表77</p><p> 附錄C 多功能電子時鐘硬件電路圖78</p><p> 附錄D 環(huán)境溫度測量仿真電路圖79</p><p><b> 致 謝82</b></p><p><b> 引 言<
21、/b></p><p> 時間是人類生活必不可少的重要元素,如果沒有時間的概念,社會將不會有所發(fā)展和進步。從古代的水漏、十二天干地支,到后來的機械鐘表以及當今的石英鐘,都充分顯現(xiàn)出了時間的重要,同時也代表著科技的進步。致力于計時器的研究和充分發(fā)揮時鐘的作用,將有著重要的意義。</p><p> 多功能電子時鐘研究的背景和意義</p><p> 20世紀末
22、,電子技術(shù)獲得了飛速的發(fā)展。在其推動下,現(xiàn)代電子產(chǎn)品幾乎滲透到了社會的各個領(lǐng)域,有力的推動和提高了社會生產(chǎn)力的發(fā)展與信息化程度,同時也使現(xiàn)代電子產(chǎn)品性能進一步提升,產(chǎn)品更新?lián)Q代的節(jié)奏也越來越快。 時間對人們來說總是那么寶貴,工作的忙碌性和繁雜容易使人忘記當前的時間。然而遇到重大事情的時候,一旦忘記時間,就會給自己或他人造成很大麻煩。平時我們要求上班準時,約會或召開會議必然要提及時間;火車要準點到達,航班要準點起飛;工業(yè)生產(chǎn)中,
23、很多環(huán)節(jié)都需要用時間來確定工序替換時刻。所以說能隨時準確的知道時間并利用時間,是我們生活和工作中必不可少的[1]。</p><p> 想知道時間,手表當然是一個很好的選擇,但是,在忙碌當中,我們還需要一個“助理” 及時的給我們提醒時間。所以,計時器最好能夠擁有一個定時系統(tǒng),隨時提醒容易忘記時間的人。 最早能夠定時、報時的時鐘屬于機械式鐘表,但這種時鐘受到機械結(jié)構(gòu)、動力和體積的限制,在功能、性能以及造價上都沒辦法
24、與電子時鐘相比。 電子鐘是采用電子電路實現(xiàn)對時、分、秒進行數(shù)字顯示的計時裝置,廣泛應(yīng)用于個人家庭,車站, 碼頭辦公室等公共場所,成為人們?nèi)粘I钪胁豢缮俚谋匦杵?。由于?shù)字集成電路的發(fā)展和石英晶體振蕩器的廣泛應(yīng)用,使得數(shù)字鐘的精度,遠遠超過老式鐘表,鐘表的數(shù)字化給人們生產(chǎn)生活帶來了極大的方便,而且大大地擴展了鐘表原先的報時功能。諸如定時自動報警、0按時自動打鈴、定時廣播、自動起閉路燈、定時開關(guān)烘箱、通斷動力設(shè)備、甚至各種定時電氣的
25、自動啟用等,所有這些,都是以鐘表數(shù)字化為基礎(chǔ)的。因此,研究數(shù)字鐘及擴大其應(yīng)用,有著非?,F(xiàn)實的意義。</p><p> 另外,溫度實時顯示系統(tǒng)應(yīng)用同樣越來越廣泛,比如空調(diào)遙控器上當前室溫的顯示、熱水器溫度的顯示等等。醫(yī)藥衛(wèi)生、工農(nóng)業(yè)生產(chǎn)上也有很多場合需要測量環(huán)境溫度。</p><p> 如果能夠在電子時鐘上附加溫度采集功能,將使電子時鐘的應(yīng)用更加廣泛。</p><p&
26、gt;<b> 電子時鐘的功能</b></p><p> 電子時鐘主要是利用電子技術(shù)將時鐘電子化、數(shù)字化,擁有時間精確、體積小、界面友好、可擴展性能強等特點,被廣泛應(yīng)用于生活和工作當中。當今市場上的電子時鐘品類繁多,外形小巧別致。也有體型較大的,諸如公共場所的大型電子報時器等。電子時鐘首先是數(shù)字化了的時間顯示或報時器,在此基礎(chǔ)上,人們可以根據(jù)不同場合的要求,在時鐘上加置其他功能,比如定時
27、鬧鈴,萬年歷,環(huán)境溫度、濕度檢測,環(huán)境空氣質(zhì)量檢測,USB擴展口功能等。</p><p> 本設(shè)計電子時鐘主要功能為:</p><p> 具有時間顯示和手動校對功能,24小時制;</p><p> 具有年、月、日顯示和手動校對功能;</p><p><b> 具有鬧鈴功能;</b></p><
28、p><b> 具有貪睡功能;</b></p><p> 具有環(huán)境溫度采集和顯示功能;</p><p> 掉電后無需重新設(shè)置時間和日期;</p><p> 采用交直流供電電源。交流供電為主,直流電源為后備輔助電源,并能自動切換。</p><p> 電子時鐘設(shè)計方案分析</p><p>
29、; 電子鬧鐘既可以通過純硬件實現(xiàn),也可以通過軟硬件結(jié)合實現(xiàn),根據(jù)電子時鐘里的核心部件——秒信號的產(chǎn)生原理,通常有以下三種形式:</p><p><b> FPGA設(shè)計方案</b></p><p> 現(xiàn)場可編程門陣列(Field Programmable Gate Array,F(xiàn)PGA),是20世紀70年代發(fā)展起來的一種可編程邏輯器件,是目前數(shù)字系統(tǒng)設(shè)計的主要硬件
30、基礎(chǔ)。FPGA在結(jié)構(gòu)上由邏輯功能塊排列為陣列,并由可編程的內(nèi)部連線連接這些功能塊,來實現(xiàn)一定的邏輯功能。</p><p> 可編程邏輯器件的設(shè)計過程是利用EDA開發(fā)軟件和編程工具對器件進行開發(fā)的過程。由于EDA技術(shù)擁有系統(tǒng)的模擬和仿真功能,可讀性、可重復(fù)性、可測性非常好,所以利用EDA開發(fā)FPGA是目前比較流行的方式。當然,有時根據(jù)需要,也會應(yīng)用MAX+plus開發(fā)集成環(huán)境進行設(shè)計。</p>&l
31、t;p> 正因為FPGA在設(shè)計過程中方便、快捷,而且FPGA技術(shù)功能強大,能夠應(yīng)用其制作諸如基代碼發(fā)生器、數(shù)字頻率計、電子琴、電梯控制器、自動售貨機控制系統(tǒng)、多功能波形發(fā)生器、步進電機定位控制系統(tǒng)、電子時鐘等。</p><p> 應(yīng)用FPGA能夠?qū)r鐘設(shè)計為為四種類型:全局時鐘、門控時鐘、多級邏輯時鐘和波動式時鐘。多時鐘系統(tǒng)能夠包括上述四種時鐘類型的任意組合[2][3][4]。</p>&
32、lt;p> NE555時基電路設(shè)計方案</p><p> 555定時器是美國Signetics公司1972年研制的用于取代機械式定時器的中規(guī)模集成電路,因輸入端設(shè)計有三個5KΩ的電阻而得名。目前,流行的產(chǎn)品主要有4種:BJT兩個:555,556(含有兩個555);CMOS兩個:7555,7556(含有兩個7555)。</p><p> 555定時器是一種數(shù)字與模擬混合型的集成電
33、路,應(yīng)用廣泛。成本較低,外加電阻、電容等元件就可以構(gòu)成多諧振蕩器、單穩(wěn)電路、施密特觸發(fā)器等,常作為定時器廣泛應(yīng)用于儀器儀表、家用電器、電子測量及自動控制等領(lǐng)域[5]。</p><p> 采用NE555時基電路或其他振蕩電路產(chǎn)生秒脈沖信號,作為秒加法電路的時鐘信號或微處理器的外部中斷輸入信號,可構(gòu)成電子鐘。由555構(gòu)成的秒脈沖發(fā)生器電路見圖2.1。輸出的脈沖信號V0的頻率F為:</p><p&
34、gt;<b> 式(2.1)</b></p><p> 可通過調(diào)節(jié)式2.1中的3個參數(shù),使輸出V0的頻率為精確的1Hz。</p><p> 圖2.1 基于555的秒脈沖發(fā)生器</p><p> 采用555定時器設(shè)計電子時鐘,成本低,容易實現(xiàn)。但是受芯片引腳數(shù)量和功能限制,不容易實現(xiàn)電子時鐘的多功能性。</p><p&
35、gt;<b> 單片機設(shè)計方案</b></p><p> 單片機是微型機的一個主要分支,它在結(jié)構(gòu)上的最大特點使把CPU、存儲器、定時器和多種輸入/輸出接口電路集成在一塊超大規(guī)模集成電路芯片上。就其組成和功能而言,一塊單片機芯片就是一臺計算機。</p><p> 單片機具有如下特點:</p><p> 有優(yōu)異的性能價格比;</p&g
36、t;<p> 集成度高、體積小、有很高的可靠性;</p><p><b> 控制功能強;</b></p><p> 低功耗、低電壓,便于生產(chǎn)便攜式產(chǎn)品;</p><p> 外部總線增加了I2C、SPI等串行總線方式,進一步縮小了體積,簡化了結(jié)構(gòu);</p><p> 單片機的系統(tǒng)擴展、系統(tǒng)配置較典型
37、、規(guī)范,容易構(gòu)成各種規(guī)模的應(yīng)用系統(tǒng)。</p><p> 所以單片機的應(yīng)用非常廣泛,在智能儀表、機電一體化、實時控制、分布式多機系統(tǒng)以及人們的生活中均有用武之地。單片機應(yīng)用的重要意義還在于,它從根本上改變了傳統(tǒng)的控制系統(tǒng)設(shè)計思路和設(shè)計方法。從前必須由模擬電路或數(shù)字電路實現(xiàn)的大部分功能,現(xiàn)在已能用單片機通過軟件方法來實現(xiàn)了。這種用軟件代替硬件的控制技術(shù),是對生產(chǎn)控制技術(shù)的一次革命。</p><p
38、> 利用單片機的智能性,可方便地實現(xiàn)具有智能的電子鐘設(shè)計。單片機均具有時鐘振蕩系統(tǒng),利用系統(tǒng)時鐘借助微處理器的定時器/計數(shù)器可實現(xiàn)電子鐘功能。然而系統(tǒng)時鐘誤差較大,電子鐘的積累誤差也可能較大,所以可以通過誤差修正軟件加以修正,或者在設(shè)計中加入高精度時鐘日歷芯片,以精確時間。另外很多功能不同的單片機是兼容的,這就更便于實現(xiàn)產(chǎn)品的多功能性。</p><p> 基于單片機的電子時鐘硬件設(shè)計</p>
39、<p> 在比較了第二章的三種實現(xiàn)方案之后,考慮單片機貨源充足、價格低廉,可軟硬件結(jié)合使用,能夠較方便的實現(xiàn)系統(tǒng)的多功能性,故采用單片機作為本設(shè)計的硬件基礎(chǔ)。</p><p><b> 主要IC芯片選擇</b></p><p><b> 微處理器選擇</b></p><p> 目前在單片機系統(tǒng)中,應(yīng)用
40、比較廣泛的微處理器芯片主要為8XC5X系列單片機。該系列單片機均采用標準MCS-51內(nèi)核,硬件資源相互兼容,品類齊全,功能完善,性能穩(wěn)定,體積小,價格低廉,貨源充足,調(diào)試和編程方便,所以應(yīng)用極為廣泛。</p><p> 例如比較常用的AT89C2051單片機,帶有2KB Flash可編程、可擦除只讀存儲器(E2PROM)的低壓、高性能8位CMOS微型計算機。擁有15條可編程I/O引腳,2個16位定時器/計數(shù)器,
41、6個中斷源,可編程串行UART通道,并能直接驅(qū)動LED輸出。</p><p> 僅僅是為了完成時鐘設(shè)計或者是環(huán)境溫度采集設(shè)計,應(yīng)用AT89C2051單片機完全可以實現(xiàn)。但是將兩種功能結(jié)合在一片單片機上,就需要更多的I/O引腳,故本設(shè)計采用具有32根I/O引腳的AT89C51單片機。</p><p> AT89C51單片機是一款低功耗,低電壓,高性能CMOS 8位單片機,片內(nèi)含4KB(可
42、經(jīng)受1000次擦寫周期)的FLASH可編程可反復(fù)擦寫的只讀程序存儲器(EPROM),器件采用CMOS工藝和ATMEI公司的高密度、非易失性存儲器(NURAM)技術(shù)制造,其輸出引腳和指令系統(tǒng)都與MCS-51兼容。片內(nèi)的FLASH存儲器允許在系統(tǒng)內(nèi)可改編程序或用常規(guī)的非易失性存儲器編程器來編程。因此,AT89C51是一種功能強,靈活性高且價格合理的單片機,可方便的應(yīng)用在各個控制領(lǐng)域[6]。</p><p> AT8
43、9C51具有以下主要性能:</p><p> 4KB可改編程序Flash存儲器;</p><p> 全靜態(tài)工作:0——24Hz;</p><p> 128×8字節(jié)內(nèi)部RAM;</p><p> 32個外部雙向輸入/輸出(I/O)口;</p><p> 6個中斷優(yōu)先級; 2個16位可編程定時計數(shù)器;&
44、lt;/p><p><b> 可編程串行通道;</b></p><p><b> 片內(nèi)時鐘振蕩器。</b></p><p> 此外,AT89C51是用靜態(tài)邏輯來設(shè)計的,其工作頻率可下降到0Hz,并提供兩種可用軟件來選擇的省電方式——空閑方式(Idle Mode)和掉電方式(Power Down Mode)。在空閑方式中,
45、CPU停止工作,而RAM、定時器/計數(shù)器、串行口和中斷系統(tǒng)都繼續(xù)工作。在掉電方式中,片內(nèi)振蕩器停止工作,由于時鐘被“凍結(jié)”,使一切功能都暫停,只保存片內(nèi)RAM中的內(nèi)容,直到下一次硬件復(fù)位為止[8]。</p><p> 圖3.1 AT89C51芯片PDIP封裝引腳圖</p><p> AT89C51為適應(yīng)不同的產(chǎn)品需求,采用PDIP、TQFP、PLCC三種封裝形式,本系統(tǒng)采用雙列直插PD
46、IP封裝形式,如圖3.1。時鐘日歷芯片選擇</p><p> 3.1.2.1常用時鐘日歷芯片比較</p><p> 在電子時鐘設(shè)計中,常用的實時時鐘芯片有DS12887、DS1216、DS1643、DS1302。每種芯片的主要時鐘功能基本相同,只是在引腳數(shù)量、備用電池的安裝方式、計時精度和擴展功能等方面略有不同。DS12887與DS1216芯片都有內(nèi)嵌式鋰電池作為備用電池; X1203
47、引腳少,沒有嵌入式鋰電池,跟DS1302芯片功能相似,只是相比較之下,X1203與AT89S51搭配使用時占用I/O口較多。DS1643為帶有全功能實時時鐘的8K×8非易失性SRAM,集成了非易失性SRAM、實時時鐘、晶振、電源掉電控制電路和鋰電池電源,BCD碼表示的年、月、日、星期、時、分、秒,帶閏年補償。同樣,DS1643擁有28只管腳,硬件連接起來占用微處理器I/O口較多,不方便系統(tǒng)功能拓展和維護。故而從性價比和貨源上考
48、慮,本設(shè)計采用實時時鐘日歷芯片DS1302。</p><p> 3.1.2.2 DS1302簡介</p><p> DS1302是美國DALLAS公司推出的一種高性能、低功耗的實時時鐘日歷芯片,附加31字節(jié)靜態(tài)RAM,采用SPI三線接口與CPU進行同步通信,并可采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號和RAM數(shù)據(jù)。實時時鐘可提供秒、分、時、日、星期、月和年,一個月小于31天時可以自動調(diào)整
49、,且具有閏年補償功能。工作電壓寬達2.5~5.5V。采用雙電源供電(主電源和備用電源),可設(shè)置備用電源充電方式,提供了對后備電源進行涓細電流充電的能力。有主電源和備份電源雙引腳,而且備份電源可由大容量電容(>1F)來替代。需要強調(diào)的是,DS1302需要使用32.768KHz的晶振。</p><p> 3.1.2.3 DS1302引腳說明</p><p> DS1302引腳圖參照圖3.2
50、。</p><p> 圖3.2 DS1302芯片引腳圖</p><p> 其的引腳功能參照表3.1。</p><p> 表3.1 DS1302引腳功能說明</p><p> 3.1.2.4 DS1302的控制字和讀寫時序說明</p><p> 在編程過程中要注意DS1302的讀寫時序。DS1302是SPI總線
51、驅(qū)動方式。它不僅要向寄存器寫入控制字,還需要讀取相應(yīng)寄存器的數(shù)據(jù)。要想與DS1302通信,首先要先了解DS1302的控制字。DS1302的控制字如表3.2。</p><p> 表3.2 DS1302控制字(即地址及命令字節(jié))</p><p> 控制字的作用是設(shè)定DS1302的工作方式、傳送字節(jié)數(shù)等。每次數(shù)據(jù)的傳輸都是由控制字開始??刂谱指魑坏暮x和作用如下:</p>&l
52、t;p> BIT7:控制字的最高有效位,必須是邏輯1,如果它為0,則不能把數(shù)據(jù)寫入到DS1302中。</p><p> BIT 6:如果為0,則表示存取日歷時鐘數(shù)據(jù),為1表示存取RAM數(shù)據(jù);</p><p> BIT 5至BIT 1(A4~A0):用A4~A0表示,定義片內(nèi)寄存器和RAM的地址。</p><p><b> 定義如下:</
53、b></p><p> 當BIT 6位=0時,定義時鐘和其他寄存器的地址。A4~A0=0~6,順序為秒、分、時、日、月、星期、年的寄存器。當A4~A0=7,為芯片寫保護寄存器地址。當A4~A0=8,為慢速充電參數(shù)選擇寄存器。當A4~A0=31,為時鐘多字節(jié)方式選擇寄存器。</p><p> 當BIT 6=1時,定義RAM的地址,A4~A0=0~30,對應(yīng)各子地址的RAM,地址31
54、對應(yīng)的是RAM多字節(jié)方式選擇寄存器。</p><p> BIT 0(最低有效位):如為0,表示要進行寫操作,為1表示進行讀操作。</p><p> 控制字總是從最低位開始輸出。在控制字指令輸入后的下一個SCLK時鐘的上升沿時,數(shù)據(jù)被寫入DS1302,數(shù)據(jù)輸入從最低位(0位)開始。同樣,在緊跟8位的控制字指令后的下一個SCLK脈沖的下降沿,讀出DS1302的數(shù)據(jù),讀出的數(shù)據(jù)也是從最低位到
55、最高位。</p><p> 圖3.3 DS1302數(shù)據(jù)讀寫時序</p><p> DS1302的數(shù)據(jù)讀寫方式有兩種,一種是單字節(jié)操作方式,一種是多字節(jié)操作方式。每次僅寫入或讀出一個字節(jié)數(shù)據(jù)稱為單字節(jié)操作,每次對時鐘/日歷的8字節(jié)或31字節(jié)RAM進行全體寫入或讀出的操作,稱其為多字節(jié)操作方式。當以多字節(jié)方式寫時鐘寄存器時,必須按數(shù)據(jù)傳送的次序依次寫入8個寄存器。但是,當以多字節(jié)方式寫RA
56、M時,不必寫所有31字節(jié)。不管是否寫了全部31字節(jié),所寫的每一個字節(jié)都將傳送至RAM。</p><p> 為了啟動數(shù)據(jù)的傳輸,CE引腳信號應(yīng)由低變高,當把CE驅(qū)動至邏輯1的狀態(tài)時,SCLK必須為邏輯0,數(shù)據(jù)在SCLK的上升沿串行輸入。無論是讀周期還是寫周期,也無論送方式是單字節(jié)傳送還是多字節(jié)傳送,都要通過控制字指定40字節(jié)中的哪個將被訪問。在開始8個時鐘周期把命令字(具有地址和控制信息的8位數(shù)據(jù))裝入移位寄存器
57、之后,另外的時鐘在讀操作時輸出數(shù)據(jù),在寫操作時輸入數(shù)據(jù),所有的數(shù)據(jù)在時鐘的下降沿變化。所有寫入或讀出操作都是先向芯片發(fā)送一個命令字節(jié)。對于單字節(jié)操作,包括命令字節(jié)在內(nèi),每次為2個字節(jié),需要16個時鐘;對于時鐘/日歷多字節(jié)模式操作,每次為7個字節(jié),需要72個時鐘;而對于RAM多字節(jié)模式操作,每次則為32字節(jié),需要多達256個時鐘。這里僅給出單字節(jié)讀寫時序,如圖3.3。多字節(jié)操作方式與其類似,只是后面跟的字節(jié)數(shù)不止一個。</p>
58、<p> 3.2.1.5 DS1302的片內(nèi)寄存器</p><p> 表3.3 DS1302有關(guān)日歷、時間的寄存器</p><p> 通過控制字對DS1302片內(nèi)寄存器進行尋址之后,即可就所選中寄存器的各位進行操作。片內(nèi)各寄存器及各位的功能定義如表3.3。</p><p> DS1302有關(guān)日歷、時間的寄存器共有10個,時鐘/日歷包含在其中的7
59、個寫/讀寄存器內(nèi),這7個寄存器分別是秒、分、小時、日、月、星期和年。</p><p> 小時寄存器(85H、84H)的位7用于定義DS1302是運行于12小時模式還是24小時模式。當為12小時制式時,位5為“0”表示AM;為“1”表示PM。在24小時制式下,位5是第二個10小時位(20~23時)。 </p><p> 秒寄存器(81H、80H)的位7定義為時鐘暫停標志(CH
60、)。當該位置為1時,時鐘振蕩器停止,DS1302處于低功耗狀態(tài);當該位置為0時,時鐘開始運行。一般在設(shè)置時鐘時,可以停止其工作,設(shè)定完之后,再啟動其工作。</p><p> 控制寄存器(8FH、8EH)的位7是寫保護位(WP),其它7位均置為0。在任何片內(nèi)時鐘/日歷寄存器和RAM,在寫操作之前,WP位必須為0,否則將不可寫入。當WP位為1時,寫保護位防止對任一寄存器的寫操作。因此,通過置寫保護位,可以提高數(shù)據(jù)的
61、安全性。另外,還有慢速充電控制寄存器和RAM寄存器。如表3.4。</p><p> 表3.4充電控制寄存器和RAM寄存器各位定義</p><p> 慢速充電寄存器控制著DS1302的慢速充電特性。寄存器的BIT4~BIT7(TCS)決定是否具備充電性能:僅在編碼為1010的條件下才具備充電性能,其他編碼組合不允許充電。</p><p> BIT2和BIT3選擇
62、在VCC2和VCC1之間是一個還是兩個二極管串入其中。如果編碼DS是01,選擇一個二極管;如果編碼是10,選擇兩個二極管;其他編碼將不允許充電。該寄存器的BIT0和BIT1用于選擇與二極管相串聯(lián)的電阻值。其中編碼RS=01為2 KΩ,RS=10為4 KΩ,RS=11為8 KΩ,而RS=00將不允許進行充電。因此,根據(jù)慢速充電寄存器的不同編碼可得到不同的充電電流。其具體計算如公式3.1:</p><p> I充電
63、=(V0-VD-VE)/R (3.1)</p><p><b> 式中:</b></p><p> V0——所接入的5.0V工作電壓;</p><p> VD——二極管壓降,一個按0.7V計算;</p><p> R——慢速充電控制寄存器0和1位編碼決定的電
64、阻值;</p><p> VE——VCC1腳所接入的電池電壓。</p><p> RAM寄存器尋址空間一次排列的31字節(jié)靜態(tài)RAM可為用戶使用,備用電源位RAM提供了掉電保護功能。寄存器和RAM的操作通過命令字節(jié)的BIT6加以區(qū)別。當BIT6為“0”時對RAM區(qū)進行尋址;否則將對時鐘/日歷寄存器尋址。其操作方法與前述相同[9][10][11]。具體驅(qū)動程序參見附錄A。</p>
65、;<p><b> 環(huán)境溫度傳感器選擇</b></p><p> 3.1.3.1 常用溫度傳感器比較</p><p> 在日常生活中和工農(nóng)業(yè)生產(chǎn)中常要用到溫度檢測及控制,傳統(tǒng)的測溫元件有熱電偶和熱電阻,一般用來測量中高溫,輸出的是電壓,將其轉(zhuǎn)換成對應(yīng)的二進制溫度碼值,需要較多的硬件支持,硬件電路復(fù)雜,軟件調(diào)試較為復(fù)雜,制作成本高。</p>
66、;<p> 另外,采集環(huán)境的溫度也可采用IC化的溫度傳感器。常用的此類溫度傳感器有AD590和DS18B20。</p><p> AD590測量到不同溫度之后,將把應(yīng)溫度轉(zhuǎn)化為線性電流輸出,為1μA/K,正比于熱力學溫度。該傳感器寬量程,為-55~+150℃;精度高,激光校準精度到±0.5℃;電源范圍寬:+4~+30V。AD590優(yōu)點很多,但是由于它只能將采集來的溫度轉(zhuǎn)化為電流輸出,所
67、以在實際應(yīng)用中,需要先將AD590輸出的電流轉(zhuǎn)化為電壓,再利用A/D轉(zhuǎn)換元件進行模/數(shù)轉(zhuǎn)換,將模擬量轉(zhuǎn)化為數(shù)字量,最后送入單片機中[12]。</p><p> 與AD590不同的是,DS18B20數(shù)字溫度傳感器能直接將被測溫度轉(zhuǎn)化成串行數(shù)字信號,以供單片機處理,既節(jié)省了硬件,又有效避免了模擬方式的干擾問題。它還具有微型化、低功耗、高性能、等優(yōu)點。</p><p> 通過編程,DS18B
68、20可以實現(xiàn)9~12位溫度讀數(shù),信息經(jīng)過單線接口送入DS18B20或從DS18B20送出,因此從單片機到DS18B20僅需要連接一條線。讀、寫和完成溫度變換所需的電源可由數(shù)據(jù)線本身提供,而無需外部電源。測量范圍為-55~+125℃,增量值為0.5℃。電源電壓范圍為+3.0~+5.5V。通過編程,用戶還以自行設(shè)定告警上下限溫度,告警尋找命令可以識別和尋址那些溫度超出預(yù)設(shè)告警界限的器件。</p><p> 3.1
69、.3.2 DS18B20簡介</p><p> DS18B20是美國Dallas公司生產(chǎn)的基于單線(1-wire)技術(shù)的數(shù)字溫度傳感器芯片。其管腳分布如圖3.4。</p><p> 圖3.4 DS18B20引腳分布圖</p><p> 每片DS18B20在出廠時都設(shè)有唯一的產(chǎn)品序列號,此序列號存放在它的內(nèi)部ROM中,微處理器通過簡單協(xié)議,就能識別這些序列號,因
70、此多個DS18B20可以掛接于同一條單總線上,這允許在許多不同的地方放置溫度傳感器,特別適合于構(gòu)成多點溫度測控系統(tǒng)。所以DS18B20多應(yīng)用與HVAC環(huán)境控制,建筑物、設(shè)備或機械內(nèi)的溫度檢測,以及過程監(jiān)視和控制中的溫度檢測。</p><p> 管腳功能描述參見表3.5。</p><p> 表3.5 DS18B20詳細引腳功能描述</p><p> 3.1.3.
71、2 DS18B20內(nèi)部結(jié)構(gòu)</p><p> DS18B20的內(nèi)部結(jié)構(gòu)如圖3.5所示。主要由4部分組成:64位ROM、溫度傳感器、非揮發(fā)的溫度報警觸發(fā)器TH和TL、配置寄存器。</p><p> 圖3.5 DS18B20內(nèi)部結(jié)構(gòu)圖</p><p> 配置寄存器為高速暫存存儲器中的第5個字節(jié)。DS18B20在工作時按此寄存器中的分辨率將溫度轉(zhuǎn)換成相應(yīng)精度的數(shù)值,
72、其各位定義如表3.6所示。其中,TM為測試模式標志位,出廠時被寫入“0”,不能改變;R0、R1是溫度計分辨率設(shè)置位。</p><p> 表3.6 DS18B20配置寄存器結(jié)構(gòu)表</p><p> MSB LSB</p><p> 其對應(yīng)四種分辨率如表3.7所示,出廠時R0、R1被置
73、為“1”,默認設(shè)置是12位分辨率,用戶可根據(jù)需要給寫配置寄存器以獲得合適的分辨率。</p><p> 表3.7 配置寄存器與分辨率關(guān)系表</p><p> 溫度信息的低位、高位字節(jié)內(nèi)容還包括了符號位S(是正溫度還是負溫度)和二進制小數(shù)部分,其具體形式如圖3.6。</p><p> 圖3.6 DS18B20溫度值格式表</p><p>
74、 圖3.6所示是12位分辨率的情況,如果配置為低分辨率,則其中無意義位為“0”。</p><p> 在DS18B20完成溫度變換之后,溫度值與存儲在TH和TL內(nèi)的告警觸發(fā)值相比較。由于這些是8位寄存器,所以9~12位在比較時忽略。TH或TL的高位直接對應(yīng)于16位溫度寄存器的符號位。如果溫度測量的結(jié)果高于TH或低于TL,那么器件內(nèi)告警標志將置位,每次溫度測量都會更新此標志位。只要告警標志置位,DS18B20就將響
75、應(yīng)告警搜索命令,這也就允許單線上多個DS18B20同時進行溫度測量,即使某處溫度越限,也可以識別出正在告警的器件。</p><p> 特別需要注意的是,與DS18B20配套使用的是頻率為11.0592MHz單片機晶振,這決定了指令的運行時間,在軟件設(shè)計中將根據(jù)此指令運行時間編寫各種延時程序[13]。</p><p> 電子時鐘硬件電路設(shè)計</p><p> 電
76、子鬧鐘至少要包括秒信號發(fā)生器、時間顯示電路、按鍵電路、供電電源、鬧鈴指示電路等幾部分。另外,本設(shè)計要求該電子鐘能夠采集環(huán)境溫度,所以還需要溫度采集芯片。硬件電路框圖參照圖3.7。</p><p> 該系統(tǒng)使用AT89C51單片機作為核心,通過讀取時鐘日歷芯片DS1302和溫度傳感器DS18B20的數(shù)據(jù),完成此電子時鐘的主要功能——時鐘/日歷和環(huán)境溫度采集。使用比較通用的8段共陰數(shù)碼管,做7位顯示,分別顯示時/年
77、,分/月,秒/日,以及環(huán)境溫度值。</p><p> 圖3.7 多功能電子時鐘硬件系統(tǒng)框圖</p><p> 鍵盤是為了完成時鐘/日歷的校對和日歷/溫度的顯示功能。由于此電子時鐘要求具有鬧鈴功能,所以設(shè)計有鬧鈴電路,進行聲音響鈴。</p><p> 整個電路使用了兩種電源,+5V電源將為整個電路供電。而+3V電源僅作為DS1302的備用電源。當+5V電源被切斷
78、后,DS1302啟用+3V電源,可以保持DS1302繼續(xù)工作。當+5V電源恢復(fù)供電,LED依舊顯示當前時間,而不會因為斷電使系統(tǒng)復(fù)位到初始化時間,避免了重新校時的麻煩。</p><p> 具體電路圖請參見附錄C。</p><p><b> 時鐘電路設(shè)計</b></p><p> 系統(tǒng)時鐘應(yīng)用了實時時鐘日歷芯片DS1302,其連接如圖3.8
79、。該硬件電路設(shè)計簡單,抗干擾能力強。</p><p> 如圖,AT89C51單片機P1.7直接接DS1302的RST端,上電后,AT89C51的P1.7腳自動輸出高電平。P1.5作為串行時鐘接口,P1.6作為時鐘數(shù)據(jù)的I/O。DS1302采用雙電源供電,平時由+5V電源供電,當+5V掉電之后,由圖中BT1(+3V備用電池)供電。</p><p> 特別需要注意X1和X2兩端連接的晶振Y
80、1,該晶振頻率為32.768KHz。</p><p> 圖3.8 系統(tǒng)時鐘電路</p><p> 環(huán)境溫度采集電路設(shè)計</p><p> 本設(shè)計中使用DS18B20溫度傳感器進行環(huán)境溫度采集和轉(zhuǎn)化。如圖3.9所示,AT89C51單片機的P3.3腳接DS18B20的I/O腳,作為數(shù)據(jù)的讀入和寫出口。電阻R11作為DS18B20的I/O口的上拉電阻,在讀時隙結(jié)束時
81、,I/O引腳將通過此上拉電阻拉回至高電平[13]。</p><p> 圖3.9 系統(tǒng)環(huán)境溫度采集電路</p><p><b> 顯示電路</b></p><p> 就時鐘而言,通常可采用LCD顯示或LED顯示。對于一般的段式LCD,需要專門的驅(qū)動電路,而且LCD顯示的可視性較差;對于具有驅(qū)動電路和微處理器接口的液晶顯示模塊(字符或點陣),
82、一般采用并行接口,對微處理器的接口要求較高,占用資源多。另外,AT89C51本身沒有專門的液晶驅(qū)動接口。LED結(jié)構(gòu)簡單,體積小,功耗低,響應(yīng)速度快,易于匹配,壽命長,可靠性高,而且顯示亮度高,價格便宜,市場上也有專門的時鐘顯示組合LED。故本設(shè)計中應(yīng)用7位8段共陰LED實現(xiàn)顯示部分,顯示面板分布如圖3.6。</p><p> LED顯示分動態(tài)顯示和靜態(tài)顯示:動態(tài)顯示方式的硬件電路簡單。但設(shè)計上如果處理不當,易造
83、成亮度低,閃爍問題。因此合理的設(shè)計既應(yīng)保證驅(qū)動電路易實現(xiàn),又要保證圖像穩(wěn)定,無閃爍。動態(tài)顯示采用多路復(fù)用技術(shù)的動態(tài)掃描顯示方式,復(fù)用的程度不是無限增加的, 因為利用動態(tài)掃描顯示使我們看到一幅穩(wěn)定畫面的實質(zhì)是利用了人眼的暫留效應(yīng)和發(fā)光二極管發(fā)光時間的長短,發(fā)光的亮度等因素。</p><p> 靜態(tài)顯示,是由微型計算機一次輸出顯示模型后,就能保持該顯示結(jié)果,直到下次發(fā)送新的顯示模型為止。靜態(tài)顯示驅(qū)動程序簡單,且CP
84、U占用率低,但每個LED數(shù)碼管需要一個鎖存器來鎖存每一個顯示位的筆段代碼,硬件開銷大,僅適合顯示位數(shù)較少的場合。為了在顯示部分節(jié)省單片機I/O口,故采用靜態(tài)顯示方式。電路圖參見圖3.10。</p><p> 74LS164是8位移位寄存器,應(yīng)用該芯片驅(qū)動LED做顯示部分,其優(yōu)點在于連線簡單,節(jié)省單片機I/O口,軟件編程容易。關(guān)于74LS164的具體編程方法,請參見第四章4.2.5顯示子程序設(shè)計部分[14][15
85、]。</p><p> 圖3.10 顯示面板LED分布圖 </p><p><b> 按鍵電路設(shè)計</b></p><p> 根據(jù)功能需要,本時鐘需要設(shè)置以下功能鍵:校對選擇鍵,加1操作鍵,減1操作鍵,顯示日期鍵,顯示溫度鍵,鬧鈴開關(guān)鍵。</p><p> 按照鍵盤與CPU的連接方式可分為獨立式鍵盤和矩陣式鍵盤
86、。獨立式鍵盤是各個按鍵相互獨立,每個按鍵占用一個I/O口線,每根I/O口線上的按鍵不會影響其他I/O口上按鍵工作狀態(tài)。獨立式鍵盤電路配置靈活,軟件結(jié)構(gòu)簡單,但每個按鍵必須占用一根I/O口,在按鍵數(shù)量較多時,I/O口線浪費較大,且電路結(jié)構(gòu)復(fù)雜。矩陣式鍵盤適合按鍵較多時使用。由于本設(shè)計的電子鐘最多需要7個按鍵,若采用矩陣式鍵盤時會有按鍵浪費,故采用的是獨立式鍵盤。鍵盤電路如圖3.11。對于內(nèi)置了上拉電阻的I/O引腳來說,外接上拉電阻沒有意義
87、[15][16]。如圖3.11。</p><p> 圖3.11 鍵盤電路</p><p> 其中K1、K2、K7為帶自鎖按鍵,每次按下后,其對應(yīng)的P2.7、P2.6、P2.1管腳接地,從高電平被拉至低電平。只有再次按下,按鍵彈出,與之連接的單片機管腳才會重新被拉回高電平。K3、K4、K5、K6鍵為自動復(fù)位按鍵。每次按下后,會自動彈出。單片機管腳只有在按鍵按下時為低電平,按鍵彈出后重新恢
88、復(fù)高電平。按鍵功能參見表3.8。</p><p> 表3.8 按鍵功能表</p><p><b> 按鍵操作說明如下:</b></p><p> K1鍵:該鍵為帶自鎖按鍵,在正常顯示時間狀態(tài)下,每次將按鍵按下, LED數(shù)碼管將顯示日期;再次按下,按鍵彈出,重新顯示時間。</p><p> K2鍵:該鍵為帶自鎖按鍵
89、,在正常顯示時間狀態(tài)下,每次將按鍵按下,LED數(shù)碼管將顯示環(huán)境溫度;再次按下,按鍵彈出,重新顯示時間。</p><p> K3鍵:該鍵為自動復(fù)位鍵,在正常顯示時間狀態(tài)下,第一次按下后,開始校對小時,以后每次按下都會分別進入對分、秒、鬧鈴時、鬧鈴分、年、月、日的校對狀態(tài)。</p><p> K4鍵:該鍵為自動復(fù)位鍵,在校對狀態(tài)下,每次按動該鍵,都會使相應(yīng)校對位進行加1操作。例如:校對小時
90、狀態(tài),每按一下,小時位加1,當加至小時最高值23時,再按K4鍵,小時位回0。調(diào)分、秒、年、月、日與皆之相同,只是各位最高值不同。</p><p> K5鍵:該鍵為自動復(fù)位鍵,與K4鍵類似,不同之處是該鍵每次按下將使相應(yīng)校對位進行減1操作。</p><p> K6鍵:該鍵為自動復(fù)位鍵,在校對狀態(tài)下,按下該鍵,從校對狀態(tài)返回時間顯示狀態(tài);在響鈴狀態(tài)下,按下該鍵,鬧鈴進入貪睡狀態(tài)。</
91、p><p> K7鍵:該鍵為帶自鎖按鍵,按下后鬧鈴開啟,彈出后鬧鈴關(guān)閉。</p><p><b> 鬧鈴電路設(shè)計</b></p><p> 鬧鈴音樂可以直接采用蜂鳴器鬧鈴,如當前時刻與鬧鈴時間相同,單片機向蜂鳴器送出高電平,蜂鳴器發(fā)聲。采用蜂鳴器鬧鈴結(jié)構(gòu)簡單,控制方便,但是發(fā)出的鬧鈴聲音單一。也可以在編程的時候編寫一段音樂程序,待鬧鈴時間到時
92、,調(diào)用該音樂程序給揚聲器,便響起音樂。不過該方法只能做一些簡單音樂,并且音樂程序會占用很多單片機存儲資源。</p><p> 還有一種方法是采用錄音放音芯片1420做鬧鈴,先對錄放音設(shè)備錄入一段音樂,當?shù)皆O(shè)定時間時,單片機控制錄放音設(shè)備放音。采用錄放音電路,鈴聲可以是預(yù)先設(shè)定的一段自己喜歡的音樂,符合電器設(shè)備人性化的要求。且1420芯片可以分段錄音,還具有語音報時功能。</p><p>
93、 另外,也可以購置一塊音樂集成電路,加置在單片機和蜂鳴器之間,當單片機連接鬧鈴電路的管腳送出高電平時,音樂集成電路會給蜂鳴器特定脈沖,使蜂鳴器發(fā)聲。此類集成電路體積較小,使用方便,不足的是音樂簡單、單一。</p><p> 鬧鈴的音樂不是本設(shè)計中的重點,故采用最簡單的方法,占用單片機一根I/O口P2.0, 中間用PNP型三極管S9012連接P2.0和蜂鳴器。當P2.0引腳為低電平時,S9012的發(fā)射極和集電極
94、導通,使蜂鳴器發(fā)聲。當響鈴標志位為“1”時,P2.0送一定頻率脈沖,使蜂鳴器U11發(fā)出聲音[16]。如圖3.12。</p><p> 圖3.12 鬧鈴電路</p><p><b> 復(fù)位電路設(shè)計</b></p><p> 復(fù)位是單片機的初始化操作,以便使CPU和系統(tǒng)中其他部件都處于一個確定的初始狀態(tài),并從這個狀態(tài)開始工作。除了進入系統(tǒng)的正
95、常初始化之外,當單片機系統(tǒng)在運行出錯或操作錯誤使系統(tǒng)處于死鎖狀態(tài)時,也可按復(fù)位鍵重新啟動。</p><p> 復(fù)位后,PC內(nèi)容初始化為0000H,使單片機從0000H單元開始執(zhí)行程序。單片機復(fù)位后,除了PC之外,還對片內(nèi)的特殊功能寄存器有影響,它們的復(fù)位狀態(tài)如表3.9所示。單片機復(fù)位后不影響內(nèi)部RAM的狀態(tài)[17]。89C51單片機復(fù)位信號的輸入端是RST引腳,高電平有效。其有效時間持續(xù)24個時鐘周期(2個機器
96、周期)以上。</p><p> RST端的外部復(fù)位電路有兩種操作方式:上電自動復(fù)位和按鍵手動復(fù)位。</p><p> 上電自動復(fù)位是利用電容儲電來實現(xiàn)的,如圖3.13(a)所示。上電瞬間,RC電路充電,RST端出現(xiàn)正脈沖,隨著充電電流的減少,RST的電位逐漸下降。按鍵手動復(fù)位有電平方式和脈沖方式兩種。按鍵電平復(fù)位是相當于RST端通過電阻接高電平,如圖3.13(b)所示;按鍵脈沖復(fù)位,利
97、用RC微分電路產(chǎn)生正脈沖,如圖3.13(c)所示[12]。</p><p> 出于應(yīng)用方便,本設(shè)計采用按鍵電平復(fù)位電路。實際電路請參見附錄C,復(fù)位按鍵為K8。</p><p> 表3.9 單片機寄存器的復(fù)位狀態(tài)表</p><p> 圖3.13 上電復(fù)位和按鍵復(fù)位電路</p><p><b> 電子時鐘軟件設(shè)計</b&g
98、t;</p><p> C51單片機可以應(yīng)用匯編語言和C語言進行編程。,匯編語言與機器指令一一對應(yīng)所以用匯編語言編寫的程序在單片機里運行起來效率較高。C語言程序可讀性高,更便于理解。</p><p> 本設(shè)計使用C語言編程。</p><p><b> 主程序設(shè)計</b></p><p> 第一次上電,系統(tǒng)先進行初
99、始化, LED顯示初始時間“14:28:00”,并開始走時。初始日期為2008年5月12日,此刻若按K1鍵,LED顯示“080512”。</p><p> 單片機依次開始調(diào)用鍵盤掃描子程序、DS1302子程序、DS18B20子程序、鬧鈴子程序,經(jīng)過延時,返回程序開頭循環(huán)運行。</p><p> 主程序流程圖如圖4.1。</p><p> 圖4.1 多功能電子鐘
100、主程序流程圖</p><p><b> 子程序設(shè)計</b></p><p> 實時時鐘日歷子程序設(shè)計</p><p> 該程序主要實現(xiàn)對DS1302寫保護、充電,對年、月、日、時、分、秒等寄存器的讀寫操作。在讀寫操作子程序中都執(zhí)行了關(guān)中斷指令,因為在串行通信時對時序要求比較高,而且在此是用I/O口軟件模擬串行時鐘脈沖,所以在通信過程中最好
101、保證傳輸?shù)倪B續(xù)性,不要允許中斷。其流程圖如圖4.2。</p><p> 圖4.2 實時時鐘日歷子程序流程圖</p><p> DS1302每次上電時自動處于暫停狀態(tài),必須把秒寄存器的位7置位0,時鐘才開始計時。如果DS1302一直沒有掉電,則不存在此問題。</p><p> 在進行寫操作時,需要先解除寫保護寄存器的“禁止”狀態(tài)。當用多字節(jié)模式進行操作時,必須寫
102、夠8字節(jié)[18]。</p><p><b> 源程序見附錄A。</b></p><p> 環(huán)境溫度采集子程序設(shè)計</p><p> DS18B20是1—wire單線器件,它在一根數(shù)據(jù)線上實現(xiàn)數(shù)據(jù)的雙向傳輸,這就需要一定的協(xié)議來對讀寫數(shù)據(jù)提出嚴格的時序要求,而AT89C51單片機并不支持單線傳輸。因此,必須采用軟件的方法來模擬單線的協(xié)議時序
103、。</p><p> 主機操作單線器件DS18B20必須遵循下面的順序。</p><p><b> 初始化</b></p><p> 單線總線上的所有操作均從初始化開始。初始化過程如下:主機通過拉低單線480μs以上,產(chǎn)生復(fù)位脈沖,然后釋放該線,進入RX接收模式。主機釋放總線時,會產(chǎn)生一個上升沿。單線器件DS18B20檢測到該上升沿后,延
104、時15~60μs,通過拉低總線60~240μs來產(chǎn)生應(yīng)答脈沖。主機接收到從機的應(yīng)答脈沖后,說明有單線器件在線。</p><p><b> ROM操作命令</b></p><p> 一旦總線主機檢測到應(yīng)答脈沖,便可以發(fā)起ROM操作命令。共有5位ROM操作命令。如表4.1。</p><p> 表4.1 DS18B20的ROM操作命令</
105、p><p><b> 內(nèi)存操作命令</b></p><p> 在成功執(zhí)行了ROM操作命令之后,才可以使用內(nèi)存操作命令。主機可以提供6種內(nèi)存操作命令,如表4.2。</p><p> 表4.2 DS18B20內(nèi)存操作命令</p><p><b> 數(shù)據(jù)處理</b></p><p&
106、gt; DS18B20要求有嚴格的時序來保證數(shù)據(jù)的完整。在單線DQ上,存在復(fù)位脈沖、應(yīng)答脈沖、寫“0”、寫“1”、讀“0”和讀“1”幾種信號類型。其中,除了應(yīng)答脈沖之外,均由主機產(chǎn)生。而數(shù)據(jù)位的讀和寫則是通過使用讀、寫時隙實現(xiàn)的。</p><p> 首先了解寫時隙。當主機將數(shù)據(jù)線從高電平拉至低電平時,產(chǎn)生寫時隙。有2種類型的寫時隙:寫“1”和寫“0”。所有寫時隙必須在60μs以上(即由高拉低后持續(xù)60μs以上
107、),各個寫時隙之間必須保證最短1μs的恢復(fù)時間。DS18B20在DQ線變低后的15~60μs的窗口對DQ進行采樣,如果為高電平,就為寫“1”;如果為低電平,就為寫“0”。對于主機產(chǎn)生寫“1”時隙的情況,數(shù)據(jù)線必須先被拉低,然后釋放,在寫時隙開始后的15μs,允許DQ線拉至高電平。對于主機寫“0”時隙的情況,DQ線必須被拉至低電平且至少保持低電平60μs。</p><p> 再來了解讀時隙。當主機從DS18B20
108、讀數(shù)據(jù)時,把數(shù)據(jù)線從高電平拉至低電平,產(chǎn)生讀時隙。數(shù)據(jù)線DQ必須保持低電平至少1μs,來自DS18B20的輸出數(shù)據(jù)在讀時隙下降沿之后15μs內(nèi)有效。因此,在此15μs內(nèi),主機必須停止將DQ引腳置低。在讀時隙結(jié)束時,DQ引腳將通過外部上拉電阻拉回至高電平。所有的讀時隙最短必須持續(xù)60μs,各個讀時隙之間必須保證最短1μs的恢復(fù)時間。</p><p> 圖4.3 環(huán)境溫度采集子程序流程圖</p>&l
109、t;p> 所有的讀寫時隙至少需要60μs,且每兩個獨立的時隙之間至少需要1μs的恢復(fù)時間。在寫時序中,主機將在拉低總線15μs內(nèi)釋放總線,并向DS18B20寫“1”。若主機拉低總線后能保持60μs的低電平,則向單總線器件寫“0”。DS18B20僅在主機發(fā)出讀時隙時才向主機傳輸數(shù)據(jù),所以,當主機向DS18B20發(fā)出讀數(shù)據(jù)命令后,必須馬上產(chǎn)生讀時隙,以便DS18B20能傳輸數(shù)據(jù)[13]。</p><p>
110、實現(xiàn)環(huán)境溫度采集轉(zhuǎn)換并讀取數(shù)據(jù)的程序流程圖參見圖4.3。源程序見附錄A。</p><p><b> 顯示子程序設(shè)計</b></p><p> 用74LS164驅(qū)動LED數(shù)碼管靜態(tài)顯示電路,編程也很容易。只要將需要顯示的數(shù)字編輯成對應(yīng)的BCD碼,逐位送入74LS164的A、B串行輸入端,數(shù)碼管將正常顯示。關(guān)鍵之處是要實現(xiàn)根據(jù)鍵值顯示不同的數(shù)字。</p>
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機多功能電子鐘畢業(yè)設(shè)計論文
- 畢業(yè)設(shè)計論文 單片機多功能電子鐘設(shè)計
- 單片機多功能電子鐘畢業(yè)設(shè)計
- 單片機多功能電子鐘畢業(yè)設(shè)計
- 單片機多功能電子鐘畢業(yè)設(shè)計 (2)
- 基于單片機的多功能數(shù)字電子鐘設(shè)計畢業(yè)設(shè)計論文
- 單片機課程設(shè)計--多功能數(shù)字電子鐘
- 基于51單片機的多功能電子鐘設(shè)計
- 單片機課程設(shè)計— 多功能數(shù)字電子鐘
- 單片機課程設(shè)計報告---多功能電子鐘
- 單片機數(shù)字電子鐘畢業(yè)設(shè)計
- 單片機數(shù)字時鐘課程設(shè)計--單片機多功能電子鐘設(shè)計
- 多功能數(shù)字電子鐘畢業(yè)設(shè)計論文
- 單片機微型機課程設(shè)計---多功能電子鐘
- 基于單片機的多功能電子鐘課程設(shè)計
- 單片機課程設(shè)計-基于單片機的多功能電子鐘的設(shè)計
- 多功能數(shù)字電子鐘畢業(yè)設(shè)計論文
- 畢業(yè)設(shè)計----基于單片機的電子鐘設(shè)計
- 單片機課程論文設(shè)計-電子鐘設(shè)計
- 單片機課程論文設(shè)計電子鐘設(shè)計
評論
0/150
提交評論