基于單片機(jī)的螺絲計(jì)數(shù)器的設(shè)計(jì)_第1頁
基于單片機(jī)的螺絲計(jì)數(shù)器的設(shè)計(jì)_第2頁
基于單片機(jī)的螺絲計(jì)數(shù)器的設(shè)計(jì)_第3頁
基于單片機(jī)的螺絲計(jì)數(shù)器的設(shè)計(jì)_第4頁
基于單片機(jī)的螺絲計(jì)數(shù)器的設(shè)計(jì)_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、*畢業(yè)設(shè)計(jì)題 目: 基于單片機(jī)的螺絲計(jì)數(shù)器的設(shè)計(jì) 院 系: 信息工程系 專 業(yè): 測控技術(shù)與儀器 班級學(xué)號: 11* 學(xué)生姓名: * 指導(dǎo)教師: 成 績: 年 月 日目 錄1 方案設(shè)計(jì)11.1 設(shè)計(jì)方案要求11.2 硬件方案設(shè)計(jì)11.2.1 MCU模塊的選擇11.2.2 濕度傳感器的選擇11.2.3 顯示模塊方案21.2.4 電源模塊方案21.2.5 電源模塊方案系統(tǒng)總體設(shè)計(jì)思路31.3 編程語言與調(diào)試環(huán)境選擇32 螺絲計(jì)數(shù)器的硬件設(shè)計(jì)52.1 最小系統(tǒng)設(shè)計(jì)52.1.1 系統(tǒng)復(fù)位電路52.1.2 系統(tǒng)時(shí)鐘電路52.1.3 單片機(jī)最小系統(tǒng)電路圖62.2 金屬探測電路62.2.1 霍爾傳感器NJK

2、 簡介62.2.2 金屬檢測電路設(shè)計(jì)72.2.3 計(jì)數(shù)器的顯示82.3 濕度檢測電路82.3.1 DHT11濕度傳感器簡介82.3.2 傳感器的接口說明92.3.3 傳感器的外圍硬件電路102.4 LCD1602顯示模塊102.4.1 LCD1602引腳功能介紹102.4.2 LCD1602驅(qū)動電路設(shè)計(jì)112.5 聲光報(bào)警電路112.6 電源電路123 螺絲計(jì)數(shù)器系統(tǒng)的軟件設(shè)計(jì)133.1 軟件系統(tǒng)總體工作流程133.2 DHT11數(shù)據(jù)讀取方式及程序流程143.3 數(shù)字濾波程序設(shè)計(jì)153.4 液晶顯示程序流程16附錄A 硬件原理圖18附錄B 程序代碼19附錄C 實(shí)物圖片311 方案設(shè)計(jì)1.1 設(shè)

3、計(jì)方案要求(1)寫成利用螺絲靠近到霍爾傳感器可以檢測到的距離進(jìn)行金屬檢測,并且通過單片機(jī)進(jìn)行計(jì)數(shù);(2)利用濕度傳感器檢測螺絲所處環(huán)境的濕度值;(3)在達(dá)到單片機(jī)內(nèi)部設(shè)計(jì)的濕度上限時(shí),進(jìn)行聲光報(bào)警;(4)利用protel99se繪制系統(tǒng)電路的原理圖;(5)利用Microsoft Office Visio軟件繪制系統(tǒng)框圖和程序流程圖。1.2 硬件方案設(shè)計(jì)1.2.1 MCU模塊的選擇方案一:采用AVR 內(nèi)核的ATmega16單片機(jī),ATmega16單片機(jī)為8位單片機(jī),其功能更加強(qiáng)大,內(nèi)部集成A/D、PWM,串行通信等,但ATmega16單片機(jī)價(jià)格較高,編程較復(fù)雜。方案二:采用AT89S52單片機(jī)為

4、控制核心和數(shù)據(jù)處理中心, AT89S52單片機(jī)成本較低,編程較容易,更容易控制好。綜上比較,本設(shè)計(jì)不需要進(jìn)行A/D轉(zhuǎn)換等,AT89S52單片機(jī)完全可以實(shí)現(xiàn),并且從AT89S52單片機(jī)成本較低、編程的較容易,所以本設(shè)計(jì)應(yīng)該選擇AT89S52單片機(jī)作為系統(tǒng)的控制核心。1.2.2 濕度傳感器的選擇方案一:測量濕度選用HS1101是電容式濕度傳感器,輸出是模擬量,需要配以復(fù)雜的外圍電路將模擬量轉(zhuǎn)化為數(shù)字量,利用單片機(jī)計(jì)數(shù)脈沖總數(shù)再根據(jù)相應(yīng)的公式轉(zhuǎn)換成真實(shí)的濕度值,這種測量方法誤差較大精度較低,在要求不嚴(yán)格的環(huán)境下可以使用。方案二: 選用DHT11作為設(shè)計(jì)的溫濕度檢測模塊。DHT11是一款集成型的數(shù)字溫

5、濕度一體傳感器。它應(yīng)用溫濕度傳感的基本原理和專用的數(shù)字模塊采集技術(shù),確保產(chǎn)品對濕度采集具有高的穩(wěn)定性與可靠性。DHT11是由一個(gè)NTC測溫元件和一個(gè)電阻式感濕元件組成的,輸出數(shù)字信號,可直接于單片機(jī)相連接,進(jìn)行讀取濕度數(shù)據(jù)。因此該產(chǎn)品具有性能穩(wěn)定、響應(yīng)迅速、并具有較強(qiáng)的抗干擾能力和性價(jià)比極高等優(yōu)點(diǎn)。傳感器的測量范圍是相對濕度在20%90%的范圍內(nèi),溫度在050之間。測溫精度為±2,測濕精度為±5%相對濕度。綜上所述,從檢測的精度考慮,方案二可以利用單片機(jī)直接讀取濕度值不需要經(jīng)過轉(zhuǎn)換,精度較方案一高,故本設(shè)計(jì)選擇方案二。1.2.3 顯示模塊方案方案一:采用帶有中文字庫的LCD

6、12864液晶模塊來顯示接收到的數(shù)據(jù)。LCD12864是一款比較實(shí)用的液晶顯示屏,能夠顯示較多常用的簡體漢字或繁體漢字及ASCII碼,而且能夠通過取模軟件,進(jìn)行編程繪制圖片,描點(diǎn)畫線等,但成本太高,使用時(shí)該模塊的讀寫時(shí)序不好控制。方案二:采用帶有字符液晶LCD1602模塊來顯示接收到的數(shù)據(jù)信息,LCD1602也是一種經(jīng)常被人們使用的字符液晶模塊,可以顯示各種符號或者數(shù)字等信息,并且價(jià)格較為適中,在編寫顯示程序時(shí),它的讀寫時(shí)序也不太容易控制。方案三:采用LED 8段共陽數(shù)碼顯示管顯示數(shù)據(jù),其價(jià)格較便宜,外圍驅(qū)動電路較簡單,并且容易編寫顯示程序,但它的缺點(diǎn)是不能顯示符號或者漢字等,只能顯示數(shù)字。綜

7、合經(jīng)濟(jì)和顯示的效果兩方面考慮,本設(shè)計(jì)選擇方案二,即利用LCD1602來顯示環(huán)境的濕度值和螺絲的數(shù)量。1.2.4 電源模塊方案方案一:采用12V電源適配器提供12V電壓,并通過穩(wěn)壓芯片LM7805,給系統(tǒng)的各個(gè)模塊電路供電。該電源適配器必須接220V交流電,才能正常工作,在使用時(shí),受到場地的限制,不方便。方案二:采用9V電池,然后經(jīng)穩(wěn)壓芯片LM7805進(jìn)行穩(wěn)壓,濾波后給系統(tǒng)的各個(gè)模塊供電,其價(jià)格較便宜,使用簡單方便,缺點(diǎn)是輸出電流較小,并且電量有限。方案三:采用22:1的變壓器將220V降壓到10V,然后經(jīng)整流橋整流,電容濾波,穩(wěn)壓芯片穩(wěn)壓,給系統(tǒng)的各個(gè)模塊供電。其價(jià)格較為便宜,但是外圍電路比較

8、復(fù)雜。綜合所述,從便攜和經(jīng)濟(jì)兩個(gè)方面考慮,電池具有明顯優(yōu)勢,故本設(shè)計(jì)選擇方案二。1.2.5 電源模塊方案系統(tǒng)總體設(shè)計(jì)思路系統(tǒng)電路主要由AT89S52單片機(jī)最小系統(tǒng)電路,金屬檢測電路,PC817光電隔離電路,濕度檢測電路,LCD顯示電路,聲光報(bào)警電路以及電源電路組成。具體框圖如圖1.1所示。金屬檢測電路LCD顯示電路AT89S52單片機(jī)最小系統(tǒng) PC817光電隔離電路聲光報(bào)警電路濕度檢測電路電源電路圖1.1 系統(tǒng)的總體設(shè)計(jì)框圖系統(tǒng)以AT89S52單片機(jī)作為系統(tǒng)的主控核心,通過單片機(jī)計(jì)數(shù)器讀取和記錄金屬傳感器的電路輸出的信號。并利用單片機(jī)對濕度傳感器返回的數(shù)據(jù)進(jìn)行讀取,來檢測螺絲周圍環(huán)境的濕度,并

9、與設(shè)定的濕度進(jìn)行比較,如果濕度不在設(shè)定的濕度值范圍之內(nèi),單片機(jī)控制蜂鳴器和發(fā)光二極管進(jìn)行聲光報(bào)警。最后通過單片機(jī)控制LCD液晶顯示屏顯示出濕度值和螺絲的數(shù)量。1.3 編程語言與調(diào)試環(huán)境選擇本設(shè)計(jì)編程語言選擇c語言。C語言是一種計(jì)算機(jī)程序設(shè)計(jì)語言,它既具有高級語言的特點(diǎn),又具有匯編語言的特點(diǎn)。它具有良好的可讀性、易維護(hù)性、可移植性和硬件操作能力,并且簡單易懂,容易學(xué)習(xí)及理解。本設(shè)計(jì)調(diào)試環(huán)境選擇keil軟件。Keil C51軟件提供豐富的庫函數(shù)和功能強(qiáng)大的集成開發(fā)調(diào)試工具,它生產(chǎn)代碼的效率極高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。2 螺絲計(jì)數(shù)器的硬件設(shè)計(jì)2.1 最小系統(tǒng)設(shè)計(jì)2.1.1 系統(tǒng)復(fù)位

10、電路當(dāng)MCS-5l系列單片機(jī)的RST復(fù)位引腳,持續(xù)2個(gè)或者2個(gè)以上的機(jī)器周期高電平時(shí),MCS-5l單片機(jī)完成穩(wěn)定的系統(tǒng)復(fù)位。根據(jù)系統(tǒng)應(yīng)用時(shí)的不同要求,復(fù)位電路又分為上電復(fù)位和手動復(fù)位兩種形式,圖2.1即為本系統(tǒng)的復(fù)位電路。圖2.1 復(fù)位電路圖圖2.1中,既能實(shí)現(xiàn)上電復(fù)位又可以實(shí)現(xiàn)手動復(fù)位,當(dāng)系統(tǒng)上電一瞬間,電容相當(dāng)于短路,即REST復(fù)位端口,直接加到+5V的高電平上,所有可以實(shí)現(xiàn)上電復(fù)位。當(dāng)系統(tǒng)正常運(yùn)行后,在需要復(fù)位的時(shí)候,按下開關(guān),即將電容短路,同樣可以實(shí)現(xiàn)手動復(fù)位。2.1.2 系統(tǒng)時(shí)鐘電路MCS-51單片機(jī)應(yīng)用時(shí),我們常用石英晶體接電容組成系統(tǒng)時(shí)鐘電路,如果系統(tǒng)需要使用串口通訊,為了滿足波

11、特率沒有誤差,我們經(jīng)常使用11.0592MHZ的石英晶體。如果系統(tǒng)需要使用定時(shí)器,為了滿足定時(shí)器定時(shí)沒有誤差,我們通常會選擇12MHZ的石英晶體。不管石英晶體選擇是11.0592MHZ,還是12MHZ,通常使用的匹配電容都是30pf的。本次設(shè)計(jì)選用的是12M的石英晶體,具體時(shí)鐘電路如圖2.2所示。圖2.2 時(shí)鐘電路圖2.1.3 單片機(jī)最小系統(tǒng)電路圖單片機(jī)最小系統(tǒng)電路圖如圖2.3所示,由時(shí)鐘電路,復(fù)位電路和AT89S52控制芯片組成。圖2.3 最小系統(tǒng)電路圖2.2 金屬探測電路2.2.1 霍爾傳感器NJK 簡介NJK系列霍爾傳感器是由電壓調(diào)整器,霍爾電壓發(fā)生器,差分放大器,施密特觸發(fā)器和集電極開

12、路的輸出極組成的磁敏傳感器,實(shí)物圖如圖2.4所示。其輸入為磁感應(yīng)強(qiáng)度、輸出是一個(gè)數(shù)字電壓訊號。它有以下幾個(gè)特點(diǎn):(1) 電源電壓范圍寬(DC6V-DC36V);(2) 頻率高;(3) 壽命長,體積小,安裝方便;(4) 能直接和晶體管及TTL,CMOS等邏輯電路連接。圖2.4 金屬傳感器實(shí)物圖該傳感器分為兩類,分別是NPN類和PNP類。NPN是指當(dāng)有信號觸發(fā)時(shí),信號輸出線OUT和GND連接,相當(dāng)于OUT輸出低電平。PNP是指當(dāng)有信號觸發(fā)時(shí),信號輸出線OUT和VCC連接,相當(dāng)于OUT輸出高電平的電源線。本次設(shè)計(jì)選擇的是PNP類型。2.2.2 金屬檢測電路設(shè)計(jì)

13、金屬檢測電路如圖2.5所示,主要由金屬傳感器LJ18A和光電耦合器PC817組成。由于金屬傳感器供電電壓范圍的限制,設(shè)計(jì)選擇直接將9V的電池電壓加到傳感器的VCC上。這樣傳感器的輸出電壓也就是9V,如果直接將此電壓接到單片機(jī)的I/O上,而單片機(jī)I/O能承受的最大電壓為5V,這樣就很容易燒壞單片機(jī)。所以在電路設(shè)計(jì)中,選擇光電耦合器PC817來實(shí)現(xiàn)電平的轉(zhuǎn)換。具體原理如下:當(dāng)有金屬靠近傳感器的測量端時(shí),傳感器的輸出引腳就會輸出9V的高電平,該引腳與光耦的二極管陽極間加了一個(gè)1K的限流電阻,其目的是保護(hù)發(fā)光二極管以免被燒壞。在光電三極管的集電極上接了一個(gè)4.7K的上拉電阻接到5V電源上。這時(shí)光耦的光

14、電三極管接收到光信號后導(dǎo)通,單片機(jī)的P3.5口就會檢測到低電平。反之當(dāng)沒有金屬靠近時(shí),金屬傳感器輸出低電平,發(fā)光二極管截止,光電三極管也截止,P3.5口檢測到高電平。最后單片機(jī)通過計(jì)數(shù)器來讀取下跳延的數(shù)量,也就是檢測到金屬的總數(shù)量。圖2.5 金屬檢測電路圖 計(jì)數(shù)器的顯示 本設(shè)計(jì)設(shè)計(jì)了一個(gè)功能按鍵,當(dāng)功能按鍵按下一次的時(shí)候液晶顯示屏上只顯示螺絲計(jì)數(shù)器計(jì)數(shù)的螺絲個(gè)數(shù)和螺絲所處環(huán)境濕度值。當(dāng)再次按下功能鍵的時(shí)候顯示的是螺絲打包的次數(shù),本設(shè)計(jì)用繼電器動作一次和小燈閃爍一次來表示螺絲打包一次。本次設(shè)計(jì)是每十個(gè)螺絲打包一次繼電器動作一次,小燈閃爍一次當(dāng)打包400個(gè)螺絲的時(shí)候蜂鳴器響20秒,表示一箱已經(jīng)裝滿

15、。再按下一次多功能按鍵的時(shí)候顯示的就是計(jì)數(shù)的螺絲個(gè)數(shù)和濕度。(當(dāng)螺絲所處環(huán)境的濕度達(dá)到50相對濕度,就會報(bào)警)2.3 濕度檢測電路2.3.1 DHT11濕度傳感器簡介DHT11是數(shù)字溫濕度傳感器系列中插針型的傳感器。此類型傳感器把傳感元件和信號處理集成起來,輸出全標(biāo)定的數(shù)字信號。傳感器包括一個(gè)電容性聚合體測濕敏感元件、一個(gè)用能隙材料制成的測溫元件,并在同一芯片上與 14 位的模/數(shù)轉(zhuǎn)換器以及串行接口電路實(shí)現(xiàn)無縫連接。傳感器采用專利的CMOS技術(shù),確保產(chǎn)品具有極高的長期穩(wěn)定性與可靠性。因此,該產(chǎn)品具有品質(zhì)卓越、響應(yīng)超快、抗干擾能力強(qiáng)、性價(jià)比極高等優(yōu)點(diǎn)。傳感器采用的是原裝進(jìn)口數(shù)字溫濕度傳感器芯片,

16、引腳插針為標(biāo)準(zhǔn)2.54插針,使用時(shí)無需重新校準(zhǔn)。傳感器直接與單片機(jī)相連,無需其他外部元件??傊?,極低的功耗、極高的性價(jià)比、卓越的品質(zhì)等優(yōu)點(diǎn)使本次設(shè)計(jì)在選擇溫濕度傳感器時(shí)的首選。DHT11的基本特性如下:(1)測濕范圍:0100%相對濕度;(2)測溫范圍:-40123.8;(3)響應(yīng)時(shí)間:溫度:< 30s,濕度:<8s;(4)分辨率:溫度:0.01,濕度:0.03%相對濕度;(5)重復(fù)性:溫度:0.1  濕度:0.1%相對濕度;(6)測量精度:溫度:±0.5 濕度:±4.5%相對濕度;DHT11電氣參數(shù)如下表2.1所示:表2.1 DHT11電氣

17、參數(shù)參數(shù)條件mintypmax單位供電DC355.5V測量0.52.5mA平均0.21mA待機(jī)100150uA采樣周期秒1次2.3.2 傳感器的接口說明DHT11引腳結(jié)構(gòu)如圖2.6所示。圖2.6 DHT11引腳圖DHT11的供電電壓為2.4-5.5V,建議供電電壓為3.3V。本次設(shè)計(jì)采用的是5V供電方式。引腳2為DATA,即數(shù)據(jù)輸出端口。DATA三態(tài)門用于數(shù)據(jù)的讀取。DATA在數(shù)據(jù)傳輸期間,在必須保持穩(wěn)定。為避免信號沖突,微處理器應(yīng)驅(qū)動 DATA在低電平。需要一個(gè)外部的上拉電阻 (例如:4.7k)將信號提拉至高電平。引腳3為空腳。引腳4為接地引腳。2.3.3 傳感器的外圍硬件電路DHT11傳感

18、器的外圍連接電路如圖2.7所示,將電源VDD端口直接接到5V電源上,GND端口接地,數(shù)據(jù)端口DATA通過一個(gè)4.7K的上拉電阻接到5V電源上,然后接到單片機(jī)的P3.0口,單片機(jī)通過讀寫DATA端口的數(shù)據(jù),測出實(shí)際的濕度值。圖2.7 DHT11電路連接圖2.4 LCD1602顯示模塊本設(shè)計(jì)顯示屏選用LCD1602。工業(yè)字符型液晶,1602是指顯示的內(nèi)容為16*2,能同時(shí)顯示兩行,每行16個(gè)字符。它是一種專門用來顯示字母、數(shù)字、符號等的點(diǎn)陣型液晶模塊;該模塊具有體積小、功耗低、顯示內(nèi)容豐富、超薄輕巧、價(jià)格低、控制簡單等優(yōu)點(diǎn),在袖珍式儀表和低功耗系統(tǒng)中得到廣泛應(yīng)用。常見的1602字符液晶有兩種,一種

19、顯示綠色背光黑色字體,另一種顯示藍(lán)色背光白色字體,目前市面上絕大多數(shù)基于HD44780液晶芯片控制,原理是完全相同的。2.4.1 LCD1602引腳功能介紹1腳:VSS為地電源。2腳:VDD接5V正電源。3腳:VL為液晶1602的對比度調(diào)整端,接正電源時(shí)對比度最弱,接地時(shí)對比度最強(qiáng),在使用時(shí)可以通過一個(gè)10K的電位器與該引腳相連,通過調(diào)節(jié)電位器分壓來調(diào)整液晶的對比度。4腳:RS為數(shù)據(jù)和指令選擇,高電平時(shí)選擇為數(shù)據(jù)寄存器、低電平時(shí)則為指令寄存器。5腳:R/W為讀寫控制,高電平時(shí)選擇為讀控制,低電平時(shí)選擇為寫控制。6腳:EN端為使能控制端,當(dāng)EN端在下降沿到來時(shí),液晶模塊執(zhí)行相應(yīng)的操作命令。714

20、腳:D0D7為8位雙向數(shù)據(jù)線。15腳:背光源正極。16腳:背光源負(fù)極2.4.2 LCD1602驅(qū)動電路設(shè)計(jì)LCD1602是一種專門用來顯示字母、數(shù)字、符號等的點(diǎn)陣型液晶模塊,本設(shè)計(jì)利用它來顯示螺絲的數(shù)量和螺絲周圍環(huán)境的濕度值。電路如圖2.8所示,圖中通過調(diào)節(jié)電位器R1來調(diào)節(jié)液晶背光效果。圖2.8 LCD1602驅(qū)動電路2.5 聲光報(bào)警電路本設(shè)計(jì)是利用有源蜂鳴器和發(fā)光二極管組成聲光報(bào)警電路,由于51單片機(jī)驅(qū)動能力很小輸出電流不足以讓蜂鳴器發(fā)聲,所以我們加入了驅(qū)動電路,選擇NPN型三極管8050來作為驅(qū)動。具體電路如圖2.9所示,三極管的基級接了一個(gè)560R的限流電阻接到單片機(jī)的P3.6口上,集電

21、極與蜂鳴器負(fù)端連接,蜂鳴器的正端直接接到5V上,三極管的發(fā)射極直接接地。單片機(jī)控制P3.6輸出高電平時(shí),蜂鳴器發(fā)聲。發(fā)光二極管經(jīng)過一個(gè)1K的限流電阻與單片機(jī)的P3.7相連。當(dāng)檢測到的環(huán)境濕度值不在設(shè)定的范圍內(nèi)時(shí),單片機(jī)會控制P3.6和P3.7同時(shí)輸出高電平,蜂鳴器和發(fā)光二極管就會工作,產(chǎn)生聲光報(bào)警作為提醒。圖2.9 聲光報(bào)警電路2.6 電源電路系統(tǒng)電源電路主要由9V的電池供電,經(jīng)過穩(wěn)壓芯片LM7805穩(wěn)壓到5V給單片機(jī)和濕度傳感器等供電,在穩(wěn)壓芯片的輸入端加入了100uF的電解電容穩(wěn)壓,在輸出端加入了10uF的電解電容和0.1uF的陶瓷電容穩(wěn)壓濾波。而金屬傳感器直接由9V的電源供電。具體電路如

22、圖2.10所示。圖2.10 電源電路LED顯示3 螺絲計(jì)數(shù)器系統(tǒng)的軟件設(shè)計(jì)3.1 軟件系統(tǒng)總體工作流程開始LED顯示螺絲個(gè)數(shù)K和打包次數(shù)是否切換功能按鍵液晶顯示報(bào)警讀取DHT11獲取濕度數(shù)據(jù)開啟計(jì)數(shù)器系統(tǒng)總程序框圖如下圖3.1所示: 系統(tǒng)初始化 是否達(dá)到螺絲生銹濕度K=400? 結(jié)束圖3.1 系統(tǒng)總程序框圖系統(tǒng)開始之后,首先對系統(tǒng)進(jìn)行初始化,初始化完成,開啟單片機(jī)計(jì)數(shù)器,記錄螺絲數(shù);然后利用單片機(jī)對DHT11的返回的濕度數(shù)據(jù)進(jìn)行讀取儲存,對功能按鍵是否按下進(jìn)行判斷,按下液晶屏上將會顯示螺絲個(gè)數(shù)和打包個(gè)數(shù),若螺絲個(gè)數(shù)達(dá)到四百則進(jìn)行報(bào)警,反之則液晶屏顯示。若不切換功能按鍵則對濕度進(jìn)行判斷,若濕度值

23、達(dá)到螺絲生銹上限,則單價(jià)控制蜂鳴器和發(fā)光二極管進(jìn)行報(bào)警操作,最后單片機(jī)控制液晶對螺絲數(shù)進(jìn)行顯示,依此循環(huán)。3.2 DHT11數(shù)據(jù)讀取方式及程序流程總線空閑狀態(tài)為高電平的時(shí)候主機(jī)把總線拉低等待DHT11響應(yīng), DHT11能檢測到起始信號,主機(jī)必須把總線拉低,至少大于18ms。DHT11一旦接收到主機(jī)的開始信號,接著就等待開始信號的結(jié)束,然后發(fā)送80us的低電平響應(yīng)信號,要讀取DHT11的響應(yīng)信號,必須等待開始信號的結(jié)束,并延時(shí)等待20-40us后才能夠接受,主機(jī)發(fā)送開始信號后,這時(shí)候就可輸出高電平或切換到輸入模式,接著總線由上拉電阻拉高。DHT11發(fā)送響應(yīng)信號的時(shí)候總線為低電平,DHT11把總線

24、拉高80us之前,必須等到響應(yīng)信號發(fā)送,準(zhǔn)備發(fā)送數(shù)據(jù)時(shí),每一bit數(shù)據(jù)都以50us低電平時(shí)隙開始,數(shù)據(jù)位是0或1是由高電平的長或短來決定。假如響應(yīng)信號的讀取為高電平,但是DHT11無響應(yīng)響應(yīng),這時(shí)候說明路線可能連接不正常,當(dāng)最后一bit數(shù)據(jù)傳送結(jié)束后,DHT11把總線拉低50us,接著總線由上拉電阻拉高進(jìn)入空閑狀態(tài)。程序流程如圖3.2所示。開始主機(jī)拉低延時(shí)18ms 總線上拉電阻拉低主機(jī)40usN從機(jī)是否響應(yīng)信號 Y 從機(jī)發(fā)出80us低電平 從機(jī)發(fā)出80us高電平S 數(shù)據(jù)讀取數(shù)據(jù)校驗(yàn)結(jié)束圖3.2 DHT11數(shù)據(jù)讀取程序流程圖3.3 數(shù)字濾波程序設(shè)計(jì)系統(tǒng)利用單片機(jī)采集DHT11返回的濕度數(shù)據(jù),為提

25、高抗干擾能力,并是采用更加準(zhǔn)確,我們需要使用單片機(jī)對采集的信號進(jìn)行濾波處理;一般常見的濾波方式有倆種:均值濾波,中值濾波。均值濾波:均值濾波是將一組數(shù)據(jù)進(jìn)行平均計(jì)算作為選用數(shù)據(jù),這種方式適合數(shù)組極大的系統(tǒng),若數(shù)組較小,并且在數(shù)組中出現(xiàn)了一個(gè)偏差較大的數(shù)據(jù),會造成數(shù)據(jù)不準(zhǔn)確,但在我們得設(shè)計(jì)中,數(shù)組大會影響我們的采樣周期,所以該濾波方式是存在缺欠的。中值濾波:中值濾波是將一組數(shù)據(jù)按大小進(jìn)行順序排列,將數(shù)據(jù)的中間值作為采集數(shù)據(jù),這種方式可以有效的濾除數(shù)據(jù)中偏差較大的數(shù)據(jù),但是對于系統(tǒng)數(shù)據(jù)小的波動是無法濾除的。這里我們選用的方法是將中值法和均值法想結(jié)合的方式來進(jìn)行濾波,設(shè)計(jì)采集11組濕度數(shù)據(jù),對這11

26、組濕度數(shù)據(jù)進(jìn)行排列大小,然后取中間的7組,并對這7組濕度數(shù)據(jù)取平均值作為此次采樣的濕度數(shù)據(jù)。這種方式既能有效的將偏差較大的數(shù)據(jù)濾除,不進(jìn)行均值,又可將數(shù)據(jù)中小的波動通過均值濾掉,所以,這種濾波方式較為理想。濾波程序流程圖如圖3.3所示:開始采集11組濕度數(shù)據(jù)對數(shù)據(jù)進(jìn)行從大到小排列去中間7組數(shù)據(jù)進(jìn)行平均值濾波結(jié)束圖3.3 濾波程序流程圖3.4 液晶顯示程序流程本次設(shè)計(jì)中,液晶LCD1602用來顯示系統(tǒng)的濕度和螺絲個(gè)數(shù)數(shù)據(jù),LCD1602程序流程如圖3.4所示,單片機(jī)首先要初始化液晶,然后對液晶寫相應(yīng)的地址,再寫想要顯示的數(shù)據(jù)在這個(gè)位置上。開始液晶初始化寫地址寫數(shù)據(jù)結(jié)束圖3.4 液晶顯示程序流程圖

27、參考文獻(xiàn)1 張鑫.單片機(jī)原理及應(yīng)用(第2版)M. 電子工業(yè)出版社,2010年 .2 趙負(fù)圖.傳感器原理設(shè)計(jì)與應(yīng)用M.化工工業(yè)出版社,2002.4.3 張毅剛. 單片機(jī)原理與應(yīng)用設(shè)計(jì)M. 電子工業(yè)出版社,2008年.4閻石.數(shù)字電子技術(shù)基礎(chǔ)M.高等教育出版社,2008. 5高國琴. 微型計(jì)算機(jī)控制技術(shù)M. 機(jī)械工業(yè)出版社,2008.6譚浩強(qiáng).C程序設(shè)計(jì) M.清華大學(xué)出版社,2007.7金發(fā)慶.傳感器技術(shù)與應(yīng)用M.北京:機(jī)械工業(yè)出版社,2006.8張培仁等. 基于C語言編程AT89C51單片機(jī)原理與應(yīng)用M.清華大學(xué)出版社,200.9楊吉祥等編著.電子測量技術(shù)基礎(chǔ) M.南京:東南大學(xué)出版社,2004

28、.附錄A 硬件原理圖圖A1 硬件原理圖附錄B 程序代碼#include <reg52.h>#define NUMBER 20 /防止在與硬件通信時(shí)發(fā)生死循環(huán)的計(jì)數(shù)范圍#define SIZE 5 #define OK 1 /設(shè)定標(biāo)志(static unsigned char status)的宏值#define ERROR 0sbit dht11=P00; /請根據(jù)自己的dht11 接的IO 口來改動位定義#define uchar unsigned char#define uint unsigned intstatic uchar status;sbit lcden=P06;sbi

29、t lcdrs=P04;sbit rw=P05;sbit FMQ = P37;sbit LED = P17;sbit FMQ1 = P30;/sbit LED1 = P31;sbit key1 = P31;sbit jdq = P32;uchar ii=0,x=0,xx=0,xxx=0;static uchar value_arraySIZE;/存放五字節(jié)數(shù)據(jù)的數(shù)組/*可在其他的文件引用溫濕度 值,實(shí)際是溫度的整數(shù)的10 倍如dht11 讀回的溫度是26,則temp_value = 260, 濕度同理*/int temp_value, humi_value;int ls_sm=0,count;

30、static uchar ReadValue(void);void xian();void Delay_1ms(uint ms)uint x, y;for(x=ms;x>0;x-)for(y=124;y>0;y-);static void DHT11_Delay_10us(void)uchar i;i-;i-;i-;i-;i-;i-;static uchar DHT11_ReadValue(void) /*讀一個(gè)字節(jié)的數(shù)據(jù)*/uchar count, value=0, i;status=OK; /設(shè)定標(biāo)志為正常狀態(tài)for(i=8;i>0;i-)/高位在先value<&l

31、t;=1;count=0;/每一位數(shù)據(jù)前會有一個(gè)50us 的低電平時(shí)間.等待50us 低電平結(jié)束while(dht11=0&&count+<NUMBER);if(count>=NUMBER)status=ERROR; /設(shè)定錯(cuò)誤標(biāo)志return 0; /函數(shù)執(zhí)行過程發(fā)生錯(cuò)誤就退出函數(shù)/26-28us 的高電平表示該位是0,為70us 高電平表該位1DHT11_Delay_10us();DHT11_Delay_10us();DHT11_Delay_10us();/延時(shí)30us 后檢測數(shù)據(jù)線是否還是高電平if(dht11!=0)value+; /進(jìn)入這里表示該位是1/等

32、待剩余(約40us)的高電平結(jié)束while(dht11!=0&&count+<NUMBER)dht11=1;if(count>=NUMBER)status=ERROR; /設(shè)定錯(cuò)誤標(biāo)志return 0;return (value);extern uchar DHT11_ReadTempAndHumi(void) /讀溫度和濕度函數(shù),讀一次的數(shù)據(jù),共五字節(jié),讀出成功函數(shù)返回OK, 錯(cuò)誤返回ERRORuchar i=0,check_value=0,count=0;EA=0;dht11=0; /拉低數(shù)據(jù)線大于18ms 發(fā)送開始信號Delay_1ms(20); /需大于18

33、 毫秒dht11=1; /釋放數(shù)據(jù)線,用于檢測低電平的應(yīng)答信號/延時(shí)20-40us,等待一段時(shí)間后檢測應(yīng)答信號,應(yīng)答信號是從機(jī)拉低數(shù)據(jù)線80usDHT11_Delay_10us();DHT11_Delay_10us();DHT11_Delay_10us();DHT11_Delay_10us();if(dht11!=0) /檢測應(yīng)答信號,應(yīng)答信號是低電平/沒應(yīng)答信號EA=1; return ERROR;else /有應(yīng)答信號while(dht11=0&&count+<NUMBER); /等待應(yīng)答信號結(jié)束if(count>=NUMBER) /檢測計(jì)數(shù)器是否超過了設(shè)定的范

34、圍dht11=1;EA=1;return ERROR; /讀數(shù)據(jù)出錯(cuò),退出函數(shù)count=0;dht11=1;/釋放數(shù)據(jù)線/應(yīng)答信號后會有一個(gè)80us 的高電平,等待高電平結(jié)束while(dht11!=0&&count+<NUMBER);if(count>=NUMBER)dht11=1;EA=1;return ERROR; /退出函數(shù)/讀出濕.溫度值for(i=0;i<SIZE;i+)value_arrayi=DHT11_ReadValue();if(status=ERROR) /調(diào)用ReadValue()讀數(shù)據(jù)出錯(cuò)會設(shè)定status 為ERRORdht11=

35、1;EA=1;return ERROR;/讀出的最后一個(gè)值是校驗(yàn)值不需加上去if(i!=SIZE-1)/讀出的五字節(jié)數(shù)據(jù)中的前四字節(jié)數(shù)據(jù)和等于第五字節(jié)數(shù)據(jù)表示成功check_value+=value_arrayi;/end for/在沒用發(fā)生函數(shù)調(diào)用失敗時(shí)進(jìn)行校驗(yàn)if(check_value=value_arraySIZE-1)/將溫濕度擴(kuò)大10 倍方便分離出每一位humi_value=value_array0*10;temp_value=value_array2*10;dht11=1;EA=1;return OK; /正確的讀出dht11 輸出的數(shù)據(jù)else/校驗(yàn)數(shù)據(jù)出錯(cuò)EA=1;retur

36、n ERROR;void write_com(uchar com)lcdrs=0;P2=com;Delay_1ms(2);lcden=1;Delay_1ms(2);lcden=0;void write_data(uchar date)lcdrs=1;P2=date;Delay_1ms(2);lcden=1;Delay_1ms(2);lcden=0;void init()rw=0;write_com(0x38);write_com(0x0c);write_com(0x06); write_com(0x01);void xianshi()write_com(0x80+0x40+3);write_d

37、ata('X');write_data('D');write_data('S');write_data('D');write_data(':');write_data(0x30+humi_value/1000);write_data(0x30+humi_value%1000/100);write_data(0x30+humi_value%100/10);write_data('%');void xianmiao()write_com(0x80+0x40+3);write_data('m

38、9;);write_data('i');write_data('a');write_data('o');write_data(':');write_data(0x30+(count/20+1)/10);write_data(0x30+(count/20+1)%10);write_data('s');void xian()write_com(0x80+0x40+3);write_data('D');write_data('B');write_data('S');write_data('L');write_data(':');write_dat

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(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

提交評論