版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> 本科畢業(yè)設(shè)計(論文)</p><p><b> ( 屆)</b></p><p> 論文題目 基于單片機(jī)的液晶顯示數(shù)字鐘設(shè)計</p><p> (英文) Design on LCD Digital Clock Based on MCU</p><p> 所在學(xué)院 電子信息學(xué)院
2、 </p><p> 專業(yè)班級 電子信息工程 </p><p> 學(xué)生姓名 學(xué)號 </p><p> 指導(dǎo)教師 職稱 </p><p> 完成日期 年 月 日<
3、/p><p><b> 摘 要</b></p><p> 數(shù)字鐘是一種數(shù)字顯示的計時裝置。隨著生活節(jié)奏的加快,人們的時間觀也日益增強(qiáng),多功能數(shù)字鐘的作用也就越來越明顯,而隨著單片機(jī)的發(fā)展越來越快,特別是在小型的嵌入式系統(tǒng)的應(yīng)用優(yōu)勢也越來越強(qiáng)。因此,本次設(shè)計的多功能數(shù)字鐘以STC89C51單片機(jī)為核心,以達(dá)拉斯公司生產(chǎn)的時鐘芯片DS1302為時鐘源,外圍擴(kuò)展數(shù)字溫度傳
4、感器用來采集環(huán)境溫度,LCD顯示等相關(guān)電路作為系統(tǒng)硬件架構(gòu),同時在硬件架構(gòu)的基礎(chǔ)上,給出了系統(tǒng)運(yùn)行流程圖、C語言源代碼和硬件PCB圖。</p><p> 本次設(shè)計能夠?qū)崿F(xiàn)多功能數(shù)字鐘的常規(guī)功能,顯示“時”、“分”、“秒”,環(huán)境溫度測量等功能。與傳統(tǒng)的機(jī)械鐘相比,具有更高的準(zhǔn)確率和使用壽命,相信在日常生活的應(yīng)用也將會越來越廣泛。</p><p> 關(guān)鍵詞:數(shù)字鐘;STC89C51;時鐘芯
5、片;溫度傳感器</p><p><b> Abstract</b></p><p> Digital clock is one kind of timer devices by the digital circuit. Because of the pace of life be faster and faster,people's concept of
6、time are also increasing, and the function of digital clock be more and more obvious. With the development of MCU, especially the superiority of apply small embedded system is stronger and stronger. Therefore, this digit
7、al clock is designed by using the STC89C51 chip, DS1302, temperature sensors and LCD. The clock chip DS1302 produces from Dallas company to be t</p><p> The multi-function of digital clock is designed and r
8、ealized. It is able to display " hour", "minutes", "seconds" and temperature. Compared with the traditional mechanical clocks, it has a better accuracy rate and service life, and it will be
9、more extensive applications in daily life.</p><p> Key words: digital clock;STC89C51;clock chip;temperature sensor</p><p><b> 目 錄</b></p><p><b> 1緒論- 1 -</
10、b></p><p> 1.1數(shù)字電子鐘的背景- 1 -</p><p> 1.2數(shù)字電子鐘的意義- 1 -</p><p> 1.3數(shù)字電子鐘的應(yīng)用- 1 -</p><p> 1.4本文的章節(jié)結(jié)構(gòu)- 2 -</p><p> 2整體設(shè)計方案- 3 -</p><p>
11、; 2.1 系統(tǒng)結(jié)構(gòu)- 3 -</p><p> 2.2單片機(jī)的歷史和發(fā)展概況- 3 -</p><p> 2.3 主控電路及單片機(jī)的選擇- 5 -</p><p> 2.4 時鐘電路- 8 -</p><p> 2.5溫度采集單元- 8 -</p><p> 2.6顯示單元- 8 -</
12、p><p> 2.7電源處理單元- 8 -</p><p> 3多功能數(shù)字鐘的硬件設(shè)計- 9 -</p><p> 3.1單片機(jī)最小系統(tǒng)設(shè)計- 9 -</p><p> 3.1.1系統(tǒng)時鐘電路- 10 -</p><p> 3.1.2復(fù)位電路- 10 -</p><p> 3.
13、2時鐘電路- 10 -</p><p> 3.3溫度采集單元- 12 -</p><p> 3.4顯示單元- 13 -</p><p> 3.5電源處理單元- 15 -</p><p> 4系統(tǒng)軟件實(shí)現(xiàn)- 16 -</p><p> 4.1系統(tǒng)軟件實(shí)現(xiàn)流程圖- 16 -</p>&l
14、t;p> 4.2 主程序- 17 -</p><p> 4.3 LCD初始化函數(shù)- 19 -</p><p> 4.4時鐘芯片初始化函數(shù)- 20 -</p><p> 4.5時間顯示函數(shù)- 21 -</p><p> 4.6溫度顯示函數(shù)- 24 -</p><p> 4.7讀取溫度函數(shù)-
15、25 -</p><p> 4.8讀取時間函數(shù)- 26 -</p><p> 4.9調(diào)試與分析- 28 -</p><p> 5總結(jié)- 29 -</p><p><b> 致謝- 30 -</b></p><p> 參考文獻(xiàn)- 31 -</p><p>
16、 附錄1 電路原理圖- 32 -</p><p> 附錄2 PCB圖- 33 -</p><p> 附錄3 PCB3D圖- 34 -</p><p><b> 1緒論</b></p><p> 1.1數(shù)字電子鐘的背景 </p><p> 新的世紀(jì),科技得到了迅速的發(fā)展,尤
17、其是電子技術(shù)更是日新月異,而現(xiàn)在生活中各種電子產(chǎn)品無處不在,大大的推動了社會信息化的高速發(fā)展[1]。</p><p> 目前,單片機(jī)正朝著高性能和多品種方向發(fā)展趨勢將是進(jìn)一步向著CMOS化、低功耗、小體積、大容量、高性能、低價格和外圍電路內(nèi)裝化等幾個方面發(fā)展。下面是單片機(jī)的主要發(fā)展趨勢。單片機(jī)在科技和生活中有很大的意義之處,改變了傳統(tǒng)意義上的控制系統(tǒng)設(shè)計思想和設(shè)計方法[2]。使我們由從前的模擬電路或數(shù)字電路實(shí)現(xiàn)
18、轉(zhuǎn)變成用單片機(jī)通過軟件方法來實(shí)現(xiàn)了。從而使我們由原來的硬件控制技術(shù)走向了用軟件控制技術(shù),是控制技術(shù)新的一次重大改變。</p><p> 單片機(jī)模塊中最常見的是數(shù)字鐘,數(shù)字鐘是一種用數(shù)字電路技術(shù)實(shí)現(xiàn)時、分、秒計時的裝置,與機(jī)械式時鐘相比具有更高的準(zhǔn)確性和直觀性,且無機(jī)械裝置,具有更更長的使用壽命,因此得到了廣泛的使用[3]。</p><p> 1.2數(shù)字電子鐘的意義</p>
19、<p> 數(shù)字鐘是采用數(shù)字電路實(shí)現(xiàn)對時,分,秒.而我們在生活中廣泛使用數(shù)字顯示的計時裝置,常用于家庭,工廠,辦公室等地方,是我們?nèi)粘I詈蛯W(xué)習(xí)中不可缺少的。由于科技的高速發(fā)展,我們的數(shù)字集成電路和石英晶體振蕩器在我們生活和學(xué)習(xí)中得到了廣泛應(yīng)用,其最新的數(shù)字鐘的精度和功能,大大超過老式鐘表各種功能。而數(shù)字鐘的由從前鐘表單一報時功能從走多功能發(fā)展趨勢,使我們的生活和學(xué)習(xí)帶來了很大的便利[4]。比如人們常用到的定時自動報警、自動
20、起閉路燈等功能在我們生活得到廣泛的了利用。而這些都是以鐘表數(shù)字化為基礎(chǔ)的而發(fā)展起來。因此,人們更加深入的研究和探討數(shù)字鐘,有著不平凡的意義所在。</p><p> 1.3數(shù)字電子鐘的應(yīng)用 </p><p> 數(shù)字鐘已成為人們?nèi)粘I钪校罕夭豢缮俚谋匦杵罚瑥V泛用于個人家庭以及車站、碼頭、劇場、辦公室等公共場所,給人們的生活、學(xué)習(xí)、工作、娛樂帶來極大的方便。由于數(shù)字集成電路技術(shù)的發(fā)展和采用
21、了先進(jìn)的石英技術(shù),使數(shù)字鐘具有走時準(zhǔn)確、性能穩(wěn)定、攜帶方便等優(yōu)點(diǎn),它還用于計時、自動報時及自動控制等各個領(lǐng)域[5]。</p><p> 1.4本文的章節(jié)結(jié)構(gòu) </p><p> 本文設(shè)計了一種基于單片機(jī)的多功能數(shù)字鐘,按照設(shè)計思路,本文共分五個部分:</p><p> 第一部分:緒論。主要表述本文的研究背景,研究的意義和應(yīng)用。</p><p
22、> 第二部分:對整體設(shè)計方案進(jìn)行說明。</p><p> 第三部分:硬件電路設(shè)計(主要以STC89C51RC單片機(jī)作為核心,設(shè)計最小單片機(jī)系統(tǒng)等)。</p><p> 第四部分:軟件實(shí)現(xiàn)原理(使用keil51編譯器,并且在其軟件下進(jìn)行程序編譯及仿真調(diào)試)。</p><p> 第五部分:總結(jié)本論文所做的工作和對該課題的展望,以及整個系統(tǒng)設(shè)計中遇到的問題和
23、解決辦法。</p><p><b> 2整體設(shè)計方案</b></p><p><b> 2.1 系統(tǒng)結(jié)構(gòu)</b></p><p> 系統(tǒng)由單片機(jī)主控單元、時鐘電路、溫度采集單元、LCD顯示單元,電源處理單元五大部分組成。</p><p> 圖2-1系統(tǒng)結(jié)構(gòu)框圖</p><
24、p> 主控單元我們采用宏晶科技的MCS51內(nèi)核8位單片機(jī)STC89C51RC作為系統(tǒng)核心,下面我們針對51系列單片機(jī)作下簡要介紹:</p><p> 2.2單片機(jī)的歷史和發(fā)展概況 </p><p> 人們通常講的單片機(jī)是指單片微型計算機(jī),是常見的典型嵌入式微控制器(Microcontroller Unit),我們通常用MCU三個英語字母縮寫表示單片機(jī),而單片機(jī)很早就被人用于
25、工業(yè)各種領(lǐng)域。由其是單片機(jī)在控制領(lǐng)域得到了廣泛應(yīng)用,為使更多的業(yè)內(nèi)人士、學(xué)生、愛好者,產(chǎn)品開發(fā)人員掌握單片機(jī)這門技術(shù),于是產(chǎn)生單片機(jī)開發(fā)板。當(dāng)時為了使計算系統(tǒng)變得更小,從而改變計算機(jī)因體積原因而無法使集成電路復(fù)雜化。人們通過設(shè)計,使大量的外圍設(shè)備與CPU集成在一個芯片當(dāng)中[6]。于是人們發(fā)明了INTEL的Z80處理器。于是日后,單片機(jī)和專用處理器朝著不同方向而發(fā)展。</p><p> 剛開始的單片機(jī)都是4位或8
26、位的。而其中INTEL的8031因?yàn)槠湫阅苁址€(wěn)定并且功能卓越得到廣大的好評,使其大獲成功。此后人們在8031的基礎(chǔ)上人們發(fā)明了MCS51系列的單片機(jī)系統(tǒng)。并且這種單片機(jī)系統(tǒng)一直沿用至今。然后隨著人們對工業(yè)控制領(lǐng)域要求不斷的提高,單片機(jī)出現(xiàn)了16位功能,尤其但是條件原因,性價比不是很高沒有在工業(yè)得到廣泛的應(yīng)用。然后隨著時代的發(fā)展,人們對消費(fèi)電子產(chǎn)品需求量大增,在90年代之后,單片機(jī)的各項(xiàng)技術(shù)突飛猛進(jìn),得到了迅速的發(fā)展和提高。之后擁有32
27、位的ARM系統(tǒng)單片機(jī)迅速取代16位單片機(jī)的市場地方,并且進(jìn)入主流市場。而傳統(tǒng)的8位單片機(jī)的性能也得到了飛速提高,處理能力比起80年代提高了數(shù)百倍。目前,人們使用高端32位單片機(jī)主頻都已經(jīng)在300MHz之上,而其性能和功能更是可以和90年代中期的專用處理器相比媲美。隨著工業(yè)的發(fā)展,單片機(jī)的價格越發(fā)便宜,一般普通的型號價格1美元左右,其最高端的型號一般也只有10美元左右。而隨著單片機(jī)的功能和性能的發(fā)展,現(xiàn)在人們已經(jīng)不會在裸機(jī)環(huán)境下使用和開發(fā)
28、研究,而大量專用的嵌入式操作系統(tǒng)更是被廣泛應(yīng)用與全系列的單片機(jī)上。而現(xiàn)在最高端的單片機(jī)能直接使</p><p> 經(jīng)過人們長期研究,相比專用處理器,人們發(fā)現(xiàn)單片機(jī)更加適用于嵌入式系統(tǒng),所以它得到更加廣泛的使用和應(yīng)用。實(shí)際上世界上數(shù)量最多的計算機(jī)就是單片機(jī)。而21世紀(jì)人類的生活中幾乎所以的電子和機(jī)械產(chǎn)品中都會使用集成單片機(jī)。比如我們常用的移動手機(jī)、固定電話、電腦等各類配件中,基本都配有1-3個單片機(jī)。而在一些復(fù)雜
29、的工業(yè)控制系統(tǒng)上,可能會有數(shù)百甚至上千臺單片機(jī)在同時運(yùn)行工作!目前,單片機(jī)的數(shù)量早已經(jīng)遠(yuǎn)遠(yuǎn)超過PC機(jī)和其它各類計算數(shù)量的總和,甚至比人類人口數(shù)量還要多。</p><p> 我們通常稱單片機(jī)為單片微控制器,它不是為了完成某個邏輯功能的芯片,而是把一個計算機(jī)系統(tǒng)集成在這個芯片上,使其性能和功能與一個微型的計算機(jī)相差無異。然后單片機(jī)和普通計算機(jī)相比較,單片機(jī)只是缺少了I/O設(shè)備??傮w上來講:一塊芯片能就成了一臺微型計
30、算機(jī)。因?yàn)閱纹瑱C(jī)不僅價格便宜,而且質(zhì)量輕,體積小。從而使人們在研究、學(xué)習(xí)、開發(fā)中提供了許多有利的條件。并且,通過學(xué)習(xí)和使用單片機(jī),能使我們更加的了解和明白計算機(jī)原理和結(jié)構(gòu)[7]。</p><p> 單片機(jī)內(nèi)部也有許多電腦功能類似的模塊。例如像電腦一樣的CPU,內(nèi)存,并行總線,跟硬盤作用大致相同的存儲器件。當(dāng)然它們之間也有許多的不同之處,雖然單片機(jī)的這些部件性能和功能比普通的電腦弱很多,但是單片機(jī)的價格十分的低廉
31、,一般在10元左右,但是其功能和性能還是十分卓越,用它來做一些不是特別復(fù)雜的電器工作已經(jīng)足夠了。我們現(xiàn)在用的全自動滾筒洗衣機(jī)、排煙罩、VCD等等的家電里面都可以看到它的身影,而其控制部分的核心部件就是單片機(jī)。</p><p> 單片機(jī)的程序不僅可以運(yùn)行,并且可以根據(jù)人們的需求進(jìn)行修改。根據(jù)所想的功能人們寫出不同的程序來實(shí)現(xiàn)。當(dāng)人們遇到需要一些特殊的功能,這時如果用別的普通器件可能需要花費(fèi)很多的力氣和時間,而其不
32、一定能做成。然后我們使用單片機(jī),其結(jié)果就會有天壤之別。只因?yàn)閱纹瑱C(jī)是通過我們編寫的程序可以實(shí)現(xiàn)高智能,高效率,以及高可靠性。</p><p> 2.3 主控電路及單片機(jī)的選擇 </p><p> 微型計算機(jī)有一個重要分支就是單片機(jī)微型計算機(jī)。而我們通常說的單片機(jī)其實(shí)單片機(jī)微型計算機(jī)簡稱,常常被人們用于控制領(lǐng)域,所以又叫做微控制器。</p><p> 通常,單片
33、機(jī)一般會由一塊集成電路芯片而構(gòu)成,但是其內(nèi)部卻含有一般計算機(jī)的基本功能部件。例如:I/O接口電路、存儲器和中央處理器等[8]。所以,一般的單片機(jī)只需要外部設(shè)備和適當(dāng)?shù)能浖嘟Y(jié)合,就能成為一個單片機(jī)控制系統(tǒng)。</p><p> 隨著單片機(jī)經(jīng)過1、2、3、4代的發(fā)展,單片機(jī)正朝著多功能、高性能、低電壓、低功耗、低價格、大存儲容量、強(qiáng)I/O功能及較好的結(jié)構(gòu)兼容性方向發(fā)展。其發(fā)展趨勢不外乎以下幾個方面:</p&g
34、t;<p><b> 1、多功能</b></p><p> 單片機(jī)中盡可能地把所需要的I/O口和存儲器都集成在一塊芯片上,使得單片機(jī)可以實(shí)現(xiàn)更多的功能。比如A/D、PWM、PCA(可編程計數(shù)器陣列)、WDT(監(jiān)視定時器---看門狗)、高速I/O口及計數(shù)器的捕獲/比較邏輯等。</p><p> 有的單片機(jī)針對某一個應(yīng)用領(lǐng)域,集成了相關(guān)的控制設(shè)備,以減
35、少應(yīng)用系統(tǒng)的芯片數(shù)量。例如,有的芯片以51內(nèi)核為核心,集成了USB控制器、SMART CARD接口、MP3解碼器、CAN或者I*I*C總線控制器等,LED、LCD或VFD顯示驅(qū)動器也開始集成在8位單片機(jī)中。</p><p><b> 2、高效率和高性能</b></p><p> 為了提高執(zhí)行速度和執(zhí)行效率,單片機(jī)開始使用RISC、流水線和DSP的設(shè)計技術(shù),使單片機(jī)
36、的性能有了明顯的提高,表現(xiàn)為:單片機(jī)的時鐘頻率得到提高;同樣頻率的單片機(jī)運(yùn)行效率也有了很大的提升;由于集成度的提高,單片機(jī)的尋址能力、片內(nèi)ROM(FLASH)和RAM的容量都突破了以往的數(shù)量和限制。</p><p> 由于系統(tǒng)資源和系統(tǒng)復(fù)雜程度的增加,開始使用高級語言(如C語言)來開發(fā)單片機(jī)的程序[9]。使用高級語言可以降低開發(fā) 難度,縮短開發(fā)周期,增強(qiáng)軟件的可讀性和可移植性,便于改進(jìn)和擴(kuò)充功能。</p&
37、gt;<p><b> 3、低電壓和低功耗</b></p><p> 單片機(jī)的嵌入式應(yīng)用決定了低電壓和低功耗的特性十分重要。由于CMOS等工藝的大量采用,很多單片機(jī)可以在更低的電壓下工作(1.2V或0.9V),功耗已經(jīng)降低到uA級。這些特性使得單片機(jī)系統(tǒng)可以在更小電源的支持下工作更長的時間。</p><p><b> 4、低價格</
38、b></p><p> 單片機(jī)應(yīng)用面廣,使用數(shù)量大,帶來的直接好處就是成本的降低。目前世界各大公司為了提高競爭力,在提高單片機(jī)性能的同時,十分注意降低其產(chǎn)品的價格。</p><p> 下面大致介紹一下單片機(jī)的主要應(yīng)用領(lǐng)域和特點(diǎn)。</p><p><b> (1)家用電器領(lǐng)域</b></p><p> 用單片
39、機(jī)控制系統(tǒng)取代傳統(tǒng)的模擬和數(shù)字控制電路,使家用電器(如洗衣機(jī)、空調(diào)、冰箱、微波爐、和電視機(jī)等)功能更完善,更加智能化和易于使用。</p><p> (2)辦公自動化領(lǐng)域</p><p> 單片機(jī)作為嵌入式系統(tǒng)廣泛應(yīng)用于現(xiàn)代辦公設(shè)備,如計算機(jī)的鍵盤、磁盤驅(qū)動、打印機(jī)、復(fù)印機(jī)、電話機(jī)和傳真機(jī)等。</p><p><b> ?。?)商業(yè)應(yīng)用領(lǐng)域</b&
40、gt;</p><p> 商業(yè)應(yīng)用系統(tǒng)部分與家用和辦公應(yīng)用系統(tǒng)相似,但更加注重設(shè)備的穩(wěn)定性、可靠性和安全性。商用系統(tǒng)中廣泛使用的電子計量儀器、收款機(jī)、條形碼閱讀器、安全監(jiān)測系統(tǒng)、空氣調(diào)節(jié)系統(tǒng)和冷凍保鮮系統(tǒng)等,都采用了單片機(jī)構(gòu)成的專用系統(tǒng)。與通用計算機(jī)相比,這些系統(tǒng)由于比較封閉,可以更有效地防止病毒和電磁干擾等,可靠性更高。</p><p><b> ?。?)工業(yè)自動化</
41、b></p><p> 在工業(yè)控制和機(jī)電一體化控制系統(tǒng)中,除了采用工控計算機(jī)外,很多都是以單片機(jī)為核心的單片機(jī)和多機(jī)系統(tǒng)。</p><p> ?。?)智能儀表與集成智能傳感器</p><p> 目前在各種電氣測量儀表中普遍采用了單片機(jī)應(yīng)用系統(tǒng)來代替?zhèn)鹘y(tǒng)的測量系統(tǒng),使得測量系統(tǒng)具有存儲、數(shù)據(jù)處理、查詢及聯(lián)網(wǎng)等智能功能。將單片機(jī)和傳感器相結(jié)合,可以構(gòu)成新一代的
42、智能傳感器。它將傳感器變換后的物理量作進(jìn)一步的變化和處理,使其成為數(shù)字信號,可以遠(yuǎn)距離傳輸并與計算機(jī)接口。</p><p> ?。?)現(xiàn)代交通與航空航天領(lǐng)域</p><p> 通常應(yīng)用于電子綜合顯示系統(tǒng)、動力監(jiān)控系統(tǒng)、自動駕駛系統(tǒng)、通信系統(tǒng)以及運(yùn)行監(jiān)視系統(tǒng)等。這些領(lǐng)域?qū)w積、功耗、穩(wěn)定性和實(shí)時性的要求往往比商用系統(tǒng)還要高,因此采用單片機(jī)系統(tǒng)更加重要。</p><p&g
43、t; 目前,我國生產(chǎn)很多型號的單片機(jī),在此,我們采用型號為STC89C51RC的單片機(jī)。因?yàn)椋篠TC89C51RC是一個低電壓,高性能單片機(jī),與其他單片機(jī)不同的是STC系列單片機(jī)在,低功耗,可靠性,抗干擾方面做的非常不錯。下面介紹一下STC89C51RC內(nèi)部資源及特點(diǎn)</p><p> STC89C51RC系列單片機(jī)是兼容8051內(nèi)核的單片機(jī),是低功耗、高速度的新一代8051單片機(jī),其6時鐘/機(jī)器周期和12/
44、時鐘機(jī)器周期可以被人們反復(fù)進(jìn)行設(shè)置和利用。 </p><p><b> 特點(diǎn):</b></p><p> 增強(qiáng)型6 時鐘/機(jī)器周期,12時鐘/機(jī)器周期;</p><p> 工作電壓:5.5V - 3.4V(5V 單片機(jī)) / 3.8V - 2.0V(3V 單片機(jī));</p><p> 3. STC89C51RC單
45、片機(jī)的頻率范圍:0-40MHz,相當(dāng)于普通8051單片機(jī)的0~80MHz.實(shí)際工作頻率最高可達(dá)48MHz;</p><p> 4. 用戶的應(yīng)用程序一般需要空間4K字節(jié);</p><p> 5. 片上集成 512 字節(jié) RAM;</p><p> 6. 通用I/O 口(32/36 個),復(fù)位后為: P1/P2/P3/P4 是準(zhǔn)雙向口/ 弱上拉(一般的8051單片
46、機(jī)的傳統(tǒng)I/O 口)P0 口則是開漏輸出,而用作總線擴(kuò)展用時,不需要加上拉電阻,當(dāng)作為I/O 口用時,則需加上拉電阻;</p><p> 7 .IAP是應(yīng)用編程,ISP是在系統(tǒng)編程,不需專用的編程器;</p><p> 8. EEPROM 功能;</p><p><b> 9. 看門狗;</b></p><p>
47、 10. STC89C51RC單片機(jī)的內(nèi)部集成了MAX810專用復(fù)位的電路(D 版本才有),一般當(dāng)外部的晶體在20M以下的時候可省外部復(fù)位的電路;</p><p> 11. STC89C51RC單片機(jī)一共有3 個16 位定時器/ 計數(shù)器;</p><p> 12. STC89C51RC單片機(jī)外部一有2路中斷,低電平觸發(fā)中斷和下降沿中斷,而Power Down 模式可由外部中斷低電平觸發(fā)
48、中斷方式喚醒;</p><p> 13. 通用異步串行口(UART);</p><p> 14.工作溫度范圍: 0 - 75℃ / -40 - +85℃;</p><p> 15.封裝: PDIP-40,PLCC-44,PQFP-44。</p><p><b> 2.4 時鐘電路</b></p>&
49、lt;p> 系統(tǒng)顯示的時間信息要達(dá)到高精度要求,采用單片機(jī)內(nèi)部的定時器往往是不夠的。所以此次擴(kuò)展了一塊時鐘芯片作為時間源[10]。作為數(shù)字鐘的標(biāo)準(zhǔn)時間源,低功耗和高精度是選擇時鐘IC最關(guān)鍵的兩個因素,此次選用美國達(dá)拉斯公司推出的高性能低功耗的實(shí)時時鐘芯片DS1302[11]。結(jié)合合理的電路設(shè)計,可以實(shí)現(xiàn)不間斷時鐘,即使斷電也能保證時間正確的走時。</p><p><b> 2.5溫度采集單元&
50、lt;/b></p><p> 環(huán)境溫度是影響人們生活最重要的因素,一般大多數(shù)數(shù)字鐘都只有顯示時間功能,這里我們擴(kuò)展了溫度顯示功能,溫度傳感器采用達(dá)拉斯的單線式數(shù)字溫度傳感器DS18B20,這樣省去了常規(guī)的模擬溫度傳感器AD采樣等相關(guān)電路[12]。</p><p><b> 2.6顯示單元</b></p><p> 數(shù)字鐘的主要目的
51、就是將數(shù)據(jù)時間信息和溫度信息直觀的顯示出來,此次使用的是LCD1602作為顯示終端。</p><p><b> 2.7電源處理單元</b></p><p> 由于硬件電路采用單片機(jī)實(shí)驗(yàn)板,電源來自于電腦USB取電,所以基本上不用對電源進(jìn)行處理。</p><p> 3多功能數(shù)字鐘的硬件設(shè)計</p><p> 3.1
52、單片機(jī)最小系統(tǒng)設(shè)計</p><p> 單片機(jī)最小系統(tǒng)主要以STC89C51RC單片機(jī)作為核心,再附帶一些使單片機(jī)能夠運(yùn)行的最小資源,主要包括時鐘電路、復(fù)位電路和擴(kuò)展接口電路等部分,其結(jié)構(gòu)如下圖所示:</p><p> 圖3-1單片機(jī)最小系統(tǒng)原理圖</p><p><b> 主控單元電路如下:</b></p><p>
53、; 圖3-2單片機(jī)最小系統(tǒng)</p><p> 3.1.1系統(tǒng)時鐘電路</p><p> 如圖3-2所示,Y1為晶體振蕩器,提供單片機(jī)工作所需要的時鐘,由于實(shí)驗(yàn)板可能用到串口通信,為了保證波特率的準(zhǔn)確性我們采用11.0592M晶振,當(dāng)單片機(jī)串口工作在方式1的時候,假設(shè)需要設(shè)置9600波特率,波特率=fosc/(32×(65536-RCAP2H,RCAP2L)),晶振頻率是11
54、.0592×106 HZ,代入運(yùn)算得RCAP2H=0xff,RCAP2L=0xdc,假設(shè)使用12×106 HZ晶振, RCAP2H、RCAP2L均得不到一個整數(shù),所以當(dāng)使用串口時,晶振頻率對通信誤差起著決定性作用,誤差太大容易造成傳輸誤差、誤碼。電路中C7和C8起到幫助晶振起振的作用。</p><p><b> 3.1.2復(fù)位電路</b></p><
55、p> 在單片機(jī)系統(tǒng)中,一般需要一個硬件復(fù)位電路,用于用戶的手動復(fù)位而51單片機(jī)是高電平復(fù)位有效,常用的復(fù)位電路由一個電阻、一個電容,其原理圖如上圖所示,RST按鍵是單片機(jī)的手動復(fù)位,其中R1的作用是限流。上電復(fù)位,R2和C7組成單片機(jī)的上電復(fù)位電路,當(dāng)給系統(tǒng)上電時,由于電容兩端電壓不能突變,所以C7的正極=VCC,負(fù)極也=VCC,電容開始充電,充電電流接近無窮大,電阻上的電壓≈VCC,單片機(jī)即復(fù)位,當(dāng)單片機(jī)運(yùn)行時單片機(jī)9腳復(fù)位引
56、腳是低電平,因?yàn)殡娙荻艘呀?jīng)充滿了電,充電電流≈0,電阻上基本上沒有壓降,單片機(jī)不會復(fù)位。此時需要手動復(fù)位即要把9腳電平拉高,按鍵S1按下去即可把9腳拉到VCC,但是C7上充滿了VCC的電荷,如果沒有R1,相當(dāng)于將C7短路,可能造成拉弧現(xiàn)象,影響單片機(jī)正常復(fù)位,同時火花也會時按鍵彈片發(fā)熱燒黑,時間久了便會出現(xiàn)接觸不良。電源使用5V直流電源,電源部分后面會具體介紹,RP1為8位的10K排阻,給P0口提供上拉,因?yàn)镻0口是單片機(jī)的數(shù)據(jù)總線地址
57、總線復(fù)用口,所以是集電極開路結(jié)構(gòu),這里是作為IO口使用,所以需要加上拉電阻。</p><p> 3.2時鐘電路 </p><p> 此次設(shè)計選用的DS1302時鐘芯片具有高性能、低功耗等性能。附加31字節(jié)靜態(tài)RAM,采用的是CPU與SPI三線接口同步通信,而且可使用突發(fā)方式一次傳送RAM數(shù)據(jù)和多個字節(jié)的時鐘信號。此實(shí)時時鐘可以提供年、月、星期、日、時、分、秒,并且當(dāng)遇到一個小月時
58、可以與31天時進(jìn)行自動調(diào)整,并且具有閏年的補(bǔ)償功能。其時鐘的工作電壓范圍在2.5~5.5V。采用的是雙電源供電(備用電源和主電源),而備用電源的充電方式我們可以進(jìn)行設(shè)置。DS1302時鐘芯片的外部引腳分配如圖3-3所示及內(nèi)部結(jié)構(gòu)如圖3-4所示。</p><p> 圖3-3 DS1302引腳圖</p><p> 圖3-4 DS1302內(nèi)部結(jié)構(gòu)</p><p>
59、 ?。?)DS1302各引腳的功能: </p><p> Vcc1:主要電源;Vcc2:備用電源。當(dāng)Vcc2>Vcc1+0.2V時,由Vcc2會向DS1302進(jìn)行供電,而當(dāng)Vcc2< Vcc1時,由Vcc1則向DS1302進(jìn)行供電。 </p><p> SCLK:串行時鐘,輸入,控制數(shù)據(jù)的輸入與輸出; </p><p> I/O:是三線接口時的雙向
60、數(shù)據(jù)線; </p><p> CE:輸入信號,在寫和讀的數(shù)據(jù)期間,必須為高。而這個引腳有兩個重要作用:第一,CE開始控制字訪問移位寄存器的控制邏輯;其次,CE提供結(jié)束單字節(jié)多字節(jié)或單字節(jié)數(shù)據(jù)傳輸?shù)姆椒ā?</p><p> ?。?)DS1302的幾組寄存器: </p><p> DS1302有關(guān)的日歷、時間寄存器共有12個,其中有7個寄存器(讀時81h~8Dh,
61、寫時80h~8Ch),存放的數(shù)據(jù)格式為BCD碼形式,如圖3-5所示。</p><p> 圖3-5 DS1302有關(guān)日歷、時間的寄存器</p><p><b> ?。?)電路結(jié)構(gòu)</b></p><p> 圖3-6時鐘電路電路原理圖</p><p> 電路中VCC是主電源,BT0是3V紐扣電池,當(dāng)主電源斷電后,紐扣
62、電池自動切入給時鐘IC,保證時間不停的運(yùn)轉(zhuǎn),第二次上電時只要單片機(jī)讀取時鐘IC的時間數(shù)據(jù)即可顯示當(dāng)前的時間。</p><p> 3.3溫度采集單元 </p><p> 溫度傳感器主要用以采集環(huán)境當(dāng)前溫度,方便簡潔的設(shè)計對于系統(tǒng)軟件結(jié)構(gòu)也是非常有利的,此次選用極具代表性的數(shù)字溫度傳感器DS18B20具有體積小、適用電壓范圍更大、經(jīng)濟(jì)實(shí)惠等有點(diǎn)。而DS18B20更是具有“一線總線”的功能
63、。“一線總線”具有經(jīng)濟(jì)并且獨(dú)特等特點(diǎn),讓用戶可以很容易的組建起傳感器網(wǎng)絡(luò),為新的測量系統(tǒng)的構(gòu)建引入一種全新的概念。DS18B20測量的溫度為 -55℃~+125℃,當(dāng)測量溫度在-10~+85℃范圍時,其精度在±0.5℃。而現(xiàn)場溫度會以“一線總線”的數(shù)字方式傳輸,從而提高了系統(tǒng)的抗干擾性。常常用在比較環(huán)境惡劣的現(xiàn)場溫度測量。比如:環(huán)境控制和測溫類消費(fèi)電子產(chǎn)品等。相比之前的產(chǎn)品,新的產(chǎn)品可以在3~5.5V的電壓范圍內(nèi)正常工作,而系
64、統(tǒng)設(shè)計更靈活、方便。并且價格低廉,體積更小。 DS18B20可以根據(jù)程序的設(shè)定使其分辨率在9~12位,精確度在±0.5℃。并且能在更小的封裝里面,電壓范圍更寬。當(dāng)分辨率進(jìn)行設(shè)定,以及用戶設(shè)定的報警溫度存儲在EEPROM中之后,即使拔掉電源其依然可以保存。DS18B20不僅價格便宜而且性格卓越,所以在新一代產(chǎn)品用廣泛的應(yīng)用。</p><p> DS18B20四個內(nèi)部結(jié)構(gòu)組成: TL配置寄存器、非揮發(fā)的溫
65、度報警觸發(fā)器TH、溫度傳感器和64位光刻ROM。DS18B20的管腳排列如圖3-7。</p><p> 圖3-7 溫度傳感器電路圖</p><p><b> 3.4顯示單元</b></p><p> 為了直觀的顯示當(dāng)前溫度和時間,系統(tǒng)安排了LCD1602作為顯示顯示終端。</p><p> 圖3-8 LCD160
66、2接口圖</p><p> 下面對LCD1602作簡要介紹: </p><p> (1)LCD1602顯示器的結(jié)構(gòu):LCD1602的RAM地址映射及標(biāo)準(zhǔn)字庫表,液晶顯示模塊式一個慢顯示器件,所以在執(zhí)行每條指令之前一定要確認(rèn)模塊的忙標(biāo)志位低電平,表示不忙,否則此指令失效。要顯示字符時要先輸入顯示字符地址,也就是告訴模塊要在哪里顯示字符。</p><p> 圖3-
67、10 LCD1602的內(nèi)部顯示地址</p><p> (2)LCD1602的技術(shù)參數(shù)</p><p> 顯示容量:16×2個字符;</p><p> 芯片工作電壓范圍:4.5V-5V;</p><p> 工作電流:2mA(5V);</p><p> 字符尺寸:2.95×4.35(W
68、5;H)mm。</p><p><b> (3)引腳功能說明</b></p><p> 表3-1 LCD1602各管腳描述</p><p> R/S是數(shù)據(jù)/命令的選擇端,高電平時為數(shù)據(jù)選擇狀態(tài),低電平是命令選擇狀態(tài);</p><p> R/W是讀寫狀態(tài)選擇端,為高電平時是讀?。?、數(shù)據(jù))狀態(tài),低電平是寫入(命令
69、、數(shù)據(jù))狀態(tài);EN端為使能端,只有當(dāng)EN腳為高電平時,整個芯片才能正常運(yùn)作。</p><p><b> 基本操作時序:</b></p><p> 1 讀狀態(tài):輸入:RS=L,RW=H,EN=H,輸出:D0-D7=狀態(tài)字</p><p> ?。ㄒ话銥榱撕喕布O(shè)計,RW我們直接拉低,就是只寫,不讀狀態(tài),軟件方面作一定延時問題都不大)</
70、p><p> 2 寫指令:輸入:RS=L,RW=L, D0-D7=指令碼, EN=高脈沖,輸出:無</p><p> 3 讀數(shù)據(jù):輸入:RS=L,RW=H,EN=H,輸出:D0-D7=數(shù)據(jù)(一般比較少用)</p><p> 4 寫數(shù)據(jù):輸入:RS=L,RW=L, D0-D7=數(shù)據(jù), EN=高脈沖,輸出:無初始化操作(復(fù)位過程)</p><p&g
71、t;<b> 3.5電源處理單元</b></p><p> 全系統(tǒng)工作在+5V且功耗較低,所以采用USB電源供電即可滿足。</p><p><b> 圖3-11電源模塊</b></p><p> 芯片前級對地分別連接10uF進(jìn)行電源濾波,電路中LED指示燈用以指示電路中通電情況。</p><p&
72、gt;<b> 4系統(tǒng)軟件實(shí)現(xiàn)</b></p><p> 單片機(jī)的軟件設(shè)計通常要考慮以下幾個方面的問題:</p><p> ?。?)根據(jù)軟件功能要求,將系統(tǒng)軟件劃分為若干個相對獨(dú)立的部分,設(shè)計出來的總體結(jié)構(gòu)必須合理,并且使用軟件開發(fā)時需要清晰、簡潔和流程合理;</p><p> ?。?)編輯是需要有的良好風(fēng)格,比如思考如何結(jié)構(gòu)化程序設(shè)計、實(shí)
73、行模塊化、子程序化。這樣不僅能修改、移植,而且方便與調(diào)試、鏈接;</p><p> ?。?)努力建立一個正確的數(shù)學(xué)模型,通過實(shí)驗(yàn)的仿真,提高所需系統(tǒng)的功能和性能,并且要為其選擇合適的參數(shù);</p><p> ?。?)學(xué)會并且能出繪制程序的流程圖;</p><p> ?。?)能合理的分配系統(tǒng)中的各個資源;</p><p> ?。?)為程序加入注
74、釋,提高可讀性,實(shí)施軟件工程;</p><p> ?。?)注意軟件的抗干擾設(shè)計,提高系統(tǒng)的可靠性。</p><p> 為利于該設(shè)計的多功能的實(shí)現(xiàn)和更高的編程效率。采用c語言進(jìn)行編程。為實(shí)現(xiàn)編程結(jié)構(gòu)清晰,采用各個模塊單獨(dú)編程,最后實(shí)現(xiàn)各個模塊的綜合連接。主程序的框架由時間讀取子程序,溫度采集子程序,顯示子程序,對于溫度顯示則利用DS18B20的控制字要求嚴(yán)格編寫,DSl302的程序也按照芯
75、片的規(guī)格要求編寫。</p><p> 4.1系統(tǒng)軟件實(shí)現(xiàn)流程圖</p><p> 這次的數(shù)字電子鐘設(shè)計用到很多子程序,它們的流程圖如下所示。</p><p> 主程序先開始,然后對時鐘芯片DS1302進(jìn)行初始化,初始化完畢后進(jìn)入系統(tǒng)大循環(huán),大循環(huán)里有四個任務(wù)分別是1:顯示時間2、顯示溫度值,3、采集溫度,4、讀取時間數(shù)據(jù)。下面是主程序流程圖:</p>
76、;<p><b> 圖4-1總流程圖</b></p><p> 圖中顯示了本次多功能數(shù)字時鐘的基本功能和架構(gòu)。主要包括時間和溫度的讀取,時間和溫度的顯示。</p><p><b> 示例代碼如下:</b></p><p><b> 4.2 主程序</b></p>&
77、lt;p> /****************主程序********************/</p><p> void main(void)</p><p><b> {</b></p><p> uchar clk_time[7]={0x00,0x55,0x09,0x09,0x01,0x03,0x08}; </p>
78、;<p> //秒,分,時,日,月,星期,年寄存器初始值</p><p> uchar temp=0x80; </p><p> uchar i,j;</p><p> lcd_init();</p><p> write_1302(0x8e,0x00); //WP=0 寫操
79、作</p><p> for(i=0;i<7;i++)</p><p><b> {</b></p><p> write_1302(temp,clk_time[i]);</p><p><b> temp+=2;</b></p><p><b>
80、}</b></p><p> write_1302(0x8e,0x80); //WP=1 寫保護(hù)</p><p><b> while(1)</b></p><p><b> { </b></p><p> for(j=0;j<5;j++)<
81、/p><p><b> {</b></p><p> Sdisplay_lcd(clk_time);</p><p> Wdisplay_lcd(num);</p><p><b> }</b></p><p> temp=0x81;</p><p&
82、gt; num=DS18b20_readTemp(); </p><p> for(i=0;i<7;i++)</p><p><b> {</b></p><p> clk_time[i]=read_1302(temp);</p><p><b> temp
83、+=2;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> 主程序流程圖如圖4-1所示,單片機(jī)上電時IO的電平是不確定的,所以為了避免連接IO的外設(shè)出現(xiàn)不定狀態(tài),所以在
84、單片機(jī)上電開始運(yùn)行的時候,需要對IO進(jìn)行初始化從而初始化外擴(kuò)設(shè)備,從而不至于產(chǎn)生誤動作或亂碼顯示,如果用到其他模塊比如定時器、串口、中斷等片內(nèi)外設(shè),還需對片內(nèi)外設(shè)進(jìn)行初始化,本次沒有用到片內(nèi)外設(shè),所以不做說明,外擴(kuò)設(shè)備初始化步驟如下。</p><p> 1)變量定義,clk_time數(shù)組時定義時間數(shù)組,從DS1302讀取出來的時間信息全部存在該數(shù)組,通過LCD1602顯示函數(shù)調(diào)用該數(shù)據(jù)即可顯示時間信息。定義數(shù)組
85、時候一般都需要賦初始值,此處我們初始值是2008年星期3,1月9日,9點(diǎn)55分00秒。 temp是DS1302初始地址(秒寄存器)。</p><p> 2)LCD初始化,為了顯示不出現(xiàn)亂碼,上電后需要對LCD1602的工作模式,顯示方式,進(jìn)行設(shè)置,同時進(jìn)行清屏,具體步驟在下面初始化函數(shù)有介紹。</p><p> 3)DS1302上電時,內(nèi)部數(shù)據(jù)可能是亂的,為了走時時間準(zhǔn)確性,我需要把c
86、lk_time數(shù)組里面的時間信息寫進(jìn)去,寫進(jìn)去之前先打開寫保護(hù),寫完之后關(guān)閉寫保護(hù),從而實(shí)現(xiàn)走時過程中數(shù)據(jù)寄存器不被干擾出新亂碼。</p><p> 4)初始化完畢,進(jìn)入大循環(huán)。運(yùn)行初始化程序后大概花費(fèi)6.8ms,初始化完畢后進(jìn)入大循環(huán),大循環(huán)總共有4個任務(wù),四個任務(wù)依次運(yùn)行,1是時間顯示函數(shù);2是溫度顯示函數(shù);3是讀取溫度;4是讀取時間,具體下文有介紹,整個大循環(huán)的周期為305ms左右,相當(dāng)于1秒能夠采集3次
87、溫度和時間,完全符合實(shí)時應(yīng)用要求。下面分別對各個子程序進(jìn)行介紹:</p><p> 4.3 LCD初始化函數(shù)</p><p> /**********LCD初始化**************/</p><p> lcd_init()</p><p><b> {</b></p><p>&
88、lt;b> dula=0;</b></p><p><b> wela=0;</b></p><p> lcd_wcmd(0x38);//設(shè)置16*2顯示,5*7點(diǎn)陣,8位數(shù)據(jù)接口</p><p> delay(1);//短延時</p><p> lcd_wcmd(0x0c);//開顯示,顯示
89、光標(biāo)</p><p> delay(1); //短延時</p><p> lcd_wcmd(0x06);//光標(biāo)設(shè)置</p><p> delay(1); //短延時</p><p> lcd_wcmd(0x01);//關(guān)顯示</p><p> delay(1); //短延時</p><p
90、><b> }</b></p><p> LCD1602在工作之前需要對內(nèi)部寄存器進(jìn)行初始化操作,具體步驟如下:</p><p> 圖4-2 LCD1602初始化流程圖</p><p> 根據(jù)LCD1602初始化流程:</p><p> 首先寫指令0x38,設(shè)置16*2,5*7點(diǎn)陣的顯示模式,8位數(shù)據(jù)模式
91、;</p><p> 因?yàn)楹瘮?shù)沒有對忙標(biāo)志進(jìn)行檢測,所以每發(fā)送一條指令需要延時一下,等待內(nèi)部操作完畢,才可以響應(yīng)后面的指令delay(1);短延時函數(shù)大概軟件延時1ms,。</p><p> 寫指令0x0c,打開顯示并顯示光標(biāo)。</p><p> 寫指令0x06,光標(biāo)設(shè)置,當(dāng)讀或?qū)懸粋€字符后,地址指針自動加1,且光標(biāo)加1。</p><p&g
92、t; 寫指令0x01,數(shù)據(jù)指針清零,所有顯示清零。至此LCD1602初始化完畢。</p><p> 4.4時鐘芯片初始化函數(shù)</p><p> /******DS1302:寫入數(shù)據(jù)(先送地址,再寫數(shù)據(jù))*******/ </p><p> void write_1302(unsigned char addr,unsigned char da)</p&g
93、t;<p><b> {</b></p><p> T_RST=0; //停止工作</p><p> T_CLK=0; </p><p> T_RST=1; //重新工作</p><p> write_byte(addr);
94、 //寫入地址</p><p> write_byte(da);</p><p><b> T_RST=0;</b></p><p><b> T_CLK=1;</b></p><p><b> }</b></p><p> write_
95、1302(0x8e,0x00); //WP=0 寫操作</p><p> for(i=0;i<7;i++)</p><p><b> {</b></p><p> write_1302(temp,clk_time[i]);</p><p><b> temp+=2;<
96、/b></p><p> }//向DS1302寫入秒,分,時,日,月,星期,年寄存器初始值</p><p> write_1302(0x8e,0x80); //WP=1 寫保護(hù)</p><p> DS1302初始化函數(shù),主要需要對內(nèi)部時間信息進(jìn)行賦值,數(shù)據(jù)寫入如下:</p><p> 圖4-3 DS130
97、2數(shù)據(jù)寫入流程</p><p> 上電后,對年月日星期時分秒地址進(jìn)行賦值,完畢后DS1302即開始以設(shè)置的時間為起始值進(jìn)行走時,主程序只要不斷讀取時間值就可以了。</p><p><b> 4.5時間顯示函數(shù)</b></p><p> Sdisplay_lcd(clk_time);無返回值</p><p> 有參
98、數(shù)*poi=所要顯示的數(shù)據(jù)緩存地址指針</p><p> Sdisplay_lcd(clk_time);參數(shù)傳遞過程中等價于poi=& clk_time[0];</p><p> void Sdisplay_lcd(uchar *poi)</p><p><b> {</b></p><p> lcd_w
99、cmd(0xc7);</p><p><b> delay(1);</b></p><p> lcd_wdat(lcd_tb[*poi%16]);//顯示秒個位</p><p><b> delay(1);</b></p><p> lcd_wcmd(0xc6);</p>
100、<p><b> delay(1);</b></p><p> lcd_wdat(lcd_tb[*poi/16]);//顯示秒十位</p><p><b> delay(1);</b></p><p><b> poi++;</b></p><p>
101、 lcd_wcmd(0xc5);</p><p><b> delay(1);</b></p><p> lcd_wdat(':');</p><p><b> delay(1);</b></p><p> lcd_wcmd(0xc4);</p><
102、p><b> delay(1);</b></p><p> lcd_wdat(lcd_tb[*poi%16]);//顯示分個位</p><p><b> delay(1);</b></p><p> lcd_wcmd(0xc3);</p><p><b> delay
103、(1);</b></p><p> lcd_wdat(lcd_tb[*poi/16]);//顯示分十位</p><p><b> delay(1);</b></p><p><b> poi++;</b></p><p> lcd_wcmd(0xc2);</p>
104、<p><b> delay(1);</b></p><p> lcd_wdat(':');</p><p><b> delay(1);</b></p><p> lcd_wcmd(0xc1);</p><p><b> delay(1);&
105、lt;/b></p><p> lcd_wdat(lcd_tb[*poi%16]);//顯示時個位</p><p><b> delay(1);</b></p><p> lcd_wcmd(0xc0);</p><p><b> delay(1);</b></p>
106、<p> lcd_wdat(lcd_tb[*poi/16]);//顯示時十位</p><p><b> delay(1);</b></p><p><b> poi++;</b></p><p> lcd_wcmd(0x89);</p><p><b> dela
107、y(1);</b></p><p> lcd_wdat(lcd_tb[*poi%16]);//顯示日個位</p><p><b> delay(1);</b></p><p> lcd_wcmd(0x88);</p><p><b> delay(1);</b></p
108、><p> lcd_wdat(lcd_tb[*poi/16]);//顯示日十位</p><p><b> delay(1);</b></p><p><b> poi++;</b></p><p> lcd_wcmd(0x87);</p><p><b>
109、 delay(1);</b></p><p> lcd_wdat('/');</p><p><b> delay(1);</b></p><p> lcd_wcmd(0x86);</p><p><b> delay(1);</b></p>
110、<p> lcd_wdat(lcd_tb[*poi%16]);//顯示月個位</p><p><b> delay(1);</b></p><p> lcd_wcmd(0x85);</p><p><b> delay(1);</b></p><p> lcd_wdat(
111、lcd_tb[*poi/16]);//顯示月十位</p><p><b> delay(1);</b></p><p><b> poi++;</b></p><p> lcd_wcmd(0x8b);</p><p><b> delay(1);</b></
112、p><p> lcd_wdat('*');</p><p><b> delay(1);</b></p><p> lcd_wcmd(0x8c);</p><p><b> delay(1);</b></p><p> lcd_wdat(lcd_tb
113、[*poi%16]);//顯示星期位</p><p><b> delay(1);</b></p><p><b> poi++;</b></p><p> lcd_wcmd(0x84);</p><p><b> delay(1);</b></p>
114、<p> lcd_wdat('/');</p><p><b> delay(1);</b></p><p> lcd_wcmd(0x83);</p><p><b> delay(1);</b></p><p> lcd_wdat(lcd_tb[*poi
115、%16]);//顯示年個位</p><p><b> delay(1);</b></p><p> lcd_wcmd(0x82);</p><p><b> delay(1);</b></p><p> lcd_wdat(lcd_tb[*poi/16]);//顯示年十位</
116、p><p><b> delay(1);</b></p><p> lcd_wcmd(0x81);</p><p><b> delay(1);</b></p><p> lcd_wdat('0');//顯示年百位</p><p><b>
117、 delay(1);</b></p><p> lcd_wcmd(0x80);</p><p><b> delay(1);</b></p><p> lcd_wdat('2');//顯示年千位</p><p><b> delay(1);</b><
118、/p><p><b> }</b></p><p> 時間顯示函數(shù)程序流程如下:</p><p> 圖4-4 時間顯示流程</p><p> 顯示之前需要對起始地址進(jìn)行設(shè)置,后面寫的數(shù)據(jù)LCD1602的指針地址即會自動加1,lcd_wcmd(0xc7);,=0x80+0x47;秒十位實(shí)際顯示位置應(yīng)該是0x47,秒個位
119、是0x48,具體位置見3-10,后面的數(shù)據(jù)顯示操作類似,這里就不作冗敘。</p><p><b> 4.6溫度顯示函數(shù)</b></p><p> void Wdisplay_lcd(uint k)</p><p><b> {</b></p><p> uchar a,b,c,x;</
120、p><p><b> a=k/100;</b></p><p><b> x=k%100;</b></p><p><b> b=x/10;</b></p><p> c=x%10;//溫度值處理</p><p> lcd_wcmd(0xca);&
121、lt;/p><p><b> delay(1);</b></p><p> lcd_wdat(lcd_tb[a]);</p><p><b> delay(1);</b></p><p> lcd_wcmd(0xcb);</p><p><b> delay(
122、1);</b></p><p> lcd_wdat(lcd_tb[b]);</p><p><b> delay(1);</b></p><p> lcd_wcmd(0xcc);</p><p><b> delay(1);</b></p><p> l
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于單片機(jī)的液晶顯示數(shù)字鐘設(shè)計[任務(wù)書]
- 畢業(yè)論文--基于單片機(jī)的數(shù)字鐘設(shè)計
- 基于單片機(jī)的帶溫度顯示的數(shù)字鐘設(shè)計【畢業(yè)論文】
- 單片機(jī)課設(shè)報告基于單片機(jī)的液晶顯示畢業(yè)論文
- 單片機(jī)多功能數(shù)字鐘畢業(yè)論文
- 單片機(jī)畢業(yè)論文----多功能數(shù)字鐘
- 單片機(jī)數(shù)字鐘畢業(yè)設(shè)計---單片機(jī)設(shè)計數(shù)字鐘
- 基于單片機(jī)的數(shù)字鐘的設(shè)計與制作-畢業(yè)論文
- 畢業(yè)論文范文——基于單片機(jī)的數(shù)字鐘設(shè)計 (2)
- 畢業(yè)論文-基于單片機(jī)的數(shù)字鐘設(shè)計【精校排版】
- 畢業(yè)論文范文——基于單片機(jī)的數(shù)字鐘設(shè)計 (2)
- 基于單片機(jī)的數(shù)字鐘設(shè)計
- 基于單片機(jī)的數(shù)字鐘設(shè)計論文資料
- 畢業(yè)設(shè)計基于單片機(jī)的數(shù)字鐘設(shè)計
- 單片機(jī)的數(shù)字鐘設(shè)計
- 畢業(yè)設(shè)計---基于單片機(jī)的數(shù)字鐘的設(shè)計
- 畢業(yè)設(shè)計(論文)-基于單片機(jī)和lcd的數(shù)字鐘設(shè)計
- 電子數(shù)字鐘-單片機(jī)職業(yè)學(xué)院畢業(yè)論文
- 單片機(jī)課程設(shè)計--基于單片機(jī)數(shù)字鐘的設(shè)計
- 51單片機(jī)用1602液晶顯示數(shù)字1
評論
0/150
提交評論