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

正文內(nèi)容

基于單片機(jī)的沼氣池溫控系統(tǒng)研究畢業(yè)論文(編輯修改稿)

2024-07-19 21:00 本頁面
 

【文章內(nèi)容簡介】 有回應(yīng)則跳轉(zhuǎn)到TSR3 DJNZ R0,TSR2 。 如果等沒到37次, 則繼續(xù)等待回應(yīng) CLR FLAG1 SJMP TSR7 。 跳轉(zhuǎn)到TSR7TSR3: SETB FLAG1 。 置標(biāo)志位, 表示DS18B20存在 CLR MOV R0,117TSR6: DJNZ R0,$ 。 時(shí)序要求延時(shí)一段時(shí)間TSR7: SETB DATAIN 。 拉高數(shù)據(jù)線 RET 查詢溫度該設(shè)計(jì)中, 通過向DS18B20發(fā)送指令來查詢溫度. 在每次操作前, 都需要將DS18B20置位, 先向DS18B20發(fā)送溫度轉(zhuǎn)化的指令, 根據(jù)要求需要750ms的等待時(shí)間, 在這段時(shí)間中, 通過調(diào)用顯示子程序來做到延遲. 然后, 向DS18B20發(fā)送讀取溫度的命令, 將溫度讀取出來, 放到緩沖中區(qū). 。 讀出轉(zhuǎn)換后的溫度值GET_TEMPER: SETB DATAIN LCALL INIT_1820 。 先復(fù)位DS18B20 JB FLAG1,TSS2 NOP RET 。 判斷DS18B20是否存在?若不存在則返回TSS2: MOV A,0CCH 。 跳過ROM匹配 LCALL WRITE_1820 MOV A,44H 。 發(fā)出溫度轉(zhuǎn)換命令 LCALL WRITE_1820 ACALL DISP1 。 這里通過調(diào)用顯示子程序顯示延時(shí)一段時(shí)間 LCALL INIT_1820 。 準(zhǔn)備讀溫度前先復(fù)位 MOV A,0CCH 。 跳過ROM匹配 LCALL WRITE_1820 MOV A,0BEH 。 發(fā)出讀溫度命令 LCALL WRITE_1820 LCALL READ_1820 。 將讀出的溫度數(shù)據(jù)保存 RET 發(fā)送指令使用同過I/O口向DS18B20寫數(shù)據(jù). 該設(shè)計(jì)中, 通過單總線采取移位的方式來向DS18B20寫入數(shù)據(jù), 按照8位的方式寫進(jìn)去. 在寫的過程中, 需要嚴(yán)格按照DS18B20的產(chǎn)品說明書的時(shí)序進(jìn)行寫操作:每次將1Bit數(shù)據(jù)寫入前, 都需要對DS18B20進(jìn)行寫的初始化, 將數(shù)據(jù)線拉低60us以上, 完成寫初始化后, 將1位數(shù)據(jù)寫進(jìn)DS18B20, 然后等待15us以上, 寫操作完成, 繼續(xù)初始化, 寫下1位, 直到寫完一字節(jié). 具體程序如下. WRITE_1820: MOV R2,8 。 一共8位數(shù)據(jù) CLR C 。 清除進(jìn)位標(biāo)志位WR1: CLR DATAIN 。 拉低數(shù)據(jù)線60us以上后, 將數(shù)據(jù)移位寫入DS18B20 MOV R3,6 DJNZ R3,$ 。 等待60us以上, 完成寫初始化, 然后寫入數(shù)據(jù) RRC A 。 將累加器中的數(shù)據(jù)帶進(jìn)位右移 MOV DATAIN,C 。 將進(jìn)位位寫進(jìn)DS18B20后, 等待15us以上 MOV R3,23 DJNZ R3,$ 。 等待15us以上, 完成1bit的寫操作 SETB DATAIN 。 拉高數(shù)據(jù)線, 初始化寫 NOP DJNZ R2,WR1 。 如果一個(gè)字節(jié)沒寫完, 繼續(xù)寫 SETB DATAIN 。 拉高數(shù)據(jù)線 RET 讀取數(shù)據(jù)使用通過I/O口從DS18B20讀取數(shù)據(jù). 在該設(shè)計(jì)中, 也使用移位的方式從DS18B20中讀取數(shù)據(jù), 需要嚴(yán)格按照DS18B20的產(chǎn)品說明書的時(shí)序進(jìn)行讀操作, 每次將1位數(shù)據(jù)讀入前, 都需要對DS18B20進(jìn)行讀的初始化, 將數(shù)據(jù)線拉高1us以上, 等待讀的初始化, 然后拉低數(shù)據(jù)線1us以上, 使讀初始化有效. 完成度初始化后, 從DS18B20將1位數(shù)據(jù)讀入, 然后等待15us以上, 讀操作完成, 等待60us后, 繼續(xù)初始化, 讀下1位, 直到讀完1B. 這里, 直接完成了溫度的計(jì)算功能, , 不要求顯示小數(shù)所以可以拋棄29H的低4位, 將28H中的低4位移入29H中的高4位, 這樣獲得一個(gè)新字節(jié), 這個(gè)字節(jié)就是實(shí)際測量獲得的溫度, . 程序如下:。 讀DS18B20的子程序(有具體的時(shí)序要求), 讀DS18B20的程序, 從DS18B20中讀出兩個(gè)字節(jié)的溫度數(shù)據(jù)READ_1820: MOV R4,2 。 將我呢度高位和低位從DS18B20中讀出 MOV R1,29H 。 低位純?nèi)?9H(TEMPER_L),高位存入28H(TEMPER_H)RE00: MOV R2,8 。 數(shù)據(jù)一共有8位RE01: CLR C 。 清除進(jìn)位標(biāo)志位 SETB DATAIN 。 拉高數(shù)據(jù)線后, 等待1us初始化讀 NOP NOP CLR DATAIN 。 拉低數(shù)據(jù)線后, 保持1us以上使讀初始化有效 NOP NOP NOP SETB DATAIN 。 拉高數(shù)據(jù)線, 開始讀操作 MOV R3,9RE10: DJNZ R3,RE10 。 等待15us后, 寫入數(shù)據(jù)正確 MOV C,DATAIN 。 將數(shù)據(jù)讀入累加器 MOV R3,23RE20: DJNZ R3,RE20 。 等待60us以上后, 進(jìn)行下一次讀操作 RRC A 。 將累加器帶進(jìn)位右移 DJNZ R2,RE01 。 如果沒讀滿一個(gè)字節(jié), 繼續(xù)讀取數(shù)據(jù) MOV @R1,A 。 將累加器中的數(shù)據(jù)存儲進(jìn)地址29H中 DEC R1 DJNZ R4,RE00 。 繼續(xù)讀取高位 RET 中斷處理8051提供5個(gè)中斷, 2個(gè)中斷請求信號有外部產(chǎn)生并輸入請求信號, 稱之為外部中斷源, 其余的中斷請求信號有內(nèi)部產(chǎn)生并激活中斷請求信號, 稱為內(nèi)部中斷源. 其中外部中斷0請求輸入端口位(), 低電平貨負(fù)跳變激活中斷請求IE0位. 當(dāng)外部中斷0中斷請求有效, , 主機(jī)在每個(gè)機(jī)器周期相應(yīng)狀態(tài)采集相應(yīng)的IE0標(biāo)志位, 當(dāng)條件滿足, 則主機(jī)響應(yīng)中斷. 有硬件自動復(fù)位IE0. 而外部中斷1請求輸入端口(), 當(dāng)外部中斷1中斷請求有效, 則置位TCON. 3的IE1中斷請求標(biāo)志位. 中斷程序如下:。 數(shù)碼管個(gè)位控制鍵對應(yīng)的中斷處理程序SXXINT0: PUSH ACC 。 累加器數(shù)據(jù)進(jìn)棧 INC 75H 。 個(gè)位對應(yīng)的數(shù)值加1 MOV A,75H 。 個(gè)位數(shù)值傳送至寄存器A CJNE A,10,SXXINT01 。 當(dāng)個(gè)位數(shù)值小于10時(shí), 轉(zhuǎn)向ZINT01 MOV 75H,0 。 個(gè)位數(shù)值設(shè)置為0SXXINT01: POP ACC 。 堆棧中的數(shù)據(jù)出棧 RETI 。 中斷返回。 數(shù)碼管十位控制鍵對應(yīng)的中斷處理程序SXXINT1: PUSH ACC 。 累加器數(shù)據(jù)進(jìn)棧 INC 76H 。 十位對應(yīng)的數(shù)值加1 SETB 。 報(bào)警蜂鳴響 MOV A,76H 。 十位數(shù)值傳送至寄存器A CJNE A,10, SXXINT11 。 當(dāng)十位數(shù)值小于10時(shí), 轉(zhuǎn)向ZINT11TT: SETB MOV 76H,0 。 十位數(shù)值設(shè)置為0CJNE A,60, SXXINT11 。 當(dāng)十位數(shù)值小于60時(shí), 轉(zhuǎn)向ZINT11 MOV 76H,0 。 十位數(shù)值設(shè)置為0 CLR 。 報(bào)警蜂鳴器關(guān)閉SXXINT11: POP ACC 。 累加器數(shù)據(jù)出棧 RETI 。 中斷返回 主程序有了上面子程序的基礎(chǔ), 通過主程序, 可以方便的實(shí)現(xiàn)系統(tǒng)子程序的調(diào)用和其間的嵌套調(diào)用. 主要包括偽指令、設(shè)置外部中斷的入口地址、開中斷以及主程序?qū)ψ映绦虻恼{(diào)用. 。 以下是偽指令, 用于定義TMPL EQU 29H 。 低字節(jié)寄存器TMPH EQU 28H 。 高字節(jié)寄存器FLAG1 EQU 38H 。 標(biāo)志寄存器, 用于檢測溫度傳感器是否存在DATAIN BIT 。 DS18B20所接的數(shù)據(jù)線。 規(guī)定程序的存放地址 ORG 00H 。 以下程序從00H單元開始存放 LJMP MAIN1。 外部中斷0的入口地址 ORG 03H 。 個(gè)位控制鍵所引起的中斷服務(wù)程序入口地址 LJMP ZINT0外部中斷1的入口地址 ORG 13H 。 十位控制鍵所引起的中斷服務(wù)程序入口地址 LJMP ZINT1 ORG 30H。 打開外部中斷0和外部中斷1MAIN1: SETB IT0 。 ITO置位 SETB EA 。 允許打開所有中斷 SETB EX0 。 開中斷0 SETB IT1 SETB EX1 。 開中斷1 SETB 。 控制加熱系統(tǒng) SETB 。 定義系統(tǒng)初始化時(shí)系統(tǒng)的顯示 MOV 74H,0 。 設(shè)置復(fù)位按鈕按下時(shí)系統(tǒng)顯示全O MOV 75H,0 MOV 76H,0 MOV 77H,0。 主程序調(diào)用子程序MAIN: LCALL GET_TEMPER 。 長調(diào)用讀出轉(zhuǎn)換后的溫度值子程序 LCALL CVTTMP 。 長調(diào)用比較程序 LCALL DISP1 。 長調(diào)用顯示程序 AJMP MAIN 溫控系統(tǒng)的電路原理圖基于以上子程序和主程序的設(shè)計(jì), 將子程序和主程序編譯連接, 并經(jīng)過反復(fù)調(diào)試后, 最后能初步實(shí)現(xiàn)設(shè)計(jì)功能的電路圖如下:圖 23 基于單片機(jī)的沼氣池溫控系統(tǒng)電路原理圖 24 基于單片機(jī)的沼氣池監(jiān)控與降溫系統(tǒng)電路原理 3 系統(tǒng)硬件的實(shí)現(xiàn)第一章曾介紹過溫度是影響沼氣發(fā)酵的重要因素, 本章在第二章軟件設(shè)計(jì)的基礎(chǔ)之上實(shí)現(xiàn)對系統(tǒng)的總體硬件上的設(shè)計(jì), 包括元器件的選擇、硬件的搭建、實(shí)物的調(diào)試等. 溫控系統(tǒng)設(shè)計(jì)的元件功能簡介溫度測量在生產(chǎn)、生活中隨處可見. 隨著工業(yè)技術(shù)迅猛的更新和電子電路的高度集成化, 傳統(tǒng)的溫度測量傳感器從精度和穩(wěn)定性商都不能滿足測量要求. DS18B
點(diǎn)擊復(fù)制文檔內(nèi)容
數(shù)學(xué)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1