




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上目 錄專心-專注-專業(yè)1、前言溫度測控系統(tǒng)是比較常見的和典型的過程系統(tǒng),溫度是工業(yè)生產(chǎn)過程中重要的被控參數(shù)之一,在冶金、機(jī)械、食品、化工等各類工業(yè)生產(chǎn)過程中廣泛使用的各種加熱爐、熱處理爐、反應(yīng)爐,對工件的處理溫度等均需要對溫度嚴(yán)格測量控制。當(dāng)今計(jì)算機(jī)控制技術(shù)在這方面的應(yīng)用,已使溫度測控系統(tǒng)達(dá)到自動化、智能化。在半導(dǎo)體技術(shù)的支持下,溫度測控器件發(fā)展迅速。而溫度傳感器是各式各樣的傳感器中經(jīng)常使用的一種,如今溫度傳感器的外形都非常小巧,這樣更為我們的生活提供了許多功能和便利,并且也讓它廣泛應(yīng)用于生產(chǎn)實(shí)踐的各個領(lǐng)域中。21世紀(jì)以來,智能溫度傳感器正朝著高精度、多功能、高可靠性
2、及安全性、總線標(biāo)準(zhǔn)化、網(wǎng)絡(luò)傳感器和開發(fā)虛擬傳感器、研制單片測溫系統(tǒng)等高科技的方向迅速發(fā)展。傳統(tǒng)的溫度檢測以熱敏電阻為溫度敏感元件。熱敏電阻的成本低,但需后續(xù)信號處理電路,而且可靠性相對較差,測溫準(zhǔn)確度低,檢測系統(tǒng)也有一定的誤差。這里設(shè)計(jì)的數(shù)字溫度測控系統(tǒng)具有讀數(shù)方便,測溫范圍廣,測溫精確,數(shù)字顯示,串口通信,適用范圍寬等特點(diǎn)。本文所研究和開發(fā)的課題是溫度測控的仿真設(shè)計(jì),目的在于模擬空調(diào)的溫度測控及自動開關(guān)系統(tǒng)。本設(shè)計(jì)選用Intel公司生產(chǎn)的STC89C52芯片作為主控制器件,DS18B20溫度傳感器作為溫度測定采集系統(tǒng),通過LED數(shù)碼管實(shí)現(xiàn)實(shí)時溫度和設(shè)定溫度的顯示,還可通過按鍵設(shè)定空調(diào)的目標(biāo)溫
3、度,報警系統(tǒng)模擬空調(diào)的自動開關(guān)控制,通過串口還能與PC機(jī)通信以模擬空調(diào)的遙控系統(tǒng)。通過DS18B20溫度傳感器直接讀取被檢測的溫度值,并進(jìn)行數(shù)據(jù)的轉(zhuǎn)換,此器件的線性度較好,物理和化學(xué)性能也穩(wěn)定,在0100范圍內(nèi)最大線性偏差小于0.01。該器件采用單線接口方式,DS18B20在與單片機(jī)連接時僅需要一條接口線就可以實(shí)現(xiàn)單片機(jī)與DS18B20的雙向通訊,便于單片機(jī)處理和控制。2、總體方案設(shè)計(jì)2.1設(shè)計(jì)內(nèi)容設(shè)計(jì)一種基于單片機(jī)的溫度測控的方法,以模擬空調(diào)的溫度測控及自動開關(guān)系統(tǒng),要求: (1)能夠?qū)崟r地檢測溫度,并能在空調(diào)主機(jī)和遙控器上顯示出來。 (2)可通過空調(diào)主機(jī)和遙控器的按鍵設(shè)定目標(biāo)溫度,按鍵可移
4、位。 (3)設(shè)定溫度狀態(tài)下,應(yīng)能閃爍顯示。 (4)實(shí)時溫度超過設(shè)定溫度的某一個門限范圍時,空調(diào)自動開啟(用報警電路模擬即可)。2.2設(shè)計(jì)方案比較方案一:由單片機(jī)STC89C52來實(shí)現(xiàn)溫度控制系統(tǒng)的設(shè)計(jì),外圍電源采用+5V電源供電,通過DS18B20溫度傳感器采集實(shí)時溫度,由按鍵電路設(shè)定目標(biāo)溫度,LED數(shù)碼管可顯示正常狀態(tài)下的實(shí)時溫度和設(shè)定狀態(tài)下的目標(biāo)溫度,中央處理器由STC89C52單片機(jī)來完成,可通過串口與PC機(jī)通信,并在超出門限值時報警(模擬空調(diào)的自動開關(guān)控制)。這種方案,結(jié)構(gòu)簡單容易掌握,各部分電路實(shí)現(xiàn)起來都非常容易,在傳統(tǒng)的溫度測控設(shè)計(jì)中也應(yīng)用得較為廣泛,技術(shù)成熟。其原理框圖如圖2.1
5、:LED顯示PC機(jī)報警電路電源電路DS18B20溫度傳感器STC89C52按鍵電路圖2.1單片機(jī)原理實(shí)現(xiàn)框圖方案二是基于CPLD 溫度采集系統(tǒng),通過CPLD 構(gòu)成的控制器輸出一個脈沖給MAX232內(nèi)部A/D 轉(zhuǎn)換器的CLK 端,使其開始A/D 轉(zhuǎn)換,同時將CPLD 內(nèi)部地址發(fā)生器產(chǎn)生的地址信號經(jīng)地址選擇器(在CPLD 內(nèi)部)直接送到存儲器,A/D 轉(zhuǎn)換器所采集到的數(shù)據(jù)經(jīng)數(shù)據(jù)總線直接輸入到存儲器中保存,如此便完成一個采樣周期,重復(fù)上述步驟,直到完成預(yù)定數(shù)量的數(shù)據(jù)采集。首先以外置的雙極型二極管去感知外部的溫度變化并且轉(zhuǎn)化為電流信號;然后將電流信號傳送給溫度傳感器進(jìn)行ADC 轉(zhuǎn)換;最后通過CPLD
6、完成數(shù)據(jù)的串并轉(zhuǎn)化,并將數(shù)據(jù)發(fā)送到LED。方案二原理框圖如圖2.2所示。成批采集結(jié)束中斷處理程序地址發(fā)生器產(chǎn)生地址信號存儲器地址選擇器控制器MAX232 A/D數(shù)據(jù)轉(zhuǎn)換采集圖2.2 CPLD實(shí)現(xiàn)的原理框圖2.3方案論證通過方案一和方案二的比較,可以看出方案一的設(shè)計(jì)使用單片機(jī),而直接用單片機(jī)編程,用硬件電路搭建方便,通過STC89C52單片機(jī)編寫程序,來控制LED的亮滅以及與PC機(jī)通信。這樣可以大大簡化系統(tǒng)結(jié)構(gòu),降低材料的成本。而方案二采用CPLD芯片實(shí)現(xiàn)的電路,在智能化領(lǐng)域,雖說CPLD功能更強(qiáng)大,但價位較高,對于這樣一個小系統(tǒng),沒有必要用價格昂貴的集成芯片,這樣會增加成本。2.4方案選擇設(shè)計(jì)
7、直接用單片機(jī)編程,用硬件電路搭建方便,通過STC89C52單片機(jī)編寫程序,來控制LED的亮滅以及與PC機(jī)通信。這樣可以大大簡化系統(tǒng)結(jié)構(gòu),降低材料的成本。提高系統(tǒng)的先進(jìn)性和可靠性,能實(shí)現(xiàn)控制器的系統(tǒng)編程。所以從節(jié)約成本和功能方面綜合考慮,本次設(shè)計(jì)我們采用了方案一。3、單元模塊設(shè)計(jì)本節(jié)主要介紹系統(tǒng)各單元模塊的具體功能、電路結(jié)構(gòu)、工作原理、以及各個單元模塊之間的聯(lián)接關(guān)系;同時本節(jié)也會對相關(guān)電路中的參數(shù)計(jì)算、元器件選擇、以及核心器件進(jìn)行必要說明。3.1各單元模塊功能介紹及電路設(shè)計(jì)經(jīng)過以上所述的設(shè)計(jì)內(nèi)容及要求的分析,可以將主要電路分為以下幾部分:溫度采集模塊,按鍵模塊,LED顯示模塊,報警模塊,串口通信
8、系統(tǒng)。單片機(jī)初始化之后,將不停地掃描這些模塊。溫度采集模塊會實(shí)時地采集當(dāng)前溫度,按鍵模塊判斷是否有按鍵按下,并實(shí)現(xiàn)對應(yīng)的功能,顯示模塊能顯示正常狀態(tài)下的實(shí)時溫度和設(shè)定狀態(tài)下的目標(biāo)溫度,報警模塊實(shí)現(xiàn)越限報警功能,串口通信發(fā)送模塊將采集到的實(shí)時溫度值發(fā)送給上位機(jī)顯示出來,串口通信接收模塊能接收上位機(jī)發(fā)送下來的設(shè)定溫度值。3.1.1 按鍵輸入電路本設(shè)計(jì)采用行列式鍵盤,如圖3.1,行列式鍵盤用于按鍵數(shù)量較多的場合,它由行線和列線組成,按鍵位于行、列交叉點(diǎn)上,也稱矩陣鍵盤,相對于獨(dú)立式鍵盤更加節(jié)省硬件資源。按鍵處理方法采用循環(huán)掃描,即直接在主程序中利用循環(huán)掃描查詢和按鍵相連的I/O電平,然后進(jìn)行相應(yīng)處理
9、。循環(huán)掃描又分為行掃描和列掃描,本設(shè)計(jì)采用的是列掃描,即行線連接的單片機(jī)I/O口作為輸入口,列線連接的單片機(jī)I/O口作為輸出口。具體方法如下:行初始化電平為1,列初始化電平為0。檢查各行線輸入電平是否為全“1”。如果不是全“1”,則有鍵按下。然后逐列置零電平,其余各列為高,檢查行線的電平是否變?yōu)榱?,有,則該行列交叉的按鍵判斷為按下。本設(shè)計(jì)只使用前兩列按鍵,即一個4行×2列的一個矩陣鍵盤。各個按鍵功能是:(1) S2:設(shè)定狀態(tài)下對選定位加1。(2) S3:設(shè)定狀態(tài)下對選定位減1。(3) S4:設(shè)定狀態(tài)下左移選定位。(4) S5:設(shè)定狀態(tài)下右移選定位。(5) S6:確定鍵(顯示實(shí)時溫度)
10、。(6) S7;設(shè)定溫度(顯示設(shè)定溫度)。(7) S9:啟動/停止(開/關(guān)顯示)。圖 3.1 按鍵電路3.1.2 LED數(shù)碼管顯示電路 7段數(shù)碼管一般由8個發(fā)光二極管組成,其中由7個細(xì)長的發(fā)光二極管組成數(shù)字顯示,另外一個圓形的發(fā)光二極管顯示小數(shù)點(diǎn)。當(dāng)發(fā)光二極管導(dǎo)通時,相應(yīng)的一個點(diǎn)或一個筆畫發(fā)光??刂葡鄳?yīng)的二極管導(dǎo)通,就能顯示出各種字符,盡管顯示的字符形狀有些失真,能顯示的數(shù)符數(shù)量也有限,但其控制簡單,使有也方便。數(shù)碼管顯示電路采用共陽極數(shù)碼管,P0作位選,P2作段選。位碼:P0.7 P0.0 0xF7: 1 1 1 1 0 1 1 1LED2 LED1段碼:h g f e d c b a0xC
11、0: 1 1 0 0 0 0 0 0 圖 3.2 數(shù)碼管段碼圖 3.3 四位數(shù)碼管圖3.4 LED顯示電路3.1.3 溫度采集電路三針插孔用來插DS18B20的芯片,DS18B20的數(shù)據(jù)端二腳接到單片機(jī)的P36 管腳,用單片機(jī)來控制DS18B20,實(shí)現(xiàn)電路對溫度的監(jiān)控。DS18B20為單總路線芯片,單片機(jī)通過對芯片二管腳的時序控制,來啟動溫度轉(zhuǎn)換和寫入溫度上下限,讀出溫度轉(zhuǎn)換值等一系列操作,并將溫度轉(zhuǎn)換的值存入單片機(jī)中,單片機(jī)通過串口將數(shù)據(jù)傳輸?shù)诫娔X中,通過VB的控件MSCOMM1來接收數(shù)據(jù),并用文本框TEXT顯示出來。該設(shè)計(jì)對溫度的測控是用溫度芯片DS18B20來實(shí)現(xiàn)的,該模塊的電路圖如圖3
12、.5所示。通過單線總線端口訪問DS18B20的協(xié)議如下:步驟1.初始化步驟2.ROM操作指令步驟3.DS18B20功能指令每一次DS18B20的操作都必須滿足以上步驟,若是缺少步驟或是順序混亂,器件將不會返回值。圖3.5 溫度采集電路3.1.4 報警模塊設(shè)計(jì) 本設(shè)計(jì)采用蜂鳴器越限報方式(實(shí)際用LED代替),當(dāng)采集到的實(shí)時溫度超過設(shè)定溫度的±2 范圍時,將P3.3引腳置為低電平,使LED發(fā)光二極管發(fā)光,其原理圖如圖3.6所示。圖3.6 報警電路3.1.5 串口通信模塊設(shè)計(jì) MAX232是目前最常用的串行接口標(biāo)準(zhǔn),也是美國電子工業(yè)協(xié)會正式公布的串行總線標(biāo)準(zhǔn),用來實(shí)現(xiàn)計(jì)算機(jī)與外設(shè)之間、計(jì)算
13、機(jī)與計(jì)算機(jī)之間的數(shù)據(jù)通訊。MAX232 串行接口總線適用于:傳輸速率最大為20kBps,設(shè)備之間的通訊距離不大于15m。MAX232 協(xié)議以-5V-15V表示邏輯1;以+5V15V 表示邏輯0。ATmega8單片機(jī)帶有一個通用同步/異步全雙工串行收發(fā)模塊 USART,其主要特點(diǎn)如下:支持同步或異步操作;全雙工操作;同步操作時,可主機(jī)時鐘同步,也可從機(jī)時鐘同步;支持5、6、7、8和 9位數(shù)據(jù)位,1 位或2 位停止位的串行數(shù)據(jù)幀結(jié)構(gòu);獨(dú)立的高精度波特率發(fā)生器,不占用定時/計(jì)數(shù)器;由硬件支持的奇偶校驗(yàn)位發(fā)生和校驗(yàn);數(shù)據(jù)溢出檢測;幀錯誤檢測;包括錯誤起始位的檢測的噪聲濾波器和數(shù)字低通濾波器;三個完全獨(dú)
14、立的中斷,TX發(fā)送完成、TX 發(fā)送數(shù)據(jù)寄存器空、TX接收完成; 支持多機(jī)通信模式; 支持倍速異步通信模式。MAX232串行通信接口電路圖如圖3.7所示。圖3.7 MAX232串口通信原理圖3.1.6電源電路電源電路如圖3.8所示。電源電路為整個系統(tǒng)提供直流電。J16接USB接口,經(jīng)USB接口提供+5V電壓,開關(guān)S1控制電源是否導(dǎo)通,導(dǎo)通LED燈亮,單片機(jī)上電。電阻R10起到限流的作用,保護(hù)LED燈。圖3.8 電源電路圖3.1.7 89C52單片機(jī)模塊此模塊主要包含89C52單片機(jī)、時鐘電路、復(fù)位電路。在此次設(shè)計(jì)中時鐘電路之所以選擇11.0592M的晶振是因?yàn)樗軌驕?zhǔn)確地劃分成時鐘頻率,與UAR
15、T(通用異步接收器/發(fā)送器)常見的波特率相關(guān)。特別是較高的波特率(19600,19200),這些晶振的振蕩頻率都是準(zhǔn)確的。在復(fù)位電路中復(fù)位高電平有效,當(dāng)按鍵沒有按下時,RST端接地,為低電平。按鍵按下,VCC與R22導(dǎo)通,分壓后RST為高電平,單片機(jī)復(fù)位。89C52是89C51增強(qiáng)型單片機(jī)版本,它結(jié)合了CMOS的低功耗特征及CMOS的高速與高密度技術(shù),它基于標(biāo)準(zhǔn)的MCS-51單片機(jī)指令系統(tǒng)和體系結(jié)構(gòu),集成了向上或向下計(jì)數(shù)器和時鐘輸出等更多的功能,適合于類似機(jī)體控制等應(yīng)用場合。89C52內(nèi)置8位中央處理單元、8k片內(nèi)程序存儲器(ROM)、256字節(jié)內(nèi)部數(shù)據(jù)存儲器(RAM)、32個雙向輸入/輸出(
16、I/O)口、3個16位定時/計(jì)數(shù)器、5個兩級中斷結(jié)構(gòu)、一個全雙工串行通信口和片內(nèi)時鐘振蕩電路,更優(yōu)于89C51。 圖3.9 89C52單片機(jī)模塊3.2特殊器件的介紹本系統(tǒng)中主要使用了DS18B20此功能器件。下面就此器件的功能特點(diǎn)、主要參數(shù)和使用方法作相應(yīng)說明。3.3.1 DS18B20器件介紹 獨(dú)特的單線接口僅需一個端口引腳進(jìn)行通訊 每個器件有唯一的64位的序列號存儲在內(nèi)部存儲器中 簡單的多點(diǎn)分布式測溫應(yīng)用 無需其他多余外部器件 可通過USB數(shù)據(jù)線供電。供電范圍為3.0V到5.5V。 測溫范圍為-55+125(-67+257) 在-10+85范圍內(nèi)誤差不超過±0.5 溫度計(jì)分辨率可
17、選擇為912位 最多在750ms內(nèi)將溫度轉(zhuǎn)換為12位數(shù)字 用戶可定義的非易失性溫度報警設(shè)置 報警搜索命令識別并標(biāo)志超過程序限定溫度(溫度報警條件)的器件 與DS1822兼容的軟件 圖3.10 DS18B20實(shí)物圖4、軟件設(shè)計(jì)4.1軟件設(shè)計(jì)原理及所用工具 本節(jié)主要介紹系統(tǒng)軟件設(shè)計(jì)原理及KeilC、Proteus及VB軟件開發(fā)環(huán)境。4.1.1設(shè)計(jì)原理 以單片機(jī)STC89C52為主控器件,利用DS18B20采集外部溫度,并將溫度值存入一個4位數(shù)組num1,按鍵模塊先判斷是否有按鍵按下,若有,則實(shí)現(xiàn)對應(yīng)的功能對存設(shè)定溫度值的數(shù)組num某一位進(jìn)行加、減、左移、右移等,LED顯示分兩個狀態(tài),由按鍵控制,正
18、常狀態(tài)下顯示num1中的實(shí)時溫度,設(shè)定狀態(tài)下顯示num中的目標(biāo)溫度(門限溫度),報警模塊將數(shù)組num和num1轉(zhuǎn)化為對應(yīng)的數(shù)值并比較,若實(shí)時溫度超過設(shè)定溫度的一定范圍,則LED點(diǎn)亮報警,串口通信發(fā)送模塊將數(shù)組num1中的數(shù)不斷發(fā)送給上位機(jī)VB界面顯示出來,保證顯示的溫度為當(dāng)前溫度,串口通信接收模塊接收上位機(jī)發(fā)送下來的設(shè)定溫度值。4.1.2 KeilC、Proteus及VB軟件介紹Keil C51是由美國Keil Software公司出品的51系列兼容單片機(jī)C語言軟件開發(fā)系統(tǒng),與匯編相比,C語言在功能上、可讀性、結(jié)構(gòu)性、可維護(hù)性上有明顯的優(yōu)勢,因而易學(xué)易用。使用匯編語言后再使用C來開發(fā),體會更加
19、深刻。Keil C51 軟件提供豐富的函數(shù)庫和功能強(qiáng)大的集成開發(fā)調(diào)試工具,全新Windows界面。另外重要的一點(diǎn)是,只要看一下編譯后生成的匯編代碼,就能明顯體會到 Keil C51生成的目標(biāo)代碼效率是非常之高的,多數(shù)語句生成的匯編代碼都很緊湊,容易理解。在開發(fā)大型軟件時更能體現(xiàn)高級語言的優(yōu)勢。Proteus軟件是由英國Labcenter electronics公司出版的EDA工具軟件。它不僅具有其它EDA工具軟件的仿真功能,還能仿真單片機(jī)及外圍器件。它是目前最好應(yīng)用最廣的仿真單片機(jī)及外圍器件的工具。雖然目前國內(nèi)推廣剛剛起步,但已經(jīng)受到單片機(jī)愛好者、從事單片機(jī)教學(xué)的老師、致力于單片機(jī)開發(fā)應(yīng)用的科
20、研工作者的青睞。Proteus是世界上著名的仿真軟件,從原理圖布圖、程序調(diào)試到單片機(jī)與外圍電路的協(xié)同仿真,一鍵切換至PCB設(shè)計(jì),真正實(shí)現(xiàn)了從概念到產(chǎn)品上的完整設(shè)計(jì)。Proteus是目前世界上唯一將電路仿真軟件、PCB設(shè)計(jì)軟件和虛擬模型仿真軟件三合一的設(shè)計(jì)平臺。在編譯方面,它也支持Keil、IAR和MPLAB等多種編譯器。 Visual Basic是一種由微軟公司開發(fā)的包含協(xié)助開發(fā)環(huán)境的事件驅(qū)動編程語言。它源自于BASIC編程語言。從任何標(biāo)準(zhǔn)來說,VB都是世界上使用人數(shù)最多的語言不僅是盛贊VB的開發(fā)者還是抱怨VB的開發(fā)者的數(shù)量。同時VB擁有快速應(yīng)用程序開發(fā)(RAD)系統(tǒng)和圖形用戶界面(GUI),
21、可以輕易的使用RDO、DAO、ADO連接數(shù)據(jù)庫,還可以輕松的創(chuàng)建ActiveX控件。程序員可以輕松的使用VB提供的組件快速建立一個應(yīng)用程序。VB的程序可以包含一個主窗體和多個子窗體,或者是一個或多個窗體,類似于操作系統(tǒng)的樣子。VB的組件既可以擁有用戶界面,也可以沒有。有很少功能的對話框窗口(比如沒有最大化和最小化按鈕的窗體)可以用來提供彈出功能。這樣一來,服務(wù)器端程序就可以處理增加的模塊。4.2設(shè)計(jì)流程圖4.2.1 主程序設(shè)計(jì)原理圖4.1 軟件設(shè)計(jì)流程圖如圖4.1所示,本設(shè)計(jì)程序流程可分為以下幾個主要部分:首先初始化,聲明子函數(shù)、全局變量,并且打開、設(shè)定相關(guān)中斷,設(shè)置波特率。然后溫度采集,建立
22、DS18B20的溫度采集協(xié)議,將DS18B20采集到的實(shí)時溫度保存到數(shù)組中。接下來進(jìn)行按鍵掃描,若沒有按鍵按下,直接顯示實(shí)時溫度。若點(diǎn)設(shè)定溫度鍵,顯示設(shè)定溫度值,并且選定的那一位閃爍,通過按鍵可對選定位加1,減1,左移,右移;再點(diǎn)確定鍵,返回正常顯示狀態(tài),顯示實(shí)時溫度值。然后再判斷實(shí)時溫度是否超過設(shè)定溫度的門限范圍,若超過則報警,然后返回溫度采集子程序,如此循環(huán)執(zhí)行,若沒有超過則直接返回溫度采集進(jìn)行循環(huán)。4.2.2 溫度采集子程序流程圖圖4.2 溫度采集子程序流程圖 如上圖所示,由于通過單線總線端口訪問DS18B20必須遵守一定的協(xié)議,因此該子程序的設(shè)計(jì)也必須嚴(yán)格按照協(xié)議步驟的順序?qū)崿F(xiàn)。首先初
23、始化,定義子程序變量,調(diào)用復(fù)位子程序,復(fù)位DS18B20準(zhǔn)備采集溫度。然后調(diào)用寫字節(jié)子程序,執(zhí)行ROM操作命令,將其跳過。然后再次調(diào)用寫字節(jié)子程序,執(zhí)行溫度轉(zhuǎn)換,這里需要一個延時,等待程序轉(zhuǎn)換完成后,便可將采集到的溫度值的各位對應(yīng)的寫入存放實(shí)時溫度的數(shù)組num1。接下來再次初始化、執(zhí)行ROM操作命令,然后執(zhí)行存儲器操作命令,將溫度值讀出并計(jì)算,從而得到實(shí)時溫度值的每一位數(shù)值。4.2.3 RS232串口通信的程序流程圖圖4.3 串口通信RS232控件的程序流程圖上位機(jī)使用RS232控件與下位機(jī)通信,程序中使用該控件的OnComm事件,使整個子程序循環(huán)執(zhí)行,不斷接收下位機(jī)傳上來的數(shù)據(jù)。程序流程如圖
24、4.3所示,首先進(jìn)行初始化,設(shè)置通信端口、波特率等參數(shù),建立通信協(xié)議,然后接收數(shù)據(jù)并轉(zhuǎn)換。當(dāng)收到的數(shù)據(jù)為接收標(biāo)志位時,則清空數(shù)據(jù),等待接收數(shù)據(jù),然后返回接收轉(zhuǎn)換數(shù)據(jù),接收完四個字節(jié)的數(shù)據(jù)后,將數(shù)據(jù)轉(zhuǎn)換成數(shù)值型,最后顯示在對應(yīng)的文本框中,然后還要再次返回接收數(shù)據(jù),不斷循環(huán),以保證顯示溫度為當(dāng)前的溫度值。5、系統(tǒng)調(diào)試5.1 硬件調(diào)試經(jīng)過Keil C和Proteus的仿真調(diào)試之后,我們將程序下載到了單片機(jī)實(shí)驗(yàn)板進(jìn)行硬件仿真,基本實(shí)現(xiàn)了和軟件仿真接近的結(jié)果,但是仍然有一些問題:第一,數(shù)碼管總有一位不能點(diǎn)亮,但其位選標(biāo)志P03口控制的LED燈是亮的。用萬用表對連接在數(shù)碼管上的三極管進(jìn)行導(dǎo)通測量,發(fā)現(xiàn)三極
25、管不能導(dǎo)通,換了一個三極管后,那位數(shù)碼管還是不能點(diǎn)亮,再用萬用表檢測,發(fā)現(xiàn)是由于那塊焊盤挨得比較緊密,焊接時不小心使相鄰兩個三極管相連,導(dǎo)致PNP不能正常工作。第二,鍵盤和單片機(jī)I/O口連線不正確,導(dǎo)致鍵盤不能起作用。后面結(jié)合原理圖和程序重新連好線即可。由于我們用了報警電路,其控制端口為P3.3口,在按鍵選用的時候,也用了P3.3口,導(dǎo)致報警電路不能正常工作,按鍵按下P3.3口,蜂鳴器就鳴叫,這個問題修改按鍵的控制端口即可。第三,液晶不能顯示。調(diào)節(jié)W2即液晶的背光調(diào)節(jié)即可正常顯示。5.2軟件調(diào)試程序主要包括按鍵掃描,溫度采集,LED數(shù)碼管顯示掃描,報警子程序以及串口通信發(fā)送、接收子程序。在程序
26、設(shè)計(jì)初期遇到很多設(shè)計(jì)錯誤上的問題,通過反復(fù)整理思路,修改程序流程圖,更正這些錯誤。在設(shè)計(jì)后期,程序調(diào)試的過程中,又遇到了幾個可靠性和穩(wěn)定性方面的問題,經(jīng)過仔細(xì)地研究、反復(fù)地推敲和不斷地嘗試,也逐一解決了這些問題,是整個系統(tǒng)更加穩(wěn)定可靠。下面介紹一下在整個調(diào)試過程中遇到的問題,以及我們解決的方法。第一,按鍵時LED非正常閃爍。最初設(shè)計(jì)的按鍵掃描程序在調(diào)試的時,會出現(xiàn)一個問題每按下一次按鍵,LED就會閃爍一次;若按下按鍵不松開,則LED會不顯示,直到松開按鍵才會重新顯示。這是由于先前設(shè)計(jì)的程序中在執(zhí)行按鍵功能之后有一個while語句判斷按鍵是否松開,即while(P1&0xe2)!=0xe
27、2);若所以當(dāng)按鍵按下到松開按鍵的時間內(nèi),整個程序一直在這里停留,所以不會顯示或者執(zhí)行其他子程序,從而就使得每按鍵一次LED顯示閃爍一次。解決方法:設(shè)置一個按鍵標(biāo)志位z,按前z=0,按下后按鍵子程序只講將z置為1,然后跳出,繼續(xù)執(zhí)行其他子程序。下一次掃描按鍵子程序的時候,先判斷z的值,若為0,則不執(zhí)行按鍵功能程序,若為1,則執(zhí)行按鍵功能程序,并將z重新置為0,等待下一次按鍵的到來。這樣,按鍵子程序不會進(jìn)入while語句的死循環(huán),因此LED顯示在按鍵時也就不會閃爍,使得整個顯示更加穩(wěn)定、流暢。第二,閃爍顯示時按鍵不靈敏。在LED閃爍顯示設(shè)定溫度時,按鍵不夠靈敏,有時有效有時無效。這是由于LED閃
28、爍顯示是由兩個90次的循環(huán)程序完成的。因此該子程序的延時會相對較大,所以導(dǎo)致按鍵時程序可能正在執(zhí)行該循環(huán),并沒有掃描到按鍵,從而按鍵變得不靈敏。解決方法:解決這個問題的方法很簡單,只需要在LED閃爍顯示程序的每一次循環(huán)中都調(diào)用一次按鍵子程序Getch(),判斷是否有鍵按下。這樣整個系統(tǒng)的按鍵會更加可靠、更加靈敏。第三,串口通信下位機(jī)接收錯位。上位機(jī)通過串口向下位機(jī)發(fā)送設(shè)定溫度時,下位機(jī)接收到的數(shù)據(jù)錯開一位。這是由于上位機(jī)每一次發(fā)送4個數(shù),而下位機(jī)程序卻判斷、接收了5次,因此錯開一位。解決方法:將原程序中的while語句改成do.while語句并設(shè)置一個標(biāo)志位t,以判斷4個數(shù)是否接收完畢。以下是
29、修改前的串口通信下位機(jī)接收子程序(左)和修改后的串口通信下位機(jī)接收子程序(右)的對比。void R_temp() unchar k; if(RI) for(k=0;k<4;k+) while(!RI); numk=SBUF; RI=0; void R_temp()unchar k=0; do if(RI) numk=SBUF; RI=0; k+; t=1; if(k=4) t=0; ES=0; while(t);第四,延時問題。DS18B20器件對時序要求嚴(yán)格,之前由于延時問題,導(dǎo)致出現(xiàn)溫度不能正常采集的情況。溫度傳感器DS18B20的延時首先是一個480960微秒的低電平脈沖,然后釋放
30、總線變?yōu)楦唠娖?,并在隨后的480微秒時間內(nèi)對總線進(jìn)行檢測,如果有低電平出現(xiàn)說明總線上有器件已做出應(yīng)答。若無低電平出現(xiàn)一直都是高電平說明總線上無器件應(yīng)答。做為從器件的DS18B20在一上電后就一直在檢測總線上是否有480960微秒的低電平出現(xiàn),如果有,在總線轉(zhuǎn)為高電平后等待1560微秒后將總線電平拉低60240微秒做出響應(yīng)存在脈沖,告訴主機(jī)本器件已做好準(zhǔn)備。若沒有檢測到就一直在檢測等待。寫周期最少為60微秒,最長不超過120微秒。而完成一個讀時序過程,也至少需要60us才能完成等等,對延時都有嚴(yán)格的要求,否則溫度不能正常顯示。溫度采集仿真圖如下:圖5.1軟件仿真圖上位機(jī)顯示圖如下:圖5.2上位機(jī)
31、顯示圖6、系統(tǒng)功能、指標(biāo)參數(shù)6.1 系統(tǒng)功能溫度采集模塊會實(shí)時地采集當(dāng)前溫度,按鍵模塊判斷是否有按鍵按下,并實(shí)現(xiàn)對應(yīng)的功能,顯示模塊能顯示正常狀態(tài)下的實(shí)時溫度和設(shè)定狀態(tài)下的目標(biāo)溫度,報警模塊實(shí)現(xiàn)越限報警功能,串口通信發(fā)送模塊將采集到的實(shí)時溫度值發(fā)送給上位機(jī)顯示出來,串口通信接收模塊能接收上位機(jī)發(fā)送下來的設(shè)定溫度值。6.2 系統(tǒng)指標(biāo)參數(shù)指標(biāo)本系統(tǒng)主要是對溫度的實(shí)時監(jiān)測與控制。所以測試系統(tǒng)指標(biāo)參數(shù)時主要是對溫度值的測試。表6.1 溫度測量變化值測定次數(shù)123456LED顯示手溫變化()29.7530.1231.5031.8732.6234.506.3系統(tǒng)功能及指標(biāo)參數(shù)分析本系統(tǒng)只實(shí)現(xiàn)了主要的溫度測
32、控功能,對于比較完善的系統(tǒng)功能實(shí)現(xiàn)則還有比較大的差距。1、本設(shè)計(jì)只能按鍵設(shè)定目標(biāo)溫度,不能設(shè)定目標(biāo)溫度的門限范圍,即門限范圍只能是目標(biāo)溫度±2,使用者無法通過按鍵設(shè)定這值。2、設(shè)計(jì)中可以把下位機(jī)采集到的實(shí)時溫度通過串口發(fā)送給上位機(jī)顯示,上位機(jī)也能把設(shè)定溫度通過串口發(fā)送給下位機(jī),但是當(dāng)下位機(jī)通過按鍵設(shè)定目標(biāo)溫度時,不能將設(shè)定的溫度發(fā)送給上位機(jī)顯示,所以程控部分還有待改善。3、上位機(jī)通過串口發(fā)送設(shè)定溫度給下位機(jī)的VB程序中的延時,從10ms1000ms,經(jīng)過反復(fù)調(diào)試最終設(shè)定為30ms,雖已能滿足要求,但是不能在下位機(jī)顯示設(shè)定溫度狀態(tài)下發(fā)送數(shù)據(jù),否則接收錯誤。并且對于該延時對系統(tǒng)的影響仍不
33、清楚,有待進(jìn)一步的分析和思考。7、結(jié)論在本次設(shè)計(jì)中,基本完成了本設(shè)計(jì)的主要的要求及功能。在設(shè)計(jì)開始前我對各個模塊進(jìn)行了詳細(xì)的分析和設(shè)計(jì)準(zhǔn)備工作,設(shè)計(jì)過程中,相互協(xié)調(diào),積極請教參與完成各個技術(shù)實(shí)現(xiàn)的難點(diǎn)。本設(shè)計(jì)要求實(shí)現(xiàn)報警溫控器設(shè)計(jì),實(shí)時溫度是通過DS18B20采集的,按鍵可以設(shè)定目標(biāo)溫度,實(shí)時溫度超出設(shè)定的門限范圍,則將P3.3口置為低電平,LED燈點(diǎn)亮報警。VB界面能接收和顯示下位機(jī)傳上來的實(shí)時溫度值,也能將設(shè)定溫度值(一個4位的數(shù)組)發(fā)送給下位機(jī),這是本次設(shè)計(jì)的難點(diǎn),也是一個很大的創(chuàng)新點(diǎn),真正實(shí)現(xiàn)了遠(yuǎn)程測控的功能,在VB程序中我們設(shè)置了通信端口選擇,這并不會出現(xiàn)因?yàn)橥ㄐ哦丝诘牟煌荒軐?shí)現(xiàn)
34、測控的情況,從而使上位機(jī)與下位機(jī)之間能夠相互通信,遠(yuǎn)程測控功能對溫度值有嚴(yán)格要求的系統(tǒng)來說是非常方便的。當(dāng)然,在本次設(shè)計(jì)中,還有存在很多不足的地方。比如,下位機(jī)設(shè)定的目標(biāo)溫度不能發(fā)送給上位機(jī)顯示,這在遠(yuǎn)程測控系統(tǒng)中是一個很大的不足,另外,上位機(jī)VB程序的延時與下位機(jī)接收之間的問題也有待改善,這些不足希望可以在以后的設(shè)計(jì)中加以改善,使系統(tǒng)更加完善。8、總結(jié)與體會8.1設(shè)計(jì)小結(jié)在本次設(shè)計(jì)中,我遇到了很多不明白的地方,在尋求幫助的情況下,最終完成了設(shè)計(jì)。設(shè)計(jì)難免出現(xiàn)問題,但是出現(xiàn)問題最重要的就是學(xué)會解決,利用軟、硬件的調(diào)試,將整個設(shè)計(jì)完善到最好。本次設(shè)計(jì)的主要任務(wù)我達(dá)到了,實(shí)現(xiàn)了設(shè)計(jì)的基本要求。本設(shè)
35、計(jì)采用模塊化設(shè)計(jì)思想,進(jìn)行了軟件設(shè)計(jì),通過對系統(tǒng)主程序的流程進(jìn)行分析,編寫了系統(tǒng)程序,同時說明了各模塊的功能,利用軟件仿真、調(diào)試和硬件調(diào)試,最終設(shè)計(jì)出了具有報警功能的溫控器,基本實(shí)現(xiàn)了其要求。8.2設(shè)計(jì)體會通過本次的智能化設(shè)計(jì),不論是理論方面,還是實(shí)踐方面,我都獲益匪淺,歸納起來,有以下幾個方面的收獲:(1)學(xué)習(xí)與掌握了STC89C52單片機(jī)的基本原理及其應(yīng)用,對它的各種硬件接口與軟件設(shè)計(jì)方法有更加深入的認(rèn)識和理解。尤其是對串口通信有了更深的了解。(2)學(xué)會了基本的C語言編程,掌握了用C語言編程控制51單片機(jī)的方法以及它的具體程序?qū)崿F(xiàn)步驟;(3)進(jìn)一步鞏固了VB知識,學(xué)會了用VB界面對電路系統(tǒng)
36、的實(shí)時測控。(4)對利用萬用表檢測、調(diào)試硬件電路的方法有了非常大的認(rèn)識與掌握,對利用萬用表判斷電路導(dǎo)通截止的方法也有了充分的掌握;(5)在這次設(shè)計(jì)中,充分認(rèn)識到與人協(xié)作和與人交流是非常重要的,對電路各個板塊有些不熟悉,但在遇到問題相互討論交流才使問題能得以解決。8.3設(shè)計(jì)改進(jìn)及建議由于時間、條件和個人水平及經(jīng)驗(yàn)所限,本次設(shè)計(jì)還有許多不足,需要改進(jìn)。下位機(jī)設(shè)定的目標(biāo)溫度不能發(fā)送給上位機(jī)顯示,這在遠(yuǎn)程測控系統(tǒng)中是一個很大的不足,另外,上位機(jī)VB程序的延時與下位機(jī)接收之間的問題也有待改善,這些不足希望能在以后的學(xué)習(xí)中改進(jìn)。9.謝辭 在老師的辛勤指導(dǎo)下,在實(shí)驗(yàn)室同學(xué)的友好幫助下,我積極參與討論和思考,
37、完成本此畢業(yè)設(shè)計(jì),此次設(shè)計(jì),使我受益匪淺。我很珍惜有這次畢業(yè)設(shè)計(jì)的機(jī)會,感謝電氣信息學(xué)院各位老師的幫助。在本次設(shè)計(jì)中,我要特別感謝陳海川老師及研究生師兄對我的指導(dǎo),也要感謝同學(xué)們對我的幫助,有了你們的幫助,我才得以順利完成設(shè)計(jì)。10、參考文獻(xiàn)1 張毅剛、彭喜元.單片機(jī)原理及應(yīng)用M.北京:高等教育出版社,20032 張海兵、李敏.PROTEL電路設(shè)計(jì)實(shí)例與分析M. 北京:人民郵電出版社,20053 李春葆、金晶.C語言程序設(shè)計(jì)輔導(dǎo)M.北京:清華大學(xué)出版社,20074 楊將新、李華軍.單片機(jī)程序設(shè)計(jì)及應(yīng)用(第三版)M. 北京:電子工業(yè)出版社,20065 魯捷、焦振宇.PROTEL 2004 電路設(shè)
38、計(jì)M. 北京:清華大學(xué)出版社,20066 康光華、陳大欽.電子技術(shù)基礎(chǔ)模擬部分(第四版)M.高等教育出版社.19877 謝自美 主編.電子線路設(shè)計(jì).實(shí)驗(yàn).測試(第二版)M華中理工大學(xué)出版社,20058 康光華、鄒壽彬.電子技術(shù)基礎(chǔ)數(shù)字部分(第五版)M. 北京:高等教育出版社,20069 謝維成、劉勇.微機(jī)原理與接口技術(shù)M.華中科技大學(xué)出版社,200910 徐鳳霞,趙成安. STC89C52單片機(jī)溫度控制系統(tǒng)J. 齊齊哈爾大學(xué)學(xué)報 , 2004,(01)11 張開生,郭國法. MCS-51單片機(jī)溫度控制系統(tǒng)的設(shè)計(jì)J. 微計(jì)算機(jī)信息 , 2005,(07)12 李萍. 單片機(jī)溫度控制系統(tǒng)的設(shè)計(jì)與實(shí)
39、現(xiàn)J. 固原師專學(xué)報 , 1999,(06)13 馬明建數(shù)據(jù)采集與處理技術(shù)M西安交通大學(xué)出版社,20059,(02)14 曹龍漢,劉安才,高占國MCS-51單片機(jī)原理及應(yīng)用M重慶出版社,2004.1015 龔紅軍. 單片機(jī)溫度控制系統(tǒng)J. 電氣時代 , 2002,(10)附錄一:相關(guān)設(shè)計(jì)圖與源程序1系統(tǒng)的原理電路圖 2系統(tǒng)PCB圖3源程序代碼下位機(jī)程序:#include <reg51.h>#include <intrins.h>#define unchar unsigned char#define unint unsigned int#define nop() _nop
40、_()sbit DQ=P36;sbitspeaker=P33; unsigned char dispbitcode8=0xf7,0xfb,0xfd,0xfe/*0xfe,0xef,0xdf,0xbf,0x7f*/;unsigned char dispcode11=0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xff;unchar t=0;unint temper;unchar a1,a2,a3,a4; void displys(void);void delay1ms(void);void delay_10ms(void);void Tem
41、pDelay(unchar us);void write_byte(unchar date);unchar read_byte();void get_tem();void Alarm123();void Initial_com();void T_temp();void R_temp();unint num=0,0,5,2; unint num1=0,0,0,0; unint s=0; unint z=0; unint q=0;unint mark=4; unint start=0;unsigned char x,y;void reset()unchar st=1;DQ=1;nop();nop(
42、);while(st) DQ=0; TempDelay(112);DQ=1;TempDelay(8);/56usif(DQ=1)st=1;elsest=0; TempDelay(74);void write_byte(unchar date)unchar i,temp;DQ=1;nop();nop();for(i=8;i>0;i-) temp=date&0x01;DQ=0;TempDelay(1); if(temp=1)DQ=1; TempDelay(5); DQ=1;date=date>>1;unchar read_byte()unchar i,date;stati
43、c bit j;for(i=8;i>0;i-)date=date>>1;DQ=1;nop();nop();DQ=0;nop();nop();nop();nop();nop();nop();DQ=1;nop();nop();nop();nop();j=DQ;if(j=1)date=date|0x80;TempDelay(2);return (date);void get_tem()unchar tem1,tem2,tempnum;float aaa;reset();write_byte(0xCC);write_byte(0x44);for(tempnum=100;tempnum
44、>0;tempnum-);num10=a4;num11=a3;num12=a2;num13=a1;reset();write_byte(0xCC); write_byte(0xBE); tem1=read_byte();tem2=read_byte(); aaa=(tem2*256+tem1)*6.25;temper=(int)aaa; a1=temper/1000;a2=temper%1000/100;a3=temper%100/10;a4=temper%10;void TempDelay(unchar us)while(us-); void delay_10ms(void) unsi
45、gned char i,j; for(i=0;i>0;i-) for(j=248;j>0;j-);void Getch() P1=P1|0xE2; P3=0x7b; y=P1&0xe2; if(y!=0Xe2) delay_10ms(); if(y!=0Xe2) z=1; P3 = 0XFB; x=P1&0xe2; if(x!=0xe2) q=0; else P3 = 0X7F;x=P1&0xe2; if(x!=0xe2)q=1; else if(z=1) z=0; if(q=0) switch(x) case 0xe0:if(nums=9)nums=0;b
46、reak; nums=nums+1; break; case 0xc2: if(nums=0)nums=9;break;nums=nums-1;break; case 0xa2:if(s<3) +s,mark=s; break; case 0x62: if(s>0) -s,mark=s; break; else if(q=1) switch(x) case 0xe0: s=0;mark=4; break; case 0xc2: s=0;mark=0; break; case 0xa2: break; case 0x62: start=!start;s=0;mark=4;break;
47、 void displys() if(start=1) char k;char l; switch(mark) case 4:for(k=0;k<4;k+) P0 = dispbitcodek; P2 = dispcodenum1k; delay1ms(); if(k=2) P2&=0x7f; delay1ms(); P0=0xff; P2=0xc6; P0=0xdf; delay1ms(); P0=0xff; delay1ms(); break; case 0: for(l=0;l<90;l+) Getch();for(k=0;k<4;k+)if(k=0) k+;
48、P0 = dispbitcodek; P2 = dispcodenumk; delay1ms(); if(k=2) P2&=0x7f; delay1ms();P0=0xff; P2=0xc6;P0=0xdf;delay1ms(); P0=0xff; delay1ms(); for(l=0;l<90;l+) Getch();for(k=0;k<4;k+) P0 = dispbitcodek; P2 = dispcodenumk;delay1ms();if(k=2)P2&=0x7f;delay1ms();P0=0xff; P2=0xc6; P0=0xdf;delay1m
49、s();P0=0xff; delay1ms(); break; case 1: for(l=0;l<90;l+) Getch();for(k=0;k<4;k+) if(k=1)k+;P0 = dispbitcodek;P2 = dispcodenumk;delay1ms(); if(k=2) P2&=0x7f; delay1ms(); P0=0xff; P2=0xc6;P0=0xdf;delay1ms();P0=0xff; delay1ms(); for(l=0;l<90;l+) Getch();for(k=0;k<4;k+)P0 = dispbitcodek;P2 = dispcodenumk;delay1ms();if(k=2) P2&=0x7f; delay1ms(); P0=0xff; P2=0xc6;P0=0xdf;delay1ms(); P0=0xff; delay1ms(); break; case 2: for(l
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 軟件開發(fā)外包合同免責(zé)條款
- 醫(yī)療器械使用風(fēng)險告知及免責(zé)合同
- 家具安裝工合同協(xié)議書
- 物聯(lián)網(wǎng)+智慧城市項(xiàng)目投資合同
- 無錫全日制勞動合同
- 藥店裝修施工合同
- 高新技術(shù)轉(zhuǎn)讓合作合同
- 電子商務(wù)平臺入駐及推廣服務(wù)合同
- 裝修地暖施工合同
- 浙江工業(yè)大學(xué)《藥用植物栽培學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 2024年度-工程造價培訓(xùn)課件全新
- 高中學(xué)校工會工作制度
- 人教版(2019) 必修第二冊 Unit 1 Cultural Heritage Discovering Useful Structures(教案)
- 電氣控制與PLC課程說課王金莉-長春光華學(xué)院電氣信息學(xué)院
- 《積極心理學(xué)(第3版)》 課件 第10章 感恩
- 2024年人教版初三數(shù)學(xué)(下冊)模擬試卷及答案(各版本)
- 2024年工業(yè)廢水處理工(技師)技能鑒定理論考試題庫-上(單選題)
- 醫(yī)院CT機(jī)房裝飾改造工程施工組織設(shè)計(jì)
- 基坑監(jiān)測總結(jié)報告
- 2024年華師大版九年級數(shù)學(xué)下冊全冊教案
- 合肥市廬陽區(qū)雙崗街道社區(qū)工作者招聘考試試題及答案2024
評論
0/150
提交評論