自動澆花系統(tǒng)設計_第1頁
自動澆花系統(tǒng)設計_第2頁
自動澆花系統(tǒng)設計_第3頁
自動澆花系統(tǒng)設計_第4頁
自動澆花系統(tǒng)設計_第5頁
已閱讀5頁,還剩51頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

成都工業(yè)學院畢業(yè)設計(論文) 頁目錄摘要 IIAbstract III目錄 IV第1章 緒論 61.1選題的目的和意義 61.2自動澆花器的誕生背景及國內外發(fā)展現(xiàn)狀 61.3畢業(yè)設計所采用的研究方法和手段 7第2章 第基于單片機控制的家庭自動澆花機設計 92.1 定時澆花方案的設計 92.2 智能澆花 102.3 本設計的硬件總體設計 11第3章 硬件電路的設計 133.1 AT89C51單片機 133.1.1 單片機的基本組成 153.1.2 管腳說明 163.1.3 振蕩電路和時鐘 183.1.4 AT89C51的中斷系統(tǒng) 183.1.5 定時器/計數(shù)器 213.2 溫濕度傳感器 223.2.1 數(shù)字溫濕度傳感器SHT-11 223.2.2 濕度值輸出 233.2.3 溫度值輸出 243.2.4 SHT-11的特性 243.2.5 SHT-11的詳細規(guī)格 253.2.6 SHT-11的引腳 253.2.7 7SHT-11的的內部命令與接口時序 263.2.8 電路連接 293.3 時鐘芯片 293.3.1 DS1302時鐘芯片的簡介 293.3.2 引腳 303.3.3 命令字節(jié) 303.4 液晶顯示器LCD 343.4.1 液晶顯示器的分類 353.4.2 AMPIRE128×64 353.4.3 LCD128×64引腳功能 363.4.4 KS0108控制器指令功能 373.4.5 應用說明 393.4.6 電路連接 393.5 鍵盤 403.6 繼電器 413.7 電路連接 423.8 總電路連接圖 42第4章 軟件系統(tǒng)設計 434.1 系統(tǒng)控制流程圖 434.2 系統(tǒng)主控制程序如下: 434.3 子程序的流程框圖 48第5章 總結 52致謝 54參考文獻 55緒論1.1選題的目的和意義隨著社會生活的進步,人們的生活質量越來越高。在家里養(yǎng)盆花可以陶冶情操、豐富生活。同時,盆花通過光合作用可吸收二氧化碳,凈化室內空氣,在有花木的地方空氣中陰離子聚積較多,所以空氣也特別清新,而且有許多花木還可吸收空氣中的有害氣體,因此,養(yǎng)盆花如今被許多的人所喜愛。盆花澆水量是否能做到適時適量,是養(yǎng)花成敗的關鍵。但是,在生活中人們總是會有無暇顧及的時候,比如工作太忙或者出差、旅游等。花草生長問題80%以上是由花兒澆灌問題引起;好不容易種植幾個月的花草,因為澆水不及時,長勢不好,用來美化家園的花草幾乎成了“雞肋”;不種植了吧,家中沒有綠色襯托感覺沒有生機;保留吧,花草長得不夠旺盛,還影響家庭裝飾效果。雖然目前市面上有賣盆花自動澆水器的,但價格十分的昂貴,并且大多只能設定一個定時澆水的時間,很難做到給盆花適時適量澆水。也有較經濟的盆花缺水報警器,可以提醒人們及時的給盆花澆水??墒沁@種報警器只能報警,澆水還是需要人們親自動手。當家里無人時,即使報警也無人澆水,就起不到應有的作用了。因此,我想通過設計一種集盆花土壤濕度檢測,自動澆水以及蓄水箱自動供水于一體的盆花自動澆水系統(tǒng)。讓盆花在人們無暇照顧時也能得到及時的澆灌。1.2自動澆花器的誕生背景及國內外發(fā)展現(xiàn)狀微噴系統(tǒng)是近幾年利用國內外先進技術組裝的新型灌溉設施,主要是利用水流通過低壓管道系統(tǒng)以一定速度從特制的噴頭噴出,在空氣中分散成細小的水滴,著落在花草植物、作物及周圍的地面上,從而達到及時補充水分的目的。該系統(tǒng)具有用水量少、沖擊力小的灌溉特性,適用于栽培密度大、植株柔軟細嫩的植物。自動澆花器的誕生是隨著人們生活水平的提高和生活節(jié)奏的加快而誕生的一種懶人園藝用品。它把微噴的概念應用于家庭盆花澆灌中,通過相應的改進,達到合理給盆花自動澆水的目的。早在很多年前,國外就已經開始普及,國內使用的電子類自動澆花器多數(shù)從國外進口的,價格昂貴,但質量比較可靠。不過這并不太適用于國內,目前國內外比較流行的是玻璃制作的自動澆花器。這種類型的澆花器多數(shù)在我國山西和浙江一帶加工生產的,價格比較低廉,實用性沒有電子類自動澆花器好。隨著國內居民消費水平和生活質量的提高,居家園藝市場異?;鸨怯捎谏罟?jié)奏加快,種花容易養(yǎng)花難的問題暴露出來,而養(yǎng)花最重要的問題就是澆水問題,研究表明花草80%以上的死亡由于澆水不及時引起,因此國內商家已經看到了這種需求潛力。目前這類小居家用品的廠家主要集中在廣東,上海,浙江一帶。現(xiàn)在市面上所出售的自動澆花器主要有以下幾類:⑴電子類自動澆花器電子類自動澆花器又叫時控噴淋裝置,系統(tǒng)構成為:主機(或者控制器)、主管(可以是花園管也可以是4/7mm的微噴淋管)、分水接頭(3通、4通、5通、6通、分水器)、副管(3/5mm)噴淋管(霧化噴頭、旋轉噴頭、折射霧化噴頭等)。電子類自動澆花器根據(jù)電源的不同分為交流電自動澆花器和電池自動澆花器兩種??刂破鞯囊话阈阅苡校弘姶砰y控制;智能時控電路?微電腦芯片控制;適用電源為AC220V/50HZ;最適宜水壓0.3-0.6Mpa;待機功率(4VA,澆水時<12VA);可控制連續(xù)作業(yè)時間是1分鐘至168個小時;可每天自動完成十次以上澆水作業(yè),可每天、隔天、隔多天自動循環(huán)進行澆水,手動自動兩用;每天計時誤差小于正負3秒;電器適應環(huán)境溫度為-10~50℃;相對濕度<90%RH。⑵玻璃、陶瓷類自動澆花器玻璃、陶瓷類自動澆花器又叫自動滲水裝置,它由本身材質的物理結構構成,根據(jù)器具的物理滲水原理完成自動澆灌,當自動澆水器內部存水,自身形成一定的壓力,當遇到干燥的土壤,水就會自上而下的流出,當土壤濕潤以后,會形成一個堵塞壓力,從而導致水流速度變慢或者停止。器具工藝不同,效果也不一樣,當然也因土壤的疏松情況決定器具內水流的速度。當前傳感器技術與單片機技術發(fā)展迅速,其應用逐步由工業(yè)、軍事等領域向其他領域滲透,已經和我們的日常生活息息相關。而且智能家居概念也越來越受人們的推崇,因此,微電腦控制的電子類自動澆花系統(tǒng)有很好的發(fā)展前景。1.3畢業(yè)設計所采用的研究方法和手段本次畢業(yè)設計是設計一種單片機控制的自動澆水系統(tǒng),實現(xiàn)自動澆水的自動化系統(tǒng)。該系統(tǒng)可對土壤的溫濕度進行監(jiān)控,并對作物進行適時、適量的澆水。其核心是單片機和溫濕度傳感器以及澆水驅動電路構成的檢測控制部分。主要研究土壤濕度與澆水量之間的關系、澆灌控制技術及設備系統(tǒng)的硬件、軟件編程各個部分。檢測部分,單片機選用AT89C51單片機,溫濕度傳感器選用SHT-11溫濕度傳感器。SHT-11采用COMsens專利傳感器技術將溫度濕度傳感器、A/D轉換器、數(shù)字接口、校準數(shù)據(jù)存儲器、標準I2C總線等電路全部集成在一個芯片內。。土壤溫濕度傳感器可將檢測到的土壤溫濕度模擬量放大轉換成數(shù)字量通過單片機內程序控制精確的將溫度與濕度分別顯示在LCD顯示屏上,同時通過單片機內的中斷服務程序判斷是否要給花澆水,若需澆水則單片機系統(tǒng)發(fā)出澆水信號并經放大驅動設備開啟電磁閥進行澆水若不需澆水則進行下一次循環(huán)檢測。第基于單片機控制的家庭自動澆花機設計定時澆花方案的設計定時定量澆花是每天規(guī)定的時間開始澆花,設置澆花時長,比如1分鐘,1分鐘后停止?jié)不?。具體硬件:安裝了2個三位共陽數(shù)碼管和1個兩位共陽數(shù)碼管,用以顯示時間和澆花時間的長短。按鍵控制時間調整和時間設置調整,并有一個按鈕根據(jù)不同花卉所需水量的不同,設置澆花時間長短,在數(shù)碼管上顯示出來,1302芯片實現(xiàn)時間保持,斷電時不影響時間。這里可假設每天早上7點20分自動給花卉澆水,澆花時間為1分鐘,到了早上的7點20分,單片機控制智能澆花器開始澆花,單片機p2.0引腳接繼電器,繼電器接電磁閥,電磁閥控制水流,到了7點20分,給單片機一個指令,setb02.0,三級管導通,這樣繼電器線圈有電流經過,對應的常開觸點閉合,使得電磁閥線圈得電,此時電磁閥門由閉合變成斷開,水流經過,給花卉澆水,1分鐘時間到,給單片機一個指令clrp2.0,這樣單片機p2.0引腳輸出低電平,三極管截止,繼電器線圈沒有電流經過,常開觸點恢復為斷開,電磁閥線圈失電,此時電磁閥門閉合,水流停止。這里的時間是顯示在數(shù)碼管上,通過按鍵控制,時間可調整,同時澆花的時間也可以通過按鍵設置,另外澆花時間的長短也可以通過按鍵調整。同時加入1302芯片,為了斷電時不影響時間正常,防止每次斷電后都要重新調整是時間。圖3為定時定量澆花結構圖。圖1智能澆花先通過按鍵設定濕度,這里選用的是溫濕度傳感器是SHT-11濕度傳感器,SHT-11是一款專門為用戶設計自身產品而提供的數(shù)字化溫濕度探頭,其濕度測量量程為1%~99%RH,分辨率為0.5%RH,測量精度為±3.0%RH(典型值);溫度測量范圍為-25~+60℃,分辨率為0.0625℃,測量精度為±0.5℃;響應時間典型值為5s;工作電壓范圍為4.5~5.5V。LTM8901將測量結果直接輸出為數(shù)字信號,通過“一線式總線”串行傳送給單片機,不需要進行模數(shù)轉換,減少了元件,簡單方便。利用SHT-11溫濕度傳感器檢測到溫濕度,傳送到單片機進行處理,溫濕度顯示在LCD上,當濕度低于設定值時,給單片機一個指令,sethp2.0,繼電器線圈有電流經過,對應的常開觸點閉合,使電磁閥線圈得電,此時電磁閥門由閉合變成斷開,進行澆花,當?shù)扔诨蚋哂谠O定值時,clrp2.0,繼電器線圈失電,對應常開觸點斷開,電磁閥線圈失電,閥門閉合,水無法流過,停止?jié)不?。濕度控制澆花結構如圖4所示。圖2溫濕度控制澆花結構圖智能澆花的外部結構圖如圖3所示圖32.3本設計采用的方案和優(yōu)勢由于我們的設計要求是通過測量土壤的溫濕度來判斷是否給花澆水,所以我們采用智能澆水這種方式。我采用的是溫濕度傳感器SHT-11來測土壤的溫濕度,用DS1302芯片進行對時間的設置,用LCD對溫濕度值和時間進行顯示,也加了一個蜂鳴器,SHT-11的兩個探針直接插入到土壤中,然后SHT-11把測到的溫濕度值直接傳給單片機AT89C51,我事先用鍵盤設定了最適合植物生長的溫濕度值,這時單片機就會把真實值和設定值進行比較,如果設定的值高于真實值,那么蜂鳴器就會先報警,然后單片機就會輸出一個信號,p2.0就置高電平,這時就會有電流通過,而電磁閥就會打開而驅動水龍頭打開從而進行給花澆水,而這種設計的優(yōu)勢就在于能夠完全實現(xiàn)自動化,不需要人去管理,還有一個好處就是能夠給花澆最適量的水,給好最合適的生成環(huán)境。本設計的硬件總體設計圖4驅動硬件設計框圖圖5控制器電路圖硬件電路的設計AT89C51單片機51系列單片機最早有Intel公司推出,主要有8031系列,8051系列。后來Atmel公司以8051的內核為基礎推出了AT89系列單片機。其中AT89C51、AT89C52、AT89S51、AT89S52等單片機完全兼容8051系列單片機,所有的指令功能也是一樣的。就是功能做了一系列的擴展,比如說AT89S系列都支持ISP功能,AT89S52、AT89S8252增加了內部WDT功能,增加了一個定時器等功能。為了學習簡單Atmel也推出了8051指令完全一樣的AT89C2051、AT89C4051等單片機,這些單片機可以看成精簡型的8051單片機。比較適合初學者的需要Avr單片機也是Atmel公司的產品,最早的就是AT90系列單片機,現(xiàn)在很多AT90單片機都轉型給了Atmega系列和Attiny系列,Avr單片機最大的特點就是精簡指令型單片機,執(zhí)行速度,據(jù)我所知是8位MCU中最快的一種單片機(相同的振蕩頻率下)。學習AVR的單片機當然可以直接學習,但是建議還是從51系列起。PIC單片機是Mirochip公司的產品,它也是一種精簡指令型的單片機,指令數(shù)量比較少,中檔的PIC系列僅僅有35條指令而已,低檔的僅有33條指令。但是如果使用匯編語言編寫PIC單片機的程序有一個致命的弱點就是PIC中低端單片機里有一個翻頁的概念,編寫程序比較麻煩,但是我個人認為PIC還是一個不錯的8位MCU。初學單片機一般是選用51系列的單片機,比如說Itmel公司的8051系列,Atmel的AT89系列,STC公司的51系列等等都可以算是51系列單片機。這些單片機的指令系統(tǒng)是一樣的。外面出的資料也是最多。建議選擇Atmel的At89系列系列芯片,出的資料最多。如果你自己要做實驗,建議選擇AT89S52AT89S51AT89S8252等芯片學習,因為這些“S”的芯片全部支持ISP(在線燒錄)只要一根下載線就可以了(建議選擇AVR的下載線,為了以后能同時下載AVR的芯片的程序考慮),編譯軟件可以到上下載。燒錄軟件就選雙龍的SLISP就可以了。這樣學習的話無需使用昂貴的編程器,只要一根廉價的下載線就可以了。這類也可以同時進行SPI(同步串行擴展接口),和USART(串行方式通用同步/異步收發(fā)器)的學習。而且學習8051類型片除了資料多以外還有一個好處就是它屬于CISC(復雜指令集)結構型單片機。指令系統(tǒng)比較完全,利用匯編語言寫程序比較簡單,易懂。而且它也有keilC51的C編譯器??梢岳肅語言來寫程序。當然51類單片機還有很多缺點:1.運行速度很慢,(因為是CISC(集中指令)結構,而且芯片為了抗干擾采用了12分頻的方法)2.所有的I/0口都是準雙向口,I/0口的驅動能力弱。(但是AT89的灌電流比較大,大概有20mA左右)3.芯片里面的P0口沒有上拉電阻(P1,P2,P3口有上拉電阻)如果要輸出高電平或者要定義成輸入口,一般要外接電阻上拉。4.芯片不能定義成內部復位方式,只能用外部微分電路復位。5.芯片內部沒有RC振蕩,如要芯片正常工作,需要外加振蕩源(比如晶振,RC振蕩,PLL振蕩等)6.功耗比較高,抗干擾能力也不是很強。但是還是建議選擇8051類單片機學習,因為這是學習其他8位單片機的基礎。51如果學好了,學習其他單片機上手非??臁=ㄗh從匯編語言開始學起,搞懂所有指令的意義,以及如何運行的。等熟悉了以后再學C來寫程序。千萬別抄寫人家一段程序,結果自己沒有弄懂直接把程序寫芯片里了,然后芯片怎么運行的都不知道。其他常見單片機如下:Microchip的PIC系列單片機Atmel的AVR系列單片機Freescal的MC系列Motorola的6800系列Zilog的Z80系列(這個是比51還要老的單片機)義隆公司的EM系列麥肯公司的MDT系列合泰的HT系列現(xiàn)代的ABOV系列意法半導體的ST系列單片機還有就是ARM系列32位的單片機。還有比如說NECLG三星philip等公司都做單片機的對于我這個初學單片機的學生來說,我就選擇AT89C51單片機來做本次的設計。AT89C51單片機AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低電壓,高性能CMOS8位微處理器,俗稱單片機。單片機的可擦除只讀存儲器可以反復擦除100次。該器件采用ATMEL高密度非易失存儲器制造技術制造,與工業(yè)標準的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器,AT89C51單片機為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。單片機的基本組成AT89C51由一個8位的微處理器,128KB片內數(shù)據(jù)存儲器RAM,21個特殊功能寄存器SFR,4KB片內程序存儲器FlashROM,64KB可尋址片內外統(tǒng)一編址的ROM,64KB可尋址片外的RAM,4個8位并行I/O接口(P0—P3),一個全雙工通用異步串行接口UART,兩個16位的定時器/計數(shù)器,具有位操作功能的布爾處理機及位尋址功能的五個中斷源、兩個優(yōu)先級的中斷控制系統(tǒng)以及片內振蕩器和時鐘產生電路。其基本組成框圖如圖6所示。圖6AT89C51的基本組成3.1.2AT89C51主要特性AT89C51主要特性有:·與MCS-51兼容·4K字節(jié)可編程閃爍存儲器

·壽命:1000寫/擦循環(huán)

·數(shù)據(jù)保留時間:10年

·全靜態(tài)工作:0Hz-24Hz

·三級程序存儲器鎖定

·128*8位內部RAM

·32可編程I/O線

·兩個16位定時器/計數(shù)器

·5個中斷源

·可編程串行通道

·低功耗的閑置和掉電模式

·片內振蕩器和時鐘電路管腳說明AT89C51的引腳圖如圖7所示。各引腳的具體說明如下:VCC:供電電壓。GND:接地。P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當P0口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時,P0口作為原碼輸入口,當FIASH進行校驗時,P0輸出原碼,此時P0外部必須被拉高。

P1口:P1口是一個內部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內部上拉的緣故。在FLASH編程和校驗時,P1口作為第八位地址接收。P2口:P2口為一個內部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當P2口被寫“1”時,其管腳被內部上拉電阻拉高且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內部上拉的緣故。P2口當用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進行存取時,P2口輸出地址的高八位。在給出地址“1”時,它利用內部上拉優(yōu)勢,當對外部八位地址數(shù)據(jù)存儲器進行讀寫時,P2口輸出其特殊功能寄存器的內容。P2口在FLASH編程和校驗時接收高八位地址信號和控制信號。圖789c51結構圖P3口:P3口管腳是8個帶內部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當P3口寫入“1”后,它們被內部上拉為高電平,并用作輸入口。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。P3口也可作為AT89C51的一些特殊功能口,如表2-1所示。同時,P3口為閃爍編程和編程校驗接收一些控制信號。表2-1P3口的特殊功能引腳名稱功能說明引腳名稱功能說明P3.0RXD串行輸入口P3.4T0記時器0外部輸入P3.1TXD串行輸出口P3.5T1記時器1外部輸入P3.2外部中斷0P3.6外部數(shù)據(jù)存儲器寫選通P3.3外部中斷1P3.7外部數(shù)據(jù)存儲器讀選通RST:復位輸入。當振蕩器復位器件時,要保持RST腳兩個機器周期的高電平時間。ALE/PROG:當訪問外部存儲器時,地址鎖存允許的輸出電平于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當用作外部數(shù)據(jù)存儲器時,將跳過一個ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時,ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的/PSEN信號將不出現(xiàn)。

/VPP:當/EA保持低電平時,則在此期間外部程序存儲(0000H-FFFFH),不管是否有內部程序存儲器。注意加密方式1時,將內部鎖定為RESET;當端保持高電平時,此間內部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。XTAL1:反向振蕩放大器的輸入及內部時鐘工作電路的輸入。XTAL2:來自反向振蕩器的輸出。振蕩電路和時鐘在AT89C51芯片內部,有一個振蕩電路和時鐘發(fā)生器,引腳XTAL1和XTAL2之間接入晶體振蕩器和電容后構成內部時鐘方式。也可以使用外部振蕩器,由外部振蕩器產生的信號直接加載到振蕩器的輸入端,作為CPU的時鐘源,稱為外部時鐘方式。采用外部時鐘方式時,外部振蕩器的輸出信號接至XTAL1,XTAL2懸空。兩種方式的電路連接如圖2-5所示。大多數(shù)的單片機采用內部時鐘方式,本次設計亦然。(a)使用片內振蕩器接法(b)使用片外振蕩器接法圖8AT89C51振蕩器的連接方式在AT89C51單片機內部,引腳XTAL2和引腳XTAL1連接著一個高增益反相放大器,XTAL1引腳是反相放大器的輸入端,XTAL2引腳是反相放大器的輸出端。芯片內部的時鐘發(fā)生器是一個二分頻觸發(fā)器,振蕩器的輸出為其輸入,輸出為兩相的時鐘信號(狀態(tài)時鐘信號),頻率為振蕩器輸出信號頻率的1/2。狀態(tài)時鐘經三分頻后為低字節(jié)地址鎖存信號ALE,頻率為振蕩器輸出信號頻率的1/6,經六分頻后為機器周期信號,頻率為/12。、一般取20~30pF的陶瓷電容器。AT89C51的中斷系統(tǒng)為了提高系統(tǒng)的工作效率,AT89C51單片機設置了中斷系統(tǒng),采用中斷方式與外設進行數(shù)據(jù)傳送。所謂“中斷”,是指單片機在執(zhí)行某一段程序的過程中,由于某種原因(如異常情況或特殊請求),單片機暫時中止正在執(zhí)行的程序,而去執(zhí)行相應的處理程序,待處理結束后,再返回到被打斷的程序處,繼續(xù)執(zhí)行原程序的過程。(1)中斷系統(tǒng)結構和中斷控制AT89C51有六個固定的可屏蔽中斷源,分別是三個片內定時器/計數(shù)器溢出中斷TF0、TF1和TF2,兩個外部中斷(P3.2)和(P3.3),一個片內串行口中斷TI或RI。6個中斷源有兩級中斷優(yōu)先級,可形成中斷嵌套。它們在程序存儲器中各有固定的中斷入口地址,由此進入相應的中斷服務程序。引起6個中斷源的符號、名稱及產生的條件如下::外部中斷0,由P3.2端口線引入,低電平或下降沿引起;:外部中斷1,由P3.3端口線引入,低電平或下降沿引起;T0:定時器/計數(shù)器0中斷,由T0記滿回零引起;T1:定時器/計數(shù)器1中斷,由T1記滿回零引起;TI/RI:串行口I/O中斷,串行端口完成一幀字符發(fā)送/接收后引起中斷;T2:定時器/計數(shù)器2中斷,由T2記滿回零引起。在本次設計中采用了定時器/計數(shù)器0中斷,它的中斷控制寄存器包括定時器/計數(shù)器0、1控制寄存器TCON和中斷允許控制寄存器IE。①定時器控制寄存器TCONTCON是定時器/計數(shù)器和外部中斷兩者合用的一個可位尋址的特殊功能寄存器,它的格式如下:D7D6D5D4D3D2D1D0TF1TR1TF0TR0IE1IT1IE0IT0各控制位定義如下:TF1:定時器/計數(shù)器1溢出中斷請求標志位。當定時器/計數(shù)器1計數(shù)產生溢出時,由內部硬件置位TF1,向CPU響應中斷并轉向該中斷服務程序執(zhí)行時,由硬件內部自動TF1清0。TR1:定時器/計數(shù)器1啟動/停止位。由軟件置位/復位控制定時器/計數(shù)器1的啟動或停止計數(shù)。TF0:定時器/計數(shù)器0溢出中斷請求標志位。當定時器/計數(shù)器0計數(shù)產生溢出時,由內部硬件置位TF0,向CPU響應中斷并轉向該中斷服務程序執(zhí)行時,由硬件內部自動TF1清0。TR0:定時器/計數(shù)器0啟動/停止位。由軟件置位/復位控制定時器/計數(shù)器0的啟動或停止計數(shù)。IE1:外部中斷請求標志位。當CPU檢測到INT0低電平或下降沿且IT1=1時,由內部硬件置位IE1標志位(IE1=1)向CPU請求中斷,當CPU響應中斷并轉向該中斷服務程序執(zhí)行時,由硬件內部將IE1清0。IE0:外部中斷請求標志位。當CPU檢測到INT0低電平或下降沿且IT0=1時,由內部硬件置位IE0標志位(IE0=1)向CPU請求中斷,當CPU響應中斷并轉向該中斷服務程序執(zhí)行時,由硬件內部將IE0清0。IT1:用軟件置位/復位IT1來選擇外部中斷INT1是下降沿觸發(fā)還是電平觸發(fā)中斷請求。當IT1置1時,則外部中斷INT1為下降沿觸發(fā)中斷請求,即INT1端口由前一個機器周期的高電平跳變?yōu)橄乱粋€機器周期的低電平,則觸發(fā)中斷請求;當IT1復位清0,則INT1的低電平觸發(fā)中斷請求。IT0:由軟件置位/復位IT0來選擇外部中斷INT0是下降沿觸發(fā)還是低電平觸發(fā)中斷請求,其控制原理同IT1。②中斷允許控制寄存器 中斷允許控制寄存器IE的格式如下:D7D6D5D4D3D2D1D0EAET2ESET1EX1ET0EX0各控制位定義如下:EA:中斷總控制為。EA=1,CPU開中斷,它是CPU是否響應中斷的前提,在此前提下,如果某中斷源的中斷允許位置1,才能響應該中斷源的中斷請求。如果EA=0,無論哪個中斷源有請求,CPU都不予回應。ET2:定時器/計數(shù)器T2中斷控制位,ET2=1,允許T2計數(shù)溢出中斷;ET2=0,禁止T2中斷。ES:串行口中斷控制位,ES=1,允許串行口發(fā)送/接收中斷;ES=0禁止串行口中斷。ET1:定時器/計數(shù)器T1中斷控制位,ET1=1,允許T1計數(shù)溢出中斷;ET1=0,禁止T1中斷。EX1:外部中斷1控制位,EX1=1,允許中斷;EX1=0,禁止外部中斷1中斷。ET0:定時器/計數(shù)器T0中斷控制位,ET0=1,允許T0計數(shù)溢出中斷;ET0=0,禁止T0中斷。EX0:外部中斷0控制位,EX0=1,允許中斷;EX0=0,禁止外部中斷0中斷[1]。(2)中斷響應過程CPU中斷處理從響應中斷、控制程序轉向對應的中斷矢量地址入口處執(zhí)行中斷服務程序,到執(zhí)行返回(RETI)指令為止。中斷響應可分為以下幾個步驟:①保護斷點,即保存下一個將要執(zhí)行的指令的地址,把這個地址送入堆棧。②尋找中斷入口,根據(jù)6個不同的中斷源所產生的中斷,中斷系統(tǒng)必須能夠正確地識別中斷源,查找6個不同的入口地址。以上工作是由單片機自動完成的,與編程者無關。在6個入口地址處存放有中斷處理程序。③執(zhí)行中斷處理程序。④中斷返回:執(zhí)行完中斷指令后,從中斷處返回到主程序,繼續(xù)執(zhí)行[2]。定時器/計數(shù)器AT89C51單片機內部設有兩個16位可編程定時器/計數(shù)器,即定時器/計數(shù)器0和定時器/計數(shù)器1。除此之外還有一個可編程定時器/計數(shù)器2。定時器/計數(shù)器0和1簡介定時器/計數(shù)器0和1內部有一個計數(shù)寄存器(和),它實際上是一個累加寄存器進行加1計數(shù)。定時器和計數(shù)器共用這個寄存器,但定時器/計數(shù)器同一時刻只能工作在其中一種方式下,不可能既工作在定時器方式,同時又工作在計數(shù)器方式。這兩個工作方式的根本區(qū)別是在于計數(shù)脈沖的來源不同。工作在定時器方式時,對振蕩源12分頻的脈沖計數(shù),即每過一個機器周期(1個機器周期在時間上和12個振蕩周期的時間相等),計數(shù)寄存器中的值就加1。工作在計數(shù)器方式時,計數(shù)脈沖不是來自內部的機器周期,而是來自外部輸入。對定時器/計數(shù)器0、定時器/計數(shù)器1,計數(shù)脈沖分別來自T0、T1引腳。當這些引腳上輸入的信號產生高電平至低電平的負跳變時,計數(shù)寄存器的值就加1。單片機每個機器周期都要對對外部輸入進行采樣,如果在第一個周期采得的外部信號為高電平,在下一個周期采得的信號為低電平,則在再下一個機器周期,即第三個機器周期計數(shù)寄存器的值才增加1[1]。(1)與定時器/計數(shù)器0和1相關的特殊功能寄存器①計數(shù)寄存器TH0、TL0和TH1、TL1計數(shù)寄存器是16位的,再啟動定時器時需要對它設定初始值。是計數(shù)寄存器的高8位,是計數(shù)寄存器的低8位。TH0、TL0對應T/C0,TH1、TL1對應T/C1。②定時器/計數(shù)器控制寄存器TCON定時器/計數(shù)器控制寄存器TCON的格式如下:TF1TR1TF0TR1IE1IT1IE0IT0TF1為T/C1的溢出標志,溢出時由硬件置1,進入中斷后又由硬件自動清0。TR1為T/C1的啟動和停止位,由軟件控制。置1時啟動T/C1;清0時停止T/C1。TF0和TR0的功能和使用方法以TF1、TR1類似,只是它們針對的是T/C0。③定時器/計數(shù)器方式控制寄存器TMOD定時器/計數(shù)器方式控制寄存器TMOD的格式如下所示。它的控制位都是由軟件控制的,其中高4位是針對T/C1的,低4位是針對T/C0的,其功能和使用方法相似。GATEM1M0GATEM1M0現(xiàn)在以T/C0來說明各控制位的使用方法:GATE是一個選通位,當GATE位置1時,T/C0受到雙重控制,只有為高電平且TR0位置1是T/C0才開始工作,當GATE位清0時,T/C0僅受到TR0的控制。用來選擇工作在定時器方式還是計數(shù)器方式。當該位置1時工作在計數(shù)器方式,清0時工作在定時器方式。M1和M0聯(lián)合起來用于選擇操作模式,一共有四種操作模式,如表2-2所示。表2-2操作模式M1M0操作模式計數(shù)器配置00模式013位計數(shù)器10模式2自動重轉載的8位計數(shù)器10模式2自動重轉載的8位計數(shù)器11模式3T0分為兩個8位計數(shù)器,T1停止計數(shù)溫濕度傳感器現(xiàn)在研發(fā)的溫濕度的傳感器種類很多,由于有一體化的傳感器,就比如SHT-11,SHT-10,DHT10等,選用溫濕度傳感器要從精度和長期穩(wěn)定性、溫度系數(shù)、濕度系數(shù)、溫濕度傳感器的供電、互換性、溫濕度校正、根據(jù)對以上幾個型號的傳感器參數(shù)的對比,我決定選用SHT-11的傳感器,這個傳感器既能滿足設計的要求,也不浪費資源,也適合初學者學習。數(shù)字溫濕度傳感器SHT-11數(shù)字溫濕度傳感器SHT—11采用COMSens專利傳感器技術將溫度濕度傳感器、A/D轉換器、數(shù)字接口、校準數(shù)據(jù)存儲器、標準I2C總線等電路全部集成在一個芯片內(其內部結構如圖9所示)[4]。圖9數(shù)字溫濕度傳感器SHT—11的內部結構圖由它的內部結構可看出SHT-11具有不同保護的“微型結構”檢測電極系統(tǒng)與聚合物覆蓋層組成了傳感器芯片的電容,這樣除保持了電容式濕敏器件的原有特性外還可抵御來自其它方面的影響。將溫度傳感器與濕度傳感器結合在一起構成了一個單一的個體,這就使得測量精度提高并且可以精確得出露點,而不會產生由于溫度與濕度傳感器之間隨溫度梯度變化而引起的誤差。而且將傳感器元件、信號放大器、模/數(shù)轉換器、OTP校準數(shù)據(jù)存儲器、I2C工業(yè)標準串行總線等,電路功能部件全部采用CMOS技術與溫濕度傳感器一起放置在一個芯片內。這不僅使信號強度增加,更重要的是長期穩(wěn)定性也得到增強,這對傳感器系統(tǒng)是極為重要的。同時,模/數(shù)轉換也在一個芯片內同時完成,這可使信號對噪聲不敏感,尤其重要的是,在傳感器芯片數(shù)據(jù)存儲器內裝載的針對每一只傳感器的校準數(shù)據(jù)保證了每一只傳感器都有相同的功能,可以實現(xiàn)100%的互換。此外,。該傳感器還具有I2C二線串行總線接口,這可使傳感器方便的與任何類型的微處理器、微控制器接口相連,為溫濕度的微機化測試帶來極大的方便,這不僅能減少溫濕度測試系統(tǒng)的開發(fā)時間,還可節(jié)約數(shù)字化接口的軟硬件成本。該傳感器還有反應迅速、高精度、低功耗等優(yōu)點。濕度值輸出SHT-11可通過I2C總線直接輸出數(shù)字量濕度值,其相對濕度輸出特性曲線如圖3-2所示。從中可以看出,SHT11的輸出特性呈一定的非線性,為了補償濕度傳感器的非線性以獲取準確數(shù)據(jù),可按式(3-1)修正濕度值:=式中,SORH表示傳感器相對濕度測量值,系數(shù)取值分別如下:12位時:;8位時:。溫度值輸出SHT-11溫度傳感器的線性非常好,可用下列公式(3-2)將溫度數(shù)字輸出轉換成實際溫度值T:式中,表示傳感器溫度測量值。當電源電壓為5V,溫度傳感器的分辨率為14位時,,;當溫度傳感器的分辨率為12位時,,。圖10相對濕度輸出特性曲線SHT-11的特性SHT-11傳感器的特點如下:1)相對濕度和溫度一體測量;2)精確露點測量;3)全量程標定,無需重新標定即可互換使用;4)超快響應時間;5)兩線制數(shù)字接口(最簡單的系統(tǒng)集成,較低的價格);6)超小尺寸(7.5×5×2.5mm);7)高可靠性(工業(yè)CMOS工業(yè));8)優(yōu)化的長期穩(wěn)定性;9)可完全浸沒水中;10)基于請求式測量,因此低能耗;11)具有濕度傳感器元件的自檢測能力;12)傳感器元件加熱應用,亦可獲得極高的精度和穩(wěn)定性。SHT-11的詳細規(guī)格1.相對濕度傳感器(RH)的性能參數(shù)如下:范圍:0—100%RH;精度:±3%RH(20—80%RH);響應時間:≤4s;復現(xiàn)性:±0.1%RH;分辨率:0.03%RH;工作溫度:-40℃—+120℃。2.溫度傳感器(T)的性能參數(shù)如下:范圍:-40℃—+120℃;精度:±0.5℃(在25℃時),±0.9℃(在0—40℃時);響應時間:≤20s;復現(xiàn)性:±0.1℃;分辨率:0.01℃。3.電器數(shù)據(jù)能耗:典型30uW(@5V,12-bit,測量周期2秒)典型1uW(@2.4V,8-bit,測量周期2分);供電范圍:2.4V—5.5V;檢測電流:0.5mA;待機電流:0.3uV。SHT-11的引腳SHT-11的引腳圖如圖11所示。圖11SHT-11的引腳圖引腳簡介引腳1—GND接地端;SHT-11的供電電壓為0.4~5.5V,傳感器上電后要等待11ms以越過“休眠”狀態(tài)。在此期間無需發(fā)送任何指令,電源引腳(VDD,GND)之間可增加一個100uF的電容,用以去耦濾波。引腳2—DATA雙向串行數(shù)據(jù)線;SHT-11的串行接口,在傳感器的讀取及電源損耗方面都做了優(yōu)化處理。DATA三態(tài)門用于數(shù)據(jù)的讀取。引腳3—SCK串行時鐘輸入;用于微處理器與SHT-11之間的通訊同步。由于接口包含了完全靜態(tài)邏輯,因而不存在最小SCK頻率。引腳4—VDD電源端,0.4—5.5V電源引腳5—8—NC空管腳7SHT-11的的內部命令與接口時序(1)SHT-11的內部命令SHT-11傳感器共有5條用戶命令,具體命令格式見表3-1。在程序編程時根據(jù)命令編號來設定SHT-11的工作狀態(tài)。例如:0x03設置SHT-11為溫度測量,0x05是設置SHT-11為濕度測量[5]。表3-1SHT-11傳感器命令列表命令編號說明測量溫度00011溫度測量測量濕度00101濕度測量讀寄存器00111“讀”狀態(tài)寄存器寫寄存器00110“寫”狀態(tài)寄存器軟啟動11110重啟芯片,清除狀態(tài)記錄器的錯誤記錄11毫秒后進入下一個命令(2)SHT-11的命令順序及命令時序1)傳輸開始初始化傳輸時,應發(fā)出“傳輸開始”命令,具體為SCK是高電平時,DATA高電平變?yōu)榈碗娖?并在下一個SCK為高時將DATA升高。接著傳輸開始下一個命令,包含3個地址位(目前只支持“000”)和5個命令位,通過DATA腳的ack位處于低電位表示SHT11正確收到命令。2)連接復位順序如果與SHT11傳感器的通訊中斷,下列信號順序會使串口復位:當使DATA線處于高電平時,觸發(fā)SCK9次以上(含9次),并發(fā)一個前述的“傳輸開始”命令。3)溫濕度測量時序當發(fā)出了溫(濕)度測量命令后,控制器就要等到測量完成后才開始動作。使用8/12/14位的分辨率測量分別需要大約11/55/210ms。為表明測量完成,SHT11會使DATA為低電平,此時控制器必須重新啟動SCK,然后SHT11傳送兩字節(jié)測量數(shù)據(jù)與1字節(jié)CRC校驗和到控制器,控制器必須通過使DATA為低來確認每一字節(jié),通訊在確認CRC數(shù)據(jù)位后停止。如果沒有用CRC28校驗和,則控制器就會在測量數(shù)據(jù)LSB后,保持ack為高時停止通訊,SHT11在測量和通訊完成之后會自動返回睡眠模式。需要注意的是,為使SHT11溫升高低于0.1℃,則此時工作頻率不能大15%(如:12位精確度時,每秒最多進行3次測量)。測量溫度和測量濕度命令所對應的時序如圖12所示。圖12測量溫濕度時序圖4)加熱控制將傳感器芯片中的加熱開關接通,傳感器溫度大約增加5℃,加熱用途如下:其一,通過對啟動加熱器前后的溫、濕度進行比較,可以正確地區(qū)別傳感器的功能;其二,在相對濕度較高的環(huán)境下,傳感器可通過加熱來避免冷凝。5)低電壓檢測SHT11的工作極限功能可以檢測VDD電壓是否低于2.45V,準確度為±0.1V。3.3.2.8SHT-11的狀態(tài)寄存器SHT-11的狀態(tài)寄存器的類型及其說明見表3-2。表3-2SHT-11狀態(tài)寄存器及說明位類型說明缺省說明7保留06讀工檢限X5保留04保留0續(xù)表位類型說明缺省說明3只用于試驗,不可以使用02讀/寫加熱0關1讀/寫不從OTP重下載0重下載0讀/寫‘1’—8位相對濕度,12位溫度分辨率;‘0’—12位相對濕度,14位溫分辨率012位相對濕度,14溫度電路連接圖13SHT-11與AT89C51電路連接時鐘芯片DS1302是Dallas公司推出的高性能低功耗涓流充電時鐘芯片??赏ㄟ^簡單的串行接口與單片機進行通信,光感應用于智能儀器、單片機系統(tǒng)和家用時鐘電路等領域。DS1302時鐘芯片的簡介DS1302涓流充電計時芯片包含一個實時時鐘/日歷和31字節(jié)的靜態(tài)RAM。它通過一個簡單的串行接口與微處理器進行通信[8]。實時時鐘/日歷提供秒,分鐘,小時,周,日期,月份和年的有關信息。對于少于31天的月份,每月月底的日期是自動調整的,包括對瑞年進行更正,時鐘運行可采用24小時制或帶AM/PM指示的12小時制。同步串行通信簡化了DS1302與微處理的接口。與時鐘/RAM通信只需三根線:、I/O(數(shù)據(jù)線)及SCLK(串行時鐘)。時鐘/RAM數(shù)據(jù)的讀/寫以每次一個字節(jié)或多達31個字節(jié)的多字節(jié)模式傳輸。DS1302設計為低功耗工作,保持數(shù)據(jù)和時鐘信息的功耗小于1uF引腳DS1302的引腳(引腳圖如圖4-1所示)及功能簡介如下:圖14DS1302引腳圖第1、2腳:Vcc1、Vcc2電源。第3腳:復位輸入端。第4腳:串行時鐘輸入端。第5腳:數(shù)據(jù)輸入/輸出端。第6、7腳:X1、X2是32.768kHz晶振輸入/輸出端。命令字節(jié)表4-1所示為命令字節(jié)格式。命令字節(jié)啟動每個字節(jié)的數(shù)據(jù)傳輸。該MSB(第7位)必須為邏輯1.如果是0,寫入DS1302操作將被禁用。第6位是邏輯1時指定RAM數(shù)據(jù)。第1至第5位規(guī)定特定寄存器作為輸入還是輸出。LSB(第0位)如果是邏輯0,指定一個寫操作(輸入);如果是邏輯1,執(zhí)行一個讀操作。命令字節(jié)總是從LSB(第0位)輸入。表4-1DS1302命令字節(jié)765432101RAMSCLKA4A3A2A1A0RD(1)及時鐘控制驅動輸入高電平可啟動所有的數(shù)據(jù)傳輸。輸入起到兩種功能:第一,啟動控制邏輯,允許地址/字節(jié)序列訪問移位寄存器。第二,信號提供了一種終止單字節(jié)或多字節(jié)數(shù)據(jù)傳輸?shù)姆椒āR粋€時鐘周期是一個上升沿序列,緊跟著下降沿。對于數(shù)據(jù)輸入,在時鐘周期的上升沿時間,數(shù)據(jù)必須正確;在時鐘周期的下降沿,數(shù)據(jù)位輸出。如果輸入低電平所有數(shù)據(jù)傳輸中止。I/O引腳變成高阻狀態(tài)。數(shù)據(jù)的傳輸如圖15所示。在上電時,必須是邏輯0,直到Vcc>2.0V.此外,當被驅動到邏輯1狀態(tài)時,SCLK必須為邏輯0。a)單字節(jié)傳送b)多字節(jié)傳送圖15數(shù)據(jù)傳送時序(2)數(shù)據(jù)輸入繼輸入寫命令字節(jié)的8個SCLK周期后,在接下來的8個SCLK周期的上升沿輸入數(shù)據(jù)字節(jié)。如果有額外的SCLK周期,將被忽略。數(shù)據(jù)輸入從位0開始。(3)數(shù)據(jù)輸出繼輸入寫命令的8個SCLK周期后,在接下來的8個SCLK周期的下降沿輸出數(shù)據(jù)字節(jié)。請注意,將被傳輸?shù)牡谝粋€數(shù)據(jù)位出現(xiàn)在命令字節(jié)最后一位被寫入后的第一個下降沿。只要維持高電平,如有附加的SCLK的周期,將重新轉發(fā)數(shù)據(jù)字節(jié)。此操作允許連續(xù)多字節(jié)模式讀取能力。此外,I/O引腳在每個SCLK的上升沿都是三態(tài)的。數(shù)據(jù)輸出開始于第0位。(4)多字節(jié)模式時鐘/日歷或由十進制存儲單元31(地址/命令1至5=邏輯1)尋址的RAM寄存器可以為多字節(jié)模式。如上所述,第6位指定時鐘或RAM和第0位指定讀或寫。在日歷/時鐘寄存器的地址9至31或RAM寄存器中的地址31不能存儲數(shù)據(jù)。在多字節(jié)模式中,讀或寫開始于地址0的第0位。當在多字節(jié)模式下寫時鐘寄存器時,必須按數(shù)據(jù)傳輸?shù)拇涡驅懭胧装藗€寄存器。然而,當在多字節(jié)模式寫入RAM時,為了數(shù)據(jù)的傳輸,沒有必要寫入所有的31個字節(jié)。每個被寫入的字節(jié)都將被傳輸?shù)絉AM,無論31個字節(jié)是否都被寫入。(5)DS1302內部寄存器DS1302內部寄存器地址及數(shù)據(jù)分配情況如表4-2所示。1)時鐘/日歷:時鐘/日歷包含在7個寫/讀寄存器中。數(shù)據(jù)以BCD碼形式包含在時鐘/日歷寄存器中。2)時鐘暫停標志:秒寄存器的第7位定義為時鐘暫停標志。當此位置1時,時鐘振蕩器停止,DS1302進入低功耗備用模式,電源消耗小于100nA。當此位置0時,時鐘將啟動。初始上電狀態(tài)未定義。3)AM-PM/12-24模式:DS1302能運行于12小時制或24小時制模式下。小時寄存器的第7位被定義為12或24小時模式選擇位。當其處于高電平時,選擇12小時模式。在12小時模式下,第5位是AM/PM位,其為邏輯高電平表示PM。在24小時模式下,第5位是第二個10小時位元(20-23)小時。當12/24位被改變時,小時數(shù)據(jù)一定要被重新初始化。表4-2DS1302的日歷、時鐘寄存器及控制字寄存器名命令字格式取值范圍位內容寫操作讀操作76543210秒寄存器80H81H00-59CH10SECSEC分寄存器82H83H00-59010MINMIN小時寄存器84H85H01-1200-2312/24010HRHRA/P日期寄存器86H87H01-28/29/30/310010DATEDATE月份寄存器88H89H01-1200010MMONTH星期寄存器8AH8BH01-0700000DAY年份寄存器8CH8DH00-9910YEARYEAR寫保護寄存器8EH8FH—WP0涓流充電寄存器90H91H—TCSDSRS時鐘多字節(jié)寄存器BEHBFH——RAM多字節(jié)寄存器FEHFFH——4)寫保護位:控制寄存器的第7位是寫保護位。首7位(第0至第6位)必須為0,讀取時始終讀0。對時鐘或RAM進行任何操作前,第7位必須為0。當寫保護位為高電平時,該位阻止對任何其他寄存器的寫操作。初始的上電狀態(tài)沒有定義。因此,在寫入該器件之前,應清除WP位。5)涓流充電寄存器:該寄存器控制DS1302的涓流特性。涓流充電選擇(TCS)位(第4至第7位)控制涓流充電器的選擇。為了阻止意外使能,只有1010模式使能涓流充電器。所有其他模式都禁用涓流充電器。DS1302上電時,涓流充電器被禁用。DS為二極管選擇位,RS為電阻選擇位。6)時鐘/日歷多字節(jié)模式:該時鐘/日歷命令字節(jié)指定多字節(jié)觸發(fā)模式操作。在此模式下,首8個時鐘/日歷寄存器可以從地址0的第0位開始被連續(xù)地讀取或寫入。當指定寫時鐘/日歷多字節(jié)模式時,如果寫保護位被設置為高電平,將沒有數(shù)據(jù)傳送到8個時鐘/日歷寄存器(包括控制寄存器)的任意一個。在多字節(jié)模式下,涓流充電器不可用。7)RAM:靜態(tài)RAM是RAM地址空間中連續(xù)編址的31×8字節(jié)。8)RAM多字節(jié)模式:RAM命令字節(jié)指定多字節(jié)模式操作。在此模式下,31個RAM寄存器從地址0的第0位開始被連續(xù)讀取或寫入。(6)晶振的選擇32.768kHz的晶振可通過引腳2和3(X1、X2)直接連接至DS1302。所選定的晶振應該加一個6pF的負載電容。(7)電源控制Vcc1在單電源與電池供電的系統(tǒng)中提供低電源的電池備份。Vcc2在雙電源系統(tǒng)中提供主電源,此時Vcc1連接到備份電源,以便在沒有主電源,以便在沒有主電源的情況下能保存時間信息以及數(shù)據(jù)。DS1302由Vcc1或Vcc2兩者中較大者供電。它與單片機連接后,單片機便可讀出其實時時間。連接示意圖如圖16所示。圖16DS1302與AT89C51連接圖液晶顯示器LCD液晶顯示器是一種低功耗液晶顯示器件。工作電流小,適合于儀表和低功耗系統(tǒng)。常用的有筆畫型液晶顯示器、點陣字符型液晶顯示器和圖形點陣式液晶顯示器。LCD液晶顯示器的原理是利用液晶的物理特性,通過電壓對其顯示區(qū)域進行控制,。有電就顯示黑色,這樣就顯示出圖形。液晶顯示器適應于大規(guī)模電路直接驅動,易于實現(xiàn)全彩色顯示的特點。目前被廣泛應用于計算機,數(shù)字攝像機等眾多領域。液晶顯示器的分類液晶顯示器按顯示圖案的不同可分筆段型LCD、字符型LCD和點陣圖型LCD三種[1]。筆段型筆段型是以長條狀作為基本單位顯示。該類型主要用于數(shù)字顯示,也可用于顯示西文字符或某些字符。這種段型顯示通常有6段、7段、8段、9段、14段和16段等,在形狀上與數(shù)碼管類似,總是圍繞數(shù)字“8”的結構變化。其中以7段顯示器常用,常用于數(shù)字儀表、電子儀器中。字符型字符型液晶顯示器是專門用來顯示英文和其他拉丁文字母、數(shù)字、符號等點陣型液晶顯示模塊。它一般由若干個5×8或5×11點陣組成,每個點陣顯示一個字符。這類模塊一般應用于數(shù)字尋呼機、數(shù)字儀表等電子設備中。點陣圖形型點陣圖形型是在一平板上排列多行多列的矩陣式的晶格點,點的大小可根據(jù)顯示清晰度來設計,可顯示數(shù)字、字母、漢字、圖像,甚至動畫。這液晶顯示器廣泛應用于手機、筆記本電腦等需要顯示大量信息的設備中。AMPIRE128×64帶中文字庫的128×64是一種具有4位/8位并行、2線或3線串行多種接口方式,內部含有國標一級、二級簡體中文字庫的點陣圖形液晶顯示模塊;其顯示分辨率為128×64,內置8192個16*16點漢字,和128個16*8點ASCII字符集。利用該模塊靈活的接口方式和簡單、方便的操作指令,可構成全中文人機交互圖形界面??梢燥@示8×4行16×16點陣的漢字.也可完成圖形顯示。低電壓低功耗是其又一顯著特點。由該模塊構成的液晶顯示方案與同類型的圖形點陣液晶顯示模塊相比,不論硬件電路結構或顯示程序都要簡潔得多,且該模塊的價格也略低于相同點陣的圖形液晶模塊。在本次設計中要求顯示溫度值,濕度值的同時顯示起表明作用的“溫度”與“濕度”兩組漢字。因此選用點陣圖形型的AMPIRE128×64。它的基本特性如下:?低電源電壓(VDD:+3.0--+5.5V);?顯示分辨率:128×64點;?內置漢字字庫,提供8192個16×16點陣漢字(簡繁體可選);?內置128個16×8點陣字符;?2MHZ時鐘頻率;?顯示方式:STN、半透、正顯;?驅動方式:1/32DUTY,1/5BIAS;?視角方向:6點;?背光方式:側部高亮白色LED,功耗僅為普通LED的1/5—1/10;?通訊方式:串行、并口可選;?內置DC-DC轉換電路,無需外加負壓;?無需片選信號,簡化軟件設計;?工作溫度:0℃-+55℃,存儲溫度:-20℃-+60℃。LCD128×64引腳功能AMPIRE128×64內置KS0108型圖形液晶模塊驅動,它的引腳功能表如表5-1所示。邏輯工作電壓:4.5V~5.5V;電源地(GND):0V;工作溫度:0~60℃(常溫)/-20~70℃(寬溫)。表5-1LCD128×64引腳功能表引腳號引腳名稱電平引腳功能描述1CS1/CS2H/L片選信號,芯片1/芯片2控制液晶左半屏/右半屏2GND0V電源地3VCC+5V電源正4V0—對比度(亮度)調整續(xù)表引腳號引腳名稱電平引腳功能描述5RSH/LRS=“H”,表示DB7~DB0為顯示數(shù)據(jù)RS=“L”,表示DB7~DB0為顯示指令數(shù)據(jù)6R/WH/LR/W=“H”,E=“H”,數(shù)據(jù)被讀到DB7~DB0R/W=“L”,E=“L”,DB7~DB0的數(shù)據(jù)被寫到IR或DR7EH/L使能信號8DB0~DB7H/L三態(tài)數(shù)據(jù)線9H/L復位端,低電平有效10VOUT—LCD驅動電壓輸出端KS0108控制器指令功能KS0108控制器指令功能如表4-2所示。具體分析如下:讀狀態(tài)字(readstatus)格式:BUSY0ON/OFFRESETO000BUSY=1:表示KS0108正在處理計算機發(fā)來的指令或數(shù)據(jù)。此時接口電路被封鎖,不能接受除狀態(tài)字以外的任何操作。BUSY=0表示KS0108接口控制電路已處于“準備好”狀態(tài),等待計算機的訪問。ON/OFF:表示當前的顯示狀態(tài)。ON/OFF=1表示關顯示狀態(tài);ON/OFF=0表示開顯示狀態(tài)。RESSET:表示當前KS1008的工作狀態(tài),即反映RET端得電平狀態(tài)。當RST為低電平狀態(tài)時,KS0108處于復位工作狀態(tài),RESET=1;當RST為高電平狀態(tài)時,KS0108為正常工作狀態(tài),RESET=0。在占領設置和數(shù)據(jù)讀寫時要注意狀態(tài)字中的BUSY標志。只有在BUSSY=0時,計算機對KS0108的操作才有效。因此計算機在每次對KS0108操作之前,都要讀出狀態(tài)字判斷BUSY是否為“0”。若不為“0”,則計算機需要等待,直至BUSY=0為止。顯示開關(displayon/off)格式:0011111D該指令設置顯示開關/觸發(fā)器的狀態(tài),由此控制顯示數(shù)據(jù)鎖存器的工作方式,從而控制顯示狀態(tài)。D位為顯示開/關的控制位。當D=1為顯示設置,顯示數(shù)據(jù)鎖存器正常工作,顯示屏上呈現(xiàn)所需的效果。此時在狀態(tài)字中ON/OFF=0。當D=0為關顯示設置,顯示數(shù)據(jù)鎖存器被清0,顯示屏呈不顯示狀態(tài),但顯示存儲器并沒有被破壞,在狀態(tài)組中ON/OFF=1。顯示起始行設置(displaystartline)格式:11L5L4L3L2L1L0該指令設置了顯示起始行寄存器的內容。KS0108有64行顯示的管理能力,該指令中L5~L0為顯示起始行的地址,取值在0~3FH(1~64)范圍內,它規(guī)定了顯示屏上最頂一行所對的顯示存儲器的行地址。如果定時間間隔地,等間距地修改(如加一或減一)顯示起始行寄存器的內容,則顯示屏將呈現(xiàn)顯示內容向上或向下平滑滾動的顯示效果。頁面地址設置(setpage(Xaddress))格式:10111P2P1P0該指令設置了頁面地址→X地址寄存器的內容。KS0108將顯示存儲器分成了8頁,指令代碼中P2~P0就是要確定當前所要的選擇的頁面地址,取值范圍為0~7H,代表第1~8頁。該指令規(guī)定了以后的讀/寫操作將在哪一個頁面上進行。⑤列地址設置(setYaddress)格式:01C5C4C3C2C1C0該指令設置了Y地址計數(shù)器的內容,C5~C0=0~3FH(1~64)代表某一頁面上的某一單元地址,隨后的一次讀或寫數(shù)據(jù)將在這個單元上進行。Y地址計數(shù)器具有自動加一功能,在每一次讀/寫數(shù)據(jù)后它將自動加一,所以在連續(xù)進行讀/寫數(shù)據(jù)時,Y地址計數(shù)器不必每次都設置一次。頁面地址的設置和列地址的設置將顯示存儲器單元唯一確定下來,為后來的顯示數(shù)據(jù)的讀/寫作了地址的選通。⑥寫顯示數(shù)據(jù)(writedisplaydata)該操作將8位數(shù)據(jù)寫入先前已經確定的顯示存儲器的單元內,操作完成后列地址計數(shù)器自動加一。⑦讀顯示數(shù)據(jù)(readdisplaydata)該操作將KS0108接口部的輸出寄存器內容讀出,然后列地址自動加一。應用說明用帶中文字庫的128×64顯示模塊時應注意以下幾點:①欲在某一個位置顯示中文字符時,應先設定顯示字符位置,即先設定顯示地址,再寫入中文字符編碼。②顯示ASCII字符過程與顯示中文字符過程相同。不過在顯示連續(xù)字符時,只須設定一次顯示地址,由模塊自動對地址加1指向下一個字符位置,否則,顯示的字符中將會有一個空ASCII字符位置。③當字符編碼為2字節(jié)時,應先寫入高位字節(jié),再寫入低位字節(jié)。④模塊在接收指令前,向處理器必須先確認模塊內部處于非忙狀態(tài),即讀取BF標志時BF需為“0”,方可接受新的指令。如果在送出一個指令前不檢查BF標志,則在前一個指令和這個指令中間必須延遲一段較長的時間,即等待前一個指令確定執(zhí)行完成。指令執(zhí)行的時間請參考指令表中的指令執(zhí)行時間說明。⑤“RE”為基本指令集與擴充指令集的選擇控制位。當變更“RE”后,以后的指令集將維持在最后的狀態(tài),除非再次變更“RE”位,否則使用相同指令集時,無需每次均重設“RE”位。電路連接圖17顯示器電路連接圖鍵盤在單片機控制系統(tǒng)中可以通過鍵盤輸入數(shù)據(jù)或命令。鍵盤是由一組常開的按鍵組成,每個按鍵都被賦予一個代碼,稱為鍵碼。鍵碼分為編碼鍵盤和非編碼鍵盤。編碼鍵盤是通過一個編碼電路識別閉合鍵的鍵碼,非編碼鍵盤是通過軟件來識別鍵碼。由于非編碼鍵盤的硬件電路簡單,用戶可以方便的改變鍵的數(shù)量,因此在單片機系統(tǒng)中應用廣泛。非編碼鍵盤可以分為獨立式鍵盤和行列式鍵盤兩種結構形式。在本次設計中用到的鍵數(shù)較少,為了簡化硬件電路,選用獨立式非編碼鍵盤。圖18鍵盤電路圖繼電器電磁繼電器是在輸入電路內電流的作用下,由機械部件的相對運動產生預定響應的一種繼電器。它包括直流電磁繼電器、交流電磁繼電器、磁保持繼電器、極化繼電器、舌簧繼電器,節(jié)能功率繼電器。直流電磁繼電器,輸入電路中的控制電流為直流的電磁繼電器。交流電磁繼電器,輸入電路中的控制電流為交流的電磁繼電器。磁保持繼電器,將磁鋼引入磁回路,繼電器線圈斷電后,繼電器的銜鐵仍能保持在線圈通電時的狀態(tài),具有兩個穩(wěn)定狀態(tài)。極化繼電器,狀態(tài)改變取決于輸入激勵量極性的一種直流繼電器。舌簧繼電器,利用利用密封在管內,具有觸點簧片和銜鐵雙重作用的舌簧的動作來開,閉或轉換線路繼電器。節(jié)能功率繼電器:輸入電路中的控制電流為交流的電磁繼電器,但它的電流大,體積小,節(jié)電功能。電磁式繼電器一般由控制線圈、鐵芯、銜鐵、觸點簧片組成,控制線圈和接點組之間是相互絕緣的,因此,能夠為控制電路起到良好的電器隔離作用。當我們在繼電器的線圈兩頭加上其線圈的額定的電壓時,線圈中就會流過一定的電流,從而產生電磁效應,銜鐵就會在電磁力的作用下克服返回彈簧的拉力吸向鐵芯,從而帶動銜鐵的動觸點與靜觸點吸和當線圈斷電后,電磁的吸力也隨之消失,銜鐵就會在彈簧的反作用力返回原來的位置,使動觸點與原來的靜觸點吸和。這樣吸和、釋放,從而達到了在電路中的接通、切斷的開關目的。繼電器的作用就相當于一個開關,繼電器連接一個三極管,三極管的一個手(手)和單片機的p2.3連接,當這個引腳置高電平時,繼電器就會打開進而澆水。電路連接圖19總電路連接圖圖20軟件系統(tǒng)設計系統(tǒng)控制流程圖圖21主要流程圖系統(tǒng)主控制程序如下:#include<reg51.h>#include<intrins.h>#include<string.h> #include<12864.h>#include<DS1302.h>#include<sht11.h>#include<key.h>xdatauncharTemBuf[]={0,0,0};xdatauncharTimeBuf[]={0,0,0};//分別存放秒、分、時xdatauncharDateBuf[]={0,0,0}; //分別存放年的后兩位、月、日xdataunsignedintmaxhumidity;xdataunsignedintminhumidity;sbitled_red=P2^4;sbitbuzzer=P2^3;sbitflower=P2^5;//顯示日期voidDateShow(){GetDate(DateBuf);PutOnech(0,0,Seg[2]); //顯示年份PutOnech(0,1,Seg[0]); PutOnech(0,2,Seg[DateBuf[0]/10]);PutOnech(0,3,Seg[DateBuf[0]%10]);PutOneWor(0,2,nianyueri[0]); PutOnech(0,6,Seg[DateBuf[1]/10]); //顯示月份PutOnech(0,7,Seg[DateBuf[1]%10]);PutOneWor(0,4,nianyueri[1]);PutOnech(0,10,Seg[DateBuf[2]/10]); //顯示月份PutOnech(0,11,Seg[DateBuf[2]%10]);PutOneWor(0,6,nianyueri[2]);}//顯示時間voidTimeShow()//顯示時分秒{GetTime(TimeBuf);PutOnech(1,0,Seg[TimeBuf[2]/10]); //顯示時PutOnech(1,1,Seg[TimeBuf[2]%10]);PutOneWor(1,1,shifenmiao[0]);PutOnech(1,4,Seg[TimeBuf[1]/10]); //顯示時PutOnech(1,5,Seg[TimeBuf[1]%10]);PutOneWor(1,3,shifenmiao[1]);PutOnech(1,8,Seg[TimeBuf[0]/10]); //顯示時PutOnech(1,9,Seg[TimeBuf[0]%10]);PutOneWor(1,5,shifenmiao[2]);}voidread_sht11(){ valuehumi_val,temp_val;unsignedcharerror,checksum;unsignedintwendu,shidu; error=0;error+=s_measure((unsignedchar*)&humi_val.i,&checksum,HUMI);//measurehumidityerror+=s_measure((unsignedchar*)&temp_val.i,&checksum,TEMP);//measuretemperatureif(error!=0) s_connectionreset();//incaseofanerror:connectionresetelse{ humi_val.f=(float)humi_val.i;//convertsintegertofloat temp_val.f=(float)temp_val.i;//convertsintegertofloat calc_dht90(&humi_val.f,&temp_val.f);//calculatehumidity,temperature wendu=10*temp_val.f; PutOneWor(2,0,wen); PutOneWor(2,1,Wendu); PutOneWor(2,2,fenhao); PutOnech(2,5,Seg[wendu/1000]); //顯示時 PutOnech(2,6,Seg[(wendu%10

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論