版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 單片機(jī) C 語言課題設(shè)計(jì)報(bào)告 設(shè)計(jì)題目:遠(yuǎn)程無線溫度監(jiān)測(cè) 指導(dǎo)老師:施 蕓老師 設(shè) 計(jì) 人:張登翔 學(xué)號(hào): 201212020216 班級(jí): 2012 級(jí)電子信息 1 班 設(shè)計(jì)時(shí)間: 2014.5.17 2014.6.19 四川工程職業(yè)技術(shù)學(xué)院 電氣系 2012 級(jí)電子信息一班 張登翔 201212020216 摘要 本課題以 51 單片機(jī)為核心實(shí)現(xiàn)智能化遠(yuǎn)程無線溫度監(jiān)控。利用 18B20 溫度 傳感器獲取溫度信號(hào), 將需要測(cè)量的溫度信號(hào)自動(dòng)轉(zhuǎn)化為數(shù)字信號(hào), 通過無線模 塊 NRF24L01一對(duì)一傳送將數(shù)據(jù)傳送到接收機(jī),最終單片機(jī)將信號(hào)轉(zhuǎn)換成 LCD可 以識(shí)別的信息顯示輸出。 基于 STC8
2、9C52RC+NRF24L01+LCD16的0單2 片機(jī)的智能遠(yuǎn)程無線溫度監(jiān)控系 統(tǒng),設(shè)計(jì)采用 18B20溫度傳感器, 其分辨率可編程設(shè)計(jì)。 本課題設(shè)計(jì)應(yīng)用于溫度 變化緩慢的空間,綜合考慮,以降低靈敏度來提高顯示精度。設(shè)計(jì)使用12 位分 辨率,因其最高 4 位代表溫度極性,故實(shí)際使用為 11位半,而溫度測(cè)量范圍為 -55 +125,則其分辨力為 0.0625 。 設(shè)計(jì)使用 LCD1602顯示器,可顯示 16*2 個(gè)英文字符,顯示器顯示實(shí)時(shí)溫度 和過溫警告信息。報(bào)警采用蜂鳴器加 LED組成的聲光電報(bào)警。 登臨對(duì)晚晴 翔云列曉陣 單片機(jī) C 語言課題設(shè)計(jì)報(bào)告指導(dǎo)老師:施蕓 目錄 一、設(shè)計(jì)功能 3
3、二、系統(tǒng)設(shè)計(jì) 3 三、器件選擇 4 3.1 溫度信號(hào)采集模塊 . 4 3.2 液晶顯示器 1602LCD. 9 3.3 無線 NRF24L01 11 四、軟件設(shè)計(jì) 11 4.1 程序設(shè)計(jì)流程圖 錯(cuò)誤!未定義書簽。 五、設(shè)計(jì)總結(jié) 21 六、參考文獻(xiàn) 22 七、硬件原理圖 22 八、程序清單 23 沒有天生的聰明 只有不懈的努力 2 四川工程職業(yè)技術(shù)學(xué)院 電氣系 2012 級(jí)電子信息一班 張登翔 201212020216 、設(shè)計(jì)功能 由單片機(jī)、溫度傳感器、無線模塊 NRF24L01以及液晶顯示器等構(gòu)成高精度遠(yuǎn) 無線溫度監(jiān)測(cè)系統(tǒng)。 NRF24L01發(fā)送溫度 值 發(fā)送機(jī) STC89C52RC進(jìn)行溫度
4、處理 NRF24L01接收溫度 值 接收機(jī) STC89C52RC進(jìn)行溫度 值處理 溫度顯示精確到小數(shù)點(diǎn)后一位。 按鍵設(shè)定過溫值,過溫在液晶屏提示。 、 系統(tǒng)設(shè)計(jì) LCD1602進(jìn)行溫度顯 示 光電報(bào)警 登臨對(duì)晚晴 翔云列曉陣 單片機(jī) C 語言課題設(shè)計(jì)報(bào)告 指導(dǎo)老師:施蕓 三、器件選擇 3.1 溫度信號(hào)采集模塊 傳統(tǒng)的溫度檢測(cè)大多以熱敏電阻為傳感器,采用熱敏電阻,可滿足 40 度 至 90 測(cè)量范圍,但熱敏電阻可靠性差,測(cè)量溫度準(zhǔn)確率低,對(duì)于1的信號(hào) 是不適用的,還得經(jīng)過專門的接口電路轉(zhuǎn)換成數(shù)字信號(hào)才能由微處理器進(jìn)行處 理。 目前常用的微機(jī)與外設(shè)之間進(jìn)行的數(shù)據(jù)通信的串行總線主要有I2C 總線,
5、SPI 總線等。其中 I 2C總線以同步串行 2 線方式進(jìn)行通信(一條時(shí)鐘線,一條 數(shù)據(jù)線)。SPI 總線則以同步串行 3 線方式進(jìn)行通信 (一條時(shí)鐘線, 一條數(shù)據(jù)輸 入線,一條數(shù)據(jù)輸出線) 。這些總線至少需要兩條或兩條以上的信號(hào)線。而單總 線( 1-wire bus ),采用單根信號(hào)線,既可傳輸數(shù)據(jù),而且數(shù)據(jù)傳輸是雙向的, CPU 只需一根端口線就能與諸多單總線器件通信, 占用微處理器的端口較少, 可 節(jié)省大量的引線和邏輯電路。 單總線具有廣闊的應(yīng)用前景, 是值得關(guān)注的一個(gè)發(fā)展領(lǐng)域。 單總線即只有一 根數(shù)據(jù)線, 系統(tǒng)中的數(shù)據(jù)交換, 控制都由這根線完成。 主機(jī)或從機(jī)通過一個(gè)漏極 開路或三態(tài)端口
6、連接到數(shù)據(jù)線, 以允許設(shè)備在不發(fā)送數(shù)據(jù)時(shí)能夠釋放總線, 而讓 其它設(shè)備使用總線。 單總線通常要求外接一個(gè)約為 4.7K 的上拉電阻, 這樣,當(dāng) 總線閑置時(shí)其狀態(tài)為高電平。 3.1.1 DS18B20 數(shù)字式溫度傳感器 DS18B20 數(shù)字式溫度傳感器使用集成芯片, 采用單總線技術(shù), 其能夠有效的 減小外界的干擾, 提高測(cè)量的精度, 同時(shí),它可以直接將被測(cè)溫度轉(zhuǎn)化成串行數(shù) 字信號(hào)供微機(jī)處理, 接口簡(jiǎn)單,使數(shù)據(jù)傳輸和處理簡(jiǎn)單化。 部分功能電路的集成, 四川工程職業(yè)技術(shù)學(xué)院 電氣系 2012 級(jí)電子信息一班 張登翔 201212020216 沒有天生的聰明 只有不懈的努力 4 使總體硬件設(shè)計(jì)更簡(jiǎn)潔,
7、 能有效地降低成本, 搭建電路和焊接電路時(shí)更快, 調(diào)試 也更方便簡(jiǎn)單化,大大縮短了開發(fā)的周期 。 3.1.2 DS18B20 特性 采用單總線的接口方式, 與微處理器連接時(shí)僅需要一條口線即可實(shí)現(xiàn)微處理 器與 DS18B20 的雙向通訊。 單總線具有經(jīng)濟(jì)性好, 抗干擾能力強(qiáng), 適合于惡劣 環(huán)境的現(xiàn)場(chǎng)溫度測(cè)量, 使用方便等優(yōu)點(diǎn), 使用戶可輕松地組建傳感器網(wǎng)絡(luò), 為測(cè) 量系統(tǒng)的構(gòu)建引入全新概念。 1) 適應(yīng)電壓范圍更寬,電壓范圍: 3.0 5.5V,在寄生電源方式下可由數(shù)據(jù) 線供電。 2) 獨(dú)特的單線接口方式, DS18B20在與微處理器連接時(shí)僅需要一條口線即 可實(shí)現(xiàn)微處理器與 DS18B20的雙向
8、通訊。 3) DS18B20支持多點(diǎn)組網(wǎng)功能,多個(gè) DS18B20可以并聯(lián)在唯一的三線上, 實(shí)現(xiàn)組網(wǎng)多點(diǎn)測(cè)溫。 4) DS18B20在使用中不需要任何外圍元件,全部 傳感元件及轉(zhuǎn)換電路集成 在形如一只三極管的集成電路內(nèi)。 5) 溫范圍 55 +125。 6) 可編程 的分辨率為 912 位,對(duì)應(yīng)的分辨力分別為 0.5 、 0.25 、 0.125 和 0.0625 ,可實(shí)現(xiàn)高精度測(cè)溫。 7) 在9位分辨率時(shí)最多在 93.75ms 內(nèi)把溫度轉(zhuǎn)換為數(shù)字, 12位分辨率時(shí)最 多在 750ms內(nèi)把溫度值轉(zhuǎn)換為數(shù)字,速度更快。 8) 測(cè)量結(jié)果直接輸出數(shù)字溫度信號(hào),以 1-wire bus 串行傳送給 C
9、PU,可選 擇同時(shí)傳送 CRC校驗(yàn)碼,具有極強(qiáng)的抗干擾糾錯(cuò)能力。 9) 負(fù)壓特性:電源極性接反時(shí), 芯片不會(huì)因發(fā)熱而燒毀, 但不能正常工作。 登臨對(duì)晚晴 翔云列曉陣 5 單片機(jī) C 語言課題設(shè)計(jì)報(bào)告 指導(dǎo)老師:施蕓 3.1.3 DS18B20 結(jié)構(gòu) DS18B20 的內(nèi)部結(jié)構(gòu) 3.1.4 DS18B20 測(cè)溫原理 DS18B20 測(cè)溫原理框圖 圖中低溫度系數(shù)晶振的振蕩頻率受溫度影響很小, 用于產(chǎn)生固定頻率的脈沖 信號(hào)送給計(jì)數(shù)器 1。高溫度系數(shù)晶振 隨溫度變化其振蕩率明顯改變,所產(chǎn)生的 信號(hào)作為計(jì)數(shù)器 2的脈沖輸入 . 計(jì)數(shù)器 1 對(duì) 低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行減法計(jì)數(shù),當(dāng)計(jì)數(shù)器1 的 預(yù)
10、置值減到 0 時(shí),溫度寄存器的值將加 1,計(jì)數(shù)器 1的預(yù)置將重新被裝入,計(jì)數(shù) 器 1 重 新開始對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行計(jì)數(shù),如此循環(huán)直到計(jì)數(shù) 器 2 計(jì)數(shù)到 0 時(shí),停止溫度寄存器值的累加, 此時(shí)溫度寄存器中的數(shù)值即為所測(cè) 溫度。圖 3 中的斜率累加器用于補(bǔ)償和修正測(cè)溫過程中的非線性, 其輸出用于修 正計(jì)數(shù)器 1 的預(yù)置值 沒有天生的聰明 只有不懈的努力 四川工程職業(yè)技術(shù)學(xué)院 電氣系 2012 級(jí)電子信息一班 張登翔 201212020216 3.1.5 DS18B20 的讀寫功能 DS18B20 溫度值格式表 這是 12位轉(zhuǎn)化后得到的 12位數(shù)據(jù),存儲(chǔ)在 18B20的兩個(gè) 8比特
11、的 RAM中, 二進(jìn)制中的前面 5位是符號(hào)位,如果測(cè)得的溫度大于 0, 這 5位為 0,只要將測(cè) 到的數(shù)值乘于 0.0625 即可得到實(shí)際溫度; 如果溫度小于 0,這 5 位為 1,測(cè)到的 數(shù)值需要取反加 1再乘于 0.0625 即可得到實(shí)際 溫度。 例如+125的數(shù)字輸出 為 07D0H, +25.0625的數(shù)字輸出為 0191H,-25.0625 的數(shù)字輸出為 FE6FH, -55 的數(shù)字輸出為 FC90H 。 DS18B20 溫度數(shù)據(jù)表 DS18B20溫度傳感器的存儲(chǔ)器 DS18B20溫度傳感器的內(nèi)部存儲(chǔ)器包括一個(gè)高 速暫存 RAM和一個(gè)非易失性的可電擦除的 EEPRAM后, 者存放高溫
12、度和低溫度觸發(fā) 器 TH、TL 和結(jié)構(gòu)寄存器。 TM R1 R0 1 1 1 1 1 配置寄存器結(jié)構(gòu) 登臨對(duì)晚晴 翔云列曉陣 單片機(jī) C 語言課題設(shè)計(jì)報(bào)告 指導(dǎo)老師:施蕓 低五位一直都是 1 ,TM是測(cè)試模式位,用于設(shè)置 DS18B20在工作模式還是 在測(cè)試模式。在 DS18B20出廠時(shí)該位被設(shè)置為 0,用 戶不要去改動(dòng)。 R1 和 R0 用來設(shè)置分辨率,如下表所示: (DS18B20出廠時(shí)被設(shè)置為 12 位) R1 R0 分辨率 溫度最大轉(zhuǎn)換時(shí)間 0 0 9位 93.75ms 0 1 10 位 187.5ms 1 0 11 位 375ms 1 1 12 位 750ms 溫度分辨率設(shè)置表 寄存
13、器內(nèi)容 字節(jié)地址 溫度值低位 ( LS Byte ) 0 溫度值高位 ( MS Byte ) 1 高溫限值( TH ) 2 低溫限值( TL ) 3 配置寄存器 4 保留 5 保留 6 保留 7 CRC 校驗(yàn)值 8 DS18B20 暫存寄存器分布 根據(jù) DS18B20的通訊協(xié)議,主機(jī)(單片機(jī))控制 DS18B20完成溫度轉(zhuǎn)換必須 經(jīng)過三個(gè)步驟:每一次讀寫之前都要對(duì) DS18B20進(jìn)行 復(fù)位操作,復(fù)位成功后發(fā) 送一條 ROM指令,最后發(fā)送 RAM指令, 這樣才能對(duì) DS18B20進(jìn)行預(yù)定的操作。 復(fù) 位要求主 CPU將數(shù)據(jù)線下拉 500 微秒,然后 釋放,當(dāng) DS18B20收到信號(hào)后等待 166
14、0 微秒左右,后發(fā)出 60240 微秒的存在低脈沖,主 CPU收到此信號(hào)表示 復(fù)位成功。 沒有天生的聰明 只有不懈的努力 指令 約定代碼 功能 讀 ROM 33H 讀 DS1820 溫度傳感器 ROM 中的編碼(即 64 位地址) 符合 ROM 55H 發(fā)出此命令之后,接著發(fā)出 64 位 ROM 編碼,訪問單總線上與該編碼相對(duì)應(yīng) 的 DS1820 使之作出響應(yīng),為下一步對(duì)該 DS1820 的讀寫作準(zhǔn)備。 四川工程職業(yè)技術(shù)學(xué)院 電氣系 2012 級(jí)電子信息一班 張登翔 201212020216 搜索 ROM 0FOH 用于確定掛接在同一總線上 DS1820 的個(gè)數(shù)和識(shí)別 64 位 ROM 地址。
15、為操作 各器件作好準(zhǔn)備。 跳過 ROM 0CCH 忽略 64 位 ROM 地址,直接向 DS1820 發(fā)溫度變換命令。適用于單片工作。 告警搜索命令 0ECH 執(zhí)行后只有溫度超過設(shè)定值上限或下限的片子才做出響應(yīng)。 溫度變換 44H 啟動(dòng) DS1820 進(jìn)行溫度轉(zhuǎn)換, 12 位轉(zhuǎn)換時(shí)最長(zhǎng)為 750ms(9 位為 93.75ms )。結(jié) 果存入內(nèi)部 9 字節(jié) RAM 中。 讀暫存器 0BEH 讀內(nèi)部 RAM 中 9 字節(jié)的內(nèi)容 寫暫存器 4EH 發(fā)出向內(nèi)部 RAM 的 3、4 字節(jié)寫上、下限溫度數(shù)據(jù)命令,緊跟該命令之后,是 傳送兩字節(jié)的數(shù)據(jù)。 復(fù)制暫存器 48H 將 RAM 中第 3 、4 字節(jié)的
16、內(nèi)容復(fù)制到 EEPROM 中。 重調(diào) EEPRO M 0B8H 將 EEPROM 中內(nèi)容恢復(fù)到 RAM 中的第 3 、4 字節(jié)。 讀供電方式 0B4H 讀 DS1820 的供電模式。寄生供電時(shí) DS1820 發(fā)送“0 ”,外接電源供電 DS182 0 發(fā)送“1 ”。 ROM 指令表 3.2 LCD1 C VCC 7 6 5 4 3 2 1 0 W S EE DD SS 6N 5W 4S 417 316 215 114 013 92 81 70 VCC C1 U1 19 XTAL1 22pF 液晶顯示器 1602LXTCADL1 X1 CRYST AL C2 18 XTAL2 22pF R1 R
17、ST P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 39 38 37 36 35 34 33 32 RP1 1 2345678 0123456 DDDDDDD 0D1D2D3D4D5D6D7 C3 1uF 1登0臨k 對(duì)晚晴 翔云列曉陣 29 30 PSEN P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 ALE P2.4/A12 21 22 23 24 25 RESPACK-8 LM016L 單片機(jī) C 語言課題設(shè)計(jì)報(bào)告 指導(dǎo)老師:施蕓 序 指令 RS R/W D7 D6 D
18、5 D4 D3 D2 D1 D0 號(hào) 編號(hào) 符號(hào) 引腳說明 編號(hào) 符號(hào) 引腳說明 1 VSS 電源地 9 D2 數(shù)據(jù) 2 VDD 電源正極 10 D3 數(shù)據(jù) 3 VL 液晶顯示偏壓 11 D4 數(shù)據(jù) 4 RS 數(shù)據(jù)/ 命令選擇 12 D5 數(shù)據(jù) 5 R/W 讀/ 寫選擇 13 D6 數(shù)據(jù) 6 E 使能信號(hào) 14 D7 數(shù)據(jù) 7 D0 數(shù)據(jù) 15 BLA 背光源正極 8 D1 數(shù)據(jù) 16 BLK 背光源負(fù)極 顯示容量 :162 個(gè)字符,芯片工作電壓 :4.5 5.5V ,工作電流 :2.0mA(5.0V) ,模塊最佳 工作電壓 :5.0V ,字符尺寸 :2.954.35(WH)mm 。 3.2.
19、1 引腳功能說明 1602LCD 采用標(biāo)準(zhǔn)的 14 腳(無背光)或 16 腳(帶背光)接口,各引腳接口說明如圖 3.2.2 1602LCD 的指令說明及時(shí)序 沒有天生的聰明 只有不懈的努力 10四川工程職業(yè)技術(shù)學(xué)院 電氣系 2012 級(jí)電子信息一班 張登翔 201212020216 I/D 1 1 S 光標(biāo)或字符移位 S/C R/L 置功能 DL 置字符發(fā)生存貯器地址 字符發(fā)生存貯器地址 10 置數(shù)據(jù)存貯器地址 讀忙標(biāo)志或地址 寫數(shù)到 CGRAM或 DDRA)M 1 從 CGRAM或 DDRAM讀數(shù) 1 1 顯示數(shù)據(jù)存貯器地址 BF 計(jì)數(shù)器地址 要寫的數(shù)據(jù)內(nèi)容 讀出的數(shù)據(jù)內(nèi)容 11 1602
20、液晶模塊內(nèi)部的控制器共有 11條控制指令,如圖 清顯示 光標(biāo)返回 置輸入模式 顯示開/ 關(guān)控制 3.2.3 1602LCD 的一般初始化過程 延時(shí) 15mS 寫指令 38H(不檢測(cè)忙信號(hào)) 延時(shí) 5mS 寫指令 38H(不檢測(cè)忙信號(hào)) 延時(shí) 5mS 寫指令 38H(不檢測(cè)忙信號(hào)) 以后每次寫指令、讀 / 寫數(shù)據(jù)操作均需要檢測(cè)忙信號(hào) 寫指令 38H:顯示模式設(shè)置 寫指令 08H:顯示關(guān)閉 寫指令 01H:顯示清屏 寫指令 06H:顯示光標(biāo)移動(dòng)設(shè)置 寫指令 0CH:顯示開及光標(biāo)設(shè)置 NRF24L01 無線模塊 nRF24L01是一款新型單片射頻收發(fā)器件 ,工作于 2.4 GHz2.5 GHz IS
21、M 頻 段。內(nèi)置頻率合成器、功率放大器、晶體振蕩器、調(diào)制器等功能模塊,并融合了 登臨對(duì)晚晴 翔云列曉陣 單片機(jī) C 語言課題設(shè)計(jì)報(bào)告 指導(dǎo)老師:施蕓 增強(qiáng)型 ShockBurst 技術(shù),其中輸出功率和通信頻道可通過程序進(jìn)行配置。 nRF24L01功耗低,在以-6dBm 的功率發(fā)射時(shí),工作電流也只有 9mA;接收時(shí),工 作電流只有 12.3mA,多種低功率工作模式 (掉電模式和空閑模式 )使節(jié)能設(shè)計(jì)更 方便10。 nRF24L01 主要特性如下: 1、GFSK 調(diào)制,硬件集成 OSI鏈路層; 2、具有自動(dòng)應(yīng)答和自動(dòng)再發(fā)射功能; 3、片內(nèi)自動(dòng)生成報(bào)頭和 CRC 校驗(yàn)碼; 4、數(shù)據(jù)傳輸率為 l Mb
22、/s 或 2Mb/s; 5、SPI速率為 0 Mb/s10 Mb/s; 6、125 個(gè)頻道與其他 nRF24 系列射頻器件相兼容; 7、QFN20引腳 4 mm4 mm封裝; 8、供電電壓為 1.9 V3.6 V; 3.2.2 引腳功能及描述 nRF24L01的封裝及引腳排列如圖所示 11。各引腳功能如圖 3.5 所示 圖 3.5 nRF24L01 封裝圖 CE:使能發(fā)射或接收; CSN,SCK,MOSI,MISO:SPI 引腳端,微處理器可通過此引腳配置 nRF24L01: IRQ:中斷標(biāo)志位; VDD :電源輸入端; 沒有天生的聰明 只有不懈的努力 12 四川工程職業(yè)技術(shù)學(xué)院 電氣系 20
23、12 級(jí)電子信息一班 張登翔 201212020216 VSS:電源地; XC2,XC1:晶體振蕩器引腳; VDD_PA:為功率放大器供電,輸出為 1.8 V; ANT1,ANT2 :天線接口; IREF:參考電流輸入; 登臨對(duì)晚晴 翔云列曉陣 單片機(jī) C 語言課題設(shè)計(jì)報(bào)告 指導(dǎo)老師:施蕓 3.2.3 工作模式 通過配置寄存器可將 nRF24L01配置為發(fā)射、接收、空閑及掉電四種工作模 式,如表 3.1 所示。 表 3.1 nRF24L01 工作模式 模式 PWR UP PRIM RX CE FIFO 寄存器狀態(tài) 接收模式 1 1 1 - 發(fā)射模式 1 0 1 數(shù)據(jù)在 TX FIFO 寄存器中
24、 發(fā)射模式 1 0 10 停留在發(fā)送模式,直至數(shù)據(jù)發(fā)送完 待機(jī)模式 2 1 0 1 TX FIFO 為空 待機(jī)模式 1 1 - 0 無數(shù)據(jù)傳輸 掉電 0 - - - 待機(jī)模式 1主要用于降低電流損耗, 在該模式下晶體振蕩器仍然是工作的; 待機(jī)模式 2則是在當(dāng) FIFO 寄存器為空且 CE=1時(shí)進(jìn)入此模式;待機(jī)模式下,所 有配置字仍然保留。在掉電模式下電流損耗最小,同時(shí) nRF24L01 也不工作,但 其所有配置寄存器的值仍然保留。 3.2.4 工作原理 發(fā)射數(shù)據(jù)時(shí),首先將 nRF24L01 配置為發(fā)射模式:接著把接收節(jié)點(diǎn)地址 TX_ADDR 和有效數(shù)據(jù) TX_PLD 按照時(shí)序由 SPI 口寫入
25、 nRF24L01緩存區(qū), TX_PLD 必須在 CSN 為低時(shí)連續(xù)寫入,而 TX_ADDR 在發(fā)射時(shí)寫入一次即可, 然后 CE 置為高電平并保持至少 10s,延遲 130s后發(fā)射數(shù)據(jù) ;若自動(dòng)應(yīng)答開啟, 那么 nRF24L01 在發(fā)射數(shù)據(jù)后立即進(jìn)入接收模式,接收應(yīng)答信號(hào)(自動(dòng)應(yīng)答接收 地址應(yīng)該與接收節(jié)點(diǎn)地址 TX_ADDR 一致)。如果收到應(yīng)答,則認(rèn)為此次通信成 功, TX_DS置高,同時(shí) TX_PLD 從TX FIFO 中清除;若未收到應(yīng)答,則自動(dòng)重 新發(fā)射該數(shù)據(jù) (自動(dòng)重發(fā)已開啟 ),若重發(fā)次數(shù) (ARC)達(dá)到上限, MAX_RT 置高, TX FIFO 中數(shù)據(jù)保留以便在次重發(fā) ;MAX
26、_RT 或 TX_DS 置高時(shí),使 IRQ 變低, 產(chǎn)生中斷,通知 MCU 。最后發(fā)射成功時(shí) ,若CE為低則 nRF24L01進(jìn)入空閑模式 沒有天生的聰明 只有不懈的努力 14 四川工程職業(yè)技術(shù)學(xué)院 電氣系 2012 級(jí)電子信息一班 張登翔 201212020216 1;若發(fā)送堆棧中有數(shù)據(jù)且 CE 為高,則進(jìn)入下一次發(fā)射 ;若發(fā)送堆棧中無數(shù)據(jù)且 CE 為高,則進(jìn)入空閑模式 2。 接收數(shù)據(jù)時(shí) ,首先將 nRF24L01 配置為接收模式,接著延遲 130s進(jìn)入接收狀 態(tài)等待數(shù)據(jù)的到來。當(dāng)接收方檢測(cè)到有效的地址和 CRC 時(shí),就將數(shù)據(jù)包存儲(chǔ)在 RX FIFO 中,同時(shí)中斷標(biāo)志位 RX_DR 置高,
27、IRQ 變低,產(chǎn)生中斷,通知 MCU 去取數(shù)據(jù)。 若此時(shí)自動(dòng)應(yīng)答開啟, 接收方則同時(shí)進(jìn)入發(fā)射狀態(tài)回傳應(yīng)答信號(hào)。 最 后接收成功時(shí),若 CE 變低,則 nRF24L01 進(jìn)入空閑模式 1。在寫寄存器之前一 定要進(jìn)入待機(jī)模式或掉電模式。 表 3.2 常用配置寄存器 地址( H ) 寄存器名稱 功能 00 CONFIG 設(shè)置 24L01 工作模式 01 EN AA 設(shè)置接收通道及自動(dòng)應(yīng)答 02 EN RXADDR 使能接收通道地址 03 SETUP AW 設(shè)置地址寬度 04 SETUP RETR 設(shè)置自動(dòng)重發(fā)數(shù)據(jù)時(shí)間和次數(shù) 07 STATUS 狀態(tài)寄存器,用來判定工作狀態(tài) 0A0F RX ADDR
28、P0P5 設(shè)置接收通道地址 10 TX ADDR 設(shè)置接收接點(diǎn)地址 1116 RX PW P0P5 設(shè)置接收通道的有效數(shù)據(jù)寬度 登臨對(duì)晚晴 翔云列曉陣 單片機(jī) C 語言課題設(shè)計(jì)報(bào)告 指導(dǎo)老師:施蕓 3.2.5 配置字 SPI口為同步串行通信接口,最大傳輸速率為 10 Mb/s,傳輸時(shí)先傳送低位 字節(jié),再傳送高位字節(jié)。但針對(duì)單個(gè)字節(jié)而言,要先送高位再送低位。與 SPI 相關(guān)的指令共有 8個(gè),使用時(shí)這些控制指令由 nRF24L01的MOSI 輸入。相應(yīng)的 狀態(tài)和數(shù)據(jù)信息是從 MISO 輸出給 MCU 。 nRF24L0l 所有的配置字都由配置寄存器定義,這些配置寄存器可通過 SPI 口訪問。 nR
29、F24L01 的配置寄存器共有 25 個(gè),常用的配置寄存器如表 3.2所示。 經(jīng)過綜合考慮, 如果采用單芯片自己焊接無線模塊可能會(huì)產(chǎn)生以下問題: 電路板 電磁影響較大, 天線不好弄, 在焊接過程中易損壞芯片。 所以最終決定采用已集 成了的模塊進(jìn)行課題的制作。模塊 PCB版圖提供于下: 沒有天生的聰明 只有不懈的努力 16 四川工程職業(yè)技術(shù)學(xué)院 電氣系 2012 級(jí)電子信息一班 張登翔 201212020216 四、軟件設(shè)計(jì) 4.1.1 溫度檢測(cè) 溫度檢測(cè)模塊軟件設(shè)計(jì) DS18B20的測(cè)溫原理遵循嚴(yán)格的單總線協(xié)議,以確保 通信數(shù)據(jù)的準(zhǔn)確性,單片機(jī)通過時(shí)序來寫入和讀出DS18B20中的數(shù)據(jù),包括初
30、 始化、讀 l 、讀 0,寫 1、寫 0 等操作。傳感器復(fù)位后,接收應(yīng)答信號(hào),跳過讀 ROM中序列號(hào)后,啟動(dòng)溫度轉(zhuǎn)換,等待溫度轉(zhuǎn)換完畢后,保存數(shù)據(jù)。如此反復(fù), 登臨對(duì)晚晴 翔云列曉陣 單片機(jī) C 語言課題設(shè)計(jì)報(bào)告 指導(dǎo)老師:施蕓 4.1.2 無線發(fā)射模塊軟件設(shè)計(jì) 首先進(jìn)行初始化操作,初始化包括設(shè)置單片機(jī) IO 和 SPI 相關(guān)寄存器兩部 分其可以和 nRF24L01 通信。通過 SPI 總線配置射頻芯片使其進(jìn)入正確的工作模 式。發(fā)射數(shù)據(jù)時(shí),首先將 nRF24L01 配置為發(fā)射模式。接著把發(fā)送端待發(fā)射數(shù)據(jù) 的目標(biāo)地址 TX ADDR 和數(shù)據(jù) TXPLD 寫入 nRF24L01 緩沖區(qū),延時(shí)后發(fā)射
31、 數(shù)據(jù),其流程圖如圖 4.2 所示14。 圖 4.2 無線 發(fā)射 軟件 流程 圖 沒有天生的聰明 只有不懈的努力 沒有天生的聰明 18 只有不懈的努力 四川工程職業(yè)技術(shù)學(xué)院 電氣系 2012 級(jí)電子信息一班 張登翔 201212020216 4.1.3 無線接收模塊軟件設(shè)計(jì) 接收數(shù)據(jù)時(shí),首先將 nRF24L01 配置為接收模式。接著延遲進(jìn)入接收狀態(tài)等 待數(shù)據(jù)的到來。當(dāng)接收方檢測(cè)到有效地址和 CRC 時(shí),就將數(shù)據(jù)包儲(chǔ)存在接收堆 棧中,同時(shí)狀態(tài)寄存器中的中斷標(biāo)志位 RX DR 置高,產(chǎn)生中斷使 IRQ 引腳變 為低電平,以便通知 MCU 去取數(shù)據(jù),其流程圖如圖 4.3 所示。 圖 4.3 無線接收
32、軟件流程圖 開始 否 登臨對(duì)晚晴 翔云列曉陣 19 單片機(jī) C 語言課題設(shè)計(jì)報(bào)告 指導(dǎo)老師:施蕓 4.2 軟件的總體設(shè)計(jì) 4.2.1 發(fā)送部分 發(fā)送部分的一個(gè)循環(huán)的總體思路是這樣的先初始化 DS18B20,從 DS18B20 讀出溫度( DS18B20 采用默認(rèn)的 12 位精度),將得到的溫度值的反碼轉(zhuǎn)化成十 進(jìn)制,取溫度數(shù)組的高兩位(即整數(shù)部分)寫入發(fā)送數(shù)據(jù)數(shù)組,然后初始化 nRF24L01,將溫度發(fā)送,其流程圖如圖 4.5 所示15。 圖 4.5 發(fā)射部分總體流程圖 4.2.2 接收部分 接收部分的總體思路是這樣的,首先還是初始化 nRF24L01,然后進(jìn)入大循 環(huán)判斷狀態(tài)寄存器是否有接收
33、中斷。如果有就從 FIFO_buffer 讀入二進(jìn)制數(shù)據(jù), 然后將數(shù)據(jù)轉(zhuǎn)換成十進(jìn)制在數(shù)碼管上顯示出來,其流程圖如圖 4.6 所示。 沒有天生的聰明 只有不懈的努力 20 四川工程職業(yè)技術(shù)學(xué)院 電氣系 2012 級(jí)電子信息一班 張登翔 201212020216 初始化 判斷接收中斷 從RX_FIFO buffer 讀數(shù)據(jù) 轉(zhuǎn)換為十進(jìn)制 圖 4.6 接收部分總體流程圖 登臨對(duì)晚晴 翔云列曉陣 數(shù)碼管顯示 單片機(jī) C 語言課題設(shè)計(jì)報(bào)告 指導(dǎo)老師:施蕓 五、設(shè)計(jì)總結(jié) 在這課題設(shè)計(jì)中我學(xué)到了很多東西,獲益匪淺。本次課題以 51 單片機(jī)為核 心實(shí)現(xiàn)了遠(yuǎn)程無線智能化溫度監(jiān)控,過溫警告。 利用溫度傳感器獲取被
34、控對(duì)象指標(biāo), 通過溫度傳感器將需要測(cè)量的溫度信號(hào) 轉(zhuǎn)化為數(shù)字電信號(hào),通過單總線與 MCU 進(jìn)行傳輸,再經(jīng)單片機(jī)轉(zhuǎn)換成溫度值經(jīng) 過 NRF24L01 無線模塊進(jìn)行傳輸,再由接收機(jī)通過 NRF24L01 進(jìn)行接收,最終 由接收機(jī)進(jìn)行處理,并將當(dāng)前所監(jiān)控的溫度值,通過 LCD1602 進(jìn)行顯示。并且 可以由按鍵進(jìn)行溫度的最大最小值得設(shè)定,最終將監(jiān)控溫度設(shè)定在一個(gè)范圍內(nèi)。 若溫度過高或過低都可由報(bào)警模塊進(jìn)行報(bào)警。 在設(shè)計(jì)此次課題的初期, 考慮到手中有兩塊閑置的單片機(jī), 并且有一塊 1602 顯示模塊及兩塊無線模塊。 所以快速的決定做一個(gè)無線的課題, 可是無線控制什 么呢?于是上網(wǎng)百度了一下, 發(fā)現(xiàn)在現(xiàn)
35、代的工業(yè)控制中, 溫度是一個(gè)非常重要的 因數(shù)。并且在電子行業(yè)中, 溫度也是非常重要的, 而且溫度過高對(duì)電子產(chǎn)品的損 害非常厲害。于是決定做一個(gè)關(guān)于溫度監(jiān)控的課題。這是設(shè)計(jì)之初的目的。 但是在設(shè)計(jì)的過程中, 暴露的問題非常之多。 而且反了一個(gè)致命的錯(cuò)誤。 由 于本人在焊接 NRF24L01 模塊時(shí),沒有查閱相關(guān)的模塊供電電壓, 直接用了單片 機(jī)的 VCC 對(duì)其進(jìn)行供電。導(dǎo)致模塊被燒壞,本人深深的心痛啊。悔不當(dāng)初,不 看說明書,自己想怎么干就怎么干。在模塊被燒壞后,一直處于后悔中,但是想 想,就當(dāng)花錢買個(gè)教訓(xùn)吧,于是重新振作起來,上網(wǎng)淘寶淘寶,當(dāng)新的模塊到手 后,這下, 我并不急于對(duì)無線模塊進(jìn)行焊
36、接, 反而是將重點(diǎn)轉(zhuǎn)向了模塊供電電壓 部分的設(shè)計(jì),由于模塊是 3.3V 供電的(這是后來查閱說明書了解到的) ,可是自 己手中只有 7805和 7809這兩種穩(wěn)壓芯片。并無 3.3v的穩(wěn)壓管及穩(wěn)壓模塊。于 是向盛老師求助。最終盛老師給了我兩塊 AZ1117T,電源問題才得以解決。在 此感謝盛老師。還有就是單片機(jī)對(duì)于 RF24L01 高頻模塊的讀寫、操作等比較復(fù) 雜,查找的資料也很難理解。還有就是 DS18B20 的時(shí)序也有一定難度。 不過,通過這次的學(xué)習(xí)和實(shí)踐,我學(xué)會(huì)了如何看待問題,解決問題。例如, 調(diào)試無線收發(fā)時(shí), 1602 老顯示亂碼,而且一直跳躍不定,又例如后來整合程序 時(shí),溫度不正確,
37、 老是成不斷上升趨勢(shì), 后來檢查程序后才發(fā)現(xiàn)是沒有將溫度的 全局變量清零,導(dǎo)致每次循環(huán)累加。 姓名:張登翔 學(xué)號(hào): 201212020216 班級(jí):2012級(jí)電子信息 1 班 六、參考文獻(xiàn) 1】 譚浩強(qiáng).C程序設(shè)計(jì)北京 M. 北京:清華大學(xué)出版社, 1999 . 沒有天生的聰明 只有不懈的努力 22 四川工程職業(yè)技術(shù)學(xué)院 電氣系 2012 級(jí)電子信息一班 張登翔 201212020216 【2】 朱玉穎,蔡占輝 .基于 nRF24L01的遠(yuǎn)程溫度檢測(cè)系統(tǒng)設(shè)計(jì) J . 通信與信 息處理 ,2010,29(5):56-58. 【3】郭天祥,新概念 51單片機(jī) C語言教程.哈爾濱:電子工業(yè)出版社。
38、2008 七、硬件原理圖及調(diào)試 7.1 系統(tǒng)硬件原理圖 發(fā)射機(jī) 登臨對(duì)晚晴 翔云列曉陣 23 單片機(jī) C 語言課題設(shè)計(jì)報(bào)告 指導(dǎo)老師:施蕓 接收機(jī) 八、程序清單 發(fā)射端程序: #include #include #define uchar unsigned char 沒有天生的聰明 只有不懈的努力 24 / SPI(nRF24L01) commands #define READ_REG0 x00 #define WRITE_REG0 x20 #define RD_RX_PLOAD 0 x61 #define WR_TX_PLOAD 0 xA0 #define FLUSH_TX0 xE1 #de
39、fine FLUSH_RX0 xE2 #define REUSE_TX_PL 0 xE3 #define NOP 0 xFF 四川工程職業(yè)技術(shù)學(xué)院 電氣系 2012 級(jí)電子信息一班 張登翔 201212020216 #define uint unsigned int / Define interface to nRF24L01 / Define read command to register / Define write command to register / Define RX payload register address / Define TX payload register
40、address / Define flush TX register command / Define flush RX register command / Define reuse TX payload register command / Define No Operation, might be used to read status register / SPI(nRF24L01) registers(addresses) #define CONFIG 0 x00 / Config register address #define EN_AA 0 x01 / Enable Auto
41、Acknowledgment register address #define EN_RXADDR 0 x02 / Enabled RX addresses register address #define SETUP_AW 0 x03 / Setup address width register address #define SETUP_RETR 0 x04 / Setup Auto. Retrans register address #define RF_CH 0 x05 / RF channel register address #define RF_SETUP 0 x06 / RF
42、setup register address #define STATUS 0 x07 / Status register address #define OBSERVE_TX 0 x08 / Observe TX register address #define CD 0 x09 / Carrier Detect register address #define RX_ADDR_P0 0 x0A / RX address pipe0 register address #define RX_ADDR_P1 0 x0B / RX address pipe1 register address #d
43、efine RX_ADDR_P2 0 x0C / RX address pipe2 register address #define RX_ADDR_P3 0 x0D / RX address pipe3 register address #define RX_ADDR_P4 0 x0E / RX address pipe4 register address #define RX_ADDR_P5 0 x0F / RX address pipe5 register address #define TX_ADDR 0 x10 / TX address register address #defin
44、e RX_PW_P0 0 x11 / RX payload width, pipe0 register address #define RX_PW_P1 0 x12 / RX payload width, pipe1 register address #define RX_PW_P2 0 x13 / RX payload width, pipe2 register address #define RX_PW_P3 0 x14 / RX payload width, pipe3 register address #define RX_PW_P4 0 x15 / RX payload width,
45、 pipe4 register address #define RX_PW_P5 0 x16 / RX payload width, pipe5 register address #define FIFO_STATUS 0 x17 / FIFO Status Register register address #define TX_ADR_WIDTH 5 #define RX_ADR_WIDTH 5 #define TX_PLOAD_WIDTH 4 #define TX_PLOAD_WIDTH 4 登臨對(duì)晚晴 翔云列曉陣 單片機(jī) C 語言課題設(shè)計(jì)報(bào)告 指導(dǎo)老師:施蕓 float f_temp;
46、 uint temp; uchar TX_ADDRESS5=0 x34,0 x43,0 x19,0 x91,0 x09; sbit CE=P27; sbit CSN=P22; sbit MOSI=P23; sbit MISO=P25; sbit SCK=P26; sbit IRQ=P24; sbit ds=P37; sbit led0=P10; uchar bdata sta; sbit RX_DR= sta6; sbit TX_DS= sta5; sbit MAX_RT= sta4; void init_io(void) CE = 0;/ 待機(jī) CSN = 1;/ SPI 禁止 SCK =
47、0;/ SPI 時(shí)鐘置低 IRQ = 1;/ 中斷復(fù)位 uchar SPI_RW(uchar byte) uchar i; for(i=0;i8;i+) MOSI=(byte byte=(byte1); SCK=1; byte|=MISO; SCK=0; return(byte); uchar SPI_RW_reg(uchar reg,uchar value) uchar status; CSN=0; status=SPI_RW(reg); SPI_RW(value); 沒有天生的聰明 只有不懈的努力 26 四川工程職業(yè)技術(shù)學(xué)院 電氣系 2012 級(jí)電子信息一班 張登翔 20121202021
48、6 CSN=1; return(status); uchar SPI_read(uchar reg) uchar reg_val; CSN=0; SPI_RW(reg); reg_val=SPI_RW(0); CSN=1; return(reg_val); uchar SPI_read_pload(uchar reg,uchar *pBuf,uchar bytes) uchar status,i; CSN=0; status=SPI_RW(reg); for(i=0;ibytes;i+) pBufi=SPI_RW(0); CSN=1; return(status); uchar SPI_wri
49、te_pload(uchar reg,uchar *pBuf,uchar bytes) uchar status,i; CSN=0; status=SPI_RW(reg); for(i=0;i0;i-) for(j=x;j0;j-); void dreset(void) / 初始化 uint i; / ds=1; / _nop_(); ds=0; delayus(7,15); ds=1; i=4; while(i0) i-; delayus(1,100); bit tempreadbit(void) / 讀一位數(shù)據(jù) uint i; bit dat; / ds=1;i+; ds=0; _nop_
50、(); ds=1; i+;i+; dat=ds; i=8; while(i0)i-; return(dat); uchar tempread(void) / 讀一個(gè)字節(jié)函數(shù) uchar i,j,dat; dat=0; for(i=0;i8;i+) 登臨對(duì)晚晴 翔云列曉陣 29 單片機(jī) C 語言課題設(shè)計(jì)報(bào)告 指導(dǎo)老師:施蕓 j=tempreadbit(); dat=(j1); return(dat); void tempwritebyte(uchar dat) uint i; uchar j; bit testb; for(j=0;j1; if(testb) ds=0; i+;i+;/延時(shí)確定時(shí)
51、間 15US ds=1; i=8; while(i0)i-; else ds=0; /i=8; /while(i0)i-; delayus(1,5); ds=1; i+;i+; void tempchange(void) /DS18B20 溫度轉(zhuǎn)換 dreset(); delayus(1,113); tempwritebyte(0 xcc); / 跳過度 ROM 指令 tempwritebyte(0 x44);/ 溫度轉(zhuǎn)換指令 uint get_temp()/ 讀取寄存器中存儲(chǔ)的溫度數(shù)據(jù) uchar a,b; 沒有天生的聰明 只有不懈的努力 30 四川工程職業(yè)技術(shù)學(xué)院 電氣系 2012 級(jí)電子
52、信息一班 張登翔 201212020216 dreset(); delayus(1,113); tempwritebyte(0 xcc); tempwritebyte(0 xbe); a=tempread(); b=tempread(); temp=b; temp=8; temp=temp|a; f_temp=temp*0.0625; temp=f_temp*10+0.5; / f_temp=f_temp+0.05; return temp; void main() uchar tx_buf4=0; init_io(); while(1) tempchange(); delayus(1,113
53、); get_temp(); tx_buf0=(uchar)(temp/100); tx_buf1=(uchar)(temp%100)/10); tx_buf2=.; tx_buf3=(uchar)(temp%100)%10); TX_mode(tx_buf); 接收程序 #include /#include / Define read command to register / Define write command to register / Define RX payload register address / Define TX payload register address /
54、 Define flush TX register command / Define flush RX register command #define uchar unsigned char #define uint unsigned int #define READ_REG0 x00 #define WRITE_REG0 x20 #define RD_RX_PLOAD 0 x61 #define WR_TX_PLOAD 0 xA0 #define FLUSH_TX0 xE1 #define FLUSH_RX0 xE2 登臨對(duì)晚晴 翔云列曉陣 單片機(jī) C 語言課題設(shè)計(jì)報(bào)告 指導(dǎo)老師:施蕓 #
55、define REUSE_TX_PL 0 xE3 / Define reuse TX payload register command #define NOP 0 xFF / Define No Operation, might be used to read status register / SPI(nRF24L01) registers(addresses) #define CONFIG 0 x00 / Config register address #define EN_AA 0 x01 / Enable Auto Acknowledgment register address #de
56、fine EN_RXADDR 0 x02 / Enabled RX addresses register address #define SETUP_AW 0 x03 / Setup address width register address #define SETUP_RETR 0 x04 / Setup Auto. Retrans register address #define RF_CH 0 x05 / RF channel register address #define RF_SETUP 0 x06 / RF setup register address #define STAT
57、US 0 x07 / Status register address #define OBSERVE_TX 0 x08 / Observe TX register address #define CD 0 x09 / Carrier Detect register address #define RX_ADDR_P0 0 x0A / RX address pipe0 register address #define RX_ADDR_P1 0 x0B / RX address pipe1 register address #define RX_ADDR_P2 0 x0C / RX address pipe2 register address #define RX_ADDR_P3 0 x0D / RX address pipe3 register address #define RX_ADDR_P4 0 x0E / RX address pipe4 register address #define RX_ADDR_P5 0 x0F / RX address pipe5 register address #define TX_ADDR 0 x10 / TX address register addre
溫馨提示
- 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年池州職業(yè)技術(shù)學(xué)院高職單招職業(yè)適應(yīng)性測(cè)試近5年??及鎱⒖碱}庫含答案解析
- 2025年武威職業(yè)學(xué)院高職單招職業(yè)技能測(cè)試近5年??及鎱⒖碱}庫含答案解析
- 2025年棗莊科技職業(yè)學(xué)院高職單招職業(yè)適應(yīng)性測(cè)試近5年??及鎱⒖碱}庫含答案解析
- 生物制藥產(chǎn)業(yè)化項(xiàng)目建設(shè)可行性報(bào)告書
- 2025年外研版2024八年級(jí)地理下冊(cè)月考試卷含答案
- 2025年新科版選修3歷史上冊(cè)階段測(cè)試試卷含答案
- 智能設(shè)備數(shù)據(jù)共享合同(2篇)
- 智能電網(wǎng)系統(tǒng)合作開發(fā)合同(2篇)
- 機(jī)動(dòng)車坡道施工合同(2篇)
- 2025年湘師大新版選擇性必修二物理上冊(cè)月考試卷
- 2025年度院感管理工作計(jì)劃(后附表格版)
- 勵(lì)志課件-如何做好本職工作
- 2024年山東省濟(jì)南市中考英語試題卷(含答案解析)
- 2024年全國(guó)各地中考試題分類匯編(一):現(xiàn)代文閱讀含答案
- GB/T 30306-2024家用和類似用途飲用水處理濾芯
- 暑假作業(yè) 10 高二英語完形填空20篇(原卷版)-【暑假分層作業(yè)】2024年高二英語暑假培優(yōu)練(人教版2019)
- 武強(qiáng)縣華浩數(shù)控設(shè)備科技有限公司年產(chǎn)9000把(只)提琴、吉他、薩克斯等樂器及80臺(tái)(套)數(shù)控雕刻設(shè)備項(xiàng)目環(huán)評(píng)報(bào)告
- 安全生產(chǎn)法律法規(guī)匯編(2024年4月)
- DB11∕T 882-2023 房屋建筑安全評(píng)估技術(shù)規(guī)程
- 華為員工股權(quán)激勵(lì)方案
- 衛(wèi)生院安全生產(chǎn)知識(shí)培訓(xùn)課件
評(píng)論
0/150
提交評(píng)論