畢業(yè)論文-基于單片機(jī)的溫度控制_第1頁
畢業(yè)論文-基于單片機(jī)的溫度控制_第2頁
畢業(yè)論文-基于單片機(jī)的溫度控制_第3頁
畢業(yè)論文-基于單片機(jī)的溫度控制_第4頁
畢業(yè)論文-基于單片機(jī)的溫度控制_第5頁
已閱讀5頁,還剩40頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

湖南冶金職業(yè)技術(shù)學(xué)院電氣工程系畢業(yè)設(shè)計(jì)PAGE第38頁共44頁摘要單片機(jī)具有體積小、功能強(qiáng)、成本低、應(yīng)用面廣等優(yōu)點(diǎn),可以說,智能控制與自動(dòng)控制的核心就是單片機(jī)。目前,一個(gè)學(xué)習(xí)與應(yīng)用單片機(jī)的高潮在全社會(huì)大規(guī)模地興起。學(xué)習(xí)單片機(jī)的最有效方法就是理論與實(shí)踐并重,本文用80C51單片機(jī)自制了一個(gè)溫度控制系統(tǒng),重點(diǎn)介紹了該系統(tǒng)的硬件結(jié)構(gòu)及編程方法。關(guān)鍵詞:單片機(jī)、溫度傳感器、模/數(shù)轉(zhuǎn)換器

ABSTRACTSingle-chipmicrocomputerwithasmall,powerful,lowcost,wideapplication,etc.,itcanbesaid,intelligentcontrolandautomationisthecoreofsinglechip.Atpresent,asingle-chiplearningandapplicationoftheclimaxofthewholesocietyintheemergenceofalargescale.Single-chiplearningisthemosteffectivewayofboththeoryandpractice,89S51Inthispaper,aself-madesingle-chiptemperaturecontrolsystem,focusesonthestructureofthesystemhardwareandprogramming.Keywords:Single-chip,temperaturesensor,analog/digitalconverter前言隨著當(dāng)代生活節(jié)奏的緊奏化,人們無規(guī)律的生活使自身感到疲勞讓身體處于卸放狀態(tài),為此緩解人日夜的疲勞,于是汗蒸房的出現(xiàn)使人調(diào)整過來,汗蒸房在通電后,安裝在其中的加熱板所含的鍺碳元素和電氣石元素受電能轉(zhuǎn)換激發(fā)到一定溫度時(shí),產(chǎn)生一種具有不同波長的能源,其波長范圍和強(qiáng)度范圍恰好與人體自身釋放的電磁波相吻合,并由人體縱深器官選擇性吸收!從而促進(jìn)人體死亡細(xì)胞病變二聚體等的解體,增強(qiáng)人體的自身調(diào)節(jié)機(jī)制及免疫能力,通過加溫和保溫,使電氣石的能量可以快速、強(qiáng)烈地以遠(yuǎn)紅外線、負(fù)離子及微電流的形式釋放出來,它們共同構(gòu)成的能量場可間接地通過空氣向人體提供能量,使人體細(xì)胞由休眠狀態(tài)轉(zhuǎn)化為運(yùn)動(dòng)狀態(tài),加快人體的血液循環(huán)及新陳代謝,排出體內(nèi)毒素,平衡人體酸堿度,補(bǔ)充新的營養(yǎng)物質(zhì),從而起到保健和治療的作用。此次畢業(yè)設(shè)計(jì)主要設(shè)計(jì)汗蒸房的溫度和濕度控制系統(tǒng),實(shí)現(xiàn)課題的要求。目錄第一章緒論11.1單片機(jī)概況51.2設(shè)計(jì)可行性分析5第二章總體設(shè)計(jì)方案72.1工作原理82.2工作框圖82.3產(chǎn)品使用說明書9第三章硬件設(shè)計(jì)103.1電路接線圖103.2模塊介紹及應(yīng)用113.2.1溫度、濕度探測113.3主要原器件的介紹133.3.1AT89S51133.3.2DS1302213.3.3SHT11273.3.4827933第四章軟件設(shè)計(jì)384.1流程圖384.2內(nèi)存分布圖39第五章總結(jié)與展望40第六章致謝42第七章參考文獻(xiàn)43第一章緒論1.1單片機(jī)概況單片機(jī)(SingleChipMicrocomputer),國際上又稱為微控制器,它是一種集成電路芯片。它采用超大規(guī)模技術(shù)將具有數(shù)據(jù)處理能力的微處理器(CPU)、存儲器(含程序存儲器ROM和數(shù)據(jù)存儲器RAM)、輸入、輸出接口電路(I/O接口)集成在同一塊芯片上,構(gòu)成一個(gè)即小巧又很完善的計(jì)算機(jī)硬件系統(tǒng),在單片機(jī)程序的控制下能準(zhǔn)確、迅速、高效地完成程序設(shè)計(jì)者事先規(guī)定的任務(wù)。所以說,一片單片機(jī)芯片就具有了組成計(jì)算機(jī)的全部功能。隨著SCM在技術(shù)上、體系上的不斷進(jìn)步,使其控制功能不斷擴(kuò)展,它的主要作用已經(jīng)不是計(jì)算,而是控制了。正是由于單片機(jī)的這種結(jié)構(gòu)及它所采取的半導(dǎo)體工藝,使其具有很多顯著的優(yōu)點(diǎn)和特點(diǎn),其主要特點(diǎn)如下工:(1)控制功能強(qiáng)。為了滿足工業(yè)控制的要求,一般單片機(jī)的指令系統(tǒng)中均有極豐富的轉(zhuǎn)移指令、I/O口的邏輯操作以及位處理功能。(2)集中度高、體積小、有很高有可靠性。單片機(jī)把各功能部件集中在一塊芯片上,內(nèi)部采用總線結(jié)構(gòu),減少了芯片內(nèi)部之間的;連線,大大提高了單片機(jī)的可靠性與抗干擾能力。另外,其體積小,對于強(qiáng)磁環(huán)境晚于采取屏蔽措施,適合于在惡劣與此環(huán)境下工作。(3)有優(yōu)異的性能價(jià)格比。(4)低功耗、低電壓、,便于生產(chǎn)便攜式產(chǎn)品。(5)增加了I2C(6)單片機(jī)的系統(tǒng)擴(kuò)展、系統(tǒng)配置較典型、規(guī)范,容易構(gòu)成各種規(guī)模的應(yīng)用系統(tǒng)。1.2設(shè)計(jì)可行性分析社會(huì)加步的前進(jìn),與之給人們帶來的壓力也隨之增大,長時(shí)間的疲累會(huì)使人的細(xì)胞從運(yùn)動(dòng)狀態(tài)沉溺于安眠狀態(tài),使人無法集中精力工作,甚至能使人的免疫也與之下降,而汗蒸房的出現(xiàn),可以調(diào)解使人的細(xì)胞從安眠狀態(tài)活躍到運(yùn)動(dòng)狀態(tài),它能使加快人體的血液循環(huán)及新陳代謝,排出體內(nèi)毒素,平衡人體酸堿度,補(bǔ)充新的營養(yǎng)物質(zhì),從而起到保健和治療作用。使人高度集中精神,而汗蒸時(shí)間的長短會(huì)影響汗蒸的效果,如何使效果更加,為此,此次單片機(jī)設(shè)計(jì),能自能化顯示汗蒸時(shí)間及房內(nèi)溫度與濕度的控制,所以,這種設(shè)計(jì)是完善汗蒸房的不足,此設(shè)計(jì)非常有必要,以達(dá)到汗蒸效果更加的目的!第二章總體設(shè)計(jì)方案2.1工作原理工作原理分為信號采集和LED顯示部分,由SHT11、DS1302、AT89S51、8279及LED組成,用SHT11芯片探測汗蒸房內(nèi)的溫度和濕度,通過數(shù)據(jù)線端將其傳送到AT89S51,AT98S51接收到傳來的溫度和濕度后,并將其處理轉(zhuǎn)換,然后在LED上分別顯示出來,用DS1302來供給時(shí)間頻率,并將年月日時(shí)間也在LED上顯示出來,且年月日時(shí)間可以通過芯片按鍵8279調(diào)整,汗蒸房內(nèi)的人數(shù)及每人汗蒸的時(shí)間和房內(nèi)的溫度與濕度都可以再LED上顯示出來。2.2框圖SKIPIF1<0硬件的總體設(shè)計(jì)

本系統(tǒng)由溫度采集電路、時(shí)間電路、單片機(jī)、按鍵、顯示、數(shù)據(jù)存儲等部分組成,成對溫度信號的采集、處理、存儲,控制系統(tǒng)的工作的功能。原理框圖如圖1所示。SKIPIF1<0圖1系統(tǒng)硬件原理框圖2.3產(chǎn)品使用說明書當(dāng)芯片復(fù)電后,SHT11、AT89S51、8279復(fù)位,而DS1302一直提給一個(gè)時(shí)鐘頻率,按鍵一共又5個(gè)!其中,p0.0為修改按鍵,p0.1為確認(rèn)按鍵,p0.2為修改鍵加按鍵,p0.3為修改鍵減按鍵,p0.4為房內(nèi)人數(shù)的按鍵!第三章硬件設(shè)計(jì)3.1電路接線圖3.2模塊介紹及應(yīng)用3.2.1溫度、濕度探測溫度與濕度的測量由SHT11芯片完成,它有四個(gè)觸頭,高度集成,將溫度感測、濕度感測、信號變換、A/D轉(zhuǎn)換等功能。集成到一個(gè)芯片上,提供二線數(shù)字串行接口SCK和DATA接口簡單,支持CRC傳輸校驗(yàn),傳輸可靠性高,測量精確度高,由于同時(shí)集成溫濕度傳感器,可以提供溫度補(bǔ)償和濕度測量和高質(zhì)量的露點(diǎn)計(jì)算,可靠性高,精確性高,能更好的測量汗蒸房內(nèi)的溫度和濕度并快速傳出來!3.2.2時(shí)鐘電路 DS1302是一種高性能、低功耗、帶RAM的實(shí)時(shí)時(shí)鐘電路,它可以對年、月、日、周日、時(shí)、分、秒進(jìn)行計(jì)時(shí),具有閏年補(bǔ)償功能,工作電壓為2.5V~5.5V。采用三線接口與CPU進(jìn)行同步通信,并可采用突發(fā)方式一次傳送多個(gè)字節(jié)的時(shí)鐘信號或RAM數(shù)據(jù)。DS1302內(nèi)部有一個(gè)31×8的用于臨時(shí)性存放數(shù)據(jù)的RAM寄存器。DS1302是DS1202的升級產(chǎn)品,與DS1202兼容,但增加了主電源/后背電源雙電源引腳,同時(shí)提供了對后背電源進(jìn)行涓細(xì)電流充電的能力。能提供一個(gè)穩(wěn)定的時(shí)鐘并在LED上顯示出來!3.2.3信號處理 中央處理器是單片機(jī)的最核心的部分,主要完成運(yùn)算和中指功能,這一點(diǎn)與通用微處理器基本相同,只是它的控制功能更強(qiáng)。它是一個(gè)字長為8位的中央處理單元,對詩句的處理是按字節(jié)為單位進(jìn)行的。數(shù)據(jù)存儲器用于存放變化的數(shù)據(jù),89s51中數(shù)據(jù)存儲器的地址空間為256個(gè)RAM單元,但其中能作為數(shù)據(jù)存儲器供用戶使用的僅有前面128個(gè),后128個(gè)被專用寄存器占用。4個(gè)8位的I/O口,并行I/O口主要是用于實(shí)現(xiàn)與外部設(shè)備中數(shù)據(jù)的并行輸入/輸出,有些I/O口還具有其他多重功能。

3.3主要元器件的介紹3.3.1AT98S51AT89S51是一個(gè)低功耗,高性能CMOS8位單片機(jī),片內(nèi)含4kBytesISP(In-systemprogrammable)的可反復(fù)擦寫1000次的Flash只讀程序存儲器,器件采用ATMEL公司的高密度、非易失性存儲技術(shù)制造,兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng)及80C51引腳結(jié)構(gòu),芯片內(nèi)集成了通用8位中央處理器和ISPFlash存儲單元,功能強(qiáng)大的微型計(jì)算機(jī)的AT89S51可為許多嵌入式控制應(yīng)用系統(tǒng)提供高性價(jià)比的解決方案。

AT89S51具有如下特點(diǎn):40個(gè)引腳,4kBytesFlash片內(nèi)程序存儲器,128bytes的隨機(jī)存取數(shù)據(jù)存儲器(RAM),32個(gè)外部雙向輸入/輸出(I/O)口,5個(gè)中斷優(yōu)先級2層中斷嵌套中斷,2個(gè)16位可編程定時(shí)計(jì)數(shù)器,2個(gè)全雙工串行通信口,看門狗(WDT)電路,片內(nèi)時(shí)鐘振蕩器。

此外,AT89S51設(shè)計(jì)和配置了振蕩頻率可為0Hz并可通過軟件設(shè)置省電模式??臻e模式下,CPU暫停工作,而RAM定時(shí)計(jì)數(shù)器,串行口,外中斷系統(tǒng)可繼續(xù)工作,掉電模式凍結(jié)振蕩器而保存RAM的數(shù)據(jù),停止芯片其它功能直至外中斷激活或硬件復(fù)位。同時(shí)該芯片還具有PDIP、TQFP和PLCC等三種封裝形式,以適應(yīng)不同產(chǎn)品的需求。

1.主要特性:

?8031CPU與MCS-51兼容

?4K字節(jié)可編程FLASH存儲器(壽命:1000寫/擦循環(huán))

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

?三級程序存儲器保密鎖定

?128*8位內(nèi)部RAM

?32條可編程I/O線

?兩個(gè)16位定時(shí)器/計(jì)數(shù)器

?6個(gè)中斷源

?可編程串行通道

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

?片內(nèi)振蕩器和時(shí)鐘電路

2.管腳說明:

VCC:供電電壓。

GND:接地。

P0口:P0口為一個(gè)8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P1口的管腳第一次寫1時(shí),被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時(shí),P0口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗(yàn)時(shí),P0輸出原碼,此時(shí)P0外部必須被拉高。

P1口:P1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗(yàn)時(shí),P1口作為第八位地址接收。

P2口:P2口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個(gè)TTL門電流,當(dāng)P2口被寫“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進(jìn)行存取時(shí),P2口輸出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢,當(dāng)對外部八位地址數(shù)據(jù)存儲器進(jìn)行讀寫時(shí),P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗(yàn)時(shí)接收高八位地址信號和控制信號。

P3口:P3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個(gè)TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。

P3.0RXD(串行輸入口)

P3.1TXD(串行輸出口)

P3.2/INT0(外部中斷0)

P3.3/INT1(外部中斷1)

P3.4T0(記時(shí)器0外部輸入)

P3.5T1(記時(shí)器1外部輸入)

P3.6/WR(外部數(shù)據(jù)存儲器寫選通)

P3.7/RD(外部數(shù)據(jù)存儲器讀選通)

P3口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號。

I/O口作為輸入口時(shí)有兩種工作方式即所謂的讀端口與讀引腳讀端口時(shí)實(shí)際上并不從外部讀入數(shù)據(jù)而是把端口鎖存器的內(nèi)容讀入到內(nèi)部總線經(jīng)過某種運(yùn)算或變換后再寫回到端口鎖存器只有讀端口時(shí)才真正地把外部的數(shù)據(jù)讀入到內(nèi)部總線上面圖中的兩個(gè)三角形表示的就是輸入緩沖器CPU將根據(jù)不同的指令分別發(fā)出讀端口或讀引腳信號以完成不同的操作這是由硬件自動(dòng)完成的不需要我們操心1然后再實(shí)行讀引腳操作否則就可能讀入出錯(cuò)為什么看上面的圖如果不對端口置1端口鎖存器原來的狀態(tài)有可能為0Q端為0Q^為1加到場效應(yīng)管柵極的信號為1該場效應(yīng)管就導(dǎo)通對地呈現(xiàn)低阻抗,此時(shí)即使引腳上輸入的信號為1也會(huì)因端口的低阻抗而使信號變低使得外加的1信號讀入后不一定是1若先執(zhí)行置1操作則可以使場效應(yīng)管截止引腳信號直接加到三態(tài)緩沖器中實(shí)現(xiàn)正確的讀入由于在輸入操作時(shí)還必須附加一個(gè)準(zhǔn)備動(dòng)作所以這類I/O口被稱為準(zhǔn)雙向口89C51的P0/P1/P2/P3口作為輸入時(shí)都是準(zhǔn)雙向口接下來讓我們再看另一個(gè)問題從圖中可以看出這四個(gè)端口還有一個(gè)差別除了P1口外P0P2P3口都還有其他的功能

RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平時(shí)間。

ALE/PROG:當(dāng)訪問外部存儲器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時(shí),ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時(shí)目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲器時(shí),將跳過一個(gè)ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時(shí),ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。

/PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個(gè)機(jī)器周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲器時(shí),這兩次有效的/PSEN信號將不出現(xiàn)。

/EA/VPP:當(dāng)/EA保持低電平時(shí),則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內(nèi)部程序存儲器。注意加密方式1時(shí),/EA將內(nèi)部鎖定為RESET;當(dāng)/EA端保持高電平時(shí),此間內(nèi)部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。

XTAL1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。

XTAL2:來自反向振蕩器的輸出。

第二節(jié)DS13022.2.1DS1302是美國DALLAS公司推出的一種高性能、低功耗、帶RAM的實(shí)時(shí)時(shí)鐘電路,它可以對年、月、日、周日、時(shí)、分、秒進(jìn)行計(jì)時(shí),具有閏年補(bǔ)償功能,工作電壓為2.5V~5.5V。采用三線接口與CPU進(jìn)行同步通信,并可采用突發(fā)方式一次傳送多個(gè)字節(jié)的時(shí)鐘信號或RAM數(shù)據(jù)。DS1302內(nèi)部有一個(gè)31×8的用于臨時(shí)性存放數(shù)據(jù)的RAM寄存器。DS1302是DS1202的升級產(chǎn)品,與DS1202兼容,但增加了主電源/后背電源雙電源引腳,同時(shí)提供了對后背電源進(jìn)行涓細(xì)電流充電的能力。DS1302的引腳排列,其中Vcc1為后備電源,VCC2為主電源。在主電源關(guān)閉的情況下,也能保持時(shí)鐘的連續(xù)運(yùn)行。DS1302由Vcc1或Vcc2兩者中的較大者供電。當(dāng)Vcc2大于Vcc1+0.2V時(shí),Vcc2給DS1302供電。當(dāng)Vcc2小于Vcc1時(shí),DS1302由Vcc1供電。X1和X2是振蕩源,外接32.768kHz晶振。RST是復(fù)位/片選線,通過把RST輸入驅(qū)動(dòng)置高電平來啟動(dòng)所有的數(shù)據(jù)傳送。RST輸入有兩種功能:首先,RST接通控制邏輯,允許地址/命令序列送入移位寄存器;其次,RST提供終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段。當(dāng)RST為高電平時(shí),所有的數(shù)據(jù)傳送被初始化,允許對DS1302進(jìn)行操作。如果在傳送過程中RST置為低電平,則會(huì)終止此次數(shù)據(jù)傳送,I/O引腳變?yōu)楦咦钁B(tài)。上電運(yùn)行時(shí),在Vcc≥2.5V之前,RST必須保持低電平。只有在SCLK為低電平時(shí),才能將RST置為高電平。I/O為串行數(shù)據(jù)輸入輸出端(雙向),后面有詳細(xì)說明。SCLK始終是輸入端。下圖為DS1302的引腳功能圖SKIPIF1<0

圖2-9DS1302引腳功能圖2.2.DS1302的控制字如圖2所示??刂谱止?jié)的最高有效位(位7)必須是邏輯1,如果它為0,則不能把數(shù)據(jù)寫入DS1302中,位6如果為0,則表示存取日歷時(shí)鐘數(shù)據(jù),為1表示存取RAM數(shù)據(jù);位5至位1指示操作單元的地址;最低有效位(位0)如為0表示要進(jìn)行寫操作,為1表示進(jìn)行讀操作,控制字節(jié)總是從最低位開始輸出。1.2.在控制指令字輸入后的下一個(gè)SCLK時(shí)鐘的上升沿時(shí),數(shù)據(jù)被寫入DS1302,數(shù)據(jù)輸入從低位即位0開始。同樣,在緊跟8位的控制指令字后的下一個(gè)SCLK脈沖的下降沿讀出DS1302的數(shù)據(jù),讀出數(shù)據(jù)時(shí)從低位0位到高位7。

2.2.4DS1302的寄存器

DS1302有12個(gè)寄存器,其中有7個(gè)寄存器與日歷、時(shí)鐘相關(guān),存放的數(shù)據(jù)位為BCD碼形式DS1302實(shí)時(shí)顯示時(shí)間的軟硬件DS1302與CPU的連接需要三條線,即SCLK(7)、I/O(6)、RST(5)。圖2示出DS1302與89C2051的連接圖,其中,時(shí)鐘的顯示用LCD。圖2-10DS1302與AT89S51的連接圖

2.2.DS1302調(diào)試中問題說明

DS1302與微處理器進(jìn)行數(shù)據(jù)交換時(shí),首先由微處理器向電路發(fā)送命令字節(jié),命令字節(jié)最高位MSB(D7)必須為邏輯1,如果D7=0,則禁止寫DS1302,即寫保護(hù);D6=0,指定時(shí)鐘數(shù)據(jù),D6=1,指定RAM數(shù)據(jù);D5~D1指定輸入或輸出的特定寄存器;最低位LSB(D0)為邏輯0,指定寫操作(輸入),D0=1,指定讀操作(輸出)。

在DS1302的時(shí)鐘日歷或RAM進(jìn)行數(shù)據(jù)傳送時(shí),DS1302必須首先發(fā)送命令字節(jié)。若進(jìn)行單字節(jié)傳送,8位命令字節(jié)傳送結(jié)束之后,在下2個(gè)SCLK周期的上升沿輸入數(shù)據(jù)字節(jié),或在下8個(gè)SCLK周期的下降沿輸出數(shù)據(jù)字節(jié)。

DS1302與RAM相關(guān)的寄存器分為兩類:一類是單個(gè)RAM單元,共31個(gè),每個(gè)單元組態(tài)為一個(gè)8位的字節(jié),其命令控制字為C0H~FDH,其中奇數(shù)為讀操作,偶數(shù)為寫操作;再一類為突發(fā)方式下的RAM寄存器,在此方式下可一次性讀、寫所有的RAM的31個(gè)字節(jié)。

要特別說明的是備用電源B1,可以用電池或者超級電容器(0.1F以上)。雖然DS1302在主電源掉電后的耗電很小,但是,如果要長時(shí)間保證時(shí)鐘正常,最好選用小型充電電池??梢杂美鲜诫娔X主板上的3.6V充電電池。如果斷電時(shí)間較短(幾小時(shí)或幾天)時(shí),就可以用漏電較小的普通電解電容器代替。100μF就可以保證1小時(shí)的正常走時(shí)。DS1302在第一次加電后,必須進(jìn)行初始化操作。初始化后就可以按正常方法調(diào)整時(shí)間。

DS1302的寄存器DS1302有12個(gè)寄存器,其中有7個(gè)寄存器與日歷、時(shí)鐘相關(guān),存放的數(shù)據(jù)位為BCD碼形式,其日歷、時(shí)間寄存器及其控制字見表1。

此外,DS1302還有年份寄存器、控制寄存器、充電寄存器、時(shí)鐘突發(fā)寄存器及與RAM相關(guān)的寄存器等。時(shí)鐘突發(fā)寄存器可一次性順序讀寫除充電寄存器外的所有寄存器內(nèi)容。DS1302與RAM相關(guān)的寄存器分為兩類:一類是單個(gè)RAM單元,共31個(gè),每個(gè)單元組態(tài)為一個(gè)8位的字節(jié),其命令控制字為C0H~FDH,其中奇數(shù)為讀操作,偶數(shù)為寫操作;另一類為突發(fā)方式下的RAM寄存器,此方式下可一次性讀寫所有的RAM的31個(gè)字節(jié),。實(shí)際上,在調(diào)試程序時(shí)可以不加電容器,只加一個(gè)32.768kHz的晶振即可。只是選擇晶振時(shí),不同的晶振,誤差也較大。另外,還可以在上面的電路中加入DS18B20,同時(shí)顯示實(shí)時(shí)溫度。只要占用CPU一個(gè)口線即可。LCD還可以換成LED,還可以使用北京衛(wèi)信杰科技發(fā)展有限公司生產(chǎn)的10位多功能8段液晶顯示模塊LCM101,內(nèi)含看門狗(WDT)/時(shí)鐘發(fā)生器及兩種頻率的蜂鳴器驅(qū)動(dòng)電路,并有內(nèi)置顯示RAM,可顯示任意字段筆劃,具有3-4線串行接口,可與任何單片機(jī)、IC接口。功耗低,顯示狀態(tài)時(shí)電流為2μA(典型值),省電模式時(shí)小于1μA,工作電壓為2.4V~3.3V,顯示清晰。

DS1302實(shí)時(shí)時(shí)間流程DS1302與微處理器進(jìn)行數(shù)據(jù)交換時(shí),首先由微處理器向電路發(fā)送命令字節(jié),命令字節(jié)最高位MSB(D7)必須為邏輯1,如果D7=0,則禁止寫DS1302,即寫保護(hù);D6=0,指定時(shí)鐘數(shù)據(jù),D6=1,指定RAM數(shù)據(jù);D5~D1指定輸入或輸出的特定寄存器;最低位LSB(D0)為邏輯0,指定寫操作(輸入),D0=1,指定讀操作(輸出)。

在DS1302的時(shí)鐘日歷或RAM進(jìn)行數(shù)據(jù)傳送時(shí),DS1302必須首先發(fā)送命令字節(jié)。若進(jìn)行單字節(jié)傳送,8位命令字節(jié)傳送結(jié)束之后,在下2個(gè)SCLK周期的上升沿輸入數(shù)據(jù)字節(jié),或在下8個(gè)SCLK周期的下降沿輸出數(shù)據(jù)字節(jié)。

第三節(jié)SHT112.3.1SHT11簡介SHT11是瑞士Scnsirion公司推出的一款數(shù)字溫濕度傳感器芯片。該芯片廣泛應(yīng)用于暖通空調(diào)、汽車、消費(fèi)電子、自動(dòng)控制等領(lǐng)域。共主要特點(diǎn)如下:

◆高度集成,將溫度感測、濕度感測、信號變換、A/D轉(zhuǎn)換和加熱器等功能成到一個(gè)芯片上;

◆提供二線數(shù)字串行接口SCK和DATA,接口簡單,支持CRC傳輸校驗(yàn),傳輸可靠性高;

◆測量精度可編程調(diào)節(jié),內(nèi)置A/D轉(zhuǎn)換器(分辨率為8~12位,能通過對芯片內(nèi)部寄存器編程米選擇);

◆測量精確度高,由于同時(shí)集成溫濕度傳感器,能提供溫度補(bǔ)償?shù)臐穸葴y量值和高質(zhì)量的露點(diǎn)計(jì)算功能;

◆封裝尺寸超小(7.62mm×5.08mm×2.5mm),測量和通信結(jié)束后,自動(dòng)轉(zhuǎn)入低功耗模式;

◆高可靠性,采用CMOSens工藝,測量時(shí)可將感測頭完全浸于水中。

SHT11的引腳功能

SHT11溫濕度傳感器采用SMD(LCC)表面貼片封裝形式,接口非常簡單,引腳名稱及排列順序如圖1所示。

SKIPIF1<0圖2-11SHT11引腳功能圖各引腳的功能如下:

腳1和4--信號地和電源,其工作電壓范圍是2.4~5.5V;

腳2和腳3--二線串行數(shù)字接口,其中DA-TA為數(shù)據(jù)線,SCK為時(shí)鐘線;

腳5~8--未連接。

2.3.3SHT11的內(nèi)部結(jié)構(gòu)和工作原理

溫濕度傳感器SHT11將溫度感測、濕度感測、信號變換、A/D轉(zhuǎn)換和加熱器等功能集成到一個(gè)芯片上,其內(nèi)部結(jié)構(gòu)如圖1-12所示。該芯片包括一個(gè)電容性聚合體濕度敏感元件和一個(gè)用能隙材料制成的溫度敏感元件。這兩個(gè)敏感元件分別將濕度和溫度轉(zhuǎn)換成電信號,該電信號首先進(jìn)入微弱信號放大器進(jìn)行放大;然后進(jìn)入一個(gè)14位的A/D轉(zhuǎn)換器;最后經(jīng)過二線串行數(shù)字接口輸出數(shù)字信號。SHT11在出廠前,都會(huì)在恒濕或恒溫環(huán)境巾進(jìn)行校準(zhǔn),校準(zhǔn)系數(shù)存儲在校準(zhǔn)寄存器中;在測量過程中,校準(zhǔn)系數(shù)會(huì)自動(dòng)校準(zhǔn)來自傳感器的信號。此外,SHT11內(nèi)部還集成一個(gè)加熱元件,加熱元件接通后能將SHT11的溫度升高5℃左右,同時(shí)功耗也會(huì)有所增加。此功能主要為了比較加熱前后的溫度和濕度值,能綜合驗(yàn)證兩個(gè)傳感器元件的性能。在高濕(>95%RH)環(huán)境中,加熱傳感器可預(yù)防傳感器結(jié)露,同時(shí)縮短響應(yīng)時(shí)間,提高精度。加熱后SHT11溫度升高、相對濕度降低,較加熱前,測量值會(huì)略有差異。圖2-12SHT11內(nèi)部結(jié)構(gòu)圖

微處理器是通過二線串行數(shù)字接口和SHT11進(jìn)行通信的。通信協(xié)議和通用的I2C總線協(xié)議是不兼容的,因此需要用通用微處理器I/O口模擬該通信時(shí)序。微處理器對SHT11的控制是通過5個(gè)5位命令代碼來實(shí)現(xiàn)的,命令代碼的含義如表1所列。SHT11應(yīng)用設(shè)計(jì)

微處理器采用二線串行數(shù)字接口和溫濕度傳感器芯片SHT11進(jìn)行通信,所以硬件接門設(shè)計(jì)非常簡單;然而,通信協(xié)議是芯片廠家自己定義的,所以在軟件設(shè)計(jì)中,需要用微處理器通用I/O口模擬通信協(xié)議。2.3.5硬件設(shè)計(jì)

SHT11通過二線數(shù)字串行接口來訪問,所以硬件接口電路非常簡單。需要注意的地方是:DATA數(shù)據(jù)線需要外接上拉電阻,時(shí)鐘線SCK用于微處理器和SHT11之間通信同步,由于接口包含了完全靜態(tài)邏輯,所以對SCK最低頻率沒有需求;當(dāng)工作電壓高于4.5V時(shí),SCK頻率最高為10MHz,而當(dāng)工作電壓低于4.5V時(shí),SCK最高頻率則為1MHz。硬件連接如圖3所示。

軟件設(shè)計(jì)

微處理器和溫濕度傳感器通信采用串行二線接口SCK和DATA,其中SCK為時(shí)鐘線,DATA為數(shù)據(jù)線。該二線串行通信協(xié)議和I2C協(xié)議是不兼容的。在程式開始,微處理器需要用一組"啟動(dòng)傳輸"時(shí)序表示數(shù)據(jù)傳輸?shù)膯?dòng),如圖4所示。當(dāng)SCK時(shí)鐘為高電平時(shí),DATA翻轉(zhuǎn)為低電平;緊接著SCK變?yōu)榈碗娖?,隨后又變?yōu)楦唠娖剑辉赟CK時(shí)鐘為高電平時(shí),DATA再次翻轉(zhuǎn)為高電平。

SHT11濕度測試時(shí)序如圖5所示。其中,陰影部分為SHT11控制總線。主機(jī)發(fā)出啟動(dòng)命令,隨后發(fā)出一個(gè)后續(xù)8位命令碼,該命令碼包含3個(gè)地址位(芯片設(shè)定地址為000)和5個(gè)命令位;發(fā)送完該命令碼,將DATA總線設(shè)為輸入狀態(tài)等待SHT11的響應(yīng);SHT11接收到上述地址和命令碼后,在第8個(gè)時(shí)鐘下降沿,將DATA下拉為低電平作為從機(jī)的ACK;在第9個(gè)時(shí)鐘下降沿之后,從機(jī)釋放DATA(恢復(fù)高電平)總線;釋放總線后,從機(jī)開始測量當(dāng)前濕度,測量結(jié)束后,再次將DATA總線拉為低電平;主機(jī)檢測到DATA總線被拉低后,得知濕度測量已結(jié)束,給出SCK時(shí)鐘信號;從機(jī)在第8個(gè)時(shí)鐘下降沿,先輸出高字節(jié)數(shù)據(jù);在第9個(gè)時(shí)鐘下降沿,主機(jī)將DATA總線拉低作為ACK信號。然后釋放總線DATA;在隨后8個(gè)SCK周期下降沿,從機(jī)發(fā)出低字節(jié)數(shù)據(jù);接下來的SCK下降沿,主機(jī)再次將DATA總線拉低作為接收數(shù)據(jù)的ACK信號;最后8個(gè)SCK下降沿從機(jī)發(fā)出CRC校驗(yàn)數(shù)據(jù),主機(jī)不予應(yīng)答(NACK)則表示測量結(jié)束。2.3.7溫度和濕度值的計(jì)算1、濕度線性補(bǔ)償和溫度補(bǔ)償

SHT11可通過DATA數(shù)據(jù)總線直接輸出數(shù)字量濕度值。該濕度值稱為"相對濕度",需要進(jìn)行線性補(bǔ)償和溫度補(bǔ)償后才能得到較為準(zhǔn)確的濕度值。由于相對濕度數(shù)字輸出特性呈一定的非線性,因此為了補(bǔ)償濕度傳感器的非線性,可按下式修正濕度值:(1-1)

式中:RHlinear為經(jīng)過線性補(bǔ)償后的濕度值,SORH為相對濕度測量值,C1、C2、C3為線性補(bǔ)償系數(shù),取值如表2所列。

由于溫度對濕度的影響十分明顯,而實(shí)際溫度和測試參考溫度25℃有所不同,所以對線性補(bǔ)償后的濕度值進(jìn)行溫度補(bǔ)償非常有必要。補(bǔ)償公式如下:(1-2)

式中:RHtrue為經(jīng)過線性補(bǔ)償和溫度補(bǔ)償后的濕度值,T為測試濕度值時(shí)的溫度(℃),t1和t2為溫度補(bǔ)償系數(shù),取值如表3所列。

2、溫度值輸出

由于SHT11是采用PTAT能隙材料制成的溫度敏感元件,因而具有非常好的線性輸出。實(shí)際溫度值可由下式算得Temperature=d1+d2×SOT式中:d1和d2為特定系數(shù),d1的取值和SHT11工作電壓有關(guān),d2的取值則和SHT11內(nèi)部A/D轉(zhuǎn)換器采用的分辨率有關(guān),其對應(yīng)關(guān)系分別如表4和表5所列。溫度值輸出

由于SHT11是采用PTAT能隙材料制成的溫度敏感元件,因而具有很好的線性輸出。實(shí)際溫度值可由下式算得:Temperature=d1+d2×SOT

式中:d1和d2為特定系數(shù),d1的取值與SHT11工作電壓有關(guān),d2的取值則與SHT11內(nèi)部A/D轉(zhuǎn)換器采用的分辨率有關(guān),其對應(yīng)關(guān)系分別如表4和表5所列。露點(diǎn)計(jì)算

露點(diǎn)是一個(gè)特殊的溫度值,是空氣保持某一定濕度必須達(dá)到的最低溫度。當(dāng)空氣的溫度低于露點(diǎn)時(shí),空氣容納不了過多的水分,這些水分會(huì)變成霧、露水或霜。露點(diǎn)可以根據(jù)當(dāng)前相對濕度值和溫度值計(jì)算得出,具體的計(jì)算公式如下:LogEW=0.66077+7.5×T/(237.3+T)+log10(SORH)-2Dp=((0.66077-logEW)×237.3)/(logEW-8.16077)式中:T為當(dāng)前溫度值,SORH為相對濕度值,Dp為露點(diǎn)。3.3.4鍵盤ZLG8279源程序BUFM

EQU7FFFH

BUFS

EQU3FFFH

ORG0000H

AJMPMAIN

ORG0013H

AJMPPINT1

MAIN:MOVSP,#60H

;設(shè)置堆棧

CLRP3.4

;8279復(fù)位

SETBP3.4

CLRP3.4

MOVDPTR,#BUFM

;指向命令/狀態(tài)口

MOVA,#0D1H

;送清除命令

MOVX@DPTR,A

WAIT:MOVXA,@DPTR

;讀入8279狀態(tài)字

JBACC.7,WAIT

;等待清除命令完成

MOVA,#01H

;送方式字

MOVX@DPTR,A

MOVA,#34H

;設(shè)置分頻命令字12MHz

MOVX@DPTR,A

SETBEA

SETBEX1

;允許響應(yīng)8279中斷

SJMP$

;讀取鍵盤子程序:

PINT1:

MOVDPTR,#BUFM

MOVA,#40H

;讀8279、每次讀一個(gè)單元的內(nèi)容

MOVX@DPTR,A

MOVDPTR,#BUFS

MOVXA,@DPTR

;

MOVR2,A

ANLA,#38H

;計(jì)算鍵號

RRA

RRA

RRA

MOVB,#4

MULAB

XCHA,R2

ANLA,#7

ADDA,R2

MOV78H,A

DISLED:MOVDPTR,#BUFM

;寫顯示RAM命令送8279

MOVA,#80H

MOVX@DPTR,A

MOVR0,#78H

;顯示數(shù)據(jù)的首地址送R0

MOVA,@R0

;取顯示數(shù)據(jù)

MOVDPTR,#LEDSEG

;加偏移量

MOVCA,@A+DPTR

;查表將顯示數(shù)據(jù)轉(zhuǎn)換為段碼

MOVDPTR,#BUFS

MOVX@DPTR,A

;寫入顯示RAM

RETI

LEDSEG:DB0C0H,0F9H,0A4H,0B0H;

DB99H,92H,82H,0F8H;

DB80H,90H,88H,83H;

DB0C6H,0A1H,86H,8EH

END8279應(yīng)用程序鍵盤和LED顯示程序

;*8279初始化*

;*KEYCOM為8279命令口KEYDAT為8279數(shù)據(jù)口*

KEYCOMXDATA0E601H

KEYDATXDATA0E600H

KEYCAMEQU30H;定義存放按鍵值RAM起始地址

ORG0000H

AJMPSTART

ORG0003H

LJMPAAA

ORG0060H

START:MOVR0,#10

MOVDPTR,#KEYCOM;命令口地址

MOVA,#10H;鍵盤/顯示方式命令字8字符顯示左入口,編碼鍵盤,雙鍵鎖定

MOVX@DPTR,A

MOVA,#34H;程序時(shí)鐘命令26分頻對外部輸入時(shí)鐘

MOVX@DPTR,A

MOVA,#0DFH;清除顯示緩沖區(qū)命令

MOVX@DPTR,A

BUSY1:MOVXA,@DPTR

JBACC.7,BUSY1

MOVIE,#81H

MOVDPTR,#KEYDAT

MOVA,#0C8H

MOVX@DPTR,A;字型送入8279

INCDPTR

MOVA,#90H

MOVX@DPTR,A;字位送入8279(顯示P)

HA7S2:MOV30H,#80H

MOV31H,#40H

HA7S3:MOVDPTR,#KEYCOM

MOVXA,@DPTR

ANLA,#07H

CJNEA,#00H,HA7S4;

AJMPHA7S3

HA7S4:MOVDPTR,#KEYDAT

MOVXA,@DPTR

MOVB,A;取鍵值

MOVR1,#00H

MOVDPTR,#KEYTAB;數(shù)字鍵鍵值表

HA7S5:MOVA,#00H

MOVCA,@A+DPTR

CJNEA,B,HA7S6;查鍵值表是否相同

AJMPHA7SA;轉(zhuǎn)數(shù)字鍵處理程序

HA7S6:INCDPTR;鍵值表地址加1

INCR1;查找次數(shù)加1

MOVA,R1

JBACC.4,HA7S7;是功能鍵嗎?

AJMPHA7S5;繼續(xù)查找

HA7S7:MOVR1,#00H

MOVDPTR,#KEYTAB1;功能鍵表地址

HA7S8:MOVA,#00H

MOVCA,@A+DPTR;取出功能鍵鍵值

CJNEA,B,HA7S9;鍵值相同嗎?

AJMPHA7SC;轉(zhuǎn)功能鍵處理子程序

HA7S9:INCDPTR

INCR1

MOVA,R1

JNBACC.2,HA7S8;繼續(xù)查找

LJMPSTART

;;;AJMPHA7SD;無按鍵返回

HA7SD:LJMPSTART

HA7SA:MOVA,30H

MOVDPTR,#0FE01H

MOVX@DPTR,A;字位送入8279

MOVA,R1

MOVR0,31H

MOV@R0,A

INC31H

MOVDPTR,#CDATA

MOVCA,@A+DPTR;取字型代碼

MOVDPTR,#KEYDAT

MOVX@DPTR,A;送8279顯示

INC30H

MOVA,30H;字位加1

CJNEA,#88H,HA7SB;

LJMPHA7S2

HA7SB:AJMPHA7S3

HA7SC:MOVDPTR,#KJPADDR

MOVA,R1

RLA

;;ADDA,R1

ADDA,#00H

JMP@A+DPTR;

KJPADDR:LJMPLOOP0

LJMPLOOP1

LJMPLOOP2

KEYTAB:DB0C1H,0C8H,0C9H,0D0H,0D8H,0E0H,0C2H,0CAH,0D1H,0D9H

DB0DAH,0C3H,0CBH,0D2H,0D3H,0DBH

KEYTAB1:DB0E3H,0E2H,0E1H

CDATA:DB0CH,9FH,4AH,0BH,99H,29H,28H,8FH,08H,09H,88H,38H,6CH,1AH,68H,0E8H

LOOP0:MOVR5,#0CH;0

LJMPDISPC

LOOP1:MOVR5,#9FH;1

LJMPDISPC

LOOP2:MOVR5,#4aH;2

DISPC:MOVR6,#80H

DISPC1:MOVDPTR,#KEYCOM

MOVX@DPTR,A;字位送8279

MOVA,R5

MOVDPTR,#KEYDAT;字形送8279

MOVX@DPTR,A

LCALLDELAY1

;MOVA,#0FFH

;MOVX@DPTR,A;關(guān)顯示

;INCR6;

;CJNER6,#88H,DISPC1

;AJMPDISPC;

LJMPHA7S2

AAA:NOP

NOP

RETI

DELAY1:MOVR1,#0FAH

DELAY2:NOP

NOP

DJNZR1,DELAY2

DJNZR0,DELAY1

RET

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(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

提交評論