臨沂職業(yè)學(xué)院 朱海濤
系統(tǒng)設(shè)計(jì)總框架如圖1。
1.控制模塊:通過應(yīng)用單片機(jī),對(duì)系統(tǒng)進(jìn)行初始化,主要完成對(duì)數(shù)碼管顯示、按鍵的處理等功能,起到總體控制和協(xié)調(diào)各模塊工作的作用。
2.盤輸入模塊:主要完成與時(shí)間相關(guān)的設(shè)置和溫度、時(shí)間、日期的切換。
3.碼管顯示模塊:主要對(duì)單片機(jī)送來的時(shí)間、日期、溫度信息進(jìn)行顯示。
4.度采集模塊:采用DS18B20溫度傳感器,向單片機(jī)提供實(shí)時(shí)溫度信息。
5.子鐘模塊:采用時(shí)鐘芯片DS1302,該芯片可以進(jìn)行時(shí)、分、秒的計(jì)數(shù),DS1302通過串行方式與單片機(jī)進(jìn)行數(shù)據(jù)傳送,向單片機(jī)提供包括秒、分、時(shí)、日、月、年等在內(nèi)的實(shí)時(shí)時(shí)間信息。
1.主控制模塊
在文章設(shè)計(jì)的溫度顯示系統(tǒng)設(shè)計(jì)中,控制核心是STC89C52單片機(jī),該單片機(jī)51系列增強(qiáng)型8位單片機(jī),它有32個(gè)I/O口,片內(nèi)含4K FLASH工藝的程序存儲(chǔ)器,便于用電的方式瞬間擦除和改寫,而且價(jià)格便宜,其外部晶振為12MHz,一個(gè)指令周期為1 μS。使用該單片機(jī)完全可以完成設(shè)計(jì)任務(wù),其最小系統(tǒng)主要包括:位電路、震蕩電路以及存儲(chǔ)器選擇模(EA腳的高低電平選擇),電路如圖2。
2.鍵盤輸入模塊
鍵盤輸入模塊(見圖3)上“0”、“4”、“8”、“C”可以配置成獨(dú)立按鍵,通過跳帽J11切換,在獨(dú)立按鍵中,應(yīng)該把跳帽接到左端。
功能介紹:本文中,P3.0-P3.3四個(gè)獨(dú)立按鍵分別時(shí)間調(diào)整按鍵、功能加減、日歷切換按鍵、溫度切換按鍵。當(dāng)P3.0(set)按下系統(tǒng)進(jìn)入時(shí)調(diào)整狀態(tài):分單元閃爍,再按下P3.1(up)時(shí),對(duì)顯示的數(shù)碼管的時(shí)段進(jìn)行加一功能,達(dá)到對(duì)時(shí)調(diào)整,再次按下P3.0(set)時(shí)進(jìn)入分鐘調(diào)整狀態(tài),分單元閃爍,通過按鍵P3.1(up)加一調(diào)整分的顯示,秒不進(jìn)行調(diào)整,時(shí)間調(diào)整結(jié)束后,再次按下P3.0(set)進(jìn)入正常時(shí)鐘顯示;當(dāng)按下P3.2(switchriqi)時(shí),切換到日歷的顯示;當(dāng)按下P3.3(setwendu)時(shí),切換到溫度的顯示。
3.數(shù)碼管顯示模塊
顯示原理:因?yàn)樗形粩?shù)碼管的段選線被并聯(lián)在一起,位選線控制哪一位數(shù)碼管有效的有效,所以就需要為每一位數(shù)碼管配一個(gè)鎖存器,進(jìn)而簡(jiǎn)化了硬件電路。點(diǎn)亮數(shù)碼管采用動(dòng)態(tài)掃描顯示。所謂動(dòng)態(tài)掃描顯示即輪流向各位數(shù)碼管送出字形碼和相應(yīng)的位選,利用發(fā)光管的余輝和人眼視覺殘留作用,使人感覺到各位數(shù)碼管似乎同時(shí)在顯示。由于動(dòng)態(tài)顯示的亮度比靜態(tài)顯示要差一些,所以在選擇限流電阻時(shí)應(yīng)略小于靜態(tài)顯示電路中的限流電阻。數(shù)碼顯示模塊電路見圖4。
4.溫度采集部分
文章采用一線制數(shù)字溫度傳感器DS18B20。傳感器輸出信號(hào)進(jìn)4.7K的上拉電阻直接接到單片機(jī)的P1.0引腳上。該器件將半導(dǎo)體溫敏器件、A/D轉(zhuǎn)換器、存儲(chǔ)器等做在一個(gè)很小的集成電路芯片上。在本設(shè)計(jì)中采用外部供電方式實(shí)現(xiàn)DS18B20傳感器與單片機(jī)的連接,其接口電路下如圖5所示。
工作原理:溫度以16bit帶符號(hào)位擴(kuò)展的二進(jìn)制補(bǔ)碼形式讀出,下表給出了溫度值和輸出數(shù)據(jù)的關(guān)系。程序中需將16進(jìn)制溫度值轉(zhuǎn)化為十進(jìn)制,再轉(zhuǎn)化為數(shù)碼管顯示需要的段碼表數(shù)據(jù)格式。
?
5.電子鐘模塊
圖1 系統(tǒng)設(shè)計(jì)總框架
圖2 主控制模塊電路
圖3 鍵盤輸入模塊
圖4 數(shù)碼顯示模塊
采用時(shí)鐘芯片DS1302,該芯片可以進(jìn)行時(shí)、分、秒的計(jì)數(shù),DS1302通過串行方式與單片機(jī)進(jìn)行數(shù)據(jù)傳送,向單片機(jī)提供包括秒、分、時(shí)、日、月、年等在內(nèi)的實(shí)時(shí)時(shí)間信息。DS1302是美國(guó)DALLAS公司推出的一種高性能、低功耗的實(shí)時(shí)時(shí)鐘芯片,DS1302用于數(shù)據(jù)記錄,特別是對(duì)某些具有特殊意義的數(shù)據(jù)點(diǎn)的記錄上,能實(shí)現(xiàn)數(shù)據(jù)與出現(xiàn)該數(shù)據(jù)的時(shí)間同時(shí)記錄,因此廣泛應(yīng)用于測(cè)量系統(tǒng)中。讀寫時(shí)序說明:
DS1302是SPI總線驅(qū)動(dòng)方式。它不僅要向寄存器寫入控制字,還需要讀取相應(yīng)寄存器的數(shù)據(jù)。要想與DS1302通信,首先要先了解DS1302的控制字。DS1302的控制字如圖6。
圖5 接口電路
圖6 DS1302的控制字
圖7
圖8 軟件設(shè)計(jì)總流程圖
圖9 時(shí)間顯示
控制字的最高有效位(位7)必須是邏輯1,如果它為0,則不能把數(shù)據(jù)寫入到DS1302中。
位6:如果為0,則表示存取日歷時(shí)鐘數(shù)據(jù),為1表示存取RAM數(shù)據(jù);
圖10 溫度顯示
圖11 日期顯示
位5至位1(A4~A0):指示操作單元的地址;
位0(最低有效位):如為0,表示要進(jìn)行寫操作,為1表示進(jìn)行讀操作。
寄存器讀地址寫地址秒81H80H分83H82H時(shí)85H84H日87H86H月89H88H年8DH8CH控制8FH8EH
重要位:
秒寄存器時(shí)鐘停止位CH=0,振蕩器工作允許;CH=1,振蕩器停止。
控制寄存器寫保護(hù)位WP=0,允許寫入;WP=1,禁止寫入外部引腳分配(如圖7所示)。
軟件設(shè)計(jì)總流程圖(如圖8所示)。
(1)時(shí)間顯示如圖9。
(2)按下“0”鍵時(shí)分設(shè)置,時(shí)分閃爍等待設(shè)置。
(3)按下“4”鍵時(shí)或分加一,按“0”確認(rèn)。
(4)按下“A”鍵顯示溫度,如圖10。
(5)按下“8”鍵顯示日期,如圖11。
[1]Liu peng process.Based on AT89S51 digital temperature measurement and display system design[D].2009:33.
[2]王一然.基于單片機(jī)的定時(shí)溫控系統(tǒng)的設(shè)計(jì)與研究[J].科學(xué)與財(cái)富,2010(8):152.
[3]王一然.單片機(jī)開發(fā)語(yǔ)言特點(diǎn)研究[J].科技致富向?qū)?2010(9):98.
[4]許瑾娜.基于89C51的干式變壓器溫控系統(tǒng)設(shè)計(jì)空[J].Modern Science,2012,12.
[5]李廣弟,朱月秀,冷祖祁.單片機(jī)基礎(chǔ)[M].北京航空航天大學(xué)出版社,2010.