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

下載本文檔

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

文檔簡介

1、<p>  河北機(jī)電職業(yè)技術(shù)學(xué)院</p><p><b>  2011級</b></p><p><b>  電氣工程系</b></p><p><b>  畢業(yè)設(shè)計(jì)</b></p><p>  應(yīng)用電子技術(shù)1101</p><p>  基于單

2、片機(jī)的數(shù)字鐘設(shè)計(jì)</p><p><b>  摘 要</b></p><p>  基于單片機(jī)的定時(shí)和控制裝置在許多行業(yè)有著廣泛的應(yīng)用,而數(shù)字鐘是其中最基本的,也是最具有代表性的一個例子。</p><p>  在基于單片機(jī)系統(tǒng)的數(shù)字鐘電路中,除了基本的單片機(jī)系統(tǒng)和外圍電路外,還需要外部的控制和顯示裝置。本電路主要以單片機(jī)AT89S52為核心

3、而設(shè)計(jì)的,通過單片機(jī)對信息的分析與處理,控制外圍設(shè)備。系統(tǒng)由復(fù)位模塊、時(shí)鐘模塊、溫度模塊、音樂模塊、顯示模塊共五個模塊組成,后來在時(shí)鐘模塊的基礎(chǔ)上又加載了日歷、星期的模塊。</p><p>  本設(shè)計(jì)以單片機(jī)AT89S52為切入點(diǎn),通過使用AT89S52的內(nèi)部的可編程定時(shí)器/計(jì)數(shù)器,結(jié)合對外接晶振的調(diào)節(jié)來確定一個合適的振蕩周期,從而確定出內(nèi)部的機(jī)器周期。再通過對內(nèi)部中斷程序的設(shè)置來設(shè)計(jì)出時(shí)鐘程序,即設(shè)計(jì)出了電子時(shí)

4、鐘的核心。然后在核心電路的基礎(chǔ)上設(shè)計(jì)出了相應(yīng)的擴(kuò)展電路,使本設(shè)計(jì)更加實(shí)用。</p><p>  關(guān)鍵詞:單片機(jī);數(shù)碼顯示;溫度傳感器</p><p><b>  目 錄</b></p><p><b>  1. 引言1</b></p><p>  2. 關(guān)于單片機(jī)2</p>

5、<p>  2.1單片機(jī)的發(fā)展2</p><p>  2.2 單片機(jī)的開發(fā)背景錯誤!未定義書簽。</p><p>  2.3 AT89S52單片機(jī)5</p><p>  2.3.1 AT89S52單片機(jī)引腳功能6</p><p>  2.3.2 AT89S52單片機(jī)硬件結(jié)構(gòu)的特點(diǎn)7</p><p>

6、  2.3.3 AT89S52單片機(jī)的硬件原理8</p><p>  3. 方案設(shè)計(jì)與論證10</p><p>  4. 系統(tǒng)總體結(jié)構(gòu)框圖11</p><p>  5. 系統(tǒng)的硬件設(shè)計(jì)12</p><p>  5.1 顯示部分電路的設(shè)計(jì)12</p><p>  5.1.1 LED數(shù)碼顯示管的基本原理12&l

7、t;/p><p>  5.1.2 數(shù)碼管顯示模塊分析12</p><p>  5.1.3 LED顯示電路13</p><p>  5.2 控制部分電路的設(shè)計(jì)14</p><p>  5.2.1 時(shí)鐘模塊14</p><p>  5.2.2 溫度模塊14</p><p>  5.2.3 音樂

8、模塊14</p><p>  5.2.4 復(fù)位模塊14</p><p>  6. 系統(tǒng)的軟件設(shè)計(jì)15</p><p>  6.1 各模塊的程序設(shè)計(jì)15</p><p>  6.1.1 計(jì)時(shí)程序15</p><p>  6.1.2 定時(shí)鬧鐘程序16</p><p>  6.2 系統(tǒng)程序

9、設(shè)計(jì)的總體框圖17</p><p>  7. 系統(tǒng)電路的制作與調(diào)試…………………………………………………………...18</p><p>  7.1 電路硬件焊接制作………………………………………………………….18</p><p>  7.2 調(diào)試的主要方法…………………………………………………………….18</p><p>  7.3

10、系統(tǒng)調(diào)試…………………………………………………………………….18</p><p>  7.3.1 硬件調(diào)試………………………………………………………………18</p><p>  7.3.2 軟件調(diào)試………………………………………………………………19</p><p>  7.3.3 聯(lián)機(jī)調(diào)試………………………………………………………………19</p>

11、<p>  7.3.4調(diào)試中遇到的問題及解決方法……………………………………….19</p><p>  結(jié)論……………………………………………………………………………………21</p><p>  附錄1 數(shù)字鐘電路圖……………………………………………………………….22 </p><p>  附錄2 程序清單………………………………………………

12、…………………….23 </p><p>  附錄3 資料………………………………………………………………………….30 </p><p>  致謝 ………………………………………………………………………………40</p><p><b>  1. 引言</b>

13、;</p><p>  20世紀(jì)末,電子技術(shù)獲得了飛速的發(fā)展,在其推動下,現(xiàn)代電子產(chǎn)品幾乎滲透了社會的各個領(lǐng)域,有力地推動了社會生產(chǎn)力的發(fā)展和社會信息化程度的提高,同時(shí)也使現(xiàn)代電子產(chǎn)品性能進(jìn)一步提高,產(chǎn)品更新?lián)Q代的節(jié)奏也越來越快。   時(shí)間對人們來說總是那么寶貴,工作的忙碌性和繁雜性容易使人忘記當(dāng)前的時(shí)間。忘記了要做的事情,當(dāng)事情不是很重要的時(shí)候,這種遺忘無傷大雅。但是,一旦重要事情,一時(shí)的耽誤可能釀成大禍。例

14、如,許多火災(zāi)都是由于人們一時(shí)忘記了關(guān)閉煤氣或是忘記充電時(shí)間。尤其在醫(yī)院,每次護(hù)士都會給病人作皮試,測試病人是否對藥物過敏。注射后,一般等待5分鐘,一旦超時(shí),所作的皮試試驗(yàn)就會無效。手表當(dāng)然是一個好的選擇,但是,隨著接受皮試的人數(shù)增加,到底是哪個人的皮試到時(shí)間卻難以判斷。所以,要制作一個定時(shí)系統(tǒng)。隨時(shí)提醒這些容易忘記時(shí)間的人。   鐘表的數(shù)字化給人們生產(chǎn)生活帶來了極大的方便,而且大大地?cái)U(kuò)展了鐘表原先的報(bào)時(shí)功能。諸如定時(shí)自動報(bào)警、按時(shí)自動

15、打鈴、時(shí)間程序自動控制、定時(shí)廣播、定時(shí)啟閉電路、定時(shí)開關(guān)烘箱、通斷動力設(shè)備,甚至各種定時(shí)電氣的自動啟用等,所有這些,都是以鐘表數(shù)字化為基礎(chǔ)的。因此,研究數(shù)字鐘及擴(kuò)大其應(yīng)</p><p>  基于單片機(jī)的定時(shí)和控制裝置在許多行業(yè)有著廣泛的應(yīng)用,數(shù)字鐘作為其中最基本的一個應(yīng)用實(shí)例,具有結(jié)構(gòu)簡單應(yīng)用廣泛的特點(diǎn)。數(shù)字鐘中使用了單片機(jī)中最為常用的輸入輸出設(shè)備按鍵開關(guān)和數(shù)碼管;數(shù)字鐘程序主要應(yīng)用單片機(jī)的定時(shí)器和中斷實(shí)現(xiàn)計(jì)時(shí)和

16、顯示功能。當(dāng)今數(shù)字種作為一個單元電路被廣泛應(yīng)用于電子表、電子萬年歷等產(chǎn)品中,帶來廣泛的經(jīng)濟(jì)效益。</p><p>  目前的單片機(jī)產(chǎn)品普遍要求體積小、重量輕,這就要求單片機(jī)除了功能強(qiáng)和功耗低外,還要求其體積要小?,F(xiàn)在雖然單片機(jī)的品種繁多,各具特色,但仍以80C51為核心的單片機(jī)占主流,兼容其結(jié)構(gòu)和指令系統(tǒng)的有PHILIPS公司的產(chǎn)品,ATMEL公司的產(chǎn)品和中國臺灣的Winbond系列單片機(jī)。所以C8051為核心的

17、單片機(jī)占據(jù)了半壁江山。而Microchip公司的PIC精簡指令集(RISC)也有著強(qiáng)勁的發(fā)展勢頭,中國臺灣的HOLTEK公司近年的單片機(jī)產(chǎn)量與日俱增,與其低價(jià)質(zhì)優(yōu)的優(yōu)勢,占據(jù)一定的市場分額。此外還有MOTOROLA公司的產(chǎn)品,日本幾大公司的專用單片機(jī)。在一定的時(shí)期內(nèi),這種情形將得以延續(xù),將不存在某個單片機(jī)一統(tǒng)天下的壟斷局面,走的是依存互補(bǔ),相輔相成、共同發(fā)展的道路。單片機(jī)的可靠性及應(yīng)用水平越來越高和互聯(lián)網(wǎng)連接已是一種明顯的走向。單片機(jī)從

18、功能上講可以說是萬用機(jī)。目前,單片機(jī)正朝著高性能和多品種方向發(fā)展,趨勢將是進(jìn)一步向著CMOS化、低功耗、小體積、大容量、高性能、低價(jià)格和外圍電路內(nèi)裝化等幾個方面發(fā)展。當(dāng)今,單片機(jī)廣泛地用于各種儀器儀表,使儀器儀表智能化,并可以提高測量的自動化程度和精度,簡化儀器</p><p><b>  2.關(guān)于單片機(jī)</b></p><p><b>  2.1單片機(jī)的發(fā)

19、展</b></p><p>  單片機(jī)自問世以來,性能不斷提高和完善,其資源又能滿足很多應(yīng)用場合的需要,加之單片機(jī)具有集成度高、功能強(qiáng)、速度快、體積小、功耗低、使用方便、價(jià)格低廉等特點(diǎn),因此,在工業(yè)控制、智能儀器儀表、數(shù)據(jù)采集和處理、通信系統(tǒng)、高級計(jì)算器、家用電器等領(lǐng)域的應(yīng)用日益廣泛,并且正在逐步取代現(xiàn)有的多片微機(jī)應(yīng)用系統(tǒng)。單片機(jī)的潛力越來越被人們所重視。特別是當(dāng)前用CMOS工藝制成的各種單片機(jī),由于

20、功耗低,使用的溫度范圍大,抗干擾能力強(qiáng)、能滿足一些特殊要求的應(yīng)用場合,更加擴(kuò)大了單片機(jī)的應(yīng)用范圍,也進(jìn)一步促使單片機(jī)性能的發(fā)展。而現(xiàn)在單片機(jī)在液晶顯示上也有了很多的應(yīng)用。</p><p>  隨著科技不斷進(jìn)步,各種顯示技術(shù)如雨后春筍般誕生,由于液晶顯示器(LCD)具有輕薄短小、低耗電量、無輻射危險(xiǎn),平面直角顯示以及影像穩(wěn)定不閃爍等優(yōu)勢,在近年來價(jià)格不斷下跌的吸引下,逐漸取代CRT之主流地位,顯示器明日之星架勢十足

21、。液晶顯示器件從初期的實(shí)驗(yàn)室到現(xiàn)在的生產(chǎn)廠家,已形成較大規(guī)模的生產(chǎn)能力,使液晶顯示形成了獨(dú)立的產(chǎn)業(yè)部門。而今,液晶顯示已經(jīng)應(yīng)用于人們生產(chǎn)、生活中的各個領(lǐng)域,人們時(shí)時(shí)處處都要與這一神奇而又普通的產(chǎn)品打交道。液晶顯示技術(shù)以它跨越多學(xué)科的工作原理,高技術(shù)、專業(yè)化的制造工藝使它披上了一層神秘的面紗,而它輕巧薄形的體態(tài),獨(dú)特而理想的性能以及廣泛的應(yīng)用價(jià)值,又使它充滿魅力,深深地吸引著人們。</p><p>  在單片機(jī)技術(shù)

22、日趨成熟的今天,其靈活的硬件電路的設(shè)計(jì)和軟件的設(shè)計(jì),讓單片機(jī)得到了廣泛的應(yīng)用,幾乎是從小的電子產(chǎn)品,到大的工業(yè)控制,單片機(jī)都起到了舉足輕重的作用。單片機(jī)小的系統(tǒng)結(jié)構(gòu)幾乎是所有具有可編程硬件的一個縮影,可謂是“麻雀雖小,肝膽俱全”,單片機(jī)的學(xué)習(xí)和研究是對微機(jī)系統(tǒng)學(xué)習(xí)和研究的簡捷途徑。</p><p>  在目前,用戶對單片機(jī)的需要越來越多,但是,要求也越來越高,因此,單片機(jī)也在不斷的發(fā)展和進(jìn)步。單片機(jī)的技術(shù)進(jìn)步主要

23、反映在內(nèi)部結(jié)構(gòu)、功率消耗、外部電壓等級以及制造工藝上。在這幾方面,較為典型地說明了數(shù)字單片機(jī)的水平。下面分別就這三個方面說明單片機(jī)的技術(shù)進(jìn)步狀況。</p><p> ?。?)內(nèi)部結(jié)構(gòu)的進(jìn)步 </p><p>  單片機(jī)在內(nèi)部已集成了越來越多的部件,這些部件包括一般常用的電路,例如:定時(shí)器,比較器,A/轉(zhuǎn)換器,D /A轉(zhuǎn)換器,串行通信接口,Watchdog電路,LCD控制器等。   有的單

24、片機(jī)為了構(gòu)成控制網(wǎng)絡(luò)或形成局部網(wǎng),內(nèi)部含有局部網(wǎng)絡(luò)控制模塊CAN。例如,Infineon公司的C 505C,C515C,C167CR,C167CS-32FM,81C90;Motorola公司的68HC08AZ 系列等。特別是在單片機(jī)C167CS-32FM中,內(nèi)部還含有2個CAN。因此,這類單片機(jī)十分容易構(gòu)成網(wǎng)絡(luò)。特別是在控制,系統(tǒng)較為復(fù)雜時(shí),構(gòu)成一個控制網(wǎng)絡(luò)十分有用。   為了能在變頻控制中方便使用單片機(jī),形成最具經(jīng)濟(jì)效益的嵌入式控制

25、系統(tǒng)。有的單片機(jī)內(nèi)部設(shè)置了專門用于變頻控制的脈寬調(diào)制控制電路,這些單片機(jī)有Fujitsu公司的MB89850系列、MB89860系列;Motorola 公司的MC68HC08MR16、MR24等。在這些單片機(jī)中,脈寬調(diào)制電路有6個通道輸出,可產(chǎn)生三相脈寬調(diào)制交流電壓,并內(nèi)部含死區(qū)控制等功能。 </p><p> ?。?)功耗、封裝及電源電壓的進(jìn)步  現(xiàn)在新的單片機(jī)的功耗越來越小,特別是很多單片機(jī)都設(shè)置了多種工作

26、方式,這些工作方式包括等待,暫停,睡眠,空閑,節(jié)電等工作方式。Philips公司的單片機(jī)P87LPC762是一個很典型的例子,在空閑時(shí),其功耗為1.5 mA,而在節(jié)電方式中,其功耗只有0.5mA。而在功耗上最令人驚嘆的是TI公司的單片機(jī)MSP430系列,它是一個 16位的系列,有超低功耗工作方式。它的低功耗方式有LPM1、LPM3、LPM4三種。當(dāng)電源為3V時(shí),如果工作于 LMP1方式,即使外圍電路處于活動,由于CPU不活動,振蕩器處于

27、1~4MHz,這時(shí)功耗只有50?A。在LPM3 時(shí),振蕩器處于32kHz,這時(shí)功耗只有1.3?A。在LPM4時(shí),CPU、外圍及振蕩器32kHz都不活動,則功耗只有0.1?A。   現(xiàn)在單片機(jī)的封裝水平已大大提高,隨著貼片工藝的出現(xiàn),單片機(jī)也大量采用了各種合符貼片工藝的封裝方式出現(xiàn),以大量減少體積。在這種形勢中,Microchip公司推出的8引腳的單片機(jī)特別引人注目。這是PIC12CXXX系列。它含有0.5~2K程序存儲器,25~128

28、字節(jié)數(shù)據(jù)存儲器,6個</p><p> ?。?)工藝上的進(jìn)步   現(xiàn)在的單片機(jī)基本上采用CMOS技術(shù),但已經(jīng)大多數(shù)采用了0.6?m以上的光刻工藝,有個別的公司,如Motorola公司則已采用0.35?m甚至是0.25?m技術(shù)。這些技術(shù)的進(jìn)步大大地提高了單片機(jī)的內(nèi)部密度和可靠性。 單片機(jī)在目前的發(fā)展形勢下,可靠性及應(yīng)用越來越高的水平和互聯(lián)網(wǎng)連接已是一種明顯的走向。所集成的部件越來越多;NS(美國國家半導(dǎo)體)公司

29、的單片機(jī)已把語音、圖象部件也集成到單片機(jī)中,也就是說,單片機(jī)的意義只是在于單片集成電路,而不在于其功能了;如果從功能上講它可以講是萬用機(jī)。原因是其內(nèi)部已集成上各種應(yīng)用電路。 功耗越來越低和模擬電路結(jié)合越來越多也將會成為單片機(jī)的一個發(fā)展的方向。隨著半導(dǎo)體工藝技術(shù)的發(fā)展及系統(tǒng)設(shè)計(jì)水平的提高,單片機(jī)還會不斷產(chǎn)生新的變化和進(jìn)步,最終人們可能發(fā)現(xiàn):單片機(jī)與微機(jī)系統(tǒng)之間的距離越來越小,甚至難以辨認(rèn)。</p><p>  2.

30、2 單片機(jī)的開發(fā)背景</p><p>  現(xiàn)代工業(yè)控制和一些智能化儀器儀表中,越來越多的場所需要用點(diǎn)陣圖形顯示器顯示漢字。液晶顯示器是人與機(jī)器溝通的重要界面,而且液晶顯示器也有如下特點(diǎn),開發(fā)出來會有很大的應(yīng)用空間。液晶顯示器目前發(fā)展最快,也已經(jīng)成為電子信息產(chǎn)業(yè)的支柱性產(chǎn)業(yè)之一,受到普遍關(guān)注與重視。那么液晶顯示器與傳統(tǒng)的顯示器相比,到底有什么新的特點(diǎn)呢? </p><p> ?、?質(zhì)量高 由

31、于液晶顯示器每一個點(diǎn)在收到信號后就一直保持那種色彩和亮度,恒定發(fā)光,而不像陰極射線管顯示器(CRT)那樣需要不斷刷新亮點(diǎn)。因此,液晶顯示器畫質(zhì)高而且絕對不會閃爍,把眼睛疲勞降到最低。</p><p> ?、?沒有電磁輻射 傳統(tǒng)顯示器的顯示材料是熒光粉,通過電子束撞擊熒光粉而顯示,電子束在打到熒光粉上的一剎那間會產(chǎn)生強(qiáng)大的電磁輻射,盡管目前有許多顯示器產(chǎn)品在處理輻射問題上進(jìn)行了比較有效的處理,盡可能地把輻射量降到最

32、低,但要徹底消除是困難的。相對來說,液晶顯示器在防止輻射方面具有先天的優(yōu)勢,因?yàn)樗揪筒淮嬖谳椛洹?lt;/p><p> ?、?可視面積大 對于相同尺寸的顯示器來說,液晶顯示器的可視面積要更大一些。液晶顯示器的可視面積跟它的對角線尺寸相同。陰極射線管顯示器顯像管前面板四周有一英寸左右的邊框不能用于顯示。</p><p> ?、?應(yīng)用范圍廣 最初的液晶顯示器由于無法顯示細(xì)膩的字符,通常應(yīng)用在電

33、子表、計(jì)算器上。而隨后出現(xiàn)的DSTN和TFT則被廣泛制作成電腦中的液晶顯示設(shè)備,DSTN液晶顯示屏用于早期的筆記本電腦;TFT則既應(yīng)用在筆記本電腦上(現(xiàn)在大多數(shù)筆記本電腦都使用TFT顯示屏),又用于主流臺式顯示器上。</p><p> ?、?畫面效果好 與傳統(tǒng)顯示器相比,液晶顯示器一開始就使用純平面的玻璃板,其顯示效果是平面直角的,讓人有一種耳目一新的感覺。而且液晶顯示器更容易在小面積屏幕上實(shí)現(xiàn)高分辨率。<

34、/p><p> ?、?數(shù)字式接口 液晶顯示器都是數(shù)字式的,不像陰極射線管彩顯采用模擬接口。也就是說,使用液晶顯示器,顯卡再也不需要像往常那樣把數(shù)字信號轉(zhuǎn)化成模擬信號再行輸出了。理論上,這會使色彩和定位都更加準(zhǔn)確完美。 </p><p> ?、?體積小 傳統(tǒng)的陰極射線管顯示器,后面總是拖著一個笨重的射線管。液晶顯示器突破了這一限制,給人一種全新的感覺。傳統(tǒng)顯示器是通過電子槍發(fā)射電子束到屏幕,因而

35、顯像管的管頸不能做得很短,當(dāng)屏幕增加時(shí)也必然增大整個顯示器的體積。而液晶顯示器通過顯示屏上的電極控制液晶分子狀態(tài)來達(dá)到顯示目的,即使屏幕加大,它的體積也不會成正比的增加,而且在重量上比相同顯示面積的傳統(tǒng)顯示器要輕得多。</p><p> ?、?功率消耗小 傳統(tǒng)的顯示器內(nèi)部由許多電路組成,這些電路驅(qū)動著陰極射線顯像管工作時(shí),需要消耗很大的功率,而且隨著體積的不斷增大,其內(nèi)部電路消耗的功率肯定也會隨之增大。相比而言,

36、液晶顯示器的功耗主要消耗在其內(nèi)部的電極和驅(qū)動IC上,因而耗電量比傳統(tǒng)顯示器也要小得多。</p><p>  2.3 AT89S52單片機(jī)</p><p>  AT89S52 是一種低功耗、高性能CMOS8 位微控制器,具有8K 在系統(tǒng)可編程存儲器。使用Atmel 公司高密度非易失性存儲器技術(shù)制造,與工業(yè)80C51產(chǎn)品指令和引腳完全兼容。片上Flash 允許程序存儲器在系統(tǒng)可編程,亦適于常規(guī)

37、編程器。在單芯片上,擁有靈巧的8 位CPU 和在系統(tǒng)可編程Flash ,使得AT89S52 為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。AT89S52 具有以下標(biāo)準(zhǔn)功能:8k 字節(jié)Flash,256 字節(jié)RAM,32 位I/O 口線,看門狗定時(shí)器,2 個數(shù)據(jù)指針,三個16 位定時(shí)器/計(jì)數(shù)器,一個6 向量2 級中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時(shí)鐘電路。另外,AT89S52 可降至0Hz 靜態(tài)邏輯操作,支持2 種軟件可選擇節(jié)電模

38、式??臻e模式下,CPU停止工作,允許RAM 、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,RAM 內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個中斷或硬件復(fù)位為止。</p><p>  圖2-1AT89S52的引腳</p><p>  2.3.1 AT89S52單片機(jī)引腳功能 </p><p>  P0 口:P0 口是一個8 位漏極開路的雙向I/O

39、 口。作為輸出口,每位能驅(qū)動8 個TTL 邏輯電平。對P0 端口寫“1”時(shí),引腳用作高阻抗輸入。當(dāng)訪問外部程序和數(shù)據(jù)存儲器時(shí),P0 口也被作為低8 位地址/數(shù)據(jù)復(fù)用。在這種模式下,P0 具有內(nèi)部上拉電阻。</p><p>  P1 口:P1 口是一個具有內(nèi)部上拉電阻的8 位雙向I/O 口,P1 輸出緩沖器能驅(qū)動4 個TTL 邏輯電平。對P1 端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入

40、使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。此外,P1.0 和P1.2 分別作定時(shí)器/計(jì)數(shù)器2 的外部計(jì)數(shù)輸入(P1.0/T2)和時(shí)器/計(jì)數(shù)器2的觸發(fā)輸入(P1.1/T2EX),具體如下表所示。在flash 編程和校驗(yàn)時(shí),P1 口接收低8 位地址字節(jié)。</p><p>  P2 口:P2 口是一個具有內(nèi)部上拉電阻的8 位雙向I/O 口,P2 輸出緩沖器能驅(qū)動4 個TTL 邏輯電平。對P2 端

41、口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。在訪問外部程序存儲器或用16 位地址讀取外部數(shù)據(jù)存儲器(例如執(zhí)行MOVX @DPTR)時(shí),P2 口送出高八位地址。在這種應(yīng)用中,P2 口使用很強(qiáng)的內(nèi)部上拉發(fā)送1。在使用8 位地址(如MOVX @RI )訪問外部數(shù)據(jù)存儲器時(shí),P2 口輸出P2 鎖存器的內(nèi)容。</p><p>  P

42、3 口:P3 口是一個具有內(nèi)部上拉電阻的8 位雙向I/O 口,p2 輸出緩沖器能驅(qū)動4 個TTL 邏輯電平。對P3 端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。</p><p>  RST: 復(fù)位輸入。晶振工作時(shí),RST 腳持續(xù)2 個機(jī)器周期高電平將使單片機(jī)復(fù)位??撮T狗計(jì)時(shí)完成后,RST 腳輸出96 個晶振周期的高電平。

43、特殊寄存器AUXR( 地址8EH) 上的DISRTO 位可以使此功能無效。DISRTO 默認(rèn)狀態(tài)下,復(fù)位高電平有效。</p><p>  ALE/PROG:地址鎖存控制信號(ALE)是訪問外部程序存儲器時(shí),鎖存低8 位地址的輸出脈沖。在flash 編程時(shí),此引腳(PROG )也用作編程輸入脈沖。在一般情況下,ALE 以晶振六分之一的固定頻率輸出脈沖,可用來作為外部定時(shí)器或時(shí)鐘使用。然而,特別強(qiáng)調(diào),在每次訪問外部數(shù)

44、據(jù)存儲器時(shí),ALE 脈沖將會跳過。如果需要,通過將地址為8EH 的SFR 的第0 位置“1”,ALE 操作將無效。這一位置“1”,ALE 僅在執(zhí)行MOVX 或MOVC 指令時(shí)有效。</p><p>  PSEN: 外部程序存儲器選通信號(PSEN)是外部程序存儲器選通信號。當(dāng)AT89S52 從外部程序存儲器執(zhí)行外部代碼時(shí),PSEN 在每個機(jī)器周期被激活兩次,而在訪問外部數(shù)據(jù)存儲器時(shí),PSEN 將不被激活。<

45、/p><p>  EA/VPP: 訪問外部程序存儲器控制信號。為使能從0000H 到FFFFH 的外部程序存儲器讀取指令,EA 必須接GND。為了執(zhí)行內(nèi)部程序指令,EA 應(yīng)該接VCC。在flash 編程期間,EA 也接收12 伏VPP 電壓。</p><p>  2.3.2 AT89S52單片機(jī)硬件結(jié)構(gòu)的特點(diǎn)</p><p>  MCS-51單片機(jī)硬件結(jié)構(gòu)有如下一些主

46、要特點(diǎn):</p><p> ?、?內(nèi)部程序存儲器(ROM)和內(nèi)部數(shù)據(jù)存儲器(RAM)容量</p><p>  MCS-51單片機(jī)的內(nèi)部ROM和內(nèi)部RAM的容量如表-1所示:</p><p>  表-1 MCS-51單片機(jī)存儲器容量</p><p>  ② 輸入/輸出(I/O)口</p><p>  MCS-51單片機(jī)內(nèi)

47、的I/O口的數(shù)量和種類較多且齊全,尤其是它有一個全雙工的串行口。該串口是利用兩根I/O口線構(gòu)成的,有四種工作方式,可通過編程選定,MCS-51有32根I/O口線,而MCS-48只有27根。</p><p>  ③ 外部程序存儲器和外部數(shù)據(jù)存儲器尋址空間</p><p>  MCS-51可對64KB的外部數(shù)據(jù)存儲器尋址且不受該系列中各種芯片型號的影響,而對程序存儲器是內(nèi)外總空間為64KB,故

48、根據(jù)表-1不同的芯片型號,MCS-51外部程序存儲器最大尋址范圍為64KB。</p><p><b> ?、?中斷與堆棧</b></p><p>  MCS-51有5個中斷源(對8032/8052為6個),分為2個優(yōu)先級,每個中斷源的優(yōu)先級是可編程的。它的堆棧位置也是可編程的,堆棧深度可達(dá)128字節(jié)。而MCS-48只有不分優(yōu)先級的2個中斷源,且堆棧設(shè)置在片內(nèi)RAM的1

49、6個字節(jié)的固定單元內(nèi)。</p><p> ?、?定時(shí)/計(jì)數(shù)器與寄存器區(qū)</p><p>  MCS-51子系列有2個16位定時(shí)/計(jì)數(shù)器,通過編程可以實(shí)現(xiàn)四種工作模式。MCS-52子系列則有3個16位定時(shí)/計(jì)數(shù)器。而MCS-48只有一個8位定時(shí)/計(jì)數(shù)器。MCS-51在內(nèi)部RAM中開設(shè)了四個通用工作寄存器區(qū),共32個通用寄存器,以適應(yīng)多種中斷或子程序嵌套的要求。而MCS-48的內(nèi)部RAM中只有

50、兩個通用工作寄存器區(qū),每個寄存器區(qū)包含8個8位寄存器。</p><p>  2.3.3 AT89S52單片機(jī)的硬件原理 </p><p>  ⑴ 如圖所示,圖為單片機(jī)的基本外圍電路。20管腳接地,40管腳接+5V電源,為單片機(jī)工作提供電源。18及19管腳接晶振,為單片機(jī)提供時(shí)鐘信號,晶振為12MHz。晶振的振蕩頻率越高,系統(tǒng)的時(shí)鐘頻率越高,單片機(jī)工作的速度也越高。對于液晶顯示電路的設(shè)計(jì),需

51、要單片機(jī)有較高的工作效率,所以選擇比較高頻率的晶振,從而提高液晶屏幕的刷新速率,獲得更加連貫、流暢的圖像顯示。根據(jù)需要還可以加上復(fù)位電路,復(fù)位是單片機(jī)的初始化操作?;蛘弋?dāng)單片機(jī)程序運(yùn)行出錯導(dǎo)致死鎖狀態(tài)的時(shí)候,為擺脫困境,也需要按復(fù)位鍵以重新啟動。</p><p>  圖2-2 AT89S52單片機(jī)基本外圍電路</p><p> ?、?如圖2-3所示,左邊為單片機(jī)模塊,右邊為液晶模塊。單片機(jī)

52、的P0口與液晶模塊的8個數(shù)據(jù)端口相連,作為數(shù)據(jù)傳送端口。 P2.4、5、7、8與液晶模塊的片選CS1、CS2和R/W、D/I相連,作為控制字的寫入。液晶模塊的E端為使能端,由單片機(jī)的P2.3和P3.7、8三個口送信號至與非門驅(qū)動液晶模塊,同時(shí)給使能端提供高低電平,控制液晶模塊工作。液晶模塊的VSS接地,VCC和V0接滑動變阻器,VCC接正5V電源,通過滑動變阻器分壓,從而為液晶模塊更好的工作提供電源,也作為液晶顯示屏的亮度控制端。此圖即

53、為單片機(jī)控制液晶顯示的基本電路。其中的與非門組合可以用74LS00芯片,74LS00可以提供3個與非門。本設(shè)計(jì)電路成本低,元件比較普通,市場上可以輕易買到,為整個畢業(yè)設(shè)計(jì)提供方便。電路簡單易于焊接,調(diào)試中也能減少很多麻煩。</p><p>  3. 方案設(shè)計(jì)與論證</p><p>  按照系統(tǒng)設(shè)計(jì)功能的要求,初步確定設(shè)計(jì)系統(tǒng)由復(fù)位模塊、時(shí)鐘模塊、音樂模塊、及顯示模塊共四個模塊組成,后來在時(shí)

54、鐘模塊的基礎(chǔ)上又加載了日歷、星期的模塊,為了使本設(shè)計(jì)中的數(shù)字鐘的功能更加完善和強(qiáng)大,最后又將溫度顯示加入了設(shè)計(jì)方案中。</p><p>  首先以單片機(jī)AT89S52為入手點(diǎn),通過使用AT89S52的內(nèi)部的可編程定時(shí)器/計(jì)數(shù)器,結(jié)合對外接晶振的調(diào)節(jié)來確定一個合適的振蕩周期,從而確定出內(nèi)部的機(jī)器周期。再通過對內(nèi)部中斷程序的設(shè)置來設(shè)計(jì)出時(shí)鐘程序,即設(shè)計(jì)出了電子時(shí)鐘的核心。</p><p>  

55、根據(jù)題目的要求,我設(shè)計(jì)了以下方案:</p><p>  設(shè)計(jì)中加載了年、月、日的設(shè)計(jì),剛開始時(shí)打算用18個共陽數(shù)碼管,考慮到數(shù)碼管太多是畢會給硬件電路帶來麻煩,經(jīng)過考慮后,決定把年、月、日與時(shí)間設(shè)置到一組數(shù)碼管上來,即四個數(shù)碼管即能顯示時(shí)間又能顯示年、月、日,這樣一來就方便了硬件電路。</p><p>  主控芯片使用51系列AT89S52單片機(jī),溫度模塊設(shè)計(jì)中,溫度元件采用AD590,利

56、用AD590以及接口電路把溫度轉(zhuǎn)換成模擬電壓,經(jīng)由ADC0804轉(zhuǎn)換成數(shù)字信號,然后經(jīng)AT89S52處理顯示溫度。但由于AD590價(jià)錢比較貴,且只能轉(zhuǎn)換成模擬電壓,這樣一來硬件就要增加更多的器件且又不經(jīng)濟(jì),經(jīng)查找發(fā)現(xiàn)18B20溫度傳感器價(jià)錢便宜且可以直接把溫度轉(zhuǎn)換成數(shù)字量測溫范圍為-55—125度,最大分辨率可達(dá)0.0625度,采用3線制與單片機(jī)相連,減少了外部的硬件電路,具有低成本和易使用的特點(diǎn),所以我選擇了18B20溫度傳感器。&l

57、t;/p><p>  在音樂模塊的設(shè)計(jì)中,我決定采用對鈴聲音編程,即節(jié)省了時(shí)間,又減少了在程序中發(fā)生錯誤的可能性。</p><p>  4. 系統(tǒng)總體結(jié)構(gòu)框圖</p><p><b>  圖4-1</b></p><p>  在本設(shè)計(jì)中,以按鍵開關(guān)作為輸入裝置,LED七段數(shù)碼顯示管作為顯示裝置,因此,各按鍵開關(guān)的功能為:&l

58、t;/p><p>  S1鍵:RST口 單片機(jī)復(fù)位鍵 </p><p>  S2鍵:P3.2口 菜單鍵</p><p>  S3健; p3.3口 溫度開關(guān)/調(diào)節(jié)鍵</p><p>  5. 系統(tǒng)的硬件設(shè)計(jì)</p><p>  電路是由控制部分和顯示部分兩大部分組成。利用單片機(jī)程序進(jìn)行控制,并通過數(shù)碼管進(jìn)行顯示。</

59、p><p>  5.1 顯示部分電路的設(shè)計(jì)</p><p>  5.1.1 LED數(shù)碼顯示管的基本原理</p><p>  用單片機(jī)驅(qū)動LED數(shù)碼管有很多方法,按顯示方式分,有靜態(tài)顯示和動態(tài)顯示,按譯碼方式可分為硬件譯碼和軟件譯碼。</p><p>  靜態(tài)顯示是顯示驅(qū)動電路具有輸出鎖存功能,單片機(jī)將要顯示的數(shù)據(jù)送出后不再控制LED,直到下次顯示

60、時(shí)再傳送一次新的顯示數(shù)據(jù)。靜態(tài)顯示的數(shù)據(jù)穩(wěn)定,占用CPU時(shí)間少。</p><p>  動態(tài)顯示要CPU時(shí)刻對顯示器件進(jìn)行刷新,顯示數(shù)據(jù)有閃爍感,占用CPU時(shí)間多。</p><p>  這兩種顯示方式各有利弊:靜態(tài)顯示雖然數(shù)據(jù)顯示穩(wěn)定,占用很少的CPU時(shí)間,但每個顯示單元都需要單獨(dú)的顯示驅(qū)動電路,使用的電路硬件較多;動態(tài)顯示雖然有閃爍感,占用的CPU時(shí)間多,但使用的硬件少,能節(jié)省線路板空間。

61、</p><p>  動態(tài)掃描顯示接口是單片機(jī)中應(yīng)用最廣泛的一種顯示方式。其接口電路是把所有LED顯示器的8個筆劃段A~D、DP的同名端連在一起,而每一個數(shù)碼管的公共端COM是各自獨(dú)立地受I/O線控制。CPU向字段輸出口送出字形碼時(shí),所有顯示器接受到相同的字形碼,但究竟是哪個顯示器亮,則取決于COM端,而這一端是由I/O控制的,可以自行決定何時(shí)顯示哪一位了。而所謂動態(tài)掃描就是指我們采用分時(shí)的方法,輪流控制各個顯示

62、器的COM端,是各個顯示器輪流點(diǎn)亮。</p><p>  在輪流點(diǎn)亮掃描過程中,每位顯示器的點(diǎn)亮?xí)r間是極為短暫的,約1ms左右,但由于人的視覺暫留現(xiàn)象及發(fā)光二極管的余輝效應(yīng),盡管實(shí)際上各位顯示器并非同時(shí)點(diǎn)亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),不會有閃爍感。</p><p>  從上述的論述中,可以看出動態(tài)顯示方案具備一定的實(shí)用性,也是目前單片機(jī)數(shù)碼管顯示中較為常用的

63、一種顯示方法。所以,本設(shè)計(jì)也采用動態(tài)顯示方案。</p><p>  5.1.2 數(shù)碼管顯示模塊分析</p><p>  電路先通過電源電路送出+5V電壓,單片機(jī)AT89S52通過驅(qū)動數(shù)碼管顯示數(shù)值, 顯示部分采用普通共陽極數(shù)碼管顯示,采用動態(tài)掃描,以減少硬件電路。</p><p>  二極管的陽極(二極管正端)連在一起。通常,公共陽極接高電平(一般接電源),其它管腳

64、接段驅(qū)動電路輸出端。當(dāng)某段驅(qū)動電路的輸入端為低電平時(shí),該端所連接的字段導(dǎo)通并點(diǎn)亮。根據(jù)發(fā)光字段的不同組合可顯示出各種數(shù)字或字符。此時(shí),要求段驅(qū)動電路能吸收額定的段導(dǎo)通電流,還需根據(jù)外接電源及額定段導(dǎo)通電流來確定相應(yīng)的限流電阻。采用動態(tài)顯示方式,比較節(jié)省I/O口,硬件電路也較靜態(tài)顯示簡單,但其亮度不如靜態(tài)顯示方式,而且在顯示位數(shù)較多時(shí),CPU要依次掃描,占用CPU較多時(shí)間。  為了提供共陽LED數(shù)碼管的驅(qū)動電壓,用三極管855

65、0作電源驅(qū)動輸出。采用12MHz晶振,有利于提高秒計(jì)時(shí)的精確性。;</p><p>  5.1.3 LED顯示電路</p><p><b>  圖5-1</b></p><p>  5.2 控制部分電路的設(shè)計(jì)</p><p>  5.2.1 時(shí)鐘模塊</p><p>  利用芯片內(nèi)部的振蕩器,然后

66、在引腳XTAL1和引腳 XTAL2兩端接晶體諧振器,就構(gòu)成了穩(wěn)定的自激振蕩器,其發(fā)出的脈沖直接送入內(nèi)部的時(shí)鐘電路,如圖外接晶振時(shí),C1和C2的值通常選擇30pF; C1、C2對頻率有微調(diào)作用,晶體諧振器的頻率12MHz。為了減少寄生電容,更好地保證振蕩器穩(wěn)定、可靠地工作,振蕩器和電容應(yīng)盡可能安裝得與單片機(jī)芯片靠近。設(shè)置了12—24兩種顯示狀態(tài),調(diào)整計(jì)時(shí)的按鍵、設(shè)置定時(shí)的按鍵且定時(shí)設(shè)置了3次定時(shí)、還另加載了星期、年、月、日的調(diào)整

67、及閏年的自動調(diào)整。</p><p>  5.2.2 溫度模塊</p><p>  主要由18B20通過單片機(jī)AT89S52中的溫度程序不斷的檢測溫度來顯示溫度。</p><p>  18B20溫度傳感器工作原理:DS18B20溫度傳感器是美國DALLAS半導(dǎo)體公司最新推出的一種改進(jìn)型智能溫度傳感器,與傳統(tǒng)的熱敏電阻等測溫元件相比,它能直接讀出被測溫度,并可根據(jù)實(shí)際要

68、求通過簡單的編程實(shí)現(xiàn)9—12位的數(shù)字值讀數(shù)方式,DS18B20的性能特點(diǎn)如下:</p><p>  1、獨(dú)特的單線接口僅需要一個引腳進(jìn)行通信;</p><p>  2、多個DS18B20可以并聯(lián)在唯一的三線上,實(shí)現(xiàn)多點(diǎn)組網(wǎng)功能;</p><p><b>  3、無須外部器件;</b></p><p>  4、可通過數(shù)據(jù)線

69、供電,電壓范圍為3.0---5.5V;</p><p><b>  5、零待機(jī)功耗;</b></p><p>  6、溫度以9或12位數(shù)字量讀出;</p><p>  7、用戶可定義的非易失性溫度報(bào)警設(shè)置;</p><p>  8、報(bào)警搜索命令識別并標(biāo)志超過程序限定溫度(溫度報(bào)警條件)的器件;</p>&l

70、t;p>  9、負(fù)電壓特性,電源極性接反是,溫度計(jì)不會因發(fā)熱而燒毀,但不能正常工作。</p><p>  5.2.3 音樂模塊</p><p>  通過單片機(jī)給蜂鳴器信號來發(fā)出音樂,這個模塊主要是為時(shí)鐘定時(shí)到時(shí)發(fā)出音樂鬧鈴,而在軟件部分設(shè)置了可以一次設(shè)置1次定時(shí),每次定時(shí)到時(shí),音樂中一音樂響15分鐘,如果中間不想讓鬧鈴響可以按一按鍵,鬧鈴就立刻停止。</p><p

71、>  5.2.4 復(fù)位模塊</p><p>  單片機(jī)復(fù)位電路是使CPU和系統(tǒng)中的其他功能部件都處在一個確定的初始狀態(tài),并從該狀態(tài)開始工作,例如復(fù)位后PC=0000H,使單片機(jī)從第一個單元取指令。無論是在單片機(jī)剛接上電源時(shí),還是斷電后或者發(fā)生故障后都要復(fù)位。</p><p><b>  電路圖為:</b></p><p><b>

72、;  圖5-2</b></p><p>  6. 系統(tǒng)的軟件設(shè)計(jì)</p><p>  6.1 各模塊的程序設(shè)計(jì)</p><p>  6.1.1 計(jì)時(shí)程序</p><p>  計(jì)時(shí)程序是實(shí)現(xiàn)電子時(shí)鐘的核心內(nèi)容,本程序用中斷time0來控制,計(jì)時(shí)顯示的單元從50h開始,50h=秒的個位,51h=秒的十位,52h=分的個位,53h=分的

73、十位,54h=時(shí)的個位,55h=時(shí)的十位</p><p>  org 000bh </p><p>  jmp time0</p><p>  mov tmod,#00010001b </p><p>  mov ie,#10001010b

74、</p><p>  mov ip,#00000010b</p><p>  mov th0,#(65536-2000)/256</p><p>  mov tl0,#low(65536-2000)</p><p>  mov 4fh,#02;兩個中斷250次為1秒</p><p>  6.1.

75、2 定時(shí)鬧鐘程序</p><p>  作用是判斷時(shí)間是否與設(shè)置的鬧鐘時(shí)間相等,如相等則開啟鬧鐘。</p><p>  片機(jī)內(nèi)定時(shí)振鈴開關(guān)使用軟件開關(guān),即用標(biāo)志寄存器,且程序設(shè)置了3次定時(shí),可見要使電子時(shí)鐘定時(shí)打鈴,必須同時(shí)具備兩個條件,第一:定時(shí)振鈴開;第二:當(dāng)前定時(shí)項(xiàng)數(shù)不為0項(xiàng)。 因?yàn)橐闺娮訒r(shí)鐘定時(shí)打鈴,必須同時(shí)具備上述的兩個條件,所以在單片機(jī)執(zhí)行查詢定時(shí)各項(xiàng)的程序之前,主程序會首先查

76、詢這兩個條件是否同時(shí)滿足,如果滿足的話,則進(jìn)行一輪查詢,所謂一輪查詢定時(shí),即將當(dāng)前時(shí)間與定時(shí)各項(xiàng)一一比較,看是否相符,如果查到某項(xiàng)相符,則調(diào)用音樂程序。每查完一項(xiàng),寄存器中的值會自動減1(即為定時(shí)時(shí)間的項(xiàng)數(shù))。當(dāng)定時(shí)時(shí)間的項(xiàng)數(shù)值自動減為0時(shí),則表示這一輪查詢定時(shí)時(shí)間完畢,只要條件允許(定時(shí)音樂開且定時(shí)項(xiàng)數(shù)不為0),有可以進(jìn)行一輪新的查詢定時(shí)時(shí)間。</p><p>  定時(shí)1:33h=分,34h=時(shí),定時(shí)2:35h

77、=分,36h=時(shí),定時(shí)3:37h=分,38h=時(shí),定時(shí)狀態(tài)=39h;定時(shí)顯示的單元從60h開始,60h=定時(shí)狀態(tài),61h=此時(shí);定時(shí)狀態(tài)的音樂種類,62h=分的個位,63h=分的十位;64h=時(shí)的個位,65h=時(shí)的十位。</p><p>  6.2 系統(tǒng)程序設(shè)計(jì)的總體框圖</p><p><b>  圖6-1</b></p><p>  7.

78、系統(tǒng)電路的制作與調(diào)試</p><p>  7.1 電路硬件焊接制作</p><p>  電路硬件焊接是畢業(yè)設(shè)計(jì)的重要內(nèi)容之一,其焊接工藝的好壞直接關(guān)系到系統(tǒng)的整體性能。本設(shè)計(jì)的樣品制作采用手工焊接,在焊接制作中應(yīng)遵守手工焊接的工藝流程和技術(shù)要求。</p><p>  7.2 調(diào)試的主要方法</p><p>  ⑴ 測試單片機(jī)軟件功能的完善性。

79、這是針對整個單片機(jī)系統(tǒng)功能的測試,測試軟件是否寫的正確完整。單片機(jī)是否能正常工作。</p><p> ?、?上電、掉電測試。在使用中用戶必然會遇到上電和掉電的情況,可以進(jìn)行多次開關(guān)電源,測試單片機(jī)系統(tǒng)的可靠性。</p><p> ?、?老化測試。測試長時(shí)間工作情況下,單片機(jī)系統(tǒng)的可靠性。必要的話可以放置在高溫,高壓以及強(qiáng)電磁干擾的環(huán)境下測試。</p><p> ?、?/p>

80、 D和EFT等測試??梢允褂酶鞣N干擾模擬器來測試單片機(jī)系統(tǒng)的可靠性。例如使用靜電模擬器測試單片機(jī)系統(tǒng)的抗靜電ESD能力;使用突波雜訊模擬器進(jìn)行快速脈沖抗干擾EFT測試等等。</p><p> ?、?整個顯示系統(tǒng)的測試。這是針對整個單片機(jī)顯示系統(tǒng)功能的測試,單片機(jī)正常工作后,加上負(fù)載液晶整個系統(tǒng)共同測試。</p><p> ?、?整個顯示系統(tǒng)的調(diào)試。編寫不同的程序?qū)懭雴纹瑱C(jī),用單片機(jī)控制液晶

81、顯示不同的畫面,如字符、圖形。 </p><p><b>  7.3 系統(tǒng)調(diào)試</b></p><p>  7.3.1 硬件調(diào)試</p><p>  靜態(tài)測試。在電路板制作好以后,先不要急著加電,首先進(jìn)行靜態(tài)測試。</p><p>  檢查線路:通過目測和使用萬用表,檢查線路連接的正確性,有無斷路和短路,無虛焊的存在等。

82、</p><p>  核對元件:檢查元件是否安裝正確,有無損壞等。</p><p>  7.3.2 軟件調(diào)試</p><p>  本程序采用單片機(jī)C語言編寫。</p><p>  7.3.3 聯(lián)機(jī)調(diào)試</p><p>  在硬件無故障和軟件模塊調(diào)試完成的情況下,還要對系統(tǒng)進(jìn)行聯(lián)機(jī)調(diào)試。在系統(tǒng)調(diào)試時(shí),應(yīng)將全部硬件電路都接

83、上,應(yīng)用程序模塊也都組合好,進(jìn)行全系統(tǒng)軟硬件調(diào)試。系統(tǒng)調(diào)試的任務(wù)是排除軟硬件中的殘留錯誤。使整個系統(tǒng)能夠完成預(yù)定的工作任務(wù),達(dá)到要求的技術(shù)性能指標(biāo)。</p><p>  系統(tǒng)聯(lián)機(jī)調(diào)試到能正確顯示時(shí)間、日期、24小時(shí)的轉(zhuǎn)換,并且鬧鈴功能正常。</p><p>  7.3.4調(diào)試中遇到的問題及解決方法 </p><p>  ⑴ 調(diào)試中反復(fù)檢查,仍沒有錯誤,這時(shí)候看是否要

84、排除元器件失效了。造成這類錯誤的原因有兩個:一個是元器件買來時(shí)就已壞了;另一個是由于安裝錯誤,造成器件燒壞??梢圆扇z查元器件與設(shè)計(jì)要求的型號、規(guī)格和安裝是否一致。在保證安裝無誤后,用替換方法排除錯誤。</p><p> ?、?還有可能是電源故障,所以排除電源故障這項(xiàng)必不可少。在通電前,一定要檢查電源電壓的幅值和極性,否則很容易造成集成塊損壞。加電后檢查各插件上引腳的電位,一般先檢查VCC與GND之間電位,若在5

85、V~4.8V之間屬正常。若有高壓,聯(lián)機(jī)仿真器調(diào)試時(shí),將會損壞仿真器等,有時(shí)會使應(yīng)用系統(tǒng)中的集成塊發(fā)熱損壞。</p><p> ?、?當(dāng)判斷單片機(jī)不工作時(shí)候,需要進(jìn)行聯(lián)機(jī)仿真調(diào)試。聯(lián)機(jī)仿真必須借助仿真開發(fā)裝置、示波器、萬用表等工具。這些工具是單片機(jī)開發(fā)的最基本工具。</p><p>  信號線是聯(lián)絡(luò)單片機(jī)和外部器件的紐帶,信號線連結(jié)錯誤或時(shí)序不對,都會造成對外圍電路讀寫錯誤。單片機(jī)的信號線大

86、體分為讀、寫信號線、片選信號線、時(shí)鐘信號線、外部程序存貯器讀選通信號(PSEN)、地址鎖存信號(ALE)、復(fù)位信號等幾類。這些信號大多屬于脈沖信號,對于脈沖信號借助示波器(這里指通用示波器)用常規(guī)方法很難觀測到,必須采取一定措施才能觀測到。應(yīng)該利用軟件編程的方法來實(shí)現(xiàn)。例如對片選信號,運(yùn)行下面的小程序就可以檢測出譯碼片選信號是否正常。</p><p>  MAIN:MOVDPTR,#DPTR    ;將地址送入D

87、PTR </p><p>  MOVXA,@DPTR ;將譯碼地址外RAM中的內(nèi)容送入</p><p>  ACC NOP ;適當(dāng)延時(shí)</p><p>  SJMP MAIN ;循環(huán)</p><p>  執(zhí)行程序后,就可以利用示波器觀察芯片的片選

88、信號引出腳(用示波器掃描時(shí)間為1μs/每格檔),這時(shí)應(yīng)看到周期為數(shù)微秒的負(fù)脈沖波形,若看不到則說明譯碼信號有錯誤。對于電平類信號,觀測起來就比較容易。例如對復(fù)位信號觀測就可以直接利用示波器,當(dāng)按下復(fù)位鍵時(shí),可以看到單片機(jī)的復(fù)位引腳將變?yōu)楦唠娖?;一旦松開,電平將變低。</p><p>  總而言之,對于脈沖觸發(fā)類的信號我們要用軟件來配合,并要把程序編為死循環(huán),再利用示波器觀察;對于電平類觸發(fā)信號,可以直接用示波器觀

89、察。</p><p><b>  結(jié) 論</b></p><p>  經(jīng)過調(diào)試,和多次改進(jìn),本設(shè)計(jì)達(dá)到了預(yù)期的效果。數(shù)字鐘可以正常顯示時(shí)間和日期,并且對每個月份的天數(shù)進(jìn)行了處理,特別是2月這個特殊月份,本設(shè)計(jì)可以自動從2月28日直接過度到3月1日。而且,在本設(shè)計(jì)中,閏年和平年的2月,其天數(shù)可以被正常區(qū)分,從而達(dá)到了實(shí)用和人性化的效果。對溫度的顯示也比較正常,能

90、夠正常反映出室溫情況。當(dāng)然,還可以根據(jù)需要,增加整點(diǎn)報(bào)時(shí)的功能,以使本設(shè)計(jì)更加完善。</p><p>  總之,本設(shè)計(jì)提供了一套行之有效的數(shù)字鐘的設(shè)計(jì)方案,并且成本較低,具有較高的實(shí)用性。</p><p><b>  附錄2 程序清單</b></p><p>  /***************************************

91、**********************************/</p><p>  //EC1204電子鐘程序 </p><p>  //晶振:12MHz</p><p>  /*************************************************************************/</p>&l

92、t;p>  #include<reg52.h></p><p>  #include"EC1204.h"</p><p>  //#defineucharunsigned char</p><p>  //#defineuintunsigned int</p><p>  //#defineS

93、EC_SCAN_MODE0</p><p>  #defineSEC_MODE_NUM4//秒顯示模式總數(shù)</p><p>  #defineMODE_CHTIME10000//無按鍵按下時(shí)間(轉(zhuǎn)換模式)</p><p>  //r_flag程序標(biāo)志</p><p>  #defineF_KEYPRO0x01/

94、/按鍵按下標(biāo)志</p><p>  #defineF_KEYNOP0x02//無鍵按下標(biāo)志</p><p>  #defineF_KEYDIS0x04//不處理按鍵標(biāo)志</p><p>  #defineF_KEYLP0x08//長按鍵標(biāo)志</p><p>  #defineF_SETMODE0x10

95、//設(shè)置模式</p><p>  #defineF_SETED0x20//已設(shè)置標(biāo)志</p><p>  #defineF_ALARM_STAR0x40//鬧鐘停止標(biāo)志</p><p><b>  //mode</b></p><p>  #defineNORMAL_DISP0//正常顯示

96、(時(shí)間)</p><p>  #defineDATE_DISP1//日期顯示</p><p>  #defineYEAR_SET2//設(shè)置年</p><p>  #defineMON_SET3//設(shè)置月</p><p>  #defineDAY_SET4//設(shè)置日</p><p&

97、gt;  #defineHOUR_SET5//設(shè)置時(shí)</p><p>  #defineMIN_SET6//設(shè)置分</p><p>  #defineALARM_SET110//鬧鐘設(shè)置(時(shí))</p><p>  #defineALARM_SET211//鬧鐘設(shè)置(分)</p><p>  #defi

98、neLED_DIS_SET20//秒顯示模式設(shè)置</p><p>  #defineWENDU_DISP30//溫度顯示模式</p><p>  //clock_ctr</p><p>  #defineF_CTR_HR0x80//1=12小時(shí)制,0=24小時(shí)制</p><p>  #defineF_CTR_

99、AP0x20//1=AM,0=PM</p><p>  #defineF_CTR_AL0x01//鬧鐘標(biāo)志,為1時(shí)打開鬧鐘</p><p><b>  //ledk</b></p><p>  #defineD_CHAR_A10</p><p>  #defineD_CHAR_F15</

100、p><p>  #defineD_CHAR_P16</p><p>  #defineD_CHAR_H17</p><p>  #defineD_OFF18</p><p>  #defineD_SET119</p><p>  #defineD_SET220</p>&l

101、t;p>  #defineD__21</p><p>  #defineD_CHAR_n22</p><p>  #defineD_CHAR_C12</p><p>  //=========================================================</p><p>  unsi

102、gned char code ledk[]={0x3f,0x06,0x5b,0x4f,0x66,0x6D,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x73,0x76,0x00,0x46,0x49,0x40,0x54}; //共陰數(shù)碼管顯示代碼</p><p>  // 0 1 2 3 4 5 6 7 8

103、 9 A B C D E F P H -| 三 - n</p><p>  //==============顯示緩存====================================================</p><p>  unsigned char disp_buf[]={0,0,0,0,

104、0,0,0,0,0,0,0,0};</p><p>  unsigned char nian,yue,ri,shi,fen,miao;</p><p>  unsigned char alarm_shi;alarm_fen;</p><p>  unsigned char wendu;</p><p>  unsigned char main

105、_TM=0;</p><p>  //==============系統(tǒng)標(biāo)志====================================================</p><p>  unsigned char r_flag=0,clock_ctr=0;</p><p>  //====================================

106、=====================================</p><p>  unsigned char SEC_SCAN_MODE = 0;//秒鐘顯示模式</p><p>  unsigned char key_cval;</p><p>  unsigned char mode=0;</p><p>  uns

107、igned int key_dn_cnt,key_up_cnt,second_cnt=0,time_cnt;</p><p>  #include"source\delay.c"</p><p>  #include"DS1302\DS1302.h"</p><p>  #include"source\display

108、.c"</p><p>  #include"source\function.c"</p><p>  #include"source\ReadKeyBoard.c"</p><p>  #include"18B20\18B20source.c"</p><p>  //=

109、========================================================================</p><p>  //IO口初使化</p><p>  //Author: Danker3</p><p>  //Date: 2012.11.29</p><p>  //=======

110、==================================================================</p><p>  void init_IO()</p><p><b>  {</b></p><p><b>  P0=0xFF;</b></p><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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論