找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 3788|回復(fù): 1
收起左側(cè)

89c51單片機(jī)溫度監(jiān)測(cè)

[復(fù)制鏈接]
ID:428108 發(fā)表于 2018-11-17 11:39 | 顯示全部樓層 |閱讀模式
設(shè)計(jì)的意義最近幾年來(lái),隨著科技的飛速發(fā)展,單片機(jī)領(lǐng)域正在不斷的走向社會(huì)各個(gè)角落,還帶動(dòng)傳統(tǒng)控制檢測(cè)日新月異更新。在實(shí)時(shí)運(yùn)作和自動(dòng)控制的單片機(jī)應(yīng)用到系統(tǒng)中,單片機(jī)如今是作為一個(gè)核心部件來(lái)使用,僅掌握單片機(jī)方面知識(shí)是不夠的,還應(yīng)根據(jù)其具體硬件結(jié)構(gòu),以及針對(duì)具體應(yīng)用對(duì)象特點(diǎn)的軟件結(jié)合,加以完善!皢纹瑱C(jī)原理及應(yīng)用課程設(shè)計(jì)”是電子類(lèi)專(zhuān)業(yè)的學(xué)科基礎(chǔ)科,它是繼“匯編語(yǔ)言程序設(shè)計(jì)”,“接口技術(shù)”等課程之后開(kāi)出的實(shí)踐環(huán)節(jié)課程。與此同時(shí),現(xiàn)代社會(huì)越來(lái)越多的場(chǎng)所會(huì)涉及到溫度與濕度并將其顯示。由于溫度與濕度不管是從物理量本身還是在實(shí)際人們的生活中都有著密切的關(guān)系,例如:冬天溫度為18至25℃,濕度為30%至80%;夏天溫度為23至28℃,濕度為30%至60%。在此范圍內(nèi)感到舒適的人占95%以上。在裝有空調(diào)的室內(nèi),室溫為19至24℃,濕度為40%至50%時(shí),人會(huì)感到最舒適。如果考慮到溫、濕度對(duì)人思維活動(dòng)的影響,最適宜的室溫度應(yīng)是工作效率高。18℃,濕度應(yīng)是40%至60%,此時(shí),人的精神狀態(tài)好,思維最敏捷。所以,本課程設(shè)計(jì)就是通過(guò)單片機(jī)驅(qū)動(dòng)LCD1602,液晶顯示溫濕度,通過(guò)此設(shè)計(jì),可以發(fā)現(xiàn)本設(shè)計(jì)有一定的擴(kuò)展性,而且可以作為其他有關(guān)設(shè)計(jì)的基礎(chǔ)。

2設(shè)計(jì)原理2.1設(shè)計(jì)目標(biāo)2.1.1基本功能檢測(cè)溫度、濕度顯示溫度、濕度過(guò)限報(bào)警2.1.2主要技術(shù)參數(shù)溫度檢測(cè)范圍:-30℃至+55℃測(cè)量精度:2℃濕度檢測(cè)范圍:20%-90%RH檢測(cè)精度:5%RH顯示方式:溫度:四位顯示濕度:四位顯示報(bào)警方式:三極管驅(qū)動(dòng)的蜂鳴器報(bào)警2.2設(shè)計(jì)原理溫濕度監(jiān)測(cè)系統(tǒng)要滿足以下條件:溫濕度監(jiān)測(cè)系統(tǒng)能完成數(shù)據(jù)采集和處理、顯示、串行通信、輸出控制信號(hào)等多種功能。由數(shù)據(jù)采集、數(shù)據(jù)調(diào)理、單片機(jī)、數(shù)據(jù)顯示等4個(gè)大的部分組成。該測(cè)控系統(tǒng)具有實(shí)時(shí)采集(檢測(cè)糧庫(kù)內(nèi)的溫濕度)、實(shí)時(shí)顯示(對(duì)監(jiān)測(cè)到的進(jìn)行顯示)、實(shí)時(shí)警報(bào)(根據(jù)監(jiān)測(cè)的結(jié)果,超出預(yù)設(shè)定的值的進(jìn)行蜂鳴警告)的功能。傳感器是實(shí)現(xiàn)測(cè)量首要環(huán)節(jié),是監(jiān)測(cè)系統(tǒng)的關(guān)鍵部件,如果沒(méi)有傳感器對(duì)原始被測(cè)信號(hào)進(jìn)行準(zhǔn)確可靠的捕捉和轉(zhuǎn)換,一切準(zhǔn)確的測(cè)量和控制都將無(wú)法實(shí)現(xiàn)。工業(yè)生產(chǎn)過(guò)程的自動(dòng)化測(cè)量和控制,幾乎主要依靠各種傳感器來(lái)檢測(cè)和控制生產(chǎn)過(guò)程中的各種參量,使設(shè)備和系統(tǒng)正常運(yùn)行在最佳狀態(tài),從而保證生產(chǎn)的高效率和高質(zhì)量。一般溫濕度控制系統(tǒng)中的溫濕度測(cè)量均采用熱敏電阻與濕敏電容,這種傳統(tǒng)的模擬式溫濕度傳感器一般都需要設(shè)計(jì)信號(hào)調(diào)理電路并經(jīng)過(guò)復(fù)雜的校準(zhǔn)和標(biāo)定過(guò)程,因此測(cè)量精度難以保證,且在線性度、重復(fù)性、互換性等方面也存在一定

問(wèn)題。這種傳感器只適合那些測(cè)量點(diǎn)數(shù)較少,對(duì)精度要求不高的場(chǎng)合。因此設(shè)計(jì)出一款精度高、穩(wěn)定性好、成本低的溫濕度檢測(cè)控制系統(tǒng)將具有一定的市場(chǎng)。2.2.1溫濕度傳感器的選擇DHT11數(shù)字溫濕度傳感器是一款含有已校準(zhǔn)數(shù)字信號(hào)輸出的溫濕度復(fù)合傳感器。它應(yīng)用專(zhuān)用的數(shù)字模塊采集技術(shù)和溫濕度傳感技術(shù),確保產(chǎn)品具有極高的可靠性與卓越的長(zhǎng)期穩(wěn)定性。傳感器包括一個(gè)電阻式感濕元件和一個(gè)NTC測(cè)溫元件,并與一個(gè)高性能8位單片機(jī)相連接。因此該產(chǎn)品具有品質(zhì)卓越、超快響應(yīng)、抗干擾能力強(qiáng)、性價(jià)比極高等優(yōu)點(diǎn)。每個(gè)DHT11傳感器都在極為精確的濕度校驗(yàn)室中進(jìn)行校準(zhǔn)。校準(zhǔn)系數(shù)以程序的形式儲(chǔ)存在OTP內(nèi)存中,傳感器內(nèi)部在檢測(cè)信號(hào)的處理過(guò)程中要調(diào)用這些校準(zhǔn)系數(shù)。單線制串行接口,使系統(tǒng)集成變得簡(jiǎn)易快捷。超小的體積、極低的功耗,信號(hào)傳輸距離可達(dá)20米以上,使其成為各類(lèi)應(yīng)用甚至最為苛刻的應(yīng)用場(chǎng)合的最佳選則。產(chǎn)品為4針單排引腳封裝。連接方便,特殊封裝形式可根據(jù)用戶需求而提供。2.2.2信號(hào)采集通道的選擇在本設(shè)計(jì)系統(tǒng)中,溫度輸入信號(hào)為4路的模擬信號(hào),這就需要多通道結(jié)構(gòu)采用多路分時(shí)的模擬量輸入通道。這種結(jié)構(gòu)的模擬量通道特點(diǎn)為:對(duì)ADC、S/H要求高。處理速度慢。硬件簡(jiǎn)單,成本低。軟件比較復(fù)雜。如圖1所示:信號(hào)調(diào)理電路信號(hào)調(diào)理電路信號(hào)調(diào)理電路多路切換器采樣/保持器A/D轉(zhuǎn)換器接口CPU圖1多路分時(shí)的模擬量輸入通道

2.2.3系統(tǒng)的總體框圖系統(tǒng)的總體設(shè)計(jì)框圖如圖2所示:本設(shè)計(jì)由信號(hào)采集、信號(hào)分析和信號(hào)處理三個(gè)部分組成的。(一)信號(hào)采集由DHT11溫濕度傳感器和多路模式選擇開(kāi)關(guān)組成;(二)信號(hào)分析由A/D轉(zhuǎn)換器和單片機(jī)80C51組成;(三)信號(hào)處理由串行口LCD顯示器和報(bào)警系統(tǒng)等組成。DHT11溫濕度檢測(cè)多路模式選擇開(kāi)關(guān)單片機(jī)串行口與LCD報(bào)警電路ADC0832圖2系統(tǒng)總體框圖

3主要芯片簡(jiǎn)介3.1DHT11數(shù)字傳感器3.1.1主要特性DHT11數(shù)字溫濕度傳感器是一款含有已校準(zhǔn)數(shù)字信號(hào)輸出的溫濕度復(fù)合傳感器。它應(yīng)用專(zhuān)用的數(shù)字模塊采集技術(shù)和溫濕度傳感技術(shù),確保產(chǎn)品具有極高的可靠性與卓越的長(zhǎng)期穩(wěn)定性。傳感器包括一個(gè)電阻式感濕元件和一個(gè)NTC測(cè)溫元件,并與一個(gè)高性能8位單片機(jī)相連接。因此該產(chǎn)品具有品質(zhì)卓越、超快響應(yīng)、抗干擾能力強(qiáng)、性價(jià)比極高等優(yōu)點(diǎn)。每個(gè)DHT11傳感器都在極為精確的濕度校驗(yàn)室中進(jìn)行校準(zhǔn)。校準(zhǔn)系數(shù)以程序的形式儲(chǔ)存在OTP內(nèi)存中,傳感器內(nèi)部在檢測(cè)信號(hào)的處理過(guò)程中要調(diào)用這些校準(zhǔn)系數(shù)。單線制串行接口,使系統(tǒng)集成變得簡(jiǎn)易快捷。超小的體積、極低的功耗,信號(hào)傳輸距離可達(dá)20米以上,使其成為各類(lèi)應(yīng)用甚至最為苛刻的應(yīng)用場(chǎng)合的最佳選則。產(chǎn)品為4針單排引腳封裝。連接方便,特殊封裝形式可根據(jù)用戶需求而提供。3.1.2應(yīng)用領(lǐng)域該DHT11可以用于暖通空調(diào)、測(cè)試及檢測(cè)設(shè)備、汽車(chē)、數(shù)據(jù)記錄器、消費(fèi)品、自動(dòng)控制、濕度調(diào)節(jié)器及醫(yī)療等應(yīng)用領(lǐng)域。3.1.3引腳圖DHT11有四個(gè)引腳,3號(hào)引腳一般懸空,如圖3所示。DHT11的供電電壓為3—5.5V。傳感器上電后,要等待1s以越過(guò)不穩(wěn)定狀態(tài)在此期間無(wú)需發(fā)送任何指令。電源引腳(VDD,GND)之間可增加一個(gè)100nF的電容,用以去耦濾波。建議連接線長(zhǎng)度短于20米時(shí)用5K上拉電阻,大于20米時(shí)根據(jù)實(shí)際情況使用合適的上拉電阻。

3.1.4封裝信息封裝圖如圖4所示:3.2液晶顯示器LCD1602在日常生活中,我們對(duì)液晶顯示器并不陌生。液晶顯示模塊已作為很多電子產(chǎn)品的通過(guò)器件,如在計(jì)算器、萬(wàn)用表、電子表及很多家用電子產(chǎn)品中都可以看到,顯示的主要是數(shù)字、專(zhuān)用符號(hào)和圖形。在單片機(jī)的人機(jī)交流界面中,一般的輸出方式有以下幾種:發(fā)光管、LED數(shù)碼管、液晶顯示器。發(fā)光管和LED數(shù)碼管比較常用,軟硬件都比較簡(jiǎn)單,在前面章節(jié)已經(jīng)介紹過(guò),在此不作介紹,本章重點(diǎn)介紹字符型液晶顯示器的應(yīng)用。在單片機(jī)系統(tǒng)中應(yīng)用晶液顯示器作為輸出器件有以下幾個(gè)優(yōu)點(diǎn):(一)顯示質(zhì)量高(二)數(shù)字式接口圖3DHT11引腳圖圖4DHT11封裝圖

(三)體積小、重量輕(四)功耗低3.2.1液晶顯示原理液晶顯示的原理是利用液晶的物理特性,通過(guò)電壓對(duì)其顯示區(qū)域進(jìn)行控制,有電就有顯示,這樣即可以顯示出圖形。液晶顯示器具有厚度薄、適用于大規(guī)模集成電路直接驅(qū)動(dòng)、易于實(shí)現(xiàn)全彩色顯示的特點(diǎn),目前已經(jīng)被廣泛應(yīng)用在便攜式電腦、數(shù)字?jǐn)z像機(jī)、PDA移動(dòng)通信工具等眾多領(lǐng)域。3.2.2液晶顯示器的分類(lèi)液晶顯示的分類(lèi)方法有很多種,通?砂雌滹@示方式分為段式、字符式、點(diǎn)陣式等。除了黑白顯示外,液晶顯示器還有多灰度有彩色顯示等。如果根據(jù)驅(qū)動(dòng)方式來(lái)分,可以分為靜態(tài)驅(qū)動(dòng)(Static)、單純矩陣驅(qū)動(dòng)(SimpleMatrix)和主動(dòng)矩陣驅(qū)動(dòng)(ActiveMatrix)三種。3.2.3液晶顯示器各種圖形的顯示原理首先是液晶的線段的顯示。點(diǎn)陣圖形式液晶由M×N個(gè)顯示單元組成,假設(shè)LCD顯示屏有64行,每行有128列,每8列對(duì)應(yīng)1字節(jié)的8位,即每行由16字節(jié),共16×8=128個(gè)點(diǎn)組成,屏上64×16個(gè)顯示單元與顯示RAM區(qū)1024字節(jié)相對(duì)應(yīng),每一字節(jié)的內(nèi)容和顯示屏上相應(yīng)位置的亮暗對(duì)應(yīng)。例如屏的第一行的亮暗由RAM區(qū)的000H——00FH的16字節(jié)的內(nèi)容決定,當(dāng)(000H)=FFH時(shí),則屏幕的左上角顯示一條短亮線,長(zhǎng)度為8個(gè)點(diǎn);當(dāng)(3FFH)=FFH時(shí),則屏幕的右下角顯示一條短亮線;當(dāng)(000H)=FFH,(001H)=00H,(002H)=00H,......(00EH)=00H,(00FH)=00H時(shí),則在屏幕的頂部顯示一條由8段亮線和8條暗線組成的虛線。這就是LCD顯示的基本原理。其次是液晶字符的顯示。用LCD顯示一個(gè)字符時(shí)比較復(fù)雜,因?yàn)橐粋(gè)字符由6×8或8×8點(diǎn)陣組成,既要找到和顯示屏幕上某幾個(gè)位置對(duì)應(yīng)的顯示RAM區(qū)的8字節(jié),還要使每字節(jié)的不同位為“1”,其它的為“0”,為“1”的點(diǎn)亮,為“0”的不亮。這樣一來(lái)就組成某個(gè)字符。但由于內(nèi)帶字符發(fā)生器的控制器來(lái)說(shuō),顯示字符就比較簡(jiǎn)單了,可以讓控制器工作在文本方式,根據(jù)在LCD上開(kāi)始顯示的行列號(hào)及每行的列數(shù)找出顯示RAM對(duì)應(yīng)的地址,設(shè)立光標(biāo),在此送上該字符對(duì)應(yīng)的代碼即可。

3.2.4LCD1602的基本參數(shù)及引腳功能1602LCD分為帶背光和不帶背光兩種,基控制器大部分為HD44780,帶背光的比不帶背光的厚,是否帶背光在應(yīng)用中并無(wú)差別,兩者尺寸差別如下圖5所示:LCD1602的主要技術(shù)參數(shù):1、顯示容量:16×2個(gè)字符2、芯片工作電壓:4.5—5.5V3、工作電流:2.0mA(5.0V)4、模塊最佳工作電壓:5.0V5、字符尺寸:2.95×4.35(W×H)mm引腳功能說(shuō)明LCD1602采用標(biāo)準(zhǔn)的14腳(無(wú)背光)或16腳(帶背光)接口,各引腳接口說(shuō)明如圖6所示:圖5LCD1602尺寸圖

編號(hào)符號(hào)引腳說(shuō)明編號(hào)符號(hào)引腳說(shuō)明1VSS電源地9D2數(shù)據(jù)2VDD電源正極10D3數(shù)據(jù)3VL液晶顯示偏壓11D4數(shù)據(jù)4RS數(shù)據(jù)/命令選擇12D5數(shù)據(jù)5R/W讀/寫(xiě)選擇13D6數(shù)據(jù)6E使能信號(hào)14D7數(shù)據(jù)7D0數(shù)據(jù)15BLA背光源正極8D1數(shù)據(jù)16BLK背光源負(fù)極圖6:引腳接口說(shuō)明表第1腳:VSS為地電源。第2腳:VDD接5V正電源。第3腳:VL為液晶顯示器對(duì)比度調(diào)整端,接正電源時(shí)對(duì)比度最弱,接地時(shí)對(duì)比度最高,對(duì)比度過(guò)高時(shí)會(huì)產(chǎn)生“鬼影”,使用時(shí)可以通過(guò)一個(gè)10K的電位器調(diào)整對(duì)比度。第4腳:RS為寄存器選擇,高電平時(shí)選擇數(shù)據(jù)寄存器、低電平時(shí)選擇指令寄存器。第5腳:R/W為讀寫(xiě)信號(hào)線,高電平時(shí)進(jìn)行讀操作,低電平時(shí)進(jìn)行寫(xiě)操作。當(dāng)RS和R/W共同為低電平時(shí)可以寫(xiě)入指令或者顯示地址,當(dāng)RS為低電平R/W為高電平時(shí)可以讀忙信號(hào),當(dāng)RS為高電平R/W為低電平時(shí)可以寫(xiě)入數(shù)據(jù)。第6腳:E端為使能端,當(dāng)E端由高電平跳變成低電平時(shí),液晶模塊執(zhí)行命令。第7~14腳:D0~D7為8位雙向數(shù)據(jù)線。第15腳:背光源正極。第16腳:背光源負(fù)極。圖6引腳接口說(shuō)明

3.2.5LCD1602的指令說(shuō)明及時(shí)序1602液晶模塊內(nèi)部的控制器共有11條控制指令,如圖7所示:序號(hào)指令RSR/WD7D6D5D4D3D2D1D01清顯示00000000012光標(biāo)返回000000001*3置輸入模式00000001I/DS4顯示開(kāi)/關(guān)控制0000001DCB5光標(biāo)或字符移位000001S/CR/L**6置功能00001DLNF**7置字符發(fā)生存貯器地址0001字符發(fā)生存貯器地址8置數(shù)據(jù)存貯器地址001顯示數(shù)據(jù)存貯器地址9讀忙標(biāo)志或地址01BF計(jì)數(shù)器地址10寫(xiě)數(shù)到CGRAM或DDRAM)10要寫(xiě)的數(shù)據(jù)內(nèi)容11從CGRAM或DDRAM讀數(shù)11讀出的數(shù)據(jù)內(nèi)容1602液晶模塊的讀寫(xiě)操作、屏幕和光標(biāo)的操作都是通過(guò)指令編程來(lái)實(shí)現(xiàn)的。(說(shuō)明:1為高電平、0為低電平)指令1:清顯示,指令碼01H,光標(biāo)復(fù)位到地址00H位置。指令2:光標(biāo)復(fù)位,光標(biāo)返回到地址00H。指令3:光標(biāo)和顯示模式設(shè)置I/D:光標(biāo)移動(dòng)方向,高電平右移,低電平左移S:屏幕上所有文字是否左移或者右移。高電平表示有效,低電平則無(wú)效。圖7控制命令表

指令4:顯示開(kāi)關(guān)控制。D:控制整體顯示的開(kāi)與關(guān),高電平表示開(kāi)顯示,低電平表示關(guān)顯示C:控制光標(biāo)的開(kāi)與關(guān),高電平表示有光標(biāo),低電平表示無(wú)光標(biāo)B:控制光標(biāo)是否閃爍,高電平閃爍,低電平不閃爍。指令5:光標(biāo)或顯示移位S/C:高電平時(shí)移動(dòng)顯示的文字,低電平時(shí)移動(dòng)光標(biāo)。指令6:功能設(shè)置命令DL:高電平時(shí)為4位總線,低電平時(shí)為8位總線N:低電平時(shí)為單行顯示,高電平時(shí)雙行顯示F:低電平時(shí)顯示5x7的點(diǎn)陣字符,高電平時(shí)顯示5x10的點(diǎn)陣字符。指令7:字符發(fā)生器RAM地址設(shè)置。指令8:DDRAM地址設(shè)置。指令9:讀忙信號(hào)和光標(biāo)地址BF:為忙標(biāo)志位,高電平表示忙,此時(shí)模塊不能接收命令或者數(shù)據(jù),如果為低電平表示不忙。指令10:寫(xiě)數(shù)據(jù)。指令11:讀數(shù)據(jù)。3.2.6LCD1602的RAM地址映射及標(biāo)準(zhǔn)字庫(kù)表液晶顯示模塊是一個(gè)慢顯示器件,所以在執(zhí)行每條指令之前一定要確認(rèn)模塊的忙標(biāo)志為低電平,表示不忙,否則此指令失效。要顯示字符時(shí)要先輸入顯示字符地址,也就是告訴模塊在哪里顯示字符,圖8是1602的內(nèi)部顯示地址。例如第二行第一個(gè)字符的地址是40H,那么是否直接寫(xiě)入40H就可以將光標(biāo)定位在第二行第一個(gè)字符的位置呢?這樣不行,因?yàn)閷?xiě)入顯示地址時(shí)要求最高位D7恒定為高電平1所以實(shí)際寫(xiě)入的數(shù)據(jù)應(yīng)該是01000000B(40H)+10000000B(80H)=11000000B(C0H)。圖8LCD1602內(nèi)部顯示地址

在對(duì)液晶模塊的初始化中要先設(shè)置其顯示模式,在液晶模塊顯示字符時(shí)光標(biāo)是自動(dòng)右移的,無(wú)需人工干預(yù)。每次輸入指令前都要判斷液晶模塊是否處于忙的狀態(tài)。1602液晶模塊內(nèi)部的字符發(fā)生存儲(chǔ)器(CGROM)已經(jīng)存儲(chǔ)了160個(gè)不同的點(diǎn)陣字符圖形,這些字符有:阿拉伯?dāng)?shù)字、英文字母的大小寫(xiě)、常用的符號(hào)、和日文假名等,每一個(gè)字符都有一個(gè)固定的代碼,比如大寫(xiě)的英文字母“A”的代碼是01000001B(41H),顯示時(shí)模塊把地址41H中的點(diǎn)陣字符圖形顯示出來(lái),我們就能看到字母“A”。3.2.7硬件原理圖1602液晶顯示模塊可以和單片機(jī)AT89C51直接接口,電路如圖9所示:3.3單片機(jī)89C51為了設(shè)計(jì)此系統(tǒng),我們采用了80C51單片機(jī)作為控制芯片。89C51是MCS-51系列單片機(jī)中CHMOS工藝的一個(gè)典型品種;其它廠商以8951為基核開(kāi)發(fā)出的CMOS工藝單片機(jī)產(chǎn)品統(tǒng)稱(chēng)為89C51系列。該系列單片機(jī)是采用高性能的靜態(tài)89C51設(shè)計(jì)由先進(jìn)CMOS工藝制造并帶有非易失性Flash程序存儲(chǔ)器全部支持圖9硬件原理圖

12時(shí)鐘和6時(shí)鐘操作P89C51X2和P89C52X2/54X2/58X2分別包含128字節(jié)和256字節(jié)RAM32條I/O口線3個(gè)16位定時(shí)/計(jì)數(shù)器6輸入4優(yōu)先級(jí)嵌套中斷結(jié)構(gòu)1個(gè)串行I/O口可用于多機(jī)通信I/O擴(kuò)展或全雙工UART以及片內(nèi)振蕩器和時(shí)鐘電路。此外,由于器件采用了靜態(tài)設(shè)計(jì),可提供很寬的操作頻率范圍,頻率可降至0。可實(shí)現(xiàn)兩個(gè)由軟件選擇的節(jié)電模式,空閑模式和掉電模式,空閑模式凍結(jié)CPU但RAM定時(shí)器,串口和中斷系統(tǒng)仍然工作,掉電模式保存RAM的內(nèi)容,但是凍結(jié)振蕩器導(dǎo)致所有其它的片內(nèi)功能停止工作。由于設(shè)計(jì)是靜態(tài)的時(shí)鐘可停止而不會(huì)丟失用戶數(shù)據(jù),運(yùn)行可從時(shí)鐘停止處恢復(fù)。3.3.189C51的基本結(jié)構(gòu)89C51的微處理器(CPU);運(yùn)算器;累加器ACC;寄存器B;程序狀態(tài)字寄存器PSW;控制器;程序計(jì)數(shù)器PC;指令寄存器IR;定時(shí)與控制邏輯;89C51的片內(nèi)存儲(chǔ)器;內(nèi)部ROM容量4K字節(jié);內(nèi)部RAM容量128字節(jié);89C51的I/O口及功能單元;四個(gè)8位的并行口,即P0~P3。它們均為雙向口,既可作為輸入,又可作為輸出。每個(gè)口各有8條I/O線;有一個(gè)全雙工的串行口(利用P3口的兩個(gè)引腳P3.0和P3.1);有2個(gè)16位的定時(shí)/計(jì)數(shù)器;有1套完善的中斷系統(tǒng);89C51的特殊功能寄存器(SFR);低功耗的閑置和掉電模式;片內(nèi)振蕩器和時(shí)鐘電路;

3.3.289C51的引腳圖89C51的引腳圖如圖10所示:89C51的制作工藝為CMOS,采用40管腳雙列直插DIP封裝,引腳說(shuō)明如下:VCC:供電電壓。GND:接地。P0口:P0口為一個(gè)8位漏級(jí)開(kāi)路雙向I/O口,每腳可吸收8TTL門(mén)電流。當(dāng)P1口的管腳第一次寫(xiě)1時(shí),被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(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門(mén)電流。P1口管腳寫(xiě)入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗(yàn)時(shí),P1口作為第八位地址接收。圖1089C51引腳圖

P2口:P2口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個(gè)TTL門(mén)電流,當(dāng)P2口被寫(xiě)“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),P2口輸出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢(shì),當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫(xiě)時(shí),P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。P3口:P3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個(gè)TTL門(mén)電流。當(dāng)P3口寫(xiě)入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。P3口也可作為AT89C51的一些特殊功能口,如下所示: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ù)存儲(chǔ)器寫(xiě)選通);P3.7/RD(外部數(shù)據(jù)存儲(chǔ)器讀選通);P3口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號(hào)。RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平時(shí)間。ALE/PROG:當(dāng)訪問(wèn)外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時(shí),ALE端以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的1/6。因此它可用作對(duì)外部輸出的脈沖或用于定時(shí)目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過(guò)一個(gè)ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時(shí),ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無(wú)效。/PSEN:外部程序存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取指期間,每個(gè)機(jī)器周期兩次/PSEN有效。但在訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的/PSEN信號(hào)將不出現(xiàn)。/EA/VPP:當(dāng)/EA保持低電平時(shí),則在此期間外部程序存儲(chǔ)器(0000H-FFFFH),不管是否有內(nèi)部程序存儲(chǔ)器。注意加密方式1時(shí),/EA將內(nèi)

部鎖定為RESET;當(dāng)/EA端保持高電平時(shí),此間內(nèi)部程序存儲(chǔ)器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。XTAL1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。XTAL2:來(lái)自反向振蕩器的輸出。3.3.389C51的存儲(chǔ)器配置89C51的存儲(chǔ)器配置如圖11所示:對(duì)于程序存儲(chǔ)器,與ROM密切相關(guān)的兩個(gè)引腳是地址鎖存允許信號(hào)端和外部程序存儲(chǔ)器允許輸出信號(hào)端。當(dāng)ROM容量不夠時(shí),盡量選擇高容量存儲(chǔ)器空間的單片機(jī),如89C52,89C54,89C58等,應(yīng)避免外擴(kuò)程序存儲(chǔ)器,因?yàn)闀?huì)增加硬件負(fù)擔(dān),通過(guò)16位PC尋址,最大可尋址64kB地址空間。數(shù)據(jù)存儲(chǔ)器用于存放運(yùn)算中間的結(jié)果、數(shù)據(jù)暫存、緩沖、標(biāo)志位、待測(cè)程序等功能。片內(nèi)的128B的RAM地址為00H~7FH,供用戶做RAM用,但是在這中間的前32單元,00H~1FH即引用地址尋址做用戶RAM用,常常做工作寄存器區(qū),分做四組,每組由8個(gè)單元組成通用寄存器R0~R7,任何時(shí)候都由其中一組作為當(dāng)前工作寄存器,通過(guò)RS0,RS1的內(nèi)容來(lái)決定選擇哪一個(gè)工作寄存器。低128字節(jié)中的20H~2FH共16字節(jié)可用位尋址方式訪問(wèn)各位,共128個(gè)位地址,30H~7FH共80個(gè)單元為用戶RAM區(qū),作堆棧或數(shù)據(jù)緩沖用,片內(nèi)RAM圖1189C51存儲(chǔ)器配置

不夠用時(shí),須擴(kuò)展片外數(shù)據(jù)存儲(chǔ)器。此時(shí)單片機(jī)通過(guò)P2口和P0口選出6位地址,使用ALE作低8位的鎖存信號(hào),再由P0口寫(xiě)入或讀出數(shù)據(jù)。寫(xiě)時(shí)用,讀時(shí)用做外部數(shù)據(jù)存儲(chǔ)器的選通信號(hào)。3.3.489C51的工作模式89C51有四種工作模式:模式0,模式1,模式2,模式3。模式0:選擇定時(shí)器的高8位和低5位組成一個(gè)13位定時(shí)器/計(jì)數(shù)器。TL低5位溢出時(shí)向TH進(jìn)位,TH溢出時(shí)向中斷標(biāo)志位TF進(jìn)位,并申請(qǐng)中斷。定時(shí)時(shí)間t=(213-初值)×振蕩周期×12;計(jì)數(shù)長(zhǎng)度位213=8192個(gè)外部脈沖。模式1:與模式0的唯一差別是寄存器TH和TL以全部16位參與操作。定時(shí)時(shí)間t=(216-初值)×振蕩周期×12;計(jì)數(shù)長(zhǎng)度位216=65536個(gè)外部脈沖。模式2:把TL0和TL1配置成一個(gè)自動(dòng)重裝載的8位定時(shí)器/計(jì)數(shù)器。TL用作8位計(jì)數(shù)器,TH用以保存初值。TL計(jì)數(shù)溢出時(shí)不僅使TF0置1,而且還自動(dòng)將TH中的內(nèi)容重新裝載到TL中。定時(shí)時(shí)間t=(28-初值)×振蕩周期×12;計(jì)數(shù)長(zhǎng)度位28=256個(gè)外部脈沖。模式3:對(duì)T0和T1不大相同。若設(shè)T0位模式3,TL0和TH0被分為兩個(gè)相互獨(dú)立的8位計(jì)數(shù)器。TL0為8位計(jì)數(shù)器,功能與模式0和模式1相同,可定時(shí)可計(jì)數(shù)。TH0僅用作簡(jiǎn)單的內(nèi)部定時(shí)功能,它占用了定時(shí)器T1的控制位TR1和中斷標(biāo)志位TF1,啟動(dòng)和關(guān)閉僅受TR1控制。定時(shí)器T1無(wú)工作模式3,但T0在工作模式3時(shí)T1仍可設(shè)置為0~2。3.3.589C51的系統(tǒng)時(shí)鐘設(shè)計(jì)時(shí)鐘電路是用來(lái)產(chǎn)生89C51單片機(jī)工作時(shí)所必須的時(shí)鐘信號(hào),89C51本身就是一個(gè)復(fù)雜的同步時(shí)序電路,為保證工作方式的實(shí)現(xiàn),89C51在唯一的時(shí)鐘信號(hào)的控制下嚴(yán)格的按時(shí)序執(zhí)行指令進(jìn)行工作,時(shí)鐘的頻率影響單片機(jī)的速度和穩(wěn)定性。通常時(shí)鐘由于兩種形式:內(nèi)部時(shí)鐘和外部時(shí)鐘。我們系統(tǒng)采用內(nèi)部時(shí)鐘方式來(lái)為系統(tǒng)提供時(shí)鐘信號(hào)。89C51內(nèi)部有一個(gè)用于構(gòu)成振蕩器的高增益反向放大器,該放大器的輸入輸出引腳為XTAL1和XTAL2,它們跨接在晶體振蕩器和用于微調(diào)的電容,便構(gòu)成了一個(gè)自激勵(lì)振蕩器。電路中的C1、C2的選擇在30PF左右,但電容太小會(huì)影響振蕩的頻率、穩(wěn)定性和快速性。晶振頻率為在1.2MHZ~12MHZ之間,頻率越高單片機(jī)的速度

就越快,但對(duì)存儲(chǔ)器速度要求就高。為了提高穩(wěn)定性我們采用溫度穩(wěn)定性好的NPO電容,采用的晶振頻率為12MHZ。時(shí)鐘電路如圖12所示:圖12系統(tǒng)時(shí)鐘電路

4硬件與軟件4.1硬件設(shè)計(jì)4.1.1硬件要求根據(jù)設(shè)計(jì)要求確定了系統(tǒng)的總體方案,整個(gè)系統(tǒng)由單片機(jī)、溫濕度傳感器、顯示模塊和報(bào)警器等幾部分組成。溫濕度傳感器監(jiān)測(cè)值傳輸給單片機(jī),并液晶顯示。當(dāng)單片機(jī)監(jiān)測(cè)到的數(shù)值超出所設(shè)定閾值時(shí),驅(qū)動(dòng)蜂鳴器報(bào)警。4.1.2具體硬件設(shè)計(jì)單片機(jī)是整個(gè)系統(tǒng)的控制中樞,它指揮外圍器件協(xié)調(diào)工作,從而完成特定的功能。硬件實(shí)現(xiàn)上采用模塊化設(shè)計(jì),每一模塊只實(shí)現(xiàn)一個(gè)特定功能,最后再將各個(gè)模塊搭接在一起。這種設(shè)計(jì)方法可以降低系統(tǒng)設(shè)計(jì)的復(fù)雜性。系統(tǒng)電路原理圖如圖13所示。本系統(tǒng)主要硬件設(shè)計(jì)包括電源電路、蜂鳴器電路、晶振電路、復(fù)位電路、LCD顯示電路以及溫濕度傳感器電路?刂齐娐返暮诵钠骷嗀T89C52單片機(jī),屬于MCS-51系列。AT89C52是一種低功耗、高性能的CMOS8位微控制器,具有8K在系統(tǒng)可編程Flash存儲(chǔ)器,采用的工藝是Atmel公司的高密度非易失存儲(chǔ)器技術(shù);片上Flash允許程序存儲(chǔ)器在系統(tǒng)可編程,亦適于常規(guī)編程器;在單芯片上,擁有靈巧的8位CPU和在系統(tǒng)可編程Flash,使得AT89C52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案;價(jià)格低廉、性能可靠、抗干擾能力強(qiáng)。因此廣泛應(yīng)用于工業(yè)控制和嵌入式系統(tǒng)中。

系統(tǒng)的蜂鳴器電路、振蕩電路、復(fù)位電路如圖14、圖15、圖16所示。圖13系統(tǒng)電路原理圖圖14蜂鳴器電路

蜂鳴器額定電流IB≤30mA,而對(duì)于AT89C52單片機(jī),P1口的灌電流為1.6mA,拉電流為60μA,由此可見(jiàn),僅靠單片機(jī)的P1口電流是不能驅(qū)動(dòng)蜂鳴器的,必須使用集晶體管放大電路,為了使單片機(jī)消耗的功率更小,所以使用PNP型晶體管9012。AT89C52采用的晶振電路采用12MHz的無(wú)源晶振,微調(diào)電容大小取30pF。顯示模塊選用1602字符型液晶模塊,是目前工控系統(tǒng)中使用最為廣泛的液晶屏之一,電路圖如圖17所示。1602字符型液晶模塊是點(diǎn)陣型液晶,驅(qū)動(dòng)方便,經(jīng)編碼后顯示內(nèi)容多樣化。系統(tǒng)的輸入模塊采用中斷掃描的4×4矩陣鍵盤(pán),相比定時(shí)掃描方式,提高了MCU的使用效率。圖15振蕩電路圖16復(fù)位電路

4.2軟件設(shè)計(jì)系統(tǒng)軟件程序基于Keil開(kāi)發(fā)平臺(tái),采用C語(yǔ)言編寫(xiě)。本程序采用模塊化程序方法,主要分為一下兩個(gè)模塊:LCD初始化顯示模塊DHT11數(shù)據(jù)采集模塊LCD初始化顯示流程圖和DHT11數(shù)據(jù)采集流程圖分別如圖18、圖19所示:圖17LCD1602電路圖

圖18LCD初始化顯示流程圖圖19DHT11數(shù)據(jù)采集流程圖

5設(shè)計(jì)總結(jié)課程設(shè)計(jì)是培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識(shí),發(fā)現(xiàn),提出,分析和解決實(shí)際問(wèn)題,鍛煉實(shí)踐能力的重要環(huán)節(jié),是對(duì)學(xué)生實(shí)際工作能力的具體訓(xùn)練和考察過(guò)程。隨著科學(xué)技術(shù)發(fā)展的日新日異,單片機(jī)已經(jīng)成為當(dāng)今計(jì)算機(jī)應(yīng)用中空前活躍的領(lǐng)域,在生活中可以說(shuō)得是無(wú)處不在。因此作為二十一世紀(jì)的大學(xué)來(lái)說(shuō)掌握單片機(jī)的開(kāi)發(fā)技術(shù)是十分重要的;仡櫰鸫舜螁纹瑱C(jī)課程設(shè)計(jì),我仍感慨頗多。在接近一星期的日子里,可以說(shuō)是苦多于甜,雖然如此,卻學(xué)到很多很多的的東西,同時(shí)還鞏固了以前所學(xué)過(guò)的知識(shí),并學(xué)到了很多在書(shū)本上所沒(méi)有學(xué)到過(guò)的知識(shí)。通過(guò)這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合的重要性,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來(lái),從理論中得出結(jié)論,才能真正讓自己有所了解,有所體會(huì),從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。當(dāng)然,在設(shè)計(jì)的過(guò)程中遇到了很多問(wèn)題,但是通過(guò)這些問(wèn)題,我又能發(fā)現(xiàn)自己的不足之處。雖然問(wèn)題重重,但在老師和同學(xué)的幫助下,問(wèn)題都得以解決,所以,非常感謝那些幫助過(guò)我的老師和同學(xué)?傊ㄟ^(guò)這次課程設(shè)計(jì),我知道了很多,了解了很多,學(xué)到了很多。

參考文獻(xiàn)[1]何立民.單片機(jī)高級(jí)教程-應(yīng)用與設(shè)計(jì)[M].北京航空航天大學(xué)出版社,2002.[2]徐愛(ài)鈞.單片機(jī)高級(jí)語(yǔ)言C51Windows環(huán)境編程與應(yīng)用[M].電子工業(yè)出版社,2001.[3]白雪冰,張延林,等.單片機(jī)原理及應(yīng)用[M].哈爾濱東北林業(yè)大學(xué)出版社,2006.[4]張佳薇,孫麗萍,等.傳感器原理與應(yīng)用[M].哈爾濱東北林業(yè)大學(xué)出版社,2003.

附錄源程序:#include<reg52.h>#defineuintunsignedint#defineucharunsignedchartypedefbitBOOL;sbitio=P1^0;sbitrs=P2^5;sbitrw=2^6;sbitep=P2^7;uchardata_byte;ucharRH,RL,TH,TL;voiddelay(ucharms){//延時(shí)子程序uchari;while(ms--){for(i=0;i<250;i++);}}voiddelay1()//延時(shí)10us{uchari;i--;i--;i--;i--;i--;i--;}voidlongdelay(uchars)//長(zhǎng)延時(shí){

while(s--){delay(60);}}BOOLlcd_bz()//測(cè)試LCD忙碌狀態(tài){BOOLresult;rs=0;rw=1;ep=1;result=(BOOL)(P1&0x80);ep=0;returnresult;}voidwrite_cmd(ucharcmd)//寫(xiě)指令{while(lcd_bz());rs=0;rw=0;ep=0;P1=cmd;ep=1;ep=0;}voidwrite_addr(ucharaddr)//寫(xiě)地址{write_cmd(addr|0x80);}voidwrite_byte(uchardat)//寫(xiě)字節(jié){while(lcd_bz());rs=1;

rw=0;ep=0;P1=dat;ep=1;ep=0;}voidlcd_init()//初始化{write_cmd(0x38);delay(1);write_cmd(0x08);delay(1);write_cmd(0x01);delay(1);write_cmd(0x06);delay(1);write_cmd(0x0c);delay(1);}voiddisplay(ucharaddr,ucharq)//在某一地址上顯示一字節(jié){delay(10);write_addr(addr);write_byte(q);longdelay(2);}voidstart()//開(kāi)始信號(hào){io=1;delay1();io=0;delay(20);//>18msio=1;delay1();//20-40us

delay1();delay1();delay1();delay1();}ucharreceive_byte()//接收一個(gè)字節(jié){uchari,temp,count;for(i=0;i<8;i++){count=2;while((!io)&&count++)//等待50us低電平結(jié)束temp=0;delay1();delay1();delay1();delay1();if(io==1)temp=1;count=2;while((io)&&count++);if(count==1)break;data_byte<<=1;data_byte|=temp;}returndata_byte;}voidreceive()//接收數(shù)據(jù){ucharT_H,T_L,R_H,R_L,check,num_check;ucharcount;start();//開(kāi)始信號(hào)io=1;if(!io)//讀取DHT11響應(yīng)信號(hào){count=2;while((!io)&&

基于單片機(jī)的溫濕度檢測(cè)(完稿).pdf

1.11 MB, 下載次數(shù): 15, 下載積分: 黑幣 -5

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:637008 發(fā)表于 2020-7-2 22:33 | 顯示全部樓層
這啥也沒(méi)有啊
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表