04-智能視力保護(hù)監(jiān)控系統(tǒng)設(shè)計(jì)-論文Wrod_第1頁
04-智能視力保護(hù)監(jiān)控系統(tǒng)設(shè)計(jì)-論文Wrod_第2頁
04-智能視力保護(hù)監(jiān)控系統(tǒng)設(shè)計(jì)-論文Wrod_第3頁
04-智能視力保護(hù)監(jiān)控系統(tǒng)設(shè)計(jì)-論文Wrod_第4頁
04-智能視力保護(hù)監(jiān)控系統(tǒng)設(shè)計(jì)-論文Wrod_第5頁
已閱讀5頁,還剩47頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

本科畢業(yè)設(shè)計(jì)題目:智能視力保護(hù)監(jiān)控系統(tǒng)設(shè)計(jì)姓名:學(xué)號:專業(yè):班級:學(xué)院:指導(dǎo)教師:完成時(shí)間:2021年6月

畢業(yè)設(shè)計(jì)誠信聲明書本學(xué)位論文是在導(dǎo)師指導(dǎo)下獨(dú)立研究、寫作的成果,文中所引用他人的無論以何種方式發(fā)布的文字、研究成果,均在文中加以說明;有關(guān)教師、同學(xué)和其他人員對本文的寫作、修訂提出過并為我在文中加以采納的意見、建議,均已在我的致謝辭中加以說明并深致謝意。學(xué)生(簽字): 時(shí)間: 年 月 日指導(dǎo)教師已閱(簽字): 時(shí)間: 年 月日畢業(yè)設(shè)計(jì)版權(quán)使用授權(quán)書本學(xué)位論文是在導(dǎo)師指導(dǎo)下獨(dú)立完成的。本人同意學(xué)校保留或向國家有關(guān)部門或機(jī)構(gòu)送交設(shè)計(jì)的印刷件和電子版,允許設(shè)計(jì)被查閱和借閱;本人授權(quán)山東協(xié)和學(xué)院可以將本設(shè)計(jì)的全部或部分內(nèi)容編入有關(guān)數(shù)據(jù)庫進(jìn)行檢索,可以采用影印、縮印或其他復(fù)制手段保存和匯編。學(xué)生(簽字): 時(shí)間: 年 月 日指導(dǎo)教師已閱(簽字): 時(shí)間: 年 月 日目錄目錄TOC\o"2-3"\h\z\t"標(biāo)題1,1"摘要 [10]。實(shí)物如下圖3-8所示。電路圖如圖3-9所示。其中VCC供5V電源,GND為地線,TRIG觸發(fā)控制信號輸入,ECHO回響信號輸出等四個(gè)接口端。圖3-8超聲波模塊實(shí)物圖圖3-9超聲波測距電路圖3.7.1超聲波的基本特性超聲波是彈性介質(zhì)中產(chǎn)生頻率大于20kHz的一種機(jī)械振動(dòng),它可分為橫向振動(dòng)和縱向振動(dòng)。超聲波能通過固體、氣體和液體傳播,但速度卻不一樣。它具有折射和反射,并且在傳播過程中也會(huì)衰減。超聲波的基本特性如下所述:1.波長波速等于頻率乘以波長。在3×108毫秒的范圍內(nèi),電磁波傳播速度緩慢,而聲波在空氣中的速度大約是344M/s(20℃)。當(dāng)傳播速度較低時(shí),波長較短,這意味著可以獲得較高的距離和方向分辨率[10]。正是由于這種較高的分辨率特性,才使我們有可能在進(jìn)行測量時(shí)獲得很高的精確度。2.反射為了探測物體的存在,超聲波可以反射到物體上。因?yàn)榻饘?、木材、混凝土、玻璃、橡膠和紙張能反射幾乎100%的超聲波,所以我們很容易找到這些物體。因?yàn)榭椢?、棉花和絨毛都可以吸收超聲波,所以用超聲波檢測比較困難。同時(shí),這些物體反射不規(guī)則,在凹凸面和傾斜面上很難檢測到目標(biāo)。這就說明了在一個(gè)開放式的環(huán)境下檢測超聲波十分關(guān)鍵,并且被測物體必須反射超聲波。3.溫度效應(yīng)聲波傳播的速度“C”可用下列公式表示。C=331.5+0.607t(M/s),其中t=溫度(℃),聲傳播速度隨環(huán)境溫度變化而變化。因此,必須經(jīng)常檢查物體周圍的溫度才能準(zhǔn)確測量物體之間的距離,特別是在冬季,室內(nèi)外溫差較大,嚴(yán)重影響超聲波測距的精度。此時(shí),為了避免溫度變化引起的測量誤差可采用18B20進(jìn)行溫度補(bǔ)償??紤]到測試環(huán)境設(shè)計(jì)為室內(nèi)環(huán)境,目前主要采用超聲波進(jìn)行實(shí)時(shí)測量,本設(shè)計(jì)對測量精度要求不高,故不討論溫度效應(yīng)對系統(tǒng)的影響。4.衰減超聲波在空氣中的傳播強(qiáng)度隨著距離的增加成正比地減小,這是由于地球表面衍射所致的擴(kuò)散損失和能量被介質(zhì)吸收引起的吸收損失所致。從圖3-10可以看出,超聲頻率越高,衰減度越大,超聲傳播距離越短。因此,超聲波傳感器的有效距離直接受超聲波衰減特性的影響。振動(dòng)頻率為40KHz的HC-SR04型超聲波傳感器,通過10m傳輸將超聲波信號的傳播強(qiáng)度降低了40個(gè)dB。這時(shí),回波信號很難被超聲波接收機(jī)接收到。圖3-10聲音信號強(qiáng)度在不同距離下的衰減特性3.7.2超聲波的工作原理通常的超聲波傳感器大多為開放式的,其內(nèi)部結(jié)構(gòu)如圖3-11所示,所述底座上可以靈活地固定復(fù)合式振動(dòng)器。該復(fù)合式振動(dòng)器是由諧振器以及一個(gè)金屬片和一個(gè)壓電陶瓷片組成的雙壓電晶片元件振動(dòng)器。由于振動(dòng)而產(chǎn)生的超聲波能被呈喇叭形的諧振器有效的輻射,并且可以將超聲波有效地聚集到振動(dòng)器的中心位置。當(dāng)電壓作用于壓電陶瓷上時(shí),隨著電壓和頻率的變化,壓電陶瓷會(huì)發(fā)生機(jī)械變形。而電荷是由于壓電陶瓷的振動(dòng)而產(chǎn)生的。根據(jù)這個(gè)原理,當(dāng)一個(gè)振動(dòng)器由兩個(gè)壓電陶瓷或一個(gè)壓電陶瓷和一個(gè)金屬片組成時(shí),就是所謂的雙壓電片元件,施加電信號時(shí),由于彎曲振動(dòng)而發(fā)出超聲波。反之,當(dāng)超聲波被雙壓電片元件施加振動(dòng)時(shí),則就產(chǎn)生了電信號。圖3-11超聲波傳感器內(nèi)部結(jié)構(gòu)圖向某一方向發(fā)射超聲波的超聲波發(fā)射器,在發(fā)射時(shí)刻的同時(shí)開始計(jì)時(shí),在空氣中傳播的超聲波,在途中遇到障礙物就立即返回,超聲波接收器接收到反射波后會(huì)立即停止計(jì)時(shí)。超聲波在空氣中的傳播速度為340m/s,根據(jù)定時(shí)器記錄的時(shí)間t,則可以計(jì)算出起動(dòng)射點(diǎn)距障礙物之間的距離(s),即:s=340t/2,這就是所謂的時(shí)間差測距法。如圖3-12所示:圖3-12測距原理圖3.7.3超聲波模塊電氣參數(shù)超聲波模塊電氣參數(shù)如表3-1所示。表3-1超聲波模塊電氣參數(shù)電氣參數(shù)HC-SR04超聲波模塊工作電壓DC5V工作電流40kHz工作頻率15mA最遠(yuǎn)射程4m最近射程2cm測量角度15度輸入觸發(fā)信號10uS的TTL脈沖輸出回響信號輸出TTL電平信號,與射程成比例規(guī)格尺寸45*20*15mm3.8定時(shí)報(bào)警電路報(bào)警電路分為單片機(jī)定時(shí)電路和報(bào)警器發(fā)聲電路。定時(shí)電路在設(shè)計(jì)中主要用來對學(xué)生已經(jīng)學(xué)習(xí)時(shí)間進(jìn)行計(jì)時(shí),由STC89C52自帶的定時(shí)器/計(jì)數(shù)器實(shí)現(xiàn)上述功能。當(dāng)學(xué)生學(xué)習(xí)時(shí)間超出45分鐘時(shí),報(bào)警器電路發(fā)出警報(bào)聲,提醒學(xué)生休息。在單片機(jī)STC89C52中,有兩個(gè)可編程的計(jì)數(shù)器/定時(shí)器來滿足對外部脈沖進(jìn)行計(jì)數(shù),產(chǎn)生準(zhǔn)確的定時(shí)時(shí)間,并作為串口波形發(fā)生器的需要。它們有兩種工作模式(計(jì)數(shù)器模式和定時(shí)器模式)和四種工作模式(模式0、模式1、模式2和模式3)。工作模式具體如表3-2所示。

表3-2定時(shí)器模式寄存器M0/M1工作模式M1M0工作模式000011102113當(dāng)定時(shí)器/計(jì)數(shù)器在定時(shí)模式下工作時(shí),計(jì)數(shù)器的加1信號由振蕩器的12分頻信號產(chǎn)生(即每個(gè)機(jī)器周期),計(jì)數(shù)器將會(huì)加1,直到計(jì)數(shù)滿為止。顯而易見,系統(tǒng)的振蕩頻率與計(jì)時(shí)器的計(jì)時(shí)時(shí)間有關(guān)系。因?yàn)橐粋€(gè)機(jī)器周期等于12個(gè)振蕩周期,計(jì)數(shù)頻率為1/12osc。如果晶體振蕩器為12MHz,則計(jì)數(shù)周期為T=1/(12×106)Hz×1/12=1μs定時(shí)周期最短。改變定時(shí)器的初始值并適當(dāng)?shù)剡x擇定時(shí)器的長度(例如8位、13位、16位等)來延長定時(shí)器的時(shí)間。當(dāng)定時(shí)器/計(jì)數(shù)器工作在計(jì)數(shù)模式時(shí),外部信號通過引腳T0和T1進(jìn)行計(jì)數(shù),外部脈沖的下降沿將觸發(fā)計(jì)數(shù)。在每個(gè)機(jī)器循環(huán)的S5P2期間,計(jì)數(shù)器對引腳輸入電平進(jìn)行采樣。如果一個(gè)機(jī)器周期的采樣值為1,而下一個(gè)機(jī)器周期的采樣值為0,則計(jì)數(shù)器將加1。在隨后的機(jī)器循環(huán)S3P1中,新的計(jì)數(shù)值被加載到計(jì)數(shù)器中。因此,檢測從1到0的跳變要兩個(gè)機(jī)器周期,因此外部事件年的最大計(jì)數(shù)頻率是振蕩頻率的1/24。例如,如果選擇12MHz晶體振蕩器,則最大計(jì)數(shù)頻率為0.5MHz。雖然對外部輸入信號的占空比沒有特殊要求,但為了確保在改變之前至少對給定電平進(jìn)行一次采樣,外部計(jì)數(shù)脈沖的高電平和低電平的保持時(shí)間應(yīng)超過一個(gè)機(jī)器周期。使用TMOD工作模式控制寄存器用于控制計(jì)數(shù)器的工作模式和定時(shí)器工作模式。它的字節(jié)地址是89H。定時(shí)器/計(jì)數(shù)器有兩個(gè)功能:累積外部輸入脈沖數(shù)目(用作計(jì)數(shù)器使用)或精確模擬時(shí)間間隔(用作定時(shí)器使用)。當(dāng)它用作于定時(shí)器時(shí),在其輸入端輸入一個(gè)固定周期的脈沖數(shù),就可以計(jì)算出給定時(shí)間的長度。當(dāng)選擇STC89C52的內(nèi)部定時(shí)器/計(jì)數(shù)器作為定時(shí)器工作模式時(shí),計(jì)數(shù)輸入信號為內(nèi)部時(shí)鐘脈沖。每個(gè)機(jī)器周期產(chǎn)生一個(gè)脈沖,使計(jì)數(shù)器增加1。因此,定時(shí)器/計(jì)數(shù)器的輸入脈沖為機(jī)器周期時(shí)鐘頻率的1/12。本設(shè)計(jì)的時(shí)鐘周期為6MHz,計(jì)數(shù)速度為500KHz,輸入脈沖的時(shí)間間隔為0.5秒。3.9系統(tǒng)整體電路設(shè)計(jì)系統(tǒng)整體電路圖包括:電源電路、按鍵電路、單片機(jī)主控電路、超聲波測距電路、LCD1602顯示電路、聲光報(bào)警電路等。整機(jī)電路原理圖如圖3-13所示。圖3-13整機(jī)電路原理圖4系統(tǒng)軟件設(shè)計(jì)方案4.1主程序設(shè)計(jì)超聲波子程序報(bào)警子程序定時(shí)子程序光強(qiáng)檢測子程序智能視力保護(hù)監(jiān)控系統(tǒng)主程序本系統(tǒng)主程序包括光強(qiáng)檢測子程序、定時(shí)子程序、報(bào)警子程序、超聲波子程序。先確定主程序,再根據(jù)各個(gè)硬件電路的功能來設(shè)計(jì)子程序,并將其最終嵌入主程序中。由于子程序模塊與硬件電路一一對應(yīng),因此其編程結(jié)構(gòu)非常簡單、明了,調(diào)試起來十分方便。本系統(tǒng)軟件設(shè)計(jì)方框圖如圖4-1所示。超聲波子程序報(bào)警子程序定時(shí)子程序光強(qiáng)檢測子程序智能視力保護(hù)監(jiān)控系統(tǒng)主程序圖4-1系統(tǒng)軟件設(shè)計(jì)方框圖4.2子程序設(shè)計(jì)4.2.1光強(qiáng)檢測子程序設(shè)計(jì)如圖4-2所示為系統(tǒng)的光強(qiáng)檢測子程序流程圖。首先對單片機(jī)進(jìn)行初始化,然后進(jìn)行光強(qiáng)檢測,通過ADC0832模數(shù)轉(zhuǎn)換器,將光敏電阻得到的模擬信號,轉(zhuǎn)換成數(shù)字信號傳送給單片機(jī)進(jìn)行判斷。如果光強(qiáng)過強(qiáng)或過暗,就會(huì)發(fā)出聲光報(bào)警。圖4-2光強(qiáng)檢測子程序流程圖4.2.2超聲波測量子程序設(shè)計(jì)如圖4-3所示為系統(tǒng)坐姿檢測超聲波測量子程序流程圖。當(dāng)按下開始鍵時(shí),對系統(tǒng)進(jìn)行初始化處理。通過超聲波HC-SR04輸出的脈沖信號對距離進(jìn)行判斷,當(dāng)使用者臉部與讀物之間的距離小于設(shè)定值時(shí),就會(huì)發(fā)出聲光報(bào)警。

圖4-3超聲波測距子程序流程圖4.2.3定時(shí)子程序設(shè)計(jì)首先進(jìn)行單片機(jī)初始化,開啟定時(shí)器計(jì)時(shí),定時(shí)主要依據(jù)單片機(jī)內(nèi)部的編程來實(shí)現(xiàn),定時(shí)子程序?qū)κ褂谜叩膶W(xué)習(xí)時(shí)間進(jìn)行定時(shí),當(dāng)學(xué)習(xí)時(shí)間超出45分鐘時(shí),報(bào)警器就會(huì)報(bào)警,同時(shí)提醒使用者休息。如果沒有超出45分鐘,系統(tǒng)會(huì)返回繼續(xù)判斷。定時(shí)子程序流程圖如圖4-4所示。圖4-4定時(shí)器子程序流程圖5系統(tǒng)電路制作與調(diào)試5.1電路制作1.檢查元器件的質(zhì)量根據(jù)電路圖購買符合要求的元器件,首先仔細(xì)檢查所購元器件的質(zhì)量的好壞及數(shù)量是否正確,然后按各元器件的檢測方法進(jìn)行逐個(gè)檢測。而且要認(rèn)真核對原理圖是否一致,在檢查好后才可上件、焊件,防止出現(xiàn)錯(cuò)誤焊件后不便改正。2.放置和焊接各元件本設(shè)計(jì)采用萬用板,確保器件沒有損壞且無誤后,根據(jù)示意圖的位置放置元件。在放置過程中,應(yīng)在萬用板上先放置不易損壞和焊接要求較低的元件,然后再放置焊接要求較高和容易損壞的元件。特別是對易損壞的元器件應(yīng)進(jìn)行后焊,焊接集成芯片時(shí),連續(xù)焊接時(shí)間不應(yīng)超過10s。同時(shí)也要仔細(xì)檢查器件的正負(fù)極和STC89C52的方向。本系統(tǒng)涉及的模塊較多,焊接方面要求高標(biāo)準(zhǔn)、高精度。如果焊接錯(cuò)誤,會(huì)出現(xiàn)很多電路問題。例如:焊錫量過多影響兩個(gè)元器件的連接方式電路短路、焊錫量過少有可能造成電路虛焊等。5.2電路調(diào)試首先燒入顯示程序,控制液晶顯示,若顯示正常,說明部分正確。然后加入超聲波測距程序,以達(dá)到預(yù)期的效果。對程序進(jìn)行調(diào)試時(shí),如果部分指令使用不當(dāng),就會(huì)導(dǎo)致電路功能不能完全實(shí)現(xiàn)。另外,軟件程序中的延遲要么太長,要么太短。類似的現(xiàn)象很多,所以我們不再一一列出說明。首先,按下電源的開關(guān),LCD1602液晶顯示器顯示當(dāng)前的距離和光照強(qiáng)度,然后通過按鍵對系統(tǒng)進(jìn)行設(shè)置,設(shè)置好使用者與讀物之間的距離、最低和最高光照強(qiáng)度、使用時(shí)間等信息。按下學(xué)習(xí)鍵開始學(xué)習(xí),計(jì)時(shí)開始。當(dāng)測量的信號不符合設(shè)定值時(shí),系統(tǒng)聲光報(bào)警,提醒使用者注意用眼習(xí)慣。當(dāng)按下暫停鍵時(shí),系統(tǒng)停止計(jì)時(shí)工作,若此時(shí)的光照強(qiáng)度和距離不符合設(shè)定值,不會(huì)報(bào)警。當(dāng)計(jì)時(shí)達(dá)到45分鐘時(shí),系統(tǒng)會(huì)發(fā)出聲光報(bào)警,提醒使用者注意休息。

6成品展示實(shí)物圖包含電源模塊、主控模塊、光強(qiáng)檢測模塊、報(bào)警提示模塊、超聲波測距模塊和顯示模塊。以單片機(jī)STC89C52為核心,通過按鍵設(shè)置學(xué)習(xí)時(shí)間、用眼距離、光線強(qiáng)度,開始學(xué)習(xí)并進(jìn)行光強(qiáng)檢測、時(shí)間檢測、距離檢測,當(dāng)超過設(shè)定值時(shí)可實(shí)現(xiàn)聲光報(bào)警。經(jīng)過測試,可以滿足功能要求。實(shí)物如圖6-1所示。圖6-1實(shí)物圖7總結(jié)與展望7.1總結(jié)本次畢業(yè)設(shè)計(jì)是基于STC89C52單片機(jī)的智能視力保護(hù)監(jiān)控系統(tǒng)的設(shè)計(jì),完成了系統(tǒng)硬件電路的設(shè)計(jì)、系統(tǒng)軟件電路的設(shè)計(jì),繪制了整體電路原理圖,經(jīng)過調(diào)試,基本達(dá)到了設(shè)計(jì)目標(biāo)。本系統(tǒng)以STC89C52單片機(jī)為控制核心,通過HC-SR04超聲波測距傳感器檢測使用者臉部與讀物之間的距離,通過光敏電阻對光線強(qiáng)弱進(jìn)行檢測,通過按鍵電路對用眼距離、定時(shí)時(shí)間、光照強(qiáng)弱進(jìn)行設(shè)置,通過LCD1602顯示距離、光照強(qiáng)度、時(shí)間等參數(shù)信息,實(shí)現(xiàn)光強(qiáng)檢測、距離檢測、定時(shí)和報(bào)警等功能。該系統(tǒng)使用方便,用戶可根據(jù)需求進(jìn)行功能擴(kuò)展。7.2展望因?yàn)闀r(shí)間原因,該設(shè)計(jì)仍存在許多不足之處需要解決。比如:聲光報(bào)警可改為語音提示;視力保護(hù)監(jiān)控系統(tǒng)可以通過Wi-Fi與手機(jī)APP進(jìn)行連接,便于家長的監(jiān)督。隨著科技的飛速發(fā)展,眾多電子產(chǎn)品進(jìn)入我們的生活,如長時(shí)間看電視、電腦、玩手機(jī)也是造成近視的重要因素。該設(shè)計(jì)通過該電子硬件的制作和理論研究,能為后期進(jìn)一步設(shè)計(jì)智能視力保護(hù)器并采取合理措施提高視力保護(hù)的有效性提供可靠和有效的數(shù)據(jù)源和信息依據(jù)。參考文獻(xiàn)參考文獻(xiàn)陳帥華.智能視力保護(hù)系統(tǒng)設(shè)計(jì)[J].智能機(jī)器人,2016(10):51-54.王吉濤.把防治近視作為師德修養(yǎng)的基本功來“修”[J].山東教育(小學(xué)刊),2006(28):19.許超,孟青,董嚴(yán),許晉飛,王超.基于51單片機(jī)的多功能視力保護(hù)器[J].電子世界,2016(22):85-86+88.陳煒.簡易青少年視力保護(hù)器的設(shè)計(jì)[J].科技展望,2015,33:87-89.張玉鳳,李水蓮.基于51單片機(jī)的紅外視力保護(hù)儀的設(shè)計(jì)[J].電子制作,2015,08:7-12.趙穎,何英昊.基于STC89C52的多功能視力保護(hù)器設(shè)計(jì)[J].電子技術(shù)與軟件工程,2019(11):120-121.商瑩.視力保護(hù)儀的研究與設(shè)計(jì)[J].新技術(shù)新工藝,2015,06:34-36.郭從敏,辛明,張歡.智能語音在視力保護(hù)器中的應(yīng)用研究[J].電子世界,2021(01):87-88+93.梁東麗,劉穎.基于單片機(jī)的多功能視力保護(hù)器設(shè)計(jì)[J].天津職業(yè)技術(shù)師范大學(xué)學(xué)報(bào),2018,28(01):21-26.孔雅瓊.基于超聲波的超聲測距儀的研究與開發(fā)[M].長沙:國防科技大學(xué),2007.JennyPreece,YvonneRogers,HelenSharp.InteractionDesignBeyondHuman-ComputerInteraction[M].Hoboken,N.J.Wiley,2011.RongPan,HaiZhao,JialiangWang,DanLiu,PenghuaCai.TheDesignandImplementofTCP/IPProtocolClusteronAVRSinglechip[J].JournalofSoftwareEngineeringandApplications,2010,38.XiaojuanChen,YoutianZhang,XinghuaLi.DesignofATrigeminalNeuralgiaPressure-pained-detectorBasedonMSP430[J].IEEETransactionsonSoftwareEngineering,2009.XiaojuanChen,YoutianZhang,XinghuaLi.DesignofATrigeminalNeuralgiaPressure-pained-detectorBasedonMSP430[J].IEEETransactionsonSoftwareEngineering,2009.柴夫君.基于STM32的LED智能學(xué)習(xí)型臺(tái)燈系統(tǒng)的設(shè)計(jì)[D].秦皇島:燕山大學(xué),2016.何冰,王菊霞,蘇變玲.基于單片機(jī)的視力保護(hù)器設(shè)計(jì)[J].電子設(shè)計(jì)工程,2015,23(03):89-92.陳中,朱代忠.基于STC89C52單片機(jī)的控制系統(tǒng)設(shè)計(jì)[M].北京:清華大學(xué)出版社,2015.李驍,王彬媛,王振中,劉炳言,李昱釗,張黔.基于STC89C52單片機(jī)的視力保護(hù)器設(shè)計(jì)[J].電子世界,2015,19:160-162.丁學(xué)用,陳越艷,王旭龍,滕維乾.一種自動(dòng)感應(yīng)及預(yù)防近視智能臺(tái)燈設(shè)計(jì)[J].中國科技信息,2017(24):77-78+80.李傳娣,趙常松,李繼超,等.單片機(jī)原理、應(yīng)用及Proteus仿真[M].北京:清華大學(xué)出版社,2017.致謝致謝行文至此,落筆為終。大學(xué)生涯始于2017年秋,終于2021年夏。在這個(gè)充滿回憶的校園中,目光所及,皆是青春與收獲,有不舍、有感激。首先要感謝學(xué)校給我提供了做這個(gè)系統(tǒng)的機(jī)會(huì),感謝學(xué)校的各位領(lǐng)導(dǎo)和老師一直以來對我的教導(dǎo)和幫助。其次感謝王淑嬌老師,給我進(jìn)行了很多的輔導(dǎo),不僅在技術(shù)上給了我很大幫助,也在系統(tǒng)需求和設(shè)計(jì)方面給予了我很大幫助。王老師的諄諄教導(dǎo),使我受益匪淺。王老師多次詢問研究進(jìn)程,并為我指點(diǎn)迷津,幫助我開拓研究思路,精心點(diǎn)撥、熱忱鼓勵(lì)。老師一絲不茍的作風(fēng),嚴(yán)謹(jǐn)求實(shí)的態(tài)度,踏踏實(shí)實(shí)的精神,不僅授我以文,而且教我做人,給以終生受益無窮之道。我對老師的感激之情是無法用言語表達(dá)的。還要感謝我的同學(xué),是你們在我平時(shí)設(shè)計(jì)和論文中與我一起探討問題,并指出我設(shè)計(jì)上的誤區(qū),使我能及時(shí)的發(fā)現(xiàn)問題把設(shè)計(jì)順利的進(jìn)行下去,沒有你們的幫助我不可能這樣順利地結(jié)稿,在此表示深深的謝意。以夢為馬,不負(fù)韶華,感謝不曾放棄的自己,縱使現(xiàn)在還沒有看到前路的曙光,但我一直會(huì)保存著那抹光亮,不斷前行,每一次經(jīng)歷都是成長,我們更高處見。附錄附錄源程序#include<reg52.h> //調(diào)用單片機(jī)頭文件#defineucharunsignedchar//無符號字符型宏定義 變量范圍0~255#defineuintunsignedint //無符號整型宏定義 變量范圍0~65535#include<intrins.h>sbitCS=P1^4; //CS定義,連接ADC0832CS腳sbitSCL=P1^5; //SCL定義,連接ADC0832SCL腳sbitDO=P1^6; //DO定義,連接ADC0832DO腳sbitbeep=P1^3; //蜂鳴器IO口定義//這三個(gè)引腳參考資料sbitrs=P1^0; //1602數(shù)據(jù)/命令選擇引腳H:數(shù)據(jù) L:命令sbitrw=P1^1; //1602讀寫引腳 H:數(shù)據(jù)寄存器 L:指令寄存器sbite=P1^2; //1602使能引腳下降沿觸發(fā)sbitc_send=P3^2; //超聲波發(fā)射sbitc_recive=P3^3; //超聲波接收longdistance; //距離uintset_d; //距離bitflag_csb_juli;//超聲波超出量程uintflag_time0;//用來保存定時(shí)器0的時(shí)候的bitflag_300ms=1;ucharguangxian;//光線的顯示變量ucharqiang_gx; //設(shè)置光線的強(qiáng)的變量ucharruo_gx; //設(shè)置光線的弱的變量ucharvalue;ucharflag_alarm;//報(bào)警變量ucharmiao=0,fen=0,shi;uchars_miao=55,s_fen=44,s_shi=0;bitxuexi_start;//開始學(xué)習(xí)標(biāo)志位ucharmenu_1; //菜單設(shè)置變量uchari;ucharflag_gx;//光線報(bào)警ucharflag_juli; //距離報(bào)警ucharflag_time =0; //時(shí)間報(bào)警sbitled1=P2^1;sbitled2=P2^0;sbitled3=P2^2;/***********************1ms延時(shí)函數(shù)*****************************/voiddelay_1ms(uintq){ uinti,j; for(i=0;i<q;i++) for(j=0;j<120;j++);}/*********************************************************************名稱:delay()*功能:延時(shí),延時(shí)時(shí)間大概為5US。*輸入:無*輸出:無***********************************************************************/voiddelay_uint(uintq){ while(q--);}/*********************************************************************名稱:write_com(ucharcom)*功能:1602命令函數(shù)*輸入:輸入的命令值*輸出:無***********************************************************************/voidwrite_com(ucharcom){ e=0; rs=0; rw=0; P0=com; delay_uint(3); e=1; delay_uint(25); e=0;}/*********************************************************************名稱:write_data(uchardat)*功能:1602寫數(shù)據(jù)函數(shù)*輸入:需要寫入1602的數(shù)據(jù)*輸出:無***********************************************************************/voidwrite_data(uchardat){ e=0; rs=1; rw=0; P0=dat; delay_uint(3); e=1; delay_uint(25); e=0; }/***********************lcd1602上顯示兩位十進(jìn)制數(shù)************************/voidwrite_sfm2(ucharhang,ucharadd,uchardate){ if(hang==1) write_com(0x80+add); else write_com(0x80+0x40+add); write_data(0x30+date/10%10); write_data(0x30+date%10); }/***********************lcd1602上顯示超聲波距離************************/voidwrite_sfm_csb(ucharhang,ucharadd,uintdate){ if(hang==1) write_com(0x80+add); else write_com(0x80+0x40+add); write_data(0x30+date/100%10); write_data('.'); write_data(0x30+date/10%10); write_data(0x30+date%10); }/*********************************************************************名稱:init_1602()*功能:1602初始化,請參考1602的資料*輸入:無*輸出:無***********************************************************************/voidinit_1602(){ write_com(0x38); // write_com(0x0c); write_com(0x06);}/*********************************************************************名稱:write_string(ucharhang,ucharlie,uchar*p)*功能:改變液晶中某位的值,如果要讓第一行,第五個(gè)字符開始顯示"abcdef",調(diào)用該函數(shù)如下 write_string(1,5,"abcdef;")*輸入:行,列,需要輸入1602的數(shù)據(jù)*輸出:無***********************************************************************/voidwrite_string(ucharhang,ucharadd,uchar*p){ if(hang==1) write_com(0x80+add); else write_com(0x80+0x40+add); while(1) { if(*p=='\0')break; write_data(*p); p++; } }ucharkey_can;/********************獨(dú)立按鍵程序*****************/voidkey(){ if((P3&0xf0)!=0xf0) { delay_1ms(1); if((P3&0xf0)!=0xf0) { switch(P3&0xf0) { case0xd0:key_can=3;break; //左邊第1個(gè) case0xb0:key_can=2;break; //左邊第2個(gè) case0x70:key_can=1;break; //左邊第3個(gè) } } }}/***********讀數(shù)模轉(zhuǎn)換數(shù)據(jù)********************************************************/ //請先了解ADC0832模數(shù)轉(zhuǎn)換的串行協(xié)議,再來讀本函數(shù),主要是對應(yīng)時(shí)序圖來理解,本函數(shù)是模擬0832的串行協(xié)議進(jìn)行的unsignedcharad0832read(bitSGL,bitODD){ unsignedchari=0,value=0,value1=0; SCL=0; DO=1; CS=0; //開始 SCL=1; //第一個(gè)上升沿 SCL=0; DO=ODD; SCL=1; //第二個(gè)上升沿 SCL=0; DO=SGL; for(i=0;i<8;i++) { SCL=0; value<<=1;//數(shù)據(jù)左移一位低位自動(dòng)補(bǔ)0 SCL=1; if(DO==1) value|=0x01; ////數(shù)據(jù)低位置1 } returnvalue;}/*********************小延時(shí)函數(shù)*****************************/voiddelay(){ _nop_(); //執(zhí)行一條_nop_()指令就是1us _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();}/*********************超聲波測距程序*****************************/voidsend_wave(){ c_send=1; //10us的高電平觸發(fā) delay(); c_send=0; while(!c_recive); //當(dāng)c_recive為零時(shí)等待 TR0=1; flag_csb_juli=0; while(c_recive) //當(dāng)c_recive為1計(jì)數(shù)并等待 { flag_time0=TH0*256+TL0; flag_csb_juli=1; } if(flag_csb_juli==1) { TR0=0; //關(guān)定時(shí)器0定時(shí) distance=flag_time0; //讀出定時(shí)器0的時(shí)間 distance*=0.017;//0.017=340M/2=170M=0.017M算出來是米 }}/*********************定時(shí)器0、定時(shí)器1初始化******************/voidtime_init() { EA=1; //開總中斷 TMOD=0X11; //定時(shí)器0、定時(shí)器1工作方式1 ET0=1; //開定時(shí)器0中斷 TR0=1; //允許定時(shí)器0定時(shí) ET1=1; //開定時(shí)器1中斷 TR1=1; //允許定時(shí)器1定時(shí) }/*******************按鍵執(zhí)行函數(shù)******************/voidkey_with(){ if(menu_1==0) { if(key_can==2) //暫停學(xué)習(xí) { xuexi_start=~xuexi_start; beep=1; } if(key_can==3) { xuexi_start=1;//開始學(xué)習(xí) miao=0; fen=0; shi=0; } } if(key_can==1) { menu_1++; if(menu_1==1) { write_string(1,0,"1.xsb:m"); write_string(2,0,"2.::"); write_sfm_csb(1,6,set_d); write_sfm2(1,3,s_shi); // 顯示 write_sfm2(1,6,s_fen); // 顯示 write_sfm2(1,9,s_miao); // 顯示 } if(menu_1==2) { write_com(0x80+0x40+0);//將光標(biāo)移動(dòng)到 write_com(0x0f);//顯示光標(biāo)并且閃爍 } if(menu_1==5) { write_string(1,0,"3.H-gx:%"); write_string(2,0,"4.L-gx:%"); write_sfm2(1,7,qiang_gx); write_sfm2(2,7,ruo_gx); //設(shè)置光線的參數(shù) write_com(0x80+6);//將光標(biāo)移動(dòng)到 write_com(0x0f);//顯示光標(biāo)并且閃爍 } if(menu_1>=3) { menu_1=0; write_string(1,0,"csb: mgx:"); write_string(2,0,"::"); write_com(0x0c);//關(guān)閉顯示 } } if(menu_1==1)//設(shè)置超聲波參數(shù) { if(key_can==2)// { set_d++; //加超聲波距離報(bào)警數(shù)據(jù) if(set_d>=200) set_d=200; } if(key_can==3)// { set_d--; //減超聲波距離報(bào)警數(shù)據(jù) if(set_d<=10) set_d=10; } write_sfm_csb(1,6,set_d); // 顯示設(shè)置的距離 write_com(0x85);//將光標(biāo)移動(dòng)到 write_com(0x0f);//顯示光標(biāo)并且閃爍 } if(menu_1==2)//設(shè)置時(shí)鐘參數(shù) { if(key_can==2)// { s_shi++; //加時(shí)鐘報(bào)警數(shù)據(jù) if(s_shi>=24) s_shi=0; } if(key_can==3)// { if(s_shi<=0) s_shi=24; s_shi--; //減時(shí)鐘報(bào)警數(shù)據(jù) } write_sfm2(2,3,s_shi); // 顯示時(shí) write_sfm2(2,6,s_fen); // 顯示分 write_sfm2(2,9,s_miao); // 顯示秒 write_com(0x80+0x40+3);//將光標(biāo)移動(dòng)到 write_com(0x0f);//顯示光標(biāo)并且閃爍 } if(menu_1==3)//設(shè)置分鐘參數(shù) { if(key_can==2)// { s_fen++; //加分鐘報(bào)警數(shù)據(jù) if(s_fen>=60) s_fen=0; } if(key_can==3)// { if(s_fen<=0) s_fen=60; s_fen--; //減分鐘報(bào)警數(shù)據(jù) } write_sfm2(2,3,s_shi); // 顯示時(shí) write_sfm2(2,6,s_fen); // 顯示分 write_sfm2(2,9,s_miao); // 顯示秒 write_com(0x80+0x40+6);//將光標(biāo)移動(dòng)到 write_com(0x0f);//顯示光標(biāo)并且閃爍 } if(menu_1==4)//設(shè)置秒鐘參數(shù) { if(key_can==2)// { s_miao++; //加秒鐘報(bào)警數(shù)據(jù) if(s_miao>=60) s_miao=0; } if(key_can==3)// { if(s_miao<=0) s_miao=60; s_miao--; //減秒鐘報(bào)警數(shù)據(jù) } write_sfm2(2,3,s_shi); // 顯示時(shí) write_sfm2(2,6,s_fen); // 顯示分 write_sfm2(2,9,s_miao); // 顯示秒 write_com(0x80+0x40+9);//將光標(biāo)移動(dòng)到 write_com(0x0f);//顯示光標(biāo)并且閃爍 } if(menu_1==5) //設(shè)置強(qiáng)光報(bào)警 { if(key_can==2)// { qiang_gx++; //加強(qiáng)光報(bào)警數(shù)據(jù) if(qiang_gx>=100) qiang_gx=100; } if(key_can==3)// { qiang_gx--; //減強(qiáng)光報(bào)警數(shù)據(jù) if(qiang_gx<=ruo_gx) qiang_gx=ruo_gx; } write_sfm2(1,7,qiang_gx); write_com(0x80+6);//將光標(biāo)移動(dòng)到 write_com(0x0f);//顯示光標(biāo)并且閃爍 } if(menu_1==6) //設(shè)置弱光報(bào)警 { if(key_can==2)// { ruo_gx++; //加弱光報(bào)警數(shù)據(jù) if(ruo_gx>=qiang_gx) ruo_gx=qiang_gx; } if(key_can==3)// { ruo_gx--; //減強(qiáng)光報(bào)警數(shù)據(jù) if(ruo_gx<=1) ruo_gx=1; } write_sfm2(2,7,ruo_gx); write_com(0x80+0x40+6);//將光標(biāo)移動(dòng)到 write_com(0x0f);//顯示光標(biāo)并且閃爍 }}/*********************報(bào)警函數(shù)***************************/voidclock_beep(){ ucharvalue3; if((guangxian>=qiang_gx)||(guangxian<=ruo_gx)) //光線報(bào)警 { flag_gx=1;//光線報(bào)警 led1=0; }else { flag_gx=0; led1=1; } if(xuexi_start==1) //已經(jīng)開始學(xué)習(xí)了 { if(distance<=set_d) //距離報(bào)警 { flag_juli=1; led2=0; }else { flag_juli=0; led2=1;

溫馨提示

  • 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)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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

提交評論