2023年全國(guó)碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩87頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  摘要</b></p><p>  隨著社會(huì)快速的發(fā)展,人們的生活節(jié)奏變得越來越快,人們對(duì)時(shí)間觀念也愈來愈重視。自動(dòng)化、智能化技術(shù)的發(fā)展,機(jī)電產(chǎn)品的智能度愈來愈高,用到時(shí)間提示、定時(shí)控制的地方也會(huì)愈來愈多,因此,設(shè)計(jì)開發(fā)數(shù)字時(shí)鐘具有良好的應(yīng)用前景。</p><p>  由于單片機(jī)價(jià)格的低成本、高性能,在自動(dòng)控制產(chǎn)品中得到了廣泛的應(yīng)用。本文以

2、STC89C52為核心控制芯片,DS1302為時(shí)鐘芯片,DS18B20為溫度傳感器,通過液晶顯示器AMPIRE128X64實(shí)時(shí)顯示時(shí)間及溫度,通過按鍵設(shè)置年月日和星期以及定時(shí)鬧鐘,定時(shí)鬧鐘時(shí)間到自動(dòng)發(fā)出警報(bào),應(yīng)用C語言進(jìn)行軟件編程,并用Altium Designer Summer 09軟件進(jìn)行演示、驗(yàn)證。經(jīng)過測(cè)試,系統(tǒng)可以正常完成預(yù)定的功能。</p><p>  關(guān)鍵詞:?jiǎn)纹瑱C(jī) STC89C52 電子時(shí)鐘

3、 C語言</p><p><b>  Abstract</b></p><p>  With rapid development of society, people's life rhythm becomes faster and faster, people to the concept of time is also more and more at

4、tention. Automation, intelligent technology development, the intelligence degree of mechanical and electronic products become more and more high, use time reminder, timing control will be more and more, therefore, design

5、 and develop digital clock has a good application prospect.</p><p>  Because of the price of low-cost, high-performance microcontroller, has been widely used in automatic control of the products. With STC89C

6、52 as the core control chip, this paper DS1887 for the clock chip, DS18B20 as temperature sensor, through the LCD display AMPITE128X64 real-time display of time and temperature, through the button and set the date and we

7、ek timing alarm clock, timer alarm clock time to alert automatically, using C language for software programming, using Altium Designer Summer </p><p>  Key words: single chip microcomputer C language STC89C5

8、2 electronic clock </p><p><b>  第一章 緒論</b></p><p>  1.1電子時(shí)鐘的研究背景</p><p>  單片機(jī)自1976年由Intel公司推出MCS-48開始,迄今已有二十多年了。由于單片機(jī)集成度高、功能強(qiáng)、可靠性高、體積小、功耗低、使用方便、價(jià)格低廉等一系列優(yōu)點(diǎn),目前已經(jīng)滲入到人們工作和生

9、活的方方面面,單片機(jī)的應(yīng)用領(lǐng)域已從面向工業(yè)控制、通訊、交通、智能儀表等迅速發(fā)展到家用消費(fèi)產(chǎn)品、辦公自動(dòng)化、汽車電子、PC機(jī)外圍以及網(wǎng)絡(luò)通訊等廣大領(lǐng)域。</p><p>  單片機(jī)有兩種基本結(jié)構(gòu):一種是在通用微型計(jì)算機(jī)中廣泛采用的,程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器共用一個(gè)存儲(chǔ)器空間的結(jié)構(gòu),稱為“馮·諾依曼”(Von Neumann)結(jié)構(gòu)。另一種是將程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器截然分開,分別尋址的結(jié)構(gòu),稱為“哈佛”(Har

10、vard)結(jié)構(gòu),目前的單片機(jī)采用此種結(jié)構(gòu)為多。</p><p>  本文討論的單片機(jī)多功能時(shí)鐘系統(tǒng)的核心是目前應(yīng)用極為廣泛的51系列單片機(jī),配置了外圍設(shè)備,構(gòu)成了一個(gè)可編程的計(jì)時(shí)定時(shí)系統(tǒng),具有體積小,可靠性高,功能多等特點(diǎn)。不僅能滿足所需要求而且還有很多功能可供擴(kuò)展,有著廣泛的應(yīng)用領(lǐng)域。</p><p>  20世紀(jì)末,電子技術(shù)得到了極速的發(fā)展,毫無疑問,在其推動(dòng)下,現(xiàn)代電子產(chǎn)品以及各種高

11、科技產(chǎn)品幾乎滲透到了社會(huì)的各個(gè)領(lǐng)域,這有力地推動(dòng)了社會(huì)生產(chǎn)力的發(fā)展和社會(huì)信息化程度以及綜合科技水平的提高,但產(chǎn)品更新?lián)Q代的頻率也越來越快。隨著科技的發(fā)展社會(huì)的進(jìn)步和全球化競(jìng)爭(zhēng)的日益激烈,人們對(duì)數(shù)字鐘的要求也越來越高,傳統(tǒng)的時(shí)鐘已不能滿足人們的需求。多功能電子鐘不管在性能還是在樣式亦或是用途上都發(fā)生了重大的變化,許多電子鐘都已具備電子鬧鐘、電子秒表、溫度檢測(cè)等功能。同時(shí)單片機(jī)在多功能數(shù)字鐘中的應(yīng)用已是非常普遍的[1]。</p>

12、<p>  多功能電子時(shí)鐘除了具有時(shí)鐘的功能外還可以包含對(duì)環(huán)境溫度檢測(cè)的功能。溫度是一種最基本的環(huán)境參數(shù)。在各個(gè)行業(yè)生產(chǎn)及日常生活中,對(duì)溫度的測(cè)量及控制始終占據(jù)著非常重要的地位。目前,典型的溫度檢測(cè)控制系統(tǒng)由模擬式溫度傳感器、A/D轉(zhuǎn)換電路和各種單片機(jī)組成。由于模擬式溫度傳感器輸出的模擬信號(hào)必須經(jīng)過A/D轉(zhuǎn)換環(huán)節(jié)轉(zhuǎn)換為數(shù)字信號(hào)后才能與單片機(jī)等微處理器接口進(jìn)行讀寫的操作,所以硬件電路會(huì)比較復(fù)雜,成本較高。而以DS18B20為

13、代表的新型單線總線數(shù)字式溫度傳感器集溫度測(cè)量和A/D轉(zhuǎn)換于一體,這類傳感器可以直接輸出數(shù)字量,同時(shí)與單片機(jī)接口電路結(jié)構(gòu)非常簡(jiǎn)單,可以廣泛用于距離遠(yuǎn)、節(jié)點(diǎn)分布多的場(chǎng)合,具有較強(qiáng)推廣應(yīng)用價(jià)值。[2] </p><p>  數(shù)字電子時(shí)鐘是采用數(shù)字電路實(shí)現(xiàn)對(duì)時(shí),分,秒數(shù)字顯示的裝置,廣泛用于個(gè)人家庭,車站,碼頭辦公室等公共場(chǎng)所,成為人們?nèi)粘I钪胁豢苫蛉钡谋匦杵?,由于?shù)字集成電路的發(fā)展和石英晶體振蕩器的廣泛應(yīng)用,數(shù)字時(shí)鐘

14、的精度遠(yuǎn)遠(yuǎn)超過老式鐘表,鐘表的數(shù)字化給人們生產(chǎn)生活帶來了極大的方便,而且大大地?cái)U(kuò)展了鐘表原先的報(bào)時(shí)功能。例如定時(shí)自動(dòng)報(bào)警、按時(shí)自動(dòng)打鈴、時(shí)間程序自動(dòng)控制、定時(shí)廣播、自動(dòng)啟閉路燈、定時(shí)開關(guān)烘箱、通斷動(dòng)力設(shè)備、甚至各種定時(shí)電器的自動(dòng)啟用等,所有這些,都是以鐘表數(shù)字化為基礎(chǔ)的。因此,研究數(shù)字時(shí)鐘及擴(kuò)大其應(yīng)用,有著非常現(xiàn)實(shí)的意義。</p><p>  1.2電子時(shí)鐘的國(guó)內(nèi)外研究現(xiàn)狀</p><p>

15、;  數(shù)字電子時(shí)鐘,自從它發(fā)明的那天起,就成為人類的朋友,給人們的生活、學(xué)習(xí)、工作、娛樂帶來極大的方便。但隨著時(shí)間的推移,科學(xué)技術(shù)的不斷發(fā)展,生活節(jié)奏越來越快,競(jìng)爭(zhēng)日益激烈,人們對(duì)時(shí)間計(jì)量的精度要求越來越高,應(yīng)用越來越廣。可以說時(shí)間的準(zhǔn)確已成為各行各業(yè)安全運(yùn)行的基礎(chǔ),如果時(shí)間出現(xiàn)誤差而不能及時(shí)校正,會(huì)造成一系列嚴(yán)重的后果和經(jīng)濟(jì)損失[3] 。 </p><p>  電子時(shí)鐘的設(shè)計(jì)方法有多種,可用中小規(guī)模集成電路組成

16、電子鐘,也可以利用專用的電子鐘芯片配以顯示電路及其所需要的外圍電路組成電子鐘,還可以利用對(duì)單片機(jī)編程來實(shí)現(xiàn)電子鐘。其中,利用單片機(jī)實(shí)現(xiàn)的電子時(shí)鐘具有硬件結(jié)構(gòu)簡(jiǎn)單、編程靈活、便于功能擴(kuò)展等特點(diǎn)。由單片機(jī)作為數(shù)字鐘的核心控制器,可以通過它的時(shí)鐘信號(hào)實(shí)現(xiàn)計(jì)時(shí)功能,將其時(shí)間數(shù)據(jù)經(jīng)單片機(jī)輸出,利用顯示器顯示出來。通過鍵盤可以進(jìn)行定時(shí)、校時(shí)功能。輸出設(shè)備顯示器可以用液晶顯示技術(shù)或者數(shù)碼管顯示技術(shù)[4]。</p><p>  

17、溫度是一種最基本的環(huán)境參數(shù),日常生活和工農(nóng)業(yè)生產(chǎn)中經(jīng)常要檢測(cè)溫度。傳統(tǒng)的方式是采用熱電偶或熱電阻,但是由于模擬溫度傳感器輸出為模擬信號(hào),必須經(jīng)過A/D 轉(zhuǎn)換環(huán)節(jié)獲得數(shù)字信號(hào)后才能與單片機(jī)等微處理器接口,使得硬件電路結(jié)構(gòu)復(fù)雜,制作成本較高。近年來,美國(guó)DALLAS 公司生產(chǎn)的DSl8B20 為代表的新型單總線數(shù)字式溫度傳感器以其突出優(yōu)點(diǎn)廣泛使用于倉儲(chǔ)管理、工農(nóng)業(yè)生產(chǎn)制造、氣象觀測(cè)、科學(xué)研究以及日常生活中。DSl8B20 集溫度測(cè)量和A/D

18、 轉(zhuǎn)換于一體,直接輸出數(shù)字量,傳輸距離遠(yuǎn),可以很方便地實(shí)現(xiàn)多點(diǎn)測(cè)量,硬件電路結(jié)構(gòu)簡(jiǎn)單,與單片機(jī)接口幾乎不需要外圍元件[5]。 </p><p>  智能溫度傳感器(亦稱數(shù)字溫度傳感器)是上世紀(jì)90年代中期問世的。此類傳感器是微電子技術(shù)、計(jì)算機(jī)技術(shù)和自動(dòng)測(cè)試技術(shù)的結(jié)晶。目前,國(guó)際上已開發(fā)出多種智能溫度傳感器。智能溫度傳感器內(nèi)部一般包含溫度傳感器、A/D轉(zhuǎn)換器、信號(hào)處理器、存儲(chǔ)器(或寄存器)和接口電路。有的產(chǎn)品還帶多

19、路選擇器、中央控制器、隨機(jī)存取存儲(chǔ)器和只讀存儲(chǔ)器。智能溫度傳感器能實(shí)時(shí)更新并輸出溫度數(shù)據(jù),適配于各種微控制器也就是通常所說的單片機(jī)(MCU),并且可通過軟件來實(shí)現(xiàn)顯示功能,其智能化取決于軟件和硬件的綜合開發(fā)水平,二者缺一不可。目前,新型溫度傳感器正從模擬式向數(shù)字式、集成化向智能化及網(wǎng)絡(luò)化的方向發(fā)展[6]。21世紀(jì)后,智能溫度傳感器毫無疑問正朝著高精度、多功能、總線標(biāo)準(zhǔn)化、高可靠性及高安全性等高科技的方向迅速發(fā)展,開發(fā)虛擬傳感器和網(wǎng)絡(luò)傳感

20、器、研制更先進(jìn)的單片測(cè)溫系統(tǒng)已是刻不容緩[7]。</p><p>  在日常生活和自動(dòng)控制系統(tǒng)中,我們時(shí)常會(huì)遇到對(duì)時(shí)間和溫度實(shí)時(shí)監(jiān)控的需求。這就給具有多種功能的時(shí)鐘提供了市場(chǎng),也有了市場(chǎng)開發(fā)的前景。本文給出了一種基于單片機(jī)實(shí)現(xiàn)帶溫度檢測(cè)的電子時(shí)鐘的設(shè)計(jì)方法和實(shí)現(xiàn)過程。在日常生活和工作中,我們常常用到定時(shí)控制,如擴(kuò)印過程中的曝光定時(shí)等。早期常用的一些時(shí)間控制單元都使用模擬電路設(shè)計(jì)制作的,其定時(shí)準(zhǔn)確性和重復(fù)精度都不是

21、很理想,現(xiàn)在基本上都是基于數(shù)字技術(shù)的新一代產(chǎn)品,隨著單片機(jī)性價(jià)比的不斷提高,新一代產(chǎn)品的應(yīng)用也越來越廣泛。大則可以構(gòu)成復(fù)雜的工業(yè)過程控制系統(tǒng),完成復(fù)雜的控制功能;小則可以用于家電控制,甚至可以用于兒童電子玩具。它功能強(qiáng)大、體積小、質(zhì)量輕、靈活好用,配以適當(dāng)?shù)慕涌谛酒梢詷?gòu)成各種各樣、功能各異的微電子產(chǎn)品。</p><p>  隨著電子技術(shù)的飛速發(fā)展,家用電器和辦公電子設(shè)備逐漸增多,不同的設(shè)備都有自己的控制器,使

22、用起來很不方便。這些具有人們所需要的智能化特性的產(chǎn)品減輕了人的勞動(dòng),擴(kuò)大了數(shù)字化的范圍,為家庭數(shù)字化提供了可能。</p><p>  根據(jù)這種實(shí)際情況,設(shè)計(jì)了一個(gè)單片機(jī)多功能時(shí)鐘系統(tǒng),它有基本的時(shí)間功能,還有定時(shí)功能,既可作為鬧鈴,也可擴(kuò)展為定時(shí)對(duì)家電等電氣產(chǎn)品的自動(dòng)控制,可以避免多種控制器的混淆,利用一個(gè)控制器對(duì)多路電器進(jìn)行控制;可增加溫度傳感器,進(jìn)行實(shí)時(shí)溫度顯示,進(jìn)一步擴(kuò)展為利用不同的溫度某些電氣產(chǎn)品進(jìn)行自動(dòng)

23、控制;也可增加濕度傳感器,進(jìn)行實(shí)時(shí)濕度顯示,以便對(duì)濕度進(jìn)行控制,方便人們的生活。</p><p><b>  1.3 本章小結(jié)</b></p><p>  本章主要介紹了課題背景、設(shè)計(jì)任務(wù)和課題意義,對(duì)單片機(jī)的優(yōu)點(diǎn)及結(jié)構(gòu)作了簡(jiǎn)要敘述,也對(duì)本系統(tǒng)的應(yīng)用及概況進(jìn)行了說明。</p><p><b>  第二章 總體方案</b>&

24、lt;/p><p>  2.1 系統(tǒng)的設(shè)計(jì)思路</p><p>  本次設(shè)計(jì)完成電子時(shí)鐘年、月、日、時(shí)、分、秒的顯示及環(huán)境溫度測(cè)量等功能的基礎(chǔ)上完成定時(shí)鬧鐘的功能。由于DS12887時(shí)鐘芯片內(nèi)含一個(gè)鋰電池,所以斷電情況可以運(yùn)行十年以上不丟失數(shù)據(jù),重新上電后不用校正時(shí)鐘。</p><p>  硬件電路包括單片機(jī)最小系統(tǒng)電路、DS12887實(shí)時(shí)時(shí)鐘芯片電路模塊、AMPIRE

25、128X64液晶顯示模塊、按鍵模塊、DS18B20溫度傳感器模塊、蜂鳴器報(bào)警電路模塊;軟件部分主要通過c程序的編程實(shí)現(xiàn)對(duì)時(shí)鐘芯片進(jìn)行時(shí)間數(shù)據(jù)的讀和寫,然后通過液晶顯示程序?qū)r(shí)間顯示出來,通過按鍵操作實(shí)現(xiàn)功能的轉(zhuǎn)換和屏幕的切換。設(shè)計(jì)中結(jié)合硬件、軟件的分步調(diào)試,達(dá)到要求的控制效果。</p><p>  2.2 系統(tǒng)硬件描述</p><p>  基于單片機(jī)系統(tǒng)的電子時(shí)鐘基本結(jié)構(gòu)框圖如圖2-1所示

26、:</p><p>  圖2-1 系統(tǒng)基本結(jié)構(gòu)框圖</p><p>  該系統(tǒng)所需要的器件包括單片機(jī)STC89C52芯片一塊,實(shí)時(shí)時(shí)鐘芯片DS12887一塊,溫度傳感器DS18B20一塊,液晶顯示屏AMPIRE128X64一塊,雙4輸入與門芯片74LS21一塊,蜂鳴器一個(gè),12mHZ的晶振一個(gè),排針排線若干組,電容電阻若干,導(dǎo)線若干,發(fā)光二級(jí)管;溫度測(cè)量部分實(shí)現(xiàn)環(huán)境溫度測(cè)量及顯示;鍵盤部分

27、主要為時(shí)鐘和鬧鐘設(shè)置;功能整體程序流程框圖如圖2-2所示。</p><p>  2.3設(shè)計(jì)流程和預(yù)期成果</p><p>  該設(shè)計(jì)的主要流程如下:首先閱讀大量參考文獻(xiàn),進(jìn)行設(shè)計(jì)方案的確定,然后在Protel 99SE上進(jìn)行原理圖的繪制和修改,在電氣檢查無誤的情況下,購(gòu)買所需要的元器件(元器件應(yīng)考慮裕量)。接著把元器件焊接到各個(gè)功能電路的模塊上,并結(jié)合程序進(jìn)行調(diào)試。最后將各個(gè)功能的電路程序

28、組合起來,然后再進(jìn)行總體調(diào)試直到成功。</p><p>  本設(shè)計(jì)能達(dá)到以下結(jié)果:</p><p>  1)顯示年、月、日、星期等日歷相關(guān)信息。通過按鍵設(shè)置年月日和星期,以及定時(shí)鬧鐘、俄羅斯方塊和貪吃蛇游戲等。</p><p>  2)掉電后時(shí)鐘芯片正常運(yùn)行,重新上電后不用校正時(shí)鐘。</p><p>  3)定時(shí)時(shí)間到達(dá)時(shí),蜂鳴器報(bào)警;手動(dòng)按

29、任意鍵報(bào)警停止;如無人工按鍵,報(bào)警在1.5min后停止。</p><p><b>  4)實(shí)時(shí)溫度顯示。</b></p><p><b>  2.4 本章小結(jié)</b></p><p>  本章主要對(duì)本系統(tǒng)的基本功能和擴(kuò)展功能進(jìn)行了說明,也對(duì)本系統(tǒng)的系統(tǒng)的顯示情況及操作作了詳細(xì)說明。</p><p>

30、<b>  第三章 硬件設(shè)計(jì)</b></p><p>  3.1 硬件芯片介紹</p><p>  3.1.1 單片機(jī)STC89C52</p><p> ?。ㄒ唬㏒TC89C52功能特點(diǎn)[8]</p><p>  STC89C52是一種帶8K字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器的低電壓,高性能COMOS8的微處理器,俗稱單片機(jī)

31、。該器件采用ATMEL搞密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。表3-1給出了其主要功能。這是一種低功耗、高性能CMOS 8位微控制器,具有8K(0000H~1FFFH)在線系統(tǒng)可編程Flash存儲(chǔ)器。片上Flash允許程序存儲(chǔ)器在線編程,也適于常規(guī)編程器。在單芯片上,擁有靈巧的8位CPU和在線系統(tǒng)可編程Flash,使得AT89C52為眾多嵌入式控制應(yīng)用系統(tǒng)提供靈活、高效的解決方案。</p&g

32、t;<p>  AT89C52具有以下標(biāo)準(zhǔn)功能:8K(0000H~1FFFH)Flash,256字節(jié)(00H~FFH)數(shù)據(jù)存儲(chǔ)器(RAM),64K(0000H~FFFFH)程序存儲(chǔ)器(ROM),32位I/O口線,看門狗定時(shí)器,2個(gè)數(shù)據(jù)指針,三個(gè)16位定時(shí)器/計(jì)數(shù)器,一個(gè)6向量2級(jí)中斷結(jié)構(gòu),全雙工串行口內(nèi)晶振及時(shí)鐘電路。</p><p>  其中,數(shù)據(jù)存儲(chǔ)器(RAM)用于存放各種運(yùn)算的中間結(jié)果,作緩存

33、和數(shù)據(jù)暫存,以及設(shè)置特征標(biāo)志等。AT89S52的片內(nèi)數(shù)據(jù)存儲(chǔ)器用位尋址方式,最大尋址范圍為256字節(jié)(00H~FFH)。按使用情況不同可分成低128字節(jié)(00H~7FH)和高128字節(jié)(80H~FFH)。其中低128字節(jié)為真正的RAM存儲(chǔ)器,高128字節(jié)為特殊功能寄存器(SFR)區(qū),如累加器ACC、程序狀態(tài)字PSW、數(shù)據(jù)指針DPTR、程序計(jì)數(shù)器PC等</p><p>  表3-1 STC89C52主要功能<

34、;/p><p> ?。ǘ㏒TC89C52各管腳介紹</p><p>  STC89C52各管腳如圖3-1所示。</p><p>  圖3-1 STC89C52管腳圖</p><p><b>  主電源引腳(2根)</b></p><p>  VCC(Pin40):電源輸入,接+5V電源</p

35、><p>  GND(Pin20):接地線</p><p>  (2)外接晶振引腳(2根)</p><p>  XTAL0(Pin18):片內(nèi)振蕩電路的輸入端</p><p>  XTAL1(Pin19):片內(nèi)振蕩電路的輸出端</p><p>  (3)控制引腳(4根)</p><p>  RST/

36、VPP(Pin9):復(fù)位引腳,引腳上出現(xiàn)2個(gè)機(jī)器周期的高電平將使單片機(jī)復(fù)位。</p><p>  ALE/PROG(Pin30):地址鎖存允許信號(hào)</p><p>  PSEN(Pin29):外部存儲(chǔ)器讀選通信號(hào)</p><p>  EA/VPP(Pin31):程序存儲(chǔ)器的內(nèi)外部選通,接低電平從外部程序存儲(chǔ)器讀指令,如果接高電平則從內(nèi)部程序存儲(chǔ)器讀指令。</p

37、><p>  (4)可編程輸入/輸出引腳(32根)</p><p>  STC89C52單片機(jī)有4組8位的可編程I/O口,分別位P0、P1、P2、P3口,每個(gè)口有8位(8根引腳),共32根。</p><p>  PO口(Pin39~Pin32):名稱為P0.0~P0.7。P0口是一個(gè)8位漏極開路的雙向I/O口。作為輸出口,每位能驅(qū)動(dòng)8個(gè)TTL邏輯電平(晶體管-晶體管邏輯

38、電平)。</p><p>  P1口(Pin1~Pin8):名稱為P1.0~P1.7。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í)

39、器/計(jì)數(shù)器2 的觸發(fā)輸入(P1.1/T2EX),具體如下所示。 在flash編程和校驗(yàn)時(shí),P1口接收低8位地址字節(jié)。</p><p><b>  P1引腳第二功能</b></p><p>  P1.0 :T2(定時(shí)器/計(jì)數(shù)器T2的外部計(jì)數(shù)輸入),時(shí)鐘輸出</p><p>  P1.1 :T2EX(定時(shí)器/計(jì)數(shù)器T2的捕捉/重載觸發(fā)信號(hào)和方向控制

40、)</p><p>  P1.5: MOSI(在線系統(tǒng)編程時(shí)用到)</p><p>  P1.6 :MISO(在線系統(tǒng)編程時(shí)用到)</p><p>  P1.7 :SCK(在線系統(tǒng)編程時(shí)用到)</p><p>  P2口(Pin21~Pin28):名稱為P2.0~P2.7。P2 口是一個(gè)具有內(nèi)部上拉電阻的8 位雙向I/O 口,P2 輸出緩沖器

41、能驅(qū)動(dòng)4 個(gè) TTL 邏輯電平。對(duì)P2 端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。在訪問外部程序存儲(chǔ)器或用16位地址讀取外部數(shù)據(jù)存儲(chǔ)器(例如執(zhí)行MOVX @DPTR)時(shí),P2 口送出高八位地址。在這種應(yīng)用中,P2 口使用很強(qiáng)的內(nèi)部上拉發(fā)送1。在使用 8位地址(如MOVX @RI)訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),P2口輸出P2鎖存器的內(nèi)容。在flash編

42、程和校驗(yàn)時(shí),P2口也接收高8位地址字節(jié)和一些控制信號(hào)。</p><p>  P3口(Pin10~Pin17):8位準(zhǔn)雙向I/O口線,名稱為P3.0~P3.7。P3 口是一個(gè)具有內(nèi)部上拉電阻的8 位雙向I/O 口,p2 輸出緩沖器能驅(qū)動(dòng)4 個(gè) TTL 邏輯電平。對(duì)P3 端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。 P3口亦

43、作為STC89C52特殊功能(第二功能)使用,如下表所示。在flash編程和校驗(yàn)時(shí),P3口也接收一些控制信號(hào)。</p><p><b>  端口引腳 第二功能</b></p><p>  P3.0 RXD(串行輸入口)</p><p>  P3.1 TXD(串行輸出口)</p><p>  P3.2 INTO(外中斷0)

44、</p><p>  P3.3 INT1(外中斷1)</p><p>  P3.4 TO(定時(shí)/計(jì)數(shù)器0)</p><p>  P3.5 T1(定時(shí)/計(jì)數(shù)器1)</p><p>  P3.6 WR(外部數(shù)據(jù)存儲(chǔ)器寫選通)</p><p>  P3.7 RD(外部數(shù)據(jù)存儲(chǔ)器讀選通)</p><p>

45、;  此外,P3口還接收一些用于FLASH閃存編程和程序校驗(yàn)的控制信號(hào)。</p><p>  RST——復(fù)位輸入。當(dāng)振蕩器工作時(shí),RST引腳出現(xiàn)兩個(gè)機(jī)器周期以上高電平將是單片機(jī)復(fù)位。</p><p>  ALE/PROG——當(dāng)訪問外部程序存儲(chǔ)器或數(shù)據(jù)存儲(chǔ)器時(shí),ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低8位字節(jié)。一般情況下,ALE仍以時(shí)鐘振蕩頻率的1/6輸出固定的脈沖信號(hào),因此它可對(duì)外輸

46、出時(shí)鐘或用于定時(shí)目的。要注意的是:每當(dāng)訪問外部數(shù)據(jù)存儲(chǔ)器時(shí)將跳過一個(gè)ALE脈沖。</p><p>  對(duì)FLASH存儲(chǔ)器編程期間,該引腳還用于輸入編程脈沖(PROG)。</p><p>  如有必要,可通過對(duì)特殊功能寄存器(SFR)區(qū)中的8EH單元的D0位置位,可禁止ALE操作。該位置位后,只有一條MOVX和MOVC指令才能將ALE激活。此外,該引腳會(huì)被微弱拉高,單片機(jī)執(zhí)行外部程序時(shí),應(yīng)設(shè)

47、置ALE禁止位無效。</p><p>  PSEN——程序儲(chǔ)存允許(PSEN)輸出是外部程序存儲(chǔ)器的讀選通信號(hào),當(dāng)STC89C52由外部程序存儲(chǔ)器取指令(或數(shù)據(jù))時(shí),每個(gè)機(jī)器周期兩次PSEN有效,即輸出兩個(gè)脈沖,在此期間,當(dāng)訪問外部數(shù)據(jù)存儲(chǔ)器,將跳過兩次PSEN信號(hào)。</p><p>  EA/VPP——外部訪問允許,欲使CPU僅訪問外部程序存儲(chǔ)器(地址為0000H-FFFFH),EA端必

48、須保持低電平(接地)。需注意的是:如果加密位LB1被編程,復(fù)位時(shí)內(nèi)部會(huì)鎖存EA端狀態(tài)。</p><p>  如EA端為高電平(接Vcc端),CPU則執(zhí)行內(nèi)部程序存儲(chǔ)器的指令。</p><p>  FLASH存儲(chǔ)器編程時(shí),該引腳加上+12V的編程允許電源Vpp,當(dāng)然這必須是該器件是使用12V編程電壓Vpp。</p><p>  3.1.2 實(shí)時(shí)時(shí)鐘芯片DS12887

49、</p><p>  (一)DS12887功能特點(diǎn)[9] [10]</p><p>  DS12887是美國(guó)達(dá)拉斯半導(dǎo)體公司推出的時(shí)鐘芯片,此芯片是基于CMOS技術(shù)的,把時(shí)鐘芯片所需的晶振和外部鋰電池相關(guān)電路集于芯片內(nèi)部,這無疑大大簡(jiǎn)化了外圍電路,同時(shí)它與目前IBM AT計(jì)算機(jī)常用的時(shí)鐘芯片MC146818B和DS1287芯片引腳兼容,可直接進(jìn)行對(duì)等交換。其主要功能如下:(1)內(nèi)含一個(gè)鋰

50、電池,斷電可以運(yùn)行十年,并且不會(huì)丟失數(shù)據(jù),時(shí)間功能正常運(yùn)行。(2)可計(jì)時(shí)至2100年前的秒、分、時(shí)、星期、日、月、年等日歷信息并帶有閏年補(bǔ)償功能。(3)可通過編程選擇BCD碼或者二進(jìn)制數(shù)表示日歷和定時(shí)鬧鐘。(4)可通過編程選擇12小時(shí)或24小時(shí)制,12小時(shí)時(shí)鐘模式帶有PM和AM提示,此外還有有夏令時(shí)功能。(5)可選擇MOTOROLA和INTEL總線時(shí)序。(6)內(nèi)部共有128個(gè)RAM單元,這在常用的實(shí)時(shí)時(shí)鐘中屬于較大的。其中14

51、個(gè)字節(jié)作為時(shí)鐘和控制寄存器,114字節(jié)為通用RAM,所有ARAM單元數(shù)據(jù)都具有掉電保護(hù)功能。(7)可編程并選擇的方波信號(hào)輸出(8)中斷信號(hào)輸出(IRQ)和總線兼容,定時(shí)鬧鐘中斷、周期性中斷、時(shí)鐘更新周期結(jié)束中斷可分別由軟件屏蔽,也可分別進(jìn)行測(cè)試。</p><p>  (9)三種可供選擇的中斷方式 </p><p><b>  -時(shí)間性中斷 </b></p&g

52、t;<p><b>  -周期性中斷</b></p><p><b>  -時(shí)鐘更新結(jié)束中斷</b></p><p>  (二)DS12887的原理及管腳說明</p><p>  圖3-2顯示了DS12887管腳排列圖。下面說明管腳功能</p><p>  圖3-2 DS12887管

53、腳圖</p><p><b>  GND:電源地</b></p><p>  VCC:直流電源+5V電壓。若外部提供的VCC電源小于4.25V,讀寫會(huì)即刻被禁止,但芯片內(nèi)部的計(jì)時(shí)仍在繼續(xù),重新通上+5V電源后,通過編程即可顯示當(dāng)前時(shí)間;若外部提供的VCC電源小于3V,電源方式切換為內(nèi)部鋰電池提供,同樣可以保持芯片內(nèi)部計(jì)時(shí)仍然繼續(xù)。MOT(模式選擇):接VCC(+5V

54、)時(shí),芯片在MOTOROLA時(shí)序下工作,接GND(地)時(shí),芯片在INTEL時(shí)序下工作。SQW(方波信號(hào)):通過15個(gè)分頻器抽頭中的13個(gè)提供方波輸出。AD0~AD7(雙向地址/數(shù)據(jù)復(fù)用線):數(shù)據(jù)和控制指令都通過此8個(gè)引腳來于單片機(jī)等控制器傳輸。</p><p>  AS(地址選通輸入):地址鎖存引腳。  DS(數(shù)據(jù)選通或讀輸入):該引腳有兩種操作模式,視該芯片是出于MOTOROLA模式或者IN

55、TEL模式,當(dāng)使用MOTOROLA時(shí)序時(shí),DS是一正脈沖,出現(xiàn)在總線周期的后段,稱為數(shù)據(jù)選通;若為INTEL時(shí)序,DS稱作(RD),RD與典型存貯器的允許信號(hào)(OE)的定義相同。R/W(讀/寫輸入):R/W管腳同樣也有兩種操作模式。此引腳的兩種模式與DS相似。CS(片選輸入):在訪問DS12887的總線周期內(nèi),片選信號(hào)必須保持為低。IRQ(中斷申請(qǐng)輸入):低電平有效,可作微處理的中斷輸入。沒有中斷條件滿足時(shí),IRQ處于高阻態(tài)。IR

56、Q線是漏極開路輸入,要求外接上拉電阻。RESET(復(fù)位輸出):若要保證DS12887有效復(fù)位,必須讓該腳保持低電平時(shí)間大于200ms。</p><p>  (三)DS12887的內(nèi)部功能(1) 地址分配圖 </p><p>  DS12887的存儲(chǔ)器分配圖如圖3-3所示,其中00H-09H為時(shí)鐘信息和鬧鐘信息寄存器,0AH-0DH為

57、四個(gè)控制寄存器。</p><p>  DS12887的存分配圖如圖3-3所示</p><p>  (2) 控制寄存器    ●寄存器A </p><p>  表3-4 DS12887寄存器A</p><p>  UIP:更新位。若UIP為1,實(shí)時(shí)時(shí)鐘的更新轉(zhuǎn)換發(fā)生的很快,而當(dāng)UIP為0,更新轉(zhuǎn)換至少在244

58、µs內(nèi)不會(huì)發(fā)生。    DV0,DV1,DV2:用于晶振和復(fù)位分頻鏈的開啟。</p><p>  表3-5 DS12887周期中斷率和方波頻率</p><p>  RS3,RS2,RS1,RS0:頻率選擇位,通過這四個(gè)位用戶可以:    a 用PIE位允許中斷;    b 用SQW

59、E位允許SQAW輸出;    c 二者同時(shí)允許并用相同的頻率;    d 二者都不允許</p><p><b>  ●寄存器B</b></p><p>  表3-6 DS12887寄存器B</p><p>  SET:此位為0,時(shí)間更新正常進(jìn)行,每秒計(jì)數(shù)走時(shí)一次,當(dāng)此位為1,時(shí)

60、間更新被禁止,程序可對(duì)芯片進(jìn)行初始化的操作和編程。    PIE:周期中斷允許位,PIE為1,則允許以選定的頻率拉低IRQ管腳,PIE為0,則禁止中斷。    AIE:定時(shí)鬧鐘中斷允許位,AIE為1,允許中斷,否則禁止中斷。</p><p>  UIE:更新結(jié)束中斷允許位,AIE為1,允許中斷,否則禁止中斷。   

61、 SQWE:方波允許位,置1選定頻率方波從SQW腳輸出;為0-時(shí),SQW腳為低。    DM:數(shù)據(jù)模式位,DM為1表明為十進(jìn)制數(shù)據(jù),而0表明是BCD碼的數(shù)據(jù)。    24/12:小時(shí)格式位,1表明24小時(shí)制,而0表明12小時(shí)制。    DSE:夏令時(shí)允許位,當(dāng)DSE置1時(shí)允許兩個(gè)特殊的更新,在四月份的第一星期日,時(shí)間從1:59:59A

62、M時(shí)改變?yōu)?:00:00AM;在十月的最后一個(gè)星期日的1:59:59AM時(shí)改變?yōu)?:00:00AM。當(dāng)DSE位為0,這種特殊修正不發(fā)生?!窦拇嫫鰿 </p><p>  表3-7 DS12887寄存器C</p><p>  IRQF:中斷申請(qǐng)標(biāo)志位。當(dāng)下列表達(dá)式中一個(gè)或多個(gè)為真時(shí),置1。    PF=PIE=1;AF=AIE=1;UF=UIE=1;&

63、#160;   即:IRQF=PF·PIE+AF·AIE+UF·UIE    只要IRQF為1,IRQ管腳輸出低 ,程序讀寄存器C以后或RESET管腳為低后,所有標(biāo)志位清零。   AF:定鬧中斷標(biāo)志位,只讀,AF為1表明現(xiàn)在時(shí)間與定鬧時(shí)間匹配。    VF:更新周期結(jié)束標(biāo)志位。VF為1表明更新周

64、期結(jié)束。    BIT0~BIT3:未用狀態(tài)位,讀出總為0,不能寫入?!窦拇嫫鱀 </p><p>  表3-8 DS12887寄存器D</p><p>  VRT:內(nèi)部鋰電池狀態(tài)位,平時(shí)應(yīng)總讀出1,如出現(xiàn)0,表明內(nèi)部鋰電池耗盡。    BIT0~BIT6:未用狀態(tài)位,讀出總為0,不能寫入。</p>&l

65、t;p>  3.1.3 溫度傳感器DS18B20</p><p>  (一)DS18B20功能特點(diǎn)</p><p>  DS18B20具有超小體積和超低硬件開銷,精度高,抗干擾能力強(qiáng)等優(yōu)點(diǎn)。具有全</p><p>  數(shù)字溫度轉(zhuǎn)換及輸出,單總線數(shù)據(jù)通信,最高12 位分辨率,檢測(cè)溫度范圍大的特征,是開發(fā)溫度相關(guān)產(chǎn)品的很好的選擇。其主要功能如下:</p>

66、;<p>  (1)獨(dú)特的單線接口僅需一個(gè)端口引腳進(jìn)行通訊</p><p>  (2)簡(jiǎn)單的多點(diǎn)分布應(yīng)用</p><p><b>  (3)無需外部器件</b></p><p>  (4)可通過數(shù)據(jù)線供電</p><p><b>  (5)零待機(jī)功耗</b></p>&l

67、t;p>  (6)測(cè)溫范圍-55~+125℃,以0.5℃遞增。華氏器件-67~+2570F,以0.90F 遞增</p><p>  (7)溫度以9 位數(shù)字量讀出</p><p>  (8)溫度數(shù)字量轉(zhuǎn)換時(shí)間200ms(典型值)</p><p>  (9)用戶可定義的非易失性溫度報(bào)警設(shè)置</p><p>  (10)報(bào)警搜索命令識(shí)別并標(biāo)志

68、超過程序限定溫度(溫度報(bào)警條件)的器件</p><p>  (11)應(yīng)用包括溫度控制、工業(yè)系統(tǒng)、消費(fèi)品、溫度計(jì)或任何熱感測(cè)系統(tǒng)</p><p>  二)DS18B20內(nèi)部工作原理</p><p>  DS18B20內(nèi)部結(jié)構(gòu)主要由四部分組成:64位光刻ROM 、溫度傳感器、非揮發(fā)的溫度報(bào)警觸發(fā)器TH和TL、配置寄存器。如圖3-9所示。</p><p

69、>  圖3-9 DS18B20原理圖</p><p>  DS18B20引腳定義: </p><p>  DQ為數(shù)字信號(hào)輸入/輸出端</p><p><b>  GND為電源地</b></p><p>  VDD為外接供電電源輸入端(在寄生電源接線方式時(shí)接地)</p><p> 

70、 圖3-10 DS18B20引腳圖</p><p>  圖3-10給出了DS18B20測(cè)溫原理:DS1820用一個(gè)高溫度系數(shù)的振蕩器確定一個(gè)門周期,內(nèi)部計(jì)數(shù)器在這個(gè)門周期內(nèi)對(duì)一個(gè)低溫度系數(shù)的振蕩器的脈沖進(jìn)行計(jì)數(shù)來得到溫度值。計(jì)數(shù)器被預(yù)置到對(duì)應(yīng)于-55℃的一個(gè)值。如果計(jì)數(shù)器在門周期結(jié)束前到達(dá)0,則溫度寄存器(同樣被預(yù)置到-55℃)的值增加,表明所測(cè)溫度大于-55℃。</p><p>  同

71、時(shí),計(jì)數(shù)器被復(fù)位到一個(gè)值,這個(gè)值由斜坡式累加器電路確定,斜坡式累加器電路用來補(bǔ)償感溫振蕩器的拋物線特性。然后計(jì)數(shù)器又開始計(jì)數(shù)直到0,如果門周期仍未結(jié)束,將重復(fù)這一過程。</p><p>  斜坡式累加器用來補(bǔ)償感溫振蕩器的非線性,以期在測(cè)溫時(shí)獲得比較高的分辨力。這是通過改變計(jì)數(shù)器對(duì)溫度每增加一度所需計(jì)數(shù)的的值來實(shí)現(xiàn)的。因此,要想獲得所需的分辨力,必須同時(shí)知道在給定溫度下計(jì)數(shù)器的值和每一度的計(jì)數(shù)值。</p&g

72、t;<p>  DS1820 內(nèi)部對(duì)此計(jì)算的結(jié)果可提供0.5℃的分辨力。溫度以16bit 帶符號(hào)位擴(kuò)展的二進(jìn)制補(bǔ)碼形式讀出。數(shù)據(jù)通過單線接口以串行方式傳輸。</p><p>  DS1820 測(cè)溫范圍-55℃~+125℃,以0.5℃遞增。如用于華氏溫度,必須要用一個(gè)轉(zhuǎn)換因子查找表。</p><p>  圖3-11 DS18B20測(cè)溫原理圖</p><p&

73、gt;  DS18B20與單片機(jī)的硬件連接有兩種方法:一是VDD接外部電源,GND接地I/O與單片機(jī)的I/O線相接;二是用寄生電源供電,此時(shí)VDD和GND接地,I/O接單片機(jī)I/O。無論是那種供電方式,I/O線都要接4.7kΩ左右的上拉電阻。圖3-7中,DS18B20采用寄生電源方式,其VDD和GND均接地,DS18B20采用外接電源方式,其VDD端用3-5.5v電源供電。本設(shè)計(jì)采用接線,即外接電源工作方式[11]。 </p>

74、;<p>  3.1.4 液晶顯示屏AMPIRE128X64 </p><p> ?。ㄒ唬〢MPIRE128X64特點(diǎn)說明[12] [13]</p><p>  液晶顯示模塊由于具有低功耗、壽命長(zhǎng)、體積小、顯示內(nèi)容豐富、價(jià)格低、接口控制方便等優(yōu)點(diǎn),因此在各類電子產(chǎn)品中被極廣泛地推廣和應(yīng)用。字符型液晶顯示模塊是一類專門用于顯示字母、數(shù)字、符號(hào)等點(diǎn)陣式液晶顯示模塊。本系統(tǒng)設(shè)計(jì)采用

75、字符型液屏顯示模塊AMPIRE128X64 作為顯示器件,這樣不僅簡(jiǎn)化了系統(tǒng)的硬件設(shè)計(jì),而且極大地提高了系統(tǒng)的可靠性。字符型液晶顯示模塊AMPIRE128X64是單片機(jī)應(yīng)用設(shè)計(jì)中最常用的信息顯示器件。AMPIRE128X64 可以顯示兩行,每行16 個(gè)字符,采用+5V 電源供電,外圍電路配置簡(jiǎn)單,價(jià)格便宜,具有很高的性價(jià)比[14]。</p><p>  AMPIRE128X64功能介紹</p>&l

76、t;p>  AMPIRE128X64各引腳功能如表3-12所示。</p><p>  是直接看時(shí)序圖,另外一種方法是直接記憶和總結(jié)讀寫時(shí)電平高低和變化。很顯然第二種更簡(jiǎn)單、直接,下面就列出典型讀寫的時(shí)序要求,以方便編寫程序。</p><p>  讀狀態(tài)--輸入:RS=L,R/W=H,E=H 輸出:D0-D7=狀態(tài)字</p><p>  寫指令--輸入:RS

77、=L,R/W=L,D0-D7=指令碼,E=高脈沖 輸出:無</p><p>  讀數(shù)據(jù)--輸入:RS=H,R/W=H,E=H 輸出:D0-D7=數(shù)據(jù)</p><p>  寫數(shù)據(jù)--輸入:RS=H,R/W=L,D0-D7=數(shù)據(jù),E=高脈沖 輸出:無</p><p> ?。?)狀態(tài)字說明: </p>

78、<p>  表3-13 狀態(tài)字表</p><p>  對(duì)控制器每次進(jìn)行讀寫操作之前,都必須進(jìn)行讀寫檢測(cè),確保STA7為0</p><p><b>  指令說明:</b></p><p>  表3-14 顯示模式設(shè)置表</p><p>  表3-15顯示開/關(guān)及背光燈設(shè)置表</p><p&

79、gt;<b>  (4)數(shù)據(jù)控制</b></p><p>  控制器內(nèi)部有一個(gè)數(shù)據(jù)地址指針,用戶可通過它們來訪問內(nèi)部的全部80字節(jié)RAM</p><p><b>  數(shù)據(jù)指針設(shè)置</b></p><p>  表3-16 數(shù)據(jù)指針設(shè)置表</p><p> ?。ㄈ〢MPIRE128X64初始化過程&l

80、t;/p><p><b>  (1)延時(shí)15ms</b></p><p>  (2)寫指令38H(不檢測(cè)忙信號(hào))</p><p><b>  (3)延時(shí)5ms</b></p><p>  (4) 寫指令38H(不檢測(cè)忙信號(hào))</p><p><b>  (5)寫指令5m

81、s</b></p><p>  (6) 寫指令38H(不檢測(cè)忙信號(hào))</p><p>  (7)之后每次寫指令、讀/寫數(shù)據(jù)操作之前均需檢測(cè)忙信號(hào)</p><p>  (8)寫指令38H:顯示模式設(shè)置</p><p>  (9)寫指令08H:顯示關(guān)閉</p><p>  (10) 寫指令01H:顯示清屏幕&l

82、t;/p><p>  (11) 寫指令06H:顯示光標(biāo)移動(dòng)設(shè)置</p><p>  (12) 寫指令0CH:顯示及光標(biāo)設(shè)置</p><p>  3.2 系統(tǒng)硬件架構(gòu)</p><p>  本設(shè)計(jì)以模塊化的方式來進(jìn)行硬件電路的設(shè)計(jì)和調(diào)試。單片機(jī)的模塊化就是把系統(tǒng)分成各個(gè)具有獨(dú)立功能又可以互相銜接的簡(jiǎn)單模塊,將復(fù)雜難懂的指令、語法、編程及其電路分解,使

83、設(shè)計(jì)簡(jiǎn)單化[15]。本設(shè)計(jì)的電路模塊可以分為單片機(jī)最小系統(tǒng)模塊,時(shí)鐘模塊,溫度傳感器模塊,液晶顯示模塊,按鍵模塊,蜂鳴器報(bào)警模塊。</p><p>  3.2.1 單片機(jī)最小系統(tǒng)</p><p>  本設(shè)計(jì)的單片機(jī)最小系統(tǒng)主要包括STC89C52芯片,晶振電路和復(fù)位電路。</p><p><b> ?。ㄒ唬┚д耠娐?lt;/b></p>

84、<p>  最小系統(tǒng)晶振電路如圖3-9所示。</p><p>  圖3-17晶振電路圖</p><p>  STC89C52內(nèi)部有一個(gè)用于構(gòu)成振蕩器的高增益反相放大器,引腳XTAL0和XTAL1分別是此放大器的輸入端和輸出端。時(shí)鐘可以由內(nèi)部方式產(chǎn)生或外部方式產(chǎn)生。內(nèi)部方式的時(shí)鐘電路如圖3-9所示,在XTAL0和XTAL1引腳上外接定時(shí)元件,內(nèi)部振蕩器就產(chǎn)生自激振蕩。定時(shí)元件通常

85、采用石英晶體和電容組成的并聯(lián)諧振回路。晶體振蕩頻率可以在</p><p>  1.2~12MHz之間選擇,電容值在5~30pF之間選擇,電容值的大小可對(duì)頻率起微調(diào)的作用。</p><p>  單片機(jī)晶振兩個(gè)電容的作用:這兩個(gè)電容叫晶振的負(fù)載電容,分別接在晶振的兩個(gè)腳上和對(duì)地的電容,一般在幾十pf。它會(huì)影響到晶振的諧振頻率和輸出幅度。晶振的負(fù)載電容=[(Cd*Cg)/(Cd+Cg)]+Cic

86、+△C式中Cd,Cg為分別接在晶振的兩個(gè)腳上和對(duì)地的電容,Cic(集成電路內(nèi)部電容)+△C(PCB上電容)經(jīng)驗(yàn)值為3至5pf。</p><p><b>  復(fù)位電路</b></p><p>  最小系統(tǒng)復(fù)位電路如圖3-10所示。</p><p>  圖3-18 復(fù)位電路</p><p>  無論使用哪種類型的單片機(jī),總要

87、涉及到單片機(jī)復(fù)位電路的設(shè)計(jì).而單片機(jī)復(fù)位電路設(shè)計(jì)的好壞,直接影響到整個(gè)系統(tǒng)工作的可靠性.許多用戶在設(shè)計(jì)完單片機(jī)系統(tǒng),并在實(shí)驗(yàn)室調(diào)試成功后,在現(xiàn)場(chǎng)卻出現(xiàn)了“死機(jī)”、“程序走飛”等現(xiàn)象,這主要是單片機(jī)的復(fù)位電路設(shè)計(jì)不可靠引起的[16]。復(fù)位電路的基本功能是:系統(tǒng)上電時(shí)提供復(fù)位信號(hào),直至系統(tǒng)電源穩(wěn)定后,撤銷復(fù)位信號(hào)。為可靠起見,電源穩(wěn)定后還要經(jīng)過一定的延時(shí)才撤銷復(fù)位信號(hào),以防電源開關(guān)或電源插頭分-合過程中引起的抖動(dòng)而影響復(fù)位。單片機(jī)復(fù)位電路參

88、數(shù)的選定須在振蕩穩(wěn)定后保證復(fù)位高電平持續(xù)時(shí)間大于2個(gè)機(jī)器周期。單片機(jī)復(fù)位電路主要有四種類型:微分型復(fù)位電路;積分型復(fù)位電路;比較器型復(fù)位電路;看門狗型復(fù)位電路[17]。</p><p> ?。ㄈ┳钚∠到y(tǒng)整體圖最小系統(tǒng)整體電路如圖3-19所示。</p><p>  圖3-19 最小系統(tǒng)電路圖</p><p><b>  3.2.2時(shí)鐘模塊</b>

89、;</p><p>  本設(shè)計(jì)中的DS12887芯片AD0-AD7引腳與STC89C52芯片的P2口相連接。MOT引腳接地,為INTEL總線時(shí)序方式。因此R/W和DS引腳也為對(duì)應(yīng)INTEL的操作模式。</p><p>  時(shí)鐘模塊電路如圖3-20所示。</p><p>  圖3-20時(shí)鐘模塊圖</p><p>  3.2.3 溫度傳感器模塊&

90、lt;/p><p>  溫度傳感器DS18B20的接法很簡(jiǎn)單,它的DQ引腳與STC89C52芯片的P1.7引腳相連接。這里只用到一個(gè)溫度傳感器,若要使用多個(gè)則只需將所有的DS18B20的I/O口接在一起即可,在具體操作時(shí),通過讀取每個(gè)芯片的內(nèi)部序列號(hào)來識(shí)別[18]。</p><p>  溫度傳感器模塊電路如圖3-21所示。</p><p>  圖3-21 溫度傳感器&l

91、t;/p><p>  3.2.4 液晶顯示模塊</p><p>  液晶AMPIRE128X64的D0-D7引腳與STC89C52芯片的P2口相接,而控制引腳RS,R/W,CS則分別接P1.6,P1.5,P1.4。引腳3接一個(gè)1K的電位器來調(diào)整對(duì)比度,從而達(dá)到合適的背光燈對(duì)比度。液晶顯示模塊電路如圖3-22所示。</p><p>  圖3-22 液晶顯示模塊</p

92、><p>  3.2.5 按鍵模塊</p><p>  74LS21芯片為兩組 4 輸入與門(正邏輯)。本設(shè)計(jì)中的四個(gè)按鍵分別接到74LS21芯片的1A,1B,1C,1D,即4輸入與門的4個(gè)輸入。而74LS21的輸出1Y則接到STC89C52芯片的P3.2(INT0)引腳,由于該引腳為低電平有效,當(dāng)警報(bào)發(fā)生時(shí)按下四個(gè)按鍵中任意一個(gè)都會(huì)使輸出1Y變?yōu)榈碗娖?,則芯片發(fā)生中斷,報(bào)警停止。同時(shí),四個(gè)按

93、鍵key1-key4也接到STC89C52芯片的P1.0-P1.3起到調(diào)節(jié)時(shí)間日期等功能。四個(gè)按鍵中S1為切換鍵,S2為設(shè)定鍵,S3為上調(diào)鍵,S4下調(diào)鍵。</p><p>  按鍵模塊電路如圖3-23所示。</p><p>  圖3-23 按鍵電路</p><p>  3.2.6 蜂鳴器報(bào)警模塊</p><p>  蜂鳴器是一種一體化結(jié)構(gòu)的電

94、子訊響器,采用直流電壓供電,廣泛應(yīng)用于計(jì)算機(jī)、打印機(jī)、復(fù)印機(jī)、報(bào)警器、電子玩具、汽車電子設(shè)備、電話機(jī)、定時(shí)器等電子產(chǎn)品中作發(fā)聲器件。 ;蜂鳴器主要分為壓電式蜂鳴器和電磁式蜂鳴器兩種類型。蜂鳴器在電路中用字母“H”或“HA”(舊標(biāo)準(zhǔn)用“FM”、“LB”、“JD”等)表示。</p><p>  蜂鳴器報(bào)警在單片機(jī)應(yīng)用的設(shè)計(jì)上,很多方案都會(huì)用到蜂鳴器,大部分都是使用蜂鳴器來做提示或報(bào)警,比如按鍵按下、開始工作、工作結(jié)束

95、或是故障等等。</p><p>  PORTC.3/T0 作為I/O 口通過三極管Q2 來驅(qū)動(dòng)蜂鳴器LS1,而PORTC.2/PWM0 則作為PWM 輸出口通過三極管Q1 來驅(qū)動(dòng)蜂鳴器LS2。另外在PORTA.3 和PORTA.2 分別接了兩個(gè)按鍵,一個(gè)是PWM 按鍵,是用來控制PWM 輸出口驅(qū)動(dòng)蜂鳴器使用的;另一個(gè)是PORT 按鍵,是用來控制I/O 口驅(qū)動(dòng)蜂鳴器使用的。連接按鍵的I/O 口開內(nèi)部上拉電阻。<

96、;/p><p><b>  軟件設(shè)計(jì)方法</b></p><p>  先分析一下蜂鳴器。所使用的蜂鳴器的工作頻率是2000Hz,也就是說蜂鳴器的驅(qū)動(dòng)信號(hào)波形周期是500μs,由于是1/2duty 的信號(hào),所以一個(gè)周期內(nèi)的高電平和低電平的時(shí)間寬度都為250μs。軟件設(shè)計(jì)上,我們將根據(jù)兩種驅(qū)動(dòng)方式來進(jìn)行說明。</p><p>  a) PWM 輸出口直

97、接驅(qū)動(dòng)蜂鳴器方式</p><p>  由于PWM 只控制固定頻率的蜂鳴器,所以可以在程序的系統(tǒng)初始化時(shí)就對(duì)PWM 的輸出波形進(jìn)行設(shè)置。</p><p>  首先根據(jù)SH69P43 的PWM 輸出的周期寬度是10 位數(shù)據(jù)來選擇PWM 時(shí)鐘。系統(tǒng)使用4MHz 的晶振作為主振蕩器,一個(gè)tosc 的時(shí)間就是0.25μs,若是將PWM 的時(shí)鐘設(shè)置為tosc 的話, 則蜂鳴器要求的波形周期500μs

98、的計(jì)數(shù)值為500μs/0.25μs=(2000)10=(7D0)16,7D0H 為11 位的數(shù)據(jù),而SH69P43 的PWM</p><p>  輸出周期寬度只是10 位數(shù)據(jù),所以選擇PWM 的時(shí)鐘為tosc 是不能實(shí)現(xiàn)蜂鳴器所要的驅(qū)動(dòng)波形的。</p><p>  這里我們將PWM 的時(shí)鐘設(shè)置為4tosc,這樣一個(gè)PWM 的時(shí)鐘周期就是1μs 了,由此可以算出500μs 對(duì)應(yīng)的計(jì)數(shù)值為50

99、0μs/1μs=(500)10=(1F4)16,即分別在周期寄存器的高2 位、中4 位和低4 位三個(gè)寄存器中填入1、F 和4,就完成了對(duì)輸出周期的設(shè)置。再來設(shè)置占空比寄存器,在PWM 輸出中占空比的實(shí)現(xiàn)是</p><p>  通過設(shè)定一個(gè)周期內(nèi)電平的寬度來實(shí)現(xiàn)的。當(dāng)輸出模式選擇為普通模式時(shí),占空比寄存器是用來設(shè)置高電平的寬度。250μs 的寬度計(jì)數(shù)值為250μs/1μs=(250)10=(0FA)16。只需要在占

100、空比寄存器的高2 位、中4 位和低4 位中分別填入0、F 和A 就可以完成對(duì)占空比的設(shè)置了,設(shè)置占空比為1/2duty。</p><p>  以后只需要打開PWM 輸出,PWM 輸出口自然就能輸出頻率為2000Hz、占空比為1/2duty 的方波。</p><p>  b) I/O 口定時(shí)翻轉(zhuǎn)電平驅(qū)動(dòng)蜂鳴器方式</p><p>  使用I/O 口定時(shí)翻轉(zhuǎn)電平驅(qū)動(dòng)蜂鳴

101、器方式的設(shè)置比較簡(jiǎn)單,只需要對(duì)波形分析一下。由于驅(qū)動(dòng)的信號(hào)剛好為周期500μs,占空比為1/2duty 的方波,只需要每250μs 進(jìn)行一次電平翻轉(zhuǎn),就可以得到驅(qū)動(dòng)蜂鳴器的方波信號(hào)。在程序上,可以使用TIMER0 來定時(shí),將TIMER0 的預(yù)分頻設(shè)置為/1,選擇TIMER0 的始終為系統(tǒng)時(shí)鐘(主振蕩器時(shí)鐘/4),在TIMER0 的載入/計(jì)數(shù)寄存器的高4 位和低4 位分別寫入00H 和06H,就能將TIMER0 的中斷設(shè)置為250μs。當(dāng)

102、需要I/O 口驅(qū)動(dòng)的蜂鳴器鳴叫時(shí),只需要在進(jìn)入TIMER0 中斷的時(shí)候?qū)υ揑/O 口的電平進(jìn)行翻轉(zhuǎn)一次,直到蜂鳴器不需要鳴叫的時(shí)候,將I/O 口的電平設(shè)置為低電平即可。不鳴叫時(shí)將I/O 口的輸出電平設(shè)置為低電平是為了防止漏電。</p><p>  模塊的作用:當(dāng)定時(shí)鬧鐘時(shí)間到時(shí),蜂鳴器發(fā)出預(yù)設(shè)的聲音,而發(fā)光二極管則會(huì)隨著音樂閃爍。本模塊采用PNP三極管為蜂鳴器放大電流,基極通過4.7k電阻與單片機(jī)STC89C52

103、的閑置引腳P3.5相連接,集電極直接接地,發(fā)射極接發(fā)光二極管和蜂鳴器。報(bào)警模塊電路如圖3-24所示。</p><p>  圖3-24 報(bào)警模塊</p><p><b>  3.3 本章小結(jié)</b></p><p>  本章主要對(duì)芯片作了介紹,對(duì)其內(nèi)存單元作了詳細(xì)說明,并對(duì)系統(tǒng)硬件的結(jié)構(gòu)框圖和各功能電路作了說明,以及這些電路在本設(shè)計(jì)中的用途。&l

104、t;/p><p><b>  第四章 軟件設(shè)計(jì)</b></p><p>  4.1 軟件設(shè)計(jì)總體說明</p><p>  本系統(tǒng)的程序采用C語言編寫,為了便于修改和調(diào)試,系統(tǒng)軟件采用模塊化設(shè)計(jì),程序的編寫編譯在WAVE6000軟件中完成。</p><p>  秒計(jì)數(shù)器的計(jì)數(shù)時(shí)鐘信號(hào)為1Hz的標(biāo)準(zhǔn)信號(hào),可以由CPLD板上提供的

105、20MHZ的信號(hào)通過分頻得到。秒計(jì)數(shù)器的進(jìn)位輸出信號(hào)作為分鐘計(jì)數(shù)器的計(jì)數(shù)信號(hào),分鐘計(jì)數(shù)器的進(jìn)位輸出信號(hào)又作為小時(shí)計(jì)數(shù)器的計(jì)數(shù)信號(hào).設(shè)計(jì)一個(gè)同時(shí)顯示時(shí)、分、秒6個(gè)數(shù)字的數(shù)字鐘,則需要6個(gè)七段顯示器。若同時(shí)點(diǎn)亮這6個(gè)七段顯示器,則電路中會(huì)產(chǎn)生一個(gè)比較大的電流,很容易造成電路燒壞,我們通過掃描電路來解決這一問題,通過產(chǎn)生一個(gè)掃描信號(hào)LT(0)一LT(5)來控制6個(gè)七段顯示器,依次點(diǎn)亮6個(gè)七段顯示器,也就是每次只點(diǎn)亮一個(gè)七段顯示器。只要掃描信號(hào)

106、的頻率超過人的眼睛視覺暫留頻率24Hz以上,就可以達(dá)到盡管每次點(diǎn)亮單個(gè)七段顯示器,卻能具有6個(gè)同時(shí)顯示的視覺效果,而目顯示也不致閃爍抖動(dòng)。其中6位掃描信號(hào)一方面控制七段顯示器依次點(diǎn)亮,一方面控制6選1選擇器輸出相應(yīng)顯示數(shù)字。控制電路用來將控制時(shí)鐘的一些功能加入到整個(gè)正常計(jì)數(shù)的顯示電路中,通過最終的顯示來驗(yàn)證控制電路的正確性。圖4.1為整體系統(tǒng)設(shè)計(jì)標(biāo)圖</p><p>  首先對(duì)STC89C52、DS12887、A

107、MPIRE128X64、DS18B20進(jìn)行初始化,日歷和溫度信息通過AMPIRE128X64顯示出來,當(dāng)當(dāng)前時(shí)間與設(shè)定的鬧鐘時(shí)間相同后,AMPIRE128X64上顯示的時(shí)間停止,但,實(shí)際上芯片內(nèi)部的時(shí)間仍然在走。時(shí)鐘芯片向單片機(jī)發(fā)出中斷請(qǐng)求,單片機(jī)通過報(bào)警模塊進(jìn)行警報(bào),此時(shí),若按下四個(gè)按鍵中的任意一個(gè),報(bào)警停止,AMPIRE128X64顯示的時(shí)間繼續(xù)精確顯示。[20]</p><p>  系統(tǒng)中有四個(gè)按鍵,即:設(shè)

108、置鍵S1,確定鍵S2、上調(diào)鍵S3、下調(diào)鍵S4。</p><p> ?。?)進(jìn)入系統(tǒng)看到有3個(gè)選擇項(xiàng),分布是貪吃蛇、俄羅斯方塊、萬年歷等內(nèi)容。</p><p> ?。?)按下退出鍵會(huì)將當(dāng)前的時(shí)間恢復(fù)到程序中設(shè)定的默認(rèn)時(shí)間。</p><p>  (3)同時(shí)按下S3鍵和S4鍵可對(duì)鬧鐘進(jìn)行開啟和關(guān)閉的操作。</p><p>  4.2 主程序軟件實(shí)現(xiàn)

109、</p><p>  4.2.1主程序流程圖</p><p>  圖4-1 主程序流程圖</p><p>  4.2.2 定時(shí)器初值計(jì)算</p><p>  因定時(shí)器工作于方式1,需要50ms的中斷,所以計(jì)數(shù)初值:</p><p>  χ=216 - t×fosc/12=65536 - 50×10-

110、3×11.0592×106/12=19456</p><p>  表示成十六進(jìn)制為χ=4C00H,故(TH0)=4CH,(TL0)=00H。</p><p>  4.4.2 程序初始化</p><p>  程序初始化時(shí),清相應(yīng)內(nèi)存單元(20H~4FH共48個(gè)單元),送時(shí)間(00時(shí)00分00秒)、日期(07年10月01日)初值,送定時(shí)器T0、T1初

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲(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)論