濕度傳感器設(shè)計(jì)_第1頁
濕度傳感器設(shè)計(jì)_第2頁
濕度傳感器設(shè)計(jì)_第3頁
濕度傳感器設(shè)計(jì)_第4頁
濕度傳感器設(shè)計(jì)_第5頁
已閱讀5頁,還剩41頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

傳感器與檢測技術(shù)課程設(shè)計(jì)緒論1.1目的及意義在工農(nóng)業(yè)生產(chǎn)和日常生活中,對(duì)濕度的測量及控制始終占據(jù)著重要地位。在現(xiàn)代農(nóng)業(yè)大棚種植或是室內(nèi)畜牧業(yè)、氣象、環(huán)保、國防、科研、航天以及現(xiàn)代生活的各個(gè)方面,經(jīng)常需要對(duì)環(huán)境濕度進(jìn)行測量及控制。本設(shè)計(jì)就在此基礎(chǔ)上,設(shè)計(jì)一種基于STC89C52單片機(jī)控制的智能濕度檢測系統(tǒng)。1.2發(fā)展?fàn)顩r進(jìn)入21世紀(jì)后,特別在我國加入WTO后,國內(nèi)產(chǎn)品面臨巨大挑戰(zhàn)。各行業(yè)特別是傳統(tǒng)產(chǎn)業(yè)都急切需要應(yīng)用電子技術(shù)、自動(dòng)控制技術(shù)進(jìn)行改造和提升。例如紡織行業(yè),溫濕度是影響紡織品質(zhì)量的重要因素,但紡織企業(yè)對(duì)溫濕度的測控手段仍很粗糙,十分落后,絕大多數(shù)仍在使用干濕球濕度計(jì),采用人工觀測,人工調(diào)節(jié)閥門、風(fēng)機(jī)的方法,其控制效果可想而知。制藥行業(yè)里也基本如此。而在食品行業(yè)里,則基本上憑經(jīng)驗(yàn),很少有人使用濕度傳感器。值得一提的是,隨著農(nóng)業(yè)向產(chǎn)業(yè)化發(fā)展,許多農(nóng)民意識(shí)到必需擺脫落后的傳統(tǒng)耕作、養(yǎng)殖方式,采用現(xiàn)代科學(xué)技術(shù)來應(yīng)付進(jìn)口農(nóng)產(chǎn)品的挑戰(zhàn),并打進(jìn)國外市場。各地建立了越來越多的新型溫室大棚,種植反季節(jié)蔬菜,花卉;養(yǎng)殖業(yè)對(duì)環(huán)境的測控也日感迫切。但目前,在濕度測試領(lǐng)域大部分濕敏元件性能還只能使用在通常溫度環(huán)境下。在需要特殊環(huán)境下測濕的應(yīng)用場合大部分國內(nèi)包括許多國外濕度傳感器都會(huì)“皺起眉頭”!例如在上面提到紡織印染行業(yè),食品行業(yè),耐高溫材料行業(yè)等,都需要在高溫情況下測量濕度。一般情況下,印染行業(yè)在紗錠烘干中,溫度能達(dá)到120攝氏度或更高溫度;在食品行業(yè)中,食物的烘烤溫度能達(dá)到80-200攝氏度左右;耐高溫材料,如陶瓷過濾器的烘干等能達(dá)到200攝氏度以上。在這些情況下,普通的濕度傳感器是很難測量的。2系統(tǒng)的整體設(shè)計(jì)2.1設(shè)計(jì)內(nèi)容本次設(shè)計(jì)分為兩個(gè)內(nèi)容:硬件部分、軟件部分。硬件以單片機(jī)為核心,配以濕度模塊電路、鍵盤電路、數(shù)模轉(zhuǎn)換電路、顯示電路和報(bào)警電路。主要實(shí)現(xiàn)以下功能:(1)通過濕度模塊電路對(duì)環(huán)境的濕度進(jìn)行數(shù)據(jù)采集;(2)通過單片機(jī)對(duì)采集的數(shù)據(jù)進(jìn)行處理;(3)當(dāng)環(huán)境濕度低于或者高于設(shè)置濕度時(shí)啟動(dòng)報(bào)警。濕度檢測系統(tǒng)是一個(gè)智能化的系統(tǒng),它的軟件主要實(shí)現(xiàn)功能:(1)單片機(jī)能夠控制濕度模塊對(duì)空氣的濕度進(jìn)行采樣;(2)把采集的數(shù)據(jù)通過單片機(jī)處理,再以十進(jìn)制的形式顯示出來;(3)按鍵和顯示電路可對(duì)設(shè)置的報(bào)警上下限值進(jìn)行更改,并通過顯示電路顯示出來。2.2系統(tǒng)完成的技術(shù)指標(biāo)(1)實(shí)時(shí)顯示絕對(duì)濕度,系統(tǒng)的精度為10mg/L;(2)采用3位數(shù)碼管進(jìn)行濕度顯示;(3)顯示報(bào)警上限值為180mg/L,下限值為90mg/L;(4)濕度超過上下限濕度時(shí)進(jìn)行報(bào)警;(5)數(shù)碼管采用動(dòng)態(tài)顯示方式。2.3系統(tǒng)構(gòu)成與框圖本次設(shè)計(jì)的系統(tǒng)框圖見圖1.1所示。圖1.1系統(tǒng)框圖單片機(jī)控制濕度模塊AM1001對(duì)環(huán)境的濕度進(jìn)行檢測并通過單片機(jī)處理用數(shù)碼管顯示出來,鍵盤電路可設(shè)置報(bào)警的上下限值,當(dāng)環(huán)境濕度高于上限或者低于下限報(bào)警值時(shí),啟動(dòng)報(bào)警電路,即蜂鳴器響。2.4系統(tǒng)設(shè)計(jì)(1)設(shè)計(jì)之前,查找資料。先對(duì)濕度的概念進(jìn)行了解,并了解一些濕度傳感器的工作原理??諝鉂穸仁侵缚諝獬睗竦某潭?,可用相對(duì)濕度(RH)表示。相對(duì)濕度是指空氣實(shí)際所含水蒸氣密度和同溫下飽和水蒸氣密度的百分比值。人體在室內(nèi)感覺舒適的最佳相對(duì)濕度是,49%~5l%,相對(duì)濕度過低或過高,對(duì)人體都不適甚至有害。絕對(duì)濕度是一定體積的空氣中含有的水蒸氣的質(zhì)量,一般其單位是克/立方米。絕對(duì)濕度的最大限度是飽和狀態(tài)下的最高濕度。絕對(duì)濕度只有與溫度一起才有意義,因?yàn)榭諝庵心軌蚝械臐穸鹊牧侩S溫度而變化,在不同的溫度中絕對(duì)濕度也不同,因?yàn)殡S著溫度的變化空氣的體積也要發(fā)生變化。但絕對(duì)濕度越靠近最高濕度,它隨溫度的變化就越小。(2)分析系統(tǒng)的主要性能;(3)對(duì)整個(gè)電路的流程進(jìn)行分析;(4)硬件的準(zhǔn)備以及焊接;(5)用c語言進(jìn)行軟件的編寫并仿真;(6)將硬件和軟件進(jìn)行系統(tǒng)仿真直至完成設(shè)計(jì)。3硬件設(shè)計(jì)3.1STC89C52簡介圖1.2STC89C52本次設(shè)計(jì)所使用的單片機(jī)如圖1.2所示。STC89C52是一個(gè)低電壓,高性能CMOS8位單片機(jī),片內(nèi)含8kbytes的可反復(fù)擦寫的Flash只讀程序存儲(chǔ)器和256bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM),器件采用ATMEL公司的高密度、非易失性存儲(chǔ)技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng),片內(nèi)置通用8位中央處理器和Flash存儲(chǔ)單元,功能強(qiáng)大的STC89C52單片機(jī)可為您提供許多較復(fù)雜系統(tǒng)控制應(yīng)用場合。STC89C52有40個(gè)引腳,32個(gè)外部雙向輸入/輸出(I/O)端口,同時(shí)內(nèi)含2個(gè)外中斷口,3個(gè)16位可編程定時(shí)計(jì)數(shù)器,2個(gè)全雙工串行通信口,2個(gè)讀寫口線。STC89C52有PDIP、PQFP/TQFP及PLCC等三種封裝形式,以適應(yīng)不同產(chǎn)品的需求。主要功能特性 (1)兼容MCS51指令系統(tǒng) (2)8k可反復(fù)擦寫(>1000次)FlashROM (3)32個(gè)雙向I/O口(4)256x8bit內(nèi)部RAM (5)3個(gè)16位可編程定時(shí)/計(jì)數(shù)器中斷(6)時(shí)鐘頻率0-24MHz (7)2個(gè)串行中斷 (8)可編程UART串行通道 (9)2個(gè)外部中斷源 (10)共8個(gè)中斷源 (11)2個(gè)讀寫中斷口線 (12)3級(jí)加密位 (13)低功耗空閑和掉電模式(14)軟件設(shè)置睡眠和喚醒功能引腳簡介:(1)VCC(40腳),接+5V電源正端GND(20腳),接+5V電源地端(2)XTAL1(19腳),接外部晶振的一個(gè)引腳。在單片機(jī)內(nèi)部,它是一個(gè)反相放大器的輸入端。當(dāng)采用外部振蕩器時(shí),此引腳應(yīng)接地。XTAL2(18腳),接外部晶振的另一個(gè)引腳。在片內(nèi)接至反相放大器的輸出端和內(nèi)部時(shí)鐘電路的輸入端。當(dāng)采用外部振蕩器時(shí),此腳接外部振蕩器的輸出端。(3)控制信號(hào)線RESET(9腳):復(fù)位信號(hào)輸入端,復(fù)位/掉電時(shí)內(nèi)部RAM的備用電源輸入端。ALE(30腳):地址鎖存允許/編程脈沖輸入,用ALE鎖存從P0口輸出的低8位地址。在對(duì)片內(nèi)EPROM編程時(shí),編程脈沖由此輸入。PSEN(29腳):外部程序存儲(chǔ)器讀選通信號(hào),低電平有效。EA(31腳):訪問外部存儲(chǔ)器允許/編程電壓輸入。EA為高電平時(shí),訪問內(nèi)部存儲(chǔ)器;低電平時(shí),訪問外部存儲(chǔ)器。3.2DHT11濕度檢測模塊圖1.3DHT11濕度模塊檢測模塊如圖1.3所示。3.2.1濕度檢測模塊選擇思路要對(duì)當(dāng)前環(huán)境濕度進(jìn)行檢測,并且需要和單片機(jī)結(jié)合,最好便是用傳感器來檢測環(huán)境濕度,通過單片機(jī)進(jìn)行數(shù)據(jù)處理后顯示出來。傳感器的選擇需要精度高,而且便于單片機(jī)控制。3.2.2DHT11濕度模塊本次設(shè)計(jì)使用DHT11濕度傳感器。DHT11濕度模塊,是一款含有已校準(zhǔn)數(shù)字信號(hào)輸出的溫濕度復(fù)合傳感器。它應(yīng)用專用的數(shù)字模塊采集技術(shù)和溫濕度傳感技術(shù),確保產(chǎn)品具有極高的可靠性與卓越的長期穩(wěn)定性。傳感器包括一個(gè)電阻式感濕元件和一個(gè)NTC測溫元件,并與一個(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)部在檢測信號(hào)的處理過程中要調(diào)用這些校準(zhǔn)系數(shù)。單線制串行接口,使系統(tǒng)集成變得簡易快捷。超小的體積、極低的功耗,信號(hào)傳輸距離可達(dá)20米以上,使其成為各類應(yīng)用甚至最為苛刻的應(yīng)用場合的最佳選則。引腳說明:(1)Pin1:(VDD),電源引腳,供電電壓為3-5.5V。(2)Pin2:(DATA),串行數(shù)據(jù),單總線。(3)Pin3:(NC),空腳,懸浮。(4)Pin4(VDD),接地端,電源負(fù)極。3.3液晶顯示模塊圖1.4液晶模塊本系統(tǒng)顯示采用了工業(yè)字符型液晶模塊1602,如圖1.4所示??娠@示2行16個(gè)字符,能方便顯示英文字母大小寫、阿拉伯?dāng)?shù)字、常用符號(hào)等。通過自定義還可顯示簡單的漢字。本液晶模塊的電路的連接圖如圖3-3所示,第1腳和第2腳分別接到了電路的GND和VCC,這2個(gè)腳是液晶工作的電源輸入腳。第3腳通過一個(gè)10K的電位器連接到地端,可通過調(diào)節(jié)該電位器來調(diào)節(jié)液晶的對(duì)比度。第4腳是液晶的寄存器控制腳,接到了單片機(jī)的P12腳上。第5腳是液晶的讀寫控制腳,接到了單片機(jī)的P13腳上。第6腳是液晶的使能腳,接到了單片機(jī)的P14腳上。第7腳到第14腳是液晶的數(shù)據(jù)/地址8位總線,接到了單片機(jī)的P0口上。最后第15腳和第16腳是液晶的背光電源腳,直接連接系統(tǒng)VCC和GND。1602LCD主要技術(shù)參數(shù):(1)顯示容量:16×2個(gè)字符(2)芯片工作電壓:4.5—5.5V(3)工作電流:2.0mA(5.0V)(4)模塊最佳工作電壓:5.0V(5)字符尺寸:2.95×4.35(W×H)mm引腳說明:VSS:接地VDD:接5V正電源VL:VL為液晶顯示器對(duì)比度調(diào)整的端口,對(duì)比度的強(qiáng)弱由接電源的不同決定,對(duì)比度的調(diào)整可以通過一個(gè)10k的電位器RS:RS是寄存器選擇R/W:R/W的讀和寫信號(hào)線,高水平低的讀操作,寫操作E:使能端E,當(dāng)E端由1至0時(shí),液晶模塊中的命令開始被運(yùn)行至(14)D0-D7:位雙向數(shù)據(jù)線BLA:背光源正極BLK:背光源負(fù)極3.4報(bào)警模塊圖1.5蜂鳴器模塊蜂鳴器是一種一體化結(jié)構(gòu)的電子訊響器,采用直流電壓供電,廣泛應(yīng)用于計(jì)算機(jī)、打印機(jī)、復(fù)印機(jī)、報(bào)警器、電子玩具、汽車電子設(shè)備、電話機(jī)、定時(shí)器等電子產(chǎn)品中作發(fā)聲器件。報(bào)警電路的要求是電路器件簡單,易于控制。所以報(bào)警模塊選擇單片機(jī)設(shè)計(jì)中最常使用的有源蜂鳴器。本設(shè)計(jì)利用單片機(jī)的I/O控制三極管的開關(guān)狀態(tài),進(jìn)而達(dá)到控制蜂鳴器的報(bào)警。由于蜂鳴器工作時(shí),需要的電流比較大,單片機(jī)的IO口輸出的電流又比較小,所以這里利用三極管的開關(guān)管功能來控制蜂鳴器發(fā)音,本設(shè)計(jì)選用的三極管型號(hào)是PNP三極管S8550,而且本設(shè)計(jì)選用的蜂鳴器屬于有源蜂鳴器,即在蜂鳴器內(nèi)部已經(jīng)內(nèi)置了震蕩電路,單片機(jī)無需連續(xù)發(fā)出高低電平來驅(qū)動(dòng)它,而只要輸出高(或低)電平即可,這大大簡化了單片機(jī)程序的設(shè)計(jì)。由于選用的是PNP型而單片機(jī)上電IO口默認(rèn)是高電平的,所以上電時(shí)蜂鳴器是不會(huì)發(fā)出鳴叫的。3.5按鍵輸入模塊圖1.6按鍵輸入模塊在單片機(jī)應(yīng)用中鍵盤用得最多的形式是獨(dú)立鍵盤及矩陣鍵盤。它們各有自己的特點(diǎn),其中獨(dú)立鍵盤硬件電路簡單,而且在程序設(shè)計(jì)上也不復(fù)雜,一般用在對(duì)硬件電路要求不高的簡單電路中;矩陣鍵盤與獨(dú)立鍵盤有很大區(qū)別,首先在硬件電路上它要比獨(dú)立鍵盤復(fù)雜得多,而且在程序算法上比它要煩瑣,但它在節(jié)省端口資源上有優(yōu)勢得多,因此它更適合于多按鍵電路。本設(shè)計(jì)中由于采用的按鍵數(shù)量較少,只有3個(gè)按鍵,分別是“設(shè)置”、“減”、“加”,故采用了獨(dú)立鍵盤的方式。3.6電路的排版連線設(shè)計(jì)電路元器件的排版和連線影響到電路的美觀和功能的實(shí)現(xiàn),本設(shè)計(jì)采用protel軟件進(jìn)行排版設(shè)計(jì)。制作流程:(1)將生成的pcb圖打??;(2)按照打印的圖紙?jiān)诎遄由线M(jìn)行刻錄聯(lián)系;(3)將刻錄的連線部分用錫進(jìn)行覆蓋;(4)用蝕銅液把多余的銅腐蝕掉;(5)打孔,焊接。4軟件設(shè)計(jì)4.1總程序流程圖圖1.7程序流程圖程序流程圖實(shí)現(xiàn)步驟:本系統(tǒng)的軟件流程圖如圖1.8所示,最開始先進(jìn)行液晶的初始化,包括液晶功能初始化和液晶顯示內(nèi)容初始化,接著就開始進(jìn)行溫濕度的檢測,然后判斷讀取到的溫濕度是否在報(bào)警的范圍之內(nèi),如果超出范圍,則蜂鳴器鳴叫,且對(duì)應(yīng)的指示燈亮。檢測完溫濕度數(shù)據(jù)后,就判斷是否有按鍵被按下(第一個(gè)),有的話,則進(jìn)入了報(bào)警范圍設(shè)置界面,否則進(jìn)行一段時(shí)間的延時(shí)后,就進(jìn)入下一個(gè)循環(huán),從新檢測溫濕度數(shù)據(jù)。4.1.1溫濕度DHT11程序圖1.8溫濕度DHT11程序流程圖該軟件部分的實(shí)現(xiàn)步驟為:(1)DHT11發(fā)出讀取命令,讀取濕度和溫度數(shù)據(jù)以及校驗(yàn)和;(2)檢測數(shù)據(jù)是否出錯(cuò);(3)若數(shù)據(jù)出錯(cuò),則丟棄當(dāng)前數(shù)據(jù);若數(shù)據(jù)符合,則數(shù)據(jù)被采用,進(jìn)行下一個(gè)程序。4.1.2LCD1602液晶程序圖1.9LCD1602液晶程序該程序的實(shí)現(xiàn)步驟為:(1)液晶進(jìn)行初始化后,對(duì)行列坐標(biāo)進(jìn)行定位;(2)顯示一個(gè)字符;(3)數(shù)據(jù)是否顯示完成,若否,則重新顯示字符;若是,則進(jìn)行下一個(gè)程序。4.2程序設(shè)計(jì)利用C51語言進(jìn)行編程可以把程序進(jìn)行模塊化編寫,然后在主函數(shù)里進(jìn)行調(diào)用即可,這樣分工明確,框架清晰,給人一目了然的感覺。程序詳見附錄一。4.3串口通信串口程序如附錄三所示。單片機(jī)要與計(jì)算機(jī)通信,必須通過MAX232(或其他)芯片。這是因?yàn)橛?jì)算機(jī)串口上的電平執(zhí)行的是RS-232標(biāo)準(zhǔn),它定義的高低電平和單片機(jī)的TTL邏輯電平不兼容。而MAX232芯片加上幾個(gè)電解電容,能完成電壓的加倍和反相,實(shí)現(xiàn)TTL電平和RS-232電平的轉(zhuǎn)換。單片機(jī)的串行口TXD與MAX232的一組電平轉(zhuǎn)換器的TTL輸入端(管腳12)相連,經(jīng)過MAX232轉(zhuǎn)換后,RS-232標(biāo)準(zhǔn)輸出端(管腳14)輸出的信號(hào)進(jìn)入計(jì)算機(jī)串口的RXD。同樣計(jì)算機(jī)串口的TXD與MAX232的RS-232標(biāo)準(zhǔn)輸入端(管腳13)相連,經(jīng)過電平轉(zhuǎn)換后,由TTL輸出端(管腳11)輸出到單片機(jī)的RXD上DHT11的供電電壓為3-5.5V。傳感器上電后,要等待1s以越過不穩(wěn)定狀態(tài)在此期間無需發(fā)送任何指令。電源引腳(VDD,GND)之間可增加一個(gè)100nF的電容,用以去耦濾波。DATA用于微處理器與DHT11之間的通訊和同步,采用單總線數(shù)據(jù)格式,一次通訊時(shí)間4ms左右,數(shù)據(jù)分小數(shù)部分和整數(shù)部分,具體格式在下面說明,當(dāng)前小數(shù)部分用于以后擴(kuò)展,現(xiàn)讀出為零.操作流程如下:一次完整的數(shù)據(jù)傳輸40bit,高位先出。數(shù)據(jù)格式:8bit濕度整數(shù)數(shù)據(jù)+8bit濕度小數(shù)數(shù)據(jù)+8bi溫度整數(shù)數(shù)據(jù)+8bit溫度小數(shù)數(shù)據(jù)+8bit校驗(yàn)和用戶MCU發(fā)送一次開始信號(hào)后,DHT11從低功耗模式轉(zhuǎn)換到高速模式,等待主機(jī)開始信號(hào)結(jié)束后,DHT11發(fā)送響應(yīng)信號(hào),送出40bit的數(shù)據(jù),并觸發(fā)一次信號(hào)采集,用戶可選擇讀取部分?jǐn)?shù)據(jù).從模式下,DHT11接收到開始信號(hào)觸發(fā)一次溫濕度采集,如果沒有接收到主機(jī)發(fā)送開始信號(hào),DHT11不會(huì)主動(dòng)進(jìn)行溫濕度采集.采集數(shù)據(jù)后轉(zhuǎn)換到低速模式。4.4上位機(jī)的程序設(shè)計(jì)4.4.1面向?qū)ο蟮木幊堂嫦驅(qū)ο?ObjectOriented,OO)是軟件開發(fā)方法。面向?qū)ο蟮母拍詈蛻?yīng)用已超越了程序設(shè)計(jì)和軟件開發(fā),擴(kuò)展到如數(shù)據(jù)庫系統(tǒng)、交互式界面、應(yīng)用結(jié)構(gòu)、應(yīng)用平臺(tái)、分布式系統(tǒng)、網(wǎng)絡(luò)管理結(jié)構(gòu)、CAD技術(shù)、人工智能等領(lǐng)域。面向?qū)ο笫且环N對(duì)現(xiàn)實(shí)世界理解和抽象的方法,是計(jì)算機(jī)編程技術(shù)發(fā)展到一定階段后的產(chǎn)物。4.4.2上位機(jī)圖形窗口上位機(jī)是一臺(tái)可以發(fā)出特定操控命令的計(jì)算機(jī),通過操作預(yù)先設(shè)定好的命令,將命令傳遞給下位機(jī),通過下位機(jī)來控制設(shè)備完成各項(xiàng)操作。圖形窗口見附錄六。4.4.3上位機(jī)流程圖2.0主線程流程圖4.4.4主要程序代碼程序代碼詳見附錄二5系統(tǒng)調(diào)試5.1硬件調(diào)試(1)在焊接之前對(duì)各元器件的好壞進(jìn)行測試,用萬用表進(jìn)行測量。(2)檢測電路焊接的正確性,是否存在漏焊等。(3)用萬用表的電阻檔測量各焊點(diǎn)是否存在虛焊。5.2軟件調(diào)試軟件采用keilc51軟件進(jìn)行編寫程序并進(jìn)行仿真運(yùn)行,如圖2.2所示。圖2.1軟件編譯圖(1)在軟件中編輯程序。(2)編輯結(jié)束后對(duì)軟件的正確性進(jìn)行仿真。(3)直至出現(xiàn)以上的結(jié)果即沒有錯(cuò)誤,沒有警告。參考文獻(xiàn)[1]董慧敏.溫濕度控制系統(tǒng)設(shè)計(jì)[J].實(shí)驗(yàn)科學(xué)與技術(shù),2008,(05):24~27

[2]PIC單片機(jī)與單片機(jī)入門[J].電子制作,2005,(10):10~15[3]劉守義.單片機(jī)技術(shù)基礎(chǔ)[M].西安電子科技大學(xué)出版社,2007.[4]牛余朋,牛傲其.51單片機(jī)C語言的編程技巧[J].電子制作,2007.[5]王東峰.單片機(jī)C語言應(yīng)用100例[M].電子工業(yè)出版社,2009.(04):22~27

[6]周韌研,商斌.VisualC++串口通信開發(fā)入門與編程實(shí)踐,2009.(05):33~37[7]李江全,張榮華,李偉等.VisualStudio串口通信與測控應(yīng)用編程實(shí)踐.[8]李朝青.PC機(jī)及單片機(jī)數(shù)據(jù)通信技術(shù).附錄附錄一程序#include<reg51.h> #include<intrins.h>typedefunsignedcharuchar;typedefunsignedintuint;sfrISP_DATA=0xe2; //數(shù)據(jù)寄存器sfrISP_ADDRH=0xe3; //地址寄存器高八位sfrISP_ADDRL=0xe4; //地址寄存器低八位sfrISP_CMD=0xe5; //命令寄存器sfrISP_TRIG=0xe6; //命令觸發(fā)寄存器sfrISP_CONTR=0xe7; //命令寄存器sbitLCD_RS=P1^2; //LCD1602液晶的RS管腳sbitLCD_RW=P1^3; //LCD1602液晶的RW管腳sbitLCD_EN=P1^4; //LCD1602液晶的EN管腳sbitDHT11_D=P1^0; //溫濕度傳感器DHT11數(shù)據(jù)接入sbitLED_HL=P3^6; //濕度過低報(bào)警指示燈sbitLED_HH=P3^7; //濕度過高報(bào)警指示燈sbitBuzzer_D=P1^1; //蜂鳴器sbitKey_Set=P1^5; //設(shè)置按鍵的管腳sbitKey_Down=P1^6; //減按鍵的管腳sbitKey_Up=P1^7; //加按鍵的管腳ucharSHIDU; //保存濕度ucharT;//保存溫度ucharAlarm_HL; //濕度下限報(bào)警值ucharAlarm_HH; //濕度上限報(bào)警值/***************************關(guān)閉ISP&IAP****************************/voidISP_Disable(){ ISP_CONTR=0x00; ISP_CMD=0x00; ISP_TRIG=0x00;}/**************************************************從單片機(jī)內(nèi)部EEPROM讀一個(gè)字節(jié),從0x2000地址開始***************************************************/ucharEEPROM_Read(uintadd){ EA=0; ISP_CONTR=0x81; ISP_CMD=0x01; ISP_ADDRH=(uchar)(add>>8); ISP_ADDRL=(uchar)(add&0xff); //對(duì)STC89C52系列來說,每次要寫入0x46,再寫入0xB9,ISP/IAP才會(huì)生效 ISP_TRIG=0x46; ISP_TRIG=0xB9; _nop_(); ISP_Disable(); EA=1; returnISP_DATA;}/**************************************************往單片機(jī)內(nèi)部EEPROM寫一個(gè)字節(jié),從0x2000地址開始***************************************************/voidEEPROM_Write(uintadd,ucharch){ EA=0; ISP_CONTR=0x81; ISP_CMD=0x02; ISP_ADDRH=(uchar)(add>>8); ISP_ADDRL=(uchar)(add&0xff); ISP_DATA=ch; ISP_TRIG=0x46; ISP_TRIG=0xB9; _nop_(); ISP_Disable(); EA=1;}/*********************************************************擦除單片機(jī)內(nèi)部EEPROM的一個(gè)扇區(qū)寫8個(gè)扇區(qū)中隨便一個(gè)的地址,便擦除該扇區(qū),寫入前要先擦除**********************************************************/voidSector_Erase(uintadd) { EA=0; ISP_CONTR=0x81; ISP_CMD=0x03; ISP_ADDRH=(uchar)(add>>8); ISP_ADDRL=(uchar)(add&0xff); ISP_TRIG=0x46; ISP_TRIG=0xB9; _nop_(); ISP_Disable(); EA=1;}/****************************毫秒級(jí)延時(shí)函數(shù)*****************************/voidDelay_Ms(uinttime){ uinti,j; for(i=0;i<time;i++) { for(j=0;j<112;j++); }}/*******************************************LCD1602液晶寫指令函數(shù)********************************************/voidLcd_Write_Cmd(ucharcmd){LCD_RS=0;LCD_RW=0;LCD_EN=0;P0=cmd; Delay_Ms(2);LCD_EN=1; Delay_Ms(2);LCD_EN=0; }/*******************************************LCD1602液晶寫數(shù)據(jù)函數(shù)********************************************/voidLcd_Write_Data(uchardat){LCD_RS=1;LCD_RW=0;LCD_EN=0; P0=dat; Delay_Ms(2);LCD_EN=1; Delay_Ms(2);LCD_EN=0;}/*****************************LCD1602液晶初始化函數(shù)******************************/voidLcd_Init(){Lcd_Write_Cmd(0x38);//16*2顯示,5*7點(diǎn)陣,8位數(shù)據(jù)口Lcd_Write_Cmd(0x0C);//開顯示,不顯示光標(biāo)Lcd_Write_Cmd(0x06);//地址加1,當(dāng)寫入數(shù)據(jù)后光標(biāo)右移Lcd_Write_Cmd(0x01);//清屏}/***************************************LCD1602液晶輸出字符串函數(shù)****************************************/voidLcd_Show_String(uchar*str){while(*str!='\0') //判斷當(dāng)前字符是否為空字符{ Lcd_Write_Data(*str++); }}/***********************************LCD1602液晶輸出數(shù)字************************************/voidLcd_Show_Num(ucharnum){ Lcd_Write_Data(num/10+48); //十位 Lcd_Write_Data(num%10+48); //個(gè)位}/*******************************************LCD1602液晶顯示內(nèi)容的初始化********************************************/voidLcd_Show_Init(){ Lcd_Write_Cmd(0x80); Lcd_Show_String("DHT11SYSTEM"); //第1行的顯示內(nèi)容 Lcd_Write_Cmd(0xC0); Lcd_Show_String("SHIDU=%RH");//第2行的顯示內(nèi)容 }/********************************10us級(jí)延時(shí)程序*********************************/voidDelay_10us(){ _nop_(); //執(zhí)行一條指令,延時(shí)1微秒 _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();}/***************************************讀取DHT11單總線上的一個(gè)字節(jié)****************************************/ucharRead_Dht_Byte(){ ucharj; uchardat=0; for(j=0;j<8;j++) { while(!DHT11_D); //等待低電平結(jié)束 Delay_10us(); //延時(shí)等待30us Delay_10us(); Delay_10us(); if(DHT11_D) //判斷數(shù)據(jù)線是高電平還是低電平 { dat=dat|0x01; while(DHT11_D); } else { dat=dat|0x00; } dat=dat<<1;//循環(huán)左移一位 }returndat; }/*******************************************************讀取DHT11的一幀數(shù)據(jù),濕度高、濕度低、校驗(yàn)碼********************************************************/voidRead_Dht_Data(){ ucharShidu_H; //濕度高檢測值 ucharShidu_L; //濕度低檢測值 ucharTem_H; //溫度高檢測值 ucharTem_L; //溫度低檢測值ucharcheck; //校驗(yàn)字節(jié) DHT11_D=0; //主機(jī)拉低20ms Delay_Ms(20); DHT11_D=1; //DATA總線由上拉電阻拉高主機(jī)延時(shí)40us Delay_10us(); //延時(shí)等待30us Delay_10us(); Delay_10us(); while(!DHT11_D); //等待DHT的低電平結(jié)束 while(DHT11_D); //等待DHT的高電平結(jié)束 //進(jìn)入數(shù)據(jù)接收狀態(tài) Shidu_H=Read_Dht_Byte(); //濕度高8位 Shidu_L=Read_Dht_Byte(); //濕度低8位,總為0 Tem_H=Read_Dht_Byte(); //溫度高8位 Tem_L=Read_Dht_Byte(); //溫度低8位,總為0 check=Read_Dht_Byte(); //8位校驗(yàn)碼,其值等于讀出的四個(gè)字節(jié)相加之和的低8位 DHT11_D=1; //拉高總線 if(check==Shidu_H+Shidu_L+Tem_H+Tem_L) //如果收到的數(shù)據(jù)無誤 { SHIDU=Shidu_H; //將濕度的檢測結(jié)果賦值給全局變量SHIDU }}/****************************************報(bào)警判斷*****************************************/voidAlarm_Judge(){ uchari; if(SHIDU>Alarm_HH) //濕度過高,低電平顯示 { LED_HH=0; LED_HL=1; } elseif(SHIDU<Alarm_HL) //濕度過低,低電平顯示 { LED_HL=0; LED_HH=1; } else //濕度正常,都為高電平 { LED_HH=1; LED_HL=1; } if((!LED_HH)||(!LED_HL)) //蜂鳴器判斷,只要至少1個(gè)報(bào)警燈亮,蜂鳴器就報(bào)警 { for(i=0;i<3;i++) { Buzzer_D=0; Delay_Ms(100); Buzzer_D=1; Delay_Ms(100); } }}/************************************************按鍵掃描,用于設(shè)置濕度報(bào)警范圍*************************************************/voidKey_Scan(){ if(!Key_Set) //判斷設(shè)置按鍵是否被按下 { /*將液晶顯示改為設(shè)置頁面的*/ Lcd_Write_Cmd(0x80); Lcd_Show_String("AlarmSet");//第一行顯示內(nèi)容 Lcd_Write_Cmd(0xC0); Lcd_Show_String("-");//第二行顯示內(nèi)容 Lcd_Write_Cmd(0xC0+5); //在液晶上填充濕度的下限值 Lcd_Show_Num(Alarm_HL); Lcd_Write_Cmd(0xC0+8); //在液晶上填充濕度的上限值 Lcd_Show_Num(Alarm_HH); Lcd_Write_Cmd(0xC0+6); //光標(biāo)定位到第2行第7列 Lcd_Write_Cmd(0x0F); //光標(biāo)閃爍 Delay_Ms(10); //去除按鍵按下的抖動(dòng) while(!Key_Set); //等待按鍵釋放 Delay_Ms(10); //去除按鍵松開的抖動(dòng) /*設(shè)置濕度的下限值*/ while(Key_Set) //“設(shè)置鍵”沒有被按下,則一直處于濕度下限的設(shè)置 { if(!Key_Down) //判斷“減按鍵“是否被按下 { if(Alarm_HL>0) //當(dāng)濕度下限值大于0時(shí),自減 { Alarm_HL--; } Lcd_Write_Cmd(0xC0+5); //重新刷新顯示更改后的濕度下限值 Lcd_Show_Num(Alarm_HL); Lcd_Write_Cmd(0xC0+6); //重新定位閃爍的光標(biāo)位置 Delay_Ms(350); } if(!Key_Up) //判斷“加按鍵“是否被按下 { if(Alarm_HL<99) //當(dāng)濕度下限值小于99時(shí),自加 { Alarm_HL++; } Lcd_Write_Cmd(0xC0+5); //重新刷新顯示更改后的濕度下限值 Lcd_Show_Num(Alarm_HL); Lcd_Write_Cmd(0xC0+6); //重新定位閃爍的光標(biāo)位置 Delay_Ms(350); //延時(shí) } } Lcd_Write_Cmd(0xC0+9); //定位到濕度上限的位置閃爍 Delay_Ms(10); //去除按鍵按下的抖動(dòng) while(!Key_Set); //等待按鍵釋放 Delay_Ms(10); //去除按鍵松開的抖動(dòng) /*設(shè)置濕度的上限值*/ while(Key_Set) //“設(shè)置鍵”沒有被按下,則一直處于濕度上限的設(shè)置 { if(!Key_Down) //判斷“減按鍵”是否被按下 { if(Alarm_HH>0) //當(dāng)濕度上限值大于0時(shí),自減 { Alarm_HH--; } Lcd_Write_Cmd(0xC0+8); //重新刷新顯示更改后的濕度上限值 Lcd_Show_Num(Alarm_HH); Lcd_Write_Cmd(0xC0+9); //重新定位閃爍的光標(biāo)位置 Delay_Ms(350); } if(!Key_Up) //判斷“加按鍵“是否被按下 { if(Alarm_HH<99) //當(dāng)濕度上限值小于99時(shí),自加 { Alarm_HH++; } Lcd_Write_Cmd(0xC0+8); //重新刷新顯示更改后的濕度上限值 Lcd_Show_Num(Alarm_HH); Lcd_Write_Cmd(0xC0+9); //重新定位閃爍的光標(biāo)位置 Delay_Ms(350); //延時(shí) } } Lcd_Write_Cmd(0x0C); //取消光標(biāo)閃爍 Lcd_Show_Init(); //液晶顯示為檢測界面的 Delay_Ms(10); //去除按鍵按下的抖動(dòng) while(!Key_Set); //等待按鍵釋放 Delay_Ms(10); //去除按鍵松開的抖動(dòng) Sector_Erase(0x2000); //存儲(chǔ)之前必須先擦除 EEPROM_Write(0x2000,Alarm_HL); //把濕度下限存入到EEPROM的0x2000這個(gè)地址 EEPROM_Write(0x2001,Alarm_HH); //把濕度上限存入到EEPROM的0x2001這個(gè)地址 } }/**************************主函數(shù)***************************/intmain(){ uchari; Lcd_Init(); //LCD1602初始化 Lcd_Show_Init(); //LCD1602顯示的初始化 Alarm_HL=EEPROM_Read(0x2000); //從EEPROM的0x2002這個(gè)地址讀取濕度的報(bào)警下限 Alarm_HH=EEPROM_Read(0x2001); //從EEPROM的0x2003這個(gè)地址讀取濕度的報(bào)警上限 while(1) { Read_Dht_Data(); //檢測濕度數(shù)據(jù) Lcd_Write_Cmd(0xC0+8); //定位到要顯示濕度的地方 Lcd_Show_Num(SHIDU); //顯示濕度值 Alarm_Judge(); //判斷并根據(jù)需要報(bào)警 for(i=0;i<25;i++) { Key_Scan(); //按鍵掃描 Delay_Ms(20); //延時(shí) } } return0;}附錄二上位機(jī)程序BOOLCommCommunicateThread::ConnectComm(intnPort){// BYTEbSet; DCBdcb; BOOLfRetVal; COMMTIMEOUTSCommTimeOuts; CStringszCom; szCom.Format(_T("\\\\.\\COM%d"),nPort); COMFile=CreateFile(szCom.GetBuffer(50),GENERIC_READ|GENERIC_WRITE,//可讀、可寫 FILE_SHARE_READ|FILE_SHARE_WRITE,//不共享FILE_SHARE_READ,FILE_SHARE_WRITE,FILE_SHARE_DELETE NULL,//無安全描 OPEN_EXISTING,//打開已存在文件 /*FILE_ATTRIBUTE_NORMAL|*/FILE_FLAG_OVERLAPPED,//文件屬性 NULL//一個(gè)有效的句柄,已存在的設(shè)備句柄AvalidhandletoatemplatefilewiththeGENERIC_READaccessright ); intnError=GetLastError(); if(INVALID_HANDLE_VALUE==COMFile/*COMFileTemp*/){ charchError[256];memset(chError,0,256); intnBuffLen=256; if(GetErrorString((PBYTE)chError,&nBuffLen,GetLastError())){ AfxMessageBox(chError); } return(FALSE); } //設(shè)置緩沖區(qū),輸入/輸出大小(字節(jié)數(shù)) SetupComm(/*COMFileTemp*/COMFile,4096,4096); //指定監(jiān)視事件_收到字符放入緩沖區(qū) SetCommMask(/*COMFileTemp*/COMFile,EV_RXCHAR); CommTimeOuts.ReadIntervalTimeout=0xFFFFFFFF; CommTimeOuts.ReadTotalTimeoutMultiplier=0; CommTimeOuts.ReadTotalTimeoutConstant=1000; CommTimeOuts.WriteTotalTimeoutMultiplier=2*CBR_9600/9600; CommTimeOuts.WriteTotalTimeoutConstant=0; //給定串口讀與操作限時(shí) SetCommTimeouts(/*COMFileTemp*/COMFile,&CommTimeOuts); //設(shè)置串口參數(shù):波特率=9600;停止位1個(gè);無校驗(yàn);8位 dcb.DCBlength=sizeof(DCB); GetCommState(/*COMFileTemp*/COMFile,&dcb); dcb.BaudRate=CBR_9600; dcb.StopBits=ONESTOPBIT; dcb.Parity=NOPARITY; dcb.ByteSize=8; dcb.fBinary=TRUE;//二進(jìn)制通信,非字符通信 dcb.fOutxDsrFlow=0; dcb.fDtrControl=DTR_CONTROL_ENABLE; dcb.fOutxCtsFlow=0; dcb.fRtsControl=RTS_CONTROL_ENABLE; dcb.fInX=dcb.fOutX=1; dcb.XonChar=0X11; dcb.XoffChar=0X13; dcb.XonLim=100; dcb.XoffLim=100; dcb.fParity=TRUE; //根據(jù)設(shè)備控制塊配置通信設(shè)備 fRetVal=SetCommState(/*COMFileTemp*/COMFile,&dcb); if(!fRetVal)returnFALSE; //刷清緩沖區(qū) PurgeComm(/*COMFileTemp*/COMFile,PURGE_TXABORT|PURGE_RXABORT|PURGE_TXCLEAR|PURGE_RXCLEAR); //指定串口執(zhí)行擴(kuò)展功能 EscapeCommFunction(/*COMFileTemp*/COMFile,SETDTR);// //設(shè)置串口“收到字符放入緩沖區(qū)”事件// if(!SetCommMask(COMFile,EV_RXCHAR))return(FALSE); returnTRUE;}BOOLCommCommunicateThread::CloseComm(intnPort){ //禁止串行端口所有事件 SetCommMask(COMFile,0); //清除數(shù)據(jù)終端就緒信號(hào) EscapeCommFunction(COMFile,CLRDTR); //丟棄通信資源的輸出或輸入緩沖區(qū)字符并終止在通信資源上掛起的讀、寫操//場作 PurgeComm(COMFile,PURGE_TXABORT|PURGE_RXABORT|PURGE_TXCLEAR|PURGE_RXCLEAR); CloseHandle(COMFile); COMFile=NULL;// CloseHandle(osRead.hEvent);// memset(&osRead,0,sizeof(osRead));;// CloseHandle(osWrite.hEvent);// memset(&osWrite,0,sizeof(osWrite));// CloseHandle(ShareEvent.hEvent);// memset(&ShareEvent,0,sizeof(ShareEvent)); returnTRUE;}intCommCommunicateThread::WriteCommBlock(PBYTEpOutData,intnDataLen){ if(NULL==pOutData||nDataLen<1) returnFALSE; //while(nDataLen>0){ DWORDnLen=0; if(!WriteFile(COMFile,(LPCVOID)pOutData,nDataLen,&nLen,&/*ShareEvent*/osWrite)){ if(WAIT_OBJECT_0==WaitForSingleObject(osWrite.hEvent,0xFFFFFF)) ResetEvent(osWrite.hEvent); else ResetEvent(osWrite.hEvent); DWORDnError=GetLastError(); if(997!=nError){//997異步?jīng)]完成 charchError[256];memset(chError,0,256); intnBuffLen=256; if(GetErrorString((PBYTE)chError,&nBuffLen,nError)){ AfxMessageBox(chError); } } } //} returnTRUE;}附錄三串口通信程序/**************************************************

往串口發(fā)送一個(gè)字節(jié)的數(shù)據(jù)

***************************************************/

void

Send_Byte(uchar

dat)

{

SBUF

=

dat;

while(!TI);

TI

=

0;

}

/*************************************************

將測得的濕度送往串口顯示

**************************************************/

void

Send_Data(uchar

dat)

{

Send_Byte(dat/10+48);

//

十位

Send_Byte(dat%10+48);

//

個(gè)位

Send_Byte('\n');

}

/********************************************

串口初始化

*********************************************/

void

Com_Init()

{

TMOD

=

0x20;

SCON

=

0x50;

TH1

=

0xF3;

TL1

=

0xF3;

TR1

=

1;

REN

=

1;

EA

=

1;

ES

=

1;

}

/**********************************************

串口中斷服務(wù)程序

***********************************************/

void

Ser()

interrupt

4

{

if(RI==1)

{

RI=0;

}

}附錄四元器件清單元器件名稱數(shù)量AT89C521個(gè)ADC08321個(gè)數(shù)碼管3個(gè)按鍵開關(guān)4個(gè)蜂鳴器1個(gè)濕度傳感器1個(gè)100Ω電阻8個(gè)1K電阻4個(gè)10uF電容1個(gè)三極管4個(gè)附錄五硬件原理圖附錄六仿真圖附錄七PCB版圖附錄八上位機(jī)圖形窗口基于C8051F單片機(jī)直流電動(dòng)機(jī)反饋控制系統(tǒng)的設(shè)計(jì)與研究基于單片機(jī)的嵌入式Web服務(wù)器的研究MOTOROLA單片機(jī)MC68HC(8)05PV8/A內(nèi)嵌EEPROM的工藝和制程方法及對(duì)良率的影響研究基于模糊控制的電阻釬焊單片機(jī)溫度控制系統(tǒng)的研制基于MCS-51系列單片機(jī)的通用控制模塊的研究基于單片機(jī)實(shí)現(xiàn)的供暖系統(tǒng)最佳啟停自校正(STR)調(diào)節(jié)器單片機(jī)控制的二級(jí)倒立擺系統(tǒng)的研究基于增強(qiáng)型51系列單片機(jī)的TCP/IP協(xié)議棧的實(shí)現(xiàn)基于單片機(jī)的蓄電池自動(dòng)監(jiān)測系統(tǒng)基于32位嵌入式單片機(jī)系統(tǒng)的圖像采集與處理技術(shù)的研究基于單片機(jī)的作物營養(yǎng)診斷專家系統(tǒng)的研究基于單片機(jī)的交流伺服電機(jī)運(yùn)動(dòng)控制系統(tǒng)研究與開發(fā)基于單片機(jī)的泵管內(nèi)壁硬度測試儀的研制基于單片機(jī)的自動(dòng)找平控制系統(tǒng)研究基于C8051F040單片機(jī)的嵌入式系統(tǒng)開發(fā)基于單片機(jī)的液壓動(dòng)力系統(tǒng)狀態(tài)監(jiān)測儀開發(fā)模糊Smith智能控制方法的研究及其單片機(jī)實(shí)現(xiàn)一種基于單片機(jī)的軸快流CO〈,2〉激光器的手持控制面板的研制基于雙單片機(jī)沖床數(shù)控系統(tǒng)的研究基于CYGNAL單片機(jī)的在線間歇式濁度儀的研制基于單片機(jī)的噴油泵試驗(yàn)臺(tái)控制器的研制基于單片機(jī)的軟起動(dòng)器的研究和設(shè)計(jì)基于單片機(jī)控制的高速快走絲電火花線切割機(jī)床短循環(huán)走絲方式研究基于單片機(jī)的機(jī)電產(chǎn)品控制系統(tǒng)開發(fā)基于PIC單片機(jī)的智能手機(jī)充電器基于單片機(jī)的實(shí)時(shí)內(nèi)核設(shè)計(jì)及其應(yīng)用研究基于單片機(jī)的遠(yuǎn)程抄表系統(tǒng)的設(shè)計(jì)與研究基于單片機(jī)的煙氣二氧化硫濃度檢測儀的研制基于微型光譜儀的單片機(jī)系統(tǒng)單片機(jī)系統(tǒng)軟件構(gòu)件開發(fā)的技術(shù)研究基于單片機(jī)的液體點(diǎn)滴速度自動(dòng)檢測儀的研制基于單片機(jī)系統(tǒng)的多功能溫度測量儀的研制基于PIC單片機(jī)的電能采集終端的設(shè)計(jì)和應(yīng)用基于單片機(jī)的光纖光柵解調(diào)儀的研制氣壓式線性摩擦焊機(jī)單片機(jī)控制系統(tǒng)的研制基于單片機(jī)的數(shù)字磁通門傳感器基于單片機(jī)的旋轉(zhuǎn)變壓器-數(shù)字轉(zhuǎn)換器的研究基于單片機(jī)的光纖Bragg光柵解調(diào)系統(tǒng)的研究單片機(jī)控制的便攜式多功能乳腺治療儀的研制基于C8051F020單片機(jī)的多生理信號(hào)檢測儀基于單片機(jī)的電機(jī)運(yùn)動(dòng)控制系統(tǒng)設(shè)計(jì)Pico專用單片機(jī)核的可測性設(shè)計(jì)研究基于MCS-51單片機(jī)的熱量計(jì)基于雙單片機(jī)的智能遙測微型氣象站MCS-51單片機(jī)構(gòu)建機(jī)器人的實(shí)踐研究基于單片機(jī)的輪軌力檢測基于單片機(jī)的GPS定位儀的研究與實(shí)現(xiàn)基于單片機(jī)的電液伺服控制系統(tǒng)用于單片機(jī)系統(tǒng)的MMC卡文件系統(tǒng)研制基于單片機(jī)的時(shí)控和計(jì)數(shù)系統(tǒng)性能優(yōu)化的研究基于單片機(jī)和CPLD的粗光柵位移測量系統(tǒng)研究單片機(jī)控制的后備式方波UPS提升高職學(xué)生單片機(jī)應(yīng)用能力的探究基于單片機(jī)控制的自動(dòng)低頻減載裝置研究基于單片機(jī)控制的水下焊接電源的研究基于單片機(jī)的多通道數(shù)據(jù)采集系統(tǒng)基于uPSD3234單片機(jī)的氚表面污染測量儀的研制基于單片機(jī)的紅外測油儀的研究96系列單片機(jī)仿真器研究與設(shè)計(jì)基于單片機(jī)的單晶金剛石刀具刃磨設(shè)備的數(shù)控改造基于單片機(jī)的溫度智能控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)基于MSP430單片機(jī)的電梯門機(jī)控制器的研制基于單片機(jī)的氣體測漏儀的研究基于三菱M16C/6N系列單片機(jī)的CAN/USB協(xié)議轉(zhuǎn)換器基于單片機(jī)和DSP的變壓器油色譜在線監(jiān)測技術(shù)研究基于單片機(jī)的膛壁溫度報(bào)警系統(tǒng)設(shè)計(jì)基于AVR單片機(jī)的低壓無功補(bǔ)償控制器的設(shè)計(jì)基于單片機(jī)船舶電力推進(jìn)電機(jī)監(jiān)測系統(tǒng)基于單片機(jī)網(wǎng)絡(luò)的振動(dòng)信號(hào)的采集系統(tǒng)基于單片機(jī)的大容量數(shù)據(jù)存儲(chǔ)技術(shù)的應(yīng)用研究基于單片機(jī)的疊圖機(jī)研究與教學(xué)方法實(shí)踐基于單片機(jī)嵌入式Web服務(wù)器技術(shù)的研究及實(shí)現(xiàn)基于AT89S52單片機(jī)的通用數(shù)據(jù)采集系統(tǒng)基于單片機(jī)的多道脈沖幅度分析儀研究機(jī)器人旋轉(zhuǎn)電弧傳感角焊縫跟蹤單片機(jī)控制

溫馨提示

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

評(píng)論

0/150

提交評(píng)論