版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第12講溫度傳感器溫度傳感器概述溫度傳感器DS1820Dallas公司生產(chǎn)的數(shù)字溫度傳感器單總線接口方式,只需要與MCU的一個(gè)端口連接即可實(shí)現(xiàn)雙向通信可以直接將溫度轉(zhuǎn)化成串行數(shù)字信號(hào)只有三個(gè)引腳(VDD、GND、DQ)同一總線上可以掛接多個(gè)溫度傳感器芯片適用于遠(yuǎn)距離多點(diǎn)溫度檢測(cè)+5V供電,也可以在信號(hào)線上高電平時(shí)為內(nèi)部電容充電,供低電平時(shí)消耗電源極性接反時(shí),芯片發(fā)燙,但不會(huì)燒壞主要性能指標(biāo)溫度測(cè)量范圍:-55℃~+125℃溫度測(cè)量精度:±0.5℃(-10℃~+85℃)溫度數(shù)字量轉(zhuǎn)換時(shí)間:200ms(典型值)DS18B20的外觀與引腳DALLASDS18B20123GNDDQVDDOOO123仰視圖正視圖DS1820內(nèi)部結(jié)構(gòu)框圖64位ROM和單線端口電源檢測(cè)VDD存儲(chǔ)器和控制邏輯溫度傳感器上限觸發(fā)TH下限觸發(fā)TL8位CRC產(chǎn)生器暫存器內(nèi)部VDD工作過程內(nèi)部低溫度系統(tǒng)振蕩器振蕩頻率隨溫度變化很小,為計(jì)數(shù)器1提供一個(gè)頻率穩(wěn)定的計(jì)數(shù)脈沖內(nèi)部高溫度系統(tǒng)振蕩器振蕩頻率對(duì)溫度很敏感,為計(jì)數(shù)器2提供一個(gè)頻率隨溫度變化的計(jì)數(shù)脈沖溫度測(cè)量原理低溫度系數(shù)振蕩器高溫度系數(shù)振蕩器計(jì)數(shù)器1計(jì)數(shù)器2溫度寄存器斜坡累加器比較預(yù)置=0?=0?預(yù)置增加停止溫度測(cè)量過程初始時(shí)溫度寄存器被預(yù)置成-55℃計(jì)數(shù)器1被預(yù)置成與-55℃相對(duì)應(yīng)的一個(gè)量計(jì)數(shù)器1從預(yù)置數(shù)開始減計(jì)數(shù)到0時(shí),溫度寄存器中的溫度值增加1℃斜率累加器為計(jì)數(shù)器1提供新的計(jì)數(shù)值計(jì)數(shù)器1開始新的減計(jì)數(shù),這個(gè)過程重復(fù)進(jìn)行,直到計(jì)數(shù)器2計(jì)數(shù)到0為止除初始值以外,計(jì)數(shù)器1每一個(gè)循環(huán)的預(yù)置數(shù)都由斜率累加器提供為了補(bǔ)償振蕩器溫度特性的非線性,斜率累加器提供的預(yù)置數(shù)將隨溫度而相應(yīng)變化(也就是說,在不同溫度范圍時(shí),使溫度寄存器值增加1℃所需要的計(jì)數(shù)個(gè)數(shù)是不同的)DS18B20芯片的地址編碼當(dāng)單一總線上掛接多個(gè)DS18B20芯片時(shí),使用64位光刻ROM地址來區(qū)別不同芯片64位地址碼是產(chǎn)品出廠前光刻好的產(chǎn)品類型標(biāo)號(hào)(說明是溫度傳感器)序列號(hào)(與網(wǎng)卡MAC地址相似)CRC碼(CRC=X8+X5+X4+1,用于校驗(yàn))8位CRC碼48位序列號(hào)8位產(chǎn)品類型標(biāo)號(hào)DS18B20的操作指令0x33——讀取ROM。讀傳感器ROM中的64位編碼0x55——匹配ROM。發(fā)出此命令后,接著發(fā)出64位編碼,訪問單一總線上相應(yīng)的DS18B20,并使之做出響應(yīng),為讀寫做準(zhǔn)備0xF0——搜索ROM。用于確定掛接在同一總線上的DS18B20芯片數(shù),識(shí)別64位地址,為操作各器件做準(zhǔn)備0xCC——跳過ROM。當(dāng)總線上只有一個(gè)溫度傳感器芯片時(shí),忽略64位地址,直接向DS18B20發(fā)出命令0xEC——告警搜索。執(zhí)行后,只有溫度超過預(yù)設(shè)上、下限的芯片才做出響應(yīng)DS18B20的操作指令44H——溫度轉(zhuǎn)換。啟動(dòng)DS18B20進(jìn)行溫度轉(zhuǎn)換,結(jié)果存入內(nèi)部RAMBEH——讀暫存器。讀內(nèi)部RAM中的溫度數(shù)據(jù)4EH——寫暫存器。發(fā)出向內(nèi)部RAM第2、3字節(jié)寫上、下限值的命令,緊接著傳送2字節(jié)數(shù)據(jù)48H——復(fù)制暫存器。將內(nèi)部RAM第2、3字節(jié)內(nèi)容復(fù)制到EEPROMB8H——重調(diào)EEPROM。將EEPROM中內(nèi)容恢復(fù)到內(nèi)部RAM第2、3字節(jié)B4H——讀供電方式。讀得0,DS18B20采用寄生供電;讀得1,DS18B20利用外接電源供電DS18B20內(nèi)部RAM地址安排9字節(jié)存儲(chǔ)器內(nèi)容字節(jié)地址溫度值低位0溫度值高位1溫度上限值2溫度下限值3配置寄存器4保留5保留6保留7CRC校驗(yàn)值8DS18B20的溫度數(shù)據(jù)存儲(chǔ)格式位7位6位5位4位3位2位1位0232221202-12-22-32-4位15位14位13位12位11位10位9位8SSSSS262524DS18B20的溫度數(shù)據(jù)存儲(chǔ)格式字節(jié)0字節(jié)1位7位6位5位4位3位2位1位0232221202-12-22-32-4位15位14位13位12位11位10位9位8SSSSS262524符號(hào)位(1:負(fù)值0:正值)測(cè)得數(shù)據(jù)×0.0625=實(shí)際溫度值單個(gè)DS1820芯片與單片機(jī)的連接在有條件的情況下,最好每個(gè)溫度傳感器都使用獨(dú)立電源接MCU初始化數(shù)據(jù)線置“1”延時(shí)(時(shí)間要求不嚴(yán)格,但盡量短一點(diǎn))數(shù)據(jù)線置“0”延時(shí)750us(480~960us)數(shù)據(jù)線置“1”(15~60us)延時(shí)等待芯片返回的低電平若讀到數(shù)據(jù)線上低電平0,再延時(shí)(從5開始至少480us)數(shù)據(jù)線再次置“1”,結(jié)束VccGND主控制器發(fā)出的480~960us芯片應(yīng)答的60~240us15~60us初始化的子過程voiddsreset(void)//18B20復(fù)位,初始化函數(shù){ //加電時(shí)已有一個(gè)初始高電平
uinti;
ds=0; //數(shù)據(jù)線上輸出低電位并延時(shí)750us i=103;
while(i>0)i--;
ds=1; //數(shù)據(jù)線上輸出高電位并延時(shí)30us i=4;
while(i>0)i--;}寫數(shù)據(jù)數(shù)據(jù)線置“0”延時(shí)15us按從低到高的順序,逐位發(fā)送數(shù)據(jù)延時(shí)45us數(shù)據(jù)線置“1”重復(fù)1~5步驟,直到發(fā)送完整個(gè)數(shù)據(jù)字節(jié)數(shù)據(jù)線再次置“1”,結(jié)束VccGND15us15us15us15us30us30usmintypmaxmintypmax主控制器寫“0”時(shí)隙主控制器寫“1”時(shí)隙寫數(shù)據(jù)字節(jié)的子過程(方法一)voidtempwritebyte(uchar
dat)//向18B20寫一個(gè)字節(jié)數(shù)據(jù){
uinti;
ucharj; bittestb;
for(j=1;j<=8;j++) {
testb=dat&0x01; //判斷寫數(shù)據(jù)最低位
if(testb) //寫"1" {
ds=0; //數(shù)據(jù)線輸出低電平
i++;i++; //延時(shí)15us
ds=1; //數(shù)據(jù)線輸出高電平(寫"1")
i=8;while(i>0)i--; //延時(shí)>45us } else //寫"0" {
ds=0; //數(shù)據(jù)線輸出低電平
i=8;while(i>0)i--; //延時(shí)>45us
ds=1; //數(shù)據(jù)線輸出高電平
i++;i++; //延時(shí)15us }
dat=dat>>1; //右移一位,準(zhǔn)備下次寫操作
}}寫數(shù)據(jù)字節(jié)的子過程(方法二)voidds1820writebyte(ucharwdata) //ds1820寫數(shù)據(jù)字節(jié){
uchari=0;for(i=8;i>0;i--) //按從低到高的順序,逐位輸出數(shù)據(jù)字節(jié)
{ DQ=0; //數(shù)據(jù)線輸出0 DQ=wdata&0x01; //準(zhǔn)備寫數(shù)據(jù)位(同時(shí)延時(shí)15us)
ds1820delay(10); //延時(shí)45us DQ=1; //數(shù)據(jù)線輸出1
wdata>>=1; //右移一位,準(zhǔn)備下次發(fā)送
}}DS18B20啟動(dòng)子過程voidtempchange(void) //{
dsreset(); //溫度傳感器復(fù)位
delay(1); //延時(shí)
tempwritebyte(0xcc); //寫跳過讀ROM指令
//(因?yàn)橹挥幸粋€(gè)溫度傳感器) tempwritebyte(0x44); //寫溫度轉(zhuǎn)換指令
//啟動(dòng)溫度轉(zhuǎn)換開始}讀數(shù)據(jù)數(shù)據(jù)線置“1”延時(shí)2us數(shù)據(jù)線置“0”延時(shí)2us數(shù)據(jù)線置“1”延時(shí)4us讀數(shù)據(jù)線,得到一個(gè)狀態(tài)位,并進(jìn)行數(shù)據(jù)處理延時(shí)30us重復(fù)1~7步驟,直到讀完一個(gè)字節(jié)讀數(shù)據(jù)字節(jié)的子過程(方法一)bittempreadbit(void) //讀1個(gè)數(shù)據(jù)位{
uinti; bitdat;
ds=0;i++; //數(shù)據(jù)線拉低到0,延時(shí)2us
ds=1;i++;i++; //數(shù)據(jù)線拉高到1,延時(shí)4us
dat=ds; //讀數(shù)據(jù)線,得到1個(gè)數(shù)據(jù)位
i=8;while(i>0)i--; //延時(shí)15us return(dat); //返回?cái)?shù)據(jù)位}uchar
tempreadbyte(void) //讀1個(gè)數(shù)據(jù)字節(jié){
uchari,j,dat;
dat=0; //清除存儲(chǔ)單元,準(zhǔn)備接收數(shù)據(jù)
for(i=1;i<=8;i++) { j=tempreadbit(); //讀取1個(gè)數(shù)據(jù)位
dat=(j<<7)|(dat>>1); //讀出數(shù)據(jù)低位在前
}
return(dat);}讀數(shù)據(jù)字節(jié)的子過程(方法二)uchards1820readbyte() //ds1820讀數(shù)據(jù)字節(jié){
uchari=0;
uchar
dat=0; for(i=8;i>0;i--) //逐位讀取溫度傳器提供的數(shù)據(jù)
{ DQ=0; //數(shù)據(jù)線輸出0
dat>>=1; //右移1位,準(zhǔn)備用當(dāng)前最高位存放讀得的數(shù)據(jù)位
DQ=1; //數(shù)據(jù)線輸出1,執(zhí)行下面的語句相當(dāng)于延時(shí)4us
if(DQ) //讀數(shù)據(jù)線狀態(tài),得到一個(gè)數(shù)據(jù)位
dat|=0x80; //若讀得狀態(tài)位為1,保存到dat的當(dāng)前最高位上
ds1820delay(10); //延時(shí)30us }
return(dat);}舉例說明讀數(shù)據(jù)字節(jié)的過程(1)設(shè)tempreadbit()第一次返回“1”j=tempreadbit(); //j=00000001j=j<<7; //j=10000000dat=dat>>1; //dat=00000000dat=(j<<7)|(dat>>1); //dat=10000000舉例說明讀數(shù)據(jù)字節(jié)的過程(2)設(shè)tempreadbit()第二次返回“1”j=tempreadbit(); //j=00000001j=j<<7; //j=10000000dat=dat>>1; //dat=01000000dat=(j<<7)|(dat>>1); //dat=11000000舉例說明讀數(shù)據(jù)字節(jié)的過程(3)設(shè)tempreadbit()第三次返回“0”j=tempreadbit(); //j=00000000j=j<<7; //j=00000000dat=dat>>1; //dat=01100000dat=(j<<7)|(dat>>1); //dat=01100000舉例說明讀數(shù)據(jù)字節(jié)的過程(4)設(shè)tempreadbit()第四次返回“1”j=tempreadbit(); //j=00000001j=j<<7; //j=10000000dat=dat>>1; //dat=00110000dat=(j<<7)|(dat>>1); //dat=10110000舉例說明讀數(shù)據(jù)字節(jié)的過程(5)設(shè)tempreadbit()第五次返回“0”j=tempreadbit(); //j=00000000j=j<<7; //j=00000000dat=dat>>1; //dat=01011000dat=(j<<7)|(dat>>1); //dat=01011000舉例說明讀數(shù)據(jù)字節(jié)的過程(6)設(shè)tempreadbit()第六次返回“0”j=tempreadbit(); //j=00000000j=j<<7; //j=00000000dat=dat>>1; //dat=00101100dat=(j<<7)|(dat>>1); //dat=00101100舉例說明讀數(shù)據(jù)字節(jié)的過程(7)設(shè)tempreadbit()第七次返回“1”j=tempreadbit(); //j=00000001j=j<<7; //j=10000000dat=dat>>1; //dat=00010110dat=(j<<7)|(dat>>1); //dat=10010110舉例說明讀數(shù)據(jù)字節(jié)的過程(8)設(shè)tempreadbit()第八次返回“0”j=tempreadbit(); //j=00000000j=j<<7; //j=00000000dat=dat>>1; //dat=01001011dat=(j<<7)|(dat>>1); //dat=01001011讀取傳感器中存儲(chǔ)的溫度數(shù)據(jù)uint
get_temp() //讀取傳感器中存儲(chǔ)的溫度數(shù)據(jù){
uchar
a,b;
dsreset(); //溫度傳感器復(fù)位
delay(1); tempwritebyte(0xcc); //寫跳過讀ROM指令(因?yàn)橹挥幸粋€(gè)溫度傳感器) tempwritebyte(0xbe); //讀內(nèi)部RAM的命令
a=tempreadbyte();//第一次讀到的是低8位,地址自動(dòng)修正
b=tempreadbyte();//第二次讀到的是高8位
temp=b; //先保存高8位到temp temp<<=8; //左移8位,低8位以0填充
temp=temp|a; //兩個(gè)字節(jié)組合為1個(gè)字
f_temp=temp*0.0625; //溫度在寄存器中為12位分辨率位0.0625° temp=f_temp*10+0.5; //乘以10表示小數(shù)點(diǎn)后面只取1位,加0.5是四舍五入
f_temp=f_temp+0.05; returntemp; //temp是整型}temp和f_temp都是在程序開頭定義的變量,在各過程中都有效溫度值在LED數(shù)碼管上顯示voiddisp_temp(uintreal) //溫度值轉(zhuǎn)換成便于輸出顯示的形式{ LED[7]=0; LED[6]=real%10; //溫度值小數(shù)點(diǎn)后第1位 LED[5]=(real/10)%10;
//溫度值個(gè)位數(shù) LED[4]=real/100; //溫度值十位數(shù)}voiddisplay() //數(shù)碼管顯示{ P2=0; P0=table[LED[0]];delay(2); //表示第0號(hào)傳感器
P2=4; P0=table[LED[4]];delay(2); //溫度值十位數(shù)
P2=5; P0=table[LED[5]]|0x80;delay(2); //溫度值個(gè)位數(shù),包含小數(shù)點(diǎn)
P2=6; P0=table[LED[6]];delay(2); //溫度值1/10位
P2=7; P0=table[LED[7]];delay(2); //溫度值1/100位(實(shí)際上總為0)}數(shù)據(jù)定義#include<reg52.h>#include<stdio.h>#defineucharunsignedchar#defineuintunsignedintsbit
ds=P2^3;//溫度傳感器信號(hào)線uint
temp,realtemp;floatf_temp;ucharcodetable[11]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00}; //0123456789ucharLED[8]={0,10,10,10,0,0,0,0};voiddelay(uintz) //延時(shí)函數(shù){
uint
x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);}主控程序main()voidmain(){ while(1) { display();
tempchange(); display();
realtemp=get_temp(); display();
disp_temp(realtemp); }}由于一次溫度采集的過程很長(zhǎng)(超過2ms),故不便于利用中斷方式控制LED數(shù)碼管顯示過程多點(diǎn)溫度采集需要解決的問題:系統(tǒng)中共包含多少個(gè)溫度傳感器?怎樣區(qū)分不同的溫度傳感器?怎樣對(duì)指定的溫度傳感器執(zhí)行操作?執(zhí)行操作的時(shí)間有多長(zhǎng)?溫度數(shù)據(jù)傳輸?shù)淖畲缶嚯x有多遠(yuǎn)?溫度傳感器的供電問題怎樣解決?多點(diǎn)測(cè)溫網(wǎng)絡(luò)的構(gòu)建方法多個(gè)DS18B20掛接在同一條總線上在硬件系統(tǒng)搭建時(shí),先讀取DS18B20的ROM序列號(hào),并將它們固化在程序中(如數(shù)組),單片機(jī)向總線發(fā)送匹配ROM命令之后,緊跟發(fā)送一個(gè)序列號(hào),接下來讀取的溫度數(shù)據(jù)就來自與ROM序列號(hào)匹配的那個(gè)DS18B20每一個(gè)I/O口掛接一個(gè)DS18B20利用SEARCHROM指令動(dòng)態(tài)搜索64位ROM碼(二叉樹遍歷)二叉樹遍歷SEARCHROM指令:發(fā)出searchrom
指令后,ds18b20將所有的第一位0,0,0放到總線上,單片機(jī)讀到的是相與的結(jié)果為0。接著ds18b20將所有器件的第一位的補(bǔ)碼1,1,1放到總線上,單片機(jī)讀到的數(shù)據(jù)是相與的結(jié)果為1.等待主機(jī)響應(yīng)之后,繼續(xù)將下一位及其反碼,發(fā)送到總線上。
每次讀ds18b20發(fā)出的兩位會(huì)得到00,01,10,11的結(jié)果其含義如下:00:掛在總線上的ds18b20在這一位上有沖突,即有的在這一位上為0,有的在這一位上為101:所有DS18B20此位數(shù)據(jù)均為010:所有DS18B20此位數(shù)據(jù)均為111:沒有DS18B20二叉樹遍歷ROM搜索過程是簡(jiǎn)單三步過程的重復(fù)(1)讀一位(2)讀核位的補(bǔ)碼(3)寫所需的那一位的值:發(fā)0,則選中這一位為0的ds18b20,在此后的過程中,僅這一位為0的ds18b20參與向總線收發(fā)數(shù)據(jù)發(fā)1,則選中這一位為1的ds18b20,在此后的過程中,僅這一位為1的ds18b20參與向總線收發(fā)數(shù)據(jù)總線主機(jī)在ROM的每一位上完成這三步過程。全部過程完成之后,總線主機(jī)便知道一個(gè)器件中ROM的內(nèi)容讀取傳感器序列號(hào)并上傳到串口助手#include<reg52.h>#defineucharunsignedchar#defineuintunsignedintsbitDQ=P2^3; //溫度傳感器信號(hào)線ucharfCode[8];voidds1820delay(uinti) //延時(shí)1微秒{
while(i--);}復(fù)位voidds1820reset() //ds1820復(fù)位{ DQ=1; //數(shù)據(jù)線輸出高電平
ds1820delay(4); //延時(shí)
DQ=0; //數(shù)據(jù)線輸出低電平
ds1820delay(100); //延時(shí)480~960us DQ=1; //數(shù)據(jù)線輸出高電平
ds1820delay(40); //延時(shí)15~60us}讀數(shù)據(jù)字節(jié)uchards1820readbyte() //ds1820讀數(shù)據(jù)字節(jié){
uchari=0;
uchar
dat=0; for(i=8;i>0;i--) //逐位讀取溫度傳器提供的數(shù)據(jù)
{ DQ=0; //數(shù)據(jù)線輸出0
dat>>=1; //右移一位,準(zhǔn)備用存放讀得的數(shù)據(jù)位
DQ=1; //數(shù)據(jù)線輸出1,執(zhí)行下面語句延時(shí)4us
if(DQ) //讀數(shù)據(jù)線狀態(tài),得到一個(gè)數(shù)據(jù)位
dat|=0x80; //若讀得1,保存到dat的當(dāng)前最高位上
ds1820delay(10); //延時(shí)30us }
return(dat);}寫數(shù)據(jù)字節(jié)voidds1820writebyte(ucharwdata) //ds1820寫數(shù)據(jù)字節(jié){
uchari=0;for(i=8;i>0;i--) //按從低到高順序,逐位輸出數(shù)據(jù)字節(jié)
{ DQ=0; //數(shù)據(jù)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度高端寵物品種買賣及繁殖權(quán)轉(zhuǎn)讓合同范本3篇
- 2024版事業(yè)編人員聘用合同范本
- 2024消防設(shè)施改造合同范本
- 2025年度汽車用材料采購與銷售合作協(xié)議3篇
- 2024年食品加工生產(chǎn)外包合同
- 福建省南平市武夷山第二中學(xué)高一生物模擬試題含解析
- 福建省南平市外屯中學(xué)高一語文聯(lián)考試卷含解析
- 2025廠區(qū)綠化升級(jí)改造及養(yǎng)護(hù)綜合服務(wù)合同3篇
- 2024版事業(yè)單位醫(yī)療專業(yè)技術(shù)崗位聘用協(xié)議一
- 2024汽車美容店承包合同模板
- 幼兒園幼兒營(yíng)養(yǎng)食譜手冊(cè)
- 《護(hù)理科研》課件
- 屋頂分布式光伏發(fā)電項(xiàng)目 投標(biāo)方案(技術(shù)方案)
- 2024宏泰集團(tuán)所屬湖北省征信限公司招聘9人高頻難、易錯(cuò)點(diǎn)500題模擬試題附帶答案詳解
- 部編版語文四年級(jí)下冊(cè)第六單元大單元作業(yè)設(shè)計(jì)
- 中國畜禽養(yǎng)殖污染物處理行業(yè)市場(chǎng)集中度、企業(yè)競(jìng)爭(zhēng)格局分析報(bào)告-智研咨詢發(fā)布
- DL∕T 2594-2023 電力企業(yè)標(biāo)準(zhǔn)化工作 評(píng)價(jià)與改進(jìn)
- 廣東省廣州白云區(qū)六校聯(lián)考2025屆九上數(shù)學(xué)期末教學(xué)質(zhì)量檢測(cè)試題含解析
- 2024年末端無人配送行業(yè)研究報(bào)告
- 肛瘺患者的護(hù)理查房
- 義務(wù)教育數(shù)學(xué)課程標(biāo)準(zhǔn)(2024年版)
評(píng)論
0/150
提交評(píng)論