版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 摘要</b></p><p> 隨著社會快速的發(fā)展,人們的生活節(jié)奏變得越來越快,人們對時間觀念也愈來愈重視。自動化、智能化技術的發(fā)展,機電產(chǎn)品的智能度愈來愈高,用到時間提示、定時控制的地方也會愈來愈多,因此,設計開發(fā)數(shù)字時鐘具有良好的應用前景。</p><p> 由于單片機價格的低成本、高性能,在自動控制產(chǎn)品中得到了廣泛的應用。本文以
2、STC89C52為核心控制芯片,DS1302為時鐘芯片,DS18B20為溫度傳感器,通過液晶顯示器AMPIRE128X64實時顯示時間及溫度,通過按鍵設置年月日和星期以及定時鬧鐘,定時鬧鐘時間到自動發(fā)出警報,應用C語言進行軟件編程,并用Altium Designer Summer 09軟件進行演示、驗證。經(jīng)過測試,系統(tǒng)可以正常完成預定的功能。</p><p> 關鍵詞:單片機 STC89C52 電子時鐘
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電子時鐘的研究背景</p><p> 單片機自1976年由Intel公司推出MCS-48開始,迄今已有二十多年了。由于單片機集成度高、功能強、可靠性高、體積小、功耗低、使用方便、價格低廉等一系列優(yōu)點,目前已經(jīng)滲入到人們工作和生
9、活的方方面面,單片機的應用領域已從面向工業(yè)控制、通訊、交通、智能儀表等迅速發(fā)展到家用消費產(chǎn)品、辦公自動化、汽車電子、PC機外圍以及網(wǎng)絡通訊等廣大領域。</p><p> 單片機有兩種基本結(jié)構:一種是在通用微型計算機中廣泛采用的,程序存儲器和數(shù)據(jù)存儲器共用一個存儲器空間的結(jié)構,稱為“馮·諾依曼”(Von Neumann)結(jié)構。另一種是將程序存儲器和數(shù)據(jù)存儲器截然分開,分別尋址的結(jié)構,稱為“哈佛”(Har
10、vard)結(jié)構,目前的單片機采用此種結(jié)構為多。</p><p> 本文討論的單片機多功能時鐘系統(tǒng)的核心是目前應用極為廣泛的51系列單片機,配置了外圍設備,構成了一個可編程的計時定時系統(tǒng),具有體積小,可靠性高,功能多等特點。不僅能滿足所需要求而且還有很多功能可供擴展,有著廣泛的應用領域。</p><p> 20世紀末,電子技術得到了極速的發(fā)展,毫無疑問,在其推動下,現(xiàn)代電子產(chǎn)品以及各種高
11、科技產(chǎn)品幾乎滲透到了社會的各個領域,這有力地推動了社會生產(chǎn)力的發(fā)展和社會信息化程度以及綜合科技水平的提高,但產(chǎn)品更新?lián)Q代的頻率也越來越快。隨著科技的發(fā)展社會的進步和全球化競爭的日益激烈,人們對數(shù)字鐘的要求也越來越高,傳統(tǒng)的時鐘已不能滿足人們的需求。多功能電子鐘不管在性能還是在樣式亦或是用途上都發(fā)生了重大的變化,許多電子鐘都已具備電子鬧鐘、電子秒表、溫度檢測等功能。同時單片機在多功能數(shù)字鐘中的應用已是非常普遍的[1]。</p>
12、<p> 多功能電子時鐘除了具有時鐘的功能外還可以包含對環(huán)境溫度檢測的功能。溫度是一種最基本的環(huán)境參數(shù)。在各個行業(yè)生產(chǎn)及日常生活中,對溫度的測量及控制始終占據(jù)著非常重要的地位。目前,典型的溫度檢測控制系統(tǒng)由模擬式溫度傳感器、A/D轉(zhuǎn)換電路和各種單片機組成。由于模擬式溫度傳感器輸出的模擬信號必須經(jīng)過A/D轉(zhuǎn)換環(huán)節(jié)轉(zhuǎn)換為數(shù)字信號后才能與單片機等微處理器接口進行讀寫的操作,所以硬件電路會比較復雜,成本較高。而以DS18B20為
13、代表的新型單線總線數(shù)字式溫度傳感器集溫度測量和A/D轉(zhuǎn)換于一體,這類傳感器可以直接輸出數(shù)字量,同時與單片機接口電路結(jié)構非常簡單,可以廣泛用于距離遠、節(jié)點分布多的場合,具有較強推廣應用價值。[2] </p><p> 數(shù)字電子時鐘是采用數(shù)字電路實現(xiàn)對時,分,秒數(shù)字顯示的裝置,廣泛用于個人家庭,車站,碼頭辦公室等公共場所,成為人們?nèi)粘I钪胁豢苫蛉钡谋匦杵?,由于?shù)字集成電路的發(fā)展和石英晶體振蕩器的廣泛應用,數(shù)字時鐘
14、的精度遠遠超過老式鐘表,鐘表的數(shù)字化給人們生產(chǎn)生活帶來了極大的方便,而且大大地擴展了鐘表原先的報時功能。例如定時自動報警、按時自動打鈴、時間程序自動控制、定時廣播、自動啟閉路燈、定時開關烘箱、通斷動力設備、甚至各種定時電器的自動啟用等,所有這些,都是以鐘表數(shù)字化為基礎的。因此,研究數(shù)字時鐘及擴大其應用,有著非常現(xiàn)實的意義。</p><p> 1.2電子時鐘的國內(nèi)外研究現(xiàn)狀</p><p>
15、; 數(shù)字電子時鐘,自從它發(fā)明的那天起,就成為人類的朋友,給人們的生活、學習、工作、娛樂帶來極大的方便。但隨著時間的推移,科學技術的不斷發(fā)展,生活節(jié)奏越來越快,競爭日益激烈,人們對時間計量的精度要求越來越高,應用越來越廣??梢哉f時間的準確已成為各行各業(yè)安全運行的基礎,如果時間出現(xiàn)誤差而不能及時校正,會造成一系列嚴重的后果和經(jīng)濟損失[3] 。 </p><p> 電子時鐘的設計方法有多種,可用中小規(guī)模集成電路組成
16、電子鐘,也可以利用專用的電子鐘芯片配以顯示電路及其所需要的外圍電路組成電子鐘,還可以利用對單片機編程來實現(xiàn)電子鐘。其中,利用單片機實現(xiàn)的電子時鐘具有硬件結(jié)構簡單、編程靈活、便于功能擴展等特點。由單片機作為數(shù)字鐘的核心控制器,可以通過它的時鐘信號實現(xiàn)計時功能,將其時間數(shù)據(jù)經(jīng)單片機輸出,利用顯示器顯示出來。通過鍵盤可以進行定時、校時功能。輸出設備顯示器可以用液晶顯示技術或者數(shù)碼管顯示技術[4]。</p><p>
17、溫度是一種最基本的環(huán)境參數(shù),日常生活和工農(nóng)業(yè)生產(chǎn)中經(jīng)常要檢測溫度。傳統(tǒng)的方式是采用熱電偶或熱電阻,但是由于模擬溫度傳感器輸出為模擬信號,必須經(jīng)過A/D 轉(zhuǎn)換環(huán)節(jié)獲得數(shù)字信號后才能與單片機等微處理器接口,使得硬件電路結(jié)構復雜,制作成本較高。近年來,美國DALLAS 公司生產(chǎn)的DSl8B20 為代表的新型單總線數(shù)字式溫度傳感器以其突出優(yōu)點廣泛使用于倉儲管理、工農(nóng)業(yè)生產(chǎn)制造、氣象觀測、科學研究以及日常生活中。DSl8B20 集溫度測量和A/D
18、 轉(zhuǎn)換于一體,直接輸出數(shù)字量,傳輸距離遠,可以很方便地實現(xiàn)多點測量,硬件電路結(jié)構簡單,與單片機接口幾乎不需要外圍元件[5]。 </p><p> 智能溫度傳感器(亦稱數(shù)字溫度傳感器)是上世紀90年代中期問世的。此類傳感器是微電子技術、計算機技術和自動測試技術的結(jié)晶。目前,國際上已開發(fā)出多種智能溫度傳感器。智能溫度傳感器內(nèi)部一般包含溫度傳感器、A/D轉(zhuǎn)換器、信號處理器、存儲器(或寄存器)和接口電路。有的產(chǎn)品還帶多
19、路選擇器、中央控制器、隨機存取存儲器和只讀存儲器。智能溫度傳感器能實時更新并輸出溫度數(shù)據(jù),適配于各種微控制器也就是通常所說的單片機(MCU),并且可通過軟件來實現(xiàn)顯示功能,其智能化取決于軟件和硬件的綜合開發(fā)水平,二者缺一不可。目前,新型溫度傳感器正從模擬式向數(shù)字式、集成化向智能化及網(wǎng)絡化的方向發(fā)展[6]。21世紀后,智能溫度傳感器毫無疑問正朝著高精度、多功能、總線標準化、高可靠性及高安全性等高科技的方向迅速發(fā)展,開發(fā)虛擬傳感器和網(wǎng)絡傳感
20、器、研制更先進的單片測溫系統(tǒng)已是刻不容緩[7]。</p><p> 在日常生活和自動控制系統(tǒng)中,我們時常會遇到對時間和溫度實時監(jiān)控的需求。這就給具有多種功能的時鐘提供了市場,也有了市場開發(fā)的前景。本文給出了一種基于單片機實現(xiàn)帶溫度檢測的電子時鐘的設計方法和實現(xiàn)過程。在日常生活和工作中,我們常常用到定時控制,如擴印過程中的曝光定時等。早期常用的一些時間控制單元都使用模擬電路設計制作的,其定時準確性和重復精度都不是
21、很理想,現(xiàn)在基本上都是基于數(shù)字技術的新一代產(chǎn)品,隨著單片機性價比的不斷提高,新一代產(chǎn)品的應用也越來越廣泛。大則可以構成復雜的工業(yè)過程控制系統(tǒng),完成復雜的控制功能;小則可以用于家電控制,甚至可以用于兒童電子玩具。它功能強大、體積小、質(zhì)量輕、靈活好用,配以適當?shù)慕涌谛酒?,可以構成各種各樣、功能各異的微電子產(chǎn)品。</p><p> 隨著電子技術的飛速發(fā)展,家用電器和辦公電子設備逐漸增多,不同的設備都有自己的控制器,使
22、用起來很不方便。這些具有人們所需要的智能化特性的產(chǎn)品減輕了人的勞動,擴大了數(shù)字化的范圍,為家庭數(shù)字化提供了可能。</p><p> 根據(jù)這種實際情況,設計了一個單片機多功能時鐘系統(tǒng),它有基本的時間功能,還有定時功能,既可作為鬧鈴,也可擴展為定時對家電等電氣產(chǎn)品的自動控制,可以避免多種控制器的混淆,利用一個控制器對多路電器進行控制;可增加溫度傳感器,進行實時溫度顯示,進一步擴展為利用不同的溫度某些電氣產(chǎn)品進行自動
23、控制;也可增加濕度傳感器,進行實時濕度顯示,以便對濕度進行控制,方便人們的生活。</p><p><b> 1.3 本章小結(jié)</b></p><p> 本章主要介紹了課題背景、設計任務和課題意義,對單片機的優(yōu)點及結(jié)構作了簡要敘述,也對本系統(tǒng)的應用及概況進行了說明。</p><p><b> 第二章 總體方案</b>&
24、lt;/p><p> 2.1 系統(tǒng)的設計思路</p><p> 本次設計完成電子時鐘年、月、日、時、分、秒的顯示及環(huán)境溫度測量等功能的基礎上完成定時鬧鐘的功能。由于DS12887時鐘芯片內(nèi)含一個鋰電池,所以斷電情況可以運行十年以上不丟失數(shù)據(jù),重新上電后不用校正時鐘。</p><p> 硬件電路包括單片機最小系統(tǒng)電路、DS12887實時時鐘芯片電路模塊、AMPIRE
25、128X64液晶顯示模塊、按鍵模塊、DS18B20溫度傳感器模塊、蜂鳴器報警電路模塊;軟件部分主要通過c程序的編程實現(xiàn)對時鐘芯片進行時間數(shù)據(jù)的讀和寫,然后通過液晶顯示程序?qū)r間顯示出來,通過按鍵操作實現(xiàn)功能的轉(zhuǎn)換和屏幕的切換。設計中結(jié)合硬件、軟件的分步調(diào)試,達到要求的控制效果。</p><p> 2.2 系統(tǒng)硬件描述</p><p> 基于單片機系統(tǒng)的電子時鐘基本結(jié)構框圖如圖2-1所示
26、:</p><p> 圖2-1 系統(tǒng)基本結(jié)構框圖</p><p> 該系統(tǒng)所需要的器件包括單片機STC89C52芯片一塊,實時時鐘芯片DS12887一塊,溫度傳感器DS18B20一塊,液晶顯示屏AMPIRE128X64一塊,雙4輸入與門芯片74LS21一塊,蜂鳴器一個,12mHZ的晶振一個,排針排線若干組,電容電阻若干,導線若干,發(fā)光二級管;溫度測量部分實現(xiàn)環(huán)境溫度測量及顯示;鍵盤部分
27、主要為時鐘和鬧鐘設置;功能整體程序流程框圖如圖2-2所示。</p><p> 2.3設計流程和預期成果</p><p> 該設計的主要流程如下:首先閱讀大量參考文獻,進行設計方案的確定,然后在Protel 99SE上進行原理圖的繪制和修改,在電氣檢查無誤的情況下,購買所需要的元器件(元器件應考慮裕量)。接著把元器件焊接到各個功能電路的模塊上,并結(jié)合程序進行調(diào)試。最后將各個功能的電路程序
28、組合起來,然后再進行總體調(diào)試直到成功。</p><p> 本設計能達到以下結(jié)果:</p><p> 1)顯示年、月、日、星期等日歷相關信息。通過按鍵設置年月日和星期,以及定時鬧鐘、俄羅斯方塊和貪吃蛇游戲等。</p><p> 2)掉電后時鐘芯片正常運行,重新上電后不用校正時鐘。</p><p> 3)定時時間到達時,蜂鳴器報警;手動按
29、任意鍵報警停止;如無人工按鍵,報警在1.5min后停止。</p><p><b> 4)實時溫度顯示。</b></p><p><b> 2.4 本章小結(jié)</b></p><p> 本章主要對本系統(tǒng)的基本功能和擴展功能進行了說明,也對本系統(tǒng)的系統(tǒng)的顯示情況及操作作了詳細說明。</p><p>
30、<b> 第三章 硬件設計</b></p><p> 3.1 硬件芯片介紹</p><p> 3.1.1 單片機STC89C52</p><p> ?。ㄒ唬㏒TC89C52功能特點[8]</p><p> STC89C52是一種帶8K字節(jié)閃爍可編程可擦除只讀存儲器的低電壓,高性能COMOS8的微處理器,俗稱單片機
31、。該器件采用ATMEL搞密度非易失存儲器制造技術制造,與工業(yè)標準的MCS-51指令集和輸出管腳相兼容。表3-1給出了其主要功能。這是一種低功耗、高性能CMOS 8位微控制器,具有8K(0000H~1FFFH)在線系統(tǒng)可編程Flash存儲器。片上Flash允許程序存儲器在線編程,也適于常規(guī)編程器。在單芯片上,擁有靈巧的8位CPU和在線系統(tǒng)可編程Flash,使得AT89C52為眾多嵌入式控制應用系統(tǒng)提供靈活、高效的解決方案。</p&g
32、t;<p> AT89C52具有以下標準功能:8K(0000H~1FFFH)Flash,256字節(jié)(00H~FFH)數(shù)據(jù)存儲器(RAM),64K(0000H~FFFFH)程序存儲器(ROM),32位I/O口線,看門狗定時器,2個數(shù)據(jù)指針,三個16位定時器/計數(shù)器,一個6向量2級中斷結(jié)構,全雙工串行口內(nèi)晶振及時鐘電路。</p><p> 其中,數(shù)據(jù)存儲器(RAM)用于存放各種運算的中間結(jié)果,作緩存
33、和數(shù)據(jù)暫存,以及設置特征標志等。AT89S52的片內(nèi)數(shù)據(jù)存儲器用位尋址方式,最大尋址范圍為256字節(jié)(00H~FFH)。按使用情況不同可分成低128字節(jié)(00H~7FH)和高128字節(jié)(80H~FFH)。其中低128字節(jié)為真正的RAM存儲器,高128字節(jié)為特殊功能寄存器(SFR)區(qū),如累加器ACC、程序狀態(tài)字PSW、數(shù)據(jù)指針DPTR、程序計數(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):復位引腳,引腳上出現(xiàn)2個機器周期的高電平將使單片機復位。</p><p> ALE/PROG(Pin30):地址鎖存允許信號</p><p> PSEN(Pin29):外部存儲器讀選通信號</p><p> EA/VPP(Pin31):程序存儲器的內(nèi)外部選通,接低電平從外部程序存儲器讀指令,如果接高電平則從內(nèi)部程序存儲器讀指令。</p
37、><p> (4)可編程輸入/輸出引腳(32根)</p><p> STC89C52單片機有4組8位的可編程I/O口,分別位P0、P1、P2、P3口,每個口有8位(8根引腳),共32根。</p><p> PO口(Pin39~Pin32):名稱為P0.0~P0.7。P0口是一個8位漏極開路的雙向I/O口。作為輸出口,每位能驅(qū)動8個TTL邏輯電平(晶體管-晶體管邏輯
38、電平)。</p><p> P1口(Pin1~Pin8):名稱為P1.0~P1.7。P1 口是一個具有內(nèi)部上拉電阻的8 位雙向I/O 口,p1 輸出緩沖器能驅(qū)動4 個 TTL 邏輯電平。對P1 端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。此外,P1.0和P1.2分別作定時器/計數(shù)器2的外部計數(shù)輸入(P1.0/T2)和時
39、器/計數(shù)器2 的觸發(fā)輸入(P1.1/T2EX),具體如下所示。 在flash編程和校驗時,P1口接收低8位地址字節(jié)。</p><p><b> P1引腳第二功能</b></p><p> P1.0 :T2(定時器/計數(shù)器T2的外部計數(shù)輸入),時鐘輸出</p><p> P1.1 :T2EX(定時器/計數(shù)器T2的捕捉/重載觸發(fā)信號和方向控制
40、)</p><p> P1.5: MOSI(在線系統(tǒng)編程時用到)</p><p> P1.6 :MISO(在線系統(tǒng)編程時用到)</p><p> P1.7 :SCK(在線系統(tǒng)編程時用到)</p><p> P2口(Pin21~Pin28):名稱為P2.0~P2.7。P2 口是一個具有內(nèi)部上拉電阻的8 位雙向I/O 口,P2 輸出緩沖器
41、能驅(qū)動4 個 TTL 邏輯電平。對P2 端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。在訪問外部程序存儲器或用16位地址讀取外部數(shù)據(jù)存儲器(例如執(zhí)行MOVX @DPTR)時,P2 口送出高八位地址。在這種應用中,P2 口使用很強的內(nèi)部上拉發(fā)送1。在使用 8位地址(如MOVX @RI)訪問外部數(shù)據(jù)存儲器時,P2口輸出P2鎖存器的內(nèi)容。在flash編
42、程和校驗時,P2口也接收高8位地址字節(jié)和一些控制信號。</p><p> P3口(Pin10~Pin17):8位準雙向I/O口線,名稱為P3.0~P3.7。P3 口是一個具有內(nèi)部上拉電阻的8 位雙向I/O 口,p2 輸出緩沖器能驅(qū)動4 個 TTL 邏輯電平。對P3 端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。 P3口亦
43、作為STC89C52特殊功能(第二功能)使用,如下表所示。在flash編程和校驗時,P3口也接收一些控制信號。</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ù)器0)</p><p> P3.5 T1(定時/計數(shù)器1)</p><p> P3.6 WR(外部數(shù)據(jù)存儲器寫選通)</p><p> P3.7 RD(外部數(shù)據(jù)存儲器讀選通)</p><p>
45、; 此外,P3口還接收一些用于FLASH閃存編程和程序校驗的控制信號。</p><p> RST——復位輸入。當振蕩器工作時,RST引腳出現(xiàn)兩個機器周期以上高電平將是單片機復位。</p><p> ALE/PROG——當訪問外部程序存儲器或數(shù)據(jù)存儲器時,ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低8位字節(jié)。一般情況下,ALE仍以時鐘振蕩頻率的1/6輸出固定的脈沖信號,因此它可對外輸
46、出時鐘或用于定時目的。要注意的是:每當訪問外部數(shù)據(jù)存儲器時將跳過一個ALE脈沖。</p><p> 對FLASH存儲器編程期間,該引腳還用于輸入編程脈沖(PROG)。</p><p> 如有必要,可通過對特殊功能寄存器(SFR)區(qū)中的8EH單元的D0位置位,可禁止ALE操作。該位置位后,只有一條MOVX和MOVC指令才能將ALE激活。此外,該引腳會被微弱拉高,單片機執(zhí)行外部程序時,應設
47、置ALE禁止位無效。</p><p> PSEN——程序儲存允許(PSEN)輸出是外部程序存儲器的讀選通信號,當STC89C52由外部程序存儲器取指令(或數(shù)據(jù))時,每個機器周期兩次PSEN有效,即輸出兩個脈沖,在此期間,當訪問外部數(shù)據(jù)存儲器,將跳過兩次PSEN信號。</p><p> EA/VPP——外部訪問允許,欲使CPU僅訪問外部程序存儲器(地址為0000H-FFFFH),EA端必
48、須保持低電平(接地)。需注意的是:如果加密位LB1被編程,復位時內(nèi)部會鎖存EA端狀態(tài)。</p><p> 如EA端為高電平(接Vcc端),CPU則執(zhí)行內(nèi)部程序存儲器的指令。</p><p> FLASH存儲器編程時,該引腳加上+12V的編程允許電源Vpp,當然這必須是該器件是使用12V編程電壓Vpp。</p><p> 3.1.2 實時時鐘芯片DS12887
49、</p><p> ?。ㄒ唬〥S12887功能特點[9] [10]</p><p> DS12887是美國達拉斯半導體公司推出的時鐘芯片,此芯片是基于CMOS技術的,把時鐘芯片所需的晶振和外部鋰電池相關電路集于芯片內(nèi)部,這無疑大大簡化了外圍電路,同時它與目前IBM AT計算機常用的時鐘芯片MC146818B和DS1287芯片引腳兼容,可直接進行對等交換。其主要功能如下:(1)內(nèi)含一個鋰
50、電池,斷電可以運行十年,并且不會丟失數(shù)據(jù),時間功能正常運行。(2)可計時至2100年前的秒、分、時、星期、日、月、年等日歷信息并帶有閏年補償功能。(3)可通過編程選擇BCD碼或者二進制數(shù)表示日歷和定時鬧鐘。(4)可通過編程選擇12小時或24小時制,12小時時鐘模式帶有PM和AM提示,此外還有有夏令時功能。(5)可選擇MOTOROLA和INTEL總線時序。(6)內(nèi)部共有128個RAM單元,這在常用的實時時鐘中屬于較大的。其中14
51、個字節(jié)作為時鐘和控制寄存器,114字節(jié)為通用RAM,所有ARAM單元數(shù)據(jù)都具有掉電保護功能。(7)可編程并選擇的方波信號輸出(8)中斷信號輸出(IRQ)和總線兼容,定時鬧鐘中斷、周期性中斷、時鐘更新周期結(jié)束中斷可分別由軟件屏蔽,也可分別進行測試。</p><p> (9)三種可供選擇的中斷方式 </p><p><b> -時間性中斷 </b></p&g
52、t;<p><b> -周期性中斷</b></p><p><b> -時鐘更新結(jié)束中斷</b></p><p> ?。ǘ〥S12887的原理及管腳說明</p><p> 圖3-2顯示了DS12887管腳排列圖。下面說明管腳功能</p><p> 圖3-2 DS12887管
53、腳圖</p><p><b> GND:電源地</b></p><p> VCC:直流電源+5V電壓。若外部提供的VCC電源小于4.25V,讀寫會即刻被禁止,但芯片內(nèi)部的計時仍在繼續(xù),重新通上+5V電源后,通過編程即可顯示當前時間;若外部提供的VCC電源小于3V,電源方式切換為內(nèi)部鋰電池提供,同樣可以保持芯片內(nèi)部計時仍然繼續(xù)。MOT(模式選擇):接VCC(+5V
54、)時,芯片在MOTOROLA時序下工作,接GND(地)時,芯片在INTEL時序下工作。SQW(方波信號):通過15個分頻器抽頭中的13個提供方波輸出。AD0~AD7(雙向地址/數(shù)據(jù)復用線):數(shù)據(jù)和控制指令都通過此8個引腳來于單片機等控制器傳輸。</p><p> AS(地址選通輸入):地址鎖存引腳。 DS(數(shù)據(jù)選通或讀輸入):該引腳有兩種操作模式,視該芯片是出于MOTOROLA模式或者IN
55、TEL模式,當使用MOTOROLA時序時,DS是一正脈沖,出現(xiàn)在總線周期的后段,稱為數(shù)據(jù)選通;若為INTEL時序,DS稱作(RD),RD與典型存貯器的允許信號(OE)的定義相同。R/W(讀/寫輸入):R/W管腳同樣也有兩種操作模式。此引腳的兩種模式與DS相似。CS(片選輸入):在訪問DS12887的總線周期內(nèi),片選信號必須保持為低。IRQ(中斷申請輸入):低電平有效,可作微處理的中斷輸入。沒有中斷條件滿足時,IRQ處于高阻態(tài)。IR
56、Q線是漏極開路輸入,要求外接上拉電阻。RESET(復位輸出):若要保證DS12887有效復位,必須讓該腳保持低電平時間大于200ms。</p><p> (三)DS12887的內(nèi)部功能(1) 地址分配圖 </p><p> DS12887的存儲器分配圖如圖3-3所示,其中00H-09H為時鐘信息和鬧鐘信息寄存器,0AH-0DH為
57、四個控制寄存器。</p><p> DS12887的存分配圖如圖3-3所示</p><p> (2) 控制寄存器 ●寄存器A </p><p> 表3-4 DS12887寄存器A</p><p> UIP:更新位。若UIP為1,實時時鐘的更新轉(zhuǎn)換發(fā)生的很快,而當UIP為0,更新轉(zhuǎn)換至少在244
58、µs內(nèi)不會發(fā)生。 DV0,DV1,DV2:用于晶振和復位分頻鏈的開啟。</p><p> 表3-5 DS12887周期中斷率和方波頻率</p><p> RS3,RS2,RS1,RS0:頻率選擇位,通過這四個位用戶可以: a 用PIE位允許中斷; b 用SQW
59、E位允許SQAW輸出; c 二者同時允許并用相同的頻率; d 二者都不允許</p><p><b> ●寄存器B</b></p><p> 表3-6 DS12887寄存器B</p><p> SET:此位為0,時間更新正常進行,每秒計數(shù)走時一次,當此位為1,時
60、間更新被禁止,程序可對芯片進行初始化的操作和編程。 PIE:周期中斷允許位,PIE為1,則允許以選定的頻率拉低IRQ管腳,PIE為0,則禁止中斷。 AIE:定時鬧鐘中斷允許位,AIE為1,允許中斷,否則禁止中斷。</p><p> UIE:更新結(jié)束中斷允許位,AIE為1,允許中斷,否則禁止中斷。
61、 SQWE:方波允許位,置1選定頻率方波從SQW腳輸出;為0-時,SQW腳為低。 DM:數(shù)據(jù)模式位,DM為1表明為十進制數(shù)據(jù),而0表明是BCD碼的數(shù)據(jù)。 24/12:小時格式位,1表明24小時制,而0表明12小時制。 DSE:夏令時允許位,當DSE置1時允許兩個特殊的更新,在四月份的第一星期日,時間從1:59:59A
62、M時改變?yōu)?:00:00AM;在十月的最后一個星期日的1:59:59AM時改變?yōu)?:00:00AM。當DSE位為0,這種特殊修正不發(fā)生?!窦拇嫫鰿 </p><p> 表3-7 DS12887寄存器C</p><p> IRQF:中斷申請標志位。當下列表達式中一個或多個為真時,置1。 PF=PIE=1;AF=AIE=1;UF=UIE=1;&
63、#160; 即:IRQF=PF·PIE+AF·AIE+UF·UIE 只要IRQF為1,IRQ管腳輸出低 ,程序讀寄存器C以后或RESET管腳為低后,所有標志位清零。 AF:定鬧中斷標志位,只讀,AF為1表明現(xiàn)在時間與定鬧時間匹配。 VF:更新周期結(jié)束標志位。VF為1表明更新周
64、期結(jié)束。 BIT0~BIT3:未用狀態(tài)位,讀出總為0,不能寫入?!窦拇嫫鱀 </p><p> 表3-8 DS12887寄存器D</p><p> VRT:內(nèi)部鋰電池狀態(tài)位,平時應總讀出1,如出現(xiàn)0,表明內(nèi)部鋰電池耗盡。 BIT0~BIT6:未用狀態(tài)位,讀出總為0,不能寫入。</p>&l
65、t;p> 3.1.3 溫度傳感器DS18B20</p><p> (一)DS18B20功能特點</p><p> DS18B20具有超小體積和超低硬件開銷,精度高,抗干擾能力強等優(yōu)點。具有全</p><p> 數(shù)字溫度轉(zhuǎn)換及輸出,單總線數(shù)據(jù)通信,最高12 位分辨率,檢測溫度范圍大的特征,是開發(fā)溫度相關產(chǎn)品的很好的選擇。其主要功能如下:</p>
66、;<p> (1)獨特的單線接口僅需一個端口引腳進行通訊</p><p> (2)簡單的多點分布應用</p><p><b> (3)無需外部器件</b></p><p> (4)可通過數(shù)據(jù)線供電</p><p><b> (5)零待機功耗</b></p>&l
67、t;p> (6)測溫范圍-55~+125℃,以0.5℃遞增。華氏器件-67~+2570F,以0.90F 遞增</p><p> (7)溫度以9 位數(shù)字量讀出</p><p> (8)溫度數(shù)字量轉(zhuǎn)換時間200ms(典型值)</p><p> (9)用戶可定義的非易失性溫度報警設置</p><p> (10)報警搜索命令識別并標志
68、超過程序限定溫度(溫度報警條件)的器件</p><p> (11)應用包括溫度控制、工業(yè)系統(tǒng)、消費品、溫度計或任何熱感測系統(tǒng)</p><p> 二)DS18B20內(nèi)部工作原理</p><p> DS18B20內(nèi)部結(jié)構主要由四部分組成:64位光刻ROM 、溫度傳感器、非揮發(fā)的溫度報警觸發(fā)器TH和TL、配置寄存器。如圖3-9所示。</p><p
69、> 圖3-9 DS18B20原理圖</p><p> DS18B20引腳定義: </p><p> DQ為數(shù)字信號輸入/輸出端</p><p><b> GND為電源地</b></p><p> VDD為外接供電電源輸入端(在寄生電源接線方式時接地)</p><p>
70、 圖3-10 DS18B20引腳圖</p><p> 圖3-10給出了DS18B20測溫原理:DS1820用一個高溫度系數(shù)的振蕩器確定一個門周期,內(nèi)部計數(shù)器在這個門周期內(nèi)對一個低溫度系數(shù)的振蕩器的脈沖進行計數(shù)來得到溫度值。計數(shù)器被預置到對應于-55℃的一個值。如果計數(shù)器在門周期結(jié)束前到達0,則溫度寄存器(同樣被預置到-55℃)的值增加,表明所測溫度大于-55℃。</p><p> 同
71、時,計數(shù)器被復位到一個值,這個值由斜坡式累加器電路確定,斜坡式累加器電路用來補償感溫振蕩器的拋物線特性。然后計數(shù)器又開始計數(shù)直到0,如果門周期仍未結(jié)束,將重復這一過程。</p><p> 斜坡式累加器用來補償感溫振蕩器的非線性,以期在測溫時獲得比較高的分辨力。這是通過改變計數(shù)器對溫度每增加一度所需計數(shù)的的值來實現(xiàn)的。因此,要想獲得所需的分辨力,必須同時知道在給定溫度下計數(shù)器的值和每一度的計數(shù)值。</p&g
72、t;<p> DS1820 內(nèi)部對此計算的結(jié)果可提供0.5℃的分辨力。溫度以16bit 帶符號位擴展的二進制補碼形式讀出。數(shù)據(jù)通過單線接口以串行方式傳輸。</p><p> DS1820 測溫范圍-55℃~+125℃,以0.5℃遞增。如用于華氏溫度,必須要用一個轉(zhuǎn)換因子查找表。</p><p> 圖3-11 DS18B20測溫原理圖</p><p&
73、gt; DS18B20與單片機的硬件連接有兩種方法:一是VDD接外部電源,GND接地I/O與單片機的I/O線相接;二是用寄生電源供電,此時VDD和GND接地,I/O接單片機I/O。無論是那種供電方式,I/O線都要接4.7kΩ左右的上拉電阻。圖3-7中,DS18B20采用寄生電源方式,其VDD和GND均接地,DS18B20采用外接電源方式,其VDD端用3-5.5v電源供電。本設計采用接線,即外接電源工作方式[11]。 </p>
74、;<p> 3.1.4 液晶顯示屏AMPIRE128X64 </p><p> (一)AMPIRE128X64特點說明[12] [13]</p><p> 液晶顯示模塊由于具有低功耗、壽命長、體積小、顯示內(nèi)容豐富、價格低、接口控制方便等優(yōu)點,因此在各類電子產(chǎn)品中被極廣泛地推廣和應用。字符型液晶顯示模塊是一類專門用于顯示字母、數(shù)字、符號等點陣式液晶顯示模塊。本系統(tǒng)設計采用
75、字符型液屏顯示模塊AMPIRE128X64 作為顯示器件,這樣不僅簡化了系統(tǒng)的硬件設計,而且極大地提高了系統(tǒng)的可靠性。字符型液晶顯示模塊AMPIRE128X64是單片機應用設計中最常用的信息顯示器件。AMPIRE128X64 可以顯示兩行,每行16 個字符,采用+5V 電源供電,外圍電路配置簡單,價格便宜,具有很高的性價比[14]。</p><p> AMPIRE128X64功能介紹</p>&l
76、t;p> AMPIRE128X64各引腳功能如表3-12所示。</p><p> 是直接看時序圖,另外一種方法是直接記憶和總結(jié)讀寫時電平高低和變化。很顯然第二種更簡單、直接,下面就列出典型讀寫的時序要求,以方便編寫程序。</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> 對控制器每次進行讀寫操作之前,都必須進行讀寫檢測,確保STA7為0</p><p><b> 指令說明:</b></p><p> 表3-14 顯示模式設置表</p><p> 表3-15顯示開/關及背光燈設置表</p><p&
79、gt;<b> ?。?)數(shù)據(jù)控制</b></p><p> 控制器內(nèi)部有一個數(shù)據(jù)地址指針,用戶可通過它們來訪問內(nèi)部的全部80字節(jié)RAM</p><p><b> 數(shù)據(jù)指針設置</b></p><p> 表3-16 數(shù)據(jù)指針設置表</p><p> ?。ㄈ〢MPIRE128X64初始化過程&l
80、t;/p><p><b> (1)延時15ms</b></p><p> (2)寫指令38H(不檢測忙信號)</p><p><b> (3)延時5ms</b></p><p> (4) 寫指令38H(不檢測忙信號)</p><p><b> (5)寫指令5m
81、s</b></p><p> (6) 寫指令38H(不檢測忙信號)</p><p> (7)之后每次寫指令、讀/寫數(shù)據(jù)操作之前均需檢測忙信號</p><p> (8)寫指令38H:顯示模式設置</p><p> (9)寫指令08H:顯示關閉</p><p> (10) 寫指令01H:顯示清屏幕&l
82、t;/p><p> (11) 寫指令06H:顯示光標移動設置</p><p> (12) 寫指令0CH:顯示及光標設置</p><p> 3.2 系統(tǒng)硬件架構</p><p> 本設計以模塊化的方式來進行硬件電路的設計和調(diào)試。單片機的模塊化就是把系統(tǒng)分成各個具有獨立功能又可以互相銜接的簡單模塊,將復雜難懂的指令、語法、編程及其電路分解,使
83、設計簡單化[15]。本設計的電路模塊可以分為單片機最小系統(tǒng)模塊,時鐘模塊,溫度傳感器模塊,液晶顯示模塊,按鍵模塊,蜂鳴器報警模塊。</p><p> 3.2.1 單片機最小系統(tǒng)</p><p> 本設計的單片機最小系統(tǒng)主要包括STC89C52芯片,晶振電路和復位電路。</p><p><b> ?。ㄒ唬┚д耠娐?lt;/b></p>
84、<p> 最小系統(tǒng)晶振電路如圖3-9所示。</p><p> 圖3-17晶振電路圖</p><p> STC89C52內(nèi)部有一個用于構成振蕩器的高增益反相放大器,引腳XTAL0和XTAL1分別是此放大器的輸入端和輸出端。時鐘可以由內(nèi)部方式產(chǎn)生或外部方式產(chǎn)生。內(nèi)部方式的時鐘電路如圖3-9所示,在XTAL0和XTAL1引腳上外接定時元件,內(nèi)部振蕩器就產(chǎn)生自激振蕩。定時元件通常
85、采用石英晶體和電容組成的并聯(lián)諧振回路。晶體振蕩頻率可以在</p><p> 1.2~12MHz之間選擇,電容值在5~30pF之間選擇,電容值的大小可對頻率起微調(diào)的作用。</p><p> 單片機晶振兩個電容的作用:這兩個電容叫晶振的負載電容,分別接在晶振的兩個腳上和對地的電容,一般在幾十pf。它會影響到晶振的諧振頻率和輸出幅度。晶振的負載電容=[(Cd*Cg)/(Cd+Cg)]+Cic
86、+△C式中Cd,Cg為分別接在晶振的兩個腳上和對地的電容,Cic(集成電路內(nèi)部電容)+△C(PCB上電容)經(jīng)驗值為3至5pf。</p><p><b> 復位電路</b></p><p> 最小系統(tǒng)復位電路如圖3-10所示。</p><p> 圖3-18 復位電路</p><p> 無論使用哪種類型的單片機,總要
87、涉及到單片機復位電路的設計.而單片機復位電路設計的好壞,直接影響到整個系統(tǒng)工作的可靠性.許多用戶在設計完單片機系統(tǒng),并在實驗室調(diào)試成功后,在現(xiàn)場卻出現(xiàn)了“死機”、“程序走飛”等現(xiàn)象,這主要是單片機的復位電路設計不可靠引起的[16]。復位電路的基本功能是:系統(tǒng)上電時提供復位信號,直至系統(tǒng)電源穩(wěn)定后,撤銷復位信號。為可靠起見,電源穩(wěn)定后還要經(jīng)過一定的延時才撤銷復位信號,以防電源開關或電源插頭分-合過程中引起的抖動而影響復位。單片機復位電路參
88、數(shù)的選定須在振蕩穩(wěn)定后保證復位高電平持續(xù)時間大于2個機器周期。單片機復位電路主要有四種類型:微分型復位電路;積分型復位電路;比較器型復位電路;看門狗型復位電路[17]。</p><p> (三)最小系統(tǒng)整體圖最小系統(tǒng)整體電路如圖3-19所示。</p><p> 圖3-19 最小系統(tǒng)電路圖</p><p><b> 3.2.2時鐘模塊</b>
89、;</p><p> 本設計中的DS12887芯片AD0-AD7引腳與STC89C52芯片的P2口相連接。MOT引腳接地,為INTEL總線時序方式。因此R/W和DS引腳也為對應INTEL的操作模式。</p><p> 時鐘模塊電路如圖3-20所示。</p><p> 圖3-20時鐘模塊圖</p><p> 3.2.3 溫度傳感器模塊&
90、lt;/p><p> 溫度傳感器DS18B20的接法很簡單,它的DQ引腳與STC89C52芯片的P1.7引腳相連接。這里只用到一個溫度傳感器,若要使用多個則只需將所有的DS18B20的I/O口接在一起即可,在具體操作時,通過讀取每個芯片的內(nèi)部序列號來識別[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接一個1K的電位器來調(diào)整對比度,從而達到合適的背光燈對比度。液晶顯示模塊電路如圖3-22所示。</p><p> 圖3-22 液晶顯示模塊</p
92、><p> 3.2.5 按鍵模塊</p><p> 74LS21芯片為兩組 4 輸入與門(正邏輯)。本設計中的四個按鍵分別接到74LS21芯片的1A,1B,1C,1D,即4輸入與門的4個輸入。而74LS21的輸出1Y則接到STC89C52芯片的P3.2(INT0)引腳,由于該引腳為低電平有效,當警報發(fā)生時按下四個按鍵中任意一個都會使輸出1Y變?yōu)榈碗娖剑瑒t芯片發(fā)生中斷,報警停止。同時,四個按
93、鍵key1-key4也接到STC89C52芯片的P1.0-P1.3起到調(diào)節(jié)時間日期等功能。四個按鍵中S1為切換鍵,S2為設定鍵,S3為上調(diào)鍵,S4下調(diào)鍵。</p><p> 按鍵模塊電路如圖3-23所示。</p><p> 圖3-23 按鍵電路</p><p> 3.2.6 蜂鳴器報警模塊</p><p> 蜂鳴器是一種一體化結(jié)構的電
94、子訊響器,采用直流電壓供電,廣泛應用于計算機、打印機、復印機、報警器、電子玩具、汽車電子設備、電話機、定時器等電子產(chǎn)品中作發(fā)聲器件。 ;蜂鳴器主要分為壓電式蜂鳴器和電磁式蜂鳴器兩種類型。蜂鳴器在電路中用字母“H”或“HA”(舊標準用“FM”、“LB”、“JD”等)表示。</p><p> 蜂鳴器報警在單片機應用的設計上,很多方案都會用到蜂鳴器,大部分都是使用蜂鳴器來做提示或報警,比如按鍵按下、開始工作、工作結(jié)束
95、或是故障等等。</p><p> PORTC.3/T0 作為I/O 口通過三極管Q2 來驅(qū)動蜂鳴器LS1,而PORTC.2/PWM0 則作為PWM 輸出口通過三極管Q1 來驅(qū)動蜂鳴器LS2。另外在PORTA.3 和PORTA.2 分別接了兩個按鍵,一個是PWM 按鍵,是用來控制PWM 輸出口驅(qū)動蜂鳴器使用的;另一個是PORT 按鍵,是用來控制I/O 口驅(qū)動蜂鳴器使用的。連接按鍵的I/O 口開內(nèi)部上拉電阻。<
96、;/p><p><b> 軟件設計方法</b></p><p> 先分析一下蜂鳴器。所使用的蜂鳴器的工作頻率是2000Hz,也就是說蜂鳴器的驅(qū)動信號波形周期是500μs,由于是1/2duty 的信號,所以一個周期內(nèi)的高電平和低電平的時間寬度都為250μs。軟件設計上,我們將根據(jù)兩種驅(qū)動方式來進行說明。</p><p> a) PWM 輸出口直
97、接驅(qū)動蜂鳴器方式</p><p> 由于PWM 只控制固定頻率的蜂鳴器,所以可以在程序的系統(tǒng)初始化時就對PWM 的輸出波形進行設置。</p><p> 首先根據(jù)SH69P43 的PWM 輸出的周期寬度是10 位數(shù)據(jù)來選擇PWM 時鐘。系統(tǒng)使用4MHz 的晶振作為主振蕩器,一個tosc 的時間就是0.25μs,若是將PWM 的時鐘設置為tosc 的話, 則蜂鳴器要求的波形周期500μs
98、的計數(shù)值為500μs/0.25μs=(2000)10=(7D0)16,7D0H 為11 位的數(shù)據(jù),而SH69P43 的PWM</p><p> 輸出周期寬度只是10 位數(shù)據(jù),所以選擇PWM 的時鐘為tosc 是不能實現(xiàn)蜂鳴器所要的驅(qū)動波形的。</p><p> 這里我們將PWM 的時鐘設置為4tosc,這樣一個PWM 的時鐘周期就是1μs 了,由此可以算出500μs 對應的計數(shù)值為50
99、0μs/1μs=(500)10=(1F4)16,即分別在周期寄存器的高2 位、中4 位和低4 位三個寄存器中填入1、F 和4,就完成了對輸出周期的設置。再來設置占空比寄存器,在PWM 輸出中占空比的實現(xiàn)是</p><p> 通過設定一個周期內(nèi)電平的寬度來實現(xiàn)的。當輸出模式選擇為普通模式時,占空比寄存器是用來設置高電平的寬度。250μs 的寬度計數(shù)值為250μs/1μs=(250)10=(0FA)16。只需要在占
100、空比寄存器的高2 位、中4 位和低4 位中分別填入0、F 和A 就可以完成對占空比的設置了,設置占空比為1/2duty。</p><p> 以后只需要打開PWM 輸出,PWM 輸出口自然就能輸出頻率為2000Hz、占空比為1/2duty 的方波。</p><p> b) I/O 口定時翻轉(zhuǎn)電平驅(qū)動蜂鳴器方式</p><p> 使用I/O 口定時翻轉(zhuǎn)電平驅(qū)動蜂鳴
101、器方式的設置比較簡單,只需要對波形分析一下。由于驅(qū)動的信號剛好為周期500μs,占空比為1/2duty 的方波,只需要每250μs 進行一次電平翻轉(zhuǎn),就可以得到驅(qū)動蜂鳴器的方波信號。在程序上,可以使用TIMER0 來定時,將TIMER0 的預分頻設置為/1,選擇TIMER0 的始終為系統(tǒng)時鐘(主振蕩器時鐘/4),在TIMER0 的載入/計數(shù)寄存器的高4 位和低4 位分別寫入00H 和06H,就能將TIMER0 的中斷設置為250μs。當
102、需要I/O 口驅(qū)動的蜂鳴器鳴叫時,只需要在進入TIMER0 中斷的時候?qū)υ揑/O 口的電平進行翻轉(zhuǎn)一次,直到蜂鳴器不需要鳴叫的時候,將I/O 口的電平設置為低電平即可。不鳴叫時將I/O 口的輸出電平設置為低電平是為了防止漏電。</p><p> 模塊的作用:當定時鬧鐘時間到時,蜂鳴器發(fā)出預設的聲音,而發(fā)光二極管則會隨著音樂閃爍。本模塊采用PNP三極管為蜂鳴器放大電流,基極通過4.7k電阻與單片機STC89C52
103、的閑置引腳P3.5相連接,集電極直接接地,發(fā)射極接發(fā)光二極管和蜂鳴器。報警模塊電路如圖3-24所示。</p><p> 圖3-24 報警模塊</p><p><b> 3.3 本章小結(jié)</b></p><p> 本章主要對芯片作了介紹,對其內(nèi)存單元作了詳細說明,并對系統(tǒng)硬件的結(jié)構框圖和各功能電路作了說明,以及這些電路在本設計中的用途。&l
104、t;/p><p><b> 第四章 軟件設計</b></p><p> 4.1 軟件設計總體說明</p><p> 本系統(tǒng)的程序采用C語言編寫,為了便于修改和調(diào)試,系統(tǒng)軟件采用模塊化設計,程序的編寫編譯在WAVE6000軟件中完成。</p><p> 秒計數(shù)器的計數(shù)時鐘信號為1Hz的標準信號,可以由CPLD板上提供的
105、20MHZ的信號通過分頻得到。秒計數(shù)器的進位輸出信號作為分鐘計數(shù)器的計數(shù)信號,分鐘計數(shù)器的進位輸出信號又作為小時計數(shù)器的計數(shù)信號.設計一個同時顯示時、分、秒6個數(shù)字的數(shù)字鐘,則需要6個七段顯示器。若同時點亮這6個七段顯示器,則電路中會產(chǎn)生一個比較大的電流,很容易造成電路燒壞,我們通過掃描電路來解決這一問題,通過產(chǎn)生一個掃描信號LT(0)一LT(5)來控制6個七段顯示器,依次點亮6個七段顯示器,也就是每次只點亮一個七段顯示器。只要掃描信號
106、的頻率超過人的眼睛視覺暫留頻率24Hz以上,就可以達到盡管每次點亮單個七段顯示器,卻能具有6個同時顯示的視覺效果,而目顯示也不致閃爍抖動。其中6位掃描信號一方面控制七段顯示器依次點亮,一方面控制6選1選擇器輸出相應顯示數(shù)字??刂齐娐酚脕韺⒖刂茣r鐘的一些功能加入到整個正常計數(shù)的顯示電路中,通過最終的顯示來驗證控制電路的正確性。圖4.1為整體系統(tǒng)設計標圖</p><p> 首先對STC89C52、DS12887、A
107、MPIRE128X64、DS18B20進行初始化,日歷和溫度信息通過AMPIRE128X64顯示出來,當當前時間與設定的鬧鐘時間相同后,AMPIRE128X64上顯示的時間停止,但,實際上芯片內(nèi)部的時間仍然在走。時鐘芯片向單片機發(fā)出中斷請求,單片機通過報警模塊進行警報,此時,若按下四個按鍵中的任意一個,報警停止,AMPIRE128X64顯示的時間繼續(xù)精確顯示。[20]</p><p> 系統(tǒng)中有四個按鍵,即:設
108、置鍵S1,確定鍵S2、上調(diào)鍵S3、下調(diào)鍵S4。</p><p> (1)進入系統(tǒng)看到有3個選擇項,分布是貪吃蛇、俄羅斯方塊、萬年歷等內(nèi)容。</p><p> ?。?)按下退出鍵會將當前的時間恢復到程序中設定的默認時間。</p><p> ?。?)同時按下S3鍵和S4鍵可對鬧鐘進行開啟和關閉的操作。</p><p> 4.2 主程序軟件實現(xiàn)
109、</p><p> 4.2.1主程序流程圖</p><p> 圖4-1 主程序流程圖</p><p> 4.2.2 定時器初值計算</p><p> 因定時器工作于方式1,需要50ms的中斷,所以計數(shù)初值:</p><p> χ=216 - t×fosc/12=65536 - 50×10-
110、3×11.0592×106/12=19456</p><p> 表示成十六進制為χ=4C00H,故(TH0)=4CH,(TL0)=00H。</p><p> 4.4.2 程序初始化</p><p> 程序初始化時,清相應內(nèi)存單元(20H~4FH共48個單元),送時間(00時00分00秒)、日期(07年10月01日)初值,送定時器T0、T1初
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 萬年歷課程設計--萬年歷電子時鐘
- 畢業(yè)設計---萬年歷功能電子時鐘的設計
- 電子萬年歷畢業(yè)設計
- 電子萬年歷畢業(yè)設計
- 電子萬年歷畢業(yè)設計
- 畢業(yè)設計---電子萬年歷設計
- 電子萬年歷畢業(yè)設計稿
- 電子萬年歷畢業(yè)設計2
- 單片機萬年歷課程設計--基于1602液晶顯示的電子時鐘萬年歷
- 畢業(yè)設計----電子萬年歷論文設計
- 電子萬年歷設計
- 畢業(yè)設計---電子萬年歷的設計
- 畢業(yè)設計---電子萬年歷的設計
- 基于arm的時鐘萬年歷設計【畢業(yè)設計】
- 電子萬年歷
- 電子鐘萬年歷畢業(yè)設計
- 數(shù)字萬年歷畢業(yè)設計
- 電子萬年歷中英文翻譯---基于實時鐘芯片的電子萬年歷的設計
- 開題報告基于51單片機設計的電子時鐘萬年歷
- 開題報告基于51單片機設計的電子時鐘萬年歷
評論
0/150
提交評論