版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、基于單片機(jī)的水災(zāi)液位檢測(cè)系統(tǒng)的設(shè)計(jì)Design of flood level detection system based on single chip computer內(nèi)容摘要一直以來(lái),水總是我們生活中十分常見(jiàn)但又不可或缺的部分。往小了說(shuō),一個(gè)人的一日三餐衣食住行都離不開(kāi)生活用水,而往大了說(shuō),長(zhǎng)江三峽水利樞紐工程所產(chǎn)生的效益也與我們的生活息息相關(guān)。古有諸葛孔明北征時(shí),征集兵丁開(kāi)設(shè)專(zhuān)職維護(hù)管理都江堰,今有1952年毛主席視察黃河時(shí)提出的南水北調(diào)工程,而這些,都與水,或者說(shuō)都與水利工程,水的治理息息相關(guān)。同樣的,本次畢業(yè)設(shè)計(jì)也是緊緊圍繞著水而展開(kāi)的。本次畢設(shè)選用宏晶科技有限公司的一款單片機(jī)作為主
2、控IC設(shè)計(jì)一款水災(zāi)液位檢測(cè)系統(tǒng)。硬件系統(tǒng)是由STC15F2K60S2單片機(jī)、液位傳感器、超聲波傳感器、步進(jìn)電機(jī)、步進(jìn)電機(jī)驅(qū)動(dòng)IC、12864液晶顯示屏、旋轉(zhuǎn)編碼器、有源蜂鳴器和時(shí)鐘IC組成。其功能有,水位值得實(shí)時(shí)顯示、超預(yù)警時(shí)步進(jìn)電機(jī)的水閘控制、蜂鳴器的報(bào)警、相關(guān)時(shí)間以及狀態(tài)信息的顯示及直觀的圖標(biāo)數(shù)據(jù)顯示功能。關(guān)鍵詞: STC15F2K60S2 液位傳感器 水災(zāi)檢測(cè) 單片機(jī)AbstractWater has always been a very common but indispensable part of our lives. To a younger age, one person ca
3、nnot eat, drink, eat or live without water for daily meals, but to a large age, when the Three Gorges Water Conservancy Project in the Yangtze River had a history of Zhuge and Kongming North expeditions, soldiers were recruited to set up full-time maintenance and management of Dujiangyan. Today is 1
4、952. The South-to-North Water Diversion Project proposed by Chairman Nian Mao during his inspection of the Yellow River was closely related to water, or water conservancy projects and water treatment. Similarly, this graduation project is also developed around water.The hardware system is composed o
5、f STC15F2K60S2 microcontroller, liquid level sensor, ultrasonic sensor, stepper motor, stepper motor driver IC, 12864 LCD display, rotary encoder, active buzzer and clock IC. Its functions are: the water level is worth real-time display, the sluice control of the stepper motor when ahead, the buzzer
6、 alarm, the display of related time and status information, and the intuitive icon data display function.Keywords: STC15F2K60S2 liquid level sensor flood detection microcontrolle目 錄第一章 緒論11.1 課題的背景、意義和前景11.2 水災(zāi)液位檢測(cè)系統(tǒng)的簡(jiǎn)介1第二章 系統(tǒng)結(jié)構(gòu)設(shè)計(jì)22.1 水災(zāi)液位檢測(cè)系統(tǒng)的結(jié)構(gòu)以及設(shè)計(jì)22.2 單片機(jī)的選型理由及其性能評(píng)估22.3 液位傳感器的選型和性能評(píng)估32.4 通訊模塊的選型和
7、性能評(píng)估52.5 水閘電機(jī)的選型和性能評(píng)估62.6 顯示屏的選型和性能評(píng)估72.7 時(shí)鐘模塊選型和性能評(píng)估72.8 輸入模塊選型和性能評(píng)估92.9 開(kāi)發(fā)平臺(tái)的選型和性能評(píng)估92.10 系統(tǒng)結(jié)構(gòu)設(shè)計(jì)小結(jié)9第三章 硬件系統(tǒng)的分析與設(shè)計(jì)103.1 基于STC15F2K60S2的最小系統(tǒng)設(shè)計(jì)103.2 LCD12864液晶屏幕電路設(shè)計(jì)113.3 液位傳感器的電路設(shè)計(jì)133.4 ESP01S無(wú)線(xiàn)傳輸通訊模塊的電路設(shè)計(jì)143.5 步進(jìn)電機(jī)驅(qū)動(dòng)電路的設(shè)計(jì)153.6 實(shí)時(shí)時(shí)鐘模塊的相關(guān)電路及其設(shè)計(jì)163.7 硬件系統(tǒng)的分析與設(shè)計(jì)小結(jié)17第四章 軟件系統(tǒng)分析與設(shè)計(jì)184.1 水災(zāi)液位檢測(cè)系統(tǒng)的軟件設(shè)計(jì)184.2
8、 定時(shí)器初始化函數(shù)的分析184.3 串口初始化函數(shù)的分析194.4 LCD12864相關(guān)函數(shù)的分析194.5 軟件系統(tǒng)的分析與設(shè)計(jì)小節(jié)20第五章 系統(tǒng)調(diào)試215.1 單片機(jī)測(cè)試215.2 液位傳感器相關(guān)測(cè)試215.3 超聲波模塊相關(guān)測(cè)試225.4 步進(jìn)電機(jī)及其驅(qū)動(dòng)板硬件測(cè)試235.5 實(shí)物圖展示235.6 系統(tǒng)調(diào)試小結(jié)24結(jié)論25參考文獻(xiàn)26致謝27廣東東軟學(xué)院本科生畢業(yè)設(shè)計(jì)(論文)第一章 緒論1.1 課題的背景、意義和前景從大事到小事,又或者是從古代到現(xiàn)代,水一直都是與我們的生活形影不離。有時(shí)候水看起來(lái)潤(rùn)物無(wú)聲,但有時(shí)候卻又能卷起滔天巨浪,所以聰明的人們很早的就意識(shí)到要對(duì)水資源進(jìn)行管理和治理
9、。古代時(shí)候人們通過(guò)定時(shí)觀測(cè),人聲傳遞等方式,對(duì)水源地的狀態(tài)進(jìn)行的觀測(cè)以及記錄。但這樣的效率十分低下,而且準(zhǔn)確度是并不理想?,F(xiàn)如今的人們對(duì)水資源信息的掌握尤為重視,因?yàn)樗Y源不僅用于生活的方方面面,水資源還會(huì)對(duì)工業(yè)、交通運(yùn)輸、農(nóng)業(yè)等方面產(chǎn)生很大的影響。所以每個(gè)國(guó)家都是希望能盡可能多的,盡可能準(zhǔn)確的掌握水資源的相關(guān)信息。做好水位信息的統(tǒng)計(jì)和檢測(cè),可以讓人們?cè)诤禐?zāi)時(shí)及時(shí)調(diào)配水源,在洪災(zāi)的時(shí)候及時(shí)遷移保護(hù)財(cái)產(chǎn)和生命。而在微處理器快速發(fā)展以及相關(guān)配套傳感器日益完善的現(xiàn)在,及時(shí)、高效、大面積、準(zhǔn)確的測(cè)量和數(shù)據(jù)獲取已經(jīng)變成了可能。而這些,也正好符合了水位洪災(zāi)檢測(cè)的需求和特性。而在現(xiàn)如今的市場(chǎng)上,功能單一、精
10、度較差的產(chǎn)品很快就會(huì)被市場(chǎng)所淘汰。所以我們需要的是一個(gè)成本低、便于投入生產(chǎn)運(yùn)用的水災(zāi)液位檢測(cè)系統(tǒng)。而在上述背景下,本課題設(shè)計(jì)了一款多傳感器采樣算法優(yōu)化數(shù)值的水災(zāi)液位檢測(cè)系統(tǒng)。1.2 水災(zāi)液位檢測(cè)系統(tǒng)的簡(jiǎn)介水災(zāi)液位檢測(cè)系統(tǒng)是一種通過(guò)相關(guān)液位傳感器對(duì)數(shù)值采樣微處理器對(duì)數(shù)值做處理分析,從而做到對(duì)水源進(jìn)行觀測(cè)、預(yù)警、和提前泄洪的電子產(chǎn)品。水位檢測(cè)系統(tǒng)中的液位傳感器要求十分高,若要研制一個(gè)成本低、而且簡(jiǎn)易便于投入生產(chǎn)運(yùn)用的水位檢測(cè)系統(tǒng),其應(yīng)該有如下特點(diǎn):(1) 傳感器造價(jià)親民,而且要便于后期的更換和維修。(2) 處理器功耗控制良好,穩(wěn)定性強(qiáng)。(3) 數(shù)據(jù)采集迅速且穩(wěn)定。(4) 提供接口方便數(shù)據(jù)導(dǎo)出和后期
11、維護(hù)升級(jí)。(5) 具有直觀明顯的信息提示和相關(guān)指示。(6) 方便操作容易上手。(7) 提供實(shí)時(shí)時(shí)鐘和水資源信息的調(diào)取顯示,便于人工觀察時(shí)記錄相關(guān)信息。第二章 系統(tǒng)結(jié)構(gòu)設(shè)計(jì)2.1 水災(zāi)液位檢測(cè)系統(tǒng)的結(jié)構(gòu)以及設(shè)計(jì)此次設(shè)計(jì)的水災(zāi)液位檢測(cè)系統(tǒng)打算設(shè)計(jì)如下功能:(1)大屏顯示,能顯示日常的信息界面,也能顯示相關(guān)數(shù)據(jù)的折線(xiàn)圖以及(2)特定時(shí)間內(nèi)的數(shù)據(jù)表格,同時(shí)能顯示實(shí)時(shí)時(shí)間等的信息。(3)能存儲(chǔ)一定量的時(shí)間、水資源、位置等相關(guān)信息。(4)留有信息傳輸接口,方便更新系統(tǒng)以及對(duì)相應(yīng)的水資源數(shù)據(jù)的提取,還能通過(guò)接口直接對(duì)系統(tǒng)進(jìn)行相應(yīng)的設(shè)置。(5)具有相應(yīng)的報(bào)警系統(tǒng),在超過(guò)設(shè)定的低水位以及高水位閥值時(shí)蜂鳴器會(huì)發(fā)出
12、聲音警報(bào)。(6)在超過(guò)警戒值時(shí),不單會(huì)提示用戶(hù),還能主動(dòng)利用電機(jī)控制開(kāi)閘,做到提前控制水量。2.2 單片機(jī)的選型理由及其性能評(píng)估由于考慮到我們需要設(shè)計(jì)的是一個(gè)成本低、簡(jiǎn)易便于投入生產(chǎn)運(yùn)用的水災(zāi)液位檢測(cè)系統(tǒng),且所以綜合參考相關(guān)的信息后,選擇使用宏晶科技有限公司(以下簡(jiǎn)稱(chēng)STC)的STC15F2K60S2作為主控IC。STC15F2K60S2是STC生產(chǎn)的單時(shí)鐘/機(jī)器周期(1T)的單片機(jī),是高速/高可靠/低功耗/超強(qiáng)抗干擾的新一代8051單片機(jī),其內(nèi)部有:(1)高精度R/C時(shí)鐘,1 %溫飄( -40C+85C),常溫下溫飄5,內(nèi)部時(shí)鐘從 5MHz35MHz可選(2)高可靠復(fù)位,8級(jí)可選復(fù)位門(mén)檻電壓
13、,徹底省掉外部復(fù)位電路(3)用戶(hù)應(yīng)用程序空間:60K字節(jié)(4)片上集成2048字節(jié)SRAM(5)大容量片內(nèi)EEPROM,擦寫(xiě)次數(shù)10萬(wàn)次以上(6)共8通道10位高速ADC,速度可達(dá)30萬(wàn)次/秒,3路定時(shí)器還可當(dāng)3路PWM或D/A使用(7)無(wú)需專(zhuān)用仿真器 可通過(guò)串口(RxD/P3.0, TxD/P3.1)直接下載用戶(hù)程序,數(shù)秒即可完成一片(8)共 6個(gè)定時(shí)器,2個(gè)16位可重裝載定時(shí)器兼容普通8051的定時(shí)器T0/T1,并可實(shí)現(xiàn)時(shí)鐘輸出,3路CCP還可實(shí)現(xiàn)3個(gè)定時(shí)器(9)高速SPI串行通信端口(10)兩個(gè)完全獨(dú)立的串口/雙串口,分時(shí)切換可當(dāng)4個(gè)串口使用(11)先進(jìn)的指令集結(jié)構(gòu),兼容普通8051指令
14、集,有硬件乘法/除法指令(12)通用I/O口(42個(gè)),復(fù)位后為: 準(zhǔn)雙向口/弱上拉(普通8051傳統(tǒng)I/O口) 可設(shè)置成四種模式圖2.1 單片機(jī)內(nèi)部其中,高精度的R/C時(shí)鐘可以讓我們免于外接一個(gè)晶振,節(jié)省成本的同時(shí)也能減少因外接器件而帶來(lái)的風(fēng)險(xiǎn),增加系統(tǒng)的穩(wěn)定性,同時(shí),高可靠的復(fù)位也能節(jié)省外部電路成本。而且,單片機(jī)還提供了大容量的SRAM、EEPROM和用戶(hù)應(yīng)用程序空間,這樣在存放代碼、編寫(xiě)液晶屏字庫(kù)或圖像、存放采集到的相關(guān)信息時(shí)都能提供很大的幫助。單片機(jī)自帶的高速ADC可以方便而且精準(zhǔn)的采集相關(guān)傳感器的數(shù)據(jù),省去我們外接一個(gè)ADC采樣芯片的成本。而且,豐富的IO口數(shù)量和多種的IO口模式也為
15、我們連接更多的外設(shè)提供了便利。不僅如此,通訊接口也同樣的豐富,比如十分方便的串口直接下載用戶(hù)程序、高速的SPI串行接口都能讓用戶(hù)很方便的連接上系統(tǒng)進(jìn)行相關(guān)的操作。與此同時(shí),先進(jìn)的指令集結(jié)構(gòu)和硬件的乘法/除法指令可以幫助我們對(duì)采集到的數(shù)據(jù)進(jìn)行相關(guān)的算法處理,獲得更精準(zhǔn)的數(shù)據(jù)。綜上所述,STC15F2K60S2單片機(jī)能滿(mǎn)足本次設(shè)計(jì)的需求,如圖2.1。2.3 液位傳感器的選型和性能評(píng)估目前市面上的液位傳感器高精度的價(jià)格不菲,考慮的設(shè)計(jì)的需求,此次需要的是一個(gè)成本低、便于運(yùn)用的傳感器。所以綜合考慮下決定用雙傳感器取值,然后通過(guò)算法消除誤差。傳感器方面,決定用的分別是超聲波以及輸出模擬量的水滴識(shí)別檢測(cè)傳
16、感器。Water Sensor水位傳感器是一款簡(jiǎn)單易用、性?xún)r(jià)比較高的水位/水滴識(shí)別檢測(cè)傳感器,其是通過(guò)具有一系列的暴露的平行導(dǎo)線(xiàn)線(xiàn)跡測(cè)量其水滴/水量大小從而判斷水位。輕松完成水量到模擬信號(hào)的轉(zhuǎn)換,輸出的模擬值可以直接被單片機(jī)讀取,達(dá)到水位報(bào)警的功效。水滴識(shí)別檢測(cè)傳感器介紹,如圖2.2: 工作電壓:DC3-5V 工作電流:小于20mA 傳感器類(lèi)型:模擬 檢測(cè)面積:40mm x 16mm 工作溫度:10-30 工作濕度:10%-90%無(wú)凝結(jié) 重量:3.5g 尺寸:62mm x 20mm x 8mm圖2.2 水滴識(shí)別檢測(cè)傳感器US-025超聲波模塊是高性能、低成本的超聲波測(cè)距模塊;模塊采用高性?xún)r(jià)比超
17、聲波測(cè)距芯片CS100;測(cè)距可達(dá)6米以上,測(cè)距精度高;測(cè)量一致性好,測(cè)距穩(wěn)定可靠。US-025超聲波測(cè)距模塊可實(shí)現(xiàn)2cm6m的非接觸測(cè)距功能,工作電壓為3V-5.5V,工作電流為5.3mA,支持GPIO通信模式,工作穩(wěn)定可靠。US-025超聲波模塊介紹如圖2.3: 工作電壓:DC 3V-5.5V 工作電流:5.3mA 工作溫度:-40-85 輸出方式:GPIO 感應(yīng)角度:小于15度 探測(cè)距離:2cm-600cm 探測(cè)精度:0.1cm+1%圖2.3 超聲波模塊2.4 通訊模塊的選型和性能評(píng)估由于現(xiàn)在的產(chǎn)品和設(shè)備都已經(jīng)進(jìn)入了無(wú)線(xiàn)信息傳輸?shù)臅r(shí)代,所以此次設(shè)計(jì)加入了一個(gè)無(wú)線(xiàn)通訊的模塊用于傳輸采集到的數(shù)
18、據(jù)、控制系統(tǒng)或者用于更新系統(tǒng)的相關(guān)設(shè)置。綜合考慮了單片機(jī)的接口、通用性以及相關(guān)開(kāi)發(fā)和設(shè)置的難易程度后,選用了ESP-01S串口WIFI無(wú)線(xiàn)模塊。ESP-01S模塊的優(yōu)勢(shì)有:價(jià)格低、功能強(qiáng)大內(nèi)部跑LWIP協(xié)議、支持三種模式:AP,STA,AP+STA 共存模式、完善簡(jiǎn)潔高效的AT指令、開(kāi)發(fā)更簡(jiǎn)單。ESP-01S串口WIFI無(wú)線(xiàn)模塊介紹,如圖2.4: 射頻芯片:ESP8266EX 無(wú)線(xiàn)標(biāo)準(zhǔn):802.11 B/G/N WIFI模式:STATION/AP/STATION+AP 載波頻率:2.4G 通訊距離:100M 發(fā)射頻率:20dbm 天線(xiàn):PCB板載天線(xiàn) 尺寸:24.8mm*14.3mm 處理器:
19、TENSILICAL106 32位微控制器 外圍總線(xiàn):UART/SDIO/SPI/I2C/I2S/IR遙控/GPIO/ADC/PWM 工作電壓:3.0V-3.6V 工作電流:平均電流80mA 工作溫度:-40-125 環(huán)境溫度范圍:-40-125 用戶(hù)配置:AT+指令集,云端服務(wù)器,Android/OS APP 網(wǎng)絡(luò)協(xié)議:IPV4、TCP/UDP/HTTP/FTP 安全機(jī)制:WPA/WPA2 加密類(lèi)型:WEP/TKIP/AES圖2.4 通訊模塊2.5 水閘電機(jī)的選型和性能評(píng)估水閘電機(jī)的選擇主要是要能夠在系統(tǒng)通知用戶(hù)信息的同時(shí),提前的進(jìn)行相關(guān)的操作,從而達(dá)到降低造成的風(fēng)險(xiǎn)和損失的幾率。電機(jī)的選型
20、主要是需要一定的精度,因?yàn)樗l的開(kāi)合不僅僅是單純的打開(kāi),還需要控制打開(kāi)的程度,在并非特殊的情況下,還能做到部分的打開(kāi)水閘提前釋放一部分壓力。而在這些條件的限制下,這次選擇的是減速步進(jìn)電機(jī)28BYJ48。同時(shí)還有其配套的驅(qū)動(dòng)板ULN2003。減速步進(jìn)電機(jī)28BYJ48介紹,如圖2.5:圖2.5 28BYJ48 額定電壓:5VDC 空載牽入頻率:600Hz 相數(shù):4 空載牽出頻率:1000Hz 減速比:1/64 牽入轉(zhuǎn)矩:34.3mN.m(120Hz) 步距角:5.625 /64 自定位轉(zhuǎn)矩:34.3mN.m 直流電阻:2007%(25) 溫升:10M(500V) 噪聲: 定時(shí)器初始化函數(shù) = 串
21、口初始化函數(shù) = 模數(shù)轉(zhuǎn)換初始化函數(shù) = 外部中斷初始化函數(shù) = EEPROM初始化函數(shù) = LCD12864初始化函數(shù) = ESP01S初始化函數(shù) = 時(shí)鐘模塊初始化函數(shù)循環(huán)部分:超聲波模塊數(shù)據(jù)讀取函數(shù) = 液位傳感器AD數(shù)據(jù)讀取函數(shù) = 數(shù)據(jù)融合算法函數(shù) = 時(shí)鐘模塊數(shù)據(jù)讀取函數(shù) = EEPROM存取函數(shù) = 傳感器狀態(tài)獲取函數(shù) = 旋轉(zhuǎn)編碼器信息讀取函數(shù) = LCD12864顯示函數(shù)簡(jiǎn)略的程序流程圖就是這樣,詳細(xì)的內(nèi)容在下面分點(diǎn)舉例說(shuō)明。4.2 定時(shí)器初始化函數(shù)的分析這里的定時(shí)器初始化函數(shù)使用的官方提供的庫(kù)函數(shù)文件,方法是先對(duì)一個(gè)結(jié)構(gòu)體填充想要對(duì)定時(shí)器初始化的參數(shù)內(nèi)容,然后把相關(guān)的參數(shù)打
22、包提供給一個(gè)配置系統(tǒng)定時(shí)器的函數(shù),從而達(dá)到初始化相關(guān)定時(shí)器的效果,下面就對(duì)相關(guān)函數(shù)進(jìn)行分析:void Timer_config(void);這個(gè)函數(shù)的作用是配置所有定時(shí)器的相關(guān)參數(shù),其在內(nèi)部定義了一個(gè)結(jié)構(gòu)體,用以存放初始化的相關(guān)參數(shù),用戶(hù)想要更改配置時(shí)只需要對(duì)結(jié)構(gòu)體的內(nèi)容進(jìn)行更改就能改變配置。u8 Timer_Inilize(u8 TIM, TIM_InitTypeDef *TIMx)這個(gè)函數(shù)的作用是把上面配置好的定時(shí)器相關(guān)參數(shù)傳遞進(jìn)來(lái),在此函數(shù)內(nèi)對(duì)單片機(jī)相應(yīng)的寄存器進(jìn)行配置操作。typedef structu8TIM_Mode;u8TIM_Polity;u8TIM_Interrupt;u8T
23、IM_ClkSource;u8TIM_ClkOut;u16TIM_Value;u8TIM_Run; TIM_InitTypeDef;這個(gè)結(jié)構(gòu)體內(nèi)存放的就是用于初始化相關(guān)定時(shí)器的參數(shù),其中有:工作模式、優(yōu)先級(jí)設(shè)置、中斷允許、時(shí)鐘源、可編程時(shí)鐘輸出、裝載初值和是否運(yùn)行。4.3 串口初始化函數(shù)的分析串口的配置方法與定時(shí)器類(lèi)似,所以程序的函數(shù)也比較相似。void UART_config(void);這個(gè)函數(shù)同樣是配置所有串口的相關(guān)參數(shù),其在內(nèi)部定義了一個(gè)結(jié)構(gòu)體。u8 USART_Configuration(u8 UARTx, COMx_InitDefine *COMx);串口的設(shè)置函數(shù),作用是把配置好
24、參數(shù)的結(jié)構(gòu)體里的相關(guān)信息寫(xiě)入對(duì)應(yīng)的寄存器中。void UART1_int (void) interrupt UART1_VECTOR;串口的中斷函數(shù),當(dāng)發(fā)送完成或接收數(shù)據(jù)完畢后,就會(huì)觸發(fā)這個(gè)函數(shù)。typedef struct u8id;u8TX_read; u8TX_write; u8B_TX_busy;u8 RX_Cnt; u8RX_TimeOut; u8B_RX_OK; COMx_Define; typedef struct u8UART_Mode; u8UART_BRT_Use; u32UART_BaudRate; u8Morecommunicate; u8UART_RxEnable;
25、u8BaudRateDouble; u8UART_Interrupt; u8UART_Polity; u8UART_P_SW; u8UART_RXD_TXD_Short; COMx_InitDefine;用于存放串口相關(guān)數(shù)據(jù)的兩個(gè)結(jié)構(gòu)體。4.4 LCD12864相關(guān)函數(shù)的分析12864的操作相對(duì)復(fù)雜,其使用的函數(shù)如下:/檢查L(zhǎng)CD忙狀態(tài)/lcd_busy為1時(shí),忙,等待。lcd-busy為0時(shí),閑,可寫(xiě)指令與數(shù)據(jù)。bit Lcd_Busy();/寫(xiě)指令數(shù)據(jù)到LCD/RS=L,RW=L,E=高脈沖,D0-D7=指令碼。void Lcd_WriteCMD(unsigned char cmd);/寫(xiě)
26、顯示數(shù)據(jù)到LCD/RS=H,RW=L,E=高脈沖,D0-D7=數(shù)據(jù)。void Lcd_WriteDAT(unsigned char dat);/清除繪圖內(nèi)存里的所有內(nèi)容void Lcd_DrawClear();/顯示字符串函數(shù)可以輸入變量,也可以直接雙引號(hào)輸入字符串void Lcd_DisplayStr(unsigned char *str);/顯示一個(gè)16*16區(qū)域的圖片,可以選定位置 X = 行 Y = 列 X: 0x80 - 0x8F Y: 0x80 = 0xA0void Lcd_Draw16X16(const unsigned char *ptr, unsigned char X, u
27、nsigned char Y);/在16*16的格子里顯示兩個(gè)數(shù)字void Lcd_DisplayNum(const unsigned char *ptr1, const unsigned char *ptr2, unsigned char X, unsigned char Y);/水位指示圖片顯示void Lcd_DisplayWaterDepths(unsigned char i);/ 設(shè)定顯示位置void Lcd_SetPos(unsigned char X, unsigned char Y);/LCD12864初始化函數(shù)void Lcd_Init();4.5 軟件系統(tǒng)的分析與設(shè)計(jì)小節(jié)在
28、軟件系統(tǒng)的設(shè)計(jì)上,清晰的邏輯是很重要的,因?yàn)榍逦倪壿嬁梢宰屇闵僮吆芏鄰澛?。例如:延時(shí)函數(shù)的長(zhǎng)短是可能會(huì)導(dǎo)致原件采集數(shù)據(jù)的時(shí)效性問(wèn)題。又或者中斷的優(yōu)先級(jí)也可能會(huì)影響我們得到數(shù)據(jù)的先后程度。不僅如此,在需要用到數(shù)學(xué)計(jì)算和數(shù)據(jù)處理時(shí)候,我們還要注意變量的大小以及變量之間的賦值、傳遞、移位之間的關(guān)系,因?yàn)檫@些如果處理不當(dāng),很容易就導(dǎo)致數(shù)據(jù)的丟失或者存儲(chǔ)位置錯(cuò)誤,這樣哪怕我們采集到的數(shù)據(jù)是正確的,也的不出結(jié)果。除了清晰的邏輯以外,工整的代碼數(shù)據(jù)風(fēng)格和格式也能幫你在后期代碼的維護(hù)和更改上提供很大的幫助,我們要養(yǎng)成經(jīng)常在代碼和自己命名的變量后面增加備注,這樣也是方便自己。而且,變量的命名要盡可能的易讀和簡(jiǎn)
29、單明了,這樣養(yǎng)成的規(guī)范才能更好的編程。第五章 系統(tǒng)調(diào)試5.1 單片機(jī)測(cè)試由于STC15F2K60S2并沒(méi)有在線(xiàn)調(diào)試的功能,所以只能借助串口0輸出相關(guān)的信息到電腦來(lái)輔助調(diào)試。又或者在進(jìn)行那某一步的時(shí)候通過(guò)串口輸出當(dāng)前IO口的高低電平狀態(tài),以此來(lái)判斷單片機(jī)的工作和配置是否正常。測(cè)試的方法通常是把編寫(xiě)一段全部IO口定時(shí)翻轉(zhuǎn)的代碼燒寫(xiě)進(jìn)單片機(jī)后,給單片機(jī)通上電源,然后使用示波器,把單片機(jī)的IO口逐一測(cè)量,測(cè)量中正常的IO口是電平伏數(shù)高度一致的,并且高低電平定時(shí)翻轉(zhuǎn)。一般損壞的IO口呈現(xiàn)出來(lái)的是電平伏數(shù)高度變低、一直處于高電平或者低電平、無(wú)輸出等非正常IO口反映出來(lái)的現(xiàn)象,見(jiàn)圖5.1:圖5.1 萬(wàn)用表調(diào)
30、試5.2 液位傳感器相關(guān)測(cè)試要測(cè)試液位傳感器,需要不斷的讀取模塊的AD值,如果AD值沒(méi)有發(fā)生突變或者大幅度變化,那說(shuō)明液位傳感器的工作室正常的。測(cè)試方法,用單片機(jī)直接讀取液位傳感器的AD值,把液位傳感器逐一深度插入自來(lái)水中,切勿使用純凈水,純凈水和蒸餾水內(nèi)無(wú)電子,無(wú)法使用本次設(shè)計(jì)中使用的液位傳感器,液位傳感器插入不同的水深,AD值返回的數(shù)會(huì)有不同,水深較淺時(shí)AD值比較小,水位越深A(yù)D值越大,圖5.2所示。圖5.2 AD值變化5.3 超聲波模塊相關(guān)測(cè)試由于超聲波模塊的特性,我們可以知道超聲波所測(cè)得的距離是有一定范圍的。所以當(dāng)我們做測(cè)試的時(shí)候就需要看看在超出測(cè)量范圍后,系統(tǒng)能否正確的判斷超出了測(cè)試
31、范圍,同時(shí)還要看看測(cè)試出來(lái)的數(shù)據(jù)波動(dòng)范圍會(huì)不會(huì)過(guò)大,會(huì)不會(huì)有異常的數(shù)據(jù)產(chǎn)生。測(cè)試的方法是通過(guò)超聲波模塊連接單片機(jī)后,編寫(xiě)一段測(cè)試程序,程序的主要內(nèi)容是讀取超聲波返回的數(shù)值,并且轉(zhuǎn)化回厘米進(jìn)制以便查看,然后單片機(jī)接上串口,通過(guò)單片機(jī)串口向電腦傳回的數(shù)據(jù)讀出超聲波返回的數(shù)值是否正確。超聲波在運(yùn)輸?shù)倪^(guò)程中經(jīng)常會(huì)出現(xiàn)震蕩傳感器的損壞,只有單邊起震,導(dǎo)致讀取的數(shù)據(jù)是錯(cuò)誤的,所以拿到超聲波傳感器之后,測(cè)試是非常重要的,不然后期調(diào)試的時(shí)候,無(wú)法得知是代碼編寫(xiě)的錯(cuò)誤還是傳感器的損壞,圖5.3、5.4所示。圖5.3 超聲波測(cè)試1圖5.4 超聲波測(cè)試25.4 步進(jìn)電機(jī)及其驅(qū)動(dòng)板硬件測(cè)試在系統(tǒng)的設(shè)計(jì)中,步進(jìn)電機(jī)是要
32、用于承載或拉取重物的,所以這里就需要測(cè)試步進(jìn)電機(jī)的扭矩和承載能力。除此以外,我們還要測(cè)試步進(jìn)電機(jī)的轉(zhuǎn)速和代碼數(shù)量上的關(guān)系和脈沖數(shù)量對(duì)應(yīng)轉(zhuǎn)動(dòng)角度的關(guān)系。測(cè)試過(guò)程,利用步進(jìn)電機(jī)驅(qū)動(dòng)器中給出的數(shù)據(jù)算出,步進(jìn)電機(jī)轉(zhuǎn)動(dòng)一圈的頻率,然后寫(xiě)一段測(cè)試代碼讓步進(jìn)電機(jī)旋轉(zhuǎn)一圈。如果步進(jìn)電機(jī)沒(méi)有在上電測(cè)試時(shí)旋轉(zhuǎn)一圈,即有可能是損壞,這種情況有可能是丟步了,如圖5.5。圖5.5 步進(jìn)電機(jī)測(cè)試5.5 實(shí)物圖展示圖5.6 實(shí)物圖5.6 系統(tǒng)調(diào)試小結(jié)在系統(tǒng)調(diào)試方面,由于硬件的數(shù)據(jù)是存在單片機(jī)內(nèi)部的,在STC單片機(jī)沒(méi)有仿真器的情況下,我們只能盡可能的在相應(yīng)的語(yǔ)句后面加入串口輸出的語(yǔ)句,這樣在執(zhí)行到這里時(shí)就能實(shí)時(shí)的通過(guò)串口獲取
33、到此時(shí)這個(gè)變量的值。在使用這個(gè)方法時(shí),我們需要先把單片機(jī)對(duì)電腦的串口通訊程序處理好,這也是我在系統(tǒng)調(diào)試時(shí)最先要做的事情。除了借助單片機(jī)與電腦之間的串口通訊,我們也可以借助液晶顯示屏,在液晶顯示屏LCD上實(shí)時(shí)顯示需要的數(shù)據(jù),這樣也是一種處理的方案。結(jié)論通過(guò)本次畢業(yè)設(shè)計(jì)的水災(zāi)液位檢測(cè)系統(tǒng),讓我更加深入地去理解了單片機(jī)的操作,并且對(duì)單片機(jī)有了不同的理解。在完成本次設(shè)計(jì)之前,我對(duì)單片機(jī)的理解僅僅停留在點(diǎn)亮LED燈的層面上,從沒(méi)真正地去試驗(yàn)單片機(jī)操控其他外圍電路和元器件,如水位傳感器和步進(jìn)電機(jī)這種在我眼里很高大上的元器件?,F(xiàn)在我對(duì)這類(lèi)元器件的操作已經(jīng)知道了如何學(xué)習(xí)去使用并且很好的去利用元器件來(lái)完成自己的
34、想法,就如步進(jìn)電機(jī)在使用之前,我一直以為只要通上5伏電源,然后用單片機(jī)簡(jiǎn)單輸出單平信號(hào)就可以完成。然而在實(shí)際操作中,我發(fā)現(xiàn)并非如此,步進(jìn)電機(jī)需要用到步進(jìn)電機(jī)的驅(qū)動(dòng)器,驅(qū)動(dòng)器里是有邏輯芯片的,通過(guò)單片機(jī)發(fā)出信號(hào)去控制邏輯芯片,再通過(guò)邏輯芯片發(fā)出的信號(hào)去控制步進(jìn)電機(jī),在詳細(xì)閱讀步進(jìn)電機(jī)和步進(jìn)電機(jī)驅(qū)動(dòng)器的使用說(shuō)明中,我還發(fā)現(xiàn)了步進(jìn)電機(jī)是可以非常精準(zhǔn)高效來(lái)控制的。在電路方面,通過(guò)這次畢設(shè)的鍛煉,我對(duì)電路方面也有了非常大的進(jìn)步。對(duì)于控制電路而言,單片機(jī)只是整塊電路板的大腦,其他的元器件就是單片機(jī)的手足,鏈接的銅線(xiàn)就是單片機(jī)的血管,在設(shè)計(jì)電路的時(shí)候,必須要認(rèn)真謹(jǐn)慎,不然在之后焊接電路板的時(shí)候就會(huì)因?yàn)殡娐窙](méi)畫(huà)好而造成很多不必要的麻煩,就如本次畢設(shè)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 黃水瘡的臨床護(hù)理
- 《使用布局管理器》課件
- 頜骨膨隆的臨床護(hù)理
- 減鹽控壓培訓(xùn)課件
- 函數(shù)知識(shí)點(diǎn)復(fù)習(xí)課件
- 孕期肚子陣痛的健康宣教
- 孕期白帶黏稠的健康宣教
- 變應(yīng)性肉芽腫血管炎的健康宣教
- 絕經(jīng)的健康宣教
- 喉黏液囊腫的健康宣教
- 建設(shè)工程監(jiān)理概論(PPT)
- 人教版五下品德與社會(huì)神奇的中醫(yī)教學(xué)課件
- 土地整治業(yè)務(wù)培訓(xùn)
- 澳大利亞教育質(zhì)量保障框架ppt課件
- 供應(yīng)鏈環(huán)境下新寶公司庫(kù)存管理優(yōu)化
- 熱力學(xué)第四章熱力學(xué)第二定律(me)(1)
- 公園綠化養(yǎng)護(hù)景觀綠化維護(hù)項(xiàng)目迎接重大節(jié)會(huì)活動(dòng)的保障措施
- 調(diào)機(jī)品管理作業(yè)規(guī)范
- 流行病學(xué)實(shí)習(xí)指導(dǎo)一答案
- 數(shù)據(jù)庫(kù)及數(shù)據(jù)倉(cāng)庫(kù)精要Adhoc報(bào)表系統(tǒng)
- 初高中英語(yǔ)教學(xué)銜接結(jié)題報(bào)告
評(píng)論
0/150
提交評(píng)論