


下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、河南理工大學(xué)單片機(jī)應(yīng)用與仿真訓(xùn)練設(shè)計(jì)報(bào)告多機(jī)溫度檢測(cè)系統(tǒng)設(shè)計(jì)姓 名:李汀立/韓福霞學(xué) 號(hào):2專業(yè)班級(jí):電信08-1指導(dǎo)老師: 王新/張宏偉所在學(xué)院:電氣工程與自動(dòng)化學(xué)院2011年11月22日摘要本設(shè)計(jì)是以 AT89S52 單片機(jī)為控制核心 , 利用新型一線制溫度傳感器DS18B20測(cè)量溫度值,實(shí)現(xiàn)環(huán)境溫度的檢測(cè)和報(bào)警。系統(tǒng)測(cè)溫范圍為-40 C+85C,測(cè)量精度為0.5 C .用戶可以自定義報(bào)警上、下限,一旦溫度超過極限 值, 單片機(jī)便啟動(dòng)聲光報(bào)警。該系統(tǒng)精度高、測(cè)溫范圍廣、報(bào)警及時(shí),可廣泛應(yīng) 用于基于單片機(jī)的測(cè)溫報(bào)警場(chǎng)合。系統(tǒng)抗干擾性強(qiáng)、設(shè)計(jì)靈活方便, 適合在惡劣 的環(huán)境下進(jìn)行溫度測(cè)量。系統(tǒng)硬
2、件電路包括傳感器數(shù)據(jù)采集、溫度顯示、 模式選 擇、上、下限報(bào)警主電路等.整個(gè)裝置的控制核心是 AT89S52單片機(jī)。溫度傳感 器DS18B20采用外部電源供電,傳感器輸出引腳直接和單片機(jī)相連。電路支持 模式選擇功能,可以選擇設(shè)定報(bào)警極限值或顯示當(dāng)前溫度值。 當(dāng)被測(cè)溫度越限時(shí) , 報(bào)警主電路產(chǎn)生聲光報(bào)警 .撥動(dòng)開關(guān)可以對(duì)設(shè)定報(bào)警極限值進(jìn)行寫保護(hù)。采用 2 片單片機(jī) ,組成多機(jī)溫度檢測(cè)系統(tǒng) ; 下位單片機(jī)采集溫度, 通過串行通信傳送至上 位單片機(jī);上位單片機(jī)用數(shù)碼管顯示溫度大?。换痉秶?C 100C ;精度誤差小 于0。5C ;可以任意設(shè)定溫度的上下限報(bào)警功能關(guān)鍵字:AT89S52 DS18B2
3、C溫度傳感器;數(shù)碼管;測(cè)溫報(bào)警目錄摘要 21。概述 41.1 課題背景 錯(cuò)誤!未定義書簽。1。 2 系統(tǒng)概述 42 系統(tǒng)方案設(shè)計(jì) 52.1 主控制部分設(shè)計(jì) 52。2 傳感器部分設(shè)計(jì) 63 系統(tǒng)總體方案及硬件設(shè)計(jì) 143。1 AT89S52 單片機(jī)的最小相系統(tǒng) 143.2 DS18B20 的 I/O 接線圖 153。 3 數(shù)據(jù)顯示部分 163.4 整體電路 164 軟件設(shè)計(jì) 164.1 概述 164。2 主程序方案 174.3 DS18B20 的相處理子程序 174。 4 各模塊工作流程圖 195 Proteus 軟件仿真 226 課程設(shè)計(jì)體會(huì) 227 參考文獻(xiàn) 231. 概述1。 1 設(shè)計(jì)應(yīng)用
4、背景在現(xiàn)代社會(huì),不管是在工農(nóng)業(yè)生產(chǎn)還是在人們的日常生活中 , 對(duì)溫度的測(cè)量 及控制都扮演著很重要的角色。 首先讓我們了解一下多點(diǎn)溫度檢測(cè)系統(tǒng)在各個(gè)方 面的應(yīng)用領(lǐng)域:電力、電訊設(shè)備之過熱故障預(yù)知檢測(cè),空調(diào)系統(tǒng)的溫度檢測(cè) , 保 全與監(jiān)視系統(tǒng)之應(yīng)用,醫(yī)療與健診的溫度測(cè)試,化工、機(jī)械等設(shè)備溫度過熱測(cè). 溫度檢測(cè)系統(tǒng)應(yīng)用十分廣闊。 單片機(jī)的產(chǎn)生, 使計(jì)算機(jī)正式形成了通用計(jì)算機(jī)系 統(tǒng)和嵌入式計(jì)算機(jī)系統(tǒng)的分支 . 溫度檢測(cè)系統(tǒng)的應(yīng)用遍布社會(huì)生活的各個(gè)層面 .1.2 系統(tǒng)概述本設(shè)計(jì)運(yùn)用主從分布式思想,由上位機(jī),下位機(jī)多點(diǎn)溫度數(shù)據(jù)采集,組成兩 級(jí)分布式多點(diǎn)溫度測(cè)量的巡回檢測(cè)系統(tǒng)該系統(tǒng)采用RS-232串行通訊標(biāo)
5、準(zhǔn),通過 上位機(jī)控制下位機(jī)進(jìn)行現(xiàn)場(chǎng)溫度采集。 溫度值由下位機(jī)單獨(dú)工作, 實(shí)時(shí)顯示當(dāng)前 各點(diǎn)的溫度值,對(duì)各點(diǎn)進(jìn)行控制。上位機(jī)采用的是單片機(jī)基于數(shù)字溫度傳感器 DS18B20勺系統(tǒng)。DS18B20利用 單總線的特點(diǎn)可以方便的實(shí)現(xiàn)多點(diǎn)溫度的測(cè)量, 輕松的組建傳感器網(wǎng)絡(luò), 系統(tǒng)的 抗干擾性好、設(shè)計(jì)靈活、方便,而且適合于在惡劣的環(huán)境下進(jìn)行現(xiàn)場(chǎng)溫度測(cè)量 . 本系統(tǒng)可以應(yīng)用在大型工業(yè)及民用常溫多點(diǎn)監(jiān)測(cè)場(chǎng)合。 如糧食倉(cāng)儲(chǔ)系統(tǒng)、 樓宇自 動(dòng)化系統(tǒng)、 溫控制程生產(chǎn)線之溫度影像檢測(cè)、醫(yī)療與健診的溫度測(cè)試、 空調(diào)系統(tǒng) 的溫度檢測(cè)、石化、機(jī)械等。溫度檢測(cè)系統(tǒng)有則共同的特點(diǎn):測(cè)量點(diǎn)多、環(huán)境復(fù)雜、布線分散、現(xiàn)場(chǎng)離監(jiān) 控室遠(yuǎn)
6、等。若采用一般溫度傳感器采集溫度信號(hào), 則需要設(shè)計(jì)信號(hào)調(diào)理電路、 A/D 轉(zhuǎn)換及相應(yīng)的接口電路, 才能把傳感器輸出的模擬信號(hào)轉(zhuǎn)換成數(shù)字信號(hào)送到計(jì)算 機(jī)去處理 . 這樣 , 由于各種因素會(huì)造成檢測(cè)系統(tǒng)較大的偏差;又因?yàn)闄z測(cè)環(huán)境復(fù) 雜、測(cè)量點(diǎn)多、 信號(hào)傳輸距離遠(yuǎn)及各種干擾的影響, 會(huì)使檢測(cè)系統(tǒng)的穩(wěn)定性和可 靠性下降 。所以多點(diǎn)溫度檢測(cè)系統(tǒng)的設(shè)計(jì)的關(guān)鍵在于兩部分:溫度傳感器的選 擇和主控單元的設(shè)計(jì)。溫度傳感器應(yīng)用范圍廣泛、使用數(shù)量龐大, 也高居各類傳感器之首。2 系統(tǒng)方案設(shè)計(jì)2.1 主控制部分設(shè)計(jì)此方案采用PC機(jī)實(shí)現(xiàn)。它可在線編程,可在線仿真的功能,這讓調(diào)試變得方 便。且人機(jī)交互友好。但是 PC機(jī)輸
7、出信號(hào)不能直接與 DS18B20通信。需要通過 RS232電平轉(zhuǎn)換兼容,硬件的合成在線調(diào)試,較為繁瑣,很不簡(jiǎn)便而且在一些環(huán) 境比較惡劣的場(chǎng)合 ,PC 機(jī)的體積大,攜帶安裝不方便,性能不穩(wěn)定,給工程帶來 很多麻煩 !方案二:此方案采用AT89S52八位單片機(jī)實(shí)現(xiàn)。單片機(jī)軟件編程的自由度大,可通過 編程實(shí)現(xiàn)各種各樣的算術(shù)算法和邏輯控制 . 而且體積小,硬件實(shí)現(xiàn)簡(jiǎn)單,安裝方 便。既可以單獨(dú)對(duì)多DS18B20空制工作,還可以與 PC機(jī)通信。運(yùn)用主從分布式 思想,由一臺(tái)上位機(jī), 下位機(jī)多點(diǎn)溫度數(shù)據(jù)采集, 組成兩級(jí)分布式多點(diǎn)溫度測(cè)量 的巡回檢測(cè)系統(tǒng),實(shí)現(xiàn)遠(yuǎn)程控制。另外AT89S52在工業(yè)控制上也有著廣泛的
8、應(yīng)用, 編程技術(shù)及外圍功能電路的配合使用都很成熟對(duì)STC功能的認(rèn)識(shí)AT89S52是 一種低功耗、高性能 CMOS位微控制器,具有8K在系統(tǒng)可編程 Flash 存儲(chǔ)器。 89C51 產(chǎn)品指令和引腳完全兼容。片上 Flash 允許程序存儲(chǔ)器在 系統(tǒng)可編程,亦適于常規(guī)編程器.在單芯片上,擁有靈巧的8位CPU和在系統(tǒng)可 編程Flash,使得AT89S52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解 決方案。AT89S52具有以下標(biāo)準(zhǔn)功能:8k字節(jié)Flash,256字節(jié)RAM 32位I/O 口線, 看門狗定時(shí)器, 2 個(gè)數(shù)據(jù)指針,三個(gè) 16 位定時(shí)器 / 計(jì)數(shù)器,一個(gè) 6 向量 2 級(jí)中斷結(jié)構(gòu),全雙工
9、串行口,片內(nèi)晶振及時(shí)鐘電路。另外, 可降至 0Hz 靜態(tài)邏 輯操作,支持2種軟件可選擇節(jié)電模式.空閑模式下,CPU亭止工作,允許RAM定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工作掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器 被凍結(jié),單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。Q4.2.3.4.36.7 PPPPPPPP372432221222324252C272810111213141516丄7FO.O/ADOP0.1/4D1FLi.3fAB3PO.4/AD4P0.5/AD5P0.6XAD6P0.7/AD7P2 0/A8 P2. L/A9 F2.2/A10 F2 3/A11 F2.4/A12 P2P2
10、 6/AJ4 F2TJJL15P3.0ZRXD F3-1/T 盂口 P3.2NT0 P33NT1P3 47TD P3-5/T1P3.6XWFP3.7/KD39圖錯(cuò)誤!未定義書簽。AT89S522。2傳感器部分設(shè)計(jì)方案一:采用熱敏電阻,可滿足40攝氏度至90攝氏度測(cè)量范圍,但熱敏電阻精度、 重復(fù)性、可靠性較差,對(duì)于檢測(cè)1攝氏度的信號(hào)是不適用的。而且在溫度測(cè)量系 統(tǒng)中,采用單片溫度傳感器,比如 AD590 LM35等。但這些芯片輸出的都是模擬 信號(hào),必須經(jīng)過A/D轉(zhuǎn)換后才能送給計(jì)算機(jī),這樣就使得測(cè)溫裝置的結(jié)構(gòu)較復(fù)雜. 另外,這種測(cè)溫裝置的一根線上只能掛一個(gè)傳感器,不能進(jìn)行多點(diǎn)測(cè)量即使能實(shí) 現(xiàn),也要
11、用到復(fù)雜的算法,一定程度上也增加了軟件實(shí)現(xiàn)的難度。在多點(diǎn)測(cè)溫系統(tǒng)中,傳統(tǒng)的測(cè)溫方法是將模擬信號(hào)遠(yuǎn)距離采樣進(jìn)行 AD轉(zhuǎn)換, 而為了獲得較高的測(cè)溫精度,就必須采用措施解決由長(zhǎng)線傳輸,多點(diǎn)測(cè)量切換及 放大電路零點(diǎn)漂移等造成的誤差補(bǔ)償問題。采用數(shù)字溫度芯片 DS18B20測(cè)量溫 度,輸出信號(hào)全數(shù)字化 . 便于單片機(jī)處理及控制 ,省去傳統(tǒng)的測(cè)溫方法的很多外圍 電路. 且該芯片的物理化學(xué)性很穩(wěn)定, 它能用做工業(yè)測(cè)溫元件, 此元件線形較好 . 在o100攝氏度時(shí),最大線形偏差小于 1攝氏度。DS18B20勺最大特點(diǎn)之一采 用了單總線的數(shù)據(jù)傳輸,由數(shù)字溫度計(jì) DS1820和微控制器AT89S52構(gòu)成的溫度 測(cè)
12、量裝置 , 它直接輸出溫度勺數(shù)字信號(hào),可直接與計(jì)算機(jī)連接。這樣,測(cè)溫系統(tǒng) 的結(jié)構(gòu)就比較簡(jiǎn)單,體積也不大,且由于 AT89S52可以帶多個(gè)DSB1820因此可 以非常容易實(shí)現(xiàn)多點(diǎn)測(cè)量 . 輕松的組建傳感器網(wǎng)絡(luò) .采用溫度芯片DS18B20測(cè)量溫度,可以體現(xiàn)系統(tǒng)芯片化這個(gè)趨勢(shì)。部分功能 電路的集成,使總體電路更簡(jiǎn)潔,搭建電路和焊接電路時(shí)更快。而且, 集成塊的使用,有效地避免外界的干擾, 提高測(cè)量電路的精確度。 所以集成芯片的使用將 成為電路發(fā)展的一種趨勢(shì)。本方案應(yīng)用這一溫度芯片,也是順應(yīng)這一趨勢(shì)。綜上所述,溫度傳感器以及主控部分都采用第二方案。系統(tǒng)采用針對(duì)傳統(tǒng)溫度測(cè)溫系統(tǒng)測(cè)溫點(diǎn)少, 系統(tǒng)兼容性及擴(kuò)
13、展性較差的特點(diǎn) 運(yùn)用分布式通訊的思想 . 設(shè)計(jì)一種可以用于大規(guī)模多點(diǎn)溫度測(cè)量的巡回檢測(cè)系 統(tǒng)。該系統(tǒng)采用的是 RS232 串行通訊的標(biāo)準(zhǔn), 通過上位機(jī)進(jìn)行現(xiàn)場(chǎng)的溫度采集, 溫度數(shù)據(jù)既可以由下位機(jī)模塊實(shí)時(shí)顯示 ,也可以送回上位機(jī)進(jìn)行數(shù)據(jù)處理,具有 巡檢速度快 , 擴(kuò)展性好,成本低的特點(diǎn)。對(duì)數(shù)字溫度傳感器 DS18B20 功能的認(rèn)識(shí)DS18B20-線式數(shù)字溫度傳感器,具有3引腳TO 92小體積封裝形式.測(cè)溫 分辨率可達(dá)00 0625E,被測(cè)溫度用符號(hào)擴(kuò)展的16位數(shù)字量方式串行輸出其工 作電源既可在遠(yuǎn)端引入,也可采用寄生電源方式產(chǎn)生 .CPU 只需一根端口線就能 與諸多DS18B20通信,占用微處理
14、器的端口少,可節(jié)省大量的引線和邏輯電路.DS18B20勺主要特性 適應(yīng)電壓范圍更寬,電壓范圍:3.05o 5V,在寄生電源方式下可由數(shù)據(jù)線供 電. 獨(dú)特的單線接口方式,DS18B2C在與微處理器連接時(shí)僅需要一條口線即可實(shí)現(xiàn) 微處理器與DS18B20勺雙向通訊。 DS18B20支持多點(diǎn)組網(wǎng)功能,多個(gè)DS18B20可以并聯(lián)在唯一的三線上,實(shí)現(xiàn)組網(wǎng)多點(diǎn)測(cè)溫。 DS18B2C在使用中不需要任何外圍元件,全部傳感元件及轉(zhuǎn)換電路集成在形如 一只三極管的集成電路內(nèi)。 溫范圍55C+ 125C,在一10+85C時(shí)精度為土 0.5 C。 可編程的分辨率為912位,對(duì)應(yīng)的可分辨溫度分別為0。5 C、0。25C、0
15、.125 C 和0。0625E,可實(shí)現(xiàn)高精度測(cè)溫. 在9位分辨率時(shí)最多在93.75ms內(nèi)把溫度轉(zhuǎn)換為數(shù)字,12位分辨率時(shí)最多在 750ms內(nèi)把溫度值轉(zhuǎn)換為數(shù)字,速度更快。DS18B20的外形IZWU_LAEDS1S2Og 3ROIFTOM DSINB2O To*4J2圖1 DS18B20的外形DS18B20內(nèi)部結(jié)構(gòu)主要由四部分組成:64位光刻ROM溫度傳感器、非揮發(fā)的溫度報(bào)警觸發(fā)器TH和TL、配置寄存器。DS18B20勺外形及管腳排列如上圖DS18B20引腳定義: DQ為數(shù)字信號(hào)輸入/輸出端; GNE為電源地; VDD為外接供電電源輸入端(在寄生電源接線方式時(shí)接地 ).圖2: DS18B20內(nèi)
16、部結(jié)構(gòu)圖DS18B2C有4個(gè)主要的數(shù)據(jù)部件: 、光刻ROM中的64位序列號(hào)是出廠前被光刻好的,它可以看作是該DS18B20的地址序列碼.64位光刻ROM勺排列是:開始8位(28H)是產(chǎn)品類型標(biāo)號(hào),接著的 48位是該DS18B20自身的序列號(hào),最后8位是前面56位的循環(huán)冗余校驗(yàn)碼(CRC=X8+X5+X4+。光刻ROM勺作用是使每一個(gè) DS18B2C都各不相同,這樣就 可以實(shí)現(xiàn)一根總線上掛接多個(gè) DS18B20勺目的。 、DS18B2C中的溫度傳感器可完成對(duì)溫度的測(cè)量,以 12位轉(zhuǎn)化為例:用16位 符號(hào)擴(kuò)展的二進(jìn)制補(bǔ)碼讀數(shù)形式提供,以 0.0625 C/LSB形式表達(dá),其中S為符 號(hào)位。表1:
17、DS18B20溫度值格式表bit?hit 3bkL15 Biler*24bitbillliillbidlbWMS BvicsSSsw這是12位轉(zhuǎn)化后得到的12位數(shù)據(jù),存儲(chǔ)在18B20的兩個(gè)8比特的RAM中, 二進(jìn)制中的前面5位是符號(hào)位,如果測(cè)得的溫度大于0,這5位為0,只要將測(cè)到 的數(shù)值乘于0.0625即可得到實(shí)際溫度;如果溫度小于 0,這5位為1,測(cè)到的數(shù) 值需要取反加1再乘于0.0625即可得到實(shí)際溫度。表2: DS18B20溫度數(shù)據(jù)表J EMPHRA J L REDIGirALOlJTPlT tBiniu y )DIGITAL Oil Pl 1 (IT+125 匸0000 0111 J
18、101 OOU'(>7LXJh胡列C*oom: ulOJ 0101 0000OSSOh25 06250000 0001 1001 0001091h+ 10 125 C0000 000(1 1010 009000A2T1*03 C0000 0000 0000 1000OOUSh(T匚0000 0000 0000 0000OOOOhll H H H H 1000FITSh-10.125 till H H 0101 E 1 10rF5I-h-25.0625 CIII 1 1 1001 10 111!FIi6Jh-55X11 Ml 1 100 1001 0000lUMh例如+125 C的
19、數(shù)字輸出為 07D0H(0x7D), +25.0625 C的數(shù)字輸出為0191H,25.0625 C的數(shù)字輸出為 FE6FH -55 C的數(shù)字輸出為 FC90H 、DS18B2C溫度傳感器的存儲(chǔ)器DS18B20溫度傳感器的內(nèi)部存儲(chǔ)器包括一個(gè)高速暫存RAM和一個(gè)非易失性的可電擦除的EEPRAM后者存放高溫度和低溫度觸發(fā)器 TH TL和結(jié)構(gòu)寄存器。 、配置寄存器該字節(jié)各位的意義如下:表3:配置寄存器結(jié)構(gòu)TMR1R011111低五位一直都是” 1",TM是測(cè)試模式位,用于設(shè)置DS18B2C在工作模式還是在測(cè) 試模式.在DS18B2C出廠時(shí)該位被設(shè)置為0,用戶不要去改動(dòng)。R1和R0用來設(shè)置
20、分辨率,如下表所示:(DS18B20出廠時(shí)被設(shè)置為12位)表4:溫度分辨率設(shè)置表R1R0分辨率溫度最大轉(zhuǎn)換時(shí)間009位93.75ms0110位187。5ms1011位375ms1112位750ms、高速暫存存儲(chǔ)器高速暫存存儲(chǔ)器由9個(gè)字節(jié)組成,其分配如表5所示。當(dāng)溫度轉(zhuǎn)換命令發(fā)布后,經(jīng)轉(zhuǎn)換所得的溫度值以二字節(jié)補(bǔ)碼形式存放在高速暫存存儲(chǔ)器的第0和第1個(gè)字節(jié)。單片機(jī)可通過單線接口讀到該數(shù)據(jù),讀取時(shí)低位在前,高位在后,數(shù) 據(jù)格式如表1所示。對(duì)應(yīng)的溫度計(jì)算:當(dāng)符號(hào)位S=0時(shí),直接將二進(jìn)制位轉(zhuǎn)換為 十進(jìn)制;當(dāng)S =1時(shí),先將補(bǔ)碼變?yōu)樵a,再計(jì)算十進(jìn)制值。表2是對(duì)應(yīng)的一部分 溫度值。第九個(gè)字節(jié)是冗余檢驗(yàn)字節(jié)
21、。表5: DS18B20暫存寄存器分布寄存器內(nèi)容字節(jié)地址溫度值低位(LS Byte)0溫度值高位(MS Byte)1高溫限值(TH)2低溫限值(TL)3配置寄存器4保留5保留6保留7CRC校驗(yàn)值8根據(jù)DS18B20的通訊協(xié)議,主機(jī)(單片機(jī))控制DS18B20完成溫度轉(zhuǎn)換必須 經(jīng)過三個(gè)步驟:每一次讀寫之前都要對(duì)DS18B20進(jìn)行復(fù)位操作,復(fù)位成功后發(fā)送一條ROM旨令,最后發(fā)送RAM旨令,這樣才能對(duì)DS18B2C進(jìn)行預(yù)定的操作.復(fù)位要 求主CPU將數(shù)據(jù)線下拉500微秒,然后釋放,當(dāng)DS18B20收到信號(hào)后等待1660 微秒左右后發(fā)出60240微秒的存在低脈沖,主CPU收到此信號(hào)表示復(fù)位成功。表6:
22、 ROM旨令表指令約定 代碼功能讀ROM33H讀DS1820溫度傳感器ROM中的編碼(即64位地址)符合ROM55H發(fā)出此命令之后,接著發(fā)出64位ROM編碼,訪問單總 線上與該編碼相對(duì)應(yīng)的 DS1820使之作出響應(yīng),為下一 步對(duì)該DS1820的讀寫作準(zhǔn)備。搜索ROM0FOH用于確定掛接在同一總線上DS1820的個(gè)數(shù)和識(shí)別64位ROM地址.為操作各器件作好準(zhǔn)備。跳過ROM0CCH忽略64位ROMft址,直接向DS1820發(fā)溫度變換命令。適 用于單片工作。告警搜索口 t=t命令0ECH執(zhí)行后只有溫度超過設(shè)定值上限或下限的片子才做出響 應(yīng)。7: RAM指令表指令約定代碼功能溫度變 換44H啟動(dòng)DS1
23、820進(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é)的內(nèi)容復(fù)制到 EEPRO中。重調(diào)EEPROM0B8H將EEPRO中內(nèi)容恢復(fù)到 RAM中的第3、4字節(jié)。讀供電 方式0B4H讀DS1820的供電模式。寄生供電時(shí) DS1820發(fā) 送“ 0 ”,外接電源供電DS1820發(fā)送“1”、DS18B2C工作原理DS18B2C的讀寫時(shí)序和測(cè)溫原理與 DS1820相同,只是
24、得到的溫度值的位數(shù)因分辨率不同而不同,且溫度轉(zhuǎn)換時(shí)的延時(shí)時(shí)間由2s減為750ms DS18B20測(cè)溫原理如圖3所示。圖中低溫度系數(shù)晶振的振蕩頻率受溫度影響很小,用于產(chǎn)生固定頻率的脈沖信號(hào)送給計(jì)數(shù)器1 o高溫度系數(shù)晶振隨溫度變化其振蕩率明顯改變, 所產(chǎn)生的信號(hào)作為計(jì)數(shù)器2的脈沖輸入。計(jì)數(shù)器1和溫度寄存器被預(yù)置在-55C 所對(duì)應(yīng)的一個(gè)基數(shù)值。計(jì)數(shù)器 1對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行減法計(jì) 數(shù),當(dāng)計(jì)數(shù)器1的預(yù)置值減到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í)溫度寄存
25、器中 的數(shù)值即為所測(cè)溫度。圖3中的斜率累加器用于補(bǔ)償和修正測(cè)溫過程中的非線性 其輸出用于修正計(jì)數(shù)器1的預(yù)置值。2。2.2 DS18B20 溫度檢測(cè)DS18B20!接從機(jī)的P1.6對(duì)溫度進(jìn)行檢測(cè)。DS18B2C采用寄生電源供電方式,女口 下圖所示單片機(jī)端口接單線總線,為保證在有效的 DS18B20寸鐘周期內(nèi)提供足 夠的電流,可用一個(gè) MOSFE管來完成對(duì)總線的上拉。當(dāng) DS18B2Q處于寫存儲(chǔ)器 操作和溫度A/D轉(zhuǎn)化操作時(shí),總線上必須有強(qiáng)的上拉,上拉開啟時(shí)間最長(zhǎng)為500ms. 采用寄生電源供電方式時(shí),VDD和GND端均接地。由于單線制只有一根線,因此 發(fā)送接口必須是三態(tài)的。對(duì)DS18B20勺設(shè)計(jì)
26、,需要注意以下問題(1)對(duì)硬件結(jié)構(gòu)簡(jiǎn)單的單線數(shù)字溫度傳感器 DS18B20進(jìn)行操作,需要用較 為復(fù)雜的程序完成 .編制程序時(shí)必須嚴(yán)格按芯片數(shù)據(jù)手冊(cè)提供的有關(guān)操作順序進(jìn) 行,讀、寫時(shí)間片程序要嚴(yán)格按要求編寫。尤其在使用DS18B20的高測(cè)溫分辨力時(shí),對(duì)時(shí)序及電氣特性參數(shù)要求更高。( 2)有多個(gè)測(cè)溫點(diǎn)時(shí) , 應(yīng)考慮系統(tǒng)能實(shí)現(xiàn)傳感器出錯(cuò)自動(dòng)指示,進(jìn)行自動(dòng)DS18B20序列號(hào)和自動(dòng)排序,以減少調(diào)試和維護(hù)工作量。(3)測(cè)溫電纜線建議采用屏蔽 4 芯雙絞線,其中一對(duì)線接地線與信號(hào)線,另一組接VCCffi地線,屏蔽層在源端單點(diǎn)接地。DS18B20在三線制應(yīng)用時(shí),應(yīng)將 其三線焊接牢固;在兩線應(yīng)用時(shí),應(yīng)將 VC
27、C與GND接在一起,焊接牢固。若VCC 脫開未接,傳感器只送85。0 C的溫度值。(4)實(shí)際應(yīng)用時(shí),要注意單線的驅(qū)動(dòng)能力,不能掛接過多的DS18B20同時(shí) 還應(yīng)注意最遠(yuǎn)接線距離。另外還應(yīng)根據(jù)實(shí)際情況選擇其接線拓?fù)浣Y(jié)構(gòu)。3系統(tǒng)總體方案及硬件設(shè)計(jì)3。1 STC89C51單片機(jī)的最小相系統(tǒng)32iSTC89C51Pi 1?i 2Pl 3PL4P1.5WSI ?1.MSO P17CK RST ?3.0<D P31/TXD p? 2/rmr ?3 3/iRiT P3.4noP3 5/n?2 .&空?3 7DKTAL2XTAL1GNDCD- 12 3 4- $ 7. VCPOpopopopop
28、opo.POEzZ.VPP ALEJPRDG rsmrP2 7P2貞P2 3P2 4PS 3P2.2P2 IP2.05 廠rTTT丁T丁 丁 -1 u Q- 0.0 嶺了 lm7Tln"T一7"7了 2 2Sir89C51g小系統(tǒng)C1 -IR2 訶<TEXT><TEXT>R1 口1 Exi>3O|0< . ."歆卞 |jCICRYSTAL-<TE>fT > 303TXTAL1XTAL2RSTP0.0/AD0 P01/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD&
29、amp; P0.7/AD7IP2J0XASP2-1W9P2.2TA10PSENP2 37A11ALEP2 4/A12EAP2.5/A13P; SrAl4P2.7/A1SP1.DP3O駅曲P1.1P3.1 仃 XDP1.2P3.2XNT0P1.3P3.3W1P1.4P3JWT0P1.5F3.5/T1P1.6Pl.eAR-P1.7P3.7/RD±24_5_733537363?3433322122232£2526_1£1212_1±1516AT39S52圖1AT89S52最小相系統(tǒng)3。2 DS18B20 的 I/O 接線圖PS18B2O <TEXT>
30、;'圖 錯(cuò)誤!未定義書簽。DS18B20接線圖3.3數(shù)據(jù)顯示部分3&00U2f一 CRYSMLE.L1KTAL2RSTPSEN ALERBCDEFQ OP123 4計(jì)肚脈8 陌鴿占 P221D F2 3111P2.5W1I3FZ.illSRC&FCK-PQHDC pa.moi pa_aw>2 PQJWW M3貝 PQftDS PU押M pujm"35-3E圖2數(shù)據(jù)顯示部分36as3( 丄33 326.3。4整體電路見附件二:系統(tǒng)原理圖4軟件設(shè)計(jì)4。1概述整個(gè)系統(tǒng)的功能是由硬件電路配合軟件來實(shí)現(xiàn)的,當(dāng)硬件基本定型后,軟 件的功能也就基本定下來了。從軟件的功
31、能不同可分為兩大類:一是監(jiān)控軟件(主 程序),它是整個(gè)控制系統(tǒng)的核心,專門用來協(xié)調(diào)各執(zhí)行模塊和操作者的關(guān)系。 二是執(zhí)行軟件(子程序),它是用來完成各種實(shí)質(zhì)性的功能如測(cè)量、計(jì)算、顯示、 通訊等.每一個(gè)執(zhí)行軟件也就是一個(gè)小的功能執(zhí)行模塊。這里將各執(zhí)行模塊一一 列出,并為每一個(gè)執(zhí)行模塊進(jìn)行功能定義和接口定義.各執(zhí)行模塊規(guī)劃好后,就可 以規(guī)劃監(jiān)控程序了。首先要根據(jù)系統(tǒng)的總體功能和鍵盤設(shè)置選擇一種最合適的監(jiān)控程序結(jié)構(gòu),然后根據(jù)實(shí)時(shí)性的要求,合理地安排監(jiān)控軟件和各執(zhí)行模塊之間地調(diào)度關(guān)系。4.2主程序方案主程序調(diào)用了數(shù)碼管顯示程序、溫度測(cè)試程序、中斷控制程序、單片機(jī)與PC機(jī)串口通訊等程序。溫度測(cè)試程序:對(duì)溫
32、度芯片送過來的數(shù) 據(jù)進(jìn)行處理,進(jìn)行判斷和顯示.數(shù)碼管顯示程序:向數(shù)碼的顯示送數(shù), 控制系統(tǒng)的顯示部分。中斷控制程序:實(shí)現(xiàn)循環(huán)顯示功能。串口通訊程序:實(shí)現(xiàn) PC機(jī)與單片機(jī)通 訊,將溫度數(shù)據(jù)傳送給PC機(jī)將各個(gè)功能程序以子程序的形式寫好, 當(dāng)寫主程序的時(shí)候,只需要調(diào)用子程序,然 后在寄存器的分配上作一下調(diào)整,消除寄存開始系統(tǒng)初始化系統(tǒng)硬件測(cè)試程序溫度顯示子程序撥碼開關(guān)掃描子程序溫度測(cè)試及處理子程序串口通訊子程序器沖突和I/O沖突即可.程序應(yīng)該盡可能多的使用調(diào)用指令代替跳轉(zhuǎn)指令。因?yàn)?跳轉(zhuǎn)指令使得程序難以看懂各程序段之間的結(jié)構(gòu)關(guān)系。而調(diào)用指令則不同,調(diào)用 指令使得程序結(jié)構(gòu)清晰,無論是修改還是維護(hù)都比較
33、方便.將功能程序段寫成子 程序的形式,除了方便調(diào)用之外,還有一個(gè)好處那就是以后寫程序的時(shí)候如果要 用到,就可以直接調(diào)用這個(gè)單元功能模塊.4。3 DS18B20的相處理子程序4。3.1 DS18B20初始化子程序DS18B20勺使用必須遵循初始化到ROM操作命令到存儲(chǔ)器操作命令的規(guī)定協(xié) 議。每完成一次測(cè)溫,要重新進(jìn)行初始化.單片機(jī)先發(fā)一個(gè)復(fù)位脈沖,保持低電 平時(shí)間最少480卩s,最多不能超過960卩s。然后,單片機(jī)釋放總線,等待DS18B20 的應(yīng)答。DS18B20在接收到復(fù)位脈沖后等待1560ys發(fā)出應(yīng)答脈沖,應(yīng)答脈沖 持續(xù)60240卩s。4。3.2 DS18B20 寫控制字子程序當(dāng)主機(jī)把數(shù)據(jù)
34、線從邏輯高電平拉到邏輯低電平的時(shí)候,寫時(shí)間開始。寫一位 數(shù)據(jù)最少需要60卩s,兩個(gè)數(shù)據(jù)位之間最少有 1ys的間隔。I/O總線拉低后, DS18B20在15 s后開始米樣,如果線上是咼電平,就寫1,如果線上是低電平, 就寫0,寫時(shí)間需要1575卩s,且在2次獨(dú)立的寫時(shí)間之間至少需要 1 ys的恢 復(fù)時(shí)間。4.3.3 DS18B20 讀出溫度子程序當(dāng)主機(jī)把數(shù)據(jù)線從咼電平拉到低電平時(shí),讀時(shí)間開始。讀出溫度子程序的主 要功能是讀出RAM中的9字節(jié),在讀出時(shí)需進(jìn)行CRC校驗(yàn),校驗(yàn)有錯(cuò)時(shí)不進(jìn)行 溫度數(shù)據(jù)的改寫。讀時(shí)間需 1560卩s,且在2次獨(dú)立的讀時(shí)間之間至少需要 1 ys的恢復(fù)時(shí)間。DS18B20在讀
35、時(shí)間開始15ys后開始采樣總線電平。4.3.4 DS18B20溫度轉(zhuǎn)換子程序溫度轉(zhuǎn)換命令子程序主要是發(fā)溫度轉(zhuǎn)換開始命令,DS18B20用12位存貯溫度值, 最咼位為符號(hào)位,低四位為小數(shù),最咼精度可達(dá) 0.0625 度。溫度數(shù)據(jù)轉(zhuǎn) 換完成的任務(wù)是把用二進(jìn)制表示的溫度轉(zhuǎn)換成1個(gè)字節(jié)的兩位壓縮BCD碼.轉(zhuǎn)換的方法有兩種,一種是通過計(jì)算, 另一種是通過查表, 該裝置設(shè)計(jì)方案采用前 者。計(jì)算溫度子程序溫度讀取值進(jìn)行 BCD 碼的轉(zhuǎn)換運(yùn)算,并進(jìn)行溫度值正負(fù)的 判斷.4.4各模塊工作流程圖4。4.1上位機(jī)工作過程圖 錯(cuò)誤!未定義書簽。上位機(jī)工作流程圖4。4。2DS18B20工作過程圖錯(cuò)誤!未定義書簽。DS1
36、8B20工作流程圖本次通訊中,測(cè)控系統(tǒng)分位上位機(jī)和下位機(jī)之間的通信,系統(tǒng)中單片機(jī)負(fù)責(zé) 數(shù)據(jù)采集、處理和控制,上位機(jī)進(jìn)行現(xiàn)場(chǎng)可視化檢測(cè),通信協(xié)議采用半雙工異步 串行通信方式,通過RS232的RTS信號(hào)進(jìn)行收發(fā)轉(zhuǎn)換,傳輸數(shù)據(jù)采用二進(jìn)制數(shù)據(jù), 上位機(jī)與下位機(jī)之間采用主從式通訊。4.4。 3下位機(jī)接收過程圖 錯(cuò)誤!未定義書簽。下位機(jī)工作流程圖下位機(jī)采用的是單片機(jī)基于數(shù)字溫度傳感器 DS18B20勺系統(tǒng)。DS18B20利用 單總線的特點(diǎn)可以方便的實(shí)現(xiàn)多點(diǎn)溫度的測(cè)量, 輕松的組建傳感器網(wǎng)絡(luò),系統(tǒng)的 抗干擾性好、設(shè)計(jì)靈活、方便,而且適合于在惡劣的環(huán)境下進(jìn)行現(xiàn)場(chǎng)溫度測(cè)量。本系統(tǒng)可以應(yīng)用在大型工業(yè)及民用常溫多點(diǎn)
37、監(jiān)測(cè)場(chǎng)合如糧食倉(cāng)儲(chǔ)系統(tǒng)、樓宇自動(dòng)化系統(tǒng)、溫控制程生產(chǎn)線之溫度影像檢測(cè)、醫(yī)療與健診的溫度測(cè)試、空調(diào)系統(tǒng)的溫度檢測(cè)、石化、機(jī)械等。5 Proteus軟件仿真見附三:proteus軟件仿真圖6課程設(shè)計(jì)體會(huì)通過此次課程設(shè)計(jì),我更加扎實(shí)的掌握了有關(guān)單片機(jī)方面的知識(shí), 在設(shè)計(jì)過 程中雖然遇到了一些問題,但經(jīng)過一次又一次的思考,一遍又一遍的檢查終于找 出了原因所在,也暴露出了前期我在這方面的知識(shí)欠缺和經(jīng)驗(yàn)不足。讓我明白紙 上得來總覺淺,須知此事要躬行的深刻內(nèi)涵。在課程設(shè)計(jì)過程中,我們不斷發(fā)現(xiàn)錯(cuò)誤,不斷改正 ,不斷領(lǐng)悟,不斷獲取。 最終的檢測(cè)調(diào)試環(huán)節(jié),本身就是在踐行過而能改,善莫大焉”勺知行觀。這次課程 設(shè)計(jì)
38、終于順利完成了,在設(shè)計(jì)中遇到了很多問題,最后在自己的不斷調(diào)試中得到 解決。在今后社會(huì)的發(fā)展和學(xué)習(xí)實(shí)踐過程中,一定要不懈努力,不能遇到問題就 想到要退縮,一定要不厭其煩的發(fā)現(xiàn)問題所在,然后一一進(jìn)行解決我認(rèn)為,在這學(xué)期的實(shí)驗(yàn)中,不僅培養(yǎng)了獨(dú)立思考、動(dòng)手操作的能力,在各 種其它能力上也都有了提高.更重要的是,在實(shí)驗(yàn)課上,我們學(xué)會(huì)了很多學(xué)習(xí)的 方法.而這是日后最實(shí)用的,真的是受益匪淺。要面對(duì)社會(huì)的挑戰(zhàn),只有不斷的學(xué) 習(xí)、實(shí)踐,再學(xué)習(xí)、再實(shí)踐。這對(duì)于我們的將來也有很大的幫助。以后,不管有 多苦,我想我們都能變苦為樂,找尋有趣的事情,發(fā)現(xiàn)其中珍貴的事情。就像中 國(guó)提倡的艱苦奮斗一樣,我們都可以在實(shí)驗(yàn)結(jié)束之
39、后變的更加成熟, 會(huì)面對(duì)需要 面對(duì)的事情。此課程設(shè)計(jì),我感慨頗多,從理論到實(shí)踐,在這段日子里,可以說得是苦多于 甜,但是可以學(xué)到很多很多的東西, 同時(shí)不僅可以鞏固了以前所學(xué)過的知識(shí), 而 且學(xué)到了很多在書本上所沒有學(xué)到過的知識(shí)。通過這次課程設(shè)計(jì)使我懂得了理論 與實(shí)際相結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí) 與實(shí)踐相結(jié)合起來,從理論中得出結(jié)論, 才能真正為社會(huì)服務(wù),從而提高自己的 實(shí)際動(dòng)手能力和獨(dú)立思考的能力。 在設(shè)計(jì)的過程中遇到問題,可以說得是困難重 重,但可喜的是最終都得到了解決7 參考文獻(xiàn)(1) 單片機(jī)原理及應(yīng)用技術(shù) 余發(fā)山 , 王福忠主編 ,徐州;中國(guó)礦業(yè)大學(xué)出版
40、社 2008。 ( 2) 數(shù)字溫度傳感器 DS18B20 及其應(yīng)用 .pdf(3)余永權(quán) . ATMEL 89 系列單片機(jī)應(yīng)用技術(shù) M. 北京:北京航空航天大學(xué)出版社 2002.(4)賈振國(guó).DS1820及高精度溫度測(cè)量的實(shí)現(xiàn)J。電子技術(shù)應(yīng)用,2000(1 ): 58 - 59 。1余發(fā)山 ,王福忠 單片機(jī)原理及應(yīng)用技術(shù) 徐州 : 中國(guó)礦業(yè)大學(xué)出版社, 20082 張靖武。單片機(jī)原理應(yīng)用與PROTEUS仿真.電子工業(yè)出版社,20093 郭天祥 新概念 51 單片機(jī) C 語言教程 北京: 電子工業(yè)出版社, 20094 戴勝華,蔣大明。單片機(jī)原理與應(yīng)用 .北京:清華大學(xué)出版社, 20055 張毅剛
41、。單片機(jī)原理及應(yīng)用。高等教育出版社 ,20046 馬忠梅。單片機(jī)的C語言應(yīng)用程序設(shè)計(jì)(第三版)。北京航空航天大學(xué)出版社,2004附件一:源程序代碼 上位機(jī)源程序 include reg51.hunsigned char t= unsigned char *pt ; 信的0,0, tt1 : = 0, 0, 0,0,0 , tt2 :4, flag=1 ;/ 用來存放溫度值,測(cè)溫程序就是通過這個(gè)數(shù)組與主函數(shù)通unsigned char code dotcode =0,25,50,75;sbit DQ = P1A6;sbit UP=P1A0;sbit DW=P1A1;sbit G=P1A2;voi
42、d delay(unsigned char i )while ( i );void delay_18B20 ( unsigned int i) while(i- );/* * *ds18b20 初始化函數(shù)* * * * * * * * *void Init_DS18B20(void)unsigned char x=0;DQ = 1;/DQ 復(fù)位delay_18B20(8) ; /稍做延時(shí)DQ = 0;/單片機(jī)將DQ拉低delay_18B20(80); / 精確延時(shí) 大于480usDQ = 1;/拉高總線delay_18B20(14);x=DQ;/ 稍做延時(shí)后 如果 x=0 則初始化成功 x=1
43、 則初始化失敗delay_18B20(20 )/* * * *衣ds18b20讀一個(gè)字節(jié)衣*/unsigned char ReadOneChar(void )unsigned char i=0; unsigned char dat = 0; for ( i=8;i 0;i-)DQ = 0; / 給脈沖信號(hào)dat >=1 ;DQ = 1 ; / 給脈沖信號(hào) if (DQ)dat|=0x80; delay_18B20 ( 4);return(dat);/ *ds18b20寫一個(gè)字節(jié)/void WriteOneChar ( unsigned char dat)unsigned char i=0
44、; for (i=8 ; i>0; i -)DQ = 0;DQ = dat 0x01 ; delay_18B20 ( 5);DQ = 1; dat=1;/ * * * 讀取 ds18b20 當(dāng)前溫度 * *unsigned char *ReadTemperature ( char TH,char TL,unsigned char RS)unsigned char tt= 0,0 ;Init_DS18B20() ;WriteOneChar(0xCC) ; / 跳過讀序號(hào)列號(hào)的操作WriteOneChar(0x4E );/ /寫入”寫暫存器”命令 ,修改 TH 和 TL 和分辯率配置寄存器/
45、先寫TH,再寫TL ,最后寫配置寄存器WriteOneChar(TH ) ;/寫入想設(shè)定的溫度報(bào)警上限WriteOneChar(TL) ;/寫入想設(shè)定的溫度報(bào)警下限WriteOneChar(RS) ;/寫配置寄存器 ,格式為 0 R1 R0 1, 1 1 1 1/R1R0=00 分辨率婁 9 位, R1R0=11 分辨率為 12 位/ this message is very importantdelay_18B20 ( 80);Init_DS18B20 ( );WriteOneChar(0xCC );/ 跳過讀序號(hào)列號(hào)的操作WriteOneChar(0x44) ;/ 啟動(dòng)溫度轉(zhuǎn)換delay_
46、18B20(80 );/ this message is wery importantInit_DS18B20( )WriteOneChar(0xCC); / 跳過讀序號(hào)列號(hào)的操作WriteOneChar(0xBE); /讀取溫度寄存器等 (共可讀 9 個(gè)寄存器) delay_18B20 ( 80) ;前兩個(gè)就是溫度tt 0 =ReadOneChar();/讀取溫度值低位tt 1 =ReadOneChar() ;/讀取溫度值高位return( tt);void init()SCON=0X40 ;/多機(jī)通信方式,接收允許PCON=0X00 ;/波特率加倍TMOD=0x20 ;/定時(shí)器 1,模式
47、2TH1=0xf3;TL1=0xf3 ;/定時(shí)器初值TR1=1;/啟動(dòng)定時(shí)器 1void senddata(unsigned char tt2 )int i;init ( );for(i=0 ;i4;i+ )SBUF=tt2 : i; / 寫 SBUF,開始發(fā)送while(!TI); /等待發(fā)送TI=0;/清發(fā)送標(biāo)志位delay_18B20(100);void main( )unsigned char x,y; /下一步擴(kuò)展時(shí)可能通過這兩個(gè)變量,調(diào)節(jié)上下限unsigned int TH=50 , TL=5;/測(cè)溫函數(shù)返回這個(gè)數(shù)組的頭地址while ( 1)/上限溫度 50,下限 5,分辨率 9
48、位 ,也就是 0。pt=ReadTemperature(TH,TL,0x1f );25C,TM R1 R0 1 1 1 1 1t0=*pt ;/讀取溫度,溫度值存放在一個(gè)兩個(gè)字節(jié)的數(shù)組中pt+;t1= pt;t1=t1 0x70; x=t0;x =4; x=x 0x0f ; t1=t1|x;t1=4;/將高字節(jié)左移 4 位/取出高字節(jié)的 3 個(gè)有效數(shù)字位/將t0暫存到X,因?yàn)槿⌒?shù)部分還要用到它/右移 4 位/和前面兩句就是取出t 0的高四位/將高低字節(jié)的有效值的整數(shù)部分拼成一個(gè)字節(jié)tt10=(t1100)/10;/分離出十位tt11= ( t1 %100) 10;/分離出個(gè)位t0=t0 0x
49、0c;/取有效的兩位小數(shù)t0=2;/左移兩位,以便查表x=t0 ;y=dotcode x ;/查表換算成實(shí)際的小數(shù)tt12=y/10;/分離出十分位tt13=y%10;/分離出百分位if( G=0| UP=0| |DW=0) / 是否改變溫度上、下限flag=0;if(G=0)if (UP=0) TH+ ;if (DW=0 )TH-;if (TH>=100| | TH =0) TH=0 ;tt1 0=TH/10;tt11=TH 10;elseif (UP=0)TL+;if (DW=0)TL-;if (TL > =100 | | TL<=0 ) TL=0;tt10=TH/10
50、;tt11 =TH10;if( flag)if( tt10>=(TH/10) ) && (tt11> =(TH10)tt10 =10;tt1 1=10;tt12=10;tt13=10;if(tt10<=TL/10)&&(tt11<=TL10)| |(tt10=TL/10) )tt1 0=11;tt11=11;tt12=11;tt13=11;flag=1;senddata(tt1 );下位機(jī)源代碼#include reg52。 h>#include<intrins.h>#define uint unsigned int d
51、efine uchar unsigned charuchar code tab = 0x3f,0x06,0x5b,0x4f , 0x66 , 0x6d,0x7d,0x07,0x7f , 0x6f, 0x77,0x7cuchar code tabl =0xfe , 0xfd , 0xfb,0xf7 ;uchar code tt14;uchar b,num=0, i;sbit RE=P1A0;sbit LENG=P"1;sbit P0_7=P0A7;void delay(unsigned int i)while(i-);void UART_Init ( void)SCON = 0x50 ; /SCON: se
溫馨提示
- 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. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 合同范本制作方法
- 普通住宅房屋租賃合同范本
- 不可抗性 合同范本
- 廣告置換合作合同范本
- 廚房勞動(dòng)合同范本
- 合同范本里買
- 委托驗(yàn)收項(xiàng)目合同范本
- 加工磚合同范本
- 倉(cāng)庫(kù)保底合同范本
- 廠家紅薯采購(gòu)合同范本
- 2025年人教版新教材英語小學(xué)三年級(jí)下冊(cè)教學(xué)計(jì)劃(含進(jìn)度表)
- 2025年山東商務(wù)職業(yè)學(xué)院高職單招高職單招英語2016-2024年參考題庫(kù)含答案解析
- 人工智能在企業(yè)人力資源招聘中的運(yùn)用研究
- 2023年2024年演出經(jīng)紀(jì)人之演出經(jīng)紀(jì)實(shí)務(wù)考試題庫(kù)附答案(達(dá)標(biāo)題)
- DG-T 076-2024 采茶機(jī)標(biāo)準(zhǔn)規(guī)范
- 《分娩機(jī)轉(zhuǎn)》課件
- 軍隊(duì)文職備考(面試)近年考試真題(參考300題)
- 金融業(yè)稅收優(yōu)惠政策指引
- 乳腺癌課件教學(xué)課件
- 第五期健康講座乳腺癌與宮頸癌防治知識(shí)
- 2025年神經(jīng)內(nèi)科??谱o(hù)士培訓(xùn)計(jì)劃范文
評(píng)論
0/150
提交評(píng)論