2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩64頁(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)介

1、<p><b>  摘 要</b></p><p>  日常生活中,實(shí)時(shí)地掌握溫度和時(shí)間信息對(duì)于人們來(lái)說(shuō)必不可少。本設(shè)計(jì)是基于單片機(jī)的多功能溫度計(jì),實(shí)現(xiàn)時(shí)間顯示和溫度顯示兩種功能。</p><p>  整個(gè)硬件系統(tǒng)采用AT89S52單片機(jī)作為主芯片,協(xié)調(diào)整機(jī)工作并進(jìn)行數(shù)據(jù)處理。溫度測(cè)量模塊以DS18B20數(shù)字溫度傳感器作為核心,單線接口即可實(shí)現(xiàn)與處理器的雙

2、向通訊;時(shí)鐘模塊則采用實(shí)時(shí)時(shí)鐘電路DS1302,提供秒、分、時(shí)、日期的信息;1602字符液晶提供的32個(gè)字符的顯示容量足以顯示時(shí)間和溫度;電源方面,直接使用USB接口供電;由四個(gè)按鍵組成的鍵盤電路用以設(shè)置日期時(shí)間。</p><p>  本設(shè)計(jì)采用Proteus作為仿真軟件,根據(jù)硬件設(shè)計(jì)思想,將系統(tǒng)所需要的元件在ISIS中連接好后,在AT89S52單片機(jī)中加載編譯好的hex文件,即可進(jìn)行仿真。仿真運(yùn)行正常后,進(jìn)入實(shí)

3、物制作階段,最終實(shí)物實(shí)現(xiàn)了設(shè)想功能。</p><p>  關(guān)鍵字:AT89S52; DS18B20; DS1302; 1602字符液晶; Proteus</p><p><b>  Abstract</b></p><p>  It's necessary to get the information about the real-ti

4、me and temperature in our daily life。This design is expect to display the real-time and temperature by a multifunctional thermometer which is based on one type of singlechip .</p><p>  The hardware system u

5、ses AT89S52 Micro-chip Controller Unit as a core to coordinate the whole system's work and process the datas.In the temperature measure module ,temperature sensor DS18B20 is a good choice since it can achieve a two-w

6、ay communication with the singlechip by only one interface.The real-time module is based on the real-timer DS1302 which can provide the the information about the present year,date and time.As a monitor,Character Mode LCD

7、(Liquid Crystal Display)1602 has a big enou</p><p>  This design uses Proteus as the simulation software, Connect the required components according to the hardware system design in the ISIS , and load the co

8、mpiled hex files to the AT89S52 microcontroller.Then can run into the physical production stage, the ultimate achievement can realise expected function.</p><p>  Keywords: AT89S52; DS18B20; DS1302; Charac

9、ter Mode LCD 1602;</p><p><b>  Proteus</b></p><p><b>  目 錄</b></p><p><b>  摘 要I</b></p><p>  AbstractII</p><p><

10、b>  1前 言1</b></p><p>  1.1選題背景1</p><p>  1.2選題意義2</p><p>  2 多功能溫度計(jì)的硬件設(shè)計(jì)3</p><p>  2.1 系統(tǒng)分析3</p><p>  2.1.1 處理器分析3</p><p>  2

11、.1.2 時(shí)鐘模塊分析3</p><p>  2.1.3 溫度測(cè)量模塊分析4</p><p>  2.1.4 顯示模塊分析4</p><p>  2.2 硬件系統(tǒng)總體方案設(shè)計(jì)4</p><p>  2.2.1 硬件系統(tǒng)總體結(jié)構(gòu)4</p><p>  2.2.2 硬件系統(tǒng)原理圖5</p><

12、;p>  2.3 各部分硬件電路設(shè)計(jì)5</p><p>  2.3.1 AT89S52單片機(jī)最小系統(tǒng)5</p><p>  2.3.2 DS18B20溫度傳感器電路9</p><p>  2.3.3 DS1302實(shí)時(shí)時(shí)鐘電路13</p><p>  2.3.4 多功能溫度計(jì)顯示終端—字符型LCD液晶18</p>

13、<p>  2.3.5 鍵盤輸入電路20</p><p>  3 多功能溫度計(jì)的軟件設(shè)計(jì)21</p><p>  3.1 系統(tǒng)主程序流程圖21</p><p>  3.2 時(shí)鐘模塊程序流程圖22</p><p>  3.3 溫度模塊程序流程圖23</p><p>  3.4 顯示模塊程序流程圖23

14、</p><p>  3.5 鍵盤輸入程序流程圖24</p><p>  4 系統(tǒng)仿真及實(shí)物制作26</p><p>  4.1仿真軟件介紹26</p><p>  4.2 仿真結(jié)果27</p><p>  4.3 實(shí)物制作27</p><p>  5 總結(jié)與展望29</p&g

15、t;<p><b>  5.1 總結(jié)29</b></p><p><b>  5.2 展望29</b></p><p><b>  致 謝30</b></p><p><b>  參考文獻(xiàn)31</b></p><p>  附錄 多功

16、能溫度計(jì)部分程序清單32</p><p><b>  1前 言</b></p><p><b>  選題背景</b></p><p>  單片機(jī)具有體積小、功能強(qiáng)、可靠性高、價(jià)格低廉等一系列優(yōu)點(diǎn),不但已成為工業(yè)測(cè)控領(lǐng)域廣泛采用的智能化控制工具,而且已滲入到人們工作和和生活的各個(gè)方面,有力地推動(dòng)了各行業(yè)的技術(shù)改造和產(chǎn)品的更

17、新?lián)Q代,應(yīng)用前景廣闊。</p><p>  溫度是我們?nèi)粘Ia(chǎn)和生活中時(shí)刻在接觸到的物理量,但是它不能直觀看到的,僅憑感覺只能猜測(cè)到大概的溫度值,傳統(tǒng)的指針式的溫度計(jì)雖然能指示溫度,但是精度低,使用不夠方便,顯示不夠直觀,溫度計(jì)的出現(xiàn)改變了這一狀況。</p><p>  最早的溫度計(jì)由意大利科學(xué)家伽利略(1564~1642)于1593年發(fā)明的。他設(shè)計(jì)溫度計(jì)是一根一端敞口的玻璃管,另一端帶有

18、乒乓球大的玻璃泡。使用時(shí)需先加熱玻璃泡,然后將玻璃管插入水中。伴隨溫度的變化,玻璃管中的水面會(huì)上下移動(dòng),根據(jù)移動(dòng)的量就可以判定溫度的高低和變化。由于溫度計(jì)受熱脹冷縮的作用,所以這種溫度計(jì)受大氣壓強(qiáng)等外界環(huán)境因素的影響較大,測(cè)量誤差也就較大。 </p><p>  之后伽利略的學(xué)生和其他科學(xué)家,在伽利略的設(shè)計(jì)基礎(chǔ)上反復(fù)改進(jìn),如把玻璃管翻轉(zhuǎn),將液體放在管內(nèi),將玻璃管封閉等。其中法國(guó)人布里奧在1659年設(shè)計(jì)的溫度計(jì)較為

19、突出,他將玻璃泡的體積縮小,并選擇水銀作為測(cè)溫物質(zhì),這樣的溫度計(jì)已具備了現(xiàn)代溫度計(jì)的雛形。荷蘭人華倫海特在1709年使用酒精,在1714年又使用水銀作為測(cè)溫物質(zhì),制造了更精確的溫度計(jì)。他觀察了水的沸點(diǎn)、水和冰混合時(shí)的溫度、鹽水和冰混合時(shí)的溫度;經(jīng)過反復(fù)試驗(yàn)與修正,最終將一定濃度的鹽水凝固時(shí)的溫度規(guī)定為0℉,把純水凝固時(shí)的溫度定為32℉,把標(biāo)準(zhǔn)大氣壓下水沸騰的溫度定為212℉,℉表示華氏溫度,這就是華氏溫度計(jì)。 </p>&

20、lt;p>  在華氏溫度計(jì)問世的同時(shí),法國(guó)人列繆爾(1683~1757)也設(shè)計(jì)制造了一種溫度計(jì)。他認(rèn)為水銀的膨脹系數(shù)太小,不適合做測(cè)溫物質(zhì)。他反復(fù)試驗(yàn)發(fā)現(xiàn),含有20%水的酒精,在水的冰點(diǎn)和沸點(diǎn)之間,其體積從1000個(gè)體積單位增大到1080個(gè)體積單位。因此他將冰點(diǎn)和沸點(diǎn)之間分為80份,定為自己溫度計(jì)的溫度分度,也就是列氏溫度計(jì)。</p><p>  華氏溫度計(jì)制成后又經(jīng)過30多年,瑞典人攝爾休斯于1742年改

21、進(jìn)了華倫海特溫度計(jì)的刻度,他把水的沸點(diǎn)定為0度,把水的冰點(diǎn)定為100度。之后他的同事施勒默爾將兩個(gè)溫度點(diǎn)的數(shù)值又倒過來(lái),就成了現(xiàn)在的攝氏溫度,用℃表示。華氏溫度與攝氏溫度的關(guān)系為℉=9/5℃+32,或℃=5/9(℉-32)。 </p><p>  現(xiàn)在英、美國(guó)家多采用華氏溫度,德國(guó)多用列氏溫度,而世界科技界和工農(nóng)業(yè)生產(chǎn)中,以及我國(guó)、法國(guó)等大多數(shù)國(guó)家則多用攝氏溫度。</p><p><

22、b>  選題意義</b></p><p>  數(shù)字溫度計(jì)可以準(zhǔn)確的測(cè)量溫度,并以數(shù)字形式顯示出來(lái)。數(shù)字溫度計(jì)的出現(xiàn)可以讓人們直觀的了解自己想知道的溫度到底是多少度。而時(shí)間更是人們尤為關(guān)注的物理量,無(wú)論安排日程或是記錄數(shù)據(jù)都必不可少,因此,集成顯示溫度和時(shí)間的工具就顯得非常實(shí)用。</p><p>  本設(shè)計(jì)提供了一個(gè)實(shí)現(xiàn)溫度和時(shí)間測(cè)量與顯示的方案,字符液晶的采用能清晰直觀地

23、顯示這兩種常用物理量,對(duì)于老人尤其便利。</p><p>  2 多功能溫度計(jì)的硬件設(shè)計(jì)</p><p><b>  2.1 系統(tǒng)分析</b></p><p>  2.1.1 處理器分析</p><p>  多功能溫度計(jì)采用的處理器要負(fù)責(zé)整個(gè)硬件系統(tǒng)的計(jì)算處理及各個(gè)模塊的工作協(xié)調(diào)??蛇x擇的一個(gè)方案為采用凌陽(yáng)16位單片機(jī)S

24、PCE061A,它具有DSP功能,內(nèi)置有十六位硬件乘法器和加法器,并配有DSP特有的指令,大大加快了各種算法的實(shí)現(xiàn)速度。并且,SPCE061A可使用內(nèi)部AD(模數(shù)轉(zhuǎn)換)單元實(shí)現(xiàn)輸入溫度電壓信號(hào)的轉(zhuǎn)化,不但轉(zhuǎn)換速度快,精度也有較高保證;由于AD等模塊單元集成在芯片內(nèi)部,其可靠性和抗干擾能力相對(duì)提高,而且由于SPCE061A具備語(yǔ)音功能,可以實(shí)現(xiàn)溫度的語(yǔ)音播報(bào)功能。但是,這種單片機(jī)價(jià)格相對(duì)昂貴。</p><p>  

25、另一個(gè)可行的方案是采用AT89S52單片機(jī),它是一種低功耗、高性能的CMOS 8位單片機(jī),具有8K在系統(tǒng)可編程Flash存儲(chǔ)器,與我們所學(xué)習(xí)的MCS-51單片機(jī)產(chǎn)品兼容,而且與C系列單片機(jī)相比,AT89S52具備的ISP在線編程功能不需要把芯片從工作環(huán)境中剝離就能夠改寫單片機(jī)存儲(chǔ)器內(nèi)的程序,易于調(diào)試和修改??紤]到成本因素以及對(duì)單片機(jī)的熟悉程度,本設(shè)計(jì)采用這一方案。</p><p>  2.1.2 時(shí)鐘模塊分析&l

26、t;/p><p>  多功能溫度計(jì)中時(shí)間顯示功能的實(shí)現(xiàn)可以直接利用單片機(jī)內(nèi)置的定時(shí)器,完成時(shí)鐘、日期程序,這種方法不需使用外圍芯片,成本較低,但軟件編寫復(fù)雜,可靠性較低,通常達(dá)不到需要的精度且斷電后時(shí)鐘無(wú)法繼續(xù)運(yùn)行。</p><p>  更好的選擇是采用實(shí)時(shí)時(shí)鐘芯片,例如DS1302。這種方案時(shí)間精度較高,耗電少,在無(wú)主電源情況下有備用電池供電,確保時(shí)鐘再斷電后能繼續(xù)運(yùn)行。雖然成本增加,但考慮

27、到斷電情況,采用實(shí)時(shí)時(shí)鐘芯片更符合多功能溫度計(jì)的設(shè)計(jì)要求。 </p><p>  2.1.3 溫度測(cè)量模塊分析</p><p>  溫度測(cè)量是多功能溫度計(jì)的核心功能,可采用應(yīng)用普遍,技術(shù)成熟度高的熱敏電阻器,但其可靠性不高,電路復(fù)雜精度卻低。而采用數(shù)字溫度傳感器 DS18B20不但外圍電路簡(jiǎn)單,而且精度高,雖然由于要求延時(shí)精確,其編程較為復(fù)雜但考慮到精度要求,DS18B20是更好的選擇。&

28、lt;/p><p>  2.1.4 顯示模塊分析</p><p>  顯示模塊作為多功能溫度計(jì)的終端是人們直觀看到的部分,若采用LED(Light Emitting Diode)數(shù)碼管,雖然其有價(jià)格低廉,編程簡(jiǎn)單,顯示內(nèi)容醒目等諸多優(yōu)勢(shì),但同時(shí)占用較多單片機(jī)I/O端口,電路復(fù)雜,特別是需顯示內(nèi)容較多時(shí)不易排列。</p><p>  若采用字符液晶顯示,其顯示內(nèi)容豐富且電

29、路簡(jiǎn)單,占用I/O 端口少。雖然其價(jià)格相對(duì)較高,顯示內(nèi)容也不夠醒目但考慮到需要顯示的內(nèi)容較多,本設(shè)計(jì)采用字符液晶顯示。</p><p>  2.2 硬件系統(tǒng)總體方案設(shè)計(jì)</p><p>  2.2.1 硬件系統(tǒng)總體結(jié)構(gòu)</p><p>  圖2-1 硬件系統(tǒng)總體結(jié)構(gòu)框圖</p><p>  如圖2-1所示,硬件系統(tǒng)的核心處理器為AT89S52

30、的最小系統(tǒng),負(fù)責(zé)硬件系統(tǒng)的計(jì)算處理及協(xié)調(diào)工作。由于時(shí)鐘需要進(jìn)行校對(duì)和調(diào)整,因此需要在系統(tǒng)中設(shè)置4個(gè)輸入按鍵以對(duì)時(shí)鐘進(jìn)行設(shè)置;而DS18B20是直接數(shù)字輸出的溫度傳感器,不需要在AT89S52系統(tǒng)中擴(kuò)展A/D轉(zhuǎn)換器。</p><p>  2.2.2 硬件系統(tǒng)原理圖</p><p>  圖2-2 硬件系統(tǒng)原理圖</p><p>  圖2-2 即為多功能溫度計(jì)的硬件系統(tǒng)原

31、理圖,各個(gè)模塊會(huì)在下文中做詳細(xì)的介紹。 </p><p>  2.3 各部分硬件電路設(shè)計(jì)</p><p>  2.3.1 AT89S52單片機(jī)最小系統(tǒng)</p><p>  AT89S52 單片機(jī)最小系統(tǒng)擔(dān)當(dāng)整個(gè)硬件系統(tǒng)的核心,它既是協(xié)調(diào)整機(jī)工作的控制器,又負(fù)責(zé)整個(gè)系統(tǒng)的數(shù)據(jù)處理。如圖2-4所示,最小系統(tǒng)主要由主芯片、時(shí)鐘電路、復(fù)位電路組成。</p>&

32、lt;p>  (1)AT89S52單片機(jī)介紹</p><p>  本設(shè)計(jì)采用的主芯片為AT89S52單片機(jī):一種低功耗、高性能且具有8K 在系統(tǒng)可編程Flash 存儲(chǔ)器的CMOS 8位微控制器。AT89S52具有以下標(biāo)準(zhǔn)功能: 8K字節(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í)鐘電路。另外,A

33、T89S52 可降至0Hz 靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU停止工作,允許RAM、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。</p><p>  如圖2-3所示為AT89S52單片機(jī)的引腳分布圖:</p><p>  圖2-3 AT89S52引腳分布圖</p>

34、<p>  下面對(duì)AT89S52各引腳功能進(jìn)行簡(jiǎn)要的介紹:</p><p>  P0口:PO口是一個(gè)8位漏極開路的雙向I/O口。作為輸出口,每位可以驅(qū)動(dòng)8個(gè)TTL邏輯電平。對(duì)P0端口寫高電平時(shí),引腳當(dāng)作高阻抗輸入。當(dāng)訪問外部程序和數(shù)據(jù)存儲(chǔ)器時(shí),P0口也被作為低8位A/D(地址/數(shù)據(jù))復(fù)用,在這種模式下,P0具有內(nèi)部上拉電阻。在使用Flash編程時(shí),P0口也用來(lái)接收指令字節(jié);在程序校驗(yàn)時(shí),輸出指令字,

35、此時(shí),需要外部上拉電阻。 </p><p>  P1 口:P1 口是一個(gè)具有內(nèi)部上拉電阻的8位雙向I/O 口,P1 輸出緩沖器可以驅(qū)動(dòng)4個(gè)TTL邏輯電平。對(duì)P1 端口寫高電平時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以用作輸入口。作為輸入口使用時(shí),被外部拉低的引腳將由于內(nèi)部電阻的原因而輸出電流。 </p><p>  此外,P1.0和P1.2分別用作定時(shí)器/計(jì)數(shù)器2的外部計(jì)數(shù)輸入(P1.0/T2)

36、和定時(shí)器/計(jì)數(shù)器2的觸發(fā)輸入(P1.1/T2EX)。在Flash編程和校驗(yàn)時(shí),P1口接收低8位地址字節(jié)。 </p><p>  P2 口:P2 口是一個(gè)具有內(nèi)部上拉電阻的8 位雙向I/O口,P2 輸出緩沖器可以驅(qū)動(dòng)4個(gè)TTL邏輯電平。對(duì)P2 端口寫高電平時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以用作輸入口。作為輸入口使用時(shí),被外部拉低的引腳將由于內(nèi)部電阻的原因而輸出電流。在訪問外部程序存儲(chǔ)器或用16位地址讀取外部數(shù)據(jù)存

37、儲(chǔ)器時(shí),P2 口送出高8位地址。在這種應(yīng)用中,P2 口使用很強(qiáng)的內(nèi)部上拉發(fā)送高電平。在使用8位地址訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),P2口輸出P2鎖存器的內(nèi)容。在Flash編程和校驗(yàn)時(shí),P2口也接收高8位地址字節(jié)和一些控制信號(hào)。 </p><p>  P3口:P3口是一個(gè)具有內(nèi)部上拉電阻的8位雙向I/O 口,P3 輸出緩沖器能驅(qū)動(dòng)4個(gè)TTL邏輯電平。對(duì)P3 端口寫高電平時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可用作為輸入口。作為輸入

38、使用時(shí),被外部拉低的引腳將由于內(nèi)部電阻的原因而輸出電流。 </p><p>  P3口也作為AT89S52特殊功能(第二功能)使用,其中P3.0第二功能為串行輸入口(RXD),P3.1第二功能為串行輸出口(TXD),P3.2第二功能為外部中斷0(INT0),P3.3第二功能為外部中斷1(INT1),P3.4第二功能為用作定時(shí)/計(jì)數(shù)器0(T0),P3.5第二功能為用作定時(shí)/計(jì)數(shù)器1(T1),P3.6第二功能為外部數(shù)

39、據(jù)存儲(chǔ)器寫選通口(WR),P3.7第二功能為外部數(shù)據(jù)存儲(chǔ)器度選通口。</p><p>  此外,P3口還接收一些用于Flash閃存編程和程序校驗(yàn)的控制信號(hào)。 </p><p>  RST:復(fù)位輸入端,當(dāng)晶振工作時(shí),RST引腳出現(xiàn)持續(xù)兩個(gè)機(jī)器周期以上的高電平將使單片機(jī)復(fù)位。 </p><p>  ALE/PROG:當(dāng)訪問外部程序存儲(chǔ)器或數(shù)據(jù)存儲(chǔ)器時(shí),ALE(地址鎖存控

40、制信號(hào))輸出脈沖用于鎖存地址的低8位字節(jié)。在一般情況下,ALE以時(shí)鐘振蕩頻率的六分之一輸出固定的脈沖信號(hào),因此它可用來(lái)作為外部定時(shí)器或時(shí)鐘使用,然而,值得特別強(qiáng)調(diào)的是,每此訪問外部數(shù)據(jù)存儲(chǔ)器時(shí)將跳過一個(gè)ALE脈沖。 </p><p>  如果需要,可通過對(duì)特殊功能寄存器(SFR)區(qū)中的8EH單元的D0位置高電平,從而禁止ALE操作。該位置位后,僅在執(zhí)行MOVX和MOVC指令才能將ALE激活。此外,該引腳會(huì)被微弱拉

41、高,單片機(jī)執(zhí)行外部程序時(shí),應(yīng)設(shè)置ALE禁止位無(wú)效。</p><p>  對(duì)FLASH存儲(chǔ)器編程期間,該引腳還用于輸入編程脈沖(PROG)</p><p>  PSEN:外部程序存儲(chǔ)器選通信號(hào)。當(dāng)AT89S52由外部程序存儲(chǔ)器取指令(或數(shù)據(jù))時(shí),每個(gè)機(jī)器周期PSEN被激活兩次,當(dāng)訪問外部數(shù)據(jù)存儲(chǔ)器時(shí)將不被激活。</p><p>  EA/VPP:訪問外部程序存儲(chǔ)器控制

42、信號(hào)。欲使CPU僅訪問外部程序存儲(chǔ)器(地址為0000H-FFFFH),EA端必須保持低電平(接地)。如EA端為高電平,CPU則執(zhí)行內(nèi)部程序存儲(chǔ)器的指令。 </p><p>  在Flash編程期間,該引腳加上+12V的編程允許電源。</p><p>  XTAL1:振蕩器反相放大器和內(nèi)部時(shí)鐘發(fā)生電路的輸入端。</p><p>  XTAL2:振蕩器反相放大器的輸出端

43、。</p><p><b> ?。?)時(shí)鐘電路</b></p><p>  時(shí)鐘電路方面,時(shí)鐘信號(hào)通常用兩種電路形式得到:內(nèi)部振蕩和外部振蕩。由于采用內(nèi)部振蕩方式時(shí),電路簡(jiǎn)單,所得的時(shí)鐘信號(hào)也相對(duì)穩(wěn)定,實(shí)際使用中這種方式更為普遍。AT89S52單片機(jī)有一個(gè)用于構(gòu)成內(nèi)部振蕩器的反向放大器,引腳XTAL1(X1)和XTAL(X2)分別是此放大器的輸入端和輸出端,在其外接晶

44、體振蕩器(簡(jiǎn)稱晶振)和陶瓷諧振器都可以用來(lái)一起構(gòu)成自激振蕩器。如圖2-4所示,外接晶振連同兩個(gè)值為30pF的電容構(gòu)成并聯(lián)諧振電路,它們起快速起振、穩(wěn)定振蕩頻率的作用,晶振頻率為 12MHz。</p><p>  圖2-4 AT89S52最小系統(tǒng)主要部分示意圖</p><p><b>  (3)復(fù)位電路</b></p><p>  復(fù)位可以初始化

45、單片機(jī)內(nèi)部的某些特殊功能寄存器,單片機(jī)的復(fù)位是靠外電路來(lái)實(shí)現(xiàn)的。在正常運(yùn)行情況下,只要RST引腳上出現(xiàn)連續(xù)兩個(gè)機(jī)器周期高電平,即可引起單片機(jī)復(fù)位,但如果RST引腳上持續(xù)出現(xiàn)高電平,單片機(jī)就將處于循環(huán)復(fù)位狀態(tài),因此需要單片機(jī)復(fù)位后能脫離復(fù)位狀態(tài)。根據(jù)實(shí)際應(yīng)用的需求,復(fù)位操作通常有上電復(fù)位和開關(guān)復(fù)位兩種基本形式。上電復(fù)位要求單片機(jī)通電后,自動(dòng)實(shí)現(xiàn)復(fù)位操作;而開關(guān)復(fù)位要求在電源接通的情況下,若單片機(jī)在運(yùn)行期間發(fā)生死機(jī),通過按扭開關(guān)操作實(shí)現(xiàn)單片

46、機(jī)復(fù)位。本設(shè)計(jì)采用上電復(fù)位且開關(guān)復(fù)位電路,如圖2-4所示,當(dāng)接通電源后,電容充電,使RST引腳出現(xiàn)持續(xù)一段時(shí)間的高電平,從而實(shí)現(xiàn)上電且開關(guān)復(fù)位操作。通常電容值在10~30uF范圍內(nèi)選擇,電阻值為10KΩ。復(fù)位后,輸入/輸出(I/O)端口 P0~P3置為FFH, 堆棧指針SP 置為07H, SBUF內(nèi)置為不定值,其它的寄存器全部被清零,內(nèi)部RAM的狀態(tài)則不受復(fù)位的影響。</p><p>  2.3.2 DS18B2

47、0溫度傳感器電路</p><p>  DS18B20是Dallas公司生產(chǎn)的一款支持“一線總線”接口的數(shù)字化溫度傳感器,現(xiàn)場(chǎng)溫度直接以“一線總線”的數(shù)字方式傳輸,大大提高了系統(tǒng)的抗干擾性。下面詳細(xì)介紹DS18B20溫度傳感器的使用。</p><p> ?。?)DS18B20的性能指標(biāo)</p><p>  DS18B20溫度傳感器的主要性能指標(biāo)如下:</p>

48、;<p> ?、俟ぷ麟妷海?.0V~5.5V;</p><p>  ②測(cè)量溫度范圍及精度:-55℃~+125℃,以0.5℃遞增;</p><p> ?、蹨囟葦?shù)字量轉(zhuǎn)換時(shí)間:200ms</p><p><b>  ④接口:?jiǎn)尉€接口;</b></p><p> ?、萦脩艨稍O(shè)定的非易失性溫度報(bào)警設(shè)置;</p

49、><p> ?、逌y(cè)量結(jié)果以9~12位數(shù)字量方式串行傳送;</p><p> ?、呖赏ㄟ^數(shù)據(jù)線供電,零待機(jī)功耗。</p><p>  (2)DS18B20的引腳定義</p><p>  DS18B20具有8-Pin的SOIC封裝和3引腳的TO-92封裝,其引腳分布如圖2-5所示。</p><p>  圖2-5 DS18B20

50、的引腳分布</p><p>  DS18B20的各引腳的功能說(shuō)明如下:</p><p>  ①GND:電源供給地</p><p><b> ?、贒Q:數(shù)據(jù)I/O</b></p><p><b>  ③:外接供電輸入</b></p><p><b> ?、躈C:空腳&

51、lt;/b></p><p>  DS18B20的內(nèi)部結(jié)構(gòu)如圖2-6所示:</p><p>  圖2-6 DS18B20的內(nèi)部結(jié)構(gòu)</p><p> ?。?)DS18B20的溫度格式</p><p>  DS18B20采用12位記錄溫度值,最高5位為符號(hào)位,表2-1為DS18B20的溫度數(shù)據(jù)存儲(chǔ)格式,當(dāng)溫度為負(fù)值時(shí)S=1,溫度為正值時(shí)S

52、=0,如:0550H為+85℃,F(xiàn)C90H為-55℃。</p><p>  表2-1 DS18B20溫度數(shù)據(jù)格式</p><p>  LS Byte bit7 bit0</p><p>  MS Byte bit15

53、 bit8</p><p> ?。?)DS18B20時(shí)序</p><p><b> ?、俪跏蓟瘯r(shí)序</b></p><p>  如圖2-7(a)所示DS18B20的所有通信都由由復(fù)位脈沖組成的初始化序列開始,該初始化序列由主機(jī)發(fā)出,后跟由DS18B20發(fā)出的應(yīng)答復(fù)位脈沖的存在脈沖。主機(jī)將總線拉低至少480來(lái)釋放復(fù)位脈沖,

54、之后釋放總線,由于5KΩ的上拉電阻的作用,總線恢復(fù)到高電平,DS18B20檢測(cè)到上升沿后等待15到60,然后以拉低總線60到240的方式發(fā)出存在脈沖。</p><p>  圖2-7 DS18B20時(shí)序示意圖</p><p><b>  ②寫時(shí)序</b></p><p>  如圖2-7(b)所示,主機(jī)在寫時(shí)隙向DS18B20寫入數(shù)據(jù),并在讀時(shí)隙從

55、DS18B20讀出數(shù)據(jù),在單總線上每個(gè)時(shí)隙只傳送一位數(shù)據(jù)。所有的寫時(shí)隙必須至少保持60的持續(xù)時(shí)間,且相鄰兩個(gè)寫時(shí)隙必須要有至少1的恢復(fù)時(shí)間,而所有的寫時(shí)隙,無(wú)論寫0還是寫1,都由拉低總線產(chǎn)生。</p><p>  為產(chǎn)生寫1時(shí)隙,主機(jī)必須在拉低總線后15內(nèi)釋放總線,且拉低的電平至少要持續(xù)1,由于上來(lái)電阻的作用,總線電平恢復(fù)為高電平,直至完成寫時(shí)隙。為產(chǎn)生0時(shí)隙,拉低總線后主機(jī)持續(xù)拉低總線即可,直至寫時(shí)隙完成后釋放

56、總線,持續(xù)60到120。DS18B20會(huì)在寫時(shí)隙產(chǎn)生后的15到60內(nèi)采樣總線,由此來(lái)確定是寫0還是寫1。</p><p><b> ?、圩x時(shí)序</b></p><p>  如圖2-7(c)所示,DS18B20只有在主機(jī)發(fā)出讀時(shí)隙后才會(huì)向主機(jī)發(fā)送數(shù)據(jù),因此主機(jī)在放出讀暫存器命令或讀電源命令后必須即刻產(chǎn)生讀時(shí)隙以使DS18B20提供相應(yīng)的數(shù)據(jù)。</p>&l

57、t;p>  所有的讀時(shí)隙必須至少持續(xù)60,且相鄰兩個(gè)讀時(shí)隙要有至少1的恢復(fù)時(shí)間。所有讀時(shí)隙都由拉低總線至少1后釋放總線產(chǎn)生。由于DS18B20輸出的數(shù)據(jù)在下降沿產(chǎn)生15后有效,釋放總線和主機(jī)采樣總線等動(dòng)作要在15內(nèi)完成。</p><p> ?。?)DS18B20的單片機(jī)接口電路</p><p>  當(dāng)使用AT89S52控制DS18B20進(jìn)行溫度信息采集時(shí),只需要使用AT89S52的一

58、個(gè)引腳和DS18B20的DQ引腳按照通信協(xié)議進(jìn)行通信即可, 其電路如圖2-8所示。</p><p>  圖2-8 DS18B20的單片機(jī)接口電路</p><p>  2.3.3 DS1302實(shí)時(shí)時(shí)鐘電路</p><p>  DS1302是由Dallas公司生產(chǎn)的涓流充電時(shí)鐘芯片,其內(nèi)置有一個(gè)實(shí)時(shí)時(shí)鐘/日歷和31字節(jié)靜態(tài)RAM,經(jīng)由簡(jiǎn)單的串行接

59、口與單片機(jī)進(jìn)行通訊。實(shí)時(shí)時(shí)鐘/日歷電路可以日工年、月、日、時(shí)、分、秒的信息,不同月的天數(shù)和閏年的天數(shù)能夠自動(dòng)調(diào)整,而時(shí)鐘操作可通過AM/PM指示決定采用24小時(shí)格式還是12小時(shí)格式。</p><p> ?。?)DS1302的性能指標(biāo)</p><p>  DS1302的主要性能指標(biāo)如下:</p><p>  ①實(shí)時(shí)時(shí)鐘具有能計(jì)算2100年之前的年、月、日、時(shí)、分、秒的

60、能力,并能夠完成閏年自動(dòng)調(diào)整;</p><p> ?、?1×8位暫存數(shù)據(jù)存儲(chǔ)RAM;</p><p> ?、酃ぷ麟妷海?.0V~5.5V;</p><p> ?、芄ぷ麟娏鳎?.0V時(shí),小于300nA;</p><p> ?、荽蠭/O口方式使得管腳數(shù)量最少;</p><p><b> ?、藓?jiǎn)單三線接

61、口;</b></p><p>  ⑦讀/寫時(shí)鐘或RAM數(shù)據(jù)時(shí),有兩種傳送方式:?jiǎn)巫止?jié)傳送和字符組傳送;</p><p><b> ?、喙ぷ鲿r(shí)功耗極低;</b></p><p> ?、釋?duì)有可選的涓流充電能力;</p><p> ?。?)DS1302的引腳定義</p><p>  圖2-9

62、 DS1302的引腳分布</p><p>  如圖2-9所示,DS1302具有8引腳DIP封裝或可選的8引腳SOIC封裝。</p><p>  DS1302的各引腳定義如下:</p><p> ?、賆1,X2:32.768晶振引腳;</p><p><b> ?、贕ND:地;</b></p><p&g

63、t;<b> ?、跼ST:復(fù)位腳;</b></p><p> ?、躀/O:數(shù)據(jù)輸入/輸出引腳;</p><p> ?、軸CLK:串行時(shí)鐘;</p><p> ?、?:電源供電引腳。</p><p> ?。?)DS1302內(nèi)部寄存器</p><p>  DS1302共有十二個(gè)內(nèi)部寄存器,其中有7個(gè)寄

64、存器與時(shí)鐘、日歷相關(guān),以BCD碼的形式存放數(shù)據(jù)位。表2-2為DS1302內(nèi)部的七個(gè)與時(shí)間、日期有關(guān)的寄存器及一個(gè)寫保護(hù)寄存器的控制字示意表,設(shè)計(jì)中實(shí)時(shí)時(shí)鐘就是通過將初始設(shè)置的日期、時(shí)間數(shù)據(jù)寫入這些寄存器,然后再不斷地從這些寄存器中獲取實(shí)時(shí)時(shí)間和日期。</p><p>  表2-2 DS1302內(nèi)部寄存器控制字示意表</p><p>  下面是表2-2中一些特殊的控制位的定義:</p&

65、gt;<p> ?、貱H:時(shí)鐘停止位,當(dāng)CH=0時(shí),振蕩器工作允許,當(dāng)CH=1時(shí),振蕩器停止;</p><p> ?、赪P:寫保護(hù)位,當(dāng)WP=0時(shí),寄存器數(shù)據(jù)能夠?qū)懭?,?dāng)WP=1時(shí),寄存器數(shù)據(jù)不能寫入;</p><p> ?、蹠r(shí)寄存器的第7位:12/24小時(shí)標(biāo)志位,bit7=0時(shí)為24小時(shí)模式,bit7=1時(shí)則為12小時(shí)模式,;</p><p> ?、?/p>

66、時(shí)寄存器的第5位:AM/PM定義位,AP=0時(shí)為上午模式,AP=1時(shí)則為下午模式。</p><p> ?。?)DS1302的讀寫操作說(shuō)明 </p><p>  除了電源和接地,DS1302只有SCLK、I/O、RST(即CE)三個(gè)引腳與單片機(jī)連接,其數(shù)據(jù)讀寫是通過I/O串行進(jìn)行的。DS1302進(jìn)行一次讀寫操作時(shí)至少讀兩個(gè)字,第一個(gè)字為控制字,即一個(gè)命令;第二個(gè)字極為要讀或?qū)懙臄?shù)據(jù),表2-3

67、為DS1302控制字示意表。</p><p>  表2-3 DS1302控制字示意表</p><p>  7 6 5 4 3 2 1 0</p><p>  如表2-3所示,控制字總是從最低位開始輸出,其最高有效位(位7)必須為1,若為0,則不能向DS1302中寫入數(shù)據(jù)

68、;位6為1時(shí)表示RAM,即尋址內(nèi)部存儲(chǔ)器地址,為0時(shí)尋址內(nèi)部寄存器;位5至位1指示操作單元的地址;位0為1時(shí)表示下一步進(jìn)行讀操作,為0時(shí)表示下一步操作將要“寫”。</p><p>  圖2-10為DS1302進(jìn)行單字節(jié)讀寫操作時(shí)的時(shí)序圖,如圖2-10所示,DS1302在進(jìn)行單字節(jié)寫操作之前須先將CE(即RST)置為高電平,然后單片機(jī)將控制字的最低位放到I/0上,I/O的數(shù)據(jù)穩(wěn)定后,SCLK被置為高電平,DS130

69、2檢測(cè)到SCLK的上升沿后將讀取I/O上的數(shù)據(jù),此后SCLK被置為低電平,再將控制字的位1放到I/O上,如此反復(fù)將一個(gè)字節(jié)控制字的八位傳送給DS1302,接著將字節(jié)中要寫的數(shù)據(jù)的字傳送給DS1302,傳送結(jié)束后,單片機(jī)將CE置為低電平。</p><p>  圖2-10 DS1302單字節(jié)讀寫時(shí)序圖</p><p>  單字節(jié)讀操寫控制字的過程同寫操作基本相同,但在寫控制字的最后一個(gè)位,即最

70、高位時(shí),SCLK還處于高電平時(shí)DS1302就將數(shù)據(jù)放到I/O上,單片機(jī)將SCLK置為低電平后鎖存數(shù)據(jù),接著單片機(jī)就可以讀取I/O上的數(shù)據(jù)。如此反復(fù)就將字節(jié)中要讀的數(shù)據(jù)讀入單片機(jī)。</p><p>  由以上內(nèi)容就可總結(jié)出對(duì)DS1302進(jìn)行操作的步驟:首先要通過寫保護(hù)寄存器WP位取消寫保護(hù)以將日期、時(shí)間的初值寫入各對(duì)應(yīng)寄存器,寫入初值的同時(shí)通過將秒寄存器CH位的值置為0,DS1302開始走時(shí)運(yùn)行,為防止誤改寫寄存器

71、的值需將寫保護(hù)寄存器WP位再次置1,然后不斷讀取各日期、時(shí)間寄存器的值,將它們顯示到字符液晶上。</p><p> ?。?)DS1302的單片機(jī)接口電路</p><p>  如圖2-11所示,除了電源與接地,DS1302僅有SCLK、I/O、RST三個(gè)引腳分別與AT89S52單片機(jī)的P3.5、P3.6、P3.7連接,接系統(tǒng)電源,在系統(tǒng)上電后,DS1302即可運(yùn)行,在接口外接電源可保證系統(tǒng)掉

72、電后時(shí)鐘繼續(xù)運(yùn)行。</p><p>  圖2-11 DS1302的單片機(jī)接口電路</p><p>  2.3.4 多功能溫度計(jì)顯示終端—字符型LCD液晶</p><p>  AT89S52接收到采集的時(shí)間和溫度信息并處理后,需要顯示給最終用戶,相比于LED數(shù)碼管,LCD具有功耗低、接口靈活、顯示質(zhì)量高等優(yōu)點(diǎn)。本設(shè)計(jì)采用了1602字符型LCD。</p>

73、<p> ?。?)LCD1602主要技術(shù)參數(shù)</p><p> ?、亠@示容量:16×2個(gè)字符;</p><p>  ②字符尺寸:2.95×4.35(W×H)mm;</p><p> ?、坌酒ぷ麟妷海?.5~5.5V;</p><p> ?、苣K最佳工作電壓:5.0V;</p><p

74、> ?、莨ぷ麟娏鳎?.0mA(5.0V)。</p><p> ?。?) LCD1602的單片機(jī)接口電路與引腳定義</p><p>  圖2-12為14腳(無(wú)背光)LCD1602的單片機(jī)接口電路,其中,D0~D7數(shù)據(jù)輸入輸出接口連接到的單片機(jī)接口需要在軟件中定義。</p><p>  圖2-12 LCD1602單片機(jī)接口電路</p><p&g

75、t;<b>  各引腳說(shuō)明如下:</b></p><p><b>  GND:電源地;</b></p><p><b>  VDD:電源;</b></p><p>  VEE:液晶顯示偏壓信號(hào),可接到一電位器上調(diào)節(jié)液晶顯示的亮度;</p><p>  RS:數(shù)據(jù)/指令選擇端,高

76、電平時(shí)輸入數(shù)據(jù),低電平時(shí)輸入指令;</p><p>  RW:讀/寫選擇端,高電平時(shí)從LCD讀取信息,低電平時(shí)向LCD寫入數(shù)據(jù)或指令;</p><p>  E:使能信號(hào),高電平時(shí)讀取信息,下降沿執(zhí)行指令;</p><p>  D0~D7:8位雙向數(shù)據(jù)線,其中D0為最低位,D7為最高位;</p><p>  BGVCC:LCD背光電源正極(見于

77、16腳LCD1602接口);</p><p>  BGGND:LCD背光電源負(fù)極(見于16腳LCD1602接口)</p><p> ?。?) LCD1602指令說(shuō)明及時(shí)序</p><p><b> ?、?基本操作時(shí)序</b></p><p>  讀狀態(tài):輸入位RS=0,RW=1,E=1,輸出位DO~D7為狀態(tài)字;<

78、/p><p>  寫指令:輸入位RS=0,RW=1,D0~D7為指令碼,E為高脈沖;</p><p>  讀數(shù)據(jù):輸入位RS=1,RW=1,E=1,輸出位D0~D7為數(shù)據(jù);</p><p>  寫數(shù)據(jù):輸入位RS=1,RW=0,DO~D7為數(shù)據(jù),E為高脈沖,無(wú)輸出。</p><p><b> ?、跔顟B(tài)字說(shuō)明</b></

79、p><p>  如表2-4所示,STA0~6存儲(chǔ)當(dāng)前數(shù)據(jù)地址指針的數(shù)值,STA7為讀寫操作使能位,當(dāng)該位為0時(shí)允許讀寫操作,反之,則禁止讀寫操作。對(duì)控制器每次進(jìn)行讀寫操作之前,都要確保STA7為0。</p><p>  表2-4 狀態(tài)字說(shuō)明表</p><p><b> ?、?RAM地址映射</b></p><p>  要顯示

80、字符時(shí)要先輸入顯示字符地址,即LCD顯示字符的位置信息,圖2-13為L(zhǎng)CD1602RAM地址映射圖。</p><p>  圖2-13 RAM地址映射圖</p><p>  2.3.5 鍵盤輸入電路</p><p>  由于多功能溫度計(jì)具備時(shí)鐘的功能,因此需要具有設(shè)置時(shí)鐘的按鍵輸入設(shè)備,本設(shè)計(jì)采用了4個(gè)按鍵作為輸入設(shè)備,與AT89S52的P2.3~P2.6相連。圖2-

81、14即為鍵盤輸入電路示意圖。</p><p>  圖2-14 鍵盤輸入電路</p><p>  3 多功能溫度計(jì)的軟件設(shè)計(jì)</p><p>  3.1 系統(tǒng)主程序流程圖</p><p>  圖3-1為多功能溫度計(jì)系統(tǒng)主程序流程圖,系統(tǒng)上電后,對(duì)各個(gè)芯片進(jìn)行初始化,此后,若有按鍵操作,將進(jìn)入時(shí)鐘調(diào)整模式,LCD1602將對(duì)應(yīng)按鍵操作顯示;若無(wú)按

82、鍵操作,LCD1602將維持初始顯示。源代碼詳見附錄主函數(shù)部分。</p><p><b>  N</b></p><p><b>  Y</b></p><p>  圖3-1 系統(tǒng)主程序流程圖</p><p>  3.2 時(shí)鐘模塊程序流程圖</p><p>  圖3-2為多功

83、能溫度計(jì)系統(tǒng)時(shí)鐘模塊程序流程圖,系統(tǒng)上電后,對(duì)DS1302進(jìn)行讀操作,讀取的數(shù)據(jù)經(jīng)轉(zhuǎn)換后送交LCD1602顯示,若有按鍵操作,則進(jìn)入時(shí)鐘調(diào)整模式,調(diào)整后的數(shù)據(jù)寫入DS1302寄存器,再由單片機(jī)讀取,LCD1602更新顯示;若無(wú)按鍵操作,則繼續(xù)讀取DS1302數(shù)據(jù),LCD更新顯示。源代碼詳見附錄DS1302子程序部分。</p><p><b>  N</b></p><p&

84、gt;<b>  Y</b></p><p>  圖3-2 時(shí)鐘模塊程序流程圖</p><p>  3.3 溫度模塊程序流程圖</p><p>  圖3-3為多功能溫度計(jì)系統(tǒng)溫度模塊程序流程圖,系統(tǒng)上電后,對(duì)DS18B20寫入命令以啟動(dòng)溫度測(cè)量,單片機(jī)讀取溫度數(shù)據(jù)并將數(shù)據(jù)轉(zhuǎn)換為十進(jìn)制后送交LCD1602顯示。源代碼詳見附錄DS18B20子程序部

85、分。</p><p>  圖3-3 溫度模塊程序流程圖</p><p>  3.4 顯示模塊程序流程圖</p><p>  圖3-4為多功能溫度計(jì)系統(tǒng)顯示模塊程序流程圖:</p><p><b>  N</b></p><p><b>  Y</b></p>&

86、lt;p>  圖3-4 顯示模塊程序流程圖</p><p>  如圖所示,系統(tǒng)上電后,若無(wú)按鍵操作,LCD1602將顯示程序中設(shè)定的默認(rèn)內(nèi)容,若有按鍵操作,將進(jìn)入時(shí)鐘調(diào)整模式,LCD1602將根據(jù)調(diào)整更新顯示內(nèi)容。具體源代碼詳見附錄液晶顯示程序部分。</p><p>  3.5 鍵盤輸入程序流程圖</p><p>  圖3-5為多功能溫度計(jì)系統(tǒng)鍵盤輸入程序流程

87、圖:</p><p><b>  N</b></p><p><b>  Y</b></p><p>  圖3-5 鍵盤輸入程序流程圖</p><p>  如圖所示,系統(tǒng)上電后,對(duì)按鍵連接的端口進(jìn)行初始化,之后,若有按鍵操作,則進(jìn)入時(shí)鐘調(diào)整模式,四個(gè)按鍵分別執(zhí)行模式切換、數(shù)值加一、數(shù)值減一、退出調(diào)整

88、模式功能,LCD1602將根據(jù)按鍵操作更新顯示內(nèi)容;若無(wú)按鍵操作,將進(jìn)入等待狀態(tài),直至掃描到按鍵操作。源代碼詳見附錄按鍵功能程序部分。</p><p>  4 系統(tǒng)仿真及實(shí)物制作</p><p><b>  4.1仿真軟件介紹</b></p><p>  通過軟件對(duì)系統(tǒng)進(jìn)行仿真,是進(jìn)行實(shí)物制作前的必要步驟,通過軟件仿真,可以觀察到系統(tǒng)模擬運(yùn)行的

89、結(jié)果,對(duì)于軟件調(diào)試和實(shí)物焊接具有重要的指導(dǎo)意義。</p><p>  本設(shè)計(jì)采用Proteus作為仿真軟件,版本為7.4sp3。Proteus是英國(guó)Labcenter公司開發(fā)的電路分析與實(shí)物仿真及印制電路板設(shè)計(jì)軟件,它可以仿真、分析各種模擬電路與集成電路,軟件提供了大量模擬與數(shù)字元器件及外部設(shè)備,各種虛擬儀器,特別是它具有對(duì)單片機(jī)及其外圍電路組成的綜合系統(tǒng)的交互仿真功能。</p><p>

90、  Proteus主要由ISIS和ARES兩部分組成,ISIS的主要功能是原理圖設(shè)計(jì)及與電路原理圖的交互仿真,ARES主要用于印制電路板的設(shè)計(jì)。Proteus的ISIS是一款Labcenter出品的電路分析實(shí)物仿真系統(tǒng),可仿真各種電路和IC,并支持單片機(jī),元件庫(kù)齊全,使用方便,是不可多得的專業(yè)的單片機(jī)軟件仿真系統(tǒng)。圖4-1為Proteus ISIS的運(yùn)行界面。</p><p>  圖4-1 Proteus ISI

91、S運(yùn)行界面</p><p><b>  4.2 仿真結(jié)果</b></p><p>  根據(jù)硬件設(shè)計(jì)思想,將系統(tǒng)所需要的元件在ISIS中連接好后,在AT89S52單片機(jī)中加載編譯好的hex文件,即可進(jìn)行仿真。圖4-2為多功能溫度計(jì)的仿真結(jié)果。</p><p>  圖4-2 多功能溫度計(jì)仿真運(yùn)行結(jié)果</p><p><

92、b>  4.3 實(shí)物制作</b></p><p>  仿真運(yùn)行正常后,就可以著手購(gòu)買器件進(jìn)行實(shí)物制作。本次設(shè)計(jì)所用器件主要由網(wǎng)上購(gòu)買,由于DS1302和DS18B20的單片機(jī)接口電路并不復(fù)雜,實(shí)物制作過程比較順利。圖4-3為多功能溫度計(jì)實(shí)物實(shí)拍圖片。</p><p>  圖4-3 多功能溫度計(jì)實(shí)物實(shí)拍圖</p><p><b>  5 總

93、結(jié)與展望</b></p><p><b>  5.1 總結(jié)</b></p><p>  基于單片機(jī)的多功能溫度計(jì)并不是一個(gè)硬件設(shè)計(jì)難度較大的題目,難點(diǎn)主要還是集中在軟件設(shè)計(jì)上。最初采用的程序在Proteus中仿真運(yùn)行正常,但在實(shí)物中燒入程序后,LCD顯示發(fā)生異常,參考同學(xué)資料對(duì)連接引腳進(jìn)行修改后,實(shí)物運(yùn)行正常,可見,自己對(duì)AT89S52單片機(jī)的引腳功能了解

94、還不夠透徹。實(shí)物焊接中,許多引腳的焊點(diǎn)較為粗糙,焊功有待提高,還須多加練習(xí)。</p><p><b>  5.2 展望</b></p><p>  雖然預(yù)想的功能在實(shí)物中都能實(shí)現(xiàn),但還有許多地方可以改進(jìn)。首先,由于采用的LCD1602的字符位數(shù)較少,顯示內(nèi)容的布局還不甚理想,需要多加揣摩,且因?yàn)椴恢С种形娘@示,顯示的內(nèi)容還不夠豐富,可改用LCD12864以實(shí)現(xiàn)更豐富的

95、顯示。其次,多功能溫度計(jì)雖稍顯低端,卻貼近人們的日常生活,為了使用的方便,可將本設(shè)計(jì)采用的USB供電方式改為更加靈活的電池供電,此外,也可加裝外殼,使多功能溫度計(jì)整體顯得更加美觀。</p><p><b>  致 謝</b></p><p>  這畢業(yè)設(shè)計(jì)較以往的課程設(shè)計(jì)要求更高,經(jīng)過長(zhǎng)時(shí)間的準(zhǔn)備和不斷的修改完善,終于順利實(shí)現(xiàn)了設(shè)想功能。首先要感謝我的指導(dǎo)老師xx老

96、師,他從畢業(yè)設(shè)計(jì)開始到完成都給了我很多的指導(dǎo)和幫助,提出我在論文中的一些不足之處,并給予了修正建議。</p><p>  周圍的同學(xué)在資料收集,程序修改,實(shí)物制作等方面給我提供了很大幫助,感謝他們。同時(shí),也要感謝網(wǎng)上那些無(wú)私分享資料的朋友,整個(gè)設(shè)計(jì)中硬件設(shè)計(jì)和軟件設(shè)計(jì)部分都參考了大量從網(wǎng)上得來(lái)的資料。</p><p>  最后,在即將結(jié)束四年大學(xué)生活之際,要感謝各位老師的諄諄教導(dǎo),感謝學(xué)校

97、為我們提供如此豐富的學(xué)習(xí)資源和如此美麗的校園。</p><p><b>  參考文獻(xiàn)</b></p><p>  [1]余發(fā)山,王福忠等.單片機(jī)原理及應(yīng)用技術(shù).徐州:中國(guó)礦業(yè)大學(xué)出版社,2008:7-63</p><p>  [2]張靖武,周靈彬.單片機(jī)原理、應(yīng)用與PROTEUS仿真.北京:電子工業(yè)出版社,2008:18-68</p>

98、;<p>  [3]張?zhí)旆驳?51單片機(jī)C語(yǔ)言開發(fā)詳解.北京:電子工業(yè)出版社,2008:14-361</p><p>  [4]譚浩強(qiáng).C程序設(shè)計(jì).北京:清華大學(xué)出版社,2005:37-66</p><p>  [5]徐愛均. 單片機(jī)原理實(shí)用教程 基于Proteus虛擬仿真。北京:電子工業(yè)出版社,2009:185-212</p><p>  [6]林立

99、.單片機(jī)原理及應(yīng)用 基于Proteus和Keil C.北京:電子工業(yè)出版社,2009:196-218</p><p>  [7]江世明.基于Proteus的單片機(jī)應(yīng)用技術(shù).北京:電子工業(yè)出版社,2009:73-126</p><p>  [8]孫育才,王榮興,孫華芳等.ATMEL新型AT89S52系列單片機(jī)及其應(yīng)用.北京:清華大學(xué)出版社,2005:3-78</p><p

100、>  [9]郭觀七.基于 C 語(yǔ)言的 MCS-51 系列單片機(jī)軟件開發(fā)系統(tǒng).武漢:華中理工大學(xué)出版社,1997:17-97</p><p>  [10]劉文濤.單片機(jī)語(yǔ)言C51典型應(yīng)用設(shè)計(jì).北京:人民郵電出版社,2005:170-243</p><p>  附錄 多功能溫度計(jì)部分程序清單</p><p><b>  主函數(shù)部分:</b>&

101、lt;/p><p><b>  main()</b></p><p><b>  {</b></p><p>  flag=1;//時(shí)鐘停止標(biāo)志</p><p>  LCD_Initial();//液晶初始化</p><p>  Init_DS18B20( ) ;//DS1

102、8B20 初始化</p><p>  Initial_DS1302(); //時(shí)鐘芯片初始化</p><p>  up_flag=0;</p><p>  down_flag=0;</p><p>  done=0;//進(jìn)入默認(rèn)液晶顯示</p><p><b>  while(1)</b><

103、;/p><p><b>  {</b></p><p>  while(done==1)</p><p>  keydone();//進(jìn)入調(diào)整模式</p><p>  while(done==0)</p><p><b>  {</b></p><p>

104、  show_time();//液晶顯示數(shù)據(jù)</p><p><b>  flag=0;</b></p><p>  Setkey();//掃描各功能鍵</p><p><b>  }</b></p><p><b>  }</b></p><p>

105、<b>  }</b></p><p>  DS1302子程序部分:</p><p>  typedef struct __SYSTEMTIME__</p><p><b>  {</b></p><p>  unsigned char Second;</p><p>  u

106、nsigned char Minute;</p><p>  unsigned char Hour;</p><p>  unsigned char Week;</p><p>  unsigned char Day;</p><p>  unsigned char Month;</p><p>  unsigned

107、char Year;</p><p>  unsigned char DateString[11];</p><p>  unsigned char TimeString[9];</p><p>  }SYSTEMTIME; //定義的時(shí)間類型結(jié)構(gòu)體</p><p>  SYSTEMTIME CurrentTime; //

108、時(shí)間類型結(jié)構(gòu)體變量</p><p>  #define AM(X) X </p><p>  #define PM(X) (X+12) // 轉(zhuǎn)成 24 小時(shí)制</p><p>  #define DS1302_SECOND0x80 //時(shí)鐘芯片的寄存器位置,存放時(shí)間</p><p>  #define DS1

109、302_MINUTE0x82</p><p>  #define DS1302_HOUR 0x84</p><p>  #define DS1302_DAY 0x86</p><p>  #define DS1302_MONTH0x88</p><p>  #define DS1302_WEEK 0x8A</

110、p><p>  #define DS1302_YEAR 0x8C</p><p>  void DS1302InputByte(unsigned char d) //實(shí)時(shí)時(shí)鐘寫入一字節(jié)(內(nèi)部函數(shù))</p><p><b>  {</b></p><p>  unsigned char i;</p>&l

111、t;p><b>  ACC = d;</b></p><p>  for(i=8; i>0; i--)</p><p><b>  {</b></p><p>  DS1302_IO = ACC0; //相當(dāng)于匯編中的 RRC</p><p>  DS1302_CLK = 1;&l

112、t;/p><p>  DS1302_CLK = 0;</p><p>  ACC = ACC >> 1;</p><p><b>  }</b></p><p><b>  }</b></p><p>  unsigned char DS1302OutputByte(

113、void)//實(shí)時(shí)時(shí)鐘讀取一字節(jié)(內(nèi)部函數(shù))</p><p><b>  {</b></p><p>  unsigned char i;</p><p>  for(i=8; i>0; i--)</p><p><b>  {</b></p><p>  ACC =

114、 ACC >>1; //相當(dāng)于匯編中的 RRC</p><p>  ACC7 = DS1302_IO;</p><p>  DS1302_CLK = 1;</p><p>  DS1302_CLK = 0;</p><p><b>  }</b></p><p>  return(

115、ACC);</p><p><b>  }</b></p><p>  /////////////////////////////////////////////////////////////</p><p>  void Write1302(unsigned char ucAddr, unsigned char ucDa)</p&g

116、t;<p>  //ucAddr: DS1302 地址, ucData: 要寫的數(shù)據(jù)</p><p><b>  {</b></p><p>  DS1302_RST = 0;</p><p>  DS1302_CLK = 0;</p><p>  DS1302_RST = 1;</p>&l

117、t;p>  DS1302InputByte(ucAddr); // 地址,命令</p><p>  DS1302InputByte(ucDa); // 寫 1Byte 數(shù)據(jù)</p><p>  DS1302_CLK = 1;</p><p>  DS1302_RST = 0;</p><p><b>  }</b&g

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(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)論