freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于單片機(jī)辦公室用空氣凈化器控制系統(tǒng)的設(shè)計(jì)(編輯修改稿)

2025-07-24 19:13 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 25um,PWM輸出5GND地6R串口接收RX7T串口發(fā)送TX雖然此傳感器測(cè)量結(jié)果精度較高,但其工作環(huán)境、輸入輸出電流大小不可忽略。 序號(hào)項(xiàng)目參數(shù)1測(cè)量輸出、PM102量程3供電電壓5V4最大工作電流100mA5休眠電流2mA6工作溫度范圍2050℃7響應(yīng)時(shí)間1秒8串口數(shù)據(jù)輸出頻率1次/秒9顆粒物直徑分辨率10相對(duì)誤差10%11產(chǎn)品尺寸71x70x23mm4 控制器軟件設(shè)計(jì) 主程序設(shè)計(jì)空氣凈化器控制系統(tǒng)由初始化程序、觸摸屏控制程序、按鍵處理程序、定時(shí)器中斷程序、數(shù)據(jù)采集程序、RTC時(shí)鐘程序、定時(shí)器中斷程序、LCD顯示程序、串口中斷程序、電機(jī)驅(qū)動(dòng)程序和低功耗運(yùn)行程序共同組成[15]。各子程序經(jīng)過(guò)單片機(jī)的主程序運(yùn)算處理,實(shí)現(xiàn)了溫濕度測(cè)量、液晶顯示、觸屏控制、模式選擇、數(shù)據(jù)傳輸與處理、電機(jī)控制等功能,達(dá)到了凈化空氣、人機(jī)交互、低功耗運(yùn)行的要求。在整個(gè)程序設(shè)計(jì)中,采用模塊化編程的方式,使程序更加靈活,方便調(diào)用、移植、調(diào)試。 主程序工作流程圖在接入電源后,單片機(jī)控制器開始工作,首先系統(tǒng)對(duì)所需功能進(jìn)行初始化自檢,在完成初始化后,執(zhí)行觸摸屏掃描程序,顯示待機(jī)狀態(tài)下菜單和測(cè)量的參數(shù)以及當(dāng)前時(shí)間。當(dāng)檢測(cè)到屏幕被觸摸后,系統(tǒng)根據(jù)其坐標(biāo)判斷所選擇的命令,并進(jìn)入相應(yīng)子程序。當(dāng)“自動(dòng)控制”按鈕被選中時(shí)會(huì)進(jìn)入自動(dòng)控制程序,完成自動(dòng)控制。當(dāng)選中“手動(dòng)控制”按鈕時(shí),顯示手動(dòng)控制下的二級(jí)菜單界面,里面有檔位的選擇和“返回”等按鈕。當(dāng)選中“設(shè)置”按鈕后,系統(tǒng)會(huì)進(jìn)入設(shè)置下的二級(jí)菜單??蛇x擇“開機(jī)時(shí)間”和“關(guān)機(jī)時(shí)間”兩種,在對(duì)應(yīng)的三級(jí)菜單中,均可通過(guò)按鍵設(shè)置定時(shí)時(shí)間。最后,按“確定”按鈕返回主界面。與此同時(shí),單片機(jī)的中斷子程序一直在運(yùn)行。定時(shí)器中斷處理函數(shù)用于溫濕度定時(shí)采集及顯示,并向上位機(jī)發(fā)送參數(shù)。,并顯示在液晶上。串口2中斷函數(shù)將從上位機(jī)接收到的數(shù)據(jù)進(jìn)行處理,根據(jù)設(shè)定指令調(diào)用相應(yīng)子函數(shù)。其下位機(jī)程序如附錄B所示。 顯示子程序設(shè)計(jì)本設(shè)計(jì)中,用TFT_LCD液晶屏顯示測(cè)量得到的參數(shù),例如:時(shí)間、溫濕度、時(shí)間、界面等內(nèi)容。然而要想正確控制液晶顯示參數(shù),需要對(duì)液晶及其控制器進(jìn)行一系列校準(zhǔn)與設(shè)置。 液晶初始化程序流程圖如上圖,在程序開始執(zhí)行時(shí),首先,判斷液晶屏幕是否已經(jīng)通過(guò)校準(zhǔn),若校準(zhǔn)完畢,則顯示待機(jī)狀態(tài)下的菜單,否則需要經(jīng)過(guò)校準(zhǔn)程序進(jìn)行校準(zhǔn);其次,判斷LCD屏幕是否被觸摸,若檢測(cè)到,則讀取相應(yīng)觸控點(diǎn)坐標(biāo),否則返回到待機(jī)狀態(tài)下的顯示界面;最后,根據(jù)所得坐標(biāo),判斷是否在設(shè)定區(qū)域,若在,則通過(guò)ILI9320驅(qū)動(dòng)器經(jīng)FSMC向LCD指定區(qū)域?qū)懨?,寫?shù)據(jù),以達(dá)到界面切換或顯示參數(shù)的目的。 具體分析如下: 1)時(shí)鐘使能由于STM32單片機(jī)為每個(gè)外設(shè)的功能都設(shè)置了時(shí)鐘開關(guān),在需要的時(shí)候打開,不需要的時(shí)候?qū)⑵潢P(guān)閉,以達(dá)到降低能耗的作用。因此,在上電后,通過(guò)程序進(jìn)行功能模塊時(shí)鐘的使能。 2)初始化GPIO即通用輸入輸出口。在GPIO初始化時(shí),需要將GPIO輸出類型設(shè)置成為復(fù)用推挽輸出,最大輸出速度為50MHz。FSMC即靜態(tài)存儲(chǔ)控制器。本設(shè)計(jì)中單片機(jī)通過(guò)FSMC接口控制LCD,因此,LCD相當(dāng)于片外SRAM。在FSMC初始化時(shí),需要對(duì)地址線、數(shù)據(jù)線、寫信號(hào)、讀信號(hào)、片選信號(hào)進(jìn)行設(shè)置。在觸摸屏初始化時(shí),首先初始化相關(guān)GPIO,并將其設(shè)置成為上拉模式,其次初始化24C02 存儲(chǔ)器,最后判斷屏幕是否已經(jīng)校準(zhǔn)。 3)單片機(jī)與存儲(chǔ)器的I2C通信單片機(jī)通過(guò)串行總線通信可以使硬件電路大大簡(jiǎn)化,提高可靠性。I2C總線只有兩根雙向信號(hào)線。當(dāng)總線處于空閑狀態(tài)時(shí),兩根信號(hào)線均為高電平[6]。當(dāng)連接在總線上的任一器件變低時(shí)都能將總線的信號(hào)拉低。主機(jī)若要與某個(gè)器件通信,則必須通過(guò)總線仲裁,根據(jù)地址來(lái)決定哪個(gè)器件作為接收器。 I2C通信流程圖如上圖,當(dāng)單片機(jī)準(zhǔn)備與24C02通信時(shí),首先產(chǎn)生起始信號(hào),為發(fā)送寫命令做好準(zhǔn)備,在發(fā)送完成后,等待應(yīng)答信號(hào),然后發(fā)送高地址、低地址,在信號(hào)線發(fā)出應(yīng)答信號(hào)后,向該地址發(fā)送想要傳輸?shù)淖止?jié),最后等待接收的應(yīng)答,完成一次數(shù)據(jù)的傳輸。I2C在傳輸數(shù)據(jù)時(shí),當(dāng)時(shí)鐘線為高電平期間,數(shù)據(jù)線傳輸?shù)臄?shù)據(jù)必須保持穩(wěn)定[1]。只有當(dāng)時(shí)鐘線為低電平時(shí)才允許數(shù)據(jù)變化。 I2C數(shù)據(jù)傳輸狀態(tài)。 起始信號(hào)與終止信號(hào)時(shí)序圖u 起始信號(hào)程序設(shè)計(jì):首先將信號(hào)線SCL、SDA拉高一段時(shí)間,然后將數(shù)據(jù)線SDA拉低,等待時(shí)間超過(guò)4us后,將時(shí)鐘線拉低即可實(shí)現(xiàn)產(chǎn)生一個(gè)起始信號(hào)。u 終止信號(hào)程序設(shè)計(jì):首先將信號(hào)線SCL、SDA拉低一段時(shí)間,然后將時(shí)鐘線SCL拉高,等待時(shí)間超過(guò)4us后,將數(shù)據(jù)線拉高即可實(shí)現(xiàn)產(chǎn)生一個(gè)終止信號(hào)。 I2C產(chǎn)生應(yīng)答信號(hào)與非應(yīng)答信號(hào)時(shí)序u 應(yīng)答信號(hào)程序設(shè)計(jì):首先將SCL、SDA拉低,一段時(shí)間后將SCL拉高,等待時(shí)間超過(guò)4us后,將SCL拉低即產(chǎn)生一個(gè)應(yīng)答信號(hào),整個(gè)過(guò)程中SDA是處于低電平狀態(tài),在程序中以返回值“0”代替。u 非應(yīng)答信號(hào)程序設(shè)計(jì):首先將SCL拉低、SDA拉高,一段時(shí)間后將SCL拉高,等待時(shí)間超過(guò)4us后,將SCL拉低即產(chǎn)生一個(gè)非應(yīng)答信號(hào),整個(gè)過(guò)程中SDA是處于高電平狀態(tài),在程序中以返回值“1”代替。 。 數(shù)據(jù)傳輸格式當(dāng)主機(jī)向從機(jī)發(fā)送數(shù)據(jù)時(shí),每一個(gè)字節(jié)必須保證是8位長(zhǎng)度。數(shù)據(jù)傳送時(shí),先傳送高位,再傳送地位。在每一個(gè)傳送的字節(jié)后面都會(huì)跟隨一位應(yīng)答位。當(dāng)從機(jī)接收到數(shù)據(jù)后會(huì)產(chǎn)生一個(gè)應(yīng)答信號(hào),如果在一段時(shí)間后,主機(jī)并未收到從機(jī)的應(yīng)答信號(hào),則自認(rèn)為從機(jī)已經(jīng)正確接收到數(shù)據(jù)。4)液晶屏幕校準(zhǔn)觸摸屏為絕對(duì)坐標(biāo)系統(tǒng),即每次的坐標(biāo)與上一次坐標(biāo)沒(méi)有任何關(guān)系。在理論上,同一點(diǎn)輸出的數(shù)據(jù)是穩(wěn)定的,但在實(shí)際中,由于技術(shù)等原因,無(wú)法保證每次在同一點(diǎn)輸出的數(shù)據(jù)保持一致,這時(shí)將會(huì)產(chǎn)生漂移現(xiàn)象。為了防止此現(xiàn)象的發(fā)生,需要通過(guò)程序進(jìn)行校準(zhǔn)。然而,在程序中使用的LCD坐標(biāo)通常是以像素為單位的,故需要通過(guò)程序?qū)⑽锢碜鴺?biāo)轉(zhuǎn)化為像素坐標(biāo)。轉(zhuǎn)化公式如下所示:其中,LCD_X、LCD_Y為L(zhǎng)CD上的像素橫縱坐標(biāo)。Px、Py分別為觸摸的物理坐標(biāo)。x_factor、y_factor分別為X、Y軸上的比例因子。x_shift、y_shift分別為X、Y軸上的偏移量。 液晶屏幕校準(zhǔn)流程圖u 液晶屏幕校準(zhǔn):首先,在屏幕上顯示已知坐標(biāo)的四個(gè)點(diǎn),用戶在校準(zhǔn)的過(guò)程中需要依次按下屏幕上這四個(gè)點(diǎn)[5]。單片機(jī)根據(jù)按下的位置獲取物理坐標(biāo),在判別坐標(biāo)合理的情況下,根據(jù)待定系數(shù)法計(jì)算出x_factor、y_factor、x_shift、y_shift參數(shù),并將其保存到24C02存儲(chǔ)器中。在以后的使用中,將會(huì)按照這個(gè)參數(shù)來(lái)計(jì)算像素坐標(biāo),達(dá)到屏幕校準(zhǔn)的目的。u 坐標(biāo)合理判別:在單片機(jī)讀取四個(gè)物理坐標(biāo)(設(shè)為①、②、③、④)后,分別測(cè)量坐標(biāo)①②、②③、①③、①④距離。然后與設(shè)定的四個(gè)坐標(biāo)之間相應(yīng)的距離相比,若誤差小于ERR_LENGTH,則認(rèn)為此坐標(biāo)合理。在本設(shè)計(jì)中ERR_LENGTH取50。 PWM輸出子程序設(shè)計(jì)PWM即脈沖寬度調(diào)制,將恒定的電壓調(diào)制成頻率、占空比可變的一系列方波。單片機(jī)可利用定時(shí)器產(chǎn)生PWM波,并通過(guò)程序可設(shè)置輸出頻率和占空比。 PWM輸出流程圖如上圖所示,上電后,在執(zhí)行到該子程序時(shí),首先,設(shè)置TIM3_CCR2的值,即定時(shí)器內(nèi)高低電平切換值;其次,定時(shí)器3寄存器CR1以初始化中設(shè)置的頻率自加,當(dāng)其值大于TIM3_CCR2設(shè)置值后,輸出高電平,否則輸出低電平;最后,當(dāng)CR1等于初始化中設(shè)定的上限值時(shí),重置CR1為零,繼續(xù)循環(huán)以上程序。因此能連續(xù)不斷的輸出頻率周期一定的高低電平。在程序運(yùn)行過(guò)程中,可通過(guò)設(shè)置TIM3_CCR2的值來(lái)改變輸出PWM波的占空比。 數(shù)據(jù)采集程序設(shè)計(jì) 溫濕度傳感器模塊程序設(shè)計(jì)DHT11溫濕度傳感器采用單總線方式與單片機(jī)進(jìn)行通信,僅僅需要一個(gè)引腳即可實(shí)現(xiàn)數(shù)據(jù)的傳輸[7]。傳感器內(nèi)部的溫濕度數(shù)據(jù)通過(guò)引腳一次性傳給單片機(jī)。其數(shù)據(jù)分為小數(shù)部分和整數(shù)部分。格式為:8bit濕度整數(shù)數(shù)據(jù)+8bit濕度小數(shù)數(shù)據(jù)+8bit溫度整數(shù)數(shù)據(jù)+8bit溫度小數(shù)數(shù)據(jù)+8bit校驗(yàn)和。 DHT11引腳功能圖Pin名稱功能1VDD電源正極2DATA數(shù)據(jù)傳輸引腳3NC懸空4GND電源負(fù)極單片機(jī)PG11引腳與傳感器DATA相連,當(dāng)準(zhǔn)備與其通訊時(shí)由單片機(jī)發(fā)送開始信號(hào)。此時(shí),傳感器將轉(zhuǎn)換成高速模式,直到主機(jī)的開始信號(hào)結(jié)束后,DHT11對(duì)單片機(jī)進(jìn)行響應(yīng)處理,同時(shí),送出采集到的數(shù)據(jù),并觸發(fā)下一次信號(hào)的采集[8]。在采集完成后將會(huì)轉(zhuǎn)換到低速模式,等待下一次主機(jī)的開始信號(hào)。 DHT11通訊過(guò)程首先,由主機(jī)拉低數(shù)據(jù)線,經(jīng)過(guò)一段延時(shí)后,拉高數(shù)據(jù)線,等待大概30us后讀取DHT11的響應(yīng)。在DHT發(fā)出響應(yīng)輸出后,保持一段時(shí)間,再將其拉高,這樣就可以傳輸數(shù)據(jù)了。當(dāng)數(shù)據(jù)傳送至單片機(jī)后,由程序定義兩個(gè)數(shù)組,分別存儲(chǔ)溫度和濕度數(shù)據(jù)。在經(jīng)過(guò)簡(jiǎn)單運(yùn)算后,由液晶顯示函數(shù)顯示在TFT_LCD相應(yīng)位置。 DHT11工作流程圖 ,并通過(guò)串行通訊將數(shù)據(jù)發(fā)送至單片機(jī)。其工作波特率為9600。 如圖所示,由于該傳感器是通過(guò)串口進(jìn)行通訊的,故初始化串口后,當(dāng)有數(shù)據(jù)傳送時(shí)會(huì)進(jìn)入串口中斷,在中斷函數(shù)中,將接收到的數(shù)據(jù)保存至數(shù)組。a)串口通信:串口即通過(guò)串行方式通訊的擴(kuò)展接口,串行通訊線路連接簡(jiǎn)單可靠,但傳輸速度略慢。STM32F103ZET6單片機(jī)擁有5個(gè)串口,其接收與發(fā)送引腳分別為PA9,PA10。 串口初始化流程圖在初始化過(guò)程中,首先初始化所用功能的時(shí)鐘;然后將串口進(jìn)行復(fù)位處理,以免受外設(shè)異常的干擾;由于該傳感器傳輸速度為9600位/秒,故在串口參數(shù)初始化中將波特率設(shè)置為9600;最后進(jìn)行中斷的配置,設(shè)置中斷分組和NVIC優(yōu)先級(jí)。b):SDS011激光傳感器通過(guò)串口每次發(fā)送10位16進(jìn)制數(shù)據(jù),依次為:報(bào)文頭
點(diǎn)擊復(fù)制文檔內(nèi)容
醫(yī)療健康相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1