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

正文內(nèi)容

信息與通信]基于單片機(jī)的室內(nèi)電熱水器控制系統(tǒng)設(shè)計(jì)-資料下載頁

2024-11-12 15:53本頁面

【導(dǎo)讀】的提高,人們對電熱水器的要求越來越趨向于智能化和數(shù)字化。的大容量電熱水器的加熱時間一般都比較長,如果熱水器一直開著,熱水器使用起來更加舒適省電。本設(shè)計(jì)采用AT89S51單片機(jī)作為控制。以達(dá)到定時開關(guān)機(jī)的目的,基本實(shí)現(xiàn)了智能控制功能。器更加方便且精度高,可根據(jù)不同需要用于各種場合。

  

【正文】 。單片機(jī)內(nèi)存分配申明 。 TEMP EQU 30H 。系統(tǒng)保留溫度 TEMPER_L EQU 29H 。用于保存讀出溫度的低 8位 TEMPER_H EQU 28H 。用于保存讀出溫度的高 8位 REAL_TEMP EQU 31H 。檢測得的實(shí)際溫度保存地址 FLAG1 EQU 38H 。是否檢測到 DS18B20 標(biāo)志位 A_BIT EQU 20H 。數(shù)碼管個位數(shù)存放內(nèi)存位置 B_BIT EQU 21H 。數(shù)碼管十位數(shù)存放內(nèi)存位置 MIAO EUQ 61H 。系統(tǒng)時鐘 秒存儲 地址 FEN EUQ 62H 。分 SHI EUQ 63H 。小時 TIME EUQ 22H 。定時時間存儲 地址 。進(jìn)行溫度顯示,顯示范圍 00℃到 99℃,顯示精度1℃。 。因?yàn)?12位轉(zhuǎn)化時每一位的精度為 ℃,不要求顯示小數(shù)所以 ??梢話仐?29H 的低4位。 。將 28H中的低4位移入 29H中的高4位,這樣獲得一個新字節(jié), 基于單片機(jī)的室內(nèi)熱水器控制系統(tǒng)設(shè)計(jì) 36 。這個字節(jié)就是實(shí)際測量獲得的溫度 MAIN: MOV 60H,00H MOV 61H,00H MOV 62H,00H MOV 63H,00H MOV TEMP,63H 。初始化 8155芯片 SETB 。設(shè)定 8155作為 I/O輸出 CLR MOV DPTR,0100H 。指向 8155命令口地址 MOV A,03H 。取命令字 MOVX @DPTR,A 。寫命令字 。初始化中斷系統(tǒng) LCALL INT0_ALLOW LCALL INT1_ALLOW LCALL T0_ALLOW LCALL T1_ALLOW LOOP: LCALL GET_TEMPER 。調(diào)用讀溫度子程序 MOV A,29H 。將溫度 低8位送進(jìn)A MOV R0,28H 。將溫度高8位的地址送入 R0 XCHD A,@R0 。將 28H中的低4位與 29H的低4位交換 SWAP A 。將A中的低4位與高4位交換 MOV 31H,A 。將實(shí)際溫度保存在 31H中 LCALL CONVERT_TEMPER 。溫度轉(zhuǎn)換成十進(jìn)制 LCALL DISPLAY 。調(diào)用數(shù)碼管顯示子程序 LCALL KEYEXE 。檢測是否有 鍵盤控制輸入? LCALL HEAT_CONTROL 。加熱控制 LJMP LOOP 。 。加熱控制子程序 基于單片機(jī)的室內(nèi)熱水器控制系統(tǒng)設(shè)計(jì) 37 。 HEAT_CONTROL: 。加熱控制 MOV A,REAL_TEMP CJNE A,TEMP,HEAT 。比較采集的溫度與設(shè)定溫度 HEAT: JNC UNHEAT 。溫度大于設(shè)定溫度,關(guān)閉加熱 SETB 。溫度小于設(shè)定溫度,開啟加熱 SJMP FH UNHEAT: CLR FH: RET 。外部中斷 0初始化 INT0_ALLOW: SETB EA SETB EX0 CLR PX0 SETB IT0 RET 。外部中斷 1初始化 INT1_ALLOW: SETB EA SETB EX1 CLR PX1 SETB IT1 RET 。定時器 T0中斷初始化 TO_ALLOW: MOV TMOD,01H 。T0 工作于方式 1 MOV TH0,3CH 。設(shè)置計(jì)數(shù)初值 ,延時 50ms MOV TL0,B0H SETB EA 。CPU 開中斷 基于單片機(jī)的室內(nèi)熱水器控制系統(tǒng)設(shè)計(jì) 38 SETB ET0 。允許 T0中斷 SETB PT0 。優(yōu)先中斷 SETB TR0 。啟動 T0中斷 MOV R7,200 。循環(huán) 200次, 可 延時 10s MOV R6,36 。循環(huán) 36次,延時 360s MOV A,TEMP 。輸入設(shè)定時間 MOV B,10 MUL AB MOV R5,A RET 。定時器 T1中斷初始化 T1_ALLOW: MOV TMOD,10H 。 T1工作于方式 1 MOV TH1,3CH 。設(shè)置計(jì)數(shù)初值 ,延時 50ms MOV TL1,B0H SETB EA 。CPU 開中斷 SETB ET1 。允許 T1中斷 SETB PT1 。優(yōu)先中斷 SETB TR1 。啟動 T1中斷 RET 。 。 溫度檢測程序 。功能:從溫度傳感器 DS18B20 讀寫,然后將接收到的 數(shù)據(jù) 。直接顯示到兩個數(shù)碼管上 。 。這是關(guān)于 DS18B20 的讀寫程序,數(shù)據(jù)腳 ,晶振 。溫度傳感器 DS18B20 匯編程序,采用器件默認(rèn)的 12位轉(zhuǎn)化, 。最大轉(zhuǎn)化時間 750μ s,可以將檢測到的溫度值直接顯示到兩個數(shù)碼管上 。顯示溫度 00 到 99度 。 。這是 DS18B20 復(fù)位初始化子程序 。 基于單片機(jī)的室內(nèi)熱水器控制系統(tǒng)設(shè)計(jì) 39 INIT_1820: SETB 。拉高 NOP CLR 。拉低 。主機(jī)發(fā)出延時 537μ s的復(fù)位低脈沖 MOV R1,3 TSR1: MOV RO,107 DJNZ R0,$ 。當(dāng) R0不等于0時 ,原地等待 DJNZ R1,TSR1 。當(dāng) R1不等于0時,返回 TSR1,用于延時 SETB 。然后拉高數(shù)據(jù)線,將 DS18B20 中的數(shù)據(jù)清0 NOP NOP NOP MOV R0,25H TSR2: JNB ,TSR3 。等待 DS18B20 回應(yīng),有回應(yīng)則跳到 TSR3 DJNZ R0,TSR2 。如果等沒到37次,則繼續(xù)等待回應(yīng) LJMP TSR4 。跳轉(zhuǎn)到 TSR4 TSR3: SETB FLAG1 。置位標(biāo)志位,表示 DS18B20 存在 LJMP TSR5 。跳轉(zhuǎn)到 TSR5 TSR4: CLR FLAG1 。清標(biāo)志位,表示 DS18B20 不存在 LJMP TSR7 。 跳轉(zhuǎn)到 TSR7 TSR5: MOV R0,117 TSR6: DJNZ R0,TSR6 。時序要求延時一段時間 TSR7: SETB 。拉高數(shù)據(jù)線 RET 基于單片機(jī)的室內(nèi)熱水器控制系統(tǒng)設(shè)計(jì) 40 。 。讀溫子程序 。 。讀出轉(zhuǎn)換后的溫度值 GET_TEMPER: SETB 。拉高數(shù)據(jù)線 LCALL INIT_1820 。先復(fù)位 DS18B20 JB FLAG1,TSS2 。如果檢測到 DS18B20,則跳轉(zhuǎn)到 TSS2 CLR RET TSS2: MOV A,0CCH 。跳過 ROM匹配 LCALL WRITE_1820 。調(diào)用寫 DS18B20 指令,將累加器中的指令寫入 DS18B20 MOV A,44H 。發(fā)出溫度轉(zhuǎn)換指令 LCALL WRITE_1820 。調(diào)用寫 DS18B20 指令,將累加器中的指令寫入 DS18B20 。這里通過調(diào)用顯示子程序?qū)崿F(xiàn)延時一段時間,等待 A/D轉(zhuǎn)換結(jié)束, 12位的話要 750μ s LCALL DISPLAY LCALL INIT_1820 。準(zhǔn)備度溫度前先復(fù)位 MOV A,0CCH 。跳過 ROM匹配 LCALL WRITE_1820 MOV A,0BEH 。發(fā)出讀溫度命令 LCALL WRITE_1820 LCALL READ_18200 。將讀出的溫度數(shù)據(jù)保存到 35H/36H RET 。 。寫 DS18B20 的子程序 。 WRITE_1820: MOV R2,8 。一共8位數(shù)據(jù) 基于單片機(jī)的室內(nèi)熱水器控制系統(tǒng)設(shè)計(jì) 41 CLR C 。清除進(jìn)位標(biāo)志 WR1: CLR 。拉低數(shù)據(jù)線 60μ s以上后,將數(shù)據(jù)移位寫入 DS18B20 MOV R3,5 DJNZ R3,$ 。等待 60μ s以上,完成寫初始化,然后寫入數(shù)據(jù) RRC A 。將累加器中的數(shù)據(jù)帶進(jìn)位右移 MOV ,C 。將進(jìn)位位寫入 DS18B20 后,等待 15μ s以上 MOV R3,21 DJNZ R3,$ 。等待 15μ s以上,完成1 bit的寫操作 SETB 。拉高數(shù)據(jù)線,初始化寫 NOP DJNZ R2,WR1 。如果一個字節(jié)沒寫完,繼續(xù)寫 SETB 。拉 高數(shù)據(jù)線 RET 。 。讀 DS18B20 的子程序(有具體的時序要求) 。 READ_18200: 。讀 DS18B20 的程序,從 DS18B20 中讀出兩個字節(jié)的溫度數(shù)據(jù) MOV R4,2 。將溫度高位和低位從 DS18B20 中讀出 MOV R1,29H 。低位存入 29H( TEMPER_L) ,高位存入 28H(TEMPER_H) RE00: MOV R2,8 。數(shù)據(jù)一共有8位 RE01: CLR C 。清除進(jìn)位標(biāo)志 SETB 。拉高數(shù)據(jù)線后,等待1μ s初始化讀 NOP NOP CLR 。拉低數(shù)據(jù)線后,保
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1