



版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、課程設(shè)計(jì)名稱:單片機(jī)程序設(shè)計(jì)基礎(chǔ)題目:智能澆花裝置程序設(shè)計(jì)學(xué)期: 2013-2014 學(xué)年第二學(xué)期專業(yè):測控技術(shù)與儀器班級(jí):測控 11-1姓名:學(xué)號(hào):指導(dǎo)教師:日 30 月 5 年 2014 完成日期:智能澆花裝置程序設(shè)計(jì)遼寧工程技術(shù)大學(xué)課 程學(xué)期專業(yè)課程名稱論文題目評(píng)定指標(biāo)設(shè)計(jì)成績評(píng)定表) 二 2013-2014( 開姓名始開始測控技術(shù)與儀器班級(jí)測控 11-1系統(tǒng)初始化InitWaterLe_key1=1;單片機(jī)程序設(shè)計(jì)基礎(chǔ)WaterLe_key2=1;智能澆花裝置程序設(shè)計(jì)系統(tǒng)全狀態(tài)檢測Statefulinspection調(diào)用 DS18B20、DHT11、AD轉(zhuǎn)換函數(shù),分別讀出采樣值評(píng)定指標(biāo)
2、 系統(tǒng)操控分值溫度報(bào)得分System control警是知識(shí)創(chuàng)新性 溫度低于警戒20 標(biāo)志位=1值?理論正確性系統(tǒng)數(shù)據(jù)全顯20示 Status display否內(nèi)容難易性 水箱水位是否最15 是水箱上水標(biāo)=1低?志位結(jié)合實(shí)際性否10知識(shí)掌握程度15 是花盆澆水書寫規(guī)范性 土壤濕度是否最10 標(biāo)志位=1低?工作量 否10總成績100評(píng)語:任課教時(shí)2014年 6月 8 日間師備注1智能澆花裝置程序設(shè)計(jì)課程設(shè)計(jì)任務(wù)書一、設(shè)計(jì)題目智能澆花裝置系統(tǒng)程序設(shè)計(jì)二、設(shè)計(jì)任務(wù)設(shè)計(jì)在單片機(jī)為核心的前提下,完成對(duì)花盆的澆水,對(duì)水箱的補(bǔ)水以及低溫報(bào)警功能。通過使用繼電器,溫度傳感器,濕度傳感器等元件,編寫合適的驅(qū)動(dòng)程
3、序進(jìn)行控制,完成裝置的全部功能。三、設(shè)計(jì)計(jì)劃 本設(shè)計(jì)共 1 周。第 1 天:針對(duì)選題查資料,確定設(shè)計(jì)方案;第 2 天:方案分析比較,確定程序的邏輯順序,執(zhí)行步驟;通過網(wǎng)上搜索,學(xué)習(xí)并理解部分芯片的程序操作。第 3 天:編寫主程序流程圖和軟件程序;第 4 天:對(duì)編寫程序進(jìn)行語法和邏輯糾錯(cuò),并下載運(yùn)行;第 5 天:編寫整理設(shè)計(jì)報(bào)告。四、設(shè)計(jì)要求1、繪制軟件流程圖并利用C 語言編寫軟件程序;2、形成設(shè)計(jì)報(bào)告。指導(dǎo)教師:教研室主任:2014年 5月 26 日2智能澆花裝置程序設(shè)計(jì)目錄1、系統(tǒng)程序功能及設(shè)計(jì)思路 .41.1 系統(tǒng)主要功能 .4程序設(shè)計(jì)思路 .1.242、主程序及其他程序的設(shè).6計(jì)2.1
4、主程序流程設(shè)計(jì) .62.2 .系統(tǒng)狀態(tài)檢測程7序2.3 .系統(tǒng)操控程9序2.4 數(shù)據(jù)顯示程序 .113、調(diào)試 . 143.1 程序邏輯檢查及語法校正 .143.2程序編譯及裝載.144、總結(jié) . 155、設(shè)計(jì)體會(huì) .16參考文獻(xiàn) . 173智能澆花裝置程序設(shè)計(jì)1、系統(tǒng)程序功能及設(shè)計(jì)思路1.1 系統(tǒng)主要功能智能澆花裝置主要功能如下:1、檢測土壤濕度并自動(dòng)澆水,通過電磁閥控制花盆內(nèi)水量2、通過繼電器控制水泵進(jìn)行自動(dòng)補(bǔ)水功能。3、低溫報(bào)警。室溫低影響花卉生長,此時(shí)需要聲音提醒。4、人機(jī)交互顯示。使用LCD5110 液晶進(jìn)行顯示。上述各個(gè)功能均有不同電路模塊進(jìn)行控制,核心芯片為 STC12C5A60S
5、2,程序代碼兼容 8051 系列單片機(jī)。1.2 程序設(shè)計(jì)思路LCD5110顯示室溫,濕度水箱水位土壤濕度單片機(jī)檢測檢測檢測繼電器花盆土壤水箱電磁閥水泵圖 1 智能澆花裝置硬件工作原理智能澆花系統(tǒng)程序語言以 C 語言為主,根據(jù)設(shè)計(jì)所實(shí)現(xiàn)的不同功能,將系統(tǒng)程序分為主程序和驅(qū)動(dòng)程序兩部分。 其中,主程序的作用包含控制邏輯的實(shí)現(xiàn)、 驅(qū)動(dòng)程序的調(diào)用及配合、 功能區(qū)分以及系統(tǒng)初始化。 驅(qū)動(dòng)程序主要為部分傳感器及芯片的通信協(xié)議、數(shù)據(jù)采集和處理程序、 液晶顯示所用字庫以及單片機(jī)操作程序, 由于驅(qū)動(dòng)程序涉及硬件電路中的各個(gè)模塊, 因此,驅(qū)動(dòng)程序比較繁多,主要有 LCD5110驅(qū)動(dòng)、 DS18b20 通信協(xié)議、
6、DHT11 通信協(xié)議、繼電器控制程序、水位檢測控制程序以及單片機(jī)中斷和 AD 轉(zhuǎn)換功能設(shè)定程序。主程序中包含 4 個(gè)子程序塊分別為系統(tǒng)初始化程序、系統(tǒng)全狀態(tài)檢測程序、系統(tǒng)操控程序和數(shù)據(jù)顯示程序。主要功能如下:1、系統(tǒng)初始化程序完成系統(tǒng)上電時(shí), 對(duì)部分芯片的初始設(shè)定、 單片機(jī)定時(shí)器中斷功能的設(shè)定、液晶初始顯示內(nèi)容以及相關(guān)標(biāo)志位的賦值。4智能澆花裝置程序設(shè)計(jì)2、全狀態(tài)檢測程序主要用于對(duì)空氣溫濕度、土壤濕度、水箱水位的檢測,當(dāng)系統(tǒng)初次通電、復(fù)位以及其他可能用于檢測時(shí), 都會(huì)使用該程序或者首先執(zhí)行該檢測程序,保證整個(gè)裝置在正常情況下工作以便完成相應(yīng)的功能。3、系統(tǒng)操控程序主要是在采集到系統(tǒng)狀態(tài)參數(shù)后,
7、針對(duì)不同情況執(zhí)行不同的功能,命令部分硬件機(jī)構(gòu)處理相應(yīng)問題如土壤濕度低, 會(huì)命令繼電器吸合使電磁閥開始澆水等。4、數(shù)據(jù)顯示程序利用 LCD5110 液晶為使用者提供有關(guān)系統(tǒng)的檢測參數(shù)如土壤濕度,空氣溫濕度等,同時(shí),在執(zhí)行某些功能時(shí),顯示提示信息,實(shí)時(shí)監(jiān)控系統(tǒng)各參數(shù)的變化。驅(qū)動(dòng)程序以 .H 文件形式存在于主函數(shù)之外,通過全局變量或者臨時(shí)標(biāo)志位,互通信息,執(zhí)行主函數(shù)的控制指令。驅(qū)動(dòng)程序因芯片而不同,通信時(shí)序千差萬別,部分驅(qū)動(dòng)程序以芯片數(shù)據(jù)手冊提供的 C 語言程序?yàn)橹?,無需自己編寫即可使用,但是,由于 STC12C5A60S2 單片機(jī)指令執(zhí)行速度快于 8051 系列,因此,驅(qū)動(dòng)程序中的通信時(shí)序要經(jīng)過調(diào)
8、試、驗(yàn)證后才能真正在本系統(tǒng)程序中使用。5智能澆花裝置程序設(shè)計(jì)2、主程序及其他程序的設(shè)計(jì)2.1 主程序流程設(shè)計(jì)圖 2 系統(tǒng)主程序流程圖系統(tǒng)主程序流程設(shè)計(jì)如圖2 所示,程序詳細(xì)內(nèi)容如下:/*/*系統(tǒng)主程序*/*/void main()Init();/ 系統(tǒng)初始化while(N)Stateful_Inspection(); / 系統(tǒng)狀態(tài)監(jiān)測System_Control();/ 系統(tǒng)操控Status_Display(); /系統(tǒng)數(shù)據(jù)顯示與提醒的忙信號(hào)檢測程序段中,當(dāng)溫的賦值操作在初始化程序內(nèi)對(duì)N 上述程序中,DS18B20 6智能澆花裝置程序設(shè)計(jì)度傳感器未有信號(hào)應(yīng)答時(shí), N=0,將不執(zhí)行 while
9、循環(huán),而是在液晶上提示傳感器未接入系統(tǒng),如果傳感器正常工作, N=1,執(zhí)行 while 循環(huán)。2.2 系統(tǒng)狀態(tài)檢測程序結(jié)束圖 3 狀態(tài)檢測程序流程圖上圖展示了系統(tǒng)對(duì)自身狀態(tài)檢測的運(yùn)行過程,其中, WaterLe_key1、WaterLe_key2分別為高低水位檢測傳感器的使能標(biāo)志位,當(dāng)程序執(zhí)行對(duì)水箱水位檢測的功能時(shí),必須對(duì)二者賦值為 1,若為 0,則關(guān)閉傳感器無法獲取信號(hào)。檢測程序獲取到狀態(tài)信息后,不用直接去調(diào)用某些功能驅(qū)動(dòng)程序,只需要將相應(yīng)的標(biāo)志位賦值即可,這樣,可使程序整體執(zhí)行效率提高, 編寫時(shí)容易發(fā)現(xiàn)錯(cuò)誤。程序中所有條件判斷語句均使用if else,程序詳細(xì)內(nèi)容如下:/*系統(tǒng)全狀態(tài)檢測*
10、/void Stateful_Inspection()7智能澆花裝置程序設(shè)計(jì)if(SI)WaterLe_key1=1;WaterLe_key2=1;calculate_T();/計(jì)算溫度T_Value=TN;/ 讀出溫度整數(shù)部分,為“溫度報(bào)警”做準(zhǔn)備RH();/ 計(jì)算濕度 RHS_Value=1000-2*ADC_Result(0); /AD 轉(zhuǎn)換輸出的是十進(jìn)制整形數(shù)據(jù),該公式用于直/接計(jì)算濕度的百分比,計(jì)算所得數(shù)據(jù)需要除以10if(T_Value<=T_Alert)KW_view=1; /報(bào)警開啟else if(Water_level2=1)/檢查低水位傳感器信號(hào),等于1 ,說明水箱無
11、水,則上水Draw_water=1;else if(S_Value<=S_AlertL)/在溫度適宜,水箱有足夠水的情況下,檢測土壤干濕度Water_on=1;/小于最低濕度則執(zhí)行澆水操作,此處置標(biāo)志位為1 即開啟 上述程序中:1、SI 標(biāo)志位用于實(shí)現(xiàn)程序不同情況下都可對(duì)系統(tǒng)的檢查, 使該程序利用率提高,當(dāng)遇到需要檢測的狀況時(shí), 直接調(diào)用并對(duì)標(biāo)志位賦值, 不用在重復(fù)編寫某些檢測程序。2、函數(shù)名為 calculate_T、RH、ADC_Result 的程序分別用于對(duì)空氣溫度、濕度和土壤濕度的數(shù)據(jù)采集與處理。3、標(biāo)志位 KW_view 用于執(zhí)行溫度報(bào)警, 標(biāo)志位 Draw_water 用于水
12、箱上水, 標(biāo)志位 Water_on 用于花盆澆水。三者均置 1,表示功能可執(zhí)行。8智能澆花裝置程序設(shè)計(jì)2.3 系統(tǒng)操控程序開實(shí)時(shí)讀低溫報(bào)警標(biāo)志 =溫度停止聲音警和顯示溫度是否高于警戒開啟定時(shí)上水標(biāo)志=及其中定時(shí)檢測位,達(dá)到停止上定時(shí)檢測土開啟定時(shí)濕度,達(dá)到澆水標(biāo)志=及其中停止?jié)步Y(jié)圖 4 系統(tǒng)操控程序流程圖系統(tǒng)操控程序依賴單片機(jī)的定時(shí)器中斷功能而執(zhí)行。使用定時(shí)器主要為了量化澆水或者上水動(dòng)作的執(zhí)行時(shí)間,使其間隔一定時(shí)間執(zhí)行一次。與前述程序相同,程序中使用標(biāo)志位來調(diào)用相應(yīng)的子函數(shù)。程序詳細(xì)內(nèi)容如下:/*系統(tǒng)操控*/void System_Control()if(KW_view)SI=0;WaterL
13、e_key1=0;9智能澆花裝置程序設(shè)計(jì)WaterLe_key2=0;ET0=0;ET1=0;TR0=0;TR1=0;Draw_water=0;Water_on=0;/計(jì)算溫度calculate_T();讀出溫度整數(shù)部分,為“溫度報(bào)警”做準(zhǔn)備T_Value=TN;/if(T_Value>T_Alert)KW_view=0;/ 溫度達(dá)到后停止報(bào)警與顯示提醒,并重新進(jìn)行系統(tǒng)狀態(tài)監(jiān)測 SI=1;if(Draw_water)/ 上水Draw_water=0;DW_view=1;SI=0;t1=0;TR1=1;/ 開啟定時(shí)器 11ET1=1;/ 開啟定時(shí)器中斷WaterLe_key1=1;Wate
14、rLe_key2=1;澆水 if(Water_on) / Water_on=0;WO_view=1;10智能澆花裝置程序設(shè)計(jì)WaterLe_key2=1;SI=0;t0=0;TR0=1;/開啟定時(shí)器 0ET0=1;/開啟定時(shí)器0 中斷2.4 數(shù)據(jù)顯示程序開顯示實(shí)時(shí)報(bào)警顯示標(biāo)志位、上水顯示標(biāo)志位、度、濕度、是全水顯示標(biāo)志壤濕度顯示低=報(bào)警提示標(biāo)志報(bào)警、音報(bào) 否是提示上水?上水提示標(biāo)志位=1 否 提示澆水 是 顯示土壤?澆水提示標(biāo)志位=1 濕度 否 結(jié)束圖 5 數(shù)據(jù)顯示程序流程圖在經(jīng)過檢測程序?qū)ο嚓P(guān)標(biāo)志位賦值后,數(shù)據(jù)顯示程序執(zhí)行時(shí)通過判斷標(biāo)志位是否為 1,來進(jìn)一步執(zhí)行相應(yīng)的子程序。當(dāng)所有標(biāo)志位為
15、0 時(shí),液晶正常顯示即沒有任何有關(guān)警告或提示的內(nèi)容顯示出來。程序詳細(xì)內(nèi)容如下:/*系統(tǒng)檢測數(shù)據(jù)全顯示*11智能澆花裝置程序設(shè)計(jì)*/void Status_Display()if(KW_view=0)&&(DW_view=0)&&(WO_view=0)Draw_water=0;Display_Scan();Display_T();/此處顯示溫度Display_RH(); / 此處顯示空氣濕度Display_soilRH(1000- 2*ADC_Result(0);/ 此處顯示土壤濕度if(KW_view)Keep_Warm();/低溫提示:請注意保溫beep();
16、/聲音提示delay1ms(100);beep();delay1ms(100);if(DW_view)Clear5110();Display5110(5,2,chinese3,14,2,25);/ 正Display5110(19,2,chinese3,14,2,26); / 在Display5110(33,2,chinese3,14,2,29); / 上Display5110(47,2,chinese3,14,2,28); / 水delay1ms(100);if(WO_view)12智能澆花裝置程序設(shè)計(jì)Clear5110();Display5110(4,2,chinese3,14,2,25);
17、/ 正Display5110(18,2,chinese3,14,2,26); / 在Display5110(32,2,chinese3,14,2,27); / 澆Display5110(46,2,chinese3,14,2,28); / 水Display_soilRH(1000 -2*ADC_Result(0);/ 澆水過程繼續(xù)顯示土壤濕度,實(shí)時(shí)監(jiān)測濕度變化13智能澆花裝置程序設(shè)計(jì)3、調(diào)試3.1 程序邏輯檢查及語法校正根據(jù)系統(tǒng)不同功能和實(shí)際的操作過程, 分析各程序塊中的語句的前后搭配和邏輯判斷條件是否合理, 由于實(shí)際環(huán)境以及硬件執(zhí)行機(jī)構(gòu)的限制, 需要人為地將部分程序分出優(yōu)先級(jí),分步分時(shí)執(zhí)行相應(yīng)
18、的功能,避免程序執(zhí)行過程中,邏輯混亂,操作失誤,便于以后對(duì)部分程序的修改。除此而外,還需要對(duì) C 語言的語法進(jìn)行檢查, 在本程序設(shè)計(jì)中,主要有 if.else, while 循環(huán),中斷服務(wù)程序和指針等相關(guān)語句,編寫時(shí)尤為注意。3.2 程序編譯及裝載當(dāng)程序邏輯順序和語法檢查無誤后, 開始對(duì)程序進(jìn)行編譯與裝載。 在調(diào)試過程中,需要結(jié)合硬件的執(zhí)行情況對(duì)程序中不妥之處進(jìn)行更正, 也可以注釋掉部分程序, 僅執(zhí)行未注釋的程序,逐個(gè)觀察并修改相應(yīng)功能的子程序語句。當(dāng)所有程序執(zhí)行的功能均符合設(shè)計(jì)需要時(shí),程序設(shè)計(jì)工作基本完成。14智能澆花裝置程序設(shè)計(jì)4、總結(jié)經(jīng)過對(duì)程序整體思路的把握, 合理安排各功能程序邏輯關(guān)系
19、和順序, 編寫正確的語句進(jìn)行控制,通過軟件編譯糾錯(cuò)和硬件調(diào)試修改, 基本完成了設(shè)計(jì)要求的有關(guān)功能,修改、更正了錯(cuò)誤的程序邏輯和語法錯(cuò)誤。通過實(shí)際的調(diào)試和觀察,本次智能澆花裝置系統(tǒng)程序圓滿完成。15智能澆花裝置程序設(shè)計(jì)5、設(shè)計(jì)體會(huì)KEIL C 軟件編輯單片機(jī)程序工程通過設(shè)計(jì)智能澆花裝置的程序,我學(xué)會(huì)了運(yùn)用以及利用軟件進(jìn)行程序調(diào)試。另外,鞏固了曾經(jīng)學(xué)過的C 語言知識(shí),并且在實(shí)際應(yīng)用中總結(jié)了不少經(jīng)驗(yàn)和教訓(xùn), 使我對(duì) C 語言的編譯有了更新的認(rèn)識(shí), 提高了我對(duì) C 語言程序的應(yīng)用能力, 同時(shí),也掌握了不少有關(guān)數(shù)據(jù)處理方面的程序算法如平均值濾波法。編寫設(shè)計(jì)程序時(shí),不僅需要?jiǎng)?chuàng)新的思路和靈感,還需要細(xì)心認(rèn)真的態(tài)度,在本次設(shè)計(jì)過程中, 出現(xiàn)了很多因一時(shí)疏忽導(dǎo)致的語法或者邏輯錯(cuò)誤, 致使硬件調(diào)試時(shí)系統(tǒng)工
溫馨提示
- 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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 金屬護(hù)欄施工方案
- 新生班主任發(fā)言稿
- 產(chǎn)業(yè)可行性研究報(bào)告模板
- 男方訂婚發(fā)言稿
- 老路基聚合物注漿施工方案
- 四川洗沙淤泥固化施工方案
- 家長學(xué)校課題申報(bào)書
- 婚禮發(fā)言稿男方代表
- 家長會(huì)學(xué)生發(fā)言稿紀(jì)律
- 部門發(fā)言稿范文
- (2025)輔警招聘公安基礎(chǔ)知識(shí)必刷題庫及參考答案
- 農(nóng)業(yè)機(jī)械設(shè)備維護(hù)與質(zhì)量保障措施
- 基于圖像處理的CAD圖紙比對(duì)算法
- 人教版六年級(jí)下冊數(shù)學(xué)第二單元百分?jǐn)?shù)(二)綜合練習(xí)卷-(附答案)
- 2025年大模型應(yīng)用落地白皮書:企業(yè)AI轉(zhuǎn)型行動(dòng)指南
- 《習(xí)近平法治思想概論(第二版)》 課件 2. 第二章 習(xí)近平法治思想的理論意義
- 2025年中國文玩電商行業(yè)發(fā)展現(xiàn)狀調(diào)查、競爭格局分析及未來前景預(yù)測報(bào)告
- 人教版高中英語挖掘文本深度學(xué)習(xí)-選修四-UNIT-4(答案版)
- 2024 大模型典型示范應(yīng)用案例集-1
- 太陽能微動(dòng)力農(nóng)村污水處理系統(tǒng)建設(shè)項(xiàng)目可行性研究報(bào)告
- JTG5120-2021公路橋涵養(yǎng)護(hù)規(guī)范
評(píng)論
0/150
提交評(píng)論