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

正文內(nèi)容

基于單片機(jī)的溫濕度實(shí)驗(yàn)箱設(shè)計(jì)畢業(yè)設(shè)計(jì)論文-資料下載頁

2025-06-22 02:15本頁面
  

【正文】 議數(shù)據(jù),因此通過通過SJA1000和MAX232與單片機(jī)相連即可完成PC機(jī)信號(hào)電平與CAN總線電平之間的轉(zhuǎn)換。 第4章 軟件設(shè)計(jì)鍵盤處理子程序是無是無現(xiàn)場(chǎng)顯示子程序通信子程序控制算法子程序系統(tǒng)初始化信息采集信息處理鍵盤判斷超過設(shè)定值?報(bào)警子程序開始 主程序設(shè)計(jì)。 當(dāng)系統(tǒng)上電后,需要進(jìn)行初始化,包括單片機(jī)的初始化、A/D的初始化、顯示初始化等,初始化完成后,系統(tǒng)開始工作,包括溫濕度信息采集、顯示、報(bào)警、遠(yuǎn)程監(jiān)控及按鍵處理等。,主機(jī)完成溫度、水箱液位、濕度、鍵盤輸入信息、及PC機(jī)輸入信息的采集,將采集到的信息存入相應(yīng)的存儲(chǔ)區(qū)并進(jìn)行數(shù)據(jù)的處理,信息的采集包括溫度信息采集、濕度信息采集、加濕器內(nèi)水箱液位信息采集、鍵盤輸入信息采集、監(jiān)控室PC機(jī)輸入信息采集,進(jìn)行溫濕度控制時(shí)首先要檢測(cè)按鍵信息,如果有按鍵按下則進(jìn)入首先進(jìn)入相應(yīng)的按鍵處理子程序,然后進(jìn)行溫濕度信息的處理與溫濕度控制,當(dāng)沒有檢測(cè)到按鍵按下時(shí)跳過按鍵處理子程序,直接將采集到溫度和濕度的信息與先前設(shè)定值比較后得出是否進(jìn)行聲光報(bào)警和溫濕度調(diào)節(jié),因?yàn)闇囟日{(diào)節(jié)具有一定的滯后性,所以當(dāng)進(jìn)行溫濕度調(diào)節(jié)時(shí)還需要引入PID算法子程序, PID算法子程序的引入融合了比例環(huán)節(jié)和積分環(huán)節(jié)的快速性、微分環(huán)節(jié)的超前性,同時(shí)能夠防止出現(xiàn)積分飽和單獨(dú)引入微分環(huán)節(jié)的不穩(wěn)定性。主機(jī)還需要對(duì)系統(tǒng)水箱液位進(jìn)行測(cè)量,防止加濕器水箱缺水造成干燒等危險(xiǎn)狀況,當(dāng)加濕器內(nèi)水箱水位下降時(shí),需要調(diào)動(dòng)補(bǔ)水子程序控制水泵電機(jī)進(jìn)行自動(dòng)加水,使加濕器的水箱內(nèi)的液位始終保持在一定的范圍內(nèi),同時(shí)通過調(diào)用通信子程序?qū)⒉杉降臏貪穸刃判倪h(yuǎn)傳到監(jiān)控室的PC機(jī)上并將監(jiān)控室內(nèi)PC機(jī)命令通過通信子程序傳送到現(xiàn)場(chǎng)主機(jī)進(jìn)行控制。通過調(diào)用通信子程序?qū)崿F(xiàn)了數(shù)據(jù)的遠(yuǎn)傳和遠(yuǎn)程控制,通過調(diào)用通信子程序使得監(jiān)控室PC機(jī)和現(xiàn)場(chǎng)鍵盤都進(jìn)行程式選擇和對(duì)現(xiàn)場(chǎng)任意主機(jī)系統(tǒng)的溫濕度進(jìn)行設(shè)定。 信息采集子程序設(shè)計(jì),為濕度、溫度等信息采集子程序流程圖。信息采集開始需要進(jìn)行15ms延時(shí)中斷程序,其目的是為了等待傳感器輸出可靠的信號(hào),當(dāng)15ms時(shí)間到后產(chǎn)生中斷表明計(jì)時(shí)時(shí)間到,同時(shí)清除延時(shí)子程序產(chǎn)生的中斷標(biāo)志位和TLV2548的中斷標(biāo)志位,采集到信號(hào)后清除TLV2548中斷標(biāo)志位是為了重新啟動(dòng)A/D轉(zhuǎn)換器。TLV2548中斷標(biāo)志位清除完成后,通過單片機(jī)向A/D轉(zhuǎn)換器寫入啟動(dòng)命令,啟動(dòng)A/D轉(zhuǎn)換器,等待轉(zhuǎn)換完成,當(dāng)轉(zhuǎn)換完成后相應(yīng)的中斷標(biāo)志位產(chǎn)生中斷,主機(jī)查詢TLV2548中斷標(biāo)志位是否產(chǎn)生中斷,如果沒有查詢到中斷標(biāo)志位就繼續(xù)等待直到檢測(cè)到中斷標(biāo)志位為止,當(dāng)主機(jī)檢測(cè)到TLV2548產(chǎn)生中斷后開始檢查緩沖區(qū)是否存滿,如果沒有存滿則將相應(yīng)的轉(zhuǎn)換結(jié)果存入到相應(yīng)的緩沖區(qū),如果相應(yīng)緩沖區(qū)已經(jīng)存滿,則主機(jī)將開始對(duì)緩沖區(qū)內(nèi)數(shù)據(jù)進(jìn)行處理,處理完成后清空相應(yīng)緩沖區(qū)以便下一次的存儲(chǔ),當(dāng)一次工作完成后就完成了一次信息的采集,本次采集完成后返回繼續(xù)進(jìn)行下次的采集,不斷循環(huán),程序流程圖同第一次相同,TLV2548為多通道串行輸出A/D轉(zhuǎn)換器件,因此完成一次A/D轉(zhuǎn)換即可完成一次溫度信息、濕度信息、液位信息的同時(shí)采集,因此完成一次溫度、濕度、液位信息采集只需主程序調(diào)用一次信息采集模塊子程序即可完成。主機(jī)只需查詢相應(yīng)存儲(chǔ)緩沖區(qū)即可知道A/D轉(zhuǎn)換結(jié)果。啟動(dòng)TLV2548轉(zhuǎn)換完成?存儲(chǔ)區(qū)滿?存入存儲(chǔ)區(qū)返回清除中斷標(biāo)志15ms定時(shí)中斷否是否數(shù)據(jù)處理清空存儲(chǔ)區(qū)開始 鍵盤信息采集子程序設(shè)計(jì)。鍵盤信息采集子程序首先判斷是否有按鍵按下,如果有按鍵按下則分析是哪個(gè)按鍵被按下,本設(shè)計(jì)設(shè)計(jì)了三個(gè)按鍵,當(dāng)判斷是功能選擇鍵按下時(shí)進(jìn)入功能選擇功能,每次按下轉(zhuǎn)換一個(gè)功能,功能選擇完成后,可以通過其他按鍵增大或減小設(shè)定值,如果沒有按鍵按下,則跳過按鍵信息處理子程序。直接執(zhí)行主程序。是否有按鍵按下存入相應(yīng)緩沖區(qū)鍵值功能選擇是否功能選擇鍵增加鍵減小鍵開始 鍵盤信息采集子程序流程圖 CAN總線通信子程序設(shè)計(jì):開中斷請(qǐng)求配置SJA1000進(jìn)入配置否?否是時(shí)鐘分頻寄存器設(shè)置輸出控制寄存器設(shè)置配置總線時(shí)序寄存器接收過濾寄存器設(shè)置接收屏蔽寄存器設(shè)置返回開始 SJA1000初始化子程序流程圖CAN初始化子程序包括:SJA1000初始化、發(fā)送初始化和接收初始化;程序運(yùn)行前需要對(duì)SJA1000的工作模式進(jìn)行設(shè)定,即對(duì)SJA1000進(jìn)行初始化,使其按照要求進(jìn)行工作。單片機(jī)AT89S52復(fù)位時(shí)間和SJA1000復(fù)位時(shí)間不相同,存在偏差,因此在開始設(shè)置SJA1000之前,需要主機(jī)對(duì)SJA1000復(fù)位標(biāo)識(shí)進(jìn)行檢測(cè),檢測(cè)其是否已經(jīng)進(jìn)入復(fù)位狀態(tài),SJA1000存有配置信息的寄存器只有在復(fù)位模式下才能進(jìn)行寫入,SJA1000初始化程序在復(fù)位模式下需要配置時(shí)鐘分頻寄存器、接收代碼和接收掩碼寄存器、總線時(shí)序寄存器、輸出控制寄存器。當(dāng)這些配置完成后,消除復(fù)位標(biāo)識(shí)SJA1000進(jìn)入操作模式。SJA1000初始化完成就建立了CAN總線通信,SJA1000能夠根據(jù)CAN總線規(guī)則發(fā)送和接收數(shù)據(jù)包。,當(dāng)SJA1000初始化完成就建立了CAN總線通訊。CAN總線通信子程序還包括發(fā)送子程序和接收子程序。檢測(cè)上次發(fā)送完畢發(fā)送緩沖區(qū)清空?在發(fā)送緩沖區(qū)內(nèi)寫入本次發(fā)送內(nèi)容返回否是否是啟動(dòng)發(fā)送命令(命令寄存器的發(fā)送請(qǐng)求標(biāo)志位置位開始 CAN總線發(fā)送子程序流程圖,CAN總線在發(fā)送數(shù)據(jù)前先要檢測(cè)上次發(fā)送是否發(fā)送完成,當(dāng)系統(tǒng)檢測(cè)到上次發(fā)送沒有完成,系統(tǒng)會(huì)等待一段時(shí)間后再次檢測(cè)上次發(fā)送數(shù)據(jù)是否完成,當(dāng)檢測(cè)到上次發(fā)送數(shù)據(jù)完成后,系統(tǒng)開始檢測(cè)發(fā)送緩沖區(qū)是否釋放,如果沒有釋放,系統(tǒng)等待發(fā)送緩沖區(qū)釋放,當(dāng)系統(tǒng)檢測(cè)到發(fā)送緩沖區(qū)清空以后,開始為本次發(fā)送做準(zhǔn)備,即將本次發(fā)送的內(nèi)容寫入發(fā)送緩沖區(qū),當(dāng)本次發(fā)送準(zhǔn)備完成后,啟動(dòng)發(fā)送命令,本次發(fā)送的內(nèi)容被發(fā)送出去,上述操作完成后,系統(tǒng)返回開始準(zhǔn)備下一次的數(shù)據(jù)發(fā)送。中斷寄存器產(chǎn)生中斷?是否為接收中斷?開中斷讀取接收緩沖區(qū)數(shù)據(jù)讀完緩沖數(shù)據(jù)?釋放接收緩沖區(qū)清除中斷標(biāo)志位返回否是是否是否開始 CAN總線接收子程序流程圖。SJA1000接收?qǐng)?bào)文主要有中斷接收方式和查詢接收方式。本設(shè)計(jì)采用中斷接收方式。系統(tǒng)上電,首先開中斷,允許產(chǎn)生中斷,經(jīng)過一段時(shí)間后讀取中斷寄存器,判斷是否產(chǎn)生中斷,如果沒有產(chǎn)生中斷則繼續(xù)等待,如果判斷系統(tǒng)有中斷產(chǎn)生,則進(jìn)一步判斷是否為CAN總線接收中斷,如果由判斷得知產(chǎn)生的中斷為接收中斷,則表明數(shù)據(jù)已經(jīng)寫入接收緩沖區(qū)內(nèi),主機(jī)開始讀取接收緩沖區(qū)內(nèi)的數(shù)據(jù),將接收緩沖區(qū)內(nèi)的數(shù)據(jù)存入主機(jī)相應(yīng)寄存器并進(jìn)行處理,一系列操作完成后還需判斷一次主機(jī)是否已經(jīng)讀完接收緩沖區(qū)內(nèi)的內(nèi)容,如果判斷沒有讀完,則繼續(xù)等待,如果判斷得出主機(jī)已經(jīng)讀完接收緩沖區(qū)的數(shù)據(jù),則進(jìn)行下一操作,主機(jī)讀取完畢后要將接收緩沖區(qū)內(nèi)的數(shù)據(jù)釋放,以便接收下一組數(shù)據(jù),同時(shí)將接收中斷產(chǎn)生的標(biāo)志位清零,返回進(jìn)行下一次接收數(shù)據(jù)操作。 顯示子程序設(shè)計(jì) LCD1602控制器內(nèi)部指令說明序號(hào)指令RSR/WD7D6D5D4D3D2D1D01清顯示00000000012光標(biāo)返回000000001*3置輸入模式00000001I/DS4顯示開/關(guān)控制0000001DCB5光標(biāo)或字符移位000001S/CR/L**6置功能00001DLNF**7置字符發(fā)生貯存器地址0001字符發(fā)生貯存器地址8置數(shù)據(jù)貯存器地址001顯示數(shù)據(jù)貯存器地址9讀忙標(biāo)志或地址01BF計(jì)數(shù)器地址10寫數(shù)到CGRAM或DDRAM10要寫的數(shù)據(jù)內(nèi)容11從CGRAM或DDRAM讀數(shù)11讀出的數(shù)據(jù)內(nèi)容 為L(zhǎng)CD1602控制器內(nèi)部指令說明,指令1是用來清空顯示屏的,指令碼為01H,通過指令碼使光標(biāo)復(fù)位到地址00H處;指令2是光標(biāo)復(fù)位指令,也能是光標(biāo)復(fù)位到地址00H處;指令3 I/D是光標(biāo)和顯示模式設(shè)置指令:高電平時(shí)光標(biāo)向右移動(dòng),低電平時(shí)光標(biāo)向左移動(dòng),S:屏幕上所有文字是否向左或向右移動(dòng),高電平有效,低電平無效;指令4是顯示開關(guān)控制指令,D:控制整體顯示的開與關(guān),高電平表示開顯示,低電平表示關(guān)顯示。C:控制光標(biāo)的開與關(guān),高電平表示有光標(biāo)低電平表示無光標(biāo)。B:光標(biāo)是否閃爍,高電平時(shí)表示光標(biāo)閃爍,低電平時(shí)表示光標(biāo)不閃爍;指令5 是光標(biāo)顯示或移位指令,S/C:高電平時(shí)移動(dòng)顯示的文字,低電平時(shí)移動(dòng)光標(biāo);指令6是功能設(shè)置命令指令,DL:高電平時(shí)為4為總線,低電平時(shí)為8為總線。N:低電平時(shí)為單行顯示,高電平時(shí)為雙行顯示。F:低電平時(shí)為57點(diǎn)陣顯示,高電平時(shí)為510點(diǎn)陣顯示;指令7 為字符發(fā)生器RAM地址設(shè)置指令;指令8 為DDRAM地址設(shè)置指令;指令9 為讀忙信號(hào)和光標(biāo)地址指令,BF:為忙標(biāo)志位,高電平表示忙碌,低電平表示不忙碌;指令10 為寫數(shù)據(jù)指令;指令11 為讀數(shù)據(jù)指令。LCD1602初始化調(diào)用自定義字庫延時(shí)設(shè)置第一行顯示地址第一行顯示設(shè)置第二行顯示地址第二行顯示開始返回 LCD1602顯示子程序流程圖 控制子程序設(shè)計(jì)。輸入I(k)和O(k)計(jì)算E(k)=O(k)I(k)計(jì)算ΔPP(k)=Kp[E(k)E(k1)]計(jì)算ΔPI(k)=KIE(k)計(jì)算PD(k)=KD[E(k)2E(k1)+E(K2)]計(jì)算ΔP(k)= ΔPP(k)+ ΔPI(k)+ ΔPD(k)E(k2) ←E(k1), E(k1) ←E(k)開始返回 增量式PID算法子程序流程圖 PID控制算法的模擬表達(dá)式為: (41) 式(41)中y(t)為調(diào)節(jié)器的輸出信號(hào),e(t)為調(diào)節(jié)器的偏差信號(hào)(給定值與測(cè)量值之差),KP為比例系數(shù),TI為積分時(shí)間,TD為微分時(shí)間。對(duì)(41)進(jìn)行離散化。設(shè)T為采樣周期,E(k)為第k次采樣偏差值,k為采樣序號(hào),k=0,1,2,3……..。P (k)為第k次采樣的輸出。對(duì)模擬PID算式離散化可得位置式PID算式(42) (42) 設(shè)KI為積分系數(shù),KD為微分系數(shù),則有KI=KPT/TI;KD=KPTD/T。由(42)推導(dǎo)可得出增量式PID算式(43) (43) PID運(yùn)算P(k)Pmax?P(k) Pmin?PID輸出P(k)=PmaxP(k) Pmin是否是否開始返回系統(tǒng)要求能夠設(shè)定參數(shù)的上下限值。,增量式PID控制子程序開始運(yùn)行后先調(diào)用運(yùn)算子程序得出P(k),然后進(jìn)行判斷P(k)是否高于上限值或低于下限值,當(dāng)計(jì)算得出的P(k)高于上限值時(shí)使用上限值作為最終結(jié)果,當(dāng)計(jì)算得出的P(k)低于下限值時(shí),用設(shè)定的下限值作為最終結(jié)果。 串行通信子程序設(shè)計(jì)RS232與RS485總線標(biāo)準(zhǔn)只定義了信號(hào)傳送的物理特性,并未給軟件設(shè)計(jì)做出具體規(guī)定,因此在設(shè)計(jì)通信程序時(shí)先要進(jìn)行偵結(jié)構(gòu)設(shè)計(jì):在一幀內(nèi)容中一般包括地址碼、長(zhǎng)度碼、數(shù)據(jù)段、校驗(yàn)碼,地址碼在多機(jī)組網(wǎng)通信系統(tǒng)中用來指明分機(jī)號(hào);長(zhǎng)度碼表示本偵內(nèi)容的字節(jié)數(shù);數(shù)據(jù)段是通信的實(shí)質(zhì)內(nèi)容;由于通信信道存在干擾,校驗(yàn)碼是為了判斷接收的內(nèi)容是否收到干擾。如果收到干擾就需要重新發(fā)送。端口設(shè)置開串行口中斷待發(fā)送數(shù)據(jù)存入緩沖區(qū)發(fā)送延時(shí)接收數(shù)據(jù)關(guān)串行口中斷 開始返回 單片機(jī)與PC機(jī)通信子程序流程圖送程序工作在主動(dòng)狀態(tài)下,可以采用查詢工作方式,也可以采用中斷工作方式,當(dāng)一幀數(shù)據(jù)比較長(zhǎng)時(shí),查詢工作方式將長(zhǎng)期占用CPU,使得系統(tǒng)的其他工作全部停頓,有可能引起不良后果,因此本設(shè)計(jì)不采用查詢工作方式,本設(shè)計(jì)采用中斷工作方式。單片機(jī)在進(jìn)行串口通信之前,首先要設(shè)置串口,使其波特率與PC機(jī)波特率相同,并將串口接收中斷打開。串口中斷響應(yīng)將中斷關(guān)閉讀取本機(jī)地址接收數(shù)據(jù)判斷數(shù)據(jù)類型是否為地址分析哪類數(shù)據(jù)完成動(dòng)作與本機(jī)地址相同?送回本機(jī)地址數(shù)據(jù)接收模式中斷打開返回中斷地址接收模式否是送回?cái)?shù)據(jù)是否開始
點(diǎn)擊復(fù)制文檔內(nèi)容
范文總結(jié)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1