



版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、溫控風扇的設計摘要如工溫控風扇在現代社會中的生產以及人們的日常生活中都有廣泛的應用, CPU業生產中大型機械散熱系統中的風扇、現在筆記本電腦上的廣泛應用的智能作為控制器, FPGAXILINXFPGA溫控風扇系統,采用風扇等。本文設計了基于通過繼電器并根據采集到的溫度, DS18B20作為溫度采集元件,利用溫度傳感器并根據檢測到的溫度與系統設定的溫度驅動風扇電機。 采用熱釋電紅外傳感器,并能根據溫度的變化自動改變風扇電機的比較實現風扇電機的自動啟動和停止, LED 數碼管顯示檢測到的溫度、設定的溫度和轉速。的轉速,同時在整體方案設計第一章前言 1.1功能等方現在家用電器在款式、隨著人們生活水平
2、及科技水平的不斷提高,面日益求精,并朝著健康、安全、多功能、節能等方向發展。過去的電器不斷的顯露出其不足之處。電風扇作為家用電器的一種,同樣存在類似的問題。現在電風扇的現狀:大部分只有手動調速,再加上一個定時器,功能單一。浪費電且不說比如說人們常常離開后忘記關閉電風扇,存在的隱患或不足: 再比如說前半夜溫度高電風扇調長時間工作還容易損壞電器。還容易引發火災,的風速較高,但到了后半夜氣溫下降,風速不會隨著氣溫變化,容易著涼。 之所以會產生這些隱患的根本原因是: 缺乏對環境的檢測。 當房間里面沒有人時能自動的如果能使電風扇具有對環境進行檢測的功能, 這樣一來就避免了關閉電風扇; 當溫度下降時能自動
3、的減小風速甚至關閉風扇, 上述的不足。本次設計就是圍繞這兩點對現有電風扇進行改進。1.2 系統整體設計本設計的整體思路是:以 XILINX FPGA作為控制中心,通過提取熱釋電紅外傳感器感應到的人體紅外線信息, 并利用溫度傳感器 DS18B20檢測環境溫度并直接輸出數字溫度信號給 FPGA進行處理,在 LED數碼管上顯示當前環境溫度值以其中預設溫度值只能為整數形式,通過獨立鍵盤輸入預設溫度值,及預設溫度值。 檢測到的當前環境溫度可精確到小數點后一位。 同時采用 PWM脈寬調制方式來改變直流風扇電機的轉速。并通過兩個按鍵改變預設溫度值,一個提高預設溫度,另一個降低預設溫度值。系統結構框圖如下:鍵
4、盤輸入電熱釋紅外傳感器XILINX FPGA數碼管蜂鳴器溫度傳感( DS18B20)驅動電路 PWM直流電機1.3 方案論證本設計要實現風扇直流電機的溫度控制, 使風扇電機能根據環境溫度的變化自動啟停及改變轉速,需要比較高的溫度變化分辨率以及穩定可靠的換擋停機控制部件。溫度傳感器的選擇在本設計中,溫度傳感器的選擇有以下兩種方案:方案一:采用熱敏電阻作為檢測溫度的核心元件, 并通過運算放大器放大, 由于熱敏電阻會隨溫度變化而變化, 進而產生輸出電壓變化的微弱電壓變化信號, 再經模數轉換芯片 ADC0809將微弱電壓變化信號轉化為數字信號輸入 FPGA處理。方案二:采用數字式的集成溫度傳感器 DS
5、18B20作為溫度檢測的核心元件, 由其檢測并直接輸出數字溫度信號給 FPGA進行處理。對于方案一, 采用熱敏電阻作為溫度檢測元件, 有價格便宜, 元件易購的優放大以及轉換的過程在信號采集、但熱敏電阻對溫度的細微變化不太敏感,點,中還會產生失真和誤差, 并且由于熱敏電阻的 R-T 關系的非線性, 其自身電阻對溫度的變化存在較大誤差, 雖然可以通過一定電路來修正, 但這不僅將使電路變得更加復雜,而且在人體所處環境溫度變化過程中難以檢測到小的溫度變化。 故該方案不適合本系統。對于方案二,由于數字式集成溫度傳感器 DS18B20的高度集成化, 大大降低了外接放大轉化等電路的誤差因數, 溫度誤差變得很
6、小, 并且由于其檢測溫度的原理與熱敏電阻檢測的原理有著本質的不同, 使得其溫度分辨力極高。 溫度值在器件內部轉化成數字量直接輸出, 簡化了系統程序設計, 又由于該溫度傳感器采用先進的單總線技術,與 FPGA的接口變得非常簡潔,抗干擾能力強,因此該方案適用于本系統。調速方式的選擇方案一:采用數模轉換芯片 DAC0832來控制,由 FPGA根據當前環境溫度值輸出相應數字量到 DAC0832中,再由 DAC0832產生相應模擬信號控制晶閘管的導通角,從而通過無級調速電路實現風扇電機轉速的自動調節。方案二:采用 FPGA軟件編程實現 PWM(脈沖寬度調制)調速的方法。 PWM是英文 Pulse Wid
7、th Modulation 的縮寫,它是按一定的規律改變脈沖序列的脈沖寬度,以調節輸出量和波形的一種調節方式, 在 PWM驅動控制的調節系統中, 最常用的是矩形波 PWM信號,在控制時需要調節 PWM波得占空比。占空比是指高電平持續時間在一個周期時間內的百分比。 在控制電機的轉速時, 占空比越大, 2 。 100% 轉速就越快,若全為高電平,占空比為時,轉速達到最大對于方案一,該方案能夠實現對直流風扇電機的無級調速, 速度變化靈敏, 但是 D/A 轉換芯片的價格較高,與其溫控狀態下無級調速功能相比性價比不高。對于方案二,相對于其他用硬件或者軟硬件相結合的方法實現對電機進行調速而言,采用 PWM
8、用純軟件的方法來實現調速過程,具有更大的靈活性,并可大大降低成本,能夠充分發揮 FPGA的功能,對于簡單速度控制系統的實現提供了一種有效的途徑。綜合考慮選用方案二。各單元模塊的硬件設計第二章系統主要器件包括熱釋電紅外傳感器、DS18B20溫度傳感器、 XILINX FPGA、 LED共陰數碼管、風扇直流電機。2.1 系統器件簡介單線數字溫度傳感器簡介DS18B20數字溫度傳感器,是采用美國 DALLAS半導體公司生產的 DS18B20可組網數字溫度傳感器芯片封裝而成,它具有微型化、低功耗、高性能、抗干擾能力強、易配微處理器等優點,可直接將溫度轉化成串行數字信號供處理器處理。適用于各種狹小空間設
9、備數字測溫和控制領域。DS18B20的主要特征:測量的結果直接以數字信號的形式輸出,以“一線總線”方式串行傳送給 CPU,同時可傳送 CRC校驗碼,具有極強的抗干擾糾錯能力;溫度測量范圍在 -55 +125之間,在-10 +85時精度為± 0.5 ;可檢測 溫度分辨率為 912位,對應的可分辨溫度分別為 0.5 ,0.25 ,0.125 和 0.0625 ,可實現高精度測溫; 它單線接口的獨特性, 使它與微處理器連接時僅需一條端口線即可實現與微處理器的雙向通信; 支持多點組網功能, 即多個 DS18B20可以并聯在唯一的三線上,實現組網多點測溫的功能;工作電壓范圍寬, 3 。3.05
10、.5V其范圍在DS18B20內部結構主要有四部分:64 位 ROM、溫度傳感器、非揮發的溫度報警觸發器 TH和 TL、配置寄存器。 其管腳有三個,其中 DQ為數字信號端, GND為電源地, VDD為電源輸入端。(電原理圖如右圖)熱釋電紅外線傳感器原理簡介人體輻射的紅外線中心波長為910um,而探測元件的波長靈敏度在0.220um 范圍內幾乎穩定不變。 在傳感器頂端開設了一個裝有濾光鏡片的窗口,這個濾光片可通過光的波長范圍為 710um,正好適合于人體紅外輻射的探測,而對其它波長的紅外線由濾光片予以吸收, 這樣便形成了一種專門用作探測人體輻射的紅外線傳感器。實質上熱釋電傳感器是對溫度敏感的傳感器
11、。 它由陶瓷氧化物或壓電晶體元件組成,在元件兩個表面做成電極,如圖 2 所示。在環境溫度有 T 的變化時,由于有熱釋電效應,在兩個電極上會產生電荷Q,即在兩電極之間產生一微弱的電壓 V。風扇電機控制模塊電路圖:蜂鳴器以及按鍵模塊電路圖如下:軟件設計第三章 程序設置程序設計部分主要包括主程序、DS18B20模塊、風扇電機控制模塊、熱釋電紅外線傳感器模塊以及蜂鳴器模塊。DS18B20模塊完成對 DS18B20的初始化,對環境溫度的實時采集、主機對溫度傳感器數據的讀取及數據換算以及包含了溫度對數碼管的輸出;風扇電機控制函數則根據按鍵值以及溫度的數值完成對電機轉速及啟停的控制;熱釋電紅外線傳感器模塊完
12、成對人體是否存在進行檢測,并將信號送到電機模塊使能端入口;蜂鳴器模塊對按鍵進行提醒。主程序流程圖如圖:頂層模塊:module top(clk,rst,icdata,dclk,dlk,dain,drst,key,moto,led,sc2);inputclk;inouticdata;inputrst;input1:0key;output dclk;output dlk;output dain;output drst;output moto;output 2:0led;output sc2;wire 1:0jieguo;wire 1:0duty_cyc;counter counter(.clk(cl
13、k),.rst(rst),.icdata(icdata),.dclk(dclk),.dlk(dlk),.drst(drst),.dain(dain),.jieguo(jieguo),.duty_cyc(duty_cyc);dianji dianji(.clk(clk),.key(key),.wd(jieguo),.moto(moto),.led(led),.duty_cyc(duty_cyc);fengmingqi fengmingqi(.clk(clk),.rst(rst),.key(key),.sc2(sc2);endmoduleDS18B20模塊:這里我們采用 12 位分辨率 ,DS18
14、B20在 750ms 內把溫度值轉換為數字, 實現高精度測溫。根據 DS18B20 的通訊協議,主機控制 DS18B20 完成溫度轉換必須經過三個步驟:每一次讀寫之前都要對 DS18B20 進行復位操作,復位成功后發送一條 ROM 指令,最后發送 RAM 指令,這樣才能對 DS18B20 進行預定的操作。復位要求主 CPU 將數據線下拉 500 微秒,然后釋放,當 DS18B20 收到信號后等待 16 60 微秒左右,后發出 60 240 微秒的存在低脈沖, 主 CPU 收到此信號表示復位成功。流程圖如下:Verilog代碼如下:module DS18B20(nReset,clk,data,i
15、cdata);/nReset是復位端 ;data 是輸出溫度數據 ;icdata 是總線 input nReset,clk;output 15:0 data;inout icdata;wire a,b;yuu3(.temperature(data),.one_wire(icdata),.rst_n(nReset),.clk(clk);endmodulemodule yu(inputclk,/ 50MHz 時鐘inputrst_n,/ 異步復位inoutone_wire,/ One -Wire 總線output 15:0 temperature/ 輸出溫度值);/+/ 分頻器 50MHz -&g
16、t;1MHz開始/+reg 5:0 cnt;/ 計數子always (posedge clk, negedge rst_n)if (!rst_n)cnt <= 0;elseif (cnt = 49)cnt <= 0;elsecnt <= cnt + 1'b1;reg clk_1us;/ 1MHz 時鐘always (posedge clk, negedge rst_n)if (!rst_n)clk_1us <= 0;elseif (cnt <= 24)/ 24 = 50/2 - 1clk_1us <= 0;elseclk_1us <= 1;/-
17、/ 分頻器 50MHz ->1MHz結束/-/+/ 延時模塊 開始/+reg 19:0 cnt_1us;/ 1us 延時計數子reg cnt_1us_clear;/ 請 1us 延時計數子always (posedge clk_1us)if (cnt_1us_clear)cnt_1us <= 0;elsecnt_1us <= cnt_1us + 1'b1;/-/ 延時模塊 結束/-/+/ DS18B20 狀態機 開始/+/+/ 格雷碼parameter S00= 5'h00;parameter S0= 5'h01;parameter S1= 5'
18、;h03;parameter S2= 5'h02;parameter S3= 5'h06;parameter S4= 5'h07;parameter S5= 5'h05;parameter S6= 5'h04;parameter S7= 5'h0C;parameter WRITE0= 5'h0D;parameter WRITE1= 5'h0F;parameter WRITE00 = 5'h0E;parameter WRITE01 = 5'h0A;parameter READ0= 5'h0B;paramete
19、r READ1= 5'h09;parameter READ2= 5'h08;parameter READ3= 5'h18;reg 4:0 state;/ 狀態寄存器/-reg one_wire_buf;/ One -Wire 總線 緩存寄存器reg 15:0 temperature_buf;/ 采集到的溫度值緩存器(未處理)reg 5:0 step;有效位 / 子狀態寄存器 reg 3:0 bit_valid;050always (posedge clk_1us, negedge rst_n)beginif (!rst_n)beginone_wire_buf <=
20、 1'bZ;step<= 0;state<= S00;endelsebegincase (state)S00 : begintemperature_buf <= 16'h001F;state<= S0;endS0 :begin/ 初始化cnt_1us_clear <= 1;one_wire_buf<= 0;state<= S1;endS1 :begincnt_1us_clear <= 0;if (cnt_1us = 500)/ 延時 500usbegincnt_1us_clear <= 1;one_wire_buf<=
21、 1'bZ;/ 釋放總線state<= S2;endendS2 :begincnt_1us_clear <= 0;if (cnt_1us = 100)/ 等待 100usbegincnt_1us_clear <= 1;state<= S3;endendS3 :if (one_wire)/ 若 18b20 拉低總線 ,初始化成功state <= S4;else if (one_wire)/ 否則,初始化不成功 ,返回 S0state <= S0;S4 :begincnt_1us_clear <= 0;S5 :if (cnt_1us = 400)/
22、 再延時 400usbegincnt_1us_clear <= 1;state<= S5;endendbegin/ 寫數據if(step = 0)/ 0xCCbeginstep<= step + 1'b1;state <= WRITE0;endelse if (step = 1)beginstep<= step + 1'b1;state <= WRITE0;endelse if (step = 2)beginone_wire_buf <= 0;step<= step + 1'b1;state<= WRITE01;en
23、delse if (step = 3)beginone_wire_buf <= 0;step<= step + 1'b1;state<= WRITE01;endelse if (step = 4)beginstep<= step + 1'b1;state <= WRITE0;endelse if (step = 5)beginstep<= step + 1'b1;state <= WRITE0;endelse if (step = 6)beginone_wire_buf <= 0;step<= step + 1
24、9;b1;<= WRITE01;stateendelse if (step = 7)beginone_wire_buf <= 0;step<= step + 1'b1;state<= WRITE01;endelse if (step = 8)/ 0x44beginstep<= step + 1'b1;state <= WRITE0;endelse if (step = 9)beginstep<= step + 1'b1;state <= WRITE0;endelse if (step = 10)beginone_wire_
25、buf <= 0;step<= step + 1'b1;state<= WRITE01;endelse if (step = 11)beginstep<= step + 1'b1;state <= WRITE0;endelse if (step = 12)beginstep<= step + 1'b1;state <= WRITE0;endelse if (step = 13)beginstep<= step + 1'b1;state <= WRITE0;endelse if (step = 14)begin
26、one_wire_buf <= 0;step<= step + 1'b1;<= WRITE01;stateendelse if (step = 15)beginstep<= step + 1'b1;state <= WRITE0;end/ 第一次寫完 ,750ms 后,跳回 S0 else if (step = 16)beginone_wire_buf <= 1'bZ;step<= step + 1'b1;state<= S6;end/ 再次置數 0xCC 和 0xBEelse if (step = 17)/ 0x
27、CCbeginstep<= step + 1'b1;state <= WRITE0;endelse if (step = 18)beginstep<= step + 1'b1;state <= WRITE0;endelse if (step = 19)beginone_wire_buf <= 0;step<= step + 1'b1;state<= WRITE01;endelse if (step = 20)beginstep<= step + 1'b1;state <= WRITE01;one_wire_b
28、uf <= 0;endelse if (step = 21)beginstep<= step + 1'b1;state <= WRITE0;endelse if (step = 22)beginstep<= step + 1'b1;state <= WRITE0;endelse if (step = 23)beginone_wire_buf <= 0;step<= step + 1'b1;state<= WRITE01;endelse if (step = 24)beginone_wire_buf <= 0;step
29、<= step + 1'b1;state<= WRITE01;endelse if (step = 25)/ 0xBEbeginstep<= step + 1'b1;state <= WRITE0;endelse if (step = 26)beginone_wire_buf <= 0;step<= step + 1'b1;state<= WRITE01;endelse if (step = 27)beginone_wire_buf <= 0;step<= step + 1'b1;state<= WRI
30、TE01;endelse if (step = 28)beginone_wire_buf <= 0;step<= step + 1'b1;state<= WRITE01;endelse if (step = 29)beginone_wire_buf <= 0;step<= step + 1'b1;state<= WRITE01;endelse if (step = 30)beginone_wire_buf <= 0;step<= step + 1'b1;state<= WRITE01;endelse if (step
31、 = 31)beginstep<= step + 1'b1;state <= WRITE0;endelse if (step = 32)beginone_wire_buf <= 0;step<= step + 1'b1;state<= WRITE01;end/ 第二次寫完 ,跳到 S7,直接開始讀數據S6 :else if (step = 33)beginstep<= step + 1'b1;state <= S7;endendbegincnt_1us_clear <= 0;if (cnt_1us = 750000 | o
32、ne_wire)/ 延時 750ms!begincnt_1us_clear <= 1;state<= S0;/ 跳回 S0,再次初始化endendS7 :begin/ 讀數據if(step = 34)beginbit_valid<= 0;one_wire_buf <= 0;step<= step + 1'b1;<= READ0;stateendelse if (step = 35)beginbit_valid<= bit_valid + 1'b1;one_wire_buf <= 0;step<= step + 1'b
33、1;state<= READ0;endelse if (step = 36)beginbit_valid<= bit_valid + 1'b1;one_wire_buf <= 0;step<= step + 1'b1;state<= READ0;endelse if (step = 37)beginbit_valid<= bit_valid + 1'b1;one_wire_buf <= 0;step<= step + 1'b1;state<= READ0;endelse if (step = 38)begin
34、bit_valid<= bit_valid + 1'b1;one_wire_buf <= 0;step<= step + 1'b1;state<= READ0;endelse if (step = 39)beginbit_valid<= bit_valid + 1'b1;one_wire_buf <= 0;step<= step + 1'b1;state<= READ0;endelse if (step = 40)beginbit_valid<= bit_valid + 1'b1;one_wire_b
35、uf <= 0;step<= step + 1'b1;state<= READ0;endelse if (step = 41)beginbit_valid<= bit_valid + 1'b1;one_wire_buf <= 0;step<= step + 1'b1;state<= READ0;endelse if (step = 42)beginbit_valid<= bit_valid + 1'b1;one_wire_buf <= 0;step<= step + 1'b1;state<
36、= READ0;endelse if (step = 43)beginbit_valid<= bit_valid + 1'b1;one_wire_buf <= 0;step<= step + 1'b1;state<= READ0;endelse if (step = 44)beginbit_valid<= bit_valid + 1'b1;one_wire_buf <= 0;step<= step + 1'b1;state<= READ0;endelse if (step = 45)beginbit_valid&l
37、t;= bit_valid + 1'b1;one_wire_buf <= 0;step<= step + 1'b1;state<= READ0;endelse if (step = 46)beginbit_valid<= bit_valid + 1'b1;one_wire_buf <= 0;step<= step + 1'b1;state<= READ0;endelse if (step = 47)begin<= bit_valid + 1'b1;bit_validone_wire_buf <= 0;
38、step<= step + 1'b1;state<= READ0;endelse if (step = 48)beginbit_valid<= bit_valid + 1'b1;one_wire_buf <= 0;step<= step + 1'b1;state<= READ0;endelse if (step = 49)beginbit_valid<= bit_valid + 1'b1;one_wire_buf <= 0;step<= step + 1'b1;state<= READ0;end
39、else if (step = 50)beginstep<= 0;state <= S0;endend/+/ 寫狀態機/+WRITE0 :begincnt_1us_clear <= 0;one_wire_buf<= 0;/ 輸出 0if (cnt_1us = 80)/ 延時 80usbegincnt_1us_clear <= 1;one_wire_buf<= 1'bZ;/ 釋放總線,自動拉高state<= WRITE00;endendWRITE00 :/ 空狀態state <= S5;WRITE01 :/ 空狀態state <= W
40、RITE1;WRITE1 :begincnt_1us_clear <= 0;one_wire_buf<= 1'bZ;/ 輸出1釋放總線,自動拉高if (cnt_1us = 80)/ 延時 80usbegincnt_1us_clear <= 1;state<= S5;endend/-/ 寫狀態機/-/+/ 讀狀態機/+READ0 : state <= READ1;/ 空延時狀態READ1 :begincnt_1us_clear <= 0;one_wire_buf<= 1'bZ;/ 釋放總線if (cnt_1us = 10)/ 再延時 10
41、usbegincnt_1us_clear <= 1;state<= READ2;endendREAD2 :/ 讀取數據begintemperature_bufbit_valid <= one_wire;state<= READ3;endREAD3 :begincnt_1us_clear <= 0;if (cnt_1us = 55)/ 再延時 55usbegincnt_1us_clear <= 1;state<= S7;endend/-/ 讀狀態機/-default : state <= S00;endcaseendendassign one_wi
42、re = one_wire_buf;/ 注意雙向口的使用/-/ DS18B20 狀態機 結束/-/+/ 對采集到的溫度進行處理 開始/+wire 15:0 t_buf = temperature_buf & 16'h07FF;assign temperature3:0= (t_buf3:0 * 10) >> 4;/ 小數點后一位assign temperature7:4= (t_buf7:4 >= 10) ? (t_buf7:4- 10) : t_buf7:4;/ 個位assign temperature11:8= (t_buf7:4 >= 10) ?
43、(t_buf11:8 + 1) : t_buf11:8; /十位assign temperature15:12 = temperature_buf12 ? 1 : 0;/ 正負位, 0 正 1 負/-/ 對采集到的溫度進行處理 結束/-endmodulemodule chuli(data,jieguo);input 15:0 data;output 2:0 jieguo;wire 7:0 temp;reg 2:0 jieguo;assign temp7:0 = data11:4;always(temp)begincase (temp)15: jieguo<=0;16: jieguo<
44、;=0;17: jieguo<=0;18: jieguo<=1;19: jieguo<=1;20: jieguo<=1;21: jieguo<=2;22: jieguo<=2;23: jieguo<=2;24: jieguo<=3;25: jieguo<=3;26: jieguo<=3;27: jieguo<=4;28: jieguo<=4;29: jieguo<=4;30: jieguo<=5;31: jieguo<=5;32: jieguo<=5;33: jieguo<=6;34: jie
45、guo<=6;35: jieguo<=6;36: jieguo<=7;37: jieguo<=7;38: jieguo<=7;endcaseendEndmodulemodule DPY4(clk,rst,dclk,dlk,drst,dain,dpy0,dpy1,dpy2,dpy3);input clk;input rst;output dclk;output dlk;output drst;output dain;input3:0dpy0;input3:0dpy1;input3:0dpy2;input3:0dpy3;parameterzero = 8'b1100_0000,one= 8'b1111_1001,two= 8'b1010_0100,three= 8'b1011_0000,four = 8'b1001_1001,five = 8'b1001_0010,six= 8'b1000_0010,seven= 8'b1111_1000,eight=
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 藥品疫苗安全管理制度
- 藥品采購議價管理制度
- 藥店企業文化管理制度
- 藥店異地刷卡管理制度
- 藥店設施設備管理制度
- 薪酬發放審批管理制度
- 設備公司銷售管理制度
- 設備安裝調試管理制度
- 設備機房資料管理制度
- 設備現場工具管理制度
- 市政公用工程設計文件編制深度規定(2013年高清版)
- GB/T 9867-2008硫化橡膠或熱塑性橡膠耐磨性能的測定(旋轉輥筒式磨耗機法)
- GB/T 19139-2012油井水泥試驗方法
- GB/T 18314-2001全球定位系統(GPS)測量規范
- 工貿行業重點可燃性粉塵目錄(2022版)
- 鐵道概論試題及答案重要
- 空間幾何中的平行與垂直 新高考 數學 一輪復習專項提升 精講精練
- 近代史期末復習試題
- 教學設計 完整版:Summer holiday plans
- 2022年武漢市法院書記員招聘考試題庫及答案解析
- DB34-T 4010-2021 水利工程外觀質量評定規程-高清現行
評論
0/150
提交評論